@lostgradient/weft 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -50,7 +50,7 @@ ${$.map((G)=>{switch(G.change){case"added":return` - field \`${G.field}\` was a
50
50
  `);if(U.length<=4)return $;return U.slice(0,4).join(`
51
51
  `)}function Ba($,U){if(typeof U==="object"&&U!==null&&"type"in U)return{workflowType:i7($,U.type),options:U.options};return{workflowType:i7($,U),options:void 0}}function i7($,U){if(typeof U==="string")return U;if($.resolveWorkflowType)return $.resolveWorkflowType(U);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.")}function Wa($,U){if(U===void 0)return $;if(!Number.isFinite(U)||!Number.isInteger(U)||U<1)throw Error("ctx.map concurrency must be a positive integer");return Math.min(U,$)}function yz($,U){return`${U}:${$.stepIndex}`}function n7($,U,G,J=void 0){if(DR(J),J?.id!==void 0)return J;return{...J,id:`${$.context.workflowId}:${U}:${G}`}}function Fa($,U,G,J){if(J===void 0)return n7($,U,G);let{idPrefix:X,...Q}=J;return DR(Q),n7($,U,G,X!==void 0?{...Q,id:`${X}:${G}`}:Q)}function DR($){if(typeof $!=="object"||$===null||!("parentClosePolicy"in $))return;let U=$.parentClosePolicy;if(U===void 0||U==="await")return;throw Error('ctx.pipe, ctx.map, and ctx.reduce always await child workflow results. Use ctx.startChild() directly for parentClosePolicy: "abandon" or "request-cancel".')}function r7($){let U=[];for(let G of $){let J=G.next();if(!J.done)U.push(J.value)}return U}function*HR($,U,G,J,X){let Q=U.stepIndex++;if(U.accumulatedResults?.has(Q)){if(U.explainMode)console.log(`[weft] ctx.startChild("${G}") \u2192 Returning cached result from step ${Q}`);return jR(U.accumulatedResults.get(Q),X)}if(U.explainMode)console.log(`[weft] ctx.startChild("${G}", ${JSON.stringify(J)})`),console.log(` \u2192 Creating checkpoint at step ${Q}`),console.log(` \u2192 Starting child workflow of type "${G}"`);let Z=crypto.randomUUID(),Y=V$(),D=yield{type:"child-workflow",operationId:Z,workflowType:G,input:J,callerStack:Y,...X!==void 0?{options:X}:{}};return $.accumulatedResults.set(Q,D),jR(D,X)}function jR($,U){return(U?.parentClosePolicy??"await")==="await"?$:$}function*_R($,U,G,J){let X=yz(U,"pipe"),Q=J;for(let[Z,Y]of G.entries()){let j=Ba(U,Y);Q=yield*$.startChild(j.workflowType,Q,n7(U,X,Z,j.options))}return Q}function*LR($,U,G,J,X){if(G.length===0)return[];let Q=yz(U,"map"),Z=Wa(G.length,X?.concurrency),Y=i7(U,J),j=[];for(let D=0;D<G.length;D+=Z){let _=G.slice(D,D+Z),L=yield*$.all(_.map((W,F)=>$.startChild(Y,W,n7(U,Q,D+F))));for(let W=0;W<L.length;W++)j[D+W]=L[W]}return j}function*VR($,U,G,J,X,Q){if(G.length===0)return X;let Z=yz(U,"reduce"),Y=i7(U,J),j=X;for(let[D,_]of G.entries())j=yield*$.startChild(Y,{accumulator:j,item:_,index:D},Fa(U,Z,D,Q));return j}var mz=()=>{};function Pa($){return $==="all"||$==="race"||$==="run-all"}function Ma($){return $==="pending"||$==="fulfilled"||$==="rejected"||$==="aborted"}function Na($){if($===null||typeof $!=="object")return!1;let U=$;return typeof U.name==="string"&&typeof U.message==="string"}function qa($){if($===null||typeof $!=="object")return!1;let U=$;if(!Ma(U.status))return!1;if(typeof U.operationId!=="string")return!1;if(U.status==="rejected"&&!Na(U.reason))return!1;return!0}function Oa($){if($===void 0)return!0;return Array.isArray($)&&$.every((U)=>typeof U==="string")}function Aa($){return typeof $==="number"&&Number.isSafeInteger($)&&$>=0}function Ca($){return $!==null&&typeof $==="object"&&$.__weftParallelOperationCache===!0}function Ra($,U,G,J){if($==="race"){if(U.length!==1||G<1)return!1;let X=U[0];if(X==null||typeof X!=="object")return!1;return X.status==="fulfilled"&&J===void 0}if(U.length!==G)return!1;if($==="run-all")return Array.isArray(J)&&J.length===G;return J===void 0}function GU($){if($===null||typeof $!=="object")return!1;let U=$;if(U.__weftParallelOperationCache!==!0)return!1;if(U.formatVersion!==2)return!1;if(!Pa(U.variant))return!1;if(!Array.isArray(U.branches))return!1;if(!Aa(U.subOperationCount))return!1;if(!Oa(U.branchNames))return!1;let G=U.subOperationCount;if(!Ra(U.variant,U.branches,G,U.branchNames))return!1;return U.branches.every(qa)}function o7($){if(Ca($)&&!GU($))throw new z4("Parallel operation cache entry is malformed or incompatible with this engine version.")}function O3($,U,G,J){return{__weftParallelOperationCache:!0,formatVersion:2,variant:$,branches:U,...J!==void 0?{branchNames:J}:{},subOperationCount:G}}var z4;var zR=B(()=>{a();z4=class z4 extends I{constructor($){super("BranchTopologyChangedError",$)}}});function Ta($){return $.branches.map((U)=>{if(U.status!=="fulfilled")throw Error(`Cannot reconstruct ctx.all result: branch slot is ${U.status}, not fulfilled`);return U.value})}function Ea($){let U=$.branchNames;if(U===void 0)throw Error("Cannot reconstruct ctx.runAll result: cache entry missing branchNames");let G={};for(let J=0;J<U.length;J++){let X=$.branches[J];if(X?.status!=="fulfilled")throw Error(`Cannot reconstruct ctx.runAll result: branch '${U[J]}' is ${X?.status??"missing"}`);G[U[J]]=X.value}return G}function BR($){return $.branches.every((U)=>U.status==="fulfilled")}function*WR($,U,G){let J=U.stepIndex++;if(U.accumulatedResults?.has(J)){let D=U.accumulatedResults.get(J);if(o7(D),GU(D)){if(D.variant!=="all")throw new z4(`ctx.all step ${J} found a cached entry of variant '${D.variant}'. The same step must use the same parallel primitive across retries.`);if(G.length!==D.subOperationCount)throw new z4(`ctx.all branch count changed across retry: expected ${D.subOperationCount}, got ${G.length}. Branch count must be deterministic.`);if(BR(D))return U.stepIndex+=D.subOperationCount,Ta(D);let _=r7(G);kz(_,`parallel:${J}`);let L=V$();return yield{type:"parallel",operationId:`parallel:${J}`,operations:_,step:J,resumedCacheEntry:D,callerStack:L}}return D}let X=r7(G),Q=`parallel:${J}`;kz(X,Q);let Z=V$(),j=yield{type:"parallel",operationId:Q,operations:X,step:J,callerStack:Z};return $.accumulatedResults.set(J,Sa(j,Q,X.length)),j}function Sa($,U,G){return O3("all",$.map((J,X)=>({status:"fulfilled",value:J,operationId:`${U}:${X}`})),G)}function*FR($,U,G){let J=U.stepIndex++;if(U.accumulatedResults?.has(J)){let j=U.accumulatedResults.get(J);if(o7(j),GU(j)){if(j.variant!=="race")throw new z4(`ctx.race step ${J} found a cached entry of variant '${j.variant}'. The same step must use the same parallel primitive across retries.`);if(G.length!==j.subOperationCount)throw new z4(`ctx.race branch count changed across retry: expected ${j.subOperationCount}, got ${G.length}. Branch count must be deterministic.`);let D=j.branches[0];if(D?.status!=="fulfilled")throw new z4(`ctx.race step ${J} cached entry has no fulfilled winner slot \u2014 entry is malformed.`);return U.stepIndex+=j.subOperationCount,D.value}return j}let X=r7(G),Q=`race:${J}`;kz(X,Q);let Z=V$(),Y=yield{type:"race",operationId:Q,operations:X,callerStack:Z};return $.accumulatedResults.set(J,{__weftParallelOperationCache:!0,formatVersion:2,variant:"race",branches:[{status:"fulfilled",value:Y,operationId:`${Q}:winner`}],subOperationCount:X.length}),Y}function kz($,U){for(let G=0;G<$.length;G++){let J=$[G];if(J!==void 0)J.operationId=`${U}:${G}`}}function*KR($,U,G,J){let X=U.stepIndex++;if(U.memoCache?.has(G))return U.memoCache.get(G);if(U.accumulatedResults?.has(X)){let j=U.accumulatedResults.get(X);return U.memoCache??=new Map,U.memoCache.set(G,j),j}let Q=crypto.randomUUID(),Z=V$(),Y=yield{type:"memo",operationId:Q,key:G,fn:J,callerStack:Z};return U.memoCache??=new Map,U.memoCache.set(G,Y),$.accumulatedResults.set(X,Y),Y}function ba($,U,G){if($.variant!=="run-all")throw new z4(`ctx.runAll step ${G} found a cached entry of variant '${$.variant}'. The same step must use the same parallel primitive across retries.`);let J=$.branchNames??[];if(J.length!==U.length)throw new z4(`ctx.runAll branch count changed across retry: expected ${J.length}, got ${U.length}`);for(let X=0;X<U.length;X++)if(J[X]!==U[X])throw new z4(`ctx.runAll branch order changed across retry: expected '${J[X]}' at index ${X}, got '${U[X]}'. Branch names must appear in the same order across retries.`)}function*PR($,U,G){let J=U.stepIndex++,X=Object.keys(G);if(U.accumulatedResults?.has(J)){let D=U.accumulatedResults.get(J);if(o7(D),GU(D)){if(ba(D,X,J),BR(D))return Ea(D);let _=`run-all:${J}`,L=V$();return yield{type:"run-all",operationId:_,branches:G,step:J,resumedCacheEntry:D,callerStack:L}}return D}if(U.explainMode)console.log(`[weft] ctx.runAll({ ${X.join(", ")} })`),console.log(` \u2192 Creating checkpoint at step ${J}`),console.log(` \u2192 Running ${X.length} named branches in parallel`);let Q=`run-all:${J}`,Z=V$(),Y=yield{type:"run-all",operationId:Q,branches:G,step:J,callerStack:Z},j=Y;return $.accumulatedResults.set(J,xa(j,X,Q)),Y}function xa($,U,G){return O3("run-all",U.map((J)=>({status:"fulfilled",value:$[J],operationId:`${G}:${J}`})),U.length,U)}var s7=B(()=>{mz();zR()});function fz(){return{hasFirstError:!1,firstError:void 0}}function wz($,U){if(!$.hasFirstError)$.hasFirstError=!0,$.firstError=U}async function MR($,U,G){let J=$.map((Q,Z)=>{let Y=U?.[Z];if(Y?.status==="fulfilled")return Y;return{status:"pending",operationId:Q}}),X=fz();return await Promise.all($.map(async(Q,Z)=>{if(J[Z]?.status==="fulfilled")return;try{let Y=await G(Z);J[Z]={status:"fulfilled",value:Y,operationId:Q}}catch(Y){let j=Y instanceof Error?Y:Error(String(Y));J[Z]={status:"rejected",reason:{name:j.name,message:j.message},operationId:Q},wz(X,Y)}})),{slots:J,hasFirstError:X.hasFirstError,firstError:X.firstError}}function uz($,U,G){return O3($,U,U.length,G)}function NR($){return $.map((U,G)=>{if(U.status!=="fulfilled")throw Error(`Branch slot ${G} is ${U.status}, not fulfilled`);return U.value})}var cz=B(()=>{s7()});function qR($,U){return(G,J)=>{$(G,J,U)}}function OR($){return(U)=>{let G=$.get(U);if(!G||G.ref.deref()!==void 0)return;$.delete(U)}}function AR($,U){return()=>{$.cleanupExpiredResponses().catch((G)=>{U("cleanupExpiredResponses",G)})}}async function CR($,U,G,J,X){if(J.length===0)return;let Q=[...J.map((Z)=>({type:"delete",key:Z})),{type:"delete",key:V.streamTail(U,G)},{type:"delete",key:V.streamMetadata(U,G)}];await $.batch(Q).catch((Z)=>{X("cleanupPartialStreamChunks",Z,U)})}async function RR($,U){let G=Object.entries($),J=fz();return{outcomes:await Promise.all(G.map(async([Q,[Z,Y]])=>{try{let j=await U(Z,Y);return{status:"fulfilled",name:Q,value:j}}catch(j){return wz(J,j),{status:"rejected",name:Q,reason:j}}})),hasFirstError:J.hasFirstError,firstError:J.firstError}}async function TR($,U){let G={},J=Object.entries($);return await Promise.all(J.map(async([X,[Q,Z]])=>{G[X]=await U(Q,Z)})),G}var A3=B(()=>{y();cz()});var a1,o2;var a7=B(()=>{a1=class a1 extends Event{static type="human-review:requested";workflowId;reviewId;reviewType;reviewers;constructor($,U,G,J){super(a1.type);this.workflowId=$,this.reviewId=U,this.reviewType=G,this.reviewers=J}};o2=class o2 extends Event{static type="human-review:completed";workflowId;reviewId;decision;reviewer;duration;constructor($,U,G,J,X){super(o2.type);this.workflowId=$,this.reviewId=U,this.decision=G,this.reviewer=J,this.duration=X}}});class dz{#$;#U;#G;constructor($,U){if(this.#$=$,typeof U==="function")this.#U=U;else this.#U=U?.getNow??Date.now,this.#G=U?.eventTarget}async createReview($,U){let G=crypto.randomUUID(),J={reviewId:G,workflowId:$,artifact:U.artifact,reviewType:U.reviewType??"general",reviewers:U.reviewers??[],allowPartial:U.allowPartial??!1,createdAt:this.#U()};if(U.timeout!==void 0)J.timeout=U.timeout;if(U.webhookUrl!==void 0)J.webhookUrl=U.webhookUrl;let X=V.review($,G);if(await this.#$.put(X,N(J)),this.#G)this.#G.dispatchEvent(new a1($,G,J.reviewType,J.reviewers));return J}async submitDecision($,U){let G={reviewId:$,decision:U.decision,reviewer:U.reviewer,timestamp:this.#U()};if(U.feedback!==void 0)G.feedback=U.feedback;if(U.sectionDecisions!==void 0)G.sectionDecisions=U.sectionDecisions;return G}async getReview($,U){let G=V.review($,U),J=await this.#$.get(G);if(!J)return null;return O(J)}async listPendingReviews(){let U=[];for await(let[,G]of this.#$.scan("review:"))U.push(O(G));return U}cleanupOperations($,U){return[{type:"delete",key:V.review($,U)}]}checkEscalations($,U,G){let J=G-$.createdAt;for(let X=U.length-1;X>=0;X--){let Q=U[X];if(J<Q.after)continue;if(Q.action!==void 0){let Z=Q.action==="auto-approve"?"approved":"rejected";return{type:"auto-decide",decision:Z,auditReason:Q.auditReason??`Auto-${Z} after ${Q.after}ms`}}if(Q.to!==void 0)return{type:"escalate",to:Q.to}}return null}}var pz;var lz=B(()=>{y();u();a();a7();pz=class pz extends I{reviewId;elapsed;constructor($,U){super("ReviewTimeoutError",`Review ${$} timed out after ${U}ms`);this.reviewId=$,this.elapsed=U}}});class iz{#$;constructor($){this.#$=$}async createRequest($,U,G,J){let X=crypto.randomUUID(),Q={updateId:X,workflowId:$,name:U,payload:G,createdAt:Date.now()};if(J?.idempotencyKey!==void 0)Q.idempotencyKey=J.idempotencyKey;let Z=V.update($,X);return await this.#$.put(Z,N(Q)),X}async checkIdempotency($,U){let G=V.updateIdempotency($,U),J=await this.#$.get(G);if(!J)return null;let X=O(J);return this.getResponse(X.updateId)}async getPendingUpdates($){let U=V.updatePrefix($),G=[];for await(let[,J]of this.#$.scan(U))G.push(O(J));return G.toSorted((J,X)=>J.createdAt-X.createdAt||(J.updateId<X.updateId?-1:J.updateId>X.updateId?1:0))}buildResponseOperations($,U,G,J,X){let Q={updateId:$,result:G,createdAt:Date.now()};if(J!==void 0)Q.error=J;let Z=[{type:"delete",key:V.update(U,$)},{type:"put",key:V.updateResponse($),value:N(Q)}];if(X!==void 0)Z.push({type:"put",key:V.updateIdempotency(U,X),value:N({updateId:$})});return Z}async deleteRequest($,U){await this.#$.delete(V.update($,U))}async deleteRequestIfUnconsumed($,U){let G=await this.getResponse(U);if(G!==null)return G;return await this.deleteRequest($,U),this.getResponse(U)}async getResponse($){let U=V.updateResponse($),G=await this.#$.get(U);if(!G)return null;return O(G)}async waitForResponse($,U){let G=Date.now()+U;while(Date.now()<G){let J=await this.getResponse($);if(J)return J;let X=G-Date.now();if(X<=0)break;await Z1(Math.min(ga,X))}throw new s2($,U)}async cleanupExpiredResponses($){let U=$??Ia,G=Date.now()-U,J=[],X=new Set;for await(let[Y,j]of this.#$.scan("upr:")){let D=O(j);if(D.createdAt<G)J.push(Y),X.add(D.updateId)}if(J.length===0)return 0;let Q=[];for await(let[Y,j]of this.#$.scan("upk:")){let D=O(j);if(X.has(D.updateId))Q.push(Y)}let Z=[...J.map((Y)=>({type:"delete",key:Y})),...Q.map((Y)=>({type:"delete",key:Y}))];return await this.#$.batch(Z),J.length}}var s2,P1,a2,ga=50,Ia=300000;var JU=B(()=>{N4();y();u();a();s2=class s2 extends I{updateId;constructor($,U){super("UpdateTimeoutError",`Update ${$} timed out after ${U}ms`);this.updateId=$}};P1=class P1 extends I{updateName;issues;constructor($,U){let G=U.map((J)=>J.message).join("; ");super("UpdateValidationError",`Update "${$}" rejected by validator: ${G}`);this.updateName=$,this.issues=U}};a2=class a2 extends I{workflowId;status;constructor($,U){super("WorkflowTerminalError",`Cannot send update to workflow "${$}": workflow is in terminal state "${U}"`);this.workflowId=$,this.status=U}}});function E6($,U,G){if(U===null)return;let J=N($).byteLength;if(J>U)throw new XU(G,J,U)}function C3($,U,G){let J=N($);if(U!==null&&J.byteLength>U)throw new XU(G,J.byteLength,U);return J}var XU;var c4=B(()=>{u();a();XU=class XU extends I{payloadKind;serializedBytes;maxBytes;constructor($,U,G){super("PayloadSizeExceededError",`${$} exceeds the configured maximum serialized size: ${String(U)} bytes > ${String(G)} byte limit.`);this.payloadKind=$,this.serializedBytes=U,this.maxBytes=G}}});function t7($){return`${ER}${R($)}:`}function ya($){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 SR($,U,G){return`${ha}:${$}:${U}:${G}`}function ma($,U){let G={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(V.asyncActivity(U.workflowId,U.token),N(G))}async function ka($,U){let G=$.pendingAsyncActivities.has(U.token);if($.pendingAsyncActivities.set(U.token,U),await ma($.storage,U),!G)$.engine.dispatchEvent(new TU(U.token,U.operationId,U.workflowId,U.activityName,U.attempt))}async function bR($,U,G,J){let X=ca($,G.workflowId,U.token);if(X!==void 0)return vR(G.workflowId,X,J),new Promise(()=>{});return await ka($,{token:U.token,createdAt:$.options.getNow(),...G}),new Promise(()=>{})}async function xR($){for await(let[,U]of $.storage.scan(ER)){let G=O(U);if(!ya(G))continue;$.pendingAsyncActivities.set(G.token,{token:G.token,workflowId:G.workflowId,activityName:G.activityName,operationId:G.operationId,step:G.step,attempt:G.attempt,createdAt:G.createdAt})}}async function fa($,U){let G=$.pendingAsyncActivities.get(U);if(!G)throw new t2(U);$.pendingAsyncActivities.delete(U);try{await $.storage.delete(V.asyncActivity(G.workflowId,U))}catch(J){throw $.pendingAsyncActivities.set(U,G),J}return G}function wa($,U){return $.inlineStrategy!==null&&!$.inlineStrategy.hasGenerator(U)}function ua($,U,G){$.pendingAsyncActivityResolutions??=new Map;let J=$.pendingAsyncActivityResolutions.get(U)??[];J.push(G),$.pendingAsyncActivityResolutions.set(U,J)}function ca($,U,G){$.pendingAsyncActivityResolutions??=new Map;let J=$.pendingAsyncActivityResolutions.get(U);if(J===void 0)return;let X=J.findIndex((Z)=>Z.token===G);if(X===-1)return;let Q=J[X];if(Q===void 0)return;if(J.splice(X,1),J.length===0)$.pendingAsyncActivityResolutions.delete(U);return Q}function vR($,U,G){G.finalizeTimeline($,U.timelineStatus,U.timelineOutput),G.feedOperationResult($,U.outcome,U.originalReason)}async function gR($,U,G,J,X){let Q=await fa($,U),Z=G.status==="completed"?G.value:G.error,Y={token:U,outcome:G,timelineStatus:G.status,timelineOutput:Z,...X!==void 0?{originalReason:X}:{}};if(wa($,Q.workflowId)){ua($,Q.workflowId,Y);return}vR(Q.workflowId,Y,J)}async function IR($,U,G,J){E6(G,$.options.payloadSizePolicy.maxBytes,"activity result"),await gR($,U,{status:"completed",value:G},J)}async function hR($){let U=$.next();while(!U.done){let G=U.value;if(G instanceof Promise){let J;try{J=await G}catch(X){U=$.throw(X);continue}U=$.next(J)}else U=$.next(G)}return U.value}async function yR($,U,G,J){let X=G instanceof Error?G.message:String(G),Q=G instanceof Error?G.name:void 0;E6({message:X,name:Q},$.options.payloadSizePolicy.maxBytes,"activity result"),await gR($,U,{status:"failed",error:X,...G instanceof Error?{errorName:G.name}:{},failureCategory:"application"},J,{value:G})}var ha="async-act:v1",ER="async-act:v1:",e7,t2;var e2=B(()=>{y();u();Y$();c4();a();e7=class e7 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=$}};t2=class t2 extends I{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 $5($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function nz($){return $5($)&&$.version===1&&$5($.attempts)&&($.completedRetrySleeps===void 0||$5($.completedRetrySleeps))&&($.dispatchedAt===void 0||$5($.dispatchedAt))}function mR($,U){if(!Number.isInteger($)||$<=1||$>1e4)throw Error(`Invalid checkpointed activity retry attempt ${String($)} for step ${String(U)}`)}function kR($,U){let G=$.checkpointLocals.__weftActivityRetryState;if(!nz(G))return;let J=G.attempts[String(U)];if(J===void 0)return;return mR(J,U),J}function fR($,U){let G=$.checkpointLocals.__weftActivityRetryState;if(!nz(G))return 0;let J=G.completedRetrySleeps?.[String(U)];if(J===void 0)return 0;if(!Number.isInteger(J)||J<0||J>1e4)throw Error(`Invalid checkpointed activity retry sleep count ${String(J)} for step ${String(U)}`);return J}function U5($){let U=$.checkpointLocals.__weftActivityRetryState;return nz(U)?U:void 0}function G5($,U,G,J){let{["__weftActivityRetryState"]:X,...Q}=$.checkpointLocals,Z=Object.keys(U).length>0,Y=G!==void 0&&Object.keys(G).length>0,j=J!==void 0&&Object.keys(J).length>0;if(!Z&&!Y&&!j){$.checkpointLocals=Q;return}$.checkpointLocals={...Q,["__weftActivityRetryState"]:{version:1,attempts:U,...Y?{completedRetrySleeps:G}:{},...j?{dispatchedAt:J}:{}}}}function wR($,U,G){mR(G,U);let J=U5($),X=J?{...J.attempts}:{};X[String(U)]=G,G5($,X,J?.completedRetrySleeps,J?.dispatchedAt)}function pa($,U){let G=U5($);if(!G)return;let J={...G.attempts};delete J[String(U)],G5($,J,G.completedRetrySleeps,G.dispatchedAt)}function uR($,U,G){if(!Number.isInteger(G)||G<0||G>1e4)throw Error(`Invalid completed activity retry sleep count ${String(G)} for step ${String(U)}`);if(pa($,U),G===0)return;let J=U5($),X=J?{...J.attempts}:{},Q=J?{...J.completedRetrySleeps}:{};Q[String(U)]=G,G5($,X,Q,J?.dispatchedAt)}function cR($,U,G){let J=U5($),X=J?.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=J?{...J.attempts}:{},Z=J?.dispatchedAt?{...J.dispatchedAt}:{};return Z[String(U)]=G,G5($,Q,J?.completedRetrySleeps,Z),G}function lR($){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=T$($);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>pR)throw Error(`Activity timeout of ${U}ms exceeds the maximum supported per-attempt cap of ${pR}ms (~24.8 days).`);return U}function iR($){return $===void 0?void 0:T$($)}function nR($,U){if(U?.scheduleToCloseTimeout!==void 0)return U.scheduleToCloseTimeout;if(typeof $==="string")return;return $.scheduleToCloseTimeout}function rR($,U){if(U?.timeout!==void 0)return U.timeout;if(typeof $==="string")return;return $.timeout}function da($,U){return U-$.dispatchedAt>=$.budgetMs}function oz($,U,G,J){if($===void 0)return;if(!da($,J??G))return;throw new dR(U,G-$.dispatchedAt,$.budgetMs,J!==void 0&&G-$.dispatchedAt<$.budgetMs?J-$.dispatchedAt:void 0)}var dR,rz,pR=2147483647;var sz=B(()=>{E$();a();dR=class dR extends I{activityName;elapsed;budget;projectedNextDispatchElapsed;constructor($,U,G,J){super("ActivityScheduleToCloseTimeoutError",J===void 0?`Activity "${$}" exceeded its scheduleToCloseTimeout budget of ${G}ms (elapsed ${U}ms across retries)`:`Activity "${$}" will not retry within its scheduleToCloseTimeout budget of ${G}ms (elapsed ${U}ms; next retry would start at ${J}ms after first dispatch, at or beyond the deadline)`);if(this.activityName=$,this.elapsed=U,this.budget=G,J!==void 0)this.projectedNextDispatchElapsed=J}};rz=class rz extends I{activityName;attempt;timeoutMs;constructor($,U,G){super("ActivityPerAttemptTimeoutError",`Activity "${$}" attempt ${U} exceeded its per-attempt timeout of ${G}ms`);this.activityName=$,this.attempt=U,this.timeoutMs=G}}});function X5($){if($===null||typeof $!=="object"||Array.isArray($))return!1;let U=Object.keys($);if(U.length===0)return!1;for(let G of U)if(!na.has(G))return!1;for(let G of U)if(ra.has(G))return!0;return!1}function R3($,U){let G=U===void 0?[]:Object.entries(U).filter(([J])=>J!==l7&&J!==ia);if($===void 0){if(G.length===0)return la;return Object.fromEntries(G)}return{...Object.fromEntries(G),[l7]:$}}function oR($,U){$.stateSession=U,$.checkpointLocals=R3(U,$.checkpointLocals)}function sR($,U,G){if(n2(U),$.stateSession&&Sz($.stateSession,U))return s1($.stateSession[U]);return G===void 0?void 0:s1(G)}function aR($,U,G){n2(U);let J=N3($.stateSession)??M3();return J[U]=s1(G),xz(J),oR($,J),s1(J[U])}function oa($,U,G,J){return aR($,U,J(sR($,U,G)))}function sa($,U){if(n2(U),!$.stateSession||!Sz($.stateSession,U))return;let G=N3($.stateSession)??M3();delete G[U],oR($,Object.keys(G).length===0?void 0:G)}function aa($){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&&X5($[0]))return{hasInput:!1,options:{...$[0],sticky:!0}};if($.length===1)return{hasInput:!0,input:$[0],options:{sticky:!0}};let U=$[1];if(!X5(U))throw Error("sessionState.run() options must be ActivityCallOptions.");return{hasInput:!0,input:$[0],options:{...U,sticky:!0}}}function J5($,U){let G=$.stepIndex++;if($.accumulatedResults?.has(G))return $.accumulatedResults.get(G);let J=U();return $.accumulatedResults??=new Map,$.accumulatedResults.set(G,J),J}function tR($,U,G,J){let X=J!==void 0&&"initial"in J,Q=X?s1(J.initial):void 0;return{get:()=>J5(U,()=>sR(U,G,X?Q:void 0)),set:(L)=>J5(U,()=>aR(U,G,L)),update:(L)=>J5(U,()=>oa(U,G,X?Q:void 0,L)),delete:()=>{J5(U,()=>{sa(U,G);return})},increment(L=1){return this.update((W)=>(W??0)+L)},decrement(L=1){return this.update((W)=>(W??0)-L)},merge(L){return this.update((W)=>({...W??{},...L}))},append(L){return this.update((W)=>[...W??[],L])},removeFirst(){let L;return this.update((W)=>{let F=[...W??[]];return L=F.shift(),F}),L},removeLast(){let L;return this.update((W)=>{let F=[...W??[]];return L=F.pop(),F}),L},run:(L,...W)=>{let F=aa(W);if(!F.hasInput)return $.run(L,F.options);return $.run(L,F.input,F.options)}}}var la,ia="sessionState",na,ra;var T3=B(()=>{q3();la=Object.freeze({}),na=new Set(["timeout","queue","retry","idempotencyKey","sticky","visibilityTimeout","scheduleToCloseTimeout"]),ra=new Set(["queue","retry","idempotencyKey","sticky","visibilityTimeout","scheduleToCloseTimeout"])});function $T($,U,G){let J={context:$,abortController:U.abortController,stepIndex:U.initialStep??0,accumulatedResults:U.accumulatedResults,stateSession:G,checkpointLocals:R3(G,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};eR.set($,J)}function c($){let U=eR.get($);if(!U)throw Error("Context internals not initialized");return U}var eR;var $8=B(()=>{T3();eR=new WeakMap});function ea($){if(typeof $!=="function")return!1;if($.length===0)return!0;let U=$.execute;return typeof U==="function"&&U.length===0}function $t($,U){let G=U.at(-1);return U.length>0&&X5(G)&&(U.length>1||typeof $!=="string"&&ea($))}function Ut($,U){let G=[...U],J=$t($,G)?G.pop():void 0;if(G.length>1)throw Error("ctx.run() accepts one activity input value plus optional ActivityCallOptions.");return{input:G[0],options:J}}function Gt($,U,G){let J=iR(G);if(J===void 0)return;return{budgetMs:J,dispatchedAt:cR($,U,$.getNow())}}function Jt($,U){if(U!==void 0)return U;return typeof $==="string"?$:$.name||"anonymous"}function Xt($){return typeof $==="function"?$:void 0}function Qt($,U,G,J){let X=$.accumulatedResults?.has(U)??!1;if(X){let Z=$.accumulatedResults?.get(U);if($.stepIndex+=fR($,U),$.explainMode)console.log(`[weft] ctx.run(${G}) \u2192 Returning cached result from step ${U}`);return{request:{type:"activity",operationId:"",activityName:G,input:J},step:U,hasCachedResult:X,cachedResult:Z,retryAttempt:1}}let Q=kR($,U);if(Q!==void 0)return $.stepIndex+=Q-2,{request:{type:"activity",operationId:"",activityName:G,input:J},step:U,hasCachedResult:!1,retryAttempt:Q};return{request:{type:"activity",operationId:"",activityName:G,input:J},step:U,hasCachedResult:X,retryAttempt:1}}function Zt($,U,G,J,X,Q){let Z=Q?.queue??"default";if($.explainMode)console.log(`[weft] ctx.run(${G}, ${JSON.stringify(X)})`),console.log(` \u2192 Creating checkpoint at step ${U}`),console.log(` \u2192 Dispatching activity "${G}" to queue "${Z}"`);return{type:"activity",operationId:crypto.randomUUID(),activityName:G,step:U,...J!==void 0?{fn:J}:{},input:X,callerStack:V$(),...Q!==void 0?{options:Q}:{}}}function Yt($,U){let G=typeof $==="string"?void 0:$.retry,J=U?.retry;if(G===void 0&&J===void 0)return;return{...sO,...G,...J}}function jt($,U){let G=U.nonRetryableErrors??[];if(G.length===0)return!1;if($ instanceof Error)return G.includes($.name)||G.includes($.message);return G.includes(String($))}function Dt($,U,G){return U!==void 0&&G<U.maxAttempts&&!jt($,U)}function Ht($,U){if(U===1)return $;return{...$,operationId:crypto.randomUUID(),attempt:U}}function _t($,U,G,J){let{input:X,options:Q}=Ut(U,G),Z=Jt(U,J),Y=Xt(U),j=c($),D=j.stepIndex++,_=Qt(j,D,Z,X);if(_.hasCachedResult)return _;let L=Yt(U,Q),W=nR(U,Q),F=rR(U,Q),P=F===void 0?Q:{...Q,timeout:F};return{request:Zt(j,D,Z,Y,X,P),step:D,hasCachedResult:!1,retryAttempt:_.retryAttempt,...L===void 0?{}:{retryPolicy:L},...W===void 0?{}:{scheduleToCloseTimeout:W}}}function*UT($,U,G,J){let{request:X,step:Q,hasCachedResult:Z,cachedResult:Y,retryAttempt:j,retryPolicy:D,scheduleToCloseTimeout:_}=_t($,U,G,J);if(Z)return Y;let L=c($),W=D===void 0?void 0:Gt(L,Q,_),F=j;if(F>1){if(D===void 0)throw Error(`Missing activity retry policy for checkpointed retry attempt ${F}`);yield*$.sleep(I2(F-1,D))}while(!0){if(F>1)oz(W,X.activityName,L.getNow());try{let P=yield Ht(X,F);return $.accumulatedResults.set(Q,P),uR(L,Q,F-1),P}catch(P){if(!Dt(P,D,F))throw P;let q=I2(F,D),A=L.getNow();oz(W,X.activityName,A,A+q);let g=F+1;wR(L,Q,g),yield*$.sleep(q),F=g}}}var GT=B(()=>{E$();k6();sz();$8();T3()});class Lt{workflowId;signal;#$=[];#U;#G=!1;constructor($,U){this.workflowId=$,this.signal=U}async step($,U){let{promise:G,resolve:J,reject:X}=Promise.withResolvers();return this.#$.push({name:$,fn:U,resolve:J,reject:X}),this.#U?.(),G}async dequeue(){if(this.#$.length>0)return this.#$.shift();if(this.#G)return null;let{promise:$,resolve:U}=Promise.withResolvers();if(this.#U=U,await $,this.#U=void 0,this.#G&&this.#$.length===0)return null;return this.#$.shift()??null}signalDone(){this.#G=!0,this.#U?.()}}function*az(){yield void 0}async function*tz(){yield void 0}function Vt(){return az().next(),tz().next(),{syncGeneratorFunctionPrototype:Object.getPrototypeOf(az),asyncGeneratorFunctionPrototype:Object.getPrototypeOf(tz),syncGeneratorPrototype:Object.getPrototypeOf(az.prototype),asyncGeneratorPrototype:Object.getPrototypeOf(tz.prototype)}}function JT($){return Object.getPrototypeOf($)===zt}function XT($){return Object.getPrototypeOf($)===Bt}function QT($){if($===null||typeof $!=="object")return!1;let U=Object.getPrototypeOf($);if(U===null)return!1;let G=Object.getPrototypeOf(U);return G===Wt||G===Ft}var zt,Bt,Wt,Ft;var ez=B(()=>{({syncGeneratorFunctionPrototype:zt,asyncGeneratorFunctionPrototype:Bt,syncGeneratorPrototype:Wt,asyncGeneratorPrototype:Ft}=Vt())});function E3($,U){let G=$.conditionWaiters.get(U);if(G)G()}function S3($){return Kt.encode($).byteLength<=128}function Q5($){if($.length===0)throw Error("signalId must be non-empty");if(!S3($))throw Error(`signalId must be at most ${String(128)} bytes`)}var Kt;var Z5=B(()=>{Kt=new TextEncoder});async function HT($,U,G,J,X){let Q=V.signalSequence(U);if(!$.storage.capabilities().conditionalBatch){await Pt($.storage,U,async()=>{let Z=await $.storage.get(Q),Y=await DT($,U,Z),j=jT($,U,G,Y,Q);J(j),await $.storage.batch(j),X()});return}q$($.storage,"conditionalBatch","anonymous signal ordering");for(let Z=0;Z<ZT;Z+=1){let Y=await $.storage.get(Q),j=await DT($,U,Y),D=jT($,U,G,j,Q);if(J(D),await W$($.storage,[{key:Q,expectedValue:Y}],D)){X();return}}throw Error(`Could not allocate anonymous signal sequence for workflow "${U}" after ${ZT} attempts`)}async function Pt($,U,G){let J=YT.get($);if(!J)J=new Map,YT.set($,J);let X=J.get(U)??Promise.resolve(),Q,Z=new Promise((j)=>{Q=j}),Y=X.then(()=>Z,()=>Z);J.set(U,Y);try{await X.catch(()=>{}),await G()}finally{if(Q(),J.get(U)===Y)J.delete(U)}}function jT($,U,G,J,X){let Q=G.map(({signalName:Z,payload:Y},j)=>({type:"put",key:V.signal(U,Z,Mt(J+j)),value:C3(Y,$.options.payloadSizePolicy.maxBytes,"signal payload")}));return Q.push({type:"put",key:X,value:N(J+G.length)}),Q}function Mt($){return`anonymous:${String($).padStart(16,"0")}:${crypto.randomUUID()}`}async function DT($,U,G){if(G!==null)return Ot(G);return Nt($,U)}async function Nt($,U){let G=`sig:${R(U)}:`,J=0;for await(let[X]of $.storage.scan(G)){let Q=qt(X);if(Q!==null&&Q>=J)J=Q+1}return J}function qt($){let G=$.lastIndexOf(":anonymous%3A");if(G===-1)return null;let J=G+13,X=$.indexOf("%3A",J);if(X===-1)return null;let Q=Number($.slice(J,X));return Number.isSafeInteger(Q)&&Q>=0?Q:null}function Ot($){if($===null)return 0;let U=O($);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 ZT=5,YT;var _T=B(()=>{y();u();c4();YT=new WeakMap});function t1($,U,G){if(G.conditions.length===0&&G.operations.length===0)return;let J=$.pendingAtomicWorkflowCommitSideEffects.get(U);if(J===void 0){$.pendingAtomicWorkflowCommitSideEffects.set(U,{conditions:[...G.conditions],operations:[...G.operations]});return}J.conditions.push(...G.conditions),J.operations.push(...G.operations)}function Y5($,U){let G=$.pendingAtomicWorkflowCommitSideEffects.get(U);if(G===void 0)return;if($.pendingAtomicWorkflowCommitSideEffects.delete(U),G.conditions.length===0&&G.operations.length===0)return;return{conditions:[...G.conditions],operations:[...G.operations]}}function j5($,U){$.pendingAtomicWorkflowCommitSideEffects.delete(U)}function LT($,U,G){let J=$.pendingAtomicWorkflowCommitSideEffects.get(U);if(J===void 0)return!1;return J.operations.some((X)=>X.type==="put"&&X.key===G)}async function FT($,U,G,J,X,Q={}){let Z=async(j,D,_)=>{await Rt($,j,[{signalName:D,payload:_}],X,Q)},Y=X.getComposedInterceptor();if(Y){let j,D=!1;try{Y.signalReceived({workflowId:U,signalName:G,payload:J,headers:new Map},(_)=>{if(D)throw Error("signalReceived interceptor called next() more than once");D=!0,j=Z(_.workflowId,_.signalName,_.payload)})}catch(_){if(j)await j;throw _}if(!j)return;await j}else await Z(U,G,J)}function b3($,U,G,J){let X=$.signalWaiters.get(G);if(!X)return;if(J&&X!==J)return;$.signalWaiters.delete(G),l6($.signalWaitersByWorkflow,U,G)}async function Rt($,U,G,J,X={}){if(G.length===0)return;let Q=await J.loadWorkflowState(U);if(Q&&f$(Q.status))return;let Z=xt(G,X);if(vt(G,X,Z),Z!==void 0)q$($.storage,"conditionalBatch","signal idempotency");if(Z!==void 0){let Y=Tt($,U,G,Z);VT($,U,Y);let j=G[0],D=V.signalAcceptedResponse(U,j.signalName,Z),_=N(WT);if(await $.storage.get(D)!==null)return;if(!await W$($.storage,[{key:D,expectedValue:null}],[...Y,{type:"put",key:D,value:_}]))return;zT($,U),BT($,U,G,J);return}await HT($,U,G,(Y)=>VT($,U,Y),()=>zT($,U)),BT($,U,G,J)}function Tt($,U,G,J){return G.map(({signalName:X,payload:Q})=>({type:"put",key:V.signal(U,X,J),value:C3(Q,$.options.payloadSizePolicy.maxBytes,"signal payload")}))}function KT($,U,G,J,X){Q5(X);let Q=V.startSignal(U,G,X),Z=V.signalAcceptedResponse(U,G,X);return{operations:[{type:"put",key:Q,value:C3(J,$.options.payloadSizePolicy.maxBytes,"signal payload")},{type:"put",key:Z,value:N(WT)}],condition:{key:Z,expectedValue:null}}}function VT($,U,G){if($.workflowsNeedingTerminalCleanup.has(U))return;G.push({type:"put",key:V.terminalCleanupNeeded(U),value:At})}function zT($,U){$.workflowsNeedingTerminalCleanup.add(U)}function BT($,U,G,J){let X=!1;for(let{signalName:Q,payload:Z,options:Y}of G){if(Y?.emitPublicEvent!==!1)J.dispatchEvent(new gU(U,Q,Z)),J.broadcast({type:"signal:received",workflowId:U,signalName:Q});let j=`${U}:${Q}`,D=$.signalWaiters.get(j);if(D){b3($,U,j,D),D();continue}if($.parkedInlineWorkflows.has(U))X=!0}if(X)J.resumeParkedInlineWorkflow(U)}async function PT($,U,G){return await UB($,U,G)!==null}async function x3($,U,G){let J=await UB($,U,G);if(J===null)return{found:!1};return t1($,U,{conditions:[{key:J.key,expectedValue:new Uint8Array(J.value)}],operations:[{type:"delete",key:J.key}]}),{found:!0,payload:O(J.value)}}async function $B($,U,G){let J=await UB($,U,G);return J===null?{found:!1}:{found:!0,payload:O(J.value)}}async function UB($,U,G){let J=R(U),X=R(G),Q=St(J,X);return await Et($,Q,J,X)}async function Et($,U,G,J){for await(let[X,Q]of $.storage.scan(U,{limit:1}))if(bt(X,G,J))return{key:X,value:Q};return null}function St($,U){return`sig:${$}:${U}:`}function bt($,U,G){let J=$.split(":");return J.length===Ct&&J[0]==="sig"&&J[1]===U&&J[2]===G&&(J[3]==="0"||J[3]==="1")&&J[4]!==""}function xt($,U){if($.length!==1)return;return $[0]?.options?.signalId??U.signalId}function vt($,U,G){if(G!==void 0){Q5(G);return}for(let J of $){let X=J.options?.signalId??U.signalId;if(X!==void 0)Q5(X)}}function e1($,U,G){let J=$.get(U);if(!J){$.set(U,G);return}if(typeof J==="string"){if(J===G)return;$.set(U,new Set([J,G]));return}J.add(G)}function l6($,U,G){let J=$.get(U);if(!J)return;if(typeof J==="string"){if(J===G)$.delete(U);return}if(J.delete(G),J.size===0){$.delete(U);return}if(J.size===1){let[X]=J;if(X!==void 0)$.set(U,X)}}var At,WT,Ct=5;var $0=B(()=>{y();u();Y$();c4();Z5();_T();A$();At=new Uint8Array(0),WT={ok:!0}});async function MT($,U,G,J){let{promise:X,resolve:Q}=Promise.withResolvers(),Z=!1;J({payload:U,respond:(D)=>{if(Z)return;Z=!0,Q(D)}});let j;try{return await Promise.race([X,new Promise((D,_)=>{j=setTimeout(()=>_(new s2($,G)),G)})])}finally{clearTimeout(j)}}var NT=B(()=>{JU()});async function qT($,U,G,J,X,Q){let Z=X?.timeout??30000;await bT($,U,G,J),await Q.guardTerminalWorkflow(U);let Y=await gt($,U,G,J,Q);if(Y.handled)return Y.value;let j=await It($,U,G,J,Z,Q);if(j.handled)return j.value;return await ht($,U,G,J,Z,Q)}async function gt($,U,G,J,X){let Q=$.inlineStrategy?.getContext(U)?.updateHandlers.get(G);if(!Q)return{handled:!1};let Z=crypto.randomUUID();X.dispatchEvent(new Z4(Z,U,G,J));try{let Y=await GB($,G,Q,J);return X.dispatchEvent(new I6(Z,U,G,Y)),X.broadcast({type:"update:completed",workflowId:U,updateId:Z}),E3($,U),{handled:!0,value:Y}}catch(Y){let j=Y instanceof Error?Y.message:String(Y);throw X.dispatchEvent(new I6(Z,U,G,void 0,j)),X.broadcast({type:"update:completed",workflowId:U,updateId:Z}),E3($,U),Y}}async function It($,U,G,J,X,Q){let Z=`${U}:${G}`,Y=$.updateWaiters.get(Z);if(!Y)return{handled:!1};let j=await Q.findPendingUpdateByName(U,G);if($.updateWaiters.get(Z)!==Y||j)return{handled:!1};$.updateWaiters.delete(Z),l6($.updateWaitersByWorkflow,U,Z);let D=crypto.randomUUID();Q.dispatchEvent(new Z4(D,U,G,J));let _=await MT(D,J,X,Y);return Q.dispatchEvent(new I6(D,U,G,_)),Q.broadcast({type:"update:completed",workflowId:U,updateId:D}),{handled:!0,value:_}}async function ht($,U,G,J,X,Q){let Z=await $.updateCoordinator.createRequest(U,G,J);Q.schedulePendingInlineUpdateDrain(U),await Q.guardTerminalWorkflowAfterCoordinatedRequest(U,Z),Q.dispatchEvent(new Z4(Z,U,G,J)),await Q.deliverCoordinatedUpdateToWaiterIfAvailable(U,{updateId:Z,workflowId:U,name:G,payload:J,createdAt:Date.now()});let Y=await $.updateCoordinator.waitForResponse(Z,X);if(Y.error)throw Error(Y.error);return Y.result}async function OT($,U){return $.updateCoordinator.getResponse(U)}async function AT($,U,G,J,X,Q){let Z=X?.timeout??30000,Y=X?.idempotencyKey;if(Y!==void 0){let W=await $.updateCoordinator.checkIdempotency(U,Y);if(W!==null)return{updateId:W.updateId,result:W.result}}await bT($,U,G,J),await Q.guardTerminalWorkflow(U);let j={timeout:Z};if(Y!==void 0)j.idempotencyKey=Y;let D=await $.updateCoordinator.createRequest(U,G,J,j);Q.schedulePendingInlineUpdateDrain(U),await Q.guardTerminalWorkflowAfterCoordinatedRequest(U,D),await Q.deliverCoordinatedUpdateToWaiterIfAvailable(U,{updateId:D,workflowId:U,name:G,payload:J,createdAt:Date.now(),idempotencyKey:Y},!0);let _=await $.updateCoordinator.waitForResponse(D,Z),L={updateId:_.updateId,result:_.result};if(_.error!==void 0)L.error=_.error;return L}async function CT($,U,G,J){let X=`${U}:${G.updateName}`,Q=await J.findPendingUpdateByName(U,G.updateName);if(Q){await $.updateCoordinator.deleteRequest(U,Q.updateId),J.dispatchPendingUpdateReceived(U,G.updateName,Q),J.completeOperation(U,{payload:Q.payload,respond:J.createCoordinatedUpdateResponder(U,G.updateName,Q)});return}let{promise:Z,resolve:Y}=Promise.withResolvers();$.updateWaiters.set(X,Y),e1($.updateWaitersByWorkflow,U,X);let j=await J.findPendingUpdateByName(U,G.updateName);if(j){if($.updateWaiters.get(X)===Y)$.updateWaiters.delete(X),l6($.updateWaitersByWorkflow,U,X);await $.updateCoordinator.deleteRequest(U,j.updateId),J.dispatchPendingUpdateReceived(U,G.updateName,j),J.completeOperation(U,{payload:j.payload,respond:J.createCoordinatedUpdateResponder(U,G.updateName,j)});return}J.completeOperation(U,await Z)}function RT($,U,G,J,X){X.dispatchEvent(new Z4(J.updateId,U,G,J.payload))}function TT($,U,G,J,X){let Q=!1;return(Z)=>{if(Q)return;Q=!0,X.persistCoordinatedUpdateResponse(U,G,J.updateId,J.idempotencyKey,Z)}}async function ET($,U,G,J=!1,X){let Q=`${U}:${G.name}`,Z=$.updateWaiters.get(Q);if(!Z)return!1;let Y=await X.findPendingUpdateByName(U,G.name);if(!Y||Y.updateId!==G.updateId)return!1;if(await $.updateCoordinator.deleteRequest(U,G.updateId),$.updateWaiters.delete(Q),l6($.updateWaitersByWorkflow,U,Q),J)X.dispatchPendingUpdateReceived(U,G.name,G);return Z({payload:G.payload,respond:X.createCoordinatedUpdateResponder(U,G.name,G)}),!0}async function ST($,U,G){return(await $.updateCoordinator.getPendingUpdates(U)).find((X)=>X.name===G)}async function GB($,U,G,J){let X=G(J);if(QT(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 bT($,U,G,J){let X=$.inlineStrategy?.getContext(U)?.updateValidators.get(G);if(X===void 0)return;let Q;try{Q=await X(J)}catch(Y){let j=Y instanceof Error?Y.message:String(Y);throw new P1(G,[{message:j}])}let Z=JB(Q);if(Z!==null&&Z.length>0)throw new P1(G,Z)}function JB($){if($===null||typeof $!=="object"||!("issues"in $))return null;let{issues:U}=$;if(!Array.isArray(U))return null;return U.flatMap((G)=>{if(G===null||typeof G!=="object")return[];let J=G;if(typeof J.message!=="string")return[];let X={message:J.message};if(Array.isArray(J.path)&&J.path.length>0)X.path=J.path.reduce((Q,Z)=>{let Y=Z!==null&&typeof Z==="object"&&"key"in Z?String(Z.key):String(Z);return Q+"/"+Y.replace(/~/g,"~0").replace(/\//g,"~1")},"");return[X]})}var U8=B(()=>{Y$();ez();JU();$0();NT()});function xT($,U,G,J){let X=$.handleCache.get(U);if(!X)return;let Q=X.ref.deref();if(!Q)return;Q.dispatchEvent(G)}function vT($,U,G,J,X){RT($,U,G,J,{dispatchEvent:X.dispatchEvent})}function U0($,U,G){if(!$.options.broadcastEvents)return;if($.broadcastChannel===null)try{$.broadcastChannel=new BroadcastChannel("weft:events")}catch{return}$.broadcastChannel.postMessage(U)}var D5=B(()=>{U8()});function kt($){if($.status===void 0)return!1;if(Array.isArray($.status))return $.status.length>0;return $.status.length>0}function ft($){return $.type!==void 0&&$.type.trim().length>0}function wt($){return(k$($.tags)?.length??0)>0}function ut($){return $.attributes?.some((U)=>o$(U.key).trim().length>0)??!1}function ct($){return $.idPrefix!==void 0&&$.idPrefix.length>=yt}function dt($){return Object.values(pt).some((U)=>U($))}function p4($){if(!dt($))throw Error(mt);return $}var yt=3,mt='Field "filter" must include at least one of status, type, tags, attributes, idPrefix (\u22653 chars), or failureCategory paired with status',pt;var H5=B(()=>{D6();u6();pt={status:kt,type:ft,tags:wt,attributes:ut,idPrefix:ct}});var QU;var _5=B(()=>{a();QU=class QU extends I{workflowId;timeoutType;elapsed;constructor($,U,G){super("WorkflowTimeoutError",`Workflow "${$}" exceeded ${U} timeout after ${G}ms`);this.workflowId=$,this.timeoutType=U,this.elapsed=G}}});function XB($){let U=new Uint8Array(8);return new DataView(U.buffer).setBigUint64(0,BigInt($),!1),U}function L5($){if($.byteLength!==8)return null;let U=new DataView($.buffer,$.byteOffset,$.byteLength).getBigUint64(0,!1),G=Number(U);return Number.isSafeInteger(G)&&G>=1&&G<Number.MAX_SAFE_INTEGER?G:null}function QB($){return lt.encode(JSON.stringify($))}function nt($){return typeof $==="object"&&$!==null}function V5($){let U;try{U=JSON.parse(it.decode($))}catch{return null}if(!nt(U))return null;let{holderId:G,expiresAt:J,epoch:X}=U;if(typeof G!=="string"||typeof J!=="number"||!Number.isSafeInteger(J)||J<0||typeof X!=="number"||!Number.isSafeInteger(X)||X<1)return null;return{holderId:G,expiresAt:J,epoch:X}}var lt,it;var ZB=B(()=>{lt=new TextEncoder,it=new TextDecoder});function v3($){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 YB="WeftEngineLeaseLostWarning";var G8,ZU,g3,I3;var z5=B(()=>{a();G8=class G8 extends I{waitedMs;heldBy;constructor($,U){let G=U===null?"":` (currently held by "${U}")`;super("EngineLeaseAcquisitionTimeoutError",`Could not acquire the storage ownership lease within ${$}ms${G}. 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}};ZU=class ZU extends I{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).`)}};g3=class g3 extends I{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()`.")}};I3=class I3 extends I{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 h3($){if($.options.ownershipMode!=="lease")return;if(!(!$.deposed&&$.leaseManager!==null&&$.leaseManager.currentEpochBytes()!==null))throw new g3}async function gT($,U,G){let J=rt($);if(J===null){if(G.length===0)return await $.storage.batch(U),"committed";return await W$($.storage,G,U)?"committed":"lost-race"}let X=[...G,{key:V.leaseEpoch(),expectedValue:J}];if(await W$($.storage,X,U))return"committed";if(await st($,J))throw v3($),new I3;return"lost-race"}function rt($){if($.deposed)throw new I3;if($.options.ownershipMode!=="lease")return null;let U=$.leaseManager?.currentEpochBytes()??null;if(U===null)throw v3($),new I3;return U}async function C$($,U,G,J){if(await gT($,U,G)==="lost-race")throw J()}async function J8($,U,G){return await gT($,U,G)==="committed"}function ot($,U){if(U===null||$.byteLength!==U.byteLength)return!1;for(let G=0;G<$.byteLength;G+=1)if($[G]!==U[G])return!1;return!0}async function st($,U){let G;try{G=await $.storage.get(V.leaseEpoch())}catch{return!0}if(G===null)return!0;if(L5(G)===null)return!0;return!ot(U,G)}var B4=B(()=>{y();ZB();z5()});async function*yT($,U,G){let J={events:[],resolver:void 0},X={done:!1},Q=at($,J,X);try{if(!X.done)et(J,X,await U(),G);while(!X.done||J.events.length>0){if(J.events.length===0)await $e(J);while(J.events.length>0)yield J.events.shift()}}finally{Q()}}function at($,U,G){let J=mT.bind(void 0,U),X=tt.bind(void 0,G,U);for(let Q of IT)$.addEventListener(Q,J);for(let Q of hT)$.addEventListener(Q,X);return()=>{for(let Q of IT)$.removeEventListener(Q,J);for(let Q of hT)$.removeEventListener(Q,X)}}function mT($,U){$.events.push(U),$.resolver?.()}function tt($,U,G){if($.done)return;$.done=!0,mT(U,G)}function et($,U,G,J){if(!G||U.done)return;let X=J(G);if(!X)return;$.events.push(X),U.done=!0}async function $e($){let{promise:U,resolve:G}=Promise.withResolvers();$.resolver=G,await U,$.resolver=void 0}var IT,hT;var kT=B(()=>{GY();IT=["activity:started","activity:completed","signal:received"],hT=sP});function W4($){return $.startedAt??$.createdAt}function fT($){switch($.status){case"completed":{let U=$.updatedAt-W4($);return new Y4($.id,$.result,U)}case"failed":{let U=Error($.error??"Workflow failed");if($.errorStack)U.stack=$.errorStack;return new K6($.id,U)}case"cancelled":return new h6($.id);case"timed-out":{let U=$.updatedAt-W4($);return new P6($.id,"execution",U,$.terminationReason)}default:return null}}var y3,m3;var G0=B(()=>{Y$();_5();k6();kT();y3=Symbol("handleResultPromise");m3=class m3 extends EventTarget{id;#$;#U;constructor($,U){super();this.id=$,this.#$=U,this.#U=void 0}async result(){return this.#U??=this.#$[y3](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,G){return this.#$.signal(this.id,R6($),U,G)}async update($,U,G){return this.#$.update(this.id,R6($),U,G)}async query($,U){return this.#$.query(this.id,R6($),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*yT(this,()=>this.#$.get(this.id),fT)}[Symbol.observable](){return{subscribe:($)=>{let U=new AbortController,G=$.next?.bind($),J=["workflow:completed","workflow:failed","workflow:cancelled","workflow:timed-out","activity:started","activity:completed"],X=!1;if(G){let j=(D)=>{if(X)return;G(D)};for(let D of J)this.addEventListener(D,j,{signal:U.signal})}let Q=(j)=>{if(X)return;if(j instanceof K6)X=!0,$.error?.(j.error);else if(j instanceof P6)X=!0,$.error?.(new QU(j.workflowId,j.timeoutType,j.elapsed))};this.addEventListener("workflow:failed",Q,{signal:U.signal}),this.addEventListener("workflow:timed-out",Q,{signal:U.signal});let Z=$.complete?.bind($),Y=()=>{if(X)return;X=!0,Z?.()};return this.addEventListener("workflow:completed",Y,{signal:U.signal}),this.addEventListener("workflow:cancelled",Y,{signal:U.signal}),(async()=>{let j=await this.#$.get(this.id);if(U.signal.aborted||X||!j)return;let D=fT(j);if(!D)return;if(G?.(D),D instanceof K6)Q(D);else if(D instanceof P6)Q(D);else Y()})(),{unsubscribe:U.abort.bind(U)}}}}async[Symbol.asyncDispose](){}}});function Ue($,U,G){if(G===void 0||G<=0)return 0;let J=BigInt(`0x${yG(`${$}\x00${U}`)}`);return Number(J%BigInt(G))}function X8($,U){return U+Ue($.id,U,$.jitterMs)}var B5=B(()=>{N4()});function uT(){return"UTC"}function cT($){let U=wT.get($);if(U)return U;let G=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 wT.set($,G),G}function Je($,U){let J=cT(U).formatToParts(new Date($)).find((j)=>j.type==="timeZoneName")?.value,X=/^GMT([+-])(\d{1,2})(?::(\d{2}))?$/.exec(J??"");if(!X)return 0;let Q=X[1]==="-"?-1:1,Z=Number.parseInt(X[2],10),Y=Number.parseInt(X[3]??"0",10);return Q*(Z*60+Y)*60000}function jB($,U){let G=cT(U).formatToParts(new Date($)),J=new Map(G.map((Z)=>[Z.type,Z.value])),X=J.get("weekday"),Q=X?Ge.get(X):void 0;if(Q===void 0)throw Error(`Unable to resolve weekday for time zone "${U}"`);return{year:Number.parseInt(J.get("year")??"",10),month:Number.parseInt(J.get("month")??"",10),day:Number.parseInt(J.get("day")??"",10),hour:Number.parseInt(J.get("hour")??"",10),minute:Number.parseInt(J.get("minute")??"",10),second:Number.parseInt(J.get("second")??"",10),dayOfWeek:Q}}function Xe($,U){return $.year===U.year&&$.month===U.month&&$.day===U.day&&$.hour===U.hour&&$.minute===U.minute&&$.second===U.second}function J0($,U,G){let J=Date.UTC($.year,$.month-1,$.day,$.hour,$.minute,$.second),X=J;for(let Y=0;Y<6;Y+=1){let j=Je(X,U),D=J-j;if(D===X)break;X=D}let Q=new Set;for(let Y=-120;Y<=120;Y+=15)Q.add(X+Y*60000);return[...Q].filter((Y)=>Y>=G).filter((Y)=>Xe($,jB(Y,U))).toSorted((Y,j)=>Y-j)[0]??null}function W5($,U){let G=new Date(Date.UTC($.year,$.month-1,$.day,$.hour,$.minute,$.second));if(U.days!==void 0)G.setUTCDate(G.getUTCDate()+U.days);if(U.hours!==void 0)G.setUTCHours(G.getUTCHours()+U.hours);if(U.minutes!==void 0)G.setUTCMinutes(G.getUTCMinutes()+U.minutes);return{year:G.getUTCFullYear(),month:G.getUTCMonth()+1,day:G.getUTCDate(),hour:G.getUTCHours(),minute:G.getUTCMinutes(),second:G.getUTCSeconds()}}function k3($,U){for(let G of $)if(G>U)return{value:G,wrapped:!1};return{value:$[0],wrapped:!0}}function pT($,U){let G=U.daysOfMonth.values.includes($.day),J=U.daysOfWeek.values.includes($.dayOfWeek);if(U.daysOfMonth.wildcard&&U.daysOfWeek.wildcard)return!0;if(U.daysOfMonth.wildcard)return J;if(U.daysOfWeek.wildcard)return G;return G||J}var Ge,wT;var dT=B(()=>{Ge=new Map([["Sun",0],["Mon",1],["Tue",2],["Wed",3],["Thu",4],["Fri",5],["Sat",6]]),wT=new Map});function lT($,U,G,J){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 Z=J===6&&Q===7?0:Q;if(Z<G||Z>J)throw Error(`Cron token "${$}" is outside the allowed range ${G}-${J}`);return Z}function Ye($,U){return{values:Array.from({length:U-$+1},(G,J)=>$+J),wildcard:!0}}function je($,U){let G=U===void 0?1:Number.parseInt(U,10);if(!Number.isInteger(G)||G<=0)throw Error(`Invalid cron step "${$}"`);return G}function iT($,U,G,J){for(let X=U;X<=G;X+=J)$.add(X)}function De($,U,G,J,X){let[Q="",Z]=U.split("/"),Y=je(U,Z);if(Q==="*"||Q==="?"){iT($,G,J,Y);return}let[j,D]=Q.split("-"),_=lT(j,X,G,J),L=D===void 0?_:lT(D,X,G,J);if(_>L)throw Error(`Invalid cron range "${U}"`);iT($,_,L,Y)}function Q8($,U,G,J){let X=$.trim();if(X==="*"||X==="?")return Ye(U,G);let Q=new Set,Z=X.split(",");for(let Y of Z){let j=Y.trim();if(j.length===0)throw Error(`Invalid cron field "${$}"`);De(Q,j,U,G,J)}return{values:[...Q].toSorted((Y,j)=>Y-j),wildcard:!1}}function YU($){let U=$.trim().split(/\s+/).filter((D)=>D.length>0);if(U.length!==5&&U.length!==6)throw Error("Cron expression must have 5 fields or 6 fields with seconds");let G=U.length===6,[J,X,Q,Z,Y,j]=G?U:["0",...U];return{expression:$,hasSeconds:G,seconds:Q8(J,0,59),minutes:Q8(X,0,59),hours:Q8(Q,0,23),daysOfMonth:Q8(Z,1,31),months:Q8(Y,1,12,Qe),daysOfWeek:Q8(j,0,6,Ze)}}var Qe,Ze;var DB=B(()=>{Qe=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]]),Ze=new Map([["SUN",0],["MON",1],["TUE",2],["WED",3],["THU",4],["FRI",5],["SAT",6]])});function jU($){return $+1000}function He($){return{year:$.year,month:$.month,day:$.day,hour:0,minute:0,second:0}}function _e($,U,G,J){let X=k3(G.months.values,U.month);return J0({year:U.year+(X.wrapped?1:0),month:X.value,day:1,hour:0,minute:0,second:0},J,jU($))??$+86400000}function nT($,U,G){return J0(W5(He(U),{days:1}),G,jU($))??$+86400000}function Le($,U,G,J){let X=k3(G.hours.values,U.hour);return J0({year:U.year,month:U.month,day:U.day,hour:X.value,minute:0,second:0},J,jU($))??nT($,U,J)}function Ve($,U,G,J){let X=k3(G.minutes.values,U.minute),Q=J0({year:U.year,month:U.month,day:U.day,hour:U.hour,minute:X.value,second:0},J,jU($));if(Q!==null)return Q;return J0(W5({year:U.year,month:U.month,day:U.day,hour:U.hour,minute:0,second:0},{hours:1}),J,jU($))??$+3600000}function ze($,U,G,J){let X=k3(G.seconds.values,U.second),Q=J0({year:U.year,month:U.month,day:U.day,hour:U.hour,minute:U.minute,second:X.value},J,jU($));if(Q!==null)return Q;return J0(W5({year:U.year,month:U.month,day:U.day,hour:U.hour,minute:U.minute,second:0},{minutes:1}),J,jU($))??$+60000}function F5($,U,G){let J=typeof $==="string"?YU($):$,X=G?.timeZone??uT(),Q=s$(Math.floor(U/1000)*1000+1000,"Cron occurrence candidate");for(let Z=0;Z<1e5;Z+=1){let Y=jB(Q,X);if(!J.months.values.includes(Y.month)){Q=_e(Q,Y,J,X);continue}if(!pT(Y,J)){Q=nT(Q,Y,X);continue}if(!J.hours.values.includes(Y.hour)){Q=Le(Q,Y,J,X);continue}if(!J.minutes.values.includes(Y.minute)){Q=Ve(Q,Y,J,X);continue}if(!J.seconds.values.includes(Y.second)){Q=ze(Q,Y,J,X);continue}return Q}throw Error(`Could not find the next cron occurrence for "${J.expression}"`)}function HB($,U,G,J){let X=typeof $==="string"?YU($):$,Q=[],Z=J?.maxOccurrences;if(Z!==void 0&&(!Number.isSafeInteger(Z)||Z<=0))throw Error("Cron occurrence maxOccurrences must be a positive safe integer");let Y=Z??Number.POSITIVE_INFINITY,j=U;while(j<=G&&Q.length<Y)Q.push(j),j=F5(X,j,J);return Q}var rT=B(()=>{E$();dT();DB()});var oT=B(()=>{rT();DB()});var _B=B(()=>{oT()});function f3($){return typeof $==="number"&&Number.isSafeInteger($)&&$>=0}function Be($){return typeof $==="string"&&LB.has($)}function We($){return typeof $==="string"&&VB.has($)}function K5($){if(typeof $!=="string")return!1;try{return B1($,"schedule id"),!0}catch{return!1}}function X0($,U){return B1($,U)}function tT($){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:G,backfill:J,jitter:X}=$,Q={overlap:"skip",backfill:!1};if(U!==void 0)Q.id=X0(U,"options.id");if(G!==void 0){if(!VB.has(G))throw Error(`options.overlap must be one of ${[...VB].join(", ")}`);Q.overlap=G}if(J!==void 0){if(typeof J!=="boolean")throw Error("options.backfill must be a boolean when provided");Q.backfill=J}if(X!==void 0)Q.jitterMs=Fe(X,"options.jitter");return Q}function Fe($,U){if(typeof $!=="string"&&typeof $!=="number")throw Error(`${U} must be a duration string or a number of milliseconds`);let G;try{G=T$($)}catch(X){let Q=X instanceof Error?X.message:String(X);throw Error(`Invalid ${U}: ${Q}`,{cause:X})}let J=Math.ceil(G);if(!Number.isSafeInteger(J)||J<=0)throw Error(`${U} must resolve to a positive number of milliseconds`);return J}function Ke($){if(typeof $!=="string"&&typeof $!=="number")throw Error('Schedule interval "every" must be a duration string or a number of milliseconds');let U;try{U=T$($)}catch(J){let X=J instanceof Error?J.message:String(J);throw Error(`Invalid schedule interval "every": ${X}`,{cause:J})}let G=Math.ceil(U);if(!Number.isSafeInteger(G)||G<=0)throw Error('Schedule interval "every" must resolve to a positive number of milliseconds');return{kind:"interval",intervalMs:G}}function sT($){if(typeof $!=="string")throw Error('Schedule "cron" must be a string');return YU($),{kind:"cron",cronExpression:$}}function zB($){if(typeof $==="string")return sT($);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,G="every"in $&&$.every!==void 0;if(U===G)throw Error('Schedule spec must specify exactly one of "cron" or "every"');return G?Ke($.every):sT($.cron)}function Pe($){if($===void 0)return;let U=Array.isArray($)?$:[$];for(let G of U)if(!LB.has(G))throw Error(`filter.status must be one of ${[...LB].join(", ")}`)}function Me($){if($===void 0)return;if(typeof $!=="string"||$.length===0)throw Error("filter.workflowType must be a non-empty string when provided")}function aT($,U){if($===void 0)return;if(!Number.isSafeInteger($)||$<0)throw Error(`filter.${U} must be a non-negative safe integer when provided`)}function eT($){if($===void 0)return;if(typeof $!=="object"||$===null)throw Error("filter must be an object when provided");return Pe($.status),Me($.workflowType),aT($.limit,"limit"),aT($.offset,"offset"),$}function u$($,U){let G=$===void 0?"[weft] Ignoring malformed schedule record":`[weft] Ignoring malformed schedule "${$}"`;return console.warn(`${G} ${U}.`),null}function Ne($,U){let{cronExpression:G,intervalMs:J}=$,X=G!==void 0,Q=J!==void 0;if(X===Q)return u$(U,"with conflicting or missing cadence (expected exactly one of cronExpression or intervalMs)");if(Q){if(typeof J!=="number"||!Number.isSafeInteger(J)||J<=0)return u$(U,"with invalid intervalMs");return{intervalMs:J}}if(typeof G!=="string")return u$(U,"with invalid cronExpression");try{YU(G)}catch{return u$(U,"with invalid cronExpression")}return{cronExpression:G}}function qe($){let U=$.id;if(!K5(U))return u$(void 0,"with invalid id");let G=$.workflowType;if(typeof G!=="string"||G.length===0)return u$(U,"with invalid workflowType");let J=Ne($,U);if(!J)return null;let X=$.status;if(!Be(X))return u$(U,"with invalid status");let Q=$.overlap;if(!We(Q))return u$(U,"with invalid overlap policy");return{id:U,workflowType:G,status:X,overlap:Q,...J}}function Oe($,U){let G=$.backfill;if(typeof G!=="boolean")return u$(U,"with invalid backfill flag"),null;return G}function Ae($,U){let G=$.jitterMs;if(G===void 0)return;if(typeof G!=="number"||!Number.isSafeInteger(G)||G<=0)return u$(U,"with invalid jitterMs"),null;return G}function Ce($,U){let{createdAt:G,updatedAt:J}=$;if(!f3(G)||!f3(J))return u$(U,"with invalid timestamps");let X=$.lastFireAt;if(X!==void 0&&!f3(X))return u$(U,"with invalid lastFireAt");let Q=$.lastMissedFireAt;if(Q!==void 0&&!f3(Q))return u$(U,"with invalid lastMissedFireAt");return{createdAt:G,updatedAt:J,...X!==void 0&&{lastFireAt:X},...Q!==void 0&&{lastMissedFireAt:Q}}}function Re($,U){let G=$.nextFireAt;if(G===void 0)return u$(U,"with invalid nextFireAt"),{ok:!1};if(G!==null&&!f3(G))return u$(U,"with invalid nextFireAt"),{ok:!1};return{ok:!0,value:G}}function Te($,U){let G=$.currentWorkflowId;if(G===void 0)return{ok:!0};if(!K5(G))return u$(U,"with invalid currentWorkflowId"),{ok:!1};return{ok:!0,value:G}}function Ee($,U){let G=$.queuedRuns;if(typeof G!=="number"||!Number.isSafeInteger(G)||G<0)return u$(U,"with invalid queuedRuns"),null;return G}function Se($,U){let G=$.missedFireCount;if(G===void 0)return 0;if(typeof G!=="number"||!Number.isSafeInteger(G)||G<0)return u$(U,"with invalid missedFireCount"),null;return G}function be($,U){let G=Oe($,U);if(G===null)return null;let J=Ae($,U);if(J===null)return null;let X=Ce($,U);if(X===null)return null;let Q=Re($,U);if(!Q.ok)return null;let Z=Te($,U);if(!Z.ok)return null;let Y=Ee($,U);if(Y===null)return null;let j=Se($,U);if(j===null)return null;return{backfill:G,...J!==void 0&&{jitterMs:J},...X,nextFireAt:Q.value,...Z.value!==void 0&&{currentWorkflowId:Z.value},missedFireCount:j,queuedRuns:Y}}function w3($){let U=O($);if(!w4(U))return console.warn("[weft] Ignoring malformed schedule record with non-object payload."),null;let G=qe(U);if(!G)return null;let J=be(U,G.id);if(!J)return null;return{...G,input:U.input,...J}}var LB,VB;var P5=B(()=>{u();D3();_B();E$();m$();LB=new Set(["active","paused","cancelled"]),VB=new Set(["skip","queue","cancel-running","allow"])});async function i6($,U,G){let X=($.workflowStateWriteChains.get(U)??Promise.resolve()).catch(()=>{return}).then(G),Q=X.then(()=>{return},()=>{return});$.workflowStateWriteChains.set(U,Q);try{return await X}finally{if($.workflowStateWriteChains.get(U)===Q)$.workflowStateWriteChains.delete(U)}}async function J$($,U){let G=await $.storage.get(V.workflow(U));if(!G)return null;return j$(G)}async function $E($,U){let G=await J$($,U);if(!G)throw Error(`Workflow "${U}" not found`);if(G.status==="completed")return G.result;if(G.status==="failed"){let J=Error(G.error??"Workflow failed");if(G.errorStack)J.stack=G.errorStack;throw J}if(G.status==="cancelled")throw Error("Workflow cancelled");if(G.status==="timed-out"){let J=G.executionDeadline?G.executionDeadline-W4(G):0;throw new QU(U,"execution",J)}throw Error(`Workflow "${U}" is still ${G.status}`)}function xe($,U,G,J){let X=J.includePendingAtomicSideEffects?Y5($,U):void 0,Q=X===void 0?G:[...G,...X.operations],Y=$.storage.capabilities().conditionalBatch?X?.conditions??[]:[];return{operations:Q,conditions:Y,hasPendingSideEffects:X!==void 0}}async function M5($,U,G,J={}){let X=xe($,U.id,G,J);if(await C$($,X.operations,X.conditions,()=>Error(`Workflow state commit for workflow "${U.id}" lost its atomic side-effect precondition.`)),X.hasPendingSideEffects)j5($,U.id)}async function DU($,U){let G=await $.storage.get(V.schedule(U));return G?w3(G):null}async function u3($,U){let G=await DU($,U);if(!G)throw Error(`Schedule "${U}" not found`);return G}async function n6($,U,G){let J=[{type:"put",key:V.schedule(U.id),value:N(U)}];if((G?.includeTimer??U.status==="active")&&U.status==="active"&&U.nextFireAt!==null){let Q=X8(U,U.nextFireAt);J.push(...x$({id:p2(U.id),workflowId:U.id,fireAt:Q,kind:"schedule"}))}await $.storage.batch(J)}async function UE($,U){let G=await $.storage.get(V.workflowHeaders(U));if(!G)return;return AC(G)}var a$=B(()=>{y();u();E$();_5();B4();G0();B5();B$();A$();P5()});async function BB($,U,G){if(G===void 0){let X=await $.storage.get(V.attribute(U));if(!X)return;G=O(X)}let J=i$(U,G,{});if(J.push({type:"delete",key:V.attribute(U)}),J.length>0)await $.storage.batch(J)}function N5($,U){return{...Object.fromEntries(Object.entries($).filter(([J])=>J.startsWith("weft:"))),...U}}async function WB($,U,G){if(Object.keys(G).length===0)return;let J=i$(U,{},G);await $.storage.batch([{type:"put",key:V.attribute(U),value:N(G)},...J])}function Z8($,U){let G=[];if(f$($.status))G.push({type:"delete",key:V.terminalWorkflow($.updatedAt,$.id)});if(f$(U.status))G.push({type:"put",key:V.terminalWorkflow(U.updatedAt,U.id),value:ve});return G}async function FB($,U,G,J={}){return await i6($,U,async()=>{let X=await $.storage.get(V.workflow(U));if(!X)return null;let Q=j$(X);if(J.allowedStatuses&&!J.allowedStatuses.includes(Q.status))return null;let Z=$.options.getNow(),Y={...Q,...G,updatedAt:Z},j=J.buildAdditionalOperations?.(Q,Z)??[];return await M5($,Q,[...Z8(Q,Y),{type:"put",key:V.workflow(U),value:N(Y)},...H6(U,Q,Y).batchOps,...j],{includePendingAtomicSideEffects:f$(Y.status)}),{previousState:Q,updatedAt:Z}})}async function q5($,U,G,J){return await i6($,U,async()=>{let X=await $.storage.get(V.workflow(U));if(!X)throw new m4(U);let Q=j$(X),Z=k$(Q.tags)??[],Y=he(G,"Workflow tags")??[];if(Y.length===0)return!1;let j=ge(Z,Y,J);if(Ie(Z,j))return!1;let D={...Q,updatedAt:$.options.getNow()};if(j!==void 0)D.tags=j;else delete D.tags;return await $.storage.batch([...Z8(Q,D),{type:"put",key:V.workflow(U),value:N(D)},...H6(U,Q,D).batchOps,...m2(U,Z,j)]),!0})}function ge($,U,G){let J=new Set($);for(let Q of U)if(G==="add")J.add(Q);else J.delete(Q);let X=k$([...J]);if(G==="add"&&X!==void 0)dV(X,"Workflow tags");return X}function Ie($,U){return $.length===(U?.length??0)&&$.every((G,J)=>G===U?.[J])}async function GE($,U,G,J,X){p4(U);let Q=X??await ye($,U),Z=0;for(let Y of Q){let j=!1;try{j=await q5($,Y,G,J)}catch(D){if(!(D instanceof m4))throw D}if(j)Z+=1}return{modified:Z}}function Y8($){for(let[U,G]of Object.entries($))if(Array.isArray(G))for(let J of G)tV(l$(J),U);else tV(l$(G),U)}function he($,U="options.tags"){if($===void 0)return;return k$(v$($,U))}async function ye($,U){let G=[],J=w2(U?.offset,"offset")??0,X=w2(U?.limit,"limit");if(X===0)return G;for await(let Q of I7($,U)){if(J>0){J-=1;continue}if(G.push(Q.id),X!==void 0)X-=1;if(X===0)return G}return G}var ve;var j8=B(()=>{y();H5();u();D6();m$();u6();F$();a$();A$();_6();W3();ve=new Uint8Array(0)});function A5($,U,G){let J=O5.get($);if(!J)J=new Map,O5.set($,J);J.set(U,new Uint8Array(G))}function JE($,U){let G=O5.get($)?.get(U);return G?new Uint8Array(G):void 0}function Q0($,U){O5.get($)?.delete(U)}var O5;var HU=B(()=>{O5=new WeakMap});async function QE($,U,G){let J=U===void 0?void 0:y2(U),X=k$(J?.tags),Q=await k7($,J,X),Z=Q!==null?await me($,Q,J,X,G):await ke($,J,X,G);return RC(we(Z),J)}async function me($,U,G,J,X){let Q=[...U];if(Q.length>u4)throw new V4(u4);let Z=[];for(let Y=0;Y<Q.length;Y+=c6){let j=Q.slice(Y,Y+c6),D=await Promise.all(j.map((W)=>$.storage.get(V.workflow(W)))),_=await f7($,D,G),L=[];for(let W of D){if(!W)continue;let F=j$(W);if(!K1(F,G,U,J,_.get(F.id)??null))continue;L.push(F)}Z.push(...await fe($,L,X))}return Z}async function ke($,U,G,J){let X=[],Q=0;for await(let[Z,Y]of $.storage.scan("wf:")){if(!B3(Z))continue;if(Q+=1,Q>u4)throw new V4(u4);let j=j$(Y),D=await w7($,j.id,U);if(!K1(j,U,null,G,D))continue;let _=ZE(j,J)?await $.storage.get(V.attribute(j.id)):null;X.push(DE(j,YE(_)))}return X}async function fe($,U,G){let J=new Map;return await Promise.all(U.map(async(X)=>{if(!ZE(X,G))return;J.set(X.id,await $.storage.get(V.attribute(X.id)))})),U.map((X)=>DE(X,YE(J.get(X.id)??null)))}function ZE($,U){return U?.includeFailureCategory===!0&&$.status==="failed"&&($.failureCategory===void 0||$.failureCategory===null)}function YE($){if($===null)return;let U=O($);if(!jE(U))return;let G=U.failureCategory;if(k4(G))return G;return F7(G)}function jE($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function DE($,U){let G=$.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},...G!==void 0&&G!==null&&{failureCategory:G}}}function we($){return $.toSorted((U,G)=>{if(U.createdAt!==G.createdAt)return G.createdAt-U.createdAt;if(U.id<G.id)return-1;if(U.id>G.id)return 1;return 0})}async function*KB($,U){yield*I7($,U)}async function*PB($,U){let G=ue(U);if(XE(G))return;let J=[];for await(let X of KB($,U)){if(ce(G))continue;if(J.push(X),pe(G),J.length===C5)yield J,J=[];if(XE(G))break}if(J.length>0)yield J}function ue($){return{remainingOffset:w2($?.offset,"offset")??0,remainingLimit:w2($?.limit,"limit")}}function ce($){if($.remainingOffset<=0)return!1;return $.remainingOffset-=1,!0}function pe($){if($.remainingLimit===void 0)return;$.remainingLimit-=1}function XE($){return $.remainingLimit===0}async function HE($,U){let G=await $.storage.get(V.attribute(U));if(!G)return null;let J=O(G);if(!jE(J))return null;return J}async function _E($,U,G){let J=await $.storage.get(V.workflow(U));if(J){let D=j$(J),_=$.registrations.get(D.type);if(_?.searchAttributes){let L=_.searchAttributes;for(let[W,F]of Object.entries(G)){if(!(W in L))throw Error(`Unknown search attribute "${W}". Registered attributes: ${Object.keys(L).join(", ")}`);d1(W,F,L[W])}}}Y8(G);let X=await $.storage.get(V.attribute(U)),Q=X?O(X):{},Z={...Q,...G},Y=i$(U,Q,Z),j=[{type:"put",key:V.attribute(U),value:N(Z)},...Y];await $.storage.batch(j)}async function LE($,U,...G){await q5($,U,G,"add")}async function VE($,U,...G){await q5($,U,G,"remove")}var C5=1000;var c3=B(()=>{y();u();f4();Y3();D6();u6();j8();qz();Oz();B$();A$();_6();W3()});async function p3($,U,G,J){let{effectiveLimit:X,manualOffset:Q}=ie($,U,G.limit);if(X===0)return{deleted:0};let Z=Q,Y=0,j=G.expiredOnly&&U===void 0?le($,G.now):KB($,U);for await(let D of j){if(!await se($,D,G.expiredOnly,G.now))continue;if(Z>0){Z-=1;continue}if(await MB($,D,J),Y+=1,X!==void 0&&Y>=X)break}return{deleted:Y}}function de($){let U=null,G=(J)=>{for(let X of[J?.completed,J?.failed,J?.cancelled,J?.timedOut]){if(X===void 0)continue;U=U===null?X:Math.min(U,X)}};G($.options.retention);for(let J of $.registrations.values())G(J.retention);return U}async function*le($,U){let G=de($);if(G===null)return;let J=V.terminalWorkflowPrefix(),X=U-G,Q=`${J}${String(X).padStart(16,"0")}:\xFF`;for await(let[Z]of $.storage.scan(J,{lte:Q})){let Y=Z.slice(Z.lastIndexOf(":")+1),j=M4(Y);if(j===null)continue;let D=await $.storage.get(V.workflow(j));if(!D){await $.storage.delete(Z);continue}let _=j$(D);if(!f$(_.status))continue;yield _}}function ie($,U,G){return{manualOffset:ne(U?.offset),effectiveLimit:oe(re(U?.limit),G)}}function ne($){if($===void 0)return 0;if(!Number.isFinite($))return 0;if($<=0)return 0;return Math.floor($)}function re($){if($===void 0)return;if(!Number.isFinite($))return;if($<0)return;return Math.floor($)}function oe($,U){if($===void 0)return U;if(U===void 0)return $;return Math.min($,U)}async function se($,U,G,J){if(!f$(U.status))return!1;if(await U6($.storage,V.teardownOwed(U.id)))return!1;if(!G)return!0;let X=ae($,U);return X!==null&&X<=J}function ae($,U){if(!f$(U.status))return null;let G=$.registrations.get(U.type)?.retention??$.options.retention,J=KC(G,U.status);if(J===void 0)return null;return U.updatedAt+J}async function MB($,U,G){let J=await NB($,U);await $.storage.batch(J),qB($,U.id,G)}async function NB($,U){let G=U.id,J=await $.storage.get(V.attribute(G)),X=te(U,J),Q=await U$$($,U);return L$$(X,Q),X.push(...H6(G,U,null).batchOps),X}function qB($,U,G){Q0($,U),$.checkpoints.delete(U),$.heartbeatDetails.delete(U),$.lastHeartbeatDetailsByStep.delete(U);for(let[J,X]of $.pendingAsyncActivities)if(X.workflowId===U)$.pendingAsyncActivities.delete(J);$.pendingAsyncActivityResolutions.delete(U),$.eventLogHeads.delete(U),$.workflowVersionTuples.delete(U),$.handleCache.delete(U),$.resultResolvers.delete(U),$.workflowHeaders.delete(U),$.workflowNestingDepths.delete(U),$.workflowTypeByWorkflowId.delete(U),G(U)}function te($,U){return[...ee($.id,U),...$$$($)]}function ee($,U){if(!U)return[];let G=O(U);return i$($,G,{}).filter(zE)}function $$$($){return m2($.id,k$($.tags),void 0).filter(zE)}function zE($){return $.type==="delete"}async function U$$($,U){let G=U.id,J=G$$(U);return J$$(J,U),X$$(J,U),await Z$$($.storage,J,G),await j$$($.storage,J,G),J}function G$$($){return new Set([V.workflow($.id),V.checkpoint($.id),V.workflowHeaders($.id),V.terminalCleanupNeeded($.id),V.workflowConcurrencyHolder($.id),V.workflowHasServices($.id),V.finalizerState($.id),V.teardownOwed($.id),V.attribute($.id),V.terminalWorkflow($.updatedAt,$.id)])}function J$$($,U){if(U.executionDeadline===void 0)return;$.add(V.deadline(U.executionDeadline,U.id)),$.add(`timer-idx:deadline:${U.id}`)}function X$$($,U){if(U.terminalCleanupToken===void 0)return;let G=d2(Q$$(U),U.terminalCleanupToken);$.add(V.terminalCleanup(U.updatedAt+R5,G))}function Q$$($){return $.status==="cancelled"||$.status==="timed-out"}async function Z$$($,U,G){let J=V.updatePrefix(G),X=await BE($,J);for(let Q of X)U.add(Q),Y$$(U,J,Q)}function Y$$($,U,G){let J=G.slice(U.length);if(J.length>0)$.add(V.updateResponse(J))}async function j$$($,U,G){for(let J of _$$(G)){let X=await BE($,J);for(let Q of X)U.add(Q)}await D$$($,U,G)}async function D$$($,U,G){let J=V.fleetEventByWorkflowPrefix(G);for await(let[X]of $.scan(J)){U.add(X);let Q=H$$(J,X);if(Q!==null)U.add(V.fleetEvent(Q))}}function H$$($,U){if(!U.startsWith($))return null;let G=U.slice($.length);if(!/^\d+$/.test(G))return null;let J=Number(G);return Number.isSafeInteger(J)?J:null}function _$$($){let U=R($);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}:`,t7($),`sigres:v1:${U}:`]}function L$$($,U){for(let G of U)$.push({type:"delete",key:G})}async function BE($,U){let G=[];for await(let J of vG($,U))G.push(J);return G}var R5=60000;var T5=B(()=>{y();u();D6();u6();e2();HU();c3();B$();A$();_6()});function E5($){let U=new WeakSet,G=(J)=>{if(V$$(J))return!0;if(z$$(J))return!1;if(Array.isArray(J))return B$$(J,U,G);if(typeof J==="object")return W$$(J,U,G);return!1};return G($)}function WE($){if($===void 0)return null;if($ instanceof Error)return{name:$.name,message:$.message};if(E5($))return $;try{let U=JSON.stringify($);if(U===void 0)return OB($);let G=JSON.parse(U);return E5(G)?G:OB($)}catch{return OB($)}}function V$$($){if($===null)return!0;if(typeof $==="number")return Number.isFinite($);return typeof $==="string"||typeof $==="boolean"}function z$$($){let U=typeof $;return U==="undefined"||U==="bigint"||U==="function"||U==="symbol"}function B$$($,U,G){if(U.has($))return!1;U.add($);for(let J of $)if(!G(J))return!1;return U.delete($),!0}function W$$($,U,G){if(!F$$($))return!1;if(U.has($))return!1;U.add($);for(let J of Object.values($))if(!G(J))return!1;return U.delete($),!0}function OB($){if(typeof $==="bigint")return $.toString();if(typeof $==="symbol")return $.description??null;return null}function F$$($){if(!$||typeof $!=="object")return!1;let U=Reflect.getPrototypeOf($);return U===Object.prototype||U===null}function d3($){let U=AB($);return yG(U)}function AB($){if($===null)return"null";if($===void 0)return K$$;if(typeof $!=="object")return JSON.stringify($);if(Array.isArray($))return"["+$.map(AB).join(",")+"]";let U=$;return"{"+Object.keys(U).toSorted().filter((J)=>U[J]!==void 0).map((J)=>`${JSON.stringify(J)}:${AB(U[J])}`).join(",")+"}"}function P$$($){if(typeof $!=="object"||$===null)return!1;let U=$;if(typeof U.status!=="string"||typeof U.effectName!=="string")return!1;let G=U.status;if(G==="in-flight")return typeof U.recordedAt==="number";if(G==="committed")return E5(U.output)&&typeof U.completedAt==="number";if(G==="aborted")return typeof U.reason==="string"&&typeof U.completedAt==="number";return!1}class M$${#$;#U;#G;#J=0;constructor($,U,G){this.#$=$,this.#U=U,this.#G=G}get duplicatesPrevented(){return this.#J}recordReplay(){this.#J++}async lookup($){let U=V.toolEffect(this.#U,this.#G,$),G=await this.#$.get(U);if(!G)return null;let J=O(G);if(!P$$(J))return null;return J}async record($,U){let G={status:"in-flight",effectName:U,recordedAt:Date.now()};await this.#X($,G)}async commit($,U,G){let J={status:"committed",effectName:U,output:WE(G),completedAt:Date.now()};await this.#X($,J)}async abort($,U,G){let J={status:"aborted",effectName:U,reason:G,completedAt:Date.now()};await this.#X($,J)}async#X($,U){let G=V.toolEffect(this.#U,this.#G,$);await this.#$.put(G,N(U))}}var K$$="\x00undefined";var FE=B(()=>{N4();y();u()});function b5($,U,G){let X=(U.status===void 0?G:Array.isArray(U.status)?U.status:[U.status]).filter((Z)=>G.includes(Z));if(X.length===0)return{...U,status:[]};if(X.length!==1)return{...U,status:X};let[Q]=X;return{...U,status:Q??[]}}async function l3($,U,G,J,X,Q){let Z=await E$$($,G);return RB(U,J,X,Z,Q)}function RB($,U,G,J,X){let Q=A$$(U),Z=O$$(Q,J),Y=C$$($,Q,G,Z,X),j=R$$($,Q,G,J),D=Z.sampleWorkflowIds;return{workflowIds:J.map((_)=>_.id),confirmationToken:j,scope:Z,preview:{dryRun:!0,action:$,matched:J.length,requestId:Y,scope:Z,sampleWorkflowIds:D,confirmationToken:j,confirmationTokenVersion:1}}}function O$$($,U){let G=U.slice(0,KE).map((J)=>J.id);return{matched:U.length,filter:$,statuses:CB(U.map((J)=>J.status)),workflowTypes:CB(U.map((J)=>J.type)),sampleWorkflowIds:G,sampleLimit:KE}}function A$$($){let U={};if($.status!==void 0)U.status=Array.isArray($.status)?CB($.status):$.status;if($.type!==void 0)U.type=$.type;let G=k$($.tags);if(G!==void 0)U.tags=G;if($.attributes!==void 0)U.attributes=$.attributes.map((J)=>({key:o$(J.key),...J.value===void 0?{}:{value:Array.isArray(J.value)?[...J.value]:J.value},...J.gt===void 0?{}:{gt:J.gt},...J.lt===void 0?{}:{lt:J.lt},...J.gte===void 0?{}:{gte:J.gte},...J.lte===void 0?{}:{lte:J.lte}})).toSorted((J,X)=>d3(J).localeCompare(d3(X)));if($.limit!==void 0)U.limit=$.limit;if($.offset!==void 0)U.offset=$.offset;return U}function C$$($,U,G,J,X){let Q=X.requestId?.trim();if(Q!==void 0&&Q.length>0)return Q;return`bulk:${d3({action:$,actionParameters:S5(G),filterSummary:U,matched:J.matched,sampleWorkflowIds:J.sampleWorkflowIds})}`}function R$$($,U,G,J){return`bulk:${d3({version:1,action:$,actionParameters:S5(G),filterSummary:U,workflows:J.map((X)=>({id:X.id,status:X.status}))})}`}function D8($,U){if($.confirmationToken===void 0)return;if($.confirmationToken===U.confirmationToken)return;throw new j6}function H8($){return $.confirmationToken!==void 0||$.requestId!==void 0||$.principal!==void 0}async function _8($,U,G,J,X){let Q=await T$$($,U,G,X);return{...J,auditEvent:Q}}async function T$$($,U,G,J){let X=$.options.getNow(),Q=G.requestId?.trim(),Z=Q!==void 0&&Q.length>0?Q:U.preview.requestId,Y={type:"bulk-operation:audit",action:U.preview.action,requestId:Z,timestamp:X,principal:G.principal??q$$,filterSummary:U.scope.filter,scope:U.scope,affectedCount:J,sampleWorkflowIds:U.scope.sampleWorkflowIds,confirmationToken:U.confirmationToken};return await $.storage.put(V.bulkOperationAudit(X,Z,U.confirmationToken),N(Y)),Y}function L8($){let U=$.bulkConcurrency;if(U!==void 0&&(!Number.isSafeInteger(U)||U<1))throw Error('Field "bulkConcurrency" must be a positive integer');let G="confirmationToken"in $?$.confirmationToken:void 0;if(G!==void 0&&G.length>l9)throw Error(`Field "confirmationToken" must be at most ${String(l9)} characters`);if($.requestId!==void 0&&$.requestId.length>y0)throw Error(`Field "requestId" must be at most ${String(y0)} characters`);return $}function i3($){return $.bulkConcurrency??N$$}function n3($,U,G){return{id:U,error:G instanceof Error?G.message:String(G)}}async function E$$($,U){let G=[];for await(let J of PB($,U))for(let X of J)G.push(PE(X));return G}function PE($){return{id:$.id,type:$.type,status:$.status,updatedAt:$.updatedAt}}function CB($){return[...new Set($)].toSorted((U,G)=>U.localeCompare(G))}function S5($){if(S$$($))return $;if(typeof $==="bigint")return $.toString();if(typeof $==="symbol")return String($);if(typeof $==="function")return"[function]";if(Array.isArray($))return $.map(S5);let U=$,G={};for(let J of Object.keys(U).toSorted())G[J]=S5(U[J]);return G}function S$$($){return $===null||$===void 0||typeof $==="string"||typeof $==="number"||typeof $==="boolean"}async function ME($,U){let G=[];for await(let J of PB($,U))for(let X of J){if(!f$(X.status))throw new z1;G.push(PE(X))}return G}var KE=20,N$$=1,q$$;var NE=B(()=>{y();u();FE();D6();u6();F$();c3();A$();q$$={method:"in-process"}});function V8(){return{holders:[],waiters:[]}}function b$$($){if($===void 0)return V8();return{holders:Array.isArray($.holders)?$.holders:[],waiters:Array.isArray($.waiters)?$.waiters:[]}}function x$$($,U){return $.filter((G)=>G.leaseExpiresAt>U)}function TB($,U){let{holderId:G,now:J}=U,X=b$$($);return{holders:x$$(X.holders,J).filter((Q)=>Q.holderId!==G),waiters:X.waiters.filter((Q)=>Q!==G)}}var qE=()=>{};function v$$($,U){return{key:t0($),expectedValue:U===0?null:N(U)}}function g$$($){if($===void 0)return V8();return{holders:Array.isArray($.holders)?$.holders:[],waiters:Array.isArray($.waiters)?$.waiters:[]}}function I$$($,U){return $.filter((G)=>G.leaseExpiresAt>U)}function h$$($,U){let G=g$$($),J=I$$(G.holders,U.now);if(J.some((X)=>X.holderId===U.workflowId))return{acquired:!0,record:{holders:J.map((X)=>X.holderId===U.workflowId?{holderId:U.workflowId,leaseExpiresAt:OE}:X),waiters:[]}};if(J.length>=U.limit)return{acquired:!1,record:{holders:J,waiters:[]}};return{acquired:!0,record:{holders:[...J,{holderId:U.workflowId,leaseExpiresAt:OE}],waiters:[]}}}function y$$($,U,G){if(G.key===void 0)return $;let J;try{J=G.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 J!=="string")throw TypeError(`workflow("${$}").concurrency.key must return a string partition key`);return J}function m$$($,U){return{version:EB,workflowType:$,partitionKey:U}}function k$$($){let U=O($);if(typeof U!=="object"||U===null)return null;let G=U;if(G.version!==EB||typeof G.workflowType!=="string"||typeof G.partitionKey!=="string")return null;return{version:EB,workflowType:G.workflowType,partitionKey:G.partitionKey}}async function x5($,U,G,J,X){let Q=y$$(U,J,X),Z=V.workflowConcurrency(U,Q),Y=await e0($.storage,Z,{initial:V8()}),j=h$$(Y.value,{workflowId:G,now:$.options.getNow(),limit:X.max});if(!j.acquired)throw new a9({workflowType:U,limit:X.max,partitionKey:Q});return{stateKey:Z,conditions:[v$$(Z,Y.version)],operations:[{type:"put",key:Z,value:N(j.record)},{type:"put",key:t0(Z),value:N(Y.version+1)},{type:"put",key:V.workflowConcurrencyHolder(G),value:N(m$$(U,Q))},{type:"put",key:V.terminalCleanupNeeded(G),value:new Uint8Array(0)}]}}async function z8($,U){let G=V.workflowConcurrencyHolder(U),J=await $.storage.get(G);if(J===null)return;let X=k$$(J);if(X===null){await $.storage.delete(G);return}let Q=V.workflowConcurrency(X.workflowType,X.partitionKey);await new i2($.storage,Q,{initial:V8()}).update((Y)=>TB(Y,{holderId:U,now:$.options.getNow()})),await $.storage.delete(G)}var EB=1,OE;var r3=B(()=>{y();$U();u();qE();F$();OE=Number.MAX_SAFE_INTEGER});async function v5($,U,G){let J=[];for(let X=0;X<$.length;X+=U){let Q=$.slice(X,X+U);J.push(...await Promise.all(Q.map(async(Z)=>{try{return{item:Z,status:"fulfilled",value:await G(Z)}}catch(Y){return{item:Z,status:"rejected",reason:Y}}})))}return J}async function CE($,U,G){return p3($,U,{expiredOnly:!1,now:$.options.getNow()},G)}async function u$$($,U,G={}){G=L8(G),p4(U);let J=b5($,U,AE),X=await l3($,"cancel",J,U,{},G);if(G.dryRun===!0)return X.preview;D8(G,X);let Q=X.workflowIds,Z=i3(G),Y=0,j=[],D=await v5(Q,Z,async(L)=>{try{if(await $.engine.cancel(L),(await J$($,L))?.status==="cancelled")return{status:"cancelled"};return{status:"failed",error:{id:L,error:"Workflow no longer cancellable"}}}catch(W){return{status:"failed",error:n3($,L,W)}}});for(let L of D){if(L.status==="rejected"){j.push(n3($,L.item,L.reason));continue}let{value:W}=L;if(W.status==="cancelled"){Y+=1;continue}j.push(W.error)}let _={cancelled:Y,failed:j.length,errors:j};if(!H8(G))return _;return _8($,X,G,_,Y)}async function RE($,U,G={}){return u$$($,U,G)}async function c$$($,U,G={}){G=L8(G),p4(U);let J=b5($,U,f$$),X=await l3($,"retry-failed",J,U,{},G);if(G.dryRun===!0)return X.preview;D8(G,X);let Q=i3(G),Z=0,Y=[],j=await v5(X.workflowIds,Q,async(_)=>{try{return await p$$($,_),{status:"retried"}}catch(L){return{status:"failed",error:n3($,_,L)}}});for(let _ of j){if(_.status==="rejected"){Y.push(n3($,_.item,_.reason));continue}let{value:L}=_;if(L.status==="retried"){Z+=1;continue}Y.push(L.error)}let D={retried:Z,failed:Y.length,errors:Y};if(!H8(G))return D;return _8($,X,G,D,Z)}async function TE($,U,G={}){return c$$($,U,G)}async function p$$($,U){let G=await J$($,U);if(G===null)throw Error("Workflow no longer exists");if(G.status!=="failed")throw Error(`Workflow is ${G.status}, not failed`);if(await $.storage.get(V.checkpoint(U))!==null){await d$$($,G),await $.engine.resume(U);return}await $.engine.start(G.type,G.input,{id:U,onTerminalConflict:"start-new",...G.tags!==void 0?{tags:G.tags}:{}})}async function d$$($,U){let G=await i6($,U.id,async()=>l$$($,U.id));if(G.terminalCleanupTimerId!==void 0)await $.scheduler.cancel(G.terminalCleanupTimerId,U.id)}async function l$$($,U){let G;for(let J=0;J<w$$;J+=1){let X=await $.storage.get(V.workflow(U));if(X===null)throw Error("Workflow no longer exists");let Q=j$(X);if(Q.status!=="failed")throw Error(`Workflow is ${Q.status}, not failed`);let Z=await $.storage.get(V.checkpoint(U));if(Z===null)throw Error("Checkpoint no longer exists");let Y=I$(Z),j=$.registrations.get(Q.type);if(j===void 0)throw Error(`No workflow registered with name "${Q.type}" (needed to retry "${U}")`);let D=j.concurrency===void 0?void 0:await x5($,Q.type,U,Q.input,j.concurrency);G=D?.stateKey??G;let _=n$$($,Q),L=await r$$($,U),W=[...Z8(Q,_),{type:"put",key:V.workflow(U),value:N(_)},...H6(U,Q,_).batchOps,...o$$(U,L,Y.searchAttributes),..._.executionDeadline===void 0?[]:x$({id:`deadline:${U}`,workflowId:U,fireAt:_.executionDeadline,kind:"execution-deadline"}),...D?.operations??[]],F=D?.conditions??[];if(await i$$($,W,F))return{terminalCleanupTimerId:Q.terminalCleanupToken===void 0?void 0:d2(!1,Q.terminalCleanupToken)}}throw Error(`Workflow concurrency admission for "${G??U}" changed too many times while retrying failed workflow "${U}"`)}async function i$$($,U,G){if(G.length===0)return await $.storage.batch(U),!0;return q$($.storage,"conditionalBatch","retry failed workflow"),W$($.storage,G,U)}function n$$($,U){let G={...U,status:"running",updatedAt:$.options.getNow()};return delete G.error,delete G.errorStack,delete G.failureCategory,delete G.result,delete G.terminationReason,delete G.terminalCleanupToken,G}async function r$$($,U){let G=await $.storage.get(V.attribute(U));if(G===null)return{};return O(G)}function o$$($,U,G){let J=i$($,U,G);if(Object.keys(G).length===0)J.push({type:"delete",key:V.attribute($)});else J.push({type:"put",key:V.attribute($),value:N(G)});return J}async function SB($,U,G,J,X){let Q=L8(X??{});if(p4(U),G.length===0)throw Error('Field "name" must be a non-empty string');let Z=b5($,U,AE),Y=await l3($,"signal",Z,U,{name:G,payload:J},Q);if(Q.dryRun===!0)return Y.preview;D8(Q,Y);let j=Y.workflowIds,D=i3(Q),_=0,L=0,W=await v5(j,D,async(P)=>{try{return await $.engine.signal(P,G,J),{status:"signalled"}}catch{return{status:"failed"}}});for(let P of W)if(P.status==="fulfilled"&&P.value.status==="signalled")_+=1;else L+=1;let F={signalled:_,failed:L};if(!H8(Q))return F;return _8($,Y,Q,F,_)}async function s$$($,U,G,J={}){J=L8(J),p4(U);let X=await ME($,U),Q=RB("delete",U,{},X,J);if(J.dryRun===!0){let _=[];for(let L of Q.workflowIds)if(await U6($.storage,V.teardownOwed(L)))_.push(L);return _.length>0?{...Q.preview,skippedTeardownPending:_}:Q.preview}D8(J,Q);let Z=i3(J),Y=0,j=[];for(let _=0;_<Q.workflowIds.length;_+=C5){let L=Q.workflowIds.slice(_,_+C5),W=await a$$($,L),F=[];for(let A of W)if(await U6($.storage,V.teardownOwed(A.id)))j.push(A.id);else F.push(A);let P=await v5(F,Z,async(A)=>{return await MB($,A,G),A.id}),q=[];for(let A of P)if(A.status==="fulfilled")Y+=1;else q.push(A.reason);if(q.length>0)throw AggregateError(q,`Bulk delete failed for ${q.length} workflow(s) after deleting ${Y} workflow(s)`)}let D={deleted:Y,...j.length>0?{skippedTeardownPending:j}:{}};if(!H8(J))return D;return _8($,Q,J,D,Y)}async function EE($,U,G,J={}){return s$$($,U,G,J)}async function a$$($,U){let G=[];for(let J of U){let X=await J$($,J);if(X===null)continue;if(!f$(X.status))throw new z1;G.push(X)}return G}async function SE($,U,G,J={}){return xE($,U,G,"add",J)}async function bE($,U,G,J={}){return xE($,U,G,"remove",J)}async function xE($,U,G,J,X){X=L8(X),p4(U);let Z=await l3($,J==="add"?"tag:add":"tag:remove",U,U,{tags:G},X);if(X.dryRun===!0)return Z.preview;D8(X,Z);let Y=await GE($,U,G,J,Z.workflowIds);if(!H8(X))return Y;return _8($,Z,X,Y,Y.modified)}var AE,f$$,w$$=5;var g5=B(()=>{y();H5();d6();u();E$();D6();j8();T5();NE();F$();c3();B$();a$();A$();r3();_6();T5();AE=["pending","running","suspended"],f$$=["failed"]});function I5($,U){let G=new m3(U,$.engine);return U6$($,U,G),G}function t$$($,U){let{promise:G,resolve:J,reject:X}=Promise.withResolvers(),Q={promise:G,resolve:J,reject:X};return $.resultResolvers.set(U,Q),G.catch(()=>{}),Q}function vE($,U){let G=$.resultResolvers.get(U);if(G)return G.promise;if($.disposed){let X=Promise.reject(new D4);return X.catch(()=>{}),X}let J=t$$($,U);return e$$($,U,J),J.promise}async function e$$($,U,G){try{let J=await J$($,U);if($6$($,U,G))return;if(!J){$.resultResolvers.delete(U),G.reject(Error(`Workflow "${U}" not found in storage`));return}if(J.status==="running"||J.status==="pending"||J.status==="suspended")return;try{let X=await $E($,U);bB($,U,G),G.resolve(X)}catch(X){bB($,U,G),G.reject(X)}}catch(J){bB($,U,G),G.reject(J)}}function $6$($,U,G){let J=$.resultResolvers.get(U);if(J===void 0||J===G)return!1;return J.promise.then(G.resolve,G.reject),!0}function bB($,U,G){if($.resultResolvers.get(U)===G)$.resultResolvers.delete(U)}function U6$($,U,G){let J=$.handleCache.get(U);if(J)$.finalizationRegistry.unregister(J.unregisterToken);let X={};$.handleCache.set(U,{ref:new WeakRef(G),unregisterToken:X}),$.finalizationRegistry.register(G,U,X)}var xB=B(()=>{F$();G0();a$()});function J6$($){if(typeof $!=="object"||$===null)return!1;let U=$;if(U.type!=="event-log-watermark"||U.version!==1)return!1;let G=U.prevHash;if(typeof G!=="string"||G.length===0)return!1;return X6$(U.sequence,U.deletedThrough)}function X6$($,U){return typeof $==="number"&&Number.isSafeInteger($)&&$>0&&U===$-1}async function Z0($,U){let G=await $.get(V.eventWatermark(U));if(G===null)return null;let J=O(G);return J6$(J)?J:null}async function gE($,U,G,J,X){if(J===null)return null;let Q=Math.max(0,G-J+1),Z=await Z0($,U),Y=Z?.sequence??0,j=Math.min(Q,Y+G6$);if(j<=Y)return null;let D=await Y6$($,U,Y,j);if(D===null)return null;let _=hG(D.lastDeletedBytes),L={type:"event-log-watermark",version:1,sequence:j,prevHash:_,deletedThrough:j-1,...Q6$(Z6$(Z?.checkpointReplay,D.deletedEntries))};for(let W=Y;W<j;W+=1)X.push({type:"delete",key:V.event(U,W)});return X.push({type:"put",key:V.eventWatermark(U),value:N(L)}),{watermark:L,deletedEntries:D.deletedEntries,deletedRange:{from:Y,to:j-1}}}function Q6$($){return $===void 0?{}:{checkpointReplay:$}}function Z6$($,U){let G=$;for(let J of U){let X=O(J);if(!F1(X))continue;G=O7(G,f2(X.payload))}return G}async function Y6$($,U,G,J){let X=[],Q=G,Z=V.eventPrefix(U),Y=V.event(U,G),j=V.event(U,J);for await(let[,_]of $.scan(Z,{gte:Y,lt:j})){let L=O(_);if(!F1(L)||L.sequence!==Q)return null;X.push(_),Q+=1}if(Q!==J||X.length===0)return null;let D=X[X.length-1];if(D===void 0)return null;return{deletedEntries:X,lastDeletedBytes:D}}function IE($){return N($)}var G6$=1000;var o3=B(()=>{N4();y();u();L3();s0()});async function hE($,U){for(let J=0;J<5;J+=1){let X=await Z0($,U),Q=await _3($,U),Z=await j6$($,U,X,Q);if(Z.outcome==="ok")return{valid:!0};let Y=await Z0($,U),j=await _3($,U),D=(Y?.sequence??-1)>(X?.sequence??-1),_=j.sequence!==Q.sequence||j.lastHash!==Q.lastHash;if(D||_)continue;return{valid:!1,firstInvalidSequence:Z.firstInvalidSequence}}return{valid:!1,indeterminate:!0,reason:"concurrent-compaction"}}async function j6$($,U,G,J){let X=G?.prevHash??H3,Q=G?.sequence??0,Z=V.eventPrefix(U),Y=G?{gte:V.event(U,G.sequence)}:void 0,j=await H6$($,Z,Y,X,Q);if(j.outcome==="invalid")return j;if(j.entriesSeen===0&&G!==null)return{outcome:"invalid",firstInvalidSequence:G.sequence};return D6$(j,J)}function D6$($,U){if(U.sequence===n0.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 H6$($,U,G,J,X){let Q=J,Z=0,Y=-1;for await(let[,j]of $.scan(U,G)){let D=O(j);if(!F1(D))continue;let _=_6$(D,Q,Z===0,X);if(_.outcome==="invalid")return _;Z+=1,Y=D.sequence,Q=N7(j)}return{outcome:"scanned",entriesSeen:Z,lastSequence:Y,lastHash:Q}}function _6$($,U,G,J){if(G&&$.sequence!==J)return{outcome:"invalid",firstInvalidSequence:J};if($.prevHash!==U)return{outcome:"invalid",firstInvalidSequence:$.sequence};return{outcome:"ok"}}var yE=B(()=>{y();u();o3();L3()});class S6{#$;#U;constructor($,U){this.#$=$,this.#U=U}appendToBatch($,U,G,J){let{entry:X,encoded:Q,newHead:Z}=this.#G($,G,J);return U.push({type:"put",key:V.event(this.#U,Z.sequence),value:Q},{type:"put",key:V.eventHead(this.#U),value:N(Z)}),{newHead:Z,timestamp:X.timestamp}}async append($,U,G){let J=await this.#J(),{encoded:X,hash:Q,newHead:Z}=this.#G($,J,G),Y={type:"put",key:V.event(this.#U,Z.sequence),value:X},j={type:"put",key:V.eventHead(this.#U),value:N(Z)};if(U)U.push(Y,j);else await this.#$.batch([Y,j]);return{sequence:Z.sequence,hash:Q,newHead:Z}}async*scan($){let U=$?.fromSequence??0,G=V.eventPrefix(this.#U),J=V.event(this.#U,U);for await(let[,X]of this.#$.scan(G,{gte:J})){let Q=O(X);if(F1(Q))yield Q}}async replay($){let U=[];for await(let G of this.scan()){if(G.sequence>$)break;U.push(G)}return U}async verify(){return hE(this.#$,this.#U)}async loadHead(){return this.#J()}#G($,U,G){let J=U.sequence+1,X=U.lastHash,Q={type:$.type,workflowId:this.#U,sequence:J,prevHash:X,payload:$.payload,timestamp:Date.now()};if(G!==void 0)Q.versionTuple=G;let Z=N(Q),Y=N7(Z);return{entry:Q,encoded:Z,hash:Y,newHead:{sequence:J,lastHash:Y}}}async#J(){return _3(this.#$,this.#U)}}var _U=B(()=>{y();u();L3();yE()});async function vB($,U,G,J){let X=$.options.historyPolicy.maxEvents;if(X===null||G.sequence+1<=X)return!1;return await J.enforceHistoryCircuitBreaker(U),!0}async function kE($,U,G){if($.options.historyPolicy.maxEvents===null)return!1;let J=$.eventLogHeads.get(U)??await new S6($.storage,U).loadHead();return vB($,U,J,G)}function s3($,U,G){return G.createWorkflowHandleWithResultPromise(U)}function M1($,U,G,J){if(!G||G.size===0){$.workflowHeaders.delete(U);return}$.workflowHeaders.set(U,new Map(G)),$.workflowsNeedingTerminalCleanup.add(U)}async function LU($,U,G){return UE($,U)}async function gB($,U,G){if(await U6($.storage,V.terminalCleanupNeeded(U)))$.workflowsNeedingTerminalCleanup.add(U)}function IB($,U,G,J){if(U===void 0)return;return k$(v$(U,G??"options.tags"))}async function hB($,U,G){try{await G.processPendingUpdatesForHandlers(U)}catch(J){G.handleCleanupError("processPendingUpdates",J,U)}}var mE="weft:forkedFrom",F6;var N1=B(()=>{y();_U();m$();u6();a$();F6=new Uint8Array(0)});function B8($,U,G){return{workflowVersion:U.version}}function h5($,U,G){return U.versionTuple}function y5($,U,G,J,X,Q){let Z=HC(J.version,X.version),Y=B8($,X,Q),j=YC(h5($,G,Q),Y),D=j.workflowVersion!==void 0||j.agentVersion!==void 0||j.toolVersions!==void 0;if(Z==="incompatible"||D)fE($,U,G,X,j,Q);return{state:G,checkpoint:J,versionTuple:Y,shouldPersistPreparedState:!1}}async function yB($,U,G,J,X,Q,Z){let Y=y5($,U,G,J,Q,Z),j=await o0($.storage,U,Y.checkpoint);return{state:Y.state,checkpoint:j,serializedCheckpoint:X,versionTuple:Y.versionTuple}}function fE($,U,G,J,X,Q){throw new Yz(U,G.type,G.versionTuple.workflowVersion,J.version,void 0,X)}var a3=B(()=>{jz();s0()});async function k5($,U,G,J,X=()=>{}){let Q=$.options.resolveWorkflowServices;if($.inlineStrategy===null)return!1;if($.workflowServices.has(U.id))return!1;if(await $.storage.get(V.workflowHasServices(U.id))===null)return!1;if(!Q){let Y=V6$(U.id);X(new R4(U.id,Y,[L6$]));try{await G(U.id,m5(U.id,Y))}catch(j){J("reprovideRecoveredServices",j,U.id)}return!0}let Z;try{let Y=await Q({workflowId:U.id,workflowType:U.type,input:U.input});if(Y.status==="available")return $.workflowServices.set(U.id,Y.services),!1;Z=Y.reason}catch(Y){Z=Y instanceof Error?Y.message:String(Y)}try{await G(U.id,m5(U.id,Z))}catch(Y){J("reprovideRecoveredServices",Y,U.id)}return!0}function m5($,U){return Error(`Workflow "${$}" services unavailable: ${U}`)}function V6$($){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 L6$="EngineOptions.resolveWorkflowServices";var f5=B(()=>{y();Y$()});function uE($,U,G,J,X){return{id:`delayed-start:${U}`,workflowId:U,fireAt:G,kind:"delayed-start",...J?.executionTimeout!==void 0&&{executionTimeoutMs:X.parseStartOptionDuration(J.executionTimeout,"options.executionTimeout")}}}async function cE($,U,G,J){if(G.scheduledFireAt<=$.options.getNow()){J.completeOperation(U,void 0);return}let{promise:X,resolve:Q}=Promise.withResolvers();if(await $.scheduler.schedule({id:`sleep:${G.operationId}`,workflowId:U,fireAt:G.scheduledFireAt,kind:"sleep"}),z6$($,U,G.operationId,Q),await X,(await J.loadWorkflowState(U))?.status==="running")J.completeOperation(U,void 0)}function z6$($,U,G,J){$.sleepResolvers.set(`${U}:${G}`,J);let X=$.sleepResolversByWorkflow.get(U);if(!X)X=new Set,$.sleepResolversByWorkflow.set(U,X);X.add(G)}async function B6$($,U,G){let J=await G.loadWorkflowState(U.workflowId);if(!J||J.status!=="pending")return;let X=await W6$($,U,G);if(!X)return;let Q=$.registrations.get(J.type);if(!Q){await G.failWorkflow(U.workflowId,Error(`No workflow registered with name "${J.type}"`));return}let Z=$.options.getNow(),Y=await F6$(U,Z,G);if(Y==="invalid")return;let j=await G.runSerializedWorkflowStateWrite(U.workflowId,async()=>{let _=await G.loadWorkflowState(U.workflowId);if(!_||_.status!=="pending")return null;let L={..._,status:"running",startedAt:Z,updatedAt:Z,...Y!==void 0&&{executionDeadline:Y}},W=[{type:"put",key:V.workflow(U.workflowId),value:N(L)},...H6(U.workflowId,_,L).batchOps];if(Y!==void 0)W.push(...x$({id:`deadline:${U.workflowId}`,workflowId:U.workflowId,fireAt:Y,kind:"execution-deadline"}));return await C$($,W,[],()=>Error(`Delayed-start transition for workflow "${U.workflowId}" lost its CAS race.`)),L});if(!j)return;if(await k5($,j,(_,L)=>G.failWorkflow(_,L),G.handleCleanupError,G.dispatchEvent))return;if(await U6($.storage,V.terminalCleanupNeeded(U.workflowId)))$.workflowsNeedingTerminalCleanup.add(U.workflowId);$.checkpoints.set(U.workflowId,X),$.workflowVersionTuples.set(U.workflowId,G.workflowVersionTupleFromState(j)),G.setWorkflowStartHeaders(U.workflowId,await G.loadWorkflowStartHeaders(U.workflowId)),G.beginWorkflowExecution(U.workflowId,j.type,j.input,X,Y,j.executionStateOwnerId??U.workflowId,Q)}async function W6$($,U,G){let J=await $.storage.get(V.checkpoint(U.workflowId));if(!J)return await G.failWorkflow(U.workflowId,Error(`Checkpoint not found for delayed workflow "${U.workflowId}"`)),null;return I$(J)}async function F6$($,U,G){if($.executionTimeoutMs===void 0)return;if(!Number.isFinite($.executionTimeoutMs)||$.executionTimeoutMs<0)return await wE($,G),"invalid";try{return s$(U+$.executionTimeoutMs,`Delayed execution timeout for workflow "${$.workflowId}"`)}catch{return await wE($,G),"invalid"}}async function wE($,U){await U.failWorkflow($.workflowId,Error(`Invalid delayed execution timeout for workflow "${$.workflowId}"`))}async function mB($,U,G){if(U.id.startsWith("review-escalation:")||U.id.startsWith("review-timeout:")){await P6$($,U,G);return}if(U.kind==="delayed-start"){await B6$($,U,G);return}if(U.kind==="terminal-cleanup"){await G.runDeferredTerminalCleanup(U.workflowId,U.id);return}if(U.kind==="teardown"){await G.runWorkflowFinalizer(U.workflowId,U.id);return}if(U.kind==="schedule"){await G.handleScheduleTimer(U);return}if(U.kind==="sleep")M6$($,U);else if(U.kind==="wait-condition")K6$($,U);else if(U.kind==="execution-deadline")await G.timeout(U.workflowId)}function K6$($,U){let G=$.conditionWaiters.get(U.workflowId);if(G)G()}async function P6$($,U,G){let J=U.id.split(":")[1];if(!J)return;let X=$.reviewEscalationHandlers.get(J);if(!X)return;let Q=await G.loadWorkflowState(U.workflowId);if(!Q||Q.status!=="running")return;await X(U)}function M6$($,U){let G=U.id.replace("sleep:",""),J=`${U.workflowId}:${G}`,X=$.sleepResolvers.get(J);if(!X)return;$.sleepResolvers.delete(J),N6$($,U.workflowId,G),X()}function N6$($,U,G){let J=$.sleepResolversByWorkflow.get(U);if(!J)return;if(J.delete(G),J.size===0)$.sleepResolversByWorkflow.delete(U)}var w5=B(()=>{y();d6();u();E$();B4();f5();_6()});function pE($,U,G,J,X,Q,Z,Y,j,D,_,L){let W=g7(U,null,G).batchOps,F=[...L??[],{type:"put",key:V.workflow(U),value:N(G)},{type:"put",key:V.checkpoint(U),value:w$(J)},...W,...m2(U,void 0,G.tags),...O6$($,U,X,Q?.searchAttributes,_),...q6$(U,Q,j),...D??[]];if(Z!==void 0)F.push(...x$({id:`deadline:${U}`,workflowId:U,fireAt:Z,kind:"execution-deadline"}));if(Y)F.push(...x$(Y));return F}function q6$($,U,G){let J=G!==void 0&&G.size>0,X=U?.services!==void 0,Q=[];if(J)Q.push({type:"put",key:V.workflowHeaders($),value:S7(G)});if(X)Q.push({type:"put",key:V.workflowHasServices($),value:F6});if(J||X)Q.push({type:"put",key:V.terminalCleanupNeeded($),value:F6});return Q}function O6$($,U,G,J,X){if(!J||Object.keys(J).length===0)return[];return A6$($,G,J,X),Y8(J),[{type:"put",key:V.attribute(U),value:N(J)},...i$(U,{},J)]}function A6$($,U,G,J){if(!U.searchAttributes)return;let X=U.searchAttributes;for(let[Q,Z]of Object.entries(G)){if(!(Q in X))throw Error(`Unknown search attribute "${Q}". Registered attributes: ${Object.keys(X).join(", ")}`);d1(Q,Z,X[Q])}}var dE=B(()=>{y();d6();u();E$();D6();u6();j8();B$();_6();N1()});async function C6$($,U,G){if(G.length===0)return await C$($,U,[],()=>Error("Workflow start lost its CAS race.")),!0;return q$($.storage,"conditionalBatch","start preconditions"),J8($,U,G.map((J)=>J.condition))}async function R6$($,U){for(let G of U){if(G.source!=="start-precondition")continue;let J=await $.storage.get(G.condition.key);if(!xG(J,G.condition.expectedValue))return!0}return!1}function T6$($){return($??[]).map((U)=>({source:"start-precondition",condition:U}))}function E6$($){return $.map((U)=>({source:"workflow-concurrency",condition:U}))}function iE($,U){if(U===void 0||U.length===0)return $;return[...$??[],...U]}async function nE($,U){let{internals:G,workflowId:J,state:X,checkpoint:Q,registration:Z,options:Y}=$,j=$.buildWorkflowConcurrencyStartOperations===void 0?1:lE,D;for(let _=0;_<j;_+=1){let L=U?.(J),W=await $.buildWorkflowConcurrencyStartOperations?.();D=W?.stateKey??D;let F=pE(G,J,X,Q,Z,Y,X.executionDeadline,$.delayedStartTimer,$.persistedWorkflowStartHeaders,iE($.additionalStartOperations,iE(L?.operations,W?.operations)),$.callbacks,$.purgeDeleteOperations),P=[...T6$(L?.conditions),...E6$(W?.conditions??[])];if(await C6$(G,F,P))return;if(await R6$(G,P))throw new VU;if(W===void 0)throw new VU}throw new r1(D??"workflow concurrency admission",lE)}var VU,lE=5;var u5=B(()=>{y();$U();B4();dE();VU=class VU extends Error{constructor(){super("start idempotency compare-and-swap lost to a concurrent caller");this.name="StartIdempotencyRaceLostError"}}});function kB($,U,G,J,X,Q){let Z=Q.getComposedWorkflowInterceptor();if(!Z)return;let Y=new Map;if(X)for(let[D,_]of X)Y.set(D,_);let j;return Z.workflowStart({workflowId:U,workflowType:G,input:J,headers:Y},(D)=>{j=new Map(D.headers)}),j}function c5($,U,G,J,X,Q,Z,Y,j){if(Q!==0)$.workflowNestingDepths.set(U,Q);$.workflowTypeByWorkflowId.set(U,G),$.strategy.startWorkflow({workflowId:U,workflowType:G,input:J,checkpoint:w$(X),nestingDepth:Q,executionStateOwnerId:Y,startedAt:X.createdAt,sleepReferenceTime:X.createdAt,...Z!==void 0&&{deadline:Z},...$.workflowHeaders.has(U)&&{headers:[...$.workflowHeaders.get(U)]}})}function p5($,U,G,J,X,Q,Z,Y,j,D){let _=$.pendingNestingDepth??0;if($.pendingNestingDepth=void 0,$.inlineStrategy!==null){j.queueInlineWorkflowExecutionStart({workflowId:U,workflowType:G,input:J,checkpoint:X,nestingDepth:_,executionDeadline:Q,executionStateOwnerId:Z,...D!==void 0&&{onStarted:D}});return}j.dispatchEvent(new T4(U,G,J)),c5($,U,G,J,X,_,Q,Z,j),D?.()}function rE($,U,G){if(U?.defer!==!1)return;if($.inlineStrategy===null)throw new o('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(G)throw new o("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 oE($,U,G,J){if(U.isDelayed)return;let X=U.options?.defer===!1?Promise.withResolvers():void 0;if(p5($,G,U.type,U.input,U.checkpoint,U.state.executionDeadline,U.state.executionStateOwnerId??G,U.registration,J,X?()=>X.resolve():void 0),X)await X.promise}var fB=B(()=>{d6();Y$();m$()});function S6$($,U){return{signal:()=>({waiters:$.signalWaiters,byWorkflow:$.signalWaitersByWorkflow}),update:()=>({waiters:$.updateWaiters,byWorkflow:$.updateWaitersByWorkflow}),review:()=>({waiters:$.reviewWaiters,byWorkflow:$.reviewWaitersByWorkflow})}[U]()}function aE($,U,G){let{waiters:J,byWorkflow:X}=S6$($,G),Q=X.get(U);if(!Q)return;if(typeof Q==="string")J.delete(Q);else for(let Z of Q)J.delete(Z);X.delete(U)}function b6$($,U){let G=$.sleepResolversByWorkflow.get(U);if(!G)return;for(let J of G){let X=`${U}:${J}`,Q=$.sleepResolvers.get(X);if(Q)Q();$.sleepResolvers.delete(X)}$.sleepResolversByWorkflow.delete(U)}function x6$($,U){let G=$.sleepResolversByWorkflow.get(U);if(!G)return;for(let J of G)$.sleepResolvers.delete(`${U}:${J}`);$.sleepResolversByWorkflow.delete(U)}function v6$($,U){let G=$.conditionWaiters.get(U);if(!G)return;G(),$.conditionWaiters.delete(U)}function g6$($,U){$.conditionWaiters.delete(U)}function tE($,U,G){let J=$.workflowReviewIds.get(U);if(!J)return;for(let X of J){$.reviewEscalationHandlers.delete(X);let Q=$.reviewTimerIds.get(X);if(Q){for(let Z of Q)G.swallowPromiseRejection($.scheduler.cancel(Z,U));$.reviewTimerIds.delete(X)}}$.workflowReviewIds.delete(U)}function d4($,U,G){for(let J of eE)aE($,U,J);b6$($,U),v6$($,U),tE($,U,G),$.deliveredPendingUpdateIds.delete(U),$.workflowNestingDepths.delete(U),$.workflowHeaders.delete(U),$.workflowServices.delete(U),$.workflowTypeByWorkflowId.delete(U)}function uB($,U,G){for(let J of eE)aE($,U,J);x6$($,U),g6$($,U),tE($,U,G)}async function $S($,U,G){let J=R(U),X=[V.activityReconciliationPrefix(U),V.childCancellationPrefix(U),t7(U),V.signalAcceptedResponsePrefix(U),`sig:${J}:`,`state:execution:${J}:`,`tool-effect:${J}:`];if(G)X.push(`offload:${J}:`,`blob:${J}:`);if(await $.storage.delete(V.workflowHeaders(U)),await $.storage.delete(V.signalSequence(U)),await z8($,U),await $.storage.delete(V.workflowHasServices(U)),!await U6($.storage,V.teardownOwed(U)))await $.storage.delete(V.finalizerState(U));if($.storage.deletePrefix){for(let j of X)await $.storage.deletePrefix(j);return}let Q=500,Z=[],Y=async()=>{if(Z.length===0)return;await $.storage.batch(Z),Z=[]};for(let j of X)for await(let[D]of $.storage.scan(j))if(Z.push({type:"delete",key:D}),Z.length>=Q)await Y();await Y()}function cB($,U,G){$.workflowsNeedingTerminalCleanup.delete(U),Q0($,U),$.checkpoints.delete(U),$.heartbeatDetails.delete(U),$.lastHeartbeatDetailsByStep.delete(U);for(let[J,X]of $.pendingAsyncActivities)if(X.workflowId===U)$.pendingAsyncActivities.delete(J);$.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(u2(U,"events")),$.workflowFeedListeners.delete(u2(U,"tokens")),d4($,U,G)}function pB($,U,G){cB($,U,G)}async function d5($,U,G,J){cB($,U,J),await dB($,U,G,J)}async function dB($,U,G,J){await J.cleanupReviews(U),await $S($,U,G),await $.storage.delete(V.terminalCleanupNeeded(U))}async function lB($,U,G,J){let X=xC(G);if(!X){J.handleCleanupError("cleanupTerminalWorkflowDurableState",Error(`Ignoring malformed terminal cleanup timer id "${G}"`),U);return}let Q=await J.loadWorkflowState(U);if(!Q||!sE.has(Q.status))return;if(Q.terminalCleanupToken!==X.terminalCleanupToken)return;try{await dB($,U,X.includeOutputArtifacts,J)}catch(Z){throw J.handleCleanupError("cleanupTerminalWorkflowDurableState",Z,U),Z}}function t3($,U,G,J,X){let Q=G instanceof Error?G:Error(String(G));X.dispatchEvent(new hU(U,Q,J))}async function e3($,U,G){try{await G.handleScheduledWorkflowTerminal(U)}catch(J){G.handleCleanupError("handleScheduledWorkflowTerminal",J,U)}}var sE,wB,eE;var $G=B(()=>{y();Y$();e2();HU();B$();r3();sE=new Set(["completed","failed","cancelled","timed-out"]),wB=["running","pending","suspended"];eE=["signal","update","review"]});async function US($,U,G){let J=await $.storage.get(V.workflow(U));if(J===null)return null;if(G?.onTerminalConflict!=="start-new")throw new p$(U);let X=j$(J);if(!f$(X.status))throw new p$(U);if(await U6($.storage,V.teardownOwed(U)))throw new s9(U);return X}async function GS($,U,G){let J=(Q)=>d4($,Q,{swallowPromiseRejection:G.swallowPromiseRejection}),X=await NB($,U);return qB($,U.id,J),X}var JS=B(()=>{y();T5();F$();$G();A$()});function I6$($,U,G){let J=U?.id!==void 0,X=U?.id!==void 0?B1(U.id,"options.id"):crypto.randomUUID(),Q=$.pendingParentHeaders;$.pendingParentHeaders=void 0;let Z=$.pendingExecutionStateOwnerId,Y=Z===null?void 0:Z??X;$.pendingExecutionStateOwnerId=void 0;let j=$.options.getNow(),D=XS($,U,j,G),_=IB($,U?.tags,void 0,G),L=D!==void 0&&D>j?uE($,X,D,U,{parseStartOptionDuration:(W,F)=>W8($,W,F,G)}):void 0;return{workflowId:X,callerProvidedId:J,parentHeaders:Q,executionStateOwnerId:Y,submissionTime:j,delayedStartTimer:L,normalizedTags:_}}function h6$($,U){Q0($,U),$.checkpoints.delete(U),$.workflowHeaders.delete(U),$.workflowVersionTuples.delete(U),$.workflowServices.delete(U),$.workflowsNeedingTerminalCleanup.delete(U)}function y6$($,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 r6($,U,G,J,X,Q,Z){let Y=$.registrations.get(U);if(!Y)throw new T6(U);let j=Y.concurrency;y6$($,J),H7(J);let D=I6$($,J,Q),{workflowId:_,callerProvidedId:L,parentHeaders:W,executionStateOwnerId:F,delayedStartTimer:P}=D;if(rE($,J,Boolean(P)),$.pendingStarts.has(_))throw new p$(_);$.pendingStarts.add(_);let q=!1;try{let A=L?await US($,_,J):null;E6(G,$.options.payloadSizePolicy.maxBytes,"workflow input");let g=B8($,Y,Q),f=QS($,_,U,G,g,J,D.normalizedTags,F,P,Q),m=ZS($,_,g.workflowVersion,J,Q),p=kB($,_,U,G,W,Q),d=b7(p),X$=A!==null?await GS($,A,Q):void 0;if($.checkpoints.set(_,m),M1($,_,p,Q),$.workflowVersionTuples.set(_,g),await nE({internals:$,workflowId:_,state:f,checkpoint:m,registration:Y,options:J,delayedStartTimer:P,persistedWorkflowStartHeaders:d,additionalStartOperations:X,buildWorkflowConcurrencyStartOperations:j===void 0?void 0:()=>x5($,U,_,G,j),callbacks:Q,purgeDeleteOperations:X$},Z),J?.services!==void 0)$.workflowServices.set(_,J.services),$.workflowsNeedingTerminalCleanup.add(_);if(j!==void 0)$.workflowsNeedingTerminalCleanup.add(_);let M$=s3($,_,Q);return await oE($,{type:U,input:G,checkpoint:m,state:f,registration:Y,options:J,isDelayed:Boolean(P)},_,Q),q=!0,M$}finally{if($.pendingStarts.delete(_),!q)h6$($,_)}}function XS($,U,G,J){if(j7(U?.startAt,U?.startAfter),U?.startAt!==void 0)return L7(U.startAt,"options.startAt");if(U?.startAfter!==void 0){let X=W8($,U.startAfter,"options.startAfter",J);try{return s$(G+X,"options.startAfter")}catch{throw new o("options.startAfter must resolve to a finite, non-negative start time")}}return}function W8($,U,G,J){return G3(U,G)}function m6$($,U,G,J,X,Q,Z,Y){return{id:$,type:U,status:Q?"pending":"running",input:G,versionTuple:J,...X!==void 0&&{executionStateOwnerId:X},createdAt:Z,...!Q&&{startedAt:Z},updatedAt:Z,...Y!==void 0&&{tags:Y}}}function k6$($,U,G,J,X){if(U?.executionTimeout===void 0||G)return;let Q=W8($,U.executionTimeout,"options.executionTimeout",X);try{return s$(J+Q,"options.executionTimeout")}catch{throw new o("options.executionTimeout must resolve to a finite, non-negative deadline")}}function QS($,U,G,J,X,Q,Z,Y,j,D){let _=$.options.getNow(),L=m6$(U,G,J,X,Y,j,_,Z),W=k6$($,Q,j,_,D);if(W!==void 0)L.executionDeadline=W;return L}function ZS($,U,G,J,X){let Q=gz(U,G,$.options.getNow());if(J?.searchAttributes)Q.searchAttributes={...J.searchAttributes};return Q}var l5=B(()=>{d6();c4();E$();m$();HU();F$();w5();B$();r3();a3();N1();u5();fB();JS()});async function GG($,U){let G=await $.storage.get(V.startIdempotency(U));if(G===null)return;return O(G).workflowId}async function nB($,U){if(await J$($,U)===null)throw new f6(U);return U}async function u6$($,U){for(let G=0;G<f6$;G+=1){if(!$.pendingStarts.has(U))return;await Z1(w6$)}}async function rB($,U,G,J,X){let Q=await UG($,U,G,J,X);if(Q!==void 0)return Q;return await u6$($,U),UG($,U,G,J,X)}async function UG($,U,G,J,X){let Q=await J$($,U);if(Q===null)return;if(f$(Q.status))throw new u0(U,Q.status);return await X.signalExistingWorkflow(U,G.name,G.payload,J),X.getHandle(U)}async function YS($,U,G,J,X,Q){for(let Y=0;Y<iB;Y+=1){let j=await UG($,U,G,J,X);if(j!==void 0)return j;if(Y<iB-1)await Z1(c6$)}if(await GG($,Q)===U)throw new f6(U);throw Error(`startOrSignal resolved winning workflow "${U}" but its record never became readable after ${iB} attempts.`)}async function i5($,U){let G=await GG($,U);if(G===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 G}var f6$=5,w6$=5,iB=5,c6$=5;var oB=B(()=>{N4();y();u();F$();a$();A$()});function sB($,U,G){return(J)=>{let X=[],Q=[];if(U!==void 0){let Z=V.startIdempotency(U);X.push({type:"put",key:Z,value:N({workflowId:J})}),Q.push({key:Z,expectedValue:null})}if(G!==void 0){let Z=KT($,J,G.name,G.payload,G.signalId);X.push(...Z.operations),Q.push(Z.condition)}return{operations:X,conditions:Q}}}async function DS($,U,G,J,X,Q,Z){let Y=Q?.idempotencyKey;for(let j=0;j<jS;j+=1){let D=await d6$($,Q,async()=>{return r6($,U,G,Q,void 0,Z,sB($,Y,{name:J.name,payload:J.payload,signalId:X}))});if(D.kind==="created")return{handle:D.handle,outcome:"started"};if(D.kind==="lost-keyed")return{handle:await YS($,D.id,J,X,Z,D.idempotencyKey),outcome:"signalled"};if(D.kind==="lost-caller-id"){let _=await rB($,D.id,J,X,Z);if(_!==void 0)return{handle:_,outcome:"signalled"}}else{let _=await p6$($,U,G,J,X,Q,Z);if(_!==void 0)return _}}throw Error(`startOrSignal could not create workflow "${Q?.id??"<generated>"}" after ${jS} attempts: each concurrent same-id winner aborted before its durable commit.`)}async function p6$($,U,G,J,X,Q,Z){try{return{handle:await r6($,U,G,Q,void 0,Z),outcome:"started"}}catch(Y){if(!(Y instanceof p$))throw Y;let j=await rB($,Y.workflowId,J,X,Z);return j===void 0?void 0:{handle:j,outcome:"signalled"}}}async function d6$($,U,G){try{return{kind:"created",handle:await G()}}catch(J){if(J instanceof p$)return{kind:"lost-caller-id",id:J.workflowId};if(J instanceof VU){let X=U?.idempotencyKey;if(X!==void 0)return{kind:"lost-keyed",id:await i5($,X),idempotencyKey:X};return{kind:"signal-already-buffered"}}throw J}}var jS=5;var HS=B(()=>{y();u();F$();$0();u5();oB();l5()});function l6$($,U){if(U!==void 0)return V.startIdempotencySignalId(U);if($.signalId!==void 0)return $.signalId;throw new o("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 aB($,U,G,J,X){q$($.storage,"conditionalBatch","start idempotency");let{idempotencyKey:Q}=J;if(Q===void 0)throw new o("startWithIdempotency requires options.idempotencyKey");D7(Q,"options.idempotencyKey"),cV(J),H7(J);let Z=await GG($,Q);if(Z!==void 0)return X.getHandle(await nB($,Z));try{return await r6($,U,G,J,void 0,X,sB($,Q,void 0))}catch(Y){if(!(Y instanceof VU))throw Y}return X.getHandle(await nB($,await i5($,Q)))}function i6$($,U){let G=U?.idempotencyKey;if(G===void 0)return;if(D7(G,"options.idempotencyKey"),cV(U??{}),$.signalId!==void 0)throw new o("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 tB($,U,G,J,X,Q){q$($.storage,"conditionalBatch","startOrSignal"),_7(X,"startOrSignal");let Z=X?.idempotencyKey;i6$(J,X);let Y=l6$(J,Z),j=Z!==void 0?await GG($,Z):void 0,D=j??X?.id;if(D!==void 0){let _=await UG($,D,J,Y,Q);if(_!==void 0)return{handle:_,outcome:"signalled"};if(j!==void 0)throw new f6(j)}return DS($,U,G,J,Y,X,Q)}var _S=B(()=>{y();m$();F$();u5();HS();oB();l5()});function LS($,U,G){if($.searchAttributeSchema){if(!(U in $.searchAttributeSchema))throw Error(`Unknown search attribute "${U}". Registered attributes: ${Object.keys($.searchAttributeSchema).join(", ")}`);d1(U,G,$.searchAttributeSchema[U])}}function VS($,U,G){LS($,U,G),$.searchAttributes[U]=G,$.pendingAttributeChanges??={},$.pendingAttributeChanges[U]=G}function zS($,U){for(let[G,J]of Object.entries(U))LS($,G,J);for(let[G,J]of Object.entries(U))$.searchAttributes[G]=J,$.pendingAttributeChanges??={},$.pendingAttributeChanges[G]=J}function BS($,U){return $.searchAttributes[U]}function WS($){return{...$.searchAttributes}}var FS=B(()=>{D6()});function PS($,U,G,J){r6$(U,G,J);let X=`version:${U}`,Q=$[X];if(Q===void 0)return{localKey:X,version:J,newlyPinned:!0,checkpointLocals:{...$,[X]:J}};if(typeof Q!=="number"||!Number.isSafeInteger(Q))throw Error(`Invalid checkpointed workflow version patch "${U}" value ${JSON.stringify(Q)}`);let Z=Q;return o6$(U,Z,G,J),{localKey:X,version:Z,newlyPinned:!1,checkpointLocals:$}}function r6$($,U,G){if(typeof $!=="string"||$.length===0)throw Error("ctx.getVersion() requires a non-empty changeId");if(KS("minSupported",U),KS("maxSupported",G),U>G)throw Error("ctx.getVersion() minSupported must be less than or equal to maxSupported")}function KS($,U){if(!Number.isSafeInteger(U))throw Error(`ctx.getVersion() ${$} must be a safe integer`)}function o6$($,U,G,J){if(U<G)throw Error(`Workflow version patch "${$}" is pinned to version ${U}, below the minimum supported version ${G}`);if(U>J)throw Error(`Workflow version patch "${$}" is pinned to version ${U}, above the maximum supported version ${J}`)}function MS($,U){let G=$.stepIndex++;if($.accumulatedResults?.has(G))return{cached:!0};let J=T$(U);if($.explainMode)console.log(`[weft] ctx.sleep(${JSON.stringify(U)})`),console.log(` \u2192 Creating checkpoint at step ${G}`),console.log(` \u2192 Scheduling timer for ${J}ms`);let X=crypto.randomUUID(),Q=V$(),Z=$.sleepReferenceTime??$.getNow();return $.sleepReferenceTime=void 0,{cached:!1,milliseconds:J,request:{type:"sleep",operationId:X,duration:J,scheduledFireAt:Z+J,callerStack:Q},step:G}}function*NS($,U){yield U.request,$.accumulatedResults.set(U.step,void 0)}function*qS($,U,G){let J=U.stepIndex++;if(U.accumulatedResults?.has(J))return U.accumulatedResults.get(J);if(U.explainMode)console.log(`[weft] ctx.waitForSignal("${G}")`),console.log(` \u2192 Creating checkpoint at step ${J}`),console.log(` \u2192 Waiting for signal "${G}"`);let X=crypto.randomUUID(),Q=V$(),Z=yield{type:"wait-signal",operationId:X,signalName:G,callerStack:Q};return $.accumulatedResults.set(J,Z),Z}function a6$($,U,G){if(G===void 0)return;let J=`${s6$}${U}`,X=$.checkpointLocals[J];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=T$(G),Z=$.sleepReferenceTime??$.getNow();$.sleepReferenceTime=void 0;let Y=Z+Q;return $.checkpointLocals={...$.checkpointLocals,[J]:Y},Y}function*OS($,U,G,J){let X=U.stepIndex++;if(U.accumulatedResults?.has(X))return U.accumulatedResults.get(X);let Q=a6$(U,X,J);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 Z=crypto.randomUUID(),Y=V$(),j=yield{type:"wait-condition",operationId:Z,step:X,predicate:G,...Q!==void 0&&{deadline:Q},callerStack:Y};return $.accumulatedResults.set(X,j),j}function*AS($,U,G,J,X){let Q=U.stepIndex++,Z=PS(U.checkpointLocals,G,J,X);if(U.checkpointLocals=Z.checkpointLocals,!Z.newlyPinned)return Z.version;if(U.accumulatedResults?.has(Q)){let _=U.accumulatedResults.get(Q);if(_!==Z.version)throw Error(`ctx.getVersion("${G}") replay result ${String(_)} does not match pinned version ${String(Z.version)}`);return Z.version}if(U.explainMode)console.log(`[weft] ctx.getVersion("${G}", ${J}, ${X})`),console.log(` \u2192 Creating checkpoint at step ${Q}`),console.log(` \u2192 Pinning workflow patch "${G}" to version ${Z.version}`);let Y=crypto.randomUUID(),j=V$();return yield{type:"get-version",operationId:Y,changeId:G,minSupported:J,maxSupported:X,version:Z.version,callerStack:j}}function*CS($,U,G){let J=U.stepIndex++;if(U.accumulatedResults?.has(J))return{payload:U.accumulatedResults.get(J).payload,respond:()=>{}};if(U.explainMode)console.log(`[weft] ctx.waitForUpdate("${G}")`),console.log(` \u2192 Creating checkpoint at step ${J}`),console.log(` \u2192 Waiting for update "${G}"`);let X=crypto.randomUUID(),Q=V$(),Y=yield{type:"wait-update",operationId:X,updateName:G,callerStack:Q};return $.accumulatedResults.set(J,{payload:Y.payload}),Y}function*RS($,U,G){let J=U.stepIndex++;if(U.accumulatedResults?.has(J))return U.accumulatedResults.get(J);if(U.explainMode)console.log(`[weft] ctx.review(${JSON.stringify(G.reviewType??"general")})`),console.log(` \u2192 Creating checkpoint at step ${J}`),console.log(" \u2192 Pausing for human review");let X=crypto.randomUUID(),Q=V$(),Z=yield{type:"wait-review",operationId:X,reviewOptions:G,callerStack:Q};return $.accumulatedResults.set(J,Z),Z}function*TS($,U,G,J){let X=U.stepIndex++;if(U.accumulatedResults?.has(X))return U.accumulatedResults.get(X);if(U.explainMode)console.log(`[weft] ctx.offload("${G}")`),console.log(` \u2192 Creating checkpoint at step ${X}`),console.log(` \u2192 Offloading data for key "${G}" to external storage`);let Q=crypto.randomUUID(),Z=V$(),Y=yield{type:"offload",operationId:Q,key:G,fn:J,callerStack:Z};return $.accumulatedResults.set(X,Y),Y}function*ES($,U,G,J){let X=U.stepIndex++;if(U.accumulatedResults?.has(X))return U.accumulatedResults.get(X);if(U.explainMode)console.log(`[weft] ctx.stream("${G}")`),console.log(` \u2192 Creating checkpoint at step ${X}`),console.log(` \u2192 Streaming data for key "${G}" to external storage`);let Q=crypto.randomUUID(),Z=V$(),Y=yield{type:"stream",operationId:Q,key:G,fn:J,callerStack:Z};return $.accumulatedResults.set(X,Y),Y}function*SS($,U,G){let J=U.stepIndex++;if(U.accumulatedResults?.has(J))return U.accumulatedResults.get(J);if(U.explainMode)console.log(`[weft] ctx.load("${G.key}")`),console.log(` \u2192 Creating checkpoint at step ${J}`),console.log(` \u2192 Loading offloaded data for key "${G.key}"`);let X=crypto.randomUUID(),Q=V$(),Z=yield{type:"load",operationId:X,reference:G,callerStack:Q};return $.accumulatedResults.set(J,Z),Z}function*bS($,U,G,J){let X=U.stepIndex++;if(U.accumulatedResults?.has(X))return;if(U.explainMode)console.log(`[weft] ctx.archive("${G}")`),console.log(` \u2192 Creating checkpoint at step ${X}`),console.log(` \u2192 Archiving data for key "${G}"`);let Q=crypto.randomUUID(),Z=V$();yield{type:"archive",operationId:Q,key:G,data:J,callerStack:Z},$.accumulatedResults.set(X,void 0)}var s6$="__weftConditionDeadline:";var xS=B(()=>{E$()});function*vS($,U){let G=[],J,X=!1,Q=!0,Z=c($).registerCancelHandler?.(async()=>{if(!Q||X)return;X=!0;try{await e6$(G)}finally{Q=!1,G.length=0,Z?.()}});for(let j of U){let D=j.definition;try{let _=(W,F)=>D.execute(W,F);Object.defineProperty(_,"name",{value:D.name,configurable:!0});let L=yield*$.run(_,j.input);G.push({definition:D,input:j.input,output:L}),J=L}catch(_){if(!X){X=!0;for(let L=G.length-1;L>=0;L--){let W=G[L];if(W.definition.compensate!==void 0){let{input:F,output:P,definition:q}=W,A=async()=>q.compensate?.(F,P);Object.defineProperty(A,"name",{value:`compensate:${W.definition.name}`,configurable:!0});try{yield*$.run(A)}catch{}}}}throw Y(),_}}return Y(),J;function Y(){Q=!1,G.length=0,Z?.()}}async function e6$($){for(let U=$.length-1;U>=0;U--){let G=$[U];if(G.definition.compensate!==void 0)try{await G.definition.compensate(G.input,G.output)}catch{}}}var gS=B(()=>{$8()});function*IS($,U,G){let J=U.stepIndex++;if(U.accumulatedResults?.has(J))return U.accumulatedResults.get(J);let X=crypto.randomUUID(),Q=V$(),Z=yield{type:"speculate",operationId:X,execute:G,callerStack:Q};return $.accumulatedResults.set(J,Z),Z}var hS=()=>{};function o6($){return $===void 0?void 0:new Map($)}function yS($){return $===void 0?void 0:{...$}}function G4$($,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 J4$($,U){let G={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},J=o6(U.accumulatedResults);if(J!==void 0)G.accumulatedResults=J;return G4$(G,U),G}function X4$($,U){$.pendingAttributeChanges=yS(U.pendingAttributeChanges),$.updateHandlers=o6(U.updateHandlers),$.updateValidators=o6(U.updateValidators),$.queryHandlers=o6(U.queryHandlers),$.exposedValues=o6(U.exposedValues),$.memoCache=o6(U.memoCache),$.explainMode=U.explainMode,$.workflowInterceptor=U.workflowInterceptor}function mS($,U){let G=c($),J=U(J4$($,G));return X4$(c(J),G),J}function kS($,U){let G=c($),J=c(U);G.stepIndex=J.stepIndex,G.accumulatedResults=o6(J.accumulatedResults),G.stateSession=N3(J.stateSession),G.checkpointLocals=R3(G.stateSession,J.checkpointLocals),G.searchAttributes={...J.searchAttributes},G.pendingAttributeChanges=yS(J.pendingAttributeChanges),G.updateHandlers=o6(J.updateHandlers),G.updateValidators=o6(J.updateValidators),G.queryHandlers=o6(J.queryHandlers),G.exposedValues=o6(J.exposedValues),G.memoCache=o6(J.memoCache),G.sleepReferenceTime=J.sleepReferenceTime}var fS=B(()=>{q3();$8();T3()});function wS($,U){let G=Q4$($,U);return{session:(J,X)=>tR($,U,J,X),execution:(J,X)=>new eB({type:"execution",ownerWorkflowId:U.executionStateOwnerId},J,X,G),workflow:(J,X)=>new eB({type:"workflow",workflowType:$.workflowType},J,X,G)}}function Q4$($,U){return{nextStep:()=>U.stepIndex++,has:(G)=>U.accumulatedResults?.has(G)??!1,get:(G)=>U.accumulatedResults?.get(G),set:(G,J)=>{$.accumulatedResults.set(G,J)}}}var eB;var uS=B(()=>{$U();T3();eB=class eB extends EventTarget{#$;#U;#G;#J;#X;#Q;constructor($,U,G,J){super();this.#$=$,this.#U=U,this.#G=o1($,U),this.#J=G?.maxRetries??10,this.#X=G&&"initial"in G?{initial:G.initial}:void 0,this.#Q=J}*get(){return(yield*this.#Z()).value}*set($){return yield*this.update(()=>$)}*update($){for(let U=0;U<this.#J;U++){let G=yield*this.#Z(),J=$(G.value),X=yield*this.#Y(G.version,"set",J);if(X.applied)return this.dispatchEvent(new l1(J,G.value,X.version)),J;this.dispatchEvent(new i1(this.#G,U+1))}throw this.dispatchEvent(new n1(this.#G,this.#J)),new r1(this.#G,this.#J)}*delete(){for(let $=0;$<this.#J;$++){let U=yield*this.#Z(),G=yield*this.#Y(U.version,"delete");if(G.applied){this.dispatchEvent(new l1(void 0,U.value,G.version));return}this.dispatchEvent(new i1(this.#G,$+1))}throw this.dispatchEvent(new n1(this.#G,this.#J)),new r1(this.#G,this.#J)}*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 G=[...U??[]];return $=G.shift(),G}),$}*removeLast(){let $;return yield*this.update((U)=>{let G=[...U??[]];return $=G.pop(),G}),$}*#Z(){return yield*this.#j({type:"state-read",operationId:crypto.randomUUID(),scope:this.#$,key:this.#U,...this.#X!==void 0?{initial:this.#X.initial}:{},callerStack:V$()})}*#Y($,U,G){return yield*this.#j({type:"state-commit",operationId:crypto.randomUUID(),scope:this.#$,key:this.#U,expectedVersion:$,mode:U,...U==="set"?{value:G}:{},callerStack:V$()})}*#j($){let U=this.#Q;if(U===void 0)return yield $;let G=U.nextStep();if(U.has(G))return U.get(G);let J=yield $;return U.set(G,J),J}}});function cS($,U,G,J){if(JT(G)||XT(G))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,G),J?.validator!==void 0)$.updateValidators??=new Map,$.updateValidators.set(U,J.validator);else $.updateValidators?.delete(U)}function pS($,U,G){$.queryHandlers??=new Map,$.queryHandlers.set(U,G)}function dS($,U){$.exposedValues??=new Map;for(let[G,J]of Object.entries(U))$.exposedValues.set(G,J)}var lS=B(()=>{ez()});function n5($){console[j4$[$.level]]($)}function D4$($,U,G,J){return{level:U,message:G,workflowId:$.workflowId,workflowType:$.workflowType,timestamp:$.now(),...J!==void 0&&{attributes:J}}}function H4$($){let U=(G,J,X)=>{if($.isReplaying())return;let Q=D4$($,G,J,X);if($.sink!==void 0){try{$.sink(Q)}catch{n5(Q)}return}n5(Q)};return{debug:(G,J)=>U("debug",G,J),info:(G,J)=>U("info",G,J),warn:(G,J)=>U("warn",G,J),error:(G,J)=>U("error",G,J)}}function iS($,U,G,J){return H4$({workflowId:$,workflowType:U,isReplaying:()=>{let X=G();return X.accumulatedResults?.has(X.stepIndex)??!1},now:()=>G().getNow(),...J!==void 0&&{sink:J}})}var j4$;var $W=B(()=>{j4$={debug:"debug",info:"info",warn:"warn",error:"error"}});function F8($,U){c($).workflowInterceptor=U}class Y0{workflowId;workflowType;startedAt;signal;#$;constructor($){this.workflowId=$.workflowId,this.workflowType=$.workflowType,this.startedAt=$.startedAt,this.signal=$.abortController.signal;let U=bz($.locals);$T(this,$,U)}get executionTimeRemaining(){let $=c(this);if($.deadline===void 0)return 1/0;return Math.max(0,$.deadline-$.getNow())}get services(){return c(this).services}get log(){return this.#$??=iS(this.workflowId,this.workflowType,()=>c(this),c(this).logSink)}get stepIndex(){return c(this).stepIndex}get nestingDepth(){return c(this).nestingDepth}get accumulatedResults(){let $=c(this);return $.accumulatedResults??=new Map,$.accumulatedResults}get checkpointLocals(){return c(this).checkpointLocals}get pendingAttributeChanges(){let $=c(this);return $.pendingAttributeChanges??={},$.pendingAttributeChanges}get exposedAccessors(){let $=c(this);return $.exposedValues??=new Map,$.exposedValues}get updateHandlers(){let $=c(this);return $.updateHandlers??=new Map,$.updateHandlers}get updateValidators(){let $=c(this);return $.updateValidators??=new Map,$.updateValidators}get queryHandlers(){let $=c(this);return $.queryHandlers??=new Map,$.queryHandlers}get explainEnabled(){return c(this).explainMode}get checkpointAccumulatedResults(){let $=c(this).accumulatedResults;return $?Array.from($.entries()):[]}get checkpointPendingAttributeChanges(){let $=c(this).pendingAttributeChanges;return $?{...$}:void 0}createSpeculativeChild(){return mS(this,($)=>new Y0($))}commitSpeculativeChild($){kS(this,$)}get state(){return wS(this,c(this))}*run($,...U){return yield*UT(this,$,U)}*sleep($){let U=c(this),G=MS(U,$);if(G.cached)return;let J=()=>NS(this,G);if(!U.workflowInterceptor)return yield*J();return yield*U.workflowInterceptor.sleep({workflowId:this.workflowId,duration:G.milliseconds,headers:new Map},J)}*suspendUntil($){return yield*this.waitForSignal($)}*waitForSignal($){let U=c(this),G=R6($),J=()=>qS(this,U,G);if(U.accumulatedResults?.has(U.stepIndex))return yield*J();if(!U.workflowInterceptor)return yield*J();return yield*U.workflowInterceptor.waitForSignal({workflowId:this.workflowId,signalName:G,payload:void 0,headers:new Map},J)}*waitForUpdate($){return yield*CS(this,c(this),R6($))}*waitUntil($,U){return yield*OS(this,c(this),$,U)}*getVersion($,U,G){return yield*AS(this,c(this),$,U,G)}*review($){return yield*RS(this,c(this),$)}*all($){return yield*WR(this,c(this),[...$])}*race($){return yield*FR(this,c(this),[...$])}*memo($,U){return yield*KR(this,c(this),$,U)}*offload($,U){return yield*TS(this,c(this),$,U)}*stream($,U){return yield*ES(this,c(this),$,U)}*load($){return yield*SS(this,c(this),$)}*archive($,U){return yield*bS(this,c(this),$,U)}*runAll($){return yield*PR(this,c(this),$)}*saga($){return yield*vS(this,$)}*startChild($,U,G){return yield*HR(this,c(this),$,U,G)}*pipe($,U){return yield*_R(this,c(this),$,U)}*map($,U,G){return yield*LR(this,c(this),$,U,G)}*reduce($,U,G,J){return yield*VR(this,c(this),$,U,G,J)}explain($=!0){c(this).explainMode=$}*speculate($){return yield*IS(this,c(this),$)}setAttribute($,U){VS(c(this),o$($),U)}setAttributes($){zS(c(this),$)}getAttribute($){return BS(c(this),o$($))}getAttributes(){return WS(c(this))}onUpdate($,U,G){cS(c(this),R6($),U,G)}onQuery($,U){pS(c(this),R6($),U)}expose($){dS(c(this),$)}onCancel($){let U=c(this);if(U.registerCancelHandler===void 0)throw Error("ctx.onCancel() is only supported for inline workflow execution");U.registerCancelHandler($)}setFinalizerState($){let U=c(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 nS=B(()=>{q3();k6();FS();mz();xS();$8();s7();GT();gS();hS();fS();uS();lS();$W()});var r5=B(()=>{nS()});function JG($,U,G){$.cancelHandlersByWorkflow??=new Map;let J=$.cancelHandlersByWorkflow.get(U);if(J===void 0)J=[],$.cancelHandlersByWorkflow.set(U,J);return J.push(G),()=>{let X=$.cancelHandlersByWorkflow.get(U);if(X===void 0)return;let Q=X.indexOf(G);if(Q!==-1)X.splice(Q,1);if(X.length===0)$.cancelHandlersByWorkflow.delete(U)}}function o5($,U){return(G)=>JG($,U,G)}function XG($,U){$.cancelHandlersByWorkflow??=new Map,$.cancelHandlersByWorkflow.delete(U)}function rS($,U){$.cancelHandlersByWorkflow??=new Map;let G=$.cancelHandlersByWorkflow.get(U)??[];return $.cancelHandlersByWorkflow.delete(U),G}function oS($){return{async execute(U,G){let J=G;for(let X=$.length-1;X>=0;X--){let Q=$[X];if(Q.execute){let Z=J,Y=Q.execute.bind(Q);J=(j)=>{return Y(j,Z)}}}return J(U)}}}var sS;var UW=B(()=>{sS=Object.freeze(["activity","sleep","waitForSignal","workflowStart","childWorkflow","query","signalReceived"])});function GW($){let U=[],G=[];for(let J of $){if(sS.some((X)=>aS(J,X)))U.push(J);if(aS(J,"execute"))G.push(J)}return{workflow:U,activity:G}}function aS($,U){return typeof $[U]==="function"}var tS=B(()=>{UW()});function _4$($){return function*(G,J){let X=J;for(let Q=$.length-1;Q>=0;Q--){let Z=$[Q];if(Z.activity){let Y=X,j=Z.activity.bind(Z);X=function*(D){return yield*j(D,Y)}}}return yield*X(G)}}function L4$($){return function*(G,J){let X=J;for(let Q=$.length-1;Q>=0;Q--){let Z=$[Q];if(Z.sleep){let Y=X,j=Z.sleep.bind(Z);X=function*(D){yield*j(D,Y)}}}yield*X(G)}}function V4$($){return function*(G,J){let X=J;for(let Q=$.length-1;Q>=0;Q--){let Z=$[Q];if(Z.waitForSignal){let Y=X,j=Z.waitForSignal.bind(Z);X=function*(D){return yield*j(D,Y)}}}return yield*X(G)}}function z4$($){return function(G,J){let X=J;for(let Q=$.length-1;Q>=0;Q--){let Z=$[Q];if(Z.workflowStart){let Y=X,j=Z.workflowStart.bind(Z);X=(D)=>{j(D,Y)}}}X(G)}}function B4$($){return async function(G,J){let X=J;for(let Q=$.length-1;Q>=0;Q--){let Z=$[Q];if(Z.childWorkflow){let Y=X,j=Z.childWorkflow.bind(Z);X=(D)=>{return j(D,Y)}}}return X(G)}}function W4$($){return function*(G,J){let X=J;for(let Q=$.length-1;Q>=0;Q--){let Z=$[Q];if(Z.query){let Y=X,j=Z.query.bind(Z);X=function*(D){return yield*j(D,Y)}}}return yield*X(G)}}function F4$($){return function(G,J){let X=J;for(let Q=$.length-1;Q>=0;Q--){let Z=$[Q];if(Z.signalReceived){let Y=X,j=Z.signalReceived.bind(Z);X=(D)=>{j(D,Y)}}}X(G)}}function eS($){return{activity:_4$($),sleep:L4$($),waitForSignal:V4$($),workflowStart:z4$($),childWorkflow:B4$($),query:W4$($),signalReceived:F4$($)}}var $b=B(()=>{UW();tS()});var Ub=B(()=>{$b()});function s6($,U,G,J){if($.inlineStrategy){if(G.status==="completed")$.inlineStrategy.continueWorkflow(U,G.value);else $.inlineStrategy.throwIntoWorkflow(U,J!==void 0?J.value:K7(G),G.failureCategory);return}let X=$.checkpoints.get(U),Q=X?w$(X):new ArrayBuffer(0);$.strategy.resumeWorkflow({workflowId:U,checkpoint:Q,operationResult:G})}async function F4($){if(!$)return;try{await $}catch{}}function a6($){if($.interceptors.length===0)return null;if($.composedWorkflowInterceptor!==void 0)return $.composedWorkflowInterceptor;let U=GW($.interceptors).workflow;return $.composedWorkflowInterceptor=U.length===0?null:eS(U),$.composedWorkflowInterceptor}function Gb($){if($.interceptors.length===0)return null;if($.composedActivityInterceptor!==void 0)return $.composedActivityInterceptor;let U=GW($.interceptors).activity;return $.composedActivityInterceptor=U.length===0?null:oS(U),$.composedActivityInterceptor}var l4=B(()=>{d6();f4();Ub()});function Jb($,U,G,J){return{workflowId:U,step:G.step}}function Xb($,U,G,J){return{...U.searchAttributes,[mE]:G.workflowId}}function Qb($,U,G,J,X,Q,Z){return{id:U,type:G.type,status:"running",input:G.input,versionTuple:J,executionStateOwnerId:U,createdAt:Q,startedAt:Q,updatedAt:Q,forkedFrom:X}}function Zb($,U,G,J,X,Q,Z){let Y=[{type:"put",key:V.workflow(U),value:N(G)},{type:"put",key:V.checkpoint(U),value:X},...g7(U,null,G).batchOps];if(Object.keys(J.searchAttributes).length>0)Y.push({type:"put",key:V.attribute(U),value:N(J.searchAttributes)},...i$(U,{},J.searchAttributes));if(Q&&Q.size>0)Y.push({type:"put",key:V.workflowHeaders(U),value:S7(Q)},{type:"put",key:V.terminalCleanupNeeded(U),value:F6});return Y}var Yb=B(()=>{y();u();D6();B$();_6();N1()});function jb($,U,G){let J=[{type:"put",key:V.childCancellation(U,G),value:F6}],X=!$.workflowsNeedingTerminalCleanup.has(U);if($.workflowsNeedingTerminalCleanup.add(U),X)J.push({type:"put",key:V.terminalCleanupNeeded(U),value:F6});return J}function JW($,U,G,J){JG($,U,()=>J.getHandle(G).cancel())}async function XW($,U,G){for await(let[J]of $.storage.scan(V.childCancellationPrefix(U))){let X=K4$(U,J);if(X===null)continue;JW($,U,X,G)}}function K4$($,U){let G=V.childCancellationPrefix($);if(!U.startsWith(G))return null;let J=U.slice(G.length);if(J.length===0||J.includes(":"))return null;return sK(J)}var QW=B(()=>{y();N1()});async function P4$($,U,G){return k5($,U,G.failWorkflowForUnavailableServices,G.handleCleanupError,G.dispatchEvent)}function Db($,U){if($.terminalizingWorkflows.has(U))throw Error(`Cannot resume workflow "${U}": termination is in progress`)}function M4$($,U){let{workflowId:G,resumeCheckpoint:J,serializedCheckpoint:X,registeredVersionTuple:Q,restoredHead:Z,callbacks:Y}=U;$.checkpoints.set(G,J),A5($,G,X),$.workflowVersionTuples.set(G,Q),$.eventLogHeads.set(G,Z),M1($,G,U.workflowStartHeaders,Y),$.parkedInlineWorkflows.delete(G)}async function N4$($,U,G){let{workflowId:J,resumeCheckpoint:X,registration:Q,callbacks:Z}=G,Y=new Map(X.accumulatedResults),j=new AbortController;XG($,J),await XW($,J,Z);let D=new Y0({workflowId:J,workflowType:U.type,startedAt:W4(U),abortController:j,getNow:$.options.getNow,resolveWorkflowType:Z.resolveWorkflowTypeTarget,executionStateOwnerId:U.executionStateOwnerId??J,accumulatedResults:Y,locals:X.locals,searchAttributes:X.searchAttributes,registerCancelHandler:o5($,J),...Q.searchAttributes&&{searchAttributeSchema:Q.searchAttributes},sleepReferenceTime:X.createdAt,...U.executionDeadline!==void 0&&{deadline:U.executionDeadline},services:$.workflowServices.get(J),...$.options.onLog!=null&&{logSink:$.options.onLog}});if(F8(D,a6($)),$.options.development)D.explain(!0);let _=Q.handler(D,U.input),L=$.inlineStrategy;L.adoptWorkflow(J,_,D,j),L.continueWorkflow(J,void 0)}async function q4$($,U,G){let{workflowId:J,resumeCheckpoint:X,workflowStartHeaders:Q,callbacks:Z}=G;XG($,J),await XW($,J,Z);let Y=w$(X);$.strategy.startWorkflow({workflowId:J,workflowType:U.type,input:U.input,checkpoint:Y,nestingDepth:$.workflowNestingDepths.get(J)??0,executionStateOwnerId:U.executionStateOwnerId??J,...U.executionDeadline!==void 0&&{deadline:U.executionDeadline},...Q!==void 0&&Q.size>0&&{headers:[...Q]}})}async function O4$($,U){let{workflowId:G}=U;Db($,G);let J=await J$($,G);if(Db($,G),!J)throw Error(`Workflow "${G}" not found in storage`);if(J.status!=="running"&&J.status!=="suspended")throw Error(`Cannot resume workflow "${G}": status is "${J.status}", expected "running" or "suspended"`);if(await A4$($,J),M4$($,U),$.inlineStrategy){await N4$($,J,U);return}await q4$($,J,U)}async function A4$($,U){if(U.status!=="suspended")return;let G={...U};U.status="running",U.updatedAt=$.options.getNow(),await C$($,[{type:"put",key:V.workflow(U.id),value:N(U)},...H6(U.id,G,U).batchOps,...U.executionDeadline!==void 0?x$({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 QG($,U,G,J){let X=await $.storage.get(V.workflow(U));if(!X)throw Error(`Workflow "${U}" not found in storage`);let Q=j$(X);if(Q.status!=="running"&&Q.status!=="suspended")throw Error(`Cannot resume workflow "${U}": status is "${Q.status}", expected "running" or "suspended"`);let Z=await $.storage.get(V.checkpoint(U));if(!Z)throw Error(`Checkpoint not found for workflow "${U}"`);let Y=I$(Z),j=$.registrations.get(Q.type);if(!j)throw Error(`No workflow registered with name "${Q.type}" (needed to resume "${U}")`);let D=await yB($,U,Q,Y,Z,j,J),_=D.checkpoint,L=D.versionTuple,F=await new S6($.storage,U).loadHead();if(await vB($,U,F,J))return J.getHandle(U);let P=await LU($,U,J);if(await gB($,U,J),await P4$($,Q,J))return J.getHandle(U);let q=J.getHandle(U);if(await J.runSerializedWorkflowStateWrite(U,()=>O4$($,{workflowId:U,resumeCheckpoint:_,serializedCheckpoint:D.serializedCheckpoint,registeredVersionTuple:L,restoredHead:F,workflowStartHeaders:P,registration:j,callbacks:J})),G)J.dispatchEvent(new cU(U,_.step));if($.inlineStrategy)J.swallowPromiseRejection(J.processPendingUpdatesAfterInlineAdvance(U));return q}var ZW=B(()=>{y();d6();u();r5();_U();Y$();E$();HU();QW();B4();G0();a$();l4();A$();_6();a3();f5();N1()});function C4$($){return $.includes(":ckpt")||$.includes(":offload")||$.includes(":archive")||$.includes(":timeline:")}function R4$($,U,G){let J=U.hasLocalCheckpointOwnership(G.id,G.status);if(G.status==="pending"||U.isInlineWorkflowLocallyOwned(G.id,G.status)||J)return{kind:"local",workflowId:G.id};if(G.status!=="running")return{kind:"ignored"};if(!$.registrations.has(G.type))return{kind:"missing",workflow:{type:G.type,workflowId:G.id}};return{kind:"recoverable",workflowId:G.id}}function T4$($,U){if(U.kind==="ignored")return;if($.entries.push(U),U.kind==="missing")$.missingWorkflows.push(U.workflow)}async function E4$($,U){let G={entries:[],missingWorkflows:[]};for await(let[J,X]of $.storage.scan("wf:")){if(C4$(J))continue;T4$(G,R4$($,U,j$(X)))}return G}async function YW($,U,G){let J=await E4$($,U),X=[];if(J.missingWorkflows.length>0&&G?.acknowledgeUnknownWorkflowTypes!==!0)throw new k0({registeredTypes:$.registrations.keys(),missingWorkflows:J.missingWorkflows});for(let Q of J.entries){if(Q.kind==="local"){X.push(U.getHandle(Q.workflowId));continue}if(Q.kind==="missing"){U.dispatchEvent(new oG(Q.workflow.workflowId,Q.workflow.type,"type-not-registered"));continue}try{X.push(await s5($,Q.workflowId,U))}catch(Z){if(Z instanceof l8){await U.failWorkflowForCheckpointDecodeError(Q.workflowId,Z);continue}throw Z}}return X}async function s5($,U,G){let J=await J$($,U);if(J!==null){if(G.isInlineWorkflowLocallyOwned(U,J.status)||G.hasLocalCheckpointOwnership(U,J.status))return await kE($,U,G),G.getHandle(U)}return QG($,U,!0,G)}async function jW($,U,G,J){let X=await J$($,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 Z=G?.fromStep!==void 0?OC(G.fromStep):void 0,Y=Z!==void 0?V.checkpointHistory(U,Z):V.checkpoint(U),j=await $.storage.get(Y);if(!j){if(Z!==void 0)throw Error(`Checkpoint not found at step ${String(Z)} for workflow "${U}"`);throw Error(`Checkpoint not found for workflow "${U}"`)}let D=I$(j),_=await o0($.storage,U,D),L=y5($,U,X,_,Q,J),W=$.workflowHeaders.get(U)??await LU($,U,J),F=b7(W),P=crypto.randomUUID(),q=$.options.getNow(),A=Jb($,U,_,J),{accumulatedResultReplayWatermark:g,...f}=L.checkpoint,m={...f,createdAt:q,workflowId:P,searchAttributes:Xb($,L.checkpoint,A,J)},p=Qb($,P,L.state,L.versionTuple,A,q,J),d=!1;try{let X$=w$(m);await C$($,Zb($,P,p,m,X$,F,J),[],()=>Error(`Fork of workflow "${P}" lost its CAS race.`)),$.eventLogHeads.set(P,n0),M1($,P,F,J);let M$=Hb($,P,p,m,Q,J);return d=!0,M$}finally{if(!d)Q0($,P),$.checkpoints.delete(P),$.workflowVersionTuples.delete(P),$.eventLogHeads.delete(P),$.workflowHeaders.delete(P)}}function S4$($,U,G,J,X,Q){let Z=$.inlineStrategy;if(!Z)throw Error("Inline workflow launch requested without an inline strategy.");let Y=new Map(J.accumulatedResults),j=new AbortController;XG($,U);let D=new Y0({workflowId:U,workflowType:G.type,startedAt:W4(G),abortController:j,getNow:$.options.getNow,resolveWorkflowType:Q.resolveWorkflowTypeTarget,executionStateOwnerId:G.executionStateOwnerId??U,accumulatedResults:Y,searchAttributes:J.searchAttributes,registerCancelHandler:o5($,U),...X.searchAttributes&&{searchAttributeSchema:X.searchAttributes},sleepReferenceTime:J.createdAt,...G.executionDeadline!==void 0&&{deadline:G.executionDeadline},...$.options.onLog!=null&&{logSink:$.options.onLog}});if(F8(D,a6($)),$.options.development)D.explain(!0);let _=X.handler(D,G.input);Z.adoptWorkflow(U,_,D,j),Z.continueWorkflow(U,void 0),Q.swallowPromiseRejection(Q.processPendingUpdatesAfterInlineAdvance(U))}function b4$($,U,G,J){let X=w$(J);$.strategy.startWorkflow({workflowId:U,workflowType:G.type,input:G.input,checkpoint:X,executionStateOwnerId:G.executionStateOwnerId??U,...G.executionDeadline!==void 0&&{deadline:G.executionDeadline},...$.workflowHeaders.has(U)&&{headers:[...$.workflowHeaders.get(U)]}})}function Hb($,U,G,J,X,Q){$.checkpoints.set(U,J),$.workflowVersionTuples.set(U,B8($,X,Q));let Z=s3($,U,Q);if(Q.dispatchEvent(new T4(U,G.type,G.input)),$.inlineStrategy)S4$($,U,G,J,X,Q);else b4$($,U,G,J);return Z}var _b=B(()=>{y();d6();$Y();r5();_U();Y$();HU();s0();F$();B4();G0();B$();a$();l4();A$();Yb();a3();ZW();N1()});var j0=B(()=>{N1();a3();l5();_S();fB();_b();ZW()});function Lb($,U,G){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,G.swallowPromiseRejection(ZG($,G))},0)}function DW($,U){for(let G of U)$.queuedInlineWorkflowStartIds.delete(G.workflowId),$.queuedOrLaunchingInlineWorkflowStartIds.delete(G.workflowId),G.onStarted?.()}async function ZG($,U){if($.abortController.signal.aborted){let J=$.queuedInlineWorkflowStarts;$.queuedInlineWorkflowStarts=[],DW($,J);return}if($.queuedInlineWorkflowStarts.length===0)return;let G=$.queuedInlineWorkflowStarts;$.queuedInlineWorkflowStarts=[];for(let J of G)await U.swallowPromiseRejection(x4$($,J,U))}async function Vb($,U){$.queuedInlineWorkflowStartFlushScheduled=!1,await ZG($,U)}async function zb($,U){$.queuedInlineWorkflowStartFlushScheduled=!1;let G=0,J=1000;while($.queuedInlineWorkflowStarts.length>0&&!$.abortController.signal.aborted&&G<J)G+=1,await U.swallowPromiseRejection(ZG($,U))}async function x4$($,U,G){try{let J=await J$($,U.workflowId);if(!J||J.status!=="running")return;$.queuedInlineWorkflowStartIds.delete(U.workflowId),$.engine.dispatchEvent(new T4(U.workflowId,U.workflowType,U.input)),c5($,U.workflowId,U.workflowType,U.input,U.checkpoint,U.nestingDepth,U.executionDeadline,U.executionStateOwnerId),await G.processPendingUpdatesAfterInlineAdvance(U.workflowId)}finally{$.queuedInlineWorkflowStartIds.delete(U.workflowId),$.queuedOrLaunchingInlineWorkflowStartIds.delete(U.workflowId),U.onStarted?.()}}function a5($,U){if($.queuedInlineWorkflowStarts.length===0)return!1;let G=$.queuedInlineWorkflowStarts.length,J=[];if($.queuedInlineWorkflowStarts=$.queuedInlineWorkflowStarts.filter((X)=>{if(X.workflowId===U)return J.push(X),!1;return!0}),$.queuedInlineWorkflowStarts.length!==G)DW($,J);return $.queuedInlineWorkflowStarts.length!==G}function Bb($){$.queuedInlineWorkflowStartFlushScheduled=!1;let U=$.queuedInlineWorkflowStarts;$.queuedInlineWorkflowStarts=[],DW($,U),$.queuedInlineWorkflowStartIds.clear(),$.queuedOrLaunchingInlineWorkflowStartIds.clear();let G=$.queuedInlineWorkflowStartChannel;if(G!==null)G.port1.close(),G.port2.close(),$.queuedInlineWorkflowStartChannel=null}function Wb($,U){return $.queuedInlineWorkflowStartIds.has(U)}function v4$($,U){return $.queuedOrLaunchingInlineWorkflowStartIds.has(U)}function Fb($){return $==="running"||$==="pending"}function Kb($,U,G){if(!Fb(G))return!1;if(v4$($,U))return!0;if($.inlineStrategy===null)return!1;return $.inlineStrategy.getContext(U)!==void 0||$.inlineStrategy.waitForWorkflowTurn(U)!==void 0||$.parkedInlineWorkflows.has(U)}function Pb($,U,G){return $.checkpoints.has(U)&&Fb(G)}var D0=B(()=>{Y$();j0();a$()});function Nb($){let U={engine:$};Mb.set($,U)}function z($){let U=Mb.get($);if(!U)throw Error("Engine internals not initialized \u2014 initializeInternals(this) was not called in the Engine constructor");return U}var Mb;var q1=B(()=>{Mb=new WeakMap});async function g4$(){await new Promise(($)=>{setTimeout($,0)})}async function I4$($,U){let G=$.inlineStrategy;if(G===null)return!1;let J=G.getContext(U);if(J&&J.updateHandlers.size>0)return!0;let X=G.waitForWorkflowAdvance(U);if(X){if(await X,J=G.getContext(U),J&&J.updateHandlers.size>0)return!0}for(let Q=0;Q<5;Q++)if(await g4$(),J=G.getContext(U),J&&J.updateHandlers.size>0)return!0;return!1}async function h4$($,U,G,J){return GB($,U,G,J)}async function qb($,U,G){if((await $.updateCoordinator.getPendingUpdates(U)).length===0)return;if(!await I4$($,U))return;await YG($,U,G)}function Ob($,U,G){if($.inlineStrategy===null)return;setTimeout(()=>{YG($,U,G).catch(()=>{})},0)}async function y4$($,U,G){let J;try{J=await $(G)}catch(Q){let Z=Q instanceof Error?Q.message:String(Q);return new P1(U,[{message:Z}]).message}let X=JB(J);if(X!==null&&X.length>0)return new P1(U,X).message;return null}async function YG($,U,G){let J=$.inlineStrategy?.getContext(U);if(!J)return;let X=J.updateHandlers;if(X.size===0)return;let Q=await $.updateCoordinator.getPendingUpdates(U);if(Q.length===0)return;let Z=!1;try{for(let Y of Q){let j=X.get(Y.name);if(!j)continue;if(!m4$($,U,Y.updateId))continue;let D=await k4$(J,Y);if(D!==null){await f4$($,U,Y,D,G);continue}Z=!0,await w4$($,U,Y,j,G)}}finally{if(Z)E3($,U)}}function m4$($,U,G){let J=$.deliveredPendingUpdateIds.get(U);if(J===void 0)J=new Set,$.deliveredPendingUpdateIds.set(U,J);if(J.has(G))return!1;return J.add(G),!0}async function k4$($,U){let G=$.updateValidators?.get(U.name);if(G===void 0)return null;return y4$(G,U.name,U.payload)}async function f4$($,U,G,J,X){let Q=$.updateCoordinator.buildResponseOperations(G.updateId,U,void 0,J,G.idempotencyKey);await C$($,Q,[],()=>Error(`Update rejection for workflow "${U}" lost its CAS race.`)),X.broadcast({type:"update:completed",workflowId:U,updateId:G.updateId})}async function w4$($,U,G,J,X){X.dispatchEvent(new Z4(G.updateId,U,G.name,G.payload));let Q,Z;try{Q=await h4$($,G.name,J,G.payload)}catch(j){Z=j instanceof Error?j.message:String(j)}let Y=$.updateCoordinator.buildResponseOperations(G.updateId,U,Q,Z,G.idempotencyKey);await C$($,Y,[],()=>Error(`Update response for workflow "${U}" lost its CAS race.`)),X.dispatchEvent(new I6(G.updateId,U,G.name,Q,Z)),X.broadcast({type:"update:completed",workflowId:U,updateId:G.updateId})}var HW=B(()=>{Y$();JU();B4();U8()});function u4$($){return $===void 0?void 0:[...$]}function Cb($){return typeof $==="object"&&$!==null&&"name"in $&&"handler"in $}function c4$($,U,G){if(!G.constraints||G.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 p4$($,U){let G=u4$(U.tags),J=C7(U.retention,`registration("${$}").retention`);return{handler:U.handler,version:U.version??"1",...U.description===void 0?{}:{description:U.description},...G===void 0?{}:{tags:G},...U.inputSchema===void 0?{}:{inputSchema:p1(U.inputSchema,`registration("${$}").inputSchema`)},...U.outputSchema===void 0?{}:{outputSchema:p1(U.outputSchema,`registration("${$}").outputSchema`)},...J!==null&&{retention:J},...U.concurrency!==void 0?{concurrency:d4$(U.concurrency,`registration("${$}").concurrency`)}:{}}}function d4$($,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 l4$($,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 i4$($,U){let G=p4$($,U);return l4$(G,U),G}function Ab($,U,G){let J=U.name;c1(J,"workflow"),c4$($,J,U);let X=i4$(J,U);$.registrations.set(J,X),G.ensureRetentionSweepInterval(),$.workflowTypesByHandler.set(U.handler,J),G.dispatchEvent(new F0(J))}function jG($,U){if(!(U in $))return!1;let G=$[U];return typeof G==="object"&&G!==null}function n4$($){if(!Cb($))return!1;return jG($,"activities")&&jG($,"signals")&&jG($,"updates")&&jG($,"queries")&&jG($,"searchAttributes")}function r4$($){let U=new o9;for(let G of Object.values($)){let J=b2(G),X=lO(J);U.register(X.name,X)}return U}function o4$($,U,G){let J=$.workflowDefinitionsByName.get(U);if(J===void 0)return{kind:"register"};if(J===G)return{kind:"idempotent"};throw Error(`Workflow "${U}" is already registered with a different definition`)}function Rb($,U,G){if(!Cb(U))throw TypeError("engine.register() expects a WorkflowDefinition (produced by `workflow({ name }).execute(fn)`) or an ActivityDefinition.");if(n4$(U)){if(o4$($,U.name,U).kind==="idempotent")return;let X=r4$(U.activities);Ab($,U,G),$.workflowDefinitionsByName.set(U.name,U),$.activityRegistriesByWorkflow.set(U.name,X);return}Ab($,U,G)}function t5($,U,G){if(typeof U==="string")return U;let J=$.workflowTypesByHandler.get(U);if(J)return J;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 _W=B(()=>{xV();Y$();k6();d9();A$()});function i4($,U,G){if(G!==void 0)$[U]=G}function Tb($){return{status:"pending",...$}}function t4$($){let U={reviewId:$.reviewId,workflowId:$.workflowId,artifact:$.artifact,reviewType:$.reviewType,reviewers:$.reviewers,allowPartial:$.allowPartial,createdAt:$.createdAt};return i4(U,"timeout",$.timeout),i4(U,"webhookUrl",$.webhookUrl),U}function e5($){let U;try{U=O($)}catch{return null}let G=s4$.safeParse(U);if(!G.success)return null;return t4$(G.data)}function Eb($,U){let G={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 i4(G,"timeout",$.timeout),i4(G,"webhookUrl",$.webhookUrl),i4(G,"feedback",U.feedback),i4(G,"sectionDecisions",U.sectionDecisions),G}function e4$($){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 i4(U,"timeout",$.timeout),i4(U,"webhookUrl",$.webhookUrl),i4(U,"feedback",$.feedback),i4(U,"sectionDecisions",$.sectionDecisions),U}function LW($){let U;try{U=O($)}catch{return null}let G=a4$.safeParse(U);if(!G.success)return null;return e4$(G.data)}var s4$,a4$;var VW=B(()=>{w();u();s4$=H.object({reviewId:H.string(),workflowId:H.string(),artifact:H.unknown().nonoptional(),reviewType:H.string(),reviewers:H.array(H.string()),allowPartial:H.boolean(),timeout:H.number().optional(),webhookUrl:H.string().optional(),createdAt:H.number()}),a4$=H.object({status:H.literal("completed"),reviewId:H.string(),workflowId:H.string(),artifact:H.unknown().nonoptional(),reviewType:H.string(),reviewers:H.array(H.string()),allowPartial:H.boolean(),timeout:H.number().optional(),webhookUrl:H.string().optional(),createdAt:H.number(),decision:H.enum(["approved","rejected","needs-changes"]),reviewer:H.string(),feedback:H.string().optional(),sectionDecisions:H.record(H.string(),H.enum(["approved","rejected"])).optional(),timestamp:H.number()})});function zW($,U){if(U.workflowId!==void 0&&$.workflowId!==U.workflowId)return!1;if(U.reviewType!==void 0&&$.reviewType!==U.reviewType)return!1;return!0}function BW($){if($===void 0)return"review-decision:";return`review-decision:${R($)}:`}function $1$($,U){return`${BW($)}${R(U)}`}async function Sb($,U,G,J=()=>!0){for await(let[X,Q]of U){if(!J(X))continue;let Z=LW(Q);if(Z!==null&&zW(Z,G))$.push(Z)}}async function bb($,U){let G=[],J=U.workflowId===void 0?null:BW(U.workflowId);if(J!==null)await Sb(G,$.scan(J),U);return await Sb(G,$.scan("review-decision:"),U,(X)=>J===null||!X.startsWith(J)),G}async function xb($,U,G,J){let X=Eb(G,J);await $.batch([{type:"put",key:$1$(G.workflowId,G.reviewId),value:N(X)},{type:"delete",key:U}])}async function vb($,U){let G=BW(U),J=[];if($.deletePrefix)await $.deletePrefix(G);else for await(let[X]of $.scan(G))J.push({type:"delete",key:X});for await(let[X,Q]of $.scan("review-decision:")){if(X.startsWith(G))continue;if(LW(Q)?.workflowId===U)J.push({type:"delete",key:X})}if(J.length>0)await $.batch(J)}var gb=B(()=>{y();u();VW()});function U1$($){if($.workflowId===void 0)return"review:";return`review:${R($.workflowId)}:`}async function G1$($,U){let G=[];for await(let[,J]of $.storage.scan(U1$(U))){let X=e5(J);if(X!==null&&zW(X,U))G.push(Tb(X))}return G}async function Ib($,U,G,J,X){await xb($.storage,U,G,J),X(new o2(G.workflowId,G.reviewId,J.decision,J.reviewer,J.timestamp-G.createdAt))}async function hb($,U={}){if(U.status==="completed")return bb($.storage,U);return G1$($,U)}async function yb($,U,G){return $.reviewCoordinator.getReview(U,G)}async function J1$($,U){for await(let[G,J]of $.storage.scan("review:")){let X=e5(J);if(X!==null&&X.reviewId===U)return{reviewKey:G,reviewData:X,workflowId:X.workflowId}}return null}async function X1$($,U,G){if(G!==void 0){let J=V.review(G,U),X=await $.storage.get(J);return X===null?null:{reviewKey:J,reviewData:e5(X),workflowId:G}}return J1$($,U)}function Q1$($,U,G){let{decision:J,reviewer:X,feedback:Q,sectionDecisions:Z}=U,Y={reviewId:$,decision:J,reviewer:X,timestamp:G};if(Q!==void 0)Y.feedback=Q;if(Z!==void 0)Y.sectionDecisions=Z;return Y}function Z1$($,U,G,J){let X=`${U}:${G}`,Q=$.reviewWaiters.get(X);if(!Q)return;$.reviewWaiters.delete(X),l6($.reviewWaitersByWorkflow,U,X),Q(J)}async function mb($,U,G,J){let X=await X1$($,U,G.workflowId);if(X===null)throw Error(`Review "${U}" not found`);if(X.reviewData===null)throw Error(`Review "${U}" could not be loaded`);let Q=Q1$(U,G,$.options.getNow());await Ib($,X.reviewKey,X.reviewData,Q,J.dispatchEvent),Z1$($,X.workflowId,U,Q)}function Y1$($,U){$({ok:!0,value:U})}async function j1$($,U,G,J,X,Q,Z,Y,j){if(!Y.id.startsWith(`review-escalation:${G}:`)&&Y.id!==`review-timeout:${G}`)return!1;if(Y.id===`review-timeout:${G}`){$.reviewWaiters.delete(J),l6($.reviewWaitersByWorkflow,U,J);let L=$.options.getNow()-X.createdAt;await $.storage.delete(V.review(U,G));let W=new pz(G,L);return await j.failWorkflow(U,W),Z({ok:!1,error:W}),!0}if(!Q.escalation)return!1;let D=$.reviewCoordinator.checkEscalations(X,Q.escalation,$.options.getNow());if(!D)return!1;if(D.type==="escalate")return Q.onEscalation?.(D),!1;$.reviewWaiters.delete(J),l6($.reviewWaitersByWorkflow,U,J);let _={reviewId:G,decision:D.decision,reviewer:"system",feedback:D.auditReason,timestamp:$.options.getNow()};return await Ib($,V.review(U,G),X,_,j.dispatchEvent),Z({ok:!0,value:_}),!0}async function D1$($,U,G,J,X){try{await fetch(J,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workflowId:U,reviewId:G.reviewId,reviewType:G.reviewType,reviewers:G.reviewers,artifact:G.artifact}),signal:X.signal})}catch(Q){if(!(Q instanceof DOMException&&Q.name==="AbortError"))console.warn(`[weft] Failed to send review webhook for ${G.reviewId}`,Q)}finally{$.pendingWebhooks.delete(X)}}async function kb($,U){let G=`review:${R(U)}:`,J=[];if($.storage.deletePrefix)await $.storage.deletePrefix(G);else for await(let[X]of $.storage.scan(G))J.push({type:"delete",key:X});if(J.length>0)await $.storage.batch(J);await vb($.storage,U)}function K8($,U,G){if(G!==void 0)$[U]=G}function H1$($){let U={artifact:$.artifact};return K8(U,"reviewType",$.reviewType),K8(U,"reviewers",$.reviewers),K8(U,"allowPartial",$.allowPartial),K8(U,"timeout",$.timeout),K8(U,"escalation",$.escalation),K8(U,"webhookUrl",$.webhookUrl),U}async function _1$($,U,G,J,X){let Q=[];for(let Z of J.escalation??[]){let Y=`review-escalation:${G}:${Z.after}`;Q.push(Y),await $.scheduler.schedule({id:Y,workflowId:U,fireAt:X+Z.after,kind:"sleep"})}if(J.timeout!==void 0){let Z=`review-timeout:${G}`;Q.push(Z),await $.scheduler.schedule({id:Z,workflowId:U,fireAt:X+J.timeout,kind:"sleep"})}return Q}function L1$($,U,G){let{promise:J,resolve:X}=Promise.withResolvers(),Q=`${U}:${G}`;return $.reviewWaiters.set(Q,(Z)=>Y1$(X,Z)),e1($.reviewWaitersByWorkflow,U,Q),{promise:J,resolve:X,waiterKey:Q}}function V1$($,U,G,J,X){let Q=$.workflowReviewIds.get(U);if($.reviewEscalationHandlers.set(G,X),J.length>0)$.reviewTimerIds.set(G,J);if(!Q)Q=new Set,$.workflowReviewIds.set(U,Q);Q.add(G)}function z1$($,U,G){let J=$.workflowReviewIds.get(U);if($.reviewEscalationHandlers.delete(G),$.reviewTimerIds.delete(G),J?.delete(G),J?.size===0)$.workflowReviewIds.delete(U)}async function fb($,U,G,J){let X=$.options.getNow();await J.ensureTerminalCleanupTracked(U);let Q=await $.reviewCoordinator.createReview(U,H1$(G)),Z=Q.reviewId;if(J.dispatchEvent(new a1(U,Z,Q.reviewType,Q.reviewers)),G.webhookUrl!==void 0){let W=new AbortController;$.pendingWebhooks.add(W),D1$($,U,Q,G.webhookUrl,W)}let Y=await _1$($,U,Z,G,X),{promise:j,resolve:D,waiterKey:_}=L1$($,U,Z);V1$($,U,Z,Y,(W)=>j1$($,U,Z,_,Q,G,D,W,J));let L=await j;z1$($,U,Z);for(let W of Y)await $.scheduler.cancel(W,U);if(!L.ok)return;J.feedOperationResult(U,{status:"completed",value:L.value})}var $Q=B(()=>{y();a7();lz();gb();VW();$0()});async function B1$($,U,G){for(let J of $)try{await J()}catch(X){U.handleCleanupError("cancel-handler",X,G)}}async function W1$($,U,G,J){if(G!=="cancelled")return;let X=rS($,U);await B1$(X,J,U)}async function WW($,U,G){await zU($,U,"cancelled",G)}async function FW($,U,G){await zU($,U,"timed-out",G)}async function zU($,U,G,J,X){$.terminalizingWorkflows.add(U),a5($,U),$.strategy.cancelWorkflow(U);try{let Q=$.workflowsNeedingTerminalCleanup.has(U)?crypto.randomUUID():void 0,Z=await $.storage.get(V.attribute(U)),Y=Z?O(Z):{},j=await $.storage.get(V.finalizerState(U))!==null||LT($,U,V.finalizerState(U)),D=N5(Y),_=G==="timed-out"?"Workflow timed out":"Workflow cancelled",L=await FB($,U,{status:G,...X!==void 0?{terminationReason:X}:{},...Q!==void 0?{terminalCleanupToken:Q}:{}},{allowedStatuses:wB,buildAdditionalOperations:(g,f)=>{K4($,U,G,_,f);let m=P8($,U);return[...m?[m]:[],...Q!==void 0?UQ($,U,!0,f,Q):[],...O1$(U,j,f)]}});if(!L)return;await W1$($,U,G,J),await z8($,U);let{previousState:W,updatedAt:F}=L,P=F-W4(W);if(await BB($,U,Y),await WB($,U,D),J.swallowPromiseRejection($.scheduler.cancel(`deadline:${U}`,U)),W.status==="pending")J.swallowPromiseRejection($.scheduler.cancel(`delayed-start:${U}`,U));let q=$.resultResolvers.get(U),A=F1$(U,G,P);try{await d5($,U,!0,J);let g=K1$(U,G,P,X);if(J.dispatchEvent(g),J.forwardEventToHandle(U,g),q)q.reject(A);e3($,U,J)}catch(g){if(q)q.reject(A);throw g}finally{$.resultResolvers.delete(U)}}finally{$.terminalizingWorkflows.delete(U)}}function F1$($,U,G){return U==="timed-out"?new QU($,"execution",G):Error("Workflow cancelled")}function K1$($,U,G,J){return U==="timed-out"?new P6($,"execution",G,J):new h6($)}function P1$($,U,G,J){return{...$,status:"completed",result:U,updatedAt:G,...J!==void 0?{terminalCleanupToken:J}:{}}}function M1$($,U,G){if(G===void 0||Object.keys(G).length===0)return;let J=N5(G);if($.push(...i$(U,G,J)),Object.keys(J).length>0)$.push({type:"put",key:V.attribute(U),value:N(J)});else $.push({type:"delete",key:V.attribute(U)})}function N1$($,U,G,J){let X=H6(U,G,J).batchOps,Q=[...Z8(G,J),{type:"put",key:V.workflow(U),value:N(J)},...X],Z=P8($,U);if(Z)Q.push(Z);return Q}function q1$($,U,G,J,X){X.swallowPromiseRejection($.scheduler.cancel(`deadline:${U}`,U));let Q=$.resultResolvers.get(U);try{pB($,U,X);let Z=new Y4(U,G,J);if(X.dispatchEvent(Z),X.forwardEventToHandle(U,Z),X.broadcast({type:"workflow:completed",workflowId:U}),Q)Q.resolve(G);e3($,U,X)}catch(Z){if(Q)Q.resolve(G);throw Z}finally{$.resultResolvers.delete(U)}}async function KW($,U,G,J){let X=await J.runSerializedWorkflowStateWrite(U,async()=>{let Q=await J.loadWorkflowState(U);if(!Q||Q.status!=="running")return null;let Z=s$($.options.getNow(),"Workflow completion timestamp"),Y=Z-W4(Q),j=$.workflowsNeedingTerminalCleanup.has(U)?crypto.randomUUID():void 0,D=P1$(Q,G,Z,j),_=N1$($,U,Q,D),L=$.checkpoints.get(U)?.searchAttributes;if(L===void 0){let W=await $.storage.get(V.attribute(U));if(W)L=O(W)}if(M1$(_,U,L),j!==void 0)_.push(...UQ($,U,!1,Z,j));return await J.commitWorkflowStateOperations(Q,_,{includePendingAtomicSideEffects:!0}),{duration:Y}});if(!X)return;await z8($,U),q1$($,U,G,X.duration,J)}async function b6($,U,G,J,X="system"){let Q=await $.storage.get(V.attribute(U)),Z=Q?O(Q):{},Y=N5(Z,{failureCategory:X}),j={status:"failed",error:G.message,failureCategory:X},D=$.workflowsNeedingTerminalCleanup.has(U)?crypto.randomUUID():void 0;if(G.stack!==void 0)j.errorStack=G.stack;if(D!==void 0)j.terminalCleanupToken=D;if(!await FB($,U,j,{allowedStatuses:wB,buildAdditionalOperations:(W,F)=>{K4($,U,"failed",G.message,F);let P=P8($,U);return[...P?[P]:[],...D!==void 0?UQ($,U,!1,F,D):[]]}}))return;await z8($,U),await BB($,U,Z),J.swallowPromiseRejection($.scheduler.cancel(`deadline:${U}`,U)),await WB($,U,Y);let L=$.resultResolvers.get(U);try{await d5($,U,!1,J);let W=new K6(U,G);if(J.dispatchEvent(W),J.forwardEventToHandle(U,W),L)L.reject(G);e3($,U,J)}catch(W){if(L)L.reject(G);throw W}finally{$.resultResolvers.delete(U)}}function UQ($,U,G,J,X){return x$({id:d2(G,X),workflowId:U,fireAt:J+R5,kind:"terminal-cleanup"})}function O1$($,U,G){if(!U)return[];let J=crypto.randomUUID(),X={status:"owed",attempts:0,token:J};return[{type:"put",key:V.teardownOwed($),value:N(X)},...x$({id:T7(J),workflowId:$,fireAt:G,kind:"teardown"})]}async function DG($,U){if($.workflowsNeedingTerminalCleanup.has(U))return;$.workflowsNeedingTerminalCleanup.add(U),await $.storage.put(V.terminalCleanupNeeded(U),F6)}function K4($,U,G,J,X=$.options.getNow()){let Q=$.pendingTimelineEntries.get(U);if(!Q)return;let Z=Q.entry.status;if(Z===G)return;if(Z!=="running"&&!(Z==="completed"&&(G==="failed"||G==="cancelled"||G==="timed-out")))return;Q.entry.status=G,Q.entry.outputSummary=g$(J),Q.entry.duration=X-Q.startedAt}function P8($,U){let G=$.pendingTimelineEntries.get(U);if(!G)return null;return{type:"put",key:V.timeline(U,G.entry.step),value:N(G.entry)}}var wb=B(()=>{y();u();Y$();E$();D6();_5();j8();g5();G0();D0();j0();B$();r3();_6();$G()});function ub($,U,G,J){let X=$.inlineStrategy?.getAbortController(U),Q=$.activityWorkerDispatcher?void 0:lR(G.options?.timeout),Z=Q===void 0?void 0:new AbortController,Y=A1$(X?.signal,Z?.signal,J);return{perAttemptTimeoutMs:Q,attemptAbortController:Z,activitySignal:Y}}function A1$($,U,G){let J=[$,U,G].filter((Q)=>Q!==void 0),[X]=J;if(X===void 0)return new AbortController().signal;if(J.length===1)return X;return AbortSignal.any(J)}async function GQ($,U,G,J,X){if(U===void 0)return $;let Q=Promise.resolve($);Q.catch(()=>{});let Z,Y=new Promise((j,D)=>{Z=setTimeout(()=>{let _=new rz(G,J,U);D(_),X?.abort(_)},U)});try{return await Promise.race([Q,Y])}finally{if(Z!==void 0)clearTimeout(Z)}}var PW=B(()=>{sz()});async function cb($,U,G,J){let X=$.timeout===void 0?void 0:T$($.timeout),Q=new AbortController,Z=()=>Q.abort(J.reason);if(J.aborted)Q.abort(J.reason);else J.addEventListener("abort",Z,{once:!0});let Y={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 GQ($.execute(U,Y),X,$.name,G,Q),J.aborted)return{ok:!1,error:Error(`Finalizer "${$.name}" resolved while the engine was shutting down; treating attempt ${G} as shutdown-aborted so the teardown re-runs after restart.`,{cause:J.reason}),abortedByShutdown:!0};return{ok:!0}}catch(j){return{ok:!1,error:j,abortedByShutdown:J.aborted}}finally{J.removeEventListener("abort",Z)}}var pb=B(()=>{E$();PW()});function lb($){let U=$-1;return MW[U]??MW[MW.length-1]}function ib($){return($.timeout===void 0?C1$:T$($.timeout))+R1$}function nb($,U,G){if(U.status!=="running")return!0;if(U.claimedAt===void 0)return!0;return $.options.getNow()-U.claimedAt>=ib(G)}function JQ($,U,G){return x$({id:T7($),workflowId:U,fireAt:G,kind:"teardown"})}function NW($,U){return N({status:"owed",attempts:$,token:U})}function T1$($,U,G){return N({status:"running",attempts:$,token:U,claimedAt:G})}async function HG($,U,G,J){let X=$.options.getNow()+J;try{await C$($,JQ(G,U,X),[],()=>Error("teardown self-heal re-arm lost the lease fence"))}catch{}}async function rb($,U,G){try{return await J8($,[{type:"delete",key:V.teardownOwed(U)}],[{key:V.teardownOwed(U),expectedValue:G}])}catch{return!1}}async function ob($,U,G,J,X){let Q=T1$(J,X,$.options.getNow());return await J8($,[{type:"put",key:V.teardownOwed(U),value:Q}],[{key:V.teardownOwed(U),expectedValue:G}])?Q:null}async function _G($,U,G,J){return J8($,J,[{key:V.teardownOwed(U),expectedValue:G}])}async function qW($,U,G,J,X,Q){let Z={type:G,lastError:Q.lastError,attempts:J,deadLetteredAt:$.options.getNow(),...Q.finalizerInput===void 0?{}:{finalizerInput:Q.finalizerInput}};return _G($,U,X,[{type:"delete",key:V.teardownOwed(U)},{type:"delete",key:V.finalizerState(U)},{type:"put",key:V.teardownDeadLetter(U),value:N(Z)}])}var db=8,MW,C1$=300000,R1$=30000,M8=30000;var sb=B(()=>{y();u();E$();B4();B$();MW=[60000,300000,900000,3600000]});function S1$($){return $ instanceof Error?$.message:String($)}async function XQ($,U,G){await HG($,U,G,M8)}async function OW($,U,G,J){return await rb($,U,J)?{kind:"cleared"}:{kind:"rearm",token:G}}async function b1$($,U,G,J){let X;try{X=O(J)}catch{return OW($,U,G,J)}if(!MC(X))return OW($,U,G,J);return{kind:"claim",claim:X}}async function x1$($,U,G,J){let X=await $.storage.get(V.teardownOwed(U));if(X===null)return{kind:"cleared"};let Q=await b1$($,U,G,X);if(Q.kind!=="claim")return Q;let Z=Q.claim;if(Z.token!==G)return{kind:"cleared"};let Y=await J.loadWorkflowState(U);if(Y===null||!E1$.has(Y.status))return OW($,U,G,X);let j=$.registrations.get(Y.type)?.finalizer;if(j===void 0)return{kind:"rearm",token:G};let D=j;if(!nb($,Z,D))return{kind:"rearm",token:G};let _=await $.storage.get(V.finalizerState(U));if(_===null)return await v1$($,U,Y.type,Z.attempts,X,J),{kind:"cleared"};return{kind:"run",drive:{state:Y,claim:Z,markerBytes:X,finalizer:D,finalizerInput:O(_)}}}async function v1$($,U,G,J,X,Q){if(await qW($,U,G,J,X,{lastError:"finalizer state missing \u2014 recorded resource cannot be torn down",finalizerInput:void 0}))Q.dispatchEvent(new j1(U,G,"dead-lettered",J,"finalizer state missing \u2014 recorded resource cannot be torn down"))}async function AW($,U,G,J){let X=PC(G);if(X===null)return;try{let Q=await x1$($,U,X,J);if(Q.kind==="cleared")return;if(Q.kind==="rearm"){await HG($,U,Q.token,M8);return}await g1$($,U,X,Q.drive,J)}catch(Q){await HG($,U,X,M8),J.handleCleanupError("runWorkflowFinalizer",Q,U)}}async function g1$($,U,G,J,X){let{state:Q,claim:Z,markerBytes:Y,finalizer:j,finalizerInput:D}=J,_=Z.attempts+1,L=await ob($,U,Y,Z.attempts,G);if(L===null){await HG($,U,G,M8);return}let W=await cb(j,D,_,$.abortController.signal);if(W.ok){await I1$($,U,Q.type,G,_,L,X);return}if(W.abortedByShutdown){let F=$.options.getNow()+M8;if(!await _G($,U,L,[{type:"put",key:V.teardownOwed(U),value:NW(Z.attempts,G)},...JQ(G,U,F)]))await XQ($,U,G);return}await h1$($,U,Q,_,G,L,W.error,X)}async function I1$($,U,G,J,X,Q,Z){if(!await _G($,U,Q,[{type:"delete",key:V.teardownOwed(U)},{type:"delete",key:V.finalizerState(U)}])){await XQ($,U,J);return}Z.dispatchEvent(new j1(U,G,"completed",X))}async function h1$($,U,G,J,X,Q,Z,Y){let j=S1$(Z);if(J>=db){let L=await $.storage.get(V.finalizerState(U));if(!await qW($,U,G.type,J,Q,{lastError:j,finalizerInput:L===null?void 0:O(L)})){await XQ($,U,X);return}Y.dispatchEvent(new j1(U,G.type,"dead-lettered",J,j));return}let D=$.options.getNow()+lb(J);if(!await _G($,U,Q,[{type:"put",key:V.teardownOwed(U),value:NW(J,X)},...JQ(X,U,D)])){await XQ($,U,X);return}Y.dispatchEvent(new j1(U,G.type,"failed",J,j))}var E1$;var ab=B(()=>{y();u();Y$();B$();pb();sb();E1$=new Set(["cancelled","timed-out"])});async function CW($,U,G){if(!await G.runSerializedWorkflowStateWrite(U,async()=>{let Q=await G.loadWorkflowState(U);if(!Q||Q.status!=="running")return!1;if($.inlineStrategy===null)throw new w0("suspend is only supported in inline execution mode; a worker run cannot be paused without cancelling it.");$.inlineStrategy.parkWorkflow(U),a5($,U),$.checkpoints.delete(U),$.parkedInlineWorkflows.delete(U),uB($,U,G);let Z=$.options.getNow(),Y={...Q,status:"suspended",updatedAt:Z};return await G.commitWorkflowStateOperations(Q,[{type:"put",key:V.workflow(U),value:N(Y)},...H6(U,Q,Y).batchOps,...y1$(U,Q.executionDeadline)]),!0}))return;let X=new pU(U);G.dispatchEvent(X),G.forwardEventToHandle(U,X)}function y1$($,U){if(U===void 0)return[];let G=`deadline:${$}`;return[{type:"delete",key:V.deadline(U,G)},{type:"delete",key:`timer-idx:${G}`}]}var tb=B(()=>{y();u();Y$();F$();D0();_6();$G()});var O1=B(()=>{$G();wb();ab();tb()});function LG($){return{dispatchEvent:(U)=>$.dispatchEvent(U),broadcast:(U)=>U0(z($),U,n4($))}}function QQ($){return{processPendingUpdatesAfterInlineAdvance:(U)=>eb($,U),swallowPromiseRejection:(U)=>F4(U)}}async function eb($,U){try{await qb(z($),U,LG($))}catch(G){z$($).handleCleanupError("processPendingUpdates",G,U)}}function t$($){return{dispatchEvent:(U)=>{$.dispatchEvent(U)},getHandle:(U)=>$.getHandle(U),createWorkflowHandleWithResultPromise:(U)=>I5(z($),U),runSerializedWorkflowStateWrite:(U,G)=>i6(z($),U,G),getComposedWorkflowInterceptor:()=>a6(z($)),resolveWorkflowTypeTarget:(U)=>t5(z($),U,ZQ($)),processPendingUpdatesAfterReplay:(U)=>{hB(z($),U,{processPendingUpdatesForHandlers:(G)=>YG(z($),G,LG($)),handleCleanupError:(G,J,X)=>z$($).handleCleanupError(G,J,X)})},processPendingUpdatesAfterInlineAdvance:(U)=>eb($,U),processPendingUpdatesForHandlers:(U)=>YG(z($),U,LG($)),queueInlineWorkflowExecutionStart:(U)=>Lb(z($),U,QQ($)),isInlineWorkflowLocallyOwned:(U,G)=>Kb(z($),U,G),hasLocalCheckpointOwnership:(U,G)=>Pb(z($),U,G),handleCleanupError:(U,G,J)=>z$($).handleCleanupError(U,G,J),swallowPromiseRejection:(U)=>F4(U),enforceHistoryCircuitBreaker:(U)=>zU(z($),U,"timed-out",z$($),sX),failWorkflowForUnavailableServices:(U,G)=>b6(z($),U,G,z$($),"system"),failWorkflowForCheckpointDecodeError:(U,G)=>b6(z($),U,G,z$($),"system")}}function m1$($,U){let G=(J)=>{$.dispatchEvent(J)};return{dispatchEvent:G,forwardEventToHandle:(J,X)=>xT(z($),J,X,n4($)),broadcast:(J)=>U0(z($),J,n4($)),swallowPromiseRejection:(J)=>F4(J),handleCleanupError:(J,X,Q)=>t3(z($),J,X,Q,{dispatchEvent:G}),handleScheduledWorkflowTerminal:U,loadWorkflowState:(J)=>J$(z($),J),runSerializedWorkflowStateWrite:(J,X)=>i6(z($),J,X),commitWorkflowStateOperations:(J,X,Q)=>M5(z($),J,X,Q),cleanupReviews:(J)=>kb(z($),J)}}function Ux($){$x=$}function z$($){return m1$($,(U)=>$x($,U))}function ZQ($){return{ensureRetentionSweepInterval:()=>k1$($),dispatchEvent:(U)=>$.dispatchEvent(U)}}function Jx($){Gx=$}function k1$($){Gx($)}function n4($){return{dispatchEvent:(U)=>$.dispatchEvent(U)}}function YQ($){return{deleteRequestIfUnconsumed:(U,G)=>z($).updateCoordinator.deleteRequestIfUnconsumed(U,G),getUpdateResponse:(U)=>z($).updateCoordinator.getResponse(U)}}function Xx($){return{cancelWorkflowInStrategy:(U)=>z($).strategy.cancelWorkflow(U),dispatchEvent:(U)=>$.dispatchEvent(U),failWorkflow:(U,G)=>b6(z($),U,G,z$($)),feedOperationResult:(U,G,J)=>s6(z($),U,G,J)}}var $x=async()=>{return},Gx=()=>{return};var N8=B(()=>{k6();D5();xB();D0();q1();j0();HW();_W();$Q();a$();l4();O1()});function Qx($){RW=$}function VG($){if(RW===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 RW($)}var RW;class zG{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 Zx($){if(!Number.isSafeInteger($)||$<=0)throw Error("Interval schedule period must be a positive safe integer of milliseconds")}function TW($,U,G){Zx(U);let J=s$($,"Interval anchor"),X=s$(G,"Interval occurrence candidate");if(X<J)return J+U;let Q=X-J,Z=Math.floor(Q/U),Y=J+(Z+1)*U;return s$(Y,"Interval occurrence")}function Yx($,U,G,J,X){Zx(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 Z=Q??Number.POSITIVE_INFINITY,Y=[],j=G;while(j<=J&&Y.length<Z)Y.push(j),j=TW($,U,j);return Y}var jx=B(()=>{E$()});function Dx($){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 r4($,U){let G=Dx($);if(G.kind==="interval")return TW(G.anchor,G.intervalMs,U);return F5(G.cronExpression,U)}function Hx($,U,G,J){let X=Dx($);if(X.kind==="interval")return Yx(X.anchor,X.intervalMs,U,G,{maxOccurrences:J});return HB(X.cronExpression,U,G,{maxOccurrences:J})}var EW=B(()=>{_B();jx()});async function SW($,U,G,J){let X=crypto.randomUUID(),Q=U.overlap==="allow"?[]:[{type:"put",key:V.scheduleRun(X),value:N(U.id)}],Z=await f1$($,X,U);if(Z!==null){if(Q.push({type:"put",key:V.workflowHasServices(X),value:F6},{type:"put",key:V.terminalCleanupNeeded(X),value:F6}),$.workflowsNeedingTerminalCleanup.add(X),Z.status==="available")$.workflowServices.set(X,Z.services)}if(await G.startWorkflow(U.workflowType,U.input,{id:X},Q),$.engine.dispatchEvent(new xU(U.id,X,$.options.getNow(),J)),Z!==null&&Z.status==="unavailable"){let Y=m5(X,Z.reason);try{await G.failWorkflow(X,Y)}catch(j){G.handleCleanupError("startScheduledRun",j,X)}}return X}async function f1$($,U,G){let J=$.options.resolveWorkflowServices;if($.inlineStrategy===null||!J)return null;try{return await J({workflowId:U,workflowType:G.workflowType,input:G.input})}catch(X){return{status:"unavailable",reason:X instanceof Error?X.message:String(X)}}}var _x=B(()=>{y();u();Y$();f5();N1()});async function gW($,U,G){let J=await DU($,U.workflowId);if(!c1$(J,U))return;let X=J;try{let Q=$.options.getNow(),Z=p1$(J,U,Q);if(!Z)return;if(Z.occurrencesToProcess.length===0){if(X={...X,updatedAt:Q,nextFireAt:bW(X,Z,Q),...Z.missedOccurrences&&{lastMissedFireAt:Z.missedOccurrences.lastMissedFireAt,missedFireCount:X.missedFireCount+Z.missedOccurrences.count}},await xW($,X),Z.missedOccurrences)$.engine.dispatchEvent(new vU(X.id,Z.missedOccurrences.count,Z.missedOccurrences.windowStart,Z.missedOccurrences.windowEnd));return}X=await l1$($,J,Z,Q,G,{onProcessedState:(Y)=>{X=Y}})}catch(Q){if(Q instanceof vW)throw Q;await i1$($,X,Q)}}function c1$($,U){return $?.status==="active"&&$.nextFireAt!==null&&X8($,$.nextFireAt)===U.fireAt}function p1$($,U,G){let J=Hx($,$.nextFireAt,Math.max(G,U.fireAt),$.backfill?Lx:2);if(J.length===0)return null;if(!$.backfill&&G-U.fireAt>w1$)return{dueOccurrences:J,missedOccurrences:d1$($,$.nextFireAt,G),occurrencesToProcess:[],skipMissedOccurrences:!0};let X=$.backfill?J:J.slice(0,1);return{dueOccurrences:J,occurrencesToProcess:X,skipMissedOccurrences:!1}}function d1$($,U,G){let J=0,X=U,Q=U;while(X<=G&&J<u1$){J+=1,Q=X;let Y=r4($,X);if(Y<=X)throw Error(`Schedule "${$.id}" produced a non-advancing occurrence`);X=Y}let Z=X<=G;return{count:J,lastMissedFireAt:Q,windowStart:U,windowEnd:Z?Q:G}}function bW($,U,G){if(U.skipMissedOccurrences)return r4($,U.missedOccurrences?.lastMissedFireAt??G);let J=U.occurrencesToProcess.at(-1)??U.dueOccurrences.at(-1);return r4($,J)}async function l1$($,U,G,J,X,Q){let Z=U;for(let[Y,j]of G.occurrencesToProcess.entries()){let D=Y===G.occurrencesToProcess.length-1;if(Z={...await X.applyScheduleOccurrence(Z,j),lastFireAt:j,updatedAt:J},D)Z={...Z,nextFireAt:bW(Z,G,J)};if(Q.onProcessedState(Z),await xW($,Z,{includeTimer:D}),U.backfill&&Z.currentWorkflowId!==void 0){if(Z=await X.settleBackfillScheduleState(Z),D)Z={...Z,updatedAt:J,nextFireAt:bW(Z,G,J)},await xW($,Z);Q.onProcessedState(Z)}}return Z}async function xW($,U,G){try{await n6($,U,G)}catch(J){throw new vW(U.id,J)}}async function i1$($,U,G){let J=$.options.getNow(),X={...U,status:"paused",updatedAt:J,nextFireAt:r4(U,J)};await n6($,X,{includeTimer:!1}),console.error(`[weft] Paused schedule "${X.id}" after timer processing failed:`,G)}var w1$=1000,Lx=256,u1$,vW;var Vx=B(()=>{UY();B5();EW();a$();u1$=Lx;vW=class vW extends Error{scheduleId;constructor($,U){super(`Failed to persist schedule "${$}" while processing its timer`,{cause:U});this.scheduleId=$}}});async function IW($,U,G,J,X){if(!$.registrations.has(U))throw new T6(U);let Q=zB(J),Z=tT(X),Y=Z.id??crypto.randomUUID();if($.pendingScheduleCreations.has(Y))throw Error(`Schedule with id "${Y}" already exists`);$.pendingScheduleCreations.add(Y);try{if(await $.storage.get(V.schedule(Y)))throw Error(`Schedule with id "${Y}" already exists`);let j=$.options.getNow(),D=Q.kind==="interval"?{intervalMs:Q.intervalMs}:{cronExpression:Q.cronExpression},_={id:Y,workflowType:U,input:G,...D,status:"active",overlap:Z.overlap,backfill:Z.backfill,...Z.jitterMs!==void 0&&{jitterMs:Z.jitterMs},createdAt:j,updatedAt:j,nextFireAt:r4({...D,createdAt:j},j),missedFireCount:0,queuedRuns:0};return await n6($,_),new zG(Y,$.engine)}finally{$.pendingScheduleCreations.delete(Y)}}async function zx($,U){let G=eT(U),J=[];for await(let[X,Q]of $.storage.scan("schedule:")){if(X.slice(9).includes(":"))continue;let Y=w3(Q);if(!Y||!SC(Y,G))continue;let{input:j,...D}=Y;J.push(D)}return bC(J,G)}async function Bx($){for await(let[U,G]of $.storage.scan("schedule:")){if(U.slice(9).includes(":"))continue;let X=w3(G);if(!n1$(X))continue;if(await r1$($,X))continue;await n6($,X)}}function n1$($){return $?.status==="active"&&$.nextFireAt!==null}async function r1$($,U){let G=V.scheduleTick(X8(U,U.nextFireAt),U.id);if(await $.storage.get(G)===null)return!1;let X=await $.storage.get(`timer-idx:${p2(U.id)}`);return X!==null&&O(X)===G}function Wx($){let{input:U,...G}=$;return G}async function Fx($,U){let G=X0(U,"scheduleId"),J=await u3($,G);if(J.status!=="active")return;await $.scheduler.cancel(p2(G),G);let X=$.options.getNow(),Q={...J,status:"paused",updatedAt:X,nextFireAt:r4(J,X),queuedRuns:0};await n6($,Q,{includeTimer:!1})}async function Kx($,U){let G=X0(U,"scheduleId"),J=await u3($,G);if(J.status==="cancelled")throw Error(`Schedule "${G}" has been cancelled and cannot be resumed`);if(J.status==="active")return;let X=$.options.getNow(),Q={...J,status:"active",updatedAt:X,nextFireAt:r4(J,X)};await n6($,Q)}async function Px($,U){let G=X0(U,"scheduleId"),J=await u3($,G);if(J.status==="active")await $.scheduler.cancel(p2(G),G);let X={...J,status:"cancelled",updatedAt:$.options.getNow(),nextFireAt:null,queuedRuns:0};await n6($,X,{includeTimer:!1})}async function Mx($,U,G){let J=X0(U,"scheduleId"),X=zB(G),Q=await u3($,J),Z=$.options.getNow(),{cronExpression:Y,intervalMs:j,...D}=Q,_=X.kind==="interval"?{intervalMs:X.intervalMs}:{cronExpression:X.cronExpression},L=X.kind==="interval"?{createdAt:Z}:{},W={...D,..._,...L,updatedAt:Z,nextFireAt:Q.status==="cancelled"?null:r4({..._,createdAt:Z},Z)};await n6($,W,{includeTimer:Q.status==="active"})}function Nx($){let U=$?.status;return U==="running"||U==="pending"||U==="suspended"}async function qx($,U,G){if(!U.currentWorkflowId)return{state:U,currentWorkflowState:null};let J=await G.loadWorkflowState(U.currentWorkflowId);if(Nx(J))return{state:U,currentWorkflowState:J};return await $.storage.delete(V.scheduleRun(U.currentWorkflowId)),{state:v7(U),currentWorkflowState:J??null}}function o1$($){return Nx($)}async function s1$($,U,G,J){if(!U)return{...$,currentWorkflowId:await G.startScheduledRun($,J)};if($.overlap==="cancel-running"){if($.currentWorkflowId)G.getWorkflowResult($.currentWorkflowId).catch(()=>{}),await G.cancelWorkflow($.currentWorkflowId);let X=v7($);return{...$,currentWorkflowId:await G.startScheduledRun(X,J)}}if($.overlap==="queue")return{...$,queuedRuns:$.queuedRuns+1};return $}async function Ox($,U,G,J){let{state:X,currentWorkflowState:Q}=await G.refreshScheduledWorkflowState(U),Z=o1$(Q);if(X.overlap==="allow")return await G.startScheduledRun(X,J),X;return s1$(X,Z,G,J)}async function Ax($,U,G){if(!U.currentWorkflowId)return U;await G.flushQueuedInlineWorkflowStartsDirectly();let J=$.inlineStrategy?.waitForWorkflowTurn(U.currentWorkflowId);if(J)await J;return(await G.refreshScheduledWorkflowState(U)).state}async function Cx($,U,G){let J=await $.storage.get(V.scheduleRun(U));if(!J)return;await $.storage.delete(V.scheduleRun(U));let X=O(J);if(!K5(X))return;let Z=await DU($,X);if(!Z||Z.currentWorkflowId!==U)return;let Y=$.options.getNow(),j={...v7(Z),updatedAt:Y};if(j.status==="active"&&j.overlap==="queue"&&j.queuedRuns>0){let D=await G.startScheduledRun(j);await n6($,{...j,currentWorkflowId:D,queuedRuns:j.queuedRuns-1,updatedAt:Y},{includeTimer:!1});return}await n6($,j,{includeTimer:!1})}var hW=B(()=>{y();u();F$();B5();EW();B$();a$();P5();_x();Vx()});function q8($){return{startWorkflow:async(U,G,J,X)=>{await r6(z($),U,G,J,X,t$($))},loadWorkflowState:(U)=>J$(z($),U),cancelWorkflow:(U)=>$.cancel(U),getWorkflowResult:(U)=>$.getHandle(U).result(),refreshScheduledWorkflowState:(U)=>a1$($,U),startScheduledRun:(U,G)=>t1$($,U,G),applyScheduleOccurrence:(U,G)=>e1$($,U,G),settleBackfillScheduleState:(U)=>$0$($,U),flushQueuedInlineWorkflowStartsDirectly:()=>Vb(z($),QQ($)),failWorkflow:(U,G)=>b6(z($),U,G,z$($)),handleCleanupError:(U,G,J)=>t3(z($),U,G,J,{dispatchEvent:(X)=>$.dispatchEvent(X)})}}function Rx($){return{dispatchEvent:$.dispatchEvent.bind($),failWorkflow:(U,G)=>b6(z($),U,G,z$($)),feedOperationResult:(U,G)=>s6(z($),U,G),ensureTerminalCleanupTracked:(U)=>DG(z($),U)}}async function a1$($,U){return qx(z($),U,q8($))}async function t1$($,U,G){return SW(z($),U,q8($),G)}async function e1$($,U,G){return Ox(z($),U,q8($),G)}async function $0$($,U){return Ax(z($),U,q8($))}async function Tx($,U){return gW(z($),U,q8($))}async function U0$($,U){return Cx(z($),U,q8($))}var Ex=B(()=>{N8();D0();q1();j0();hW();a$();l4();O1();Ux(($,U)=>U0$($,U))});async function yW($,U,G){let J=await $.storage.get(V.workflow(U));if(!J)return;let X=j$(J);if(J0$.has(X.status))throw new a2(U,X.status)}async function X0$($,U,G,J){for(let X=0;X<Sx;X++){if(await J.getUpdateResponse(G)!==null)return!0;if(await $.storage.get(V.update(U,G))===null)return!0;if(X<Sx-1)await Z1(G0$)}return!1}async function bx($,U,G,J){try{await yW($,U,J)}catch(X){if(X instanceof a2){if(await X0$($,U,G,J))return;if(await J.deleteRequestIfUnconsumed(U,G)!==null)return}throw X}}var Sx=5,G0$=5,J0$;var xx=B(()=>{N4();y();JU();A$();J0$=new Set(["completed","failed","cancelled","timed-out"])});function vx($,U){let G=U;if(G==null||typeof G!=="object")throw Error("Invalid operation request received from execution strategy");if("type"in G&&typeof G.type==="string")return G;if("kind"in G&&typeof G.kind==="string"){let J=G.kind,Q={activity:"activity",timer:"sleep","signal-wait":"wait-signal","child-workflow":"child-workflow"}[J]??J;return{...G,type:Q,operationId:G.id??crypto.randomUUID(),activityName:G.activityName??"",input:G.input}}throw Error("Unsupported operation request shape received from execution strategy")}async function gx($,U,G,J){let X=Z0$(G,J);if(X)return X(U,G);let Q=String(G.type);WG($,U,G,Error(`Unsupported operation type: ${Q}`),J)}function Q0$($){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 Z0$($,U){return Q0$(U)[$.type]}function BG($,U,G,J){J.finalizePendingTimelineEntry(U,"completed",G),J.feedOperationResult(U,{status:"completed",value:G})}function WG($,U,G,J,X){if(J instanceof Error&&G.callerStack)J.stack=`${J.stack}
52
52
  --- workflow call site ---
53
- ${G.callerStack}`;let Q=J instanceof Error?J.message:String(J);X.finalizePendingTimelineEntry(U,"failed",Q),X.feedOperationResult(U,{status:"failed",error:Q,...J instanceof Error?{errorName:J.name}:{},failureCategory:Q3(J,{defaultErrorCategory:"application"})},{value:J})}async function Ix($,U,G,J,X){try{let Q=await J();BG($,U,Q,X)}catch(Q){WG($,U,G,Q,X)}}async function hx($,U,G,J,X){try{await J()}catch(Q){WG($,U,G,Q,X)}}var jQ=B(()=>{f4()});async function mx($,U,G,J){return J.runOperationWithResult(U,G,()=>kW($,U,G,mW($,U),J))}function mW($,U){let G=Y0$($,U);if(G+1>$.options.maxNestingDepth)throw Error(`Child workflow nesting depth exceeded: ${G+1} exceeds maximum of ${$.options.maxNestingDepth}. Configure maxNestingDepth in engine options to increase the limit.`);return G}function Y0$($,U){return $.inlineStrategy?.getContext(U)?.nestingDepth??$.workflowNestingDepths.get(U)??0}function j0$($,U){$.pendingNestingDepth=U.pendingNestingDepth,$.pendingParentHeaders=U.pendingParentHeaders,$.pendingExecutionStateOwnerId=U.pendingExecutionStateOwnerId}function D0$($,U){if($.pendingNestingDepth===U.pendingNestingDepth)$.pendingNestingDepth=void 0;if($.pendingParentHeaders===U.pendingParentHeaders)$.pendingParentHeaders=void 0;if($.pendingExecutionStateOwnerId===U.pendingExecutionStateOwnerId)$.pendingExecutionStateOwnerId=void 0}function H0$($,U,G){return $.type===U.workflowType&&EC($.input,U.input)&&$.executionStateOwnerId===G}async function _0$($,U,G,J,X){let Q=await X.loadWorkflowState($);if(!Q)throw J;if(!H0$(Q,U,G))throw Error(`Child workflow id collision for "${$}" does not match the requested child workflow`,{cause:J});return X.getHandle($)}async function L0$($,U,G,J,X){_7(G.options,"ctx.startChild"),j0$($,J);try{return await X.start(G.workflowType,G.input,{id:U})}catch(Q){if(!(Q instanceof p$))throw Q;return _0$(U,G,J.pendingExecutionStateOwnerId??void 0,Q,X)}finally{D0$($,J)}}async function kW($,U,G,J,X){let Q=G.options?.id,Z=typeof Q==="string"?Q:crypto.randomUUID(),Y=$.workflowHeaders.get(U)??new Map,j=await X.loadWorkflowState(U),D=V0$(G),_=D==="abandon"?null:j?.executionStateOwnerId??U,L=async()=>{let F={pendingNestingDepth:J+1,pendingParentHeaders:$.workflowHeaders.get(U),pendingExecutionStateOwnerId:_},P=await L0$($,Z,G,F,X);if(D==="abandon")return yx(P.id);if(D==="request-cancel")return t1($,U,{conditions:[],operations:jb($,U,P.id)}),JW($,U,P.id,X),yx(P.id);return P.result()},W=X.getComposedWorkflowInterceptor();if(!W)return L();return W.childWorkflow({workflowId:U,childWorkflowId:Z,workflowType:G.workflowType,input:G.input,headers:new Map,parentHeaders:Y},L)}function V0$($){return $.options?.parentClosePolicy??"await"}function yx($){return{id:$}}var fW=B(()=>{m$();QW();F$();B$()});function fx($){return{[kx]:!0,finalize:$}}function z0$($){return typeof $==="object"&&$!==null&&$[kx]===!0}async function O8($){if(z0$($))return $.finalize();if(Array.isArray($))return Promise.all($.map((U)=>O8(U)));return $}var kx;var DQ=B(()=>{kx=Symbol("weft.deferredConsume")});function wx($,U){return Math.min(Math.max(0,$-U),B0$)}function ux($,U,G){G?.throwIfAborted();let J=$.abortController.signal;if(J.aborted)return Promise.reject(J.reason??Error("aborted"));if(wx(U.scheduledFireAt,$.options.getNow())===0)return Promise.resolve();return new Promise((X,Q)=>{let Z,Y=()=>{G?.removeEventListener("abort",j),J.removeEventListener("abort",j)},j=()=>{clearTimeout(Z),Y(),Q(G?.reason??J.reason??Error("aborted"))},D=()=>{let _=wx(U.scheduledFireAt,$.options.getNow());if(_===0){Y(),X();return}Z=setTimeout(D,_)};G?.addEventListener("abort",j,{once:!0}),J.addEventListener("abort",j,{once:!0}),D()})}function cx($,U,G,J){J?.throwIfAborted();let{signalName:X}=G,Q=`${U}:${X}`,Z=$.abortController.signal;return new Promise((Y,j)=>{let D=!1,_=!1,{promise:L,resolve:W}=Promise.withResolvers(),F=()=>{J?.removeEventListener("abort",q),Z.removeEventListener("abort",q)},P=async()=>{let f=await x3($,U,X);return f.found?f.payload:void 0},q=()=>{if(D)return;if(D=!0,F(),_)b3($,U,Q,W);j(J?.reason??Z.reason??Error("aborted"))},A=()=>{if(D)return;D=!0,F(),Y(fx(P))},g=(f)=>{if(D)return;if(D=!0,F(),_)b3($,U,Q,W);j(f)};if(J?.addEventListener("abort",q,{once:!0}),Z.addEventListener("abort",q,{once:!0}),Z.aborted){q();return}(async()=>{let f=await $B($,U,X);if(D)return;if(f.found){A();return}$.signalWaiters.set(Q,W),e1($.signalWaitersByWorkflow,U,Q),_=!0;let m=await $B($,U,X);if(D)return;if(m.found){b3($,U,Q,W),A();return}if(await L,D)return;A()})().catch(g)})}var B0$=2147483647;var px=B(()=>{DQ();$0()});function W0$($,U,G,J){let X=$.lastHeartbeatDetailsByStep.get(U);if(X===void 0)X=new Map,$.lastHeartbeatDetailsByStep.set(U,X);X.set(G,J)}function dx($,U,G){return $.lastHeartbeatDetailsByStep.get(U)?.get(G)}function wW($,U,G){let J=$.lastHeartbeatDetailsByStep.get(U);if(J===void 0)return;if(J.delete(G),J.size===0)$.lastHeartbeatDetailsByStep.delete(U)}function lx($,U,G,J){if(!$.options.development)return;if($.activityWorkerDispatcher)return;if(J<=1)return;if(dx($,U,G)!==void 0)return;$.engine.dispatchEvent(new R4(U,`Activity retry (attempt ${J}) at step ${G} 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.${G}.lastHeartbeatDetails`]))}function ix($,U,G,J,X){return{signal:J,lastHeartbeatDetails:dx($,U,G),heartbeat:(Q)=>{$.heartbeatDetails.set(U,Q),W0$($,U,G,Q)},completeAsync:X}}var nx=B(()=>{Y$()});async function ox($,U,G){let J=await M0$(G);return{idempotencyKeyDigest:J,key:V.activityReconciliation($,U,J)}}function sx($,U){let G=$?.idempotencyKey?.(U.input);if(G!==void 0)return G;let J=U.options?.idempotencyKey;return typeof J==="string"?J:void 0}async function ax($,U){let G=await $.get(U);if(G===null)return null;return P0$(O(G))}function LQ($,U){return E6($,U,"activity result"),N($)}async function F0$($,U,G){if(!$.capabilities().conditionalBatch)throw new HQ;return q$($,"conditionalBatch","activity result reconciliation"),W$($,[{key:U.key,expectedValue:null}],[{type:"put",key:U.key,value:N(G)}])}function uW($,U,G){return{...$,status:"completed",result:U,updatedAt:G}}async function tx($,U,G,J,X,Q,Z){let Y=await ax($.storage,J.key);if(Y===null){let _=await q0$($,U,G,J,Z);if(_.didClaim)return _.record;Y=_.record}if(Y.status==="completed")return{completedResult:Y.result};if(!X?.verify)throw new t6(`Activity "${G.activityName}" has a prior dispatch marker but no Tier-0 verifier.`);let j=K0$(await O0$(X,U,G,Q,Y));if(j==="not-completed"){let _={...Y,attempt:Y.attempt+1,ownerId:crypto.randomUUID(),updatedAt:$.options.getNow()};return await rx($.storage,J,Y,_),_}if(j==="completed-result-unavailable")throw new t6(`Activity "${G.activityName}" completed externally but its result is unavailable.`);if(j==="indeterminate")throw new t6(`Activity "${G.activityName}" reconciliation is indeterminate.`);LQ(j.result,$.options.payloadSizePolicy.maxBytes);let D=uW(Y,j.result,$.options.getNow());return await rx($.storage,J,Y,D),{completedResult:j.result}}async function rx($,U,G,J){let X=$v(U,G,J);if(!await W$($,X.conditions,X.operations))throw new _Q("Activity reconciliation completion lost compare-and-set ownership.")}function ex($,U,G,J,X){t1($,U,$v(G,J,X))}function $v($,U,G){return{conditions:[{key:$.key,expectedValue:N(U)}],operations:[{type:"put",key:$.key,value:N(G)}]}}function K0$($){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 t6("Activity verifier did not return a Tier-0 pre-dispatch reconciliation state.")}function cW($,U,G,J,X,Q,Z){return{phase:$,workflowId:U,operationId:G,activityName:J,input:X,...Q===void 0?{}:{idempotencyKey:Q},attempt:Z}}function P0$($){if(typeof $!=="object"||$===null)throw new t6("Activity reconciliation record is not an object.");let U=$;if(!A0$(U))throw new t6("Activity reconciliation record has an invalid shape.");if(U.status==="started")return U;if(U.status==="completed"&&"result"in U)return U;throw new t6("Activity reconciliation record has an unsupported status.")}async function M0$($){let U=new TextEncoder().encode($),G=await crypto.subtle.digest("SHA-256",U);return[...new Uint8Array(G)].map((J)=>J.toString(16).padStart(2,"0")).join("")}function N0$($,U,G,J,X){return{version:1,status:"started",workflowId:$,operationId:U.operationId,activityName:U.activityName,idempotencyKeyDigest:G.idempotencyKeyDigest,attempt:J,ownerId:crypto.randomUUID(),createdAt:X,updatedAt:X}}async function q0$($,U,G,J,X){let Q=N0$(U,G,J,X,$.options.getNow());if(await F0$($.storage,J,Q))return{didClaim:!0,record:Q};let Y=await ax($.storage,J.key);if(Y===null)throw new t6("Activity reconciliation claim conflicted but no record could be read.");return{didClaim:!1,record:Y}}async function O0$($,U,G,J,X){try{return await $.verify(void 0,cW("pre-dispatch-reconciliation",U,G.operationId,G.activityName,G.input,J,X.attempt))}catch(Q){let Z=Q instanceof Error?Q.message:String(Q);throw new t6(`Activity "${G.activityName}" verifier threw during pre-dispatch reconciliation: ${Z}`)}}function A0$($){let U=["workflowId","operationId","activityName","idempotencyKeyDigest","ownerId"],G=["attempt","createdAt","updatedAt"];return $.version===1&&U.every((J)=>typeof $[J]==="string")&&G.every((J)=>typeof $[J]==="number")}var HQ,_Q,t6;var pW=B(()=>{y();u();c4();a();HQ=class HQ extends I{constructor(){super("ActivityReconciliationCapabilityError",'Activity result reconciliation requires storage capability "conditionalBatch".')}};_Q=class _Q extends I{constructor($){super("ActivityReconciliationConflictError",$)}};t6=class t6 extends I{constructor($){super("ActivityReconciliationIndeterminateError",$)}}});function Uv($,U,G){let J=$.workflowTypeByWorkflowId.get(U);if(J!==void 0){let Q=$.activityRegistriesByWorkflow.get(J);if(Q!==void 0){let Y=Q.resolve(G);if(Y)return{fn:Y,workflowType:J}}let Z=$.activityRegistry.resolve(G);if(Z)return{fn:Z,workflowType:J};return}let X=$.activityRegistry.resolve(G);if(X)return{fn:X,workflowType:"<unknown>"};return}function dW($,U,G){let J=Uv($,U,G.activityName);if(J)return J.fn;if(typeof G.fn==="function")return G.fn;return}function Gv($,U,G){let J=Uv($,U,G.activityName);if(J)return J.fn;if(G.fn)return G.fn;let X=$.workflowTypeByWorkflowId.get(U)??"<unknown>";throw new t9(X,G.activityName)}var Jv=B(()=>{F$()});function C0$($,U,G,J,X){return(async()=>{let Q=await G?.(X,J);if(typeof Q!=="boolean")throw Error(`Verification failed for activity "${U}"`);if(!Q)throw Error(`Verification failed for activity "${U}"`)})()}function R0$($,U,G,J){let X=dW($,U,G);if(!X?.compensate)return;return async()=>{await X.compensate?.(G.input,J)}}async function T0$($,U,G,J,X){let Q=$.activityWorkerDispatcher;if(!Q)throw Error(`No activity worker dispatcher available for "${G}"`);let Z=await Q.execute({operationId:U,activityName:G,input:J,attempt:X});if(Z.status==="failed"){let Y=Error(Z.error);if(Z.errorName!==void 0)Y.name=Z.errorName;throw Y}return Z.value}function E0$($,U,G,J,X,Q){let Z=Gv($,U,G);return z3(Z,Q,J)}function Xv($,U){if(U.size>0)$.headers=[...U.entries()]}function lW($){let U=$.attempt;return typeof U==="number"&&Number.isInteger(U)&&U>0?U:1}async function Qv($,U,G,J,X=lW(G),Q){let Z=G.input,Y=G.step??0;lx($,U,Y,X);let j=SR(U,Y,X),{perAttemptTimeoutMs:D,attemptAbortController:_,activitySignal:L}=ub($,U,G,Q),W=ix($,U,Y,L,()=>{throw new e7(j)}),F=$.activityWorkerDispatcher?(m,p)=>T0$($,G.operationId,m,p,X):(m,p)=>GQ(E0$($,U,G,W,m,p),D,m,X,_),P=J.getComposedActivityInterceptor(),q=async(m,p,d)=>{if(!P)return F(m,p);let X$={workflowId:U,activityName:m,input:p,attempt:X,headers:d};return await P.execute(X$,async(v6)=>{return F(m,v6.input)})},A=J.getComposedWorkflowInterceptor();if(A){let m={workflowId:U,activityName:G.activityName,input:Z,attempt:X,headers:new Map};function*p(){return yield q(G.activityName,m.input,m.headers)}let d=A.activity(m,p),X$=await hR(d);return Xv(G,m.headers),X$}let g=new Map,f=await q(G.activityName,Z,g);return Xv(G,g),f}async function FG($,U,G,J,X,Q){let Z=dW($,U,G),Y=sx(Z,G),j=lW(G);if(Y!==void 0){let _=await ox(U,G.activityName,Y),L=await tx($,U,G,_,Z,Y,j);if("completedResult"in L)return LQ(L.completedResult,$.options.payloadSizePolicy.maxBytes),L.completedResult;let W=await Qv($,U,G,J,L.attempt,X);LQ(W,$.options.payloadSizePolicy.maxBytes),await Zv($,U,G,W,Z,Y,L.attempt,Q,!0);let F=uW(L,W,$.options.getNow());if(ex($,U,_,L,F),!Q)wW($,U,G.step??0);return W}let D=await Qv($,U,G,J,j,X);if(E6(D,$.options.payloadSizePolicy.maxBytes,"activity result"),await Zv($,U,G,D,Z,Y,j,Q),!Q)wW($,U,G.step??0);return D}async function Zv($,U,G,J,X,Q,Z,Y,j=!1){let D=Y?R0$($,U,G,J):void 0;if(D)Y?.recordCompensation(D);if(X?.verify){let _=cW("post-execution-validation",U,G.operationId,G.activityName,G.input,Q,Z),L=C0$($,G.activityName,X.verify,_,J);if(Y){if(Y.recordVerification(L),j)await L}else await L}}async function Yv($,U,G,J){return J.runOperationWithResult(U,G,async()=>{try{return await FG($,U,G,J)}catch(X){if(X instanceof e7)return bR($,X,{workflowId:U,activityName:G.activityName,operationId:G.operationId,step:G.step??0,attempt:lW(G)},{feedOperationResult:J.feedOperationResult,finalizeTimeline:J.finalizePendingTimelineEntry});throw X}})}var VQ=B(()=>{c4();nx();PW();pW();Jv();e2();B$()});function zQ($){let U=new Set,G=(J)=>{for(let X of J)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")G(X.operations)};G($)}async function jv($,U,G,J){let X=$.abortController.signal,Q=`${U}:${G.signalName}`;while(!0){if(X.aborted)return;let Z=await x3($,U,G.signalName);if(Z.found){J.completeOperation(U,Z.payload);return}let{promise:Y,resolve:j}=Promise.withResolvers();if($.signalWaiters.set(Q,j),e1($.signalWaitersByWorkflow,U,Q),X.aborted){$.signalWaiters.delete(Q),l6($.signalWaitersByWorkflow,U,Q);return}let D=await x3($,U,G.signalName);if(D.found){if($.signalWaiters.get(Q)===j)$.signalWaiters.delete(Q),l6($.signalWaitersByWorkflow,U,Q);J.completeOperation(U,D.payload);return}if(await Y,X.aborted)return}}async function Dv($,U,G,J){return J.runOperationWithResult(U,G,async()=>{zQ(G.operations);let X=Hv(G.resumedCacheEntry),Q=G.operations.map((_,L)=>typeof _.operationId==="string"?_.operationId:`parallel:${G.step}:${L}`),{slots:Z,hasFirstError:Y,firstError:j}=await MR(Q,X,(_)=>J.executeSubOperation(U,G.operations[_]));if(Y)Lv(b0$($,U),Z,"ctx.all","worker execution mode");await S0$(Z);let D=uz("all",Z);if(_v($,U,G.step,D),Y)throw j;return NR(Z)})}async function S0$($){let G=(await Promise.allSettled($.map(async(J)=>{if(J.status==="fulfilled")J.value=await O8(J.value)}))).find((J)=>J.status==="rejected");if(G)throw G.reason}function Hv($){if(!GU($))return;return $.branches}function b0$($,U){return $.inlineStrategy?.getContext(U)!==void 0}function _v($,U,G,J){let X=$.inlineStrategy?.getContext(U);if(X===void 0)return!1;return X.accumulatedResults.set(G,J),!0}function Lv($,U,G,J){if($||!U.some((X)=>X.status==="fulfilled"))return;throw Error(`${G} partial-failure preservation is not supported in ${J}: the engine cannot persist fulfilled branch slots after a sibling branch fails. Run the workflow inline or make branch side effects idempotent.`)}async function Vv($,U,G,J){return J.runOperationWithResult(U,G,async()=>{zQ(G.operations);let X=new AbortController,Q=G.operations.map((Y)=>J.executeSubOperation(U,Y,X.signal));Promise.allSettled(Q);let Z;try{Z=await Promise.race(Q)}finally{X.abort()}return O8(Z)})}async function zv($,U,G,J){return J.runOperationWithResult(U,G,async()=>{let X=Object.keys(G.branches),Q=X.map((q)=>`run-all:${G.step}:${q}`),Z=Hv(G.resumedCacheEntry),Y=I0$(Z,X),j=x0$(G.branches,X,Y),{outcomes:D,hasFirstError:_,firstError:L}=await RR(j,(q,A)=>z3(q,A)),W=v0$(X,Q,Y,D),F=uz("run-all",W,X),P=_v($,U,G.step,F);if(_)throw Lv(P,W,"ctx.runAll","worker execution mode"),L;return g0$(X,W)})}function x0$($,U,G){let J={};for(let X of U)if(G?.get(X)?.status!=="fulfilled"){let Q=$[X];if(Q!==void 0)J[X]=Q}return J}function v0$($,U,G,J){let X=new Map;for(let Q of J)X.set(Q.name,Q);return $.map((Q,Z)=>{let Y=U[Z],j=G?.get(Q);if(j?.status==="fulfilled")return j;let D=X.get(Q);if(D.status==="fulfilled")return{status:"fulfilled",value:D.value,operationId:Y};let _=D.reason instanceof Error?D.reason:Error(String(D.reason));return{status:"rejected",reason:{name:_.name,message:_.message},operationId:Y}})}function g0$($,U){let G={};for(let J=0;J<$.length;J++){let X=U[J];if(X?.status==="fulfilled")G[$[J]]=X.value}return G}function I0$($,U){if($===void 0)return;let G=new Map;for(let J=0;J<U.length;J++){let X=U[J],Q=$[J];if(X!==void 0&&Q!==void 0)G.set(X,Q)}return G}function h0$($){return typeof $.execute==="function"}async function Bv($,U,G,J,X){return TR(G.branches,(Q,Z)=>{if(!X||!h0$(Q))return z3(Q,Z);return FG($,U,{type:"activity",operationId:crypto.randomUUID(),activityName:Q.name,fn:Q,input:Z},J.getActivityOperationCallbacks(),void 0,X)})}var BQ=B(()=>{s7();A3();DQ();VQ();cz();$0();B$()});async function Wv($,U,G,J){return J.runOperationWithoutResult(U,G,()=>J.processReviewOperation(U,G.reviewOptions))}async function WQ($,U,G,J,X,Q){X?.throwIfAborted();let Z=y0$[G.type];if(!Z)throw Error(`Unsupported sub-operation type: ${G.type}`);return Z({internals:$,workflowId:U,callbacks:J,signal:X,speculativeState:Q},G)}async function m0$($,U,G,J,X,Q){return FG($,U,G,J.createActivityOperationCallbacks(),X,Q)}async function k0$($,U,G,J){return kW($,U,G,mW($,U),J.createChildWorkflowOperationCallbacks())}async function f0$($,U){return e0($.storage,o1(U.scope,U.key),U)}async function w0$($,U,G){let J=o1(U.scope,U.key),X=U.mode==="delete"?await P3($.storage,J,U.expectedVersion):await K3($.storage,J,U.expectedVersion,U.value);if(X.applied&&U.scope.type==="execution")await G.createStateOperationCallbacks().ensureTerminalCleanupTracked(U.scope.ownerWorkflowId);return X}async function u0$($,U,G,J,X,Q){X?.throwIfAborted();let Z=new AbortController,Y=()=>{Z.abort(X?.reason)};X?.addEventListener("abort",Y,{once:!0});let j=G.operations.map((D)=>WQ($,U,D,J,Z.signal,Q));Promise.allSettled(j);try{return await Promise.all(j)}finally{X?.removeEventListener("abort",Y),Z.abort()}}async function c0$($,U,G,J,X,Q){X?.throwIfAborted();let Z=new AbortController,Y=()=>{Z.abort(X?.reason)};X?.addEventListener("abort",Y,{once:!0});let j=G.operations.map((D)=>WQ($,U,D,J,Z.signal,Q));Promise.allSettled(j);try{return await Promise.race(j)}finally{X?.removeEventListener("abort",Y),Z.abort()}}var y0$;var iW=B(()=>{$U();fW();px();VQ();BQ();B$();y0$={activity:($,U)=>m0$($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),"child-workflow":($,U)=>k0$($.internals,$.workflowId,U,$.callbacks),memo:($,U)=>Promise.resolve(E7(U.fn)),"state-read":($,U)=>f0$($.internals,U),"state-commit":($,U)=>w0$($.internals,U,$.callbacks),parallel:($,U)=>u0$($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),race:($,U)=>c0$($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),"run-all":($,U)=>Bv($.internals,$.workflowId,U,$.callbacks.createCoordinationOperationCallbacks(),$.speculativeState),sleep:($,U)=>ux($.internals,U,$.signal),"wait-signal":($,U)=>cx($.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 nW($){return{runOperationWithResult:(U,G,J)=>H0($,U,G,J),start:(U,G,J)=>r6(z($),U,G,J,void 0,t$($)),loadWorkflowState:(U)=>J$(z($),U),getHandle:(U)=>$.getHandle(U),getComposedWorkflowInterceptor:()=>a6(z($))}}function FQ($){return{runOperationWithResult:(U,G,J)=>H0($,U,G,J),finalizePendingTimelineEntry:(U,G,J)=>K4(z($),U,G,J),feedOperationResult:(U,G,J)=>s6(z($),U,G,J),getComposedActivityInterceptor:()=>Gb(z($)),getComposedWorkflowInterceptor:()=>a6(z($))}}function A8($){return{completeOperation:(U,G)=>MQ($,U,G),runOperationWithResult:(U,G,J)=>H0($,U,G,J),executeSubOperation:(U,G,J,X)=>rW($,U,G,J,X),getActivityOperationCallbacks:()=>FQ($)}}function Kv($){return{completeOperation:(U,G)=>MQ($,U,G),failOperation:(U,G,J)=>p0$($,U,G,J),isWorkflowRunning:async(U)=>{return(await J$(z($),U))?.status==="running"},scheduleConditionDeadline:(U,G,J)=>z($).scheduler.schedule({id:`cond:${U}:${G}`,workflowId:U,fireAt:J,kind:"wait-condition"}),cancelConditionDeadline:(U,G)=>z($).scheduler.cancel(`cond:${U}:${G}`,U)}}function KG($){return{runOperationWithResult:(U,G,J)=>H0($,U,G,J)}}function KQ($){return{runOperationWithResult:(U,G,J)=>H0($,U,G,J),ensureTerminalCleanupTracked:(U)=>DG(z($),U)}}function Pv($){return{runOperationWithResult:(U,G,J)=>H0($,U,G,J),handleCleanupError:(U,G,J)=>z$($).handleCleanupError(U,G,J)}}function PQ($){return{completeOperation:(U,G)=>MQ($,U,G),dispatchEvent:(U)=>$.dispatchEvent(U),loadWorkflowState:(U)=>J$(z($),U),failWorkflow:(U,G)=>b6(z($),U,G,z$($)),runSerializedWorkflowStateWrite:(U,G)=>i6(z($),U,G),beginWorkflowExecution:(U,G,J,X,Q,Z,Y)=>p5(z($),U,G,J,X,Q,Z,Y,t$($)),workflowVersionTupleFromState:(U)=>h5(z($),U,t$($)),setWorkflowStartHeaders:(U,G)=>M1(z($),U,G,t$($)),loadWorkflowStartHeaders:(U)=>LU(z($),U,t$($)),parseStartOptionDuration:(U,G)=>W8(z($),U,G,t$($)),runDeferredTerminalCleanup:(U,G)=>lB(z($),U,G,z$($)),runWorkflowFinalizer:(U,G)=>AW(z($),U,G,z$($)),handleScheduleTimer:(U)=>Tx($,U),timeout:(U)=>$.timeout(U),handleCleanupError:(U,G,J)=>z$($).handleCleanupError(U,G,J)}}function C8($){return{dispatchEvent:(U)=>$.dispatchEvent(U),broadcast:(U)=>U0(z($),U,n4($)),completeOperation:(U,G)=>MQ($,U,G),guardTerminalWorkflow:(U)=>yW(z($),U,YQ($)),guardTerminalWorkflowAfterCoordinatedRequest:(U,G)=>bx(z($),U,G,YQ($)),persistCoordinatedUpdateResponse:(U,G,J,X,Q)=>Fv($,U,G,J,X,Q),deliverCoordinatedUpdateToWaiterIfAvailable:(U,G,J)=>ET(z($),U,G,J,C8($)),dispatchPendingUpdateReceived:(U,G,J)=>vT(z($),U,G,J,n4($)),createCoordinatedUpdateResponder:(U,G,J)=>TT(z($),U,G,J,{persistCoordinatedUpdateResponse:(X,Q,Z,Y,j)=>Fv($,X,Q,Z,Y,j)}),findPendingUpdateByName:(U,G)=>ST(z($),U,G),schedulePendingInlineUpdateDrain:(U)=>Ob(z($),U,LG($))}}async function Fv($,U,G,J,X,Q){let Z=z($),Y=Z.updateCoordinator.buildResponseOperations(J,U,Q,void 0,X);try{await C$(Z,Y,[],()=>Error(`Coordinated update response for workflow "${U}" lost its CAS race.`)),$.dispatchEvent(new I6(J,U,G,Q)),U0(Z,{type:"update:completed",workflowId:U,updateId:J},n4($))}catch(j){z$($).handleCleanupError("writeCoordinatedUpdateResponse",j,U)}}function MQ($,U,G){return BG(z($),U,G,VG($))}function p0$($,U,G,J){return WG(z($),U,G,J,VG($))}async function H0($,U,G,J){return Ix(z($),U,G,J,VG($))}async function Mv($,U,G,J){return hx(z($),U,G,J,VG($))}async function rW($,U,G,J,X){return WQ(z($),U,G,{createActivityOperationCallbacks:()=>FQ($),createChildWorkflowOperationCallbacks:()=>nW($),createCoordinationOperationCallbacks:()=>A8($),createStateOperationCallbacks:()=>KQ($)},J,X)}async function Nv($,U,G){return fb(z($),U,G,Rx($))}var NQ=B(()=>{Y$();D5();N8();Ex();B4();xx();q1();j0();jQ();HW();$Q();a$();l4();iW();O1();U8()});async function qv($,U,G,J){return J.runOperationWithResult(U,G,async()=>E7(G.fn))}async function Ov($,U,G,J){return J.runOperationWithResult(U,G,async()=>{let X=await G.fn(),Q=N(X);return await $.storage.put(V.offload(U,G.key),Q),{key:G.key,workflowId:U,sizeBytes:Q.byteLength}})}async function Av($,U,G,J){return J.runOperationWithResult(U,G,async()=>{let{workflowId:X,key:Q,sizeBytes:Z}=G.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 Z!=="number"||!Number.isFinite(Z)||Z<0)throw Error("ctx.load() requires a valid offload reference size");let Y=await $.storage.get(V.offload(X,Q));if(Y===null)throw Error(`Offloaded data not found for key "${Q}" in workflow "${X}"`);return O(Y)})}async function Cv($,U,G){let J=await $.storage.get(V.offload(U,G));if(J===null)return null;return O(J)}async function Rv($,U,G,J){return J.runOperationWithResult(U,G,async()=>{await $.storage.put(V.archive(U,G.key),N(G.data));return})}var oW=B(()=>{y();u();B$()});class sW{#$;#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((G)=>G.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 Tv($,U,G,J){return J.runOperationWithResult(U,G,()=>d0$($,U,G,J))}async function d0$($,U,G,J){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 Z=Q.createSpeculativeChild(),Y=new sW,j=l0$(G,Z);try{let D=await i0$(U,j,Y,J);return await Y.drainVerifications(),Q.commitSpeculativeChild(Z),D}catch(D){throw await Y.rollback(),D}}function l0$($,U){return $.execute(U)}async function i0$($,U,G,J){let X=async(Q,Z)=>{let Y=Z===void 0?await U.next(Q):await U.throw(Z);if(Y.done)return Y.value;let j=Y.value;try{if(j.type==="race"||j.type==="parallel")zQ(j.operations);let D=await J.executeSubOperation($,j,void 0,G),_=await O8(D);return X(_,void 0)}catch(D){return X(Q,D instanceof Error?D:Error(String(D)))}};return X(void 0,void 0)}var Ev=B(()=>{DQ();BQ()});async function Sv($,U,G,J){return J.runOperationWithResult(U,G,async()=>{let X=o1(G.scope,G.key);return e0($.storage,X,G)})}async function bv($,U,G,J){return J.runOperationWithResult(U,G,async()=>{let X=o1(G.scope,G.key);if(G.mode==="delete"){let Z=await P3($.storage,X,G.expectedVersion);if(Z.applied&&G.scope.type==="execution")await J.ensureTerminalCleanupTracked(G.scope.ownerWorkflowId);return Z}let Q=await K3($.storage,X,G.expectedVersion,G.value);if(Q.applied&&G.scope.type==="execution")await J.ensureTerminalCleanupTracked(G.scope.ownerWorkflowId);return Q})}var xv=B(()=>{$U()});function r0$($){if(!n0$.test($))return;let U=Number.parseInt($,10);return Number.isSafeInteger(U)?U:void 0}async function R8($,U,G,J){let X=J?.after,Q=V.streamChunkPrefix(U,G),Z=[],Y=X!==void 0&&X>=0?{gt:V.streamChunk(U,G,X)}:void 0;for await(let[j,D]of $.scan(Q,Y)){let _=j.slice(Q.length),L=r0$(_);if(L===void 0)continue;Z.push({sequence:L,value:O(D)})}return Z}function qQ($){return N({sequence:$})}function o0$($){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 T8($,U,G){let J=await $.get(V.streamTail(U,G));if(J===null)return null;try{return o0$(O(J))}catch{return null}}var n0$;var PG=B(()=>{y();u();n0$=/^\d+$/});async function*vv($,U,G,J){if(G==="events"){yield*a0$($,U,J);return}yield*t0$($,U,J)}async function gv($,U,G){if(G==="events"){let Z=$.eventLogHeads.get(U);if(Z)return Z.sequence;return(await new S6($.storage,U).loadHead()).sequence}let J=await T8($.storage,U,BU);if(J!==null)return J;let X=await R8($.storage,U,BU);if(X.length===0)return-1;let Q=-1;for(let Z of X)if(Z.sequence>Q)Q=Z.sequence;return Q}function Iv($,U,G,J){let X=u2(U,G),Q=$.workflowFeedListeners.get(X);if(!Q)Q=new Set,$.workflowFeedListeners.set(X,Q);return Q.add(J),()=>{let Z=$.workflowFeedListeners.get(X);if(!Z)return;if(Z.delete(J),Z.size===0)$.workflowFeedListeners.delete(X)}}async function*a0$($,U,G){let J=new S6($.storage,U),X=G<0?0:G+1,Q=await Z0($.storage,U);if(Q!==null&&X<Q.sequence)yield{workflowId:U,selector:"events",kind:s0$,sequence:Q.sequence-1,timestamp:0,payload:{compactedBefore:Q.sequence,requestedFrom:X}},X=Q.sequence;for await(let Z of J.scan({fromSequence:X}))yield{workflowId:U,selector:"events",kind:Z.type,sequence:Z.sequence,timestamp:Z.timestamp,payload:Z.payload}}async function*t0$($,U,G){let J=G>=0?await R8($.storage,U,BU,{after:G}):await R8($.storage,U,BU),X=Date.now();for(let Q of J)yield{workflowId:U,selector:"tokens",kind:aW,sequence:Q.sequence,timestamp:X,payload:Q.value}}function OQ($,U,G,J){let X=$.workflowFeedListeners.get(u2(U,G));if(!X||X.size===0)return;let Q=[...X];for(let Z of Q)try{let Y=Z(J);if(Y&&typeof Y.then==="function")Y.catch(()=>{})}catch{}}var BU="tokens",aW="stream:chunk",s0$="workflow:compaction-boundary";var AQ=B(()=>{_U();o3();B$();PG()});async function hv($,U,G,J){return R8($.storage,U,G,J)}async function yv($,U,G,J){return J.runOperationWithResult(U,G,()=>e0$($,U,G,J))}async function e0$($,U,G,J){let X={heartbeat:(Z)=>{$.heartbeatDetails.set(U,Z)}},Q=[];try{let Z=await $U$($,U,G,G.fn(X),Q),Y={key:G.key,workflowId:U,chunkCount:Z.chunkCount,totalSizeBytes:Z.totalSizeBytes};return await $.storage.put(V.streamMetadata(U,G.key),N(Y)),Y}catch(Z){throw await UU$($,U,G.key,Q,J),Z}}async function $U$($,U,G,J,X){let Q=0,Z=0;for await(let Y of J){let j=N(Y),D=Q,_=V.streamChunk(U,G.key,D);if(G.key===BU)await $.storage.batch([{type:"put",key:_,value:j},{type:"put",key:V.streamTail(U,G.key),value:qQ(D)}]);else await $.storage.put(_,j);if(X.push(_),Z+=j.byteLength,Q++,G.key===BU)OQ($,U,"tokens",{workflowId:U,selector:"tokens",kind:aW,sequence:D,timestamp:Date.now(),payload:Y})}return{chunkCount:Q,totalSizeBytes:Z}}async function UU$($,U,G,J,X){await CR($.storage,U,G,J,qR(X.handleCleanupError,U))}var tW=B(()=>{y();u();A3();PG();AQ()});function kv($,U,G){if(U())return{done:!0,value:G===void 0?void 0:!0};if(G!==void 0&&$.options.getNow()>=G)return{done:!0,value:!1};return{done:!1}}async function fv($,U,G,J){let X=$.abortController.signal,{predicate:Q,deadline:Z}=G,Y=!1,j=(D)=>{if(Y)return;Y=!0,J.completeOperation(U,D)};if(X.aborted)return;try{let D=kv($,Q,Z);if(D.done){j(D.value);return}if(Z!==void 0)await J.scheduleConditionDeadline(U,G.step,Z);try{let _=await mv($,U,Q,Z,J);while(_.status==="continue")_=await mv($,U,Q,Z,J);if(_.status==="complete")j(_.value)}finally{if(wv($,U),Z!==void 0)await J.cancelConditionDeadline(U,G.step)}}catch(D){J.failOperation(U,G,D)}}async function mv($,U,G,J,X){let Q=$.abortController.signal;if(Q.aborted)return{status:"stop"};let{promise:Z,resolve:Y}=Promise.withResolvers();$.conditionWaiters.set(U,Y);let j=Q.aborted?{done:!0,value:void 0,aborted:!0}:{...kv($,G,J),aborted:!1};if(j.done)return wv($,U),j.aborted?{status:"stop"}:{status:"complete",value:j.value};if(await Z,Q.aborted)return{status:"stop"};if(!await X.isWorkflowRunning(U))return{status:"stop"};return{status:"continue"}}function wv($,U){$.conditionWaiters.delete(U)}function eW($){return{processActivityOperation:(U,G)=>Yv(z($),U,G,FQ($)),processSleepOperation:(U,G)=>cE(z($),U,G,PQ($)),processWaitSignalOperation:(U,G)=>jv(z($),U,G,A8($)),processWaitUpdateOperation:(U,G)=>CT(z($),U,G,C8($)),processWaitConditionOperation:(U,G)=>fv(z($),U,G,Kv($)),processGetVersionOperation:async(U,G)=>{BG(z($),U,G.version,{finalizePendingTimelineEntry:(J,X,Q)=>K4(z($),J,X,Q),feedOperationResult:(J,X,Q)=>s6(z($),J,X,Q)})},processParallelOperation:(U,G)=>Dv(z($),U,G,A8($)),processRaceOperation:(U,G)=>Vv(z($),U,G,A8($)),processMemoOperation:(U,G)=>qv(z($),U,G,KG($)),processChildWorkflowOperation:(U,G)=>mx(z($),U,G,nW($)),processOffloadOperation:(U,G)=>Ov(z($),U,G,KG($)),processLoadOperation:(U,G)=>Av(z($),U,G,KG($)),processArchiveOperation:(U,G)=>Rv(z($),U,G,KG($)),processStateReadOperation:(U,G)=>Sv(z($),U,G,KQ($)),processStateCommitOperation:(U,G)=>bv(z($),U,G,KQ($)),processRunAllOperation:(U,G)=>zv(z($),U,G,A8($)),processSpeculateOperation:(U,G)=>Tv(z($),U,G,{runOperationWithResult:(J,X,Q)=>H0($,J,X,Q),executeSubOperation:(J,X,Q,Z)=>rW($,J,X,Q,Z)}),processStreamOperation:(U,G)=>yv(z($),U,G,Pv($)),processWaitReviewOperation:(U,G)=>Wv(z($),U,G,{runOperationWithoutResult:(J,X,Q)=>Mv($,J,X,Q),processReviewOperation:(J,X)=>Nv($,J,X)}),finalizePendingTimelineEntry:(U,G,J)=>K4(z($),U,G,J),feedOperationResult:(U,G,J)=>s6(z($),U,G,J)}}var uv=B(()=>{NQ();fW();q1();VQ();BQ();oW();jQ();Ev();xv();tW();w5();l4();iW();O1();U8();Qx(($)=>eW($))});function cv($){let U=c($).pendingAttributeChanges;return U!==void 0&&Object.keys(U).length>0}function pv($){let U=c($).updateHandlers;return U!==void 0&&U.size>0}function dv($){let U=c($).exposedValues;return U!==void 0&&U.size>0}var $F=B(()=>{$8()});function lv($,U,G,J,X,Q){let Z=P8($,U),Y=$.workflowVersionTuples.get(U);if(Z)Q.push(Z);let j={step:J,operationType:G.type,operationLabel:NC(G),inputSummary:qC(G),timestamp:X,status:"running",...Y?{versionTuple:Y}:{}};return Q.push({type:"put",key:V.timeline(U,J),value:N(j)}),{startedAt:X,entry:j}}async function iv($,U,G,J,X){if($.inlineStrategy?.getContext(U))await GU$($,U,G,X);else if(J&&J.byteLength>0)await JU$($,U,G,J,X)}async function GU$($,U,G,J){let X=$.checkpoints.get(U),Q=$.inlineStrategy?.getContext(U);if(!X||!Q)return;let Z={...X.searchAttributes},Y=Q.checkpointPendingAttributeChanges,j=cv(Q),D=Iz(X,Q.checkpointLocals,{accumulatedResults:Q.checkpointAccumulatedResults,now:$.options.getNow(),...Y!==void 0?{searchAttributes:Y}:{}}),_=Xz(D,ov(G,Q.stepIndex)),L=nv($,U,_.checkpoint,w$(Qz(_.checkpoint,_.replayPayload)),_.replayPayload);if(XU$(U,L,Z,Y,j,J),await rv($,U,G,L,J),j)J.dispatchEvent(new bU(U,{...Y}))}async function JU$($,U,G,J,X){let Q=new Uint8Array(J),Z=I$(Q),Y=f2(Z),j=Xz(Z,ov(G,Z.step)),D=O7(Y,j.replayPayload),_=w$(Qz(j.checkpoint,D));await rv($,U,G,nv($,U,j.checkpoint,_,D),X)}function nv($,U,G,J,X){let Q=[{type:"put",key:V.checkpoint(U),value:J}];if($.options.checkpointHistory>0)Q.push({type:"put",key:V.checkpointHistory(U,G.step),value:J});let Z=JE($,U);return{checkpoint:G,serialized:J,...X===void 0?{}:{replayPayload:X},...Z!==void 0?{expectedSerialized:Z}:{},step:G.step,timestamp:G.createdAt,operations:Q}}function XU$($,U,G,J,X,Q){if(!X)return;Q.validateAttributeValueSizes(J??{}),U.operations.push({type:"put",key:V.attribute($),value:N(U.checkpoint.searchAttributes)}),U.operations.push(...i$($,G,U.checkpoint.searchAttributes))}async function rv($,U,G,J,X){DU$($,U,J,X);let Q=X.appendTimelineBatchOperations(U,G,J.step,J.timestamp,J.operations),{newHead:Z,timestamp:Y}=HU$($,U,J),j=$.options.historyPolicy.retentionWindow,D=j===null?null:await gE($.storage,U,Z.sequence,j,J.operations),_=Y5($,U);if(_!==void 0)J.operations.push(..._.operations);let L=$.storage.capabilities().conditionalBatch,W=QU$(_,L),F=ZU$(U,J,L,W);if(await C$($,J.operations,F,()=>{return Error(`Checkpoint commit for workflow "${U}" lost its CAS race against a newer checkpoint.`)}),_!==void 0)j5($,U);if(J.expectedSerialized!==void 0)A5($,U,J.serialized);if($.pendingTimelineEntries.set(U,Q),$.checkpoints.set(U,J.checkpoint),$.eventLogHeads.set(U,Z),D!==null)jU$($,U,D,X);if(OQ($,U,"events",{workflowId:U,selector:"events",kind:"workflow:checkpoint",sequence:Z.sequence,timestamp:Y,payload:{step:J.step}}),X.swallowPromiseRejection(X.pruneCheckpointHistory(U,J.step)),YU$($,Z.sequence))await X.enforceHistoryCircuitBreaker(U)}function QU$($,U){if(!U)return[];return $?.conditions??[]}function ZU$($,U,G,J){let X=[];if(G&&U.expectedSerialized!==void 0)X.push({key:V.checkpoint($),expectedValue:U.expectedSerialized});return X.push(...J),X}function YU$($,U){let G=$.options.historyPolicy.maxEvents;return G!==null&&U+1>G}function jU$($,U,G,J){let X=$.options.archiveAdapter;if(X===null||G.deletedEntries.length===0)return;let{from:Q,to:Z}=G.deletedRange,Y=`events:${Q}-${Z}`,j=IE(G.deletedEntries);J.swallowPromiseRejection(Promise.resolve().then(()=>X.store(U,Y,j)))}function DU$($,U,G,J){if(G.serialized.byteLength>=$.options.checkpointSizeWarningThreshold)J.dispatchEvent(new IU(U,G.serialized.byteLength,G.step))}function HU$($,U,G){return new S6($.storage,U).appendToBatch({type:"workflow:checkpoint",payload:GC(G.step,G.replayPayload)},G.operations,$.eventLogHeads.get(U)??n0,$.workflowVersionTuples.get(U))}function ov($,U){let G="step"in $?$.step:void 0;if(typeof G==="number"&&Number.isSafeInteger(G)&&G>=0)return G;return Math.max(0,U-1)}async function sv($,U,G){let J=$.options.checkpointHistory;if(J<=0)return;let X=G-J;if(X<1)return;let Q=V.checkpointHistory(U,X);await $.storage.delete(Q)}function av($,U,G){if(!$.options.development)return;let J=$.inlineStrategy?.getContext(U);if(!J)return;let X=J.stepIndex,Q=$.checkpoints.get(U);if(!Q)return;let Z=hz({...Q,locals:J.checkpointLocals,accumulatedResults:J.checkpointAccumulatedResults});if(!Z.valid){let Y=Z.divergences.map((D)=>D.path),j=`Checkpoint at step ${X} has ${Z.divergences.length} non-serializable field(s)`;G.dispatchEvent(new R4(U,j,Y))}}var tv=B(()=>{y();d6();u();$F();_U();Y$();D6();HU();s0();o3();B4();B$();O1();AQ()});async function ev($,U,G){let J=$.inlineStrategy?.getContext(U);if(!J)return!1;let Q=$.registrations.get(J.workflowType)?.constraints;if(!Q||Q.length===0)return!1;let Z={id:U,type:J.workflowType,status:"running"};for(let Y of Q){if(!await _U$(Y,Z))continue;if(LU$(G,U,Y),Y.onViolation==="warn"){VU$(U,Y);continue}let D=Error(`Constraint violated: ${Y.name} (scope: ${Y.scope})`);if(Y.onViolation==="fail")await zU$(G,U,D);else BU$(G,U,D);return!0}return!1}async function _U$($,U){try{let G=$.check(U);return!(G instanceof Promise?await G:G)}catch(G){return console.warn(`[weft] Constraint "${$.name}" check() threw an error:`,G),!0}}function LU$($,U,G){$.dispatchEvent(new uU(U,G.name,G.scope,G.onViolation))}function VU$($,U){console.warn(`[weft] Constraint "${U.name}" (scope: ${U.scope}) violated on workflow "${$}" \u2014 continuing (onViolation: 'warn')`)}async function zU$($,U,G){$.cancelWorkflowInStrategy(U),await $.failWorkflow(U,G)}function BU$($,U,G){$.feedOperationResult(U,{status:"failed",error:G.message,errorName:G.name,failureCategory:"application"},{value:G})}var $g=B(()=>{Y$()});async function Ug($,U,G,J){if(G.type!=="wait-signal"||$.inlineStrategy===null)return!1;let X=$.inlineStrategy,Q=X.getContext(U);if(Q&&(pv(Q)||dv(Q)))return!1;if(await J.hasBufferedSignal(U,G.signalName))return!1;if(!await J.runSerializedWorkflowStateWrite(U,async()=>{let Y=await J.loadWorkflowState(U);if($.terminalizingWorkflows.has(U)||!Y||Y.status!=="running")return!1;return X.parkWorkflow(U,{retainContext:!0}),$.parkedInlineWorkflows.add(U),!0}))return!1;if(await J.hasBufferedSignal(U,G.signalName))await J.resumeParkedInlineWorkflow(U);return!0}async function CQ($,U,G){if(!$.parkedInlineWorkflows.has(U))return;$.parkedInlineWorkflows.delete(U);try{await QG($,U,!1,G.createLifecycleCallbacks())}catch(J){let X=await G.getParkedWorkflowResumeDisposition(U);if(X==="resumable")throw $.parkedInlineWorkflows.add(U),J;if(X==="corrupt")throw J}}async function Gg($,U,G){if($.terminalizingWorkflows.has(U))return"terminal-or-missing";let J=await G.loadWorkflowState(U);if(!J||J.status!=="running")return"terminal-or-missing";if(!await G.readCheckpointBytes(U))return"corrupt";return"resumable"}async function Jg($,U,G){switch(U.type){case"completed":await KW($,U.workflowId,U.result,G.createTerminationCallbacks());break;case"failed":{let J=Error(U.error);if(U.errorStack)J.stack=U.errorStack;await b6($,U.workflowId,J,G.createTerminationCallbacks(),U.failureCategory??"system");break}case"checkpoint":{let J=G.translateOperationRequest(U.operationRequest);if(await G.persistCheckpoint(U.workflowId,J,U.checkpoint),G.validateDevelopmentCheckpoint(U.workflowId),await G.evaluateConstraints(U.workflowId))break;if(await G.parkInlineWorkflowAfterCheckpoint(U.workflowId,J))break;if(J.type==="wait-signal"&&$.inlineStrategy===null){G.processOperation(U.workflowId,J).catch((Q)=>{let Z=Q instanceof Error?Q:Error(String(Q));return b6($,U.workflowId,Z,G.createTerminationCallbacks(),"system")});break}await G.processOperation(U.workflowId,J);break}}}var UF=B(()=>{$F();j0();O1()});function RQ($){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 TQ($){$.nextRetentionSweepAt=$.options.getNow()+$.options.retentionSweepIntervalMs}function EQ($,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 J=U.runRetentionSweep().finally(()=>{if($.retentionSweepInFlight===J)$.retentionSweepInFlight=null});$.retentionSweepInFlight=J},$.options.retentionSweepIntervalMs)}async function SQ($,U,G){try{await p3($,void 0,{expiredOnly:!0,limit:$.options.retentionSweepBatchSize,now:$.options.getNow()},G)}catch(J){U("retentionSweep",J)}}function GF($,U){let G=$.registrations.get(U);if(G?.retention)return{type:U,source:"workflow",retention:G.retention};if($.options.retention!==null)return{type:U,source:"engine",retention:$.options.retention};return{type:U,source:"none",retention:null}}function Xg($,U=(G)=>GF($,G)){let G=[...$.registrations.keys()].toSorted().map((J)=>U(J));return{defaultRetention:$.options.retention,sweepIntervalMs:$.options.retentionSweepIntervalMs,sweepBatchSize:$.options.retentionSweepBatchSize,nextSweepAt:$.nextRetentionSweepAt,workflowTypes:G}}var JF=B(()=>{g5()});function MG($){return{createLifecycleCallbacks:()=>t$($),createTerminationCallbacks:()=>z$($),evaluateConstraints:(U)=>ev(z($),U,Xx($)),getParkedWorkflowResumeDisposition:(U)=>Gg(z($),U,MG($)),hasBufferedSignal:(U,G)=>PT(z($),U,G),loadWorkflowState:(U)=>J$(z($),U),parkInlineWorkflowAfterCheckpoint:(U,G)=>Ug(z($),U,G,MG($)),persistCheckpoint:(U,G,J)=>WU$($,U,G,J),processOperation:(U,G)=>gx(z($),U,G,eW($)),readCheckpointBytes:(U)=>z($).storage.get(V.checkpoint(U)),resumeParkedInlineWorkflow:(U)=>CQ(z($),U,MG($)),runSerializedWorkflowStateWrite:(U,G)=>i6(z($),U,G),translateOperationRequest:(U)=>vx(z($),U),validateDevelopmentCheckpoint:(U)=>av(z($),U,{dispatchEvent:(G)=>{$.dispatchEvent(G)}})}}function WU$($,U,G,J){return iv(z($),U,G,J,{appendTimelineBatchOperations:(X,Q,Z,Y,j)=>lv(z($),X,Q,Z,Y,j),swallowPromiseRejection:(X)=>{F4(X)},validateAttributeValueSizes:Y8,pruneCheckpointHistory:(X,Q)=>sv(z($),X,Q),dispatchEvent:(X)=>{$.dispatchEvent(X)},enforceHistoryCircuitBreaker:(X)=>zU(z($),X,"timed-out",z$($),sX)})}function FU$($){EQ(z($),{hasConfiguredRetention:()=>RQ(z($)),runRetentionSweep:()=>SQ(z($),(U,G)=>z$($).handleCleanupError(U,G),(U)=>d4(z($),U,z$($))),setNextRetentionSweepAt:()=>TQ(z($))})}var Qg=B(()=>{y();k6();j8();N8();uv();tv();$g();UF();q1();jQ();JF();$0();a$();l4();O1();NQ();N8();Jx(($)=>FU$($))});async function Zg($,U){let G=[],J=new S6($.storage,U);for await(let X of J.scan())G.push({type:X.type,timestamp:X.timestamp,data:Bz(X.payload)});return G}async function Yg($,U){if($.options.checkpointHistory<=0)return[];let G=`${V.checkpoint(U)}:`,J=[];for await(let[,X]of $.storage.scan(G,{reverse:!0,limit:$.options.checkpointHistory})){let Q=I$(X);J.push({step:Q.step,timestamp:Q.createdAt,sizeBytes:X.byteLength})}return J}async function jg($,U,G){let J=await $.storage.get(V.checkpointHistory(U,G));if(!J)return null;let X=await o0($.storage,U,I$(J));return zz({step:X.step,locals:X.locals,searchAttributes:X.searchAttributes,version:X.version,createdAt:X.createdAt})}async function Dg($,U){let G=[];for await(let[,J]of $.storage.scan(V.timelinePrefix(U))){let X;try{X=O(J)}catch{continue}if(BC(X))G.push({...X,inputSummary:Wz(X.inputSummary)??X.inputSummary,...X.outputSummary!==void 0?{outputSummary:Wz(X.outputSummary)??X.outputSummary}:{}})}return G.sort((J,X)=>J.step-X.step),G}async function Hg($,U,G){let J=await $.storage.get(V.checkpointHistory(U,G));if(!J)return null;let Q=await new S6($.storage,U).replay(Math.max(G-1,-1)),Z=await o0($.storage,U,I$(J)),Y=await Z0($.storage,U);return{checkpoint:zz({step:Z.step,locals:Z.locals,searchAttributes:Z.searchAttributes,version:Z.version,createdAt:Z.createdAt}),accumulatedResults:Z.accumulatedResults.map(([j,D])=>[j,i0(D)]),events:Q.map((j)=>({type:j.type,timestamp:j.timestamp,data:Bz(j.payload)})),...Y!==null?{compactedBefore:Y.sequence}:{}}}var _g=B(()=>{y();d6();u();D3();_U();s0();o3();B$();A$()});function Lg($,U){let G=0,J=$.length;while(G<J){let X=G+J>>>1;if($[X].timestamp<U)G=X+1;else J=X}return G}class XF{#$;#U;#G;constructor($){this.#$=$,this.#U=[],this.#G=0}record($,U){if(this.#U.push({timestamp:$,failed:U}),U)this.#G++;this.#J($)}rate($){if(this.#J($),this.#U.length===0)return 0;return this.#G/this.#U.length}#J($){let U=$-this.#$,G=Lg(this.#U,U);if(G===0)return;for(let J=0;J<G;J++)if(this.#U[J].failed)this.#G--;this.#U.splice(0,G)}}class QF{#$;#U;#G;constructor($){this.#$=$,this.#U=[],this.#G=[]}record($,U){this.#U.push({timestamp:$,value:U}),this.#J(U),this.#Q($)}percentile($,U){if(this.#Q(U),this.#G.length===0)return 0;let G=Math.ceil($/100*this.#G.length)-1;return this.#G[Math.max(0,G)]??0}#J($){let U=0,G=this.#G.length;while(U<G){let J=U+G>>>1;if(this.#G[J]<$)U=J+1;else G=J}this.#G.splice(U,0,$)}#X($){let U=0,G=this.#G.length;while(U<G){let J=U+G>>>1;if(this.#G[J]<$)U=J+1;else G=J}if(U<this.#G.length&&this.#G[U]===$)this.#G.splice(U,1)}#Q($){let U=$-this.#$,G=Lg(this.#U,U);if(G===0)return;for(let J=0;J<G;J++)this.#X(this.#U[J].value);this.#U.splice(0,G)}}var KU$=1e4,ZF;var Vg=B(()=>{Y$();E$();ZF=class ZF{#$;#U;#G;#J;#X;#Q;#Z;#Y;#j;constructor($,U,G=Date.now){this.#$=$,this.#U=U,this.#Y=G,this.#Q=0,this.#Z=new Set,this.#X=[],this.#G=[];for(let J of U.rules)this.#G.push({rule:J,status:"idle",currentValue:0});this.#J=new Map;for(let J=0;J<U.rules.length;J++){let X=U.rules[J],Q=X.window?T$(X.window):60000;if(X.metric==="workflow.failure_rate")this.#J.set(J,new XF(Q));else if(X.metric==="activity.p99_duration")this.#J.set(J,new QF(Q))}this.#_(),this.#j=setInterval(this.#D.bind(this),KU$)}#D(){for(let $=0;$<this.#U.rules.length;$++)this.#L($)}#_(){let $=this.#U.rules.some((J)=>J.metric==="workflow.failure_rate"),U=this.#U.rules.some((J)=>J.metric==="activity.p99_duration");if($){let J=(X)=>{let Q=this.#Y();for(let Z=0;Z<this.#U.rules.length;Z++){if(this.#U.rules[Z].metric!=="workflow.failure_rate")continue;this.#J.get(Z).record(Q,X),this.#L(Z)}};this.#H("workflow:completed",()=>J(!1));for(let X of["workflow:failed","workflow:timed-out","workflow:cancelled"])this.#H(X,()=>J(!0))}if(U)this.#H("activity:completed",(J)=>{if(!(J instanceof RU))return;let X=this.#Y();for(let Q=0;Q<this.#U.rules.length;Q++){if(this.#U.rules[Q].metric!=="activity.p99_duration")continue;this.#J.get(Q).record(X,J.duration),this.#L(Q)}});if(this.#U.rules.some((J)=>J.metric==="storage.size"))this.#H("storage:size-reported",(J)=>{if(!(J instanceof yU))return;this.#Q=J.sizeBytes;for(let X=0;X<this.#U.rules.length;X++){if(this.#U.rules[X].metric!=="storage.size")continue;this.#L(X)}})}#H($,U){this.#X.push({type:$,handler:U}),this.#$.addEventListener($,U)}#L($){let U=this.#U.rules[$],G=this.#G[$],J=this.#Y(),X=0,Q=U.threshold;if(U.metric==="workflow.failure_rate")X=this.#J.get($).rate(J);else if(U.metric==="activity.p99_duration")X=this.#J.get($).percentile(99,J);else if(U.metric==="storage.size")X=this.#Q;if(G.currentValue=X,X>=Q&&G.status==="idle")G.status="firing",G.lastFiredAt=J,this.#$.dispatchEvent(new fU(U.metric,Q,X,U.window)),this.#V(U,"alert:fired",X);else if(X<Q&&G.status==="firing")G.status="idle",G.lastResolvedAt=J,this.#$.dispatchEvent(new wU(U.metric,Q,X,U.window)),this.#V(U,"alert:resolved",X)}#V($,U,G){if($.action==="log")console.warn(`[weft:alert] ${U}: ${$.metric} = ${G} (threshold: ${$.threshold})`);if($.action==="webhook")this.#z($,U,G)}#z($,U,G){let J=this.#U.webhooks??[];for(let X of J){if(!X.events.includes(U))continue;let Q=new AbortController;this.#Z.add(Q);let Z={event:U,alert:{metric:$.metric,threshold:$.threshold,currentValue:G,window:$.window,timestamp:this.#Y()}};fetch(X.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Z),signal:AbortSignal.any([Q.signal,AbortSignal.timeout(30000)])}).catch(()=>{}).finally(this.#Z.delete.bind(this.#Z,Q))}}get states(){return this.#G}[Symbol.dispose](){if(this.#j!==null)clearInterval(this.#j),this.#j=null;for(let{type:$,handler:U}of this.#X)this.#$.removeEventListener($,U);this.#X=[];for(let $ of this.#Z)$.abort();this.#Z.clear()}}});var YF;var zg=B(()=>{YF=class YF{#$;#U;constructor($,U){this.#$=$,this.#U=U?.timeoutMilliseconds??30000}async execute($){let U=await this.#$.acquire(),G=!1;try{return await new Promise((J)=>{let X=!1,Q=(_)=>{if(X)return;X=!0,D(),J(_)},Z=(_)=>{if(_.data.operationId===$.operationId)Q(_.data)},Y=(_)=>{Q({operationId:$.operationId,status:"failed",error:`Activity worker crashed: ${_.message??"unknown error"}`})},j=setTimeout(()=>{Q({operationId:$.operationId,status:"failed",error:`Activity "${$.activityName}" timed out after ${this.#U}ms (operationId: ${$.operationId})`}),G=!0,U.terminate()},this.#U),D=()=>{clearTimeout(j),U.removeEventListener("message",Z),U.removeEventListener("error",Y)};U.addEventListener("message",Z),U.addEventListener("error",Y),U.postMessage($)})}finally{if(!G)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 bQ;var Bg=B(()=>{bQ=class bQ{#$;#U;#G;#J;#X;#Q;#Z;#Y;#j;constructor($){this.#$=new Set,this.#U=[],this.#G=[],this.#J=new Map,this.#X=$.concurrency,this.#Q=$.workerUrl,this.#Z=$.smol??!1,this.#Y=!1,this.#j=null}async acquire(){if(this.#Y)throw Error("WorkerPool has been disposed");let $=this.#U.pop();if($)return $;if(this.#$.size<this.#X)return this.#D();return new Promise((U,G)=>{this.#G.push({resolve:U,reject:G})})}async acquireSpecificWorker($){if(this.#Y)throw Error("WorkerPool has been disposed");if(!this.#$.has($))throw Error("Worker does not belong to this WorkerPool");let U=this.#U.indexOf($);if(U>=0)return this.#U.splice(U,1),$;return new Promise((G,J)=>{let X=this.#J.get($)??[];X.push({resolve:G,reject:J}),this.#J.set($,X)})}discard($){if(!this.#$.has($))return;this.#$.delete($),this.#H($),this.#L($,Error("Worker was discarded from this WorkerPool")),$.terminate(),this.#z(),this.#B()}release($){if(this.#Y&&!this.#j)return;let U=this.#J.get($);if(U&&U.length>0){let J=U.shift();if(U.length===0)this.#J.delete($);J.resolve($);return}let G=this.#G.shift();if(G){G.resolve($);return}this.#U.push($),this.#B()}get availableCount(){return this.#U.length}get totalCount(){return this.#$.size}get pendingCount(){let $=0;for(let U of this.#J.values())$+=U.length;return this.#G.length+$}[Symbol.dispose](){if(this.#Y)return;this.#Y=!0,this.#_()}async[Symbol.asyncDispose](){if(this.#Y)return;if(this.#Y=!0,this.#V(Error("WorkerPool has been disposed")),this.#U.length===this.#$.size){this.#_();return}return new Promise(($)=>{this.#j=()=>{this.#_(),$()}})}#D(){let $={};if(this.#Z)$.smol=!0;let U=new Worker(this.#Q,$);return this.#$.add(U),U}#_(){this.#V(Error("WorkerPool has been disposed"));for(let $ of this.#$)$.terminate();this.#$.clear(),this.#U.length=0,this.#G.length=0,this.#J.clear()}#H($){let U=this.#U.indexOf($);if(U>=0)this.#U.splice(U,1)}#L($,U){let G=this.#J.get($);if(!G)return;this.#J.delete($);for(let J of G)J.reject(U)}#V($){let U=this.#G.splice(0);for(let G of U)G.reject($);for(let G of this.#J.values())for(let J of G)J.reject($);this.#J.clear()}#z(){if(this.#Y)return;while(this.#G.length>0){let $=this.#U.shift();if($){this.#G.shift()?.resolve($);continue}if(this.#$.size<this.#X){this.#G.shift()?.resolve(this.#D());continue}return}}#B(){if(this.#j&&this.#U.length===this.#$.size)this.#j(),this.#j=null}}});function Wg($,U,G,J){return{workflowId:G.workflowId,workflowType:G.workflowType,startedAt:G.startedAt??$.getNow(),abortController:J,getNow:$.getNow,nestingDepth:G.nestingDepth??0,executionStateOwnerId:G.executionStateOwnerId??G.workflowId,...G.sleepReferenceTime!==void 0&&{sleepReferenceTime:G.sleepReferenceTime},...$.resolveWorkflowType!==void 0&&{resolveWorkflowType:$.resolveWorkflowType},...U.searchAttributes&&{searchAttributeSchema:U.searchAttributes},...G.deadline!==void 0&&{deadline:G.deadline},...PU$($,G.workflowId),services:$.getWorkflowServices?.(G.workflowId),...MU$($)}}function PU$($,U){let{registerCancelHandler:G,recordFinalizerState:J}=$;return{...G!==void 0&&{registerCancelHandler:(X)=>G(U,X)},...J!==void 0&&{recordFinalizerState:(X)=>J(U,X)}}}function MU$($){let U=$.getLogSink?.();return U===void 0?{}:{logSink:U}}function Fg($){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 jF;var Kg=B(()=>{r5();f4();jF=class jF{#$;#U;#G;#J;#X;#Q;#Z;#Y;constructor($){this.#$=$,this.#U=new Map,this.#G=new Map,this.#J=new Map,this.#X=new Map,this.#Q=new Map,this.#Z=new Map,this.#Y=null}onMessage($){this.#Y=$}startWorkflow($){let U=this.#$.getRegistration($.workflowType);if(!U){this.#L({type:"failed",workflowId:$.workflowId,error:`No workflow registered with name "${$.workflowType}"`});return}let G=new AbortController;this.#G.set($.workflowId,G);let J=new Y0(Wg(this.#$,U,$,G)),X=this.#$.getComposedWorkflowInterceptor?.()??null;if(F8(J,X),this.#$.development)J.explain(!0);this.#J.set($.workflowId,J);let Q=U.handler(J,$.input);this.#U.set($.workflowId,Q),this.#j($.workflowId,Q,void 0)}resumeWorkflow($){let U=this.#U.get($.workflowId);if(!U){this.#L({type:"failed",workflowId:$.workflowId,error:`No active generator for workflow: ${$.workflowId}`});return}let G=$.operationResult.status==="completed"?$.operationResult.value:void 0,J=$.operationResult.status==="failed"?$.operationResult.failureCategory:void 0,X=$.operationResult.status==="failed"?K7($.operationResult):void 0;if(X)this.#D($.workflowId,U,X,J);else this.#j($.workflowId,U,G)}cancelWorkflow($){let U=this.#G.get($);if(U)U.abort();this.#V($)}parkWorkflow($,U){let G=U?.retainContext?this.#J.get($)??this.#X.get($):void 0;if(this.#V($),G!==void 0)this.#X.set($,G)}getContext($){return this.#J.get($)}getParkedContext($){return this.#X.get($)}clearParkedContext($){this.#X.delete($)}getAbortController($){return this.#G.get($)}waitForWorkflowTurn($){return this.#Z.get($)}waitForWorkflowAdvance($){return this.#Q.get($)}hasGenerator($){return this.#U.has($)}continueWorkflow($,U){let G=this.#U.get($);if(!G)return;this.#j($,G,U)}throwIntoWorkflow($,U,G){let J=this.#U.get($);if(!J)return;this.#D($,J,U,G)}adoptWorkflow($,U,G,J){this.#X.delete($),this.#U.set($,U),this.#J.set($,G),this.#G.set($,J)}[Symbol.dispose](){this.#U.clear(),this.#G.clear(),this.#J.clear(),this.#X.clear(),this.#Q.clear(),this.#Z.clear(),this.#Y=null}async[Symbol.asyncDispose](){this[Symbol.dispose]()}#j($,U,G){return this.#_($,(async()=>{try{if(this.#G.get($)?.signal.aborted)return;let X=await U.next(G);if(X.done){this.#V($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0}),this.#L({type:"completed",workflowId:$,result:X.value});return}let Q=X.value;this.#L({type:"checkpoint",workflowId:$,checkpoint:new ArrayBuffer(0),operationRequest:Q})}catch(J){this.#V($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0});let X={type:"failed",workflowId:$,error:J instanceof Error?J.message:String(J),failureCategory:Q3(J,{defaultErrorCategory:"application"})};if(J instanceof Error&&J.stack!==void 0)X.errorStack=J.stack;this.#L(X)}})())}#D($,U,G,J){return this.#_($,(async()=>{try{if(this.#G.get($)?.signal.aborted)return;let Q=await U.throw(G);if(Q.done){this.#V($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0}),this.#L({type:"completed",workflowId:$,result:Q.value});return}let Z=Q.value;this.#L({type:"checkpoint",workflowId:$,checkpoint:new ArrayBuffer(0),operationRequest:Z})}catch(X){this.#V($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0});let Q={type:"failed",workflowId:$,error:X instanceof Error?X.message:String(X),failureCategory:J??Q3(X,{defaultErrorCategory:"application"})};if(X instanceof Error&&X.stack!==void 0)Q.errorStack=X.stack;this.#L(Q)}})())}#_($,U){let G=U.finally(()=>{if(this.#Q.get($)===G)this.#Q.delete($)});return G.catch(()=>{}),this.#Q.set($,G),G}#H($,U){let G=U.finally(()=>{if(this.#Z.get($)===G)this.#Z.delete($)});return G.catch(()=>{}),this.#Z.set($,G),G}#L($){let U=this.#Y?.($);if(U instanceof Promise){this.#H($.workflowId,U);return}this.#Z.delete($.workflowId)}#V($,U){if(this.#U.delete($),this.#G.delete($),this.#J.delete($),this.#X.delete($),!U?.preserveTrackedAdvance)this.#Q.delete($);if(!U?.preserveTrackedTurn)this.#Z.delete($)}}});class DF{#$=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,G){if(U===null)return;let J=(this.#U.get($)??1)-1;if(J>0){this.#U.set($,J);return}this.#U.delete($),this.forgetWorkflowIfClosed($,G)}wasResumedDuringCheckpointHandling($,U){return U!==null&&(this.#$.get($)??0)>U}forgetWorkflowIfClosed($,U){if(!U||this.#U.has($))return;this.#$.delete($)}}function qU$($){if($===void 0)return!0;if(typeof $!=="object"||$===null)return!1;let U=Object.getPrototypeOf($);return U===Object.prototype||U===null}function xQ($){if(typeof $!=="object"||$===null)return!1;let U=$;return NU$.has(U.level)&&typeof U.message==="string"&&typeof U.workflowId==="string"&&typeof U.workflowType==="string"&&typeof U.timestamp==="number"&&Number.isFinite(U.timestamp)&&qU$(U.attributes)}function Pg($){return typeof $==="object"&&$!==null&&$.type==="log"}var NU$;var vQ=B(()=>{NU$=new Set(["debug","info","warn","error"])});function TU$($){let U=0;return N(E8($,[],(J)=>{U+=J})).byteLength+U}function NG($,U){let G=TU$($);if(U!==void 0&&G>U)throw new S8(G,U);return G}function Tg($){let U=EU$($);SU$(U),bU$(U)}function EU$($){if(typeof $!=="object"||$===null)throw new n$("Worker outbound message must be an object");return $}function SU$($){if(typeof $.workflowId!=="string")throw new n$("Worker outbound message must include workflowId");Ng($,"protocolVersion"),Ng($,"turnId")}function Ng($,U){if($[U]!==void 0&&!Number.isSafeInteger($[U]))throw new n$(`Worker outbound message ${U} must be an integer`)}function bU$($){switch($.type){case"checkpoint":xU$($);return;case"completed":return;case"failed":vU$($);return;case"log":gU$($);return;default:throw new n$("Worker outbound message has an unsupported type")}}function xU$($){if(!($.checkpoint instanceof ArrayBuffer))throw new n$("Worker checkpoint message must include checkpoint bytes");if(typeof $.operationRequest!=="object"||$.operationRequest===null)throw new n$("Worker checkpoint message must include operationRequest")}function vU$($){if(typeof $.error!=="string")throw new n$("Worker failed message must include an error string")}function gU$($){if(!xQ($.record))throw new n$("Worker log message must include a valid log record")}function E8($,U,G){let J=IU$($,U,G);if(J.handled)return J.value;if(U.includes($))throw new n$("Worker protocol message cannot include cyclic values");if(!i8($).valid)throw new n$("Worker protocol message contains non-cloneable values");return mU$($,U,G)}function IU$($,U,G){if(typeof $==="function"||typeof $==="symbol")throw new n$("Worker protocol message cannot include functions or symbols");let J=hU$($,G);if(J.handled)return J;let X=yU$($,U,G);if(X.handled)return X;if(Array.isArray($))return{handled:!0,value:$.map((Q)=>E8(Q,U,G))};if(typeof $!=="object"||$===null)return{handled:!0,value:$};return{handled:!1}}function hU$($,U){if($ instanceof ArrayBuffer)return U($.byteLength),{handled:!0,value:{[Mg]:$.byteLength}};if(ArrayBuffer.isView($))return U($.byteLength),{handled:!0,value:{[Mg]:$.byteLength}};return{handled:!1}}function yU$($,U,G){if($ instanceof Date)return{handled:!0,value:{[OU$]:$.toISOString()}};if($ instanceof Error)return{handled:!0,value:{[AU$]:{name:$.name,message:$.message}}};if($ instanceof Map)return{handled:!0,value:{[CU$]:[...$.entries()].map(([J,X])=>[E8(J,U,G),E8(X,U,G)])}};if($ instanceof Set)return{handled:!0,value:{[RU$]:[...$.values()].map((J)=>E8(J,U,G))}};return{handled:!1}}function mU$($,U,G){U.push($);try{let J={};for(let X of Object.keys($).toSorted())J[X]=E8($[X],U,G);return J}finally{U.pop()}}var A1=1,qg=1000,Og=1048576,HF=4096,Ag=60000,Cg=5000,Rg=5,Mg="__weftBinaryBytes",OU$="__weftDate",AU$="__weftError",CU$="__weftMap",RU$="__weftSet",n$,S8;var _0=B(()=>{u();vQ();n$=class n$ extends Error{constructor($){super($);this.name="WorkerProtocolError"}};S8=class S8 extends n${actualBytes;maxBytes;constructor($,U){super(`Worker protocol message is ${$} bytes, exceeding limit ${U}`);this.actualBytes=$;this.maxBytes=U}}});class _F{#$;constructor($){this.#$=$}async acquireAndSend($,U){try{let G=await this.#$.pool.acquire();this.#$.ownership.setActive($,G),this.#$.attachWorkerListeners(G),this.#U(G,$,U,"run")}catch(G){this.#$.emit({type:"failed",workflowId:$,error:G instanceof Error?G.message:String(G)})}}postResumeMessage($,U,G){this.#U($,U.workflowId,G,"resume")}async resumeParkedWorkflow($,U,G){try{let J=await this.#$.pool.acquireSpecificWorker(U);if(this.#$.isDisposed()||!this.#$.ownership.activateParked($.workflowId,J)){this.#$.pool.release(J);return}this.#$.attachWorkerListeners(J),this.postResumeMessage(J,$,G)}catch(J){if(this.#$.isDisposed()||this.#$.ownership.getParkedWorker($.workflowId)!==U)return;this.#$.ownership.deleteParked($.workflowId),this.#$.emit({type:"failed",workflowId:$.workflowId,error:J instanceof Error?J.message:String(J)})}}async cancelParkedWorkflow($,U){try{let G=await this.#$.pool.acquireSpecificWorker(U),J={type:"cancel",workflowId:$};if(this.#$.requireProtocolVersion())J.protocolVersion=A1;G.postMessage(J),this.#$.detachWorkerListenersIfIdle(G),this.#$.pool.release(G)}catch{}}#U($,U,G,J){if(!this.#$.validateHostToWorkerMessage(U,G,$))return;try{this.#$.beginTurn($,U,G.turnId??0,J),$.postMessage(G,[kU$(G.checkpoint)])}catch(X){this.#G($,U,X,J)}}#G($,U,G,J){if(this.#$.clearTurn($),J==="resume"){this.#$.discardWorkerAndFailWorkflows($,{targetWorkflowId:U,targetCategory:"system",targetError:G instanceof Error?G.message:String(G),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:G instanceof Error?G.message:String(G),failureCategory:"system"})}}function kU$($){if($ instanceof ArrayBuffer)return $;if($.buffer instanceof ArrayBuffer)return $.buffer;throw Error("Worker checkpoint must use an ArrayBuffer-backed view")}var Eg=B(()=>{_0()});class LF{#$=new Map;#U=new Map;#G=new Map;#J=new Set;resetWorkflow($){this.#J.delete($)}markCancelled($){this.#J.add($)}consumeCancelled($){return this.#J.delete($)}getActiveWorker($){return this.#$.get($)}getParkedWorker($){return this.#U.get($)}getTargetWorker($){return this.getActiveWorker($)??this.getParkedWorker($)}setActive($,U){this.#$.set($,U),this.#G.set(U,$)}releaseActive($){let U=this.#$.get($);if(!U)return;return this.#$.delete($),this.#G.delete(U),U}parkActive($,U){if(this.#$.get($)!==U)return!1;return this.#$.delete($),this.#G.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=[],G=this.#G.get($);if(G)U.push(G);for(let[J,X]of this.#U)if(X===$)U.push(J);return U}forgetWorkflow($){let U=this.#$.get($);if(U)this.#G.delete(U);this.#$.delete($),this.#U.delete($),this.#J.delete($)}clear(){this.#$.clear(),this.#U.clear(),this.#G.clear(),this.#J.clear()}workerIsIdle($){if(this.#G.has($))return!1;for(let U of this.#U.values())if(U===$)return!1;return!0}}function Sg($,U){let G={type:"run",protocolVersion:A1,turnId:U.turnId,workflowId:$.workflowId,workflowType:$.workflowType,checkpoint:$.checkpoint,input:$.input,executionStateOwnerId:$.executionStateOwnerId??$.workflowId};if(U.maxProtocolMessageBytes!==void 0)G.maxProtocolMessageBytes=U.maxProtocolMessageBytes;if($.deadline!==void 0)G.deadline=$.deadline;if($.headers)G.headers=$.headers;if(U.hasLogSink)G.hostHasLogSink=!0;return G}function VF($,U){let G={type:"resume",protocolVersion:A1,turnId:U.turnId,workflowId:$.workflowId,checkpoint:$.checkpoint,operationResult:$.operationResult};if(U.maxProtocolMessageBytes!==void 0)G.maxProtocolMessageBytes=U.maxProtocolMessageBytes;if(U.hasLogSink)G.hostHasLogSink=!0;return G}var bg=B(()=>{_0()});class zF{#$=new Map;attach($,U){if(this.#$.has($))return;let G={message:(J)=>{U.message(J.data)},error:U.error,messageerror:U.messageerror};this.#$.set($,G),$.addEventListener("message",G.message),$.addEventListener("error",G.error),$.addEventListener("messageerror",G.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 xg($,U){try{let G=$?.(U);if(G instanceof Promise)return G.then(()=>!1,()=>!0);return!1}catch{return!0}}function vg($){let U=$.operationRequest;return U.type==="wait-signal"||U.kind==="signal-wait"}function gg($,U,G){if(G!==void 0)try{NG($,G)}catch(X){return X instanceof S8?"dropped-oversize":"dropped-invalid"}if(!xQ($.record))return"dropped-invalid";let J=$.record;if(J.workflowId!==$.workflowId)return"dropped-invalid";if(U!==void 0)try{U(J)}catch{n5(J)}return"accepted-valid"}var BF=B(()=>{$W();vQ();_0()});class hg{#$;#U;#G;#J;#X=new WeakMap;constructor($){this.#$=$.floodWindowMs,this.#U=$.floodThreshold,this.#G=$.strikeThreshold,this.#J=$.getNow}recordArrival($){let U=this.#J(),G=this.#Q($),J=U-G.windowStartedAt;if(J>=this.#$||J<0)G.windowStartedAt=U,G.arrivalsInWindow=0;return G.arrivalsInWindow+=1,G.arrivalsInWindow>this.#U?"discard":"tolerate"}recordOutcome($,U){switch(U){case"accepted-valid":return"tolerate";case"dropped-oversize":case"dropped-invalid":{let G=this.#Q($);return G.lifetimeStrikes+=1,G.lifetimeStrikes>=this.#G?"discard":"tolerate"}default:throw Error(`Unknown forwarded-log outcome: ${String(U)}`)}}forget($){this.#X.delete($)}#Q($){let U=this.#X.get($);if(!U)U={windowStartedAt:this.#J(),arrivalsInWindow:0,lifetimeStrikes:0},this.#X.set($,U);return U}}class yg{#$;#U;#G;constructor($){this.#U=$.onLog,this.#G=$.maxProtocolMessageBytes,this.#$=new hg({floodWindowMs:$.floodWindowMs??Ag,floodThreshold:$.floodThreshold??Cg,strikeThreshold:$.strikeThreshold??Rg,getNow:$.getNow??Date.now})}get hasSink(){return this.#U!==void 0}handle($,U,G){if(this.#$.recordArrival($)==="discard")return Ig("forwarded-log flooding");if(typeof U.workflowId!=="string"||!G(U.workflowId))return null;let J=gg(U,this.#U,this.#G);if(this.#$.recordOutcome($,J)==="discard")return Ig("repeated oversize/invalid forwarded logs");return null}forget($){this.#$.forget($)}}function Ig($){let U=`Worker discarded for log abuse: ${$}`;return{targetCategory:"system",targetError:U,otherCategory:"system",otherError:U}}function mg($,U){return new yg({onLog:$?.onLog,maxProtocolMessageBytes:U,getNow:$?.getNow,floodWindowMs:$?.forwardedLogFloodWindowMs,floodThreshold:$?.forwardedLogFloodThreshold,strikeThreshold:$?.forwardedLogStrikeThreshold})}var kg=B(()=>{BF();_0()});class WF{#$;#U;#G;constructor($,U,G){this.#$=$,this.#U=U,this.#G=G}validateHostToWorkerMessage($){try{return NG($,this.#$),null}catch(U){return fg(U,{otherError:"Worker protocol send failed"})}}acceptWorkerMessage($,U){try{if(Tg(U),NG(U,this.#$),this.#U)this.#J($,U);return{accepted:!0,message:U}}catch(G){let J=fU$(U);return{accepted:!1,failure:fg(G,{...J===void 0?{}:{targetWorkflowId:J},otherError:J===void 0?"Worker discarded after protocol violation":`Worker discarded after protocol violation for workflow: ${J}`})}}}#J($,U){if(U.protocolVersion!==A1)throw new n$("Worker protocol version mismatch");let G=this.#G.get($);if(!G)throw new n$("Worker message arrived outside an active turn");if((U.type==="log"?void 0:U.turnId)!==G.turnId||U.workflowId!==G.workflowId)throw new n$("Worker message did not match the active turn")}}function fg($,U){return{...U.targetWorkflowId===void 0?{}:{targetWorkflowId:U.targetWorkflowId},failureCategory:$ instanceof S8?"resource":"system",error:$ instanceof Error?$.message:String($),otherError:U.otherError}}function fU$($){if(typeof $!=="object"||$===null)return;let U=$.workflowId;return typeof U==="string"?U:void 0}var wg=B(()=>{_0()});class FF{#$=new Map;#U;#G;constructor($,U){this.#U=$,this.#G=U}begin($,U,G,J){this.clear($);let X={worker:$,workflowId:U,turnId:G,kind:J,timeout:null};if(this.#U!==void 0)X.timeout=setTimeout(()=>{if(this.#$.get($)===X)this.#G(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 KF;var ug=B(()=>{Eg();bg();kg();BF();wg();vQ();_0();KF=class KF{#$;#U;#G;#J;#X;#Q;#Z;#Y;#j;#D;#_;#H;#L;#V;#z;#B;#F;constructor($,U){let{workflowTurnTimeoutMs:G,maxProtocolMessageBytes:J,requireProtocolVersion:X=!1,discardOnCancel:Q=!1,broadcastEvents:Z=!1}=U??{};if(this.#$=$,this.#U=new LF,this.#G=new zF,this.#Q=new DF,this.#Z=G,this.#Y=J,this.#j=X,this.#D=Q,this.#_=mg(U,J),this.#H=new FF(this.#Z,(Y)=>{this.#b(Y)}),this.#L=new WF(this.#Y,this.#j,this.#H),this.#V=new _F({pool:this.#$,ownership:this.#U,isDisposed:()=>this.#B,requireProtocolVersion:()=>this.#j,validateHostToWorkerMessage:(Y,j,D)=>this.#O(Y,j,D),attachWorkerListeners:(Y)=>{this.#E(Y)},detachWorkerListenersIfIdle:(Y)=>{this.#q(Y)},beginTurn:(Y,j,D,_)=>{this.#H.begin(Y,j,D,_)},clearTurn:(Y)=>{this.#H.clear(Y)},discardWorkerAndFailWorkflows:(Y,j)=>{this.#W(Y,j)},emit:(Y)=>{this.#M(Y)}}),this.#z=null,this.#J=null,this.#X=null,this.#B=!1,this.#F=1,Z)try{this.#J=new BroadcastChannel("weft:events"),this.#X=(Y)=>{this.#x(Y.data)},this.#J.addEventListener("message",this.#X)}catch{}}onMessage($){this.#z=$}startWorkflow($){this.#U.resetWorkflow($.workflowId),this.#Q.resetWorkflow($.workflowId);let U=Sg($,this.#K());if(!this.#O($.workflowId,U))return;this.#V.acquireAndSend($.workflowId,U)}resumeWorkflow($){let U=this.#U.getActiveWorker($.workflowId);if(U){this.#Q.recordResume($.workflowId);let J=VF($,this.#K());this.#V.postResumeMessage(U,$,J);return}let G=this.#U.getParkedWorker($.workflowId);if(G){let J=VF($,this.#K());this.#V.resumeParkedWorkflow($,G,J);return}if(this.#U.consumeCancelled($.workflowId))return;if(!this.#B)this.#M({type:"failed",workflowId:$.workflowId,error:`No worker assigned for workflow: ${$.workflowId}`})}#K(){return{turnId:this.#F++,maxProtocolMessageBytes:this.#Y,hasLogSink:this.#_.hasSink}}cancelWorkflow($){let U=this.#U.getActiveWorker($);if(U){if(this.#U.markCancelled($),this.#D){this.#W(U,{targetWorkflowId:$,skipTarget:!0,otherCategory:"system",otherError:`Worker discarded during cancellation of workflow: ${$}`});return}let J={type:"cancel",workflowId:$};if(this.#j)J.protocolVersion=A1;U.postMessage(J),this.#N($);return}let G=this.#U.getParkedWorker($);if(!G)return;if(this.#U.markCancelled($),this.#U.deleteParked($),this.#D){this.#W(G,{targetWorkflowId:$,skipTarget:!0,otherCategory:"system",otherError:`Worker discarded during cancellation of parked workflow: ${$}`});return}this.#V.cancelParkedWorkflow($,G)}[Symbol.dispose](){this.#P(),this.#$[Symbol.dispose]()}async[Symbol.asyncDispose](){this.#P(),await this.#$[Symbol.asyncDispose]()}#P(){if(this.#B=!0,this.#J){if(this.#X)this.#J.removeEventListener("message",this.#X);this.#J.close()}this.#H.clearAll();let $=this.#U.activeWorkflowIds();for(let U of $)this.#N(U);this.#G.detachAll(),this.#U.clear(),this.#Q.clear(),this.#z=null}async#A($,U){if(Pg(U)){let Q=(Y)=>this.#U.getTargetWorker(Y)===$,Z=this.#_.handle($,U,Q);if(Z)this.#W($,Z);return}if(!this.#S($,U))return;this.#H.clear($);let G=this.#Q.beginCheckpointHandling(U),J=xg(this.#z,U),X=J instanceof Promise?await J:J;try{if(this.#C($,U))return;if(X)return;this.#R($,U,G)}finally{this.#Q.finishCheckpointHandling(U.workflowId,G,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.#q($),this.#Q.forgetWorkflowIfClosed(U.workflowId,this.#U.isWorkflowClosed(U.workflowId)),!0}#R($,U,G){if(U.type!=="checkpoint"||!vg(U))return;if(this.#Q.wasResumedDuringCheckpointHandling(U.workflowId,G))return;if(this.#U.parkActive(U.workflowId,$))this.#$.release($)}#T($,U){this.#W($,{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.#q(U),this.#$.release(U)}#E($){this.#G.attach($,{message:(U)=>{this.#A($,U).catch(()=>{})},error:(U)=>{this.#T($,U)},messageerror:()=>{this.#W($,{targetCategory:"system",targetError:"Worker messageerror event",otherCategory:"system",otherError:"Worker messageerror event"})}})}#q($){this.#G.detachIfIdle($,(U)=>this.#U.workerIsIdle(U))}#O($,U,G){let J=this.#L.validateHostToWorkerMessage(U);if(!J)return!0;if(G)return this.#W(G,{targetWorkflowId:$,targetCategory:J.failureCategory,targetError:J.error,otherCategory:"system",otherError:`Worker discarded after protocol send failure for workflow: ${$}`}),!1;return this.#M({type:"failed",workflowId:$,error:J.error,failureCategory:J.failureCategory}),!1}#S($,U){let G=this.#L.acceptWorkerMessage($,U);if(G.accepted)return!0;return this.#W($,{...G.failure.targetWorkflowId===void 0?{}:{targetWorkflowId:G.failure.targetWorkflowId},targetCategory:G.failure.failureCategory,targetError:G.failure.error,otherCategory:"system",otherError:G.failure.otherError}),!1}#b($){this.#W($.worker,{targetWorkflowId:$.workflowId,targetCategory:"timeout",targetError:`Worker workflow turn timed out after ${this.#Z}ms`,otherCategory:"timeout",otherError:`Worker discarded after workflow turn timed out: ${$.workflowId}`})}#W($,U){let G=this.#U.workflowIdsForWorker($);if(G.length===0){this.#H.clear($),this.#_.forget($);return}for(let J of G){let X=J===U.targetWorkflowId;if(this.#U.forgetWorkflow(J),this.#Q.forgetWorkflowIfClosed(J,!0),X&&U.skipTarget)continue;this.#M({type:"failed",workflowId:J,error:X?U.targetError??U.otherError:U.otherError,failureCategory:X?U.targetCategory??U.otherCategory:U.otherCategory})}this.#H.clear($),this.#_.forget($),this.#G.detach($),this.#$.discard($)}#x($){if($.type==="signal:received"&&typeof $.workflowId==="string"){let U=this.#U.getTargetWorker($.workflowId);if(U)U.postMessage($)}}#M($){let U=this.#z?.($);if(U instanceof Promise)U.catch(()=>{})}}});function lg($){let U=wU$($?.ownership??"none");if(U!=="lease")return{ownershipMode:U,leaseTtlMs:cg,leaseRenewIntervalMs:pg,leaseWaitTimeoutMs:dg};let G=L4($?.leaseTtl,"options.leaseTtl")??cg,J=L4($?.leaseRenewInterval,"options.leaseRenewInterval")??pg,X=L4($?.leaseWaitTimeout,"options.leaseWaitTimeout")??dg;return uU$(G,J,X),{ownershipMode:U,leaseTtlMs:G,leaseRenewIntervalMs:J,leaseWaitTimeoutMs:X}}function wU$($){if($!=="none"&&$!=="lease")throw Error(`Unknown ownership posture "${String($)}". Expected 'none' or 'lease'.`);return $}function uU$($,U,G){if($<=0||U<=0||G<=0)throw Error(`ownership: 'lease' requires positive leaseTtl, leaseRenewInterval, and leaseWaitTimeout (got leaseTtl=${$}ms, leaseRenewInterval=${U}ms, leaseWaitTimeout=${G}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 cg=30000,pg=5000,dg=60000;var ig=B(()=>{A$()});function PF($){return Object.entries($??{})}function gQ($,U){return $}function rg($){return cU$($,{bunEnv:typeof Bun<"u"?Bun.env:void 0,processEnv:typeof process<"u"?process.env:void 0})}function cU$($,U){if(U.bunEnv!==void 0)return U.bunEnv[$];if(U.processEnv!==void 0)return U.processEnv[$];return}function pU$($){return $?.development===!0||rg("WEFT_DEV_WARNINGS")==="1"||rg("NODE_ENV")==="development"}function ag($){let G=$?.storage??void 0;if(G===void 0){if(!ng&&pU$($))ng=!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.)");G=new gG}if(!$?.compression)return G;return new mZ(G,$.compression)}function tg($){return $?.interceptors?[...$.interceptors]:[]}function MF($,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 dU$($){return{retention:C7($?.retention,"options.retention"),retentionSweepIntervalMs:L4($?.retentionSweepInterval,"options.retentionSweepInterval")??nO,retentionSweepBatchSize:$?.retentionSweepBatchSize!==void 0?Math.max(1,Math.floor($.retentionSweepBatchSize)):rO}}function b8($,U){return $??U}function lU$($){return{development:b8($?.development,!1),broadcastEvents:b8($?.broadcastEvents,!1)}}function iU$($){return{checkpointHistory:b8($?.checkpointHistory,10),checkpointSizeWarningThreshold:b8($?.checkpointSizeWarningThreshold,65536),maxNestingDepth:b8($?.maxNestingDepth,10)}}function nU$($){return{historyPolicy:WC($?.history,"options.history"),archiveAdapter:$?.archive??null,payloadSizePolicy:FC($?.payloadSize,"options.payloadSize")}}function rU$($){let U=b8($?.detectSecondInstance,!1),G=U?L4($?.secondInstanceHeartbeatInterval,"options.secondInstanceHeartbeatInterval")??og:og;return{secondInstanceDetectionEnabled:U,secondInstanceHeartbeatIntervalMs:G}}function eg($,U,G){return{storage:$,getNow:G,resolveWorkflowServices:U?.resolveWorkflowServices??null,onLog:U?.onLog??null,...lU$(U),...iU$(U),...dU$(U),...nU$(U),...rU$(U),...lg(U)}}function oU$($){let U=sU$($?.workflowExecutionMode),G=aU$($,U);if(!G)return{mode:"inline",workerExecution:null};return tU$(G)}function sU$($){if($===void 0||$==="inline"||$==="worker")return $;throw Error('options.workflowExecutionMode must be "inline" or "worker" when provided')}function aU$($,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 tU$($){let U=sg($.workflowTurnTimeoutMs,"options.workerExecution.workflowTurnTimeoutMs",void 0)??qg,G=sg($.maxProtocolMessageBytes,"options.workerExecution.maxProtocolMessageBytes",void 0)??Og;if(G<HF)throw Error(`options.workerExecution.maxProtocolMessageBytes must be at least ${HF}`);return{mode:"worker",workerExecution:$,workflowTurnTimeoutMs:U,maxProtocolMessageBytes:G,requireProtocolVersion:!0,discardOnCancel:!0}}function sg($,U,G){if($===void 0)return G;if(typeof $!=="number"||!Number.isSafeInteger($)||$<=0)throw Error(`${U} must be a positive safe integer when provided`);return $}function $I($){let{options:U,getNow:G,maxNestingDepth:J,development:X,broadcastEvents:Q,getRegistration:Z,getComposedWorkflowInterceptor:Y,resolveWorkflowType:j,registerCancelHandler:D,recordFinalizerState:_,getWorkflowServices:L,getLogSink:W}=$,F=oU$(U);if(F.mode==="worker"){let q=new bQ({workerUrl:F.workerExecution.workerUrl,concurrency:F.workerExecution.poolSize??4,smol:F.workerExecution.smol??!1}),A=W?.(),g={broadcastEvents:Q,requireProtocolVersion:F.requireProtocolVersion,discardOnCancel:F.discardOnCancel,workflowTurnTimeoutMs:F.workflowTurnTimeoutMs,maxProtocolMessageBytes:F.maxProtocolMessageBytes,getNow:G,...A!==void 0&&{onLog:A}};return{strategy:new KF(q,g),inlineStrategy:null}}let P=new jF({getRegistration:Z,getNow:G,maxNestingDepth:J,development:X,resolveWorkflowType:j,...Fg({getComposedWorkflowInterceptor:Y,registerCancelHandler:D,recordFinalizerState:_,getWorkflowServices:L,getLogSink:W})});return{strategy:P,inlineStrategy:P}}function UI($){if(!$)return null;return new YF(new bQ({workerUrl:$.workerUrl,concurrency:$.poolSize??4,smol:$.smol??!1}))}function GI($,U,G){return U?new ZF($,U,G):null}var ng=!1,og=15000;var JI=B(()=>{Vg();LP();$P();zg();Bg();Kg();k6();ug();_0();ig();A$()});function QI(){if(NF!==void 0)return NF;return Bun.env.WEFT_DEV_WARNINGS==="1"||Bun.env.NODE_ENV==="development"}function ZI($){NF=$}function YI($){qF=$}function jI(){let $=qF;return qF=void 0,$}function DI(){return XI}function HI($){return OF.has($)}function _I($){OF.delete($)}function LI(){return QI()}var NF,XI=0,qF,OF,IQ;var hQ=B(()=>{OF=new Set,IQ=new FinalizationRegistry(($)=>{if(XI++,$.cleanupInterval!==null)clearInterval($.cleanupInterval),$.cleanupInterval=null;if($.secondInstanceDetectionInterval!==null)clearInterval($.secondInstanceDetectionInterval),$.secondInstanceDetectionInterval=null;if(!$.disposed&&QI()){if($.testToken!==void 0)OF.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 VI($){return typeof $==="function"&&typeof $.name==="string"&&"execute"in $&&typeof $.execute==="function"}function zI($){let U=t$($);return{processPendingUpdatesAfterInlineAdvance:(G)=>U.processPendingUpdatesAfterInlineAdvance(G),swallowPromiseRejection:(G)=>F4(G)}}function BI($,U){return function(){let J=$.deref();if(J===void 0){U.port1.close(),U.port2.close();return}z(J).queuedInlineWorkflowStartFlushScheduled=!1,F4(ZG(z(J),zI(J)))}}async function WI($){await zb(z($),zI($))}function FI($,U){return function(){let J=$.deref();if(J===void 0){if(U.cleanupInterval!==null)clearInterval(U.cleanupInterval),U.cleanupInterval=null;return}let X=z(J);AR(X.updateCoordinator,(Q,Z)=>z$(J).handleCleanupError(Q,Z))()}}function KI($){return function(){let G=$.deref();if(G===void 0)return null;let J=z(G);if(J.disposed)return null;return J.secondInstanceDetector}}function PI($){if($.cleanupInterval!==null)clearInterval($.cleanupInterval??void 0),$.cleanupInterval=null;if($.cleanupIntervalDisposalTracker!==null)$.cleanupIntervalDisposalTracker.disposed=!0,$.cleanupIntervalDisposalTracker.cleanupInterval=null,IQ.unregister($.cleanupIntervalDisposalTracker),$.cleanupIntervalDisposalTracker=null}var AF=B(()=>{A3();N8();hQ();D0();q1();l4()});function yQ($){$.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(),Bb($),$.scheduler[Symbol.dispose](),$.strategy[Symbol.dispose](),$.activityWorkerDispatcher?.[Symbol.dispose](),$.activityWorkerDispatcher=null,$.inlineStrategy=null,PI($),$.retentionSweepInterval!==null)clearInterval($.retentionSweepInterval??void 0),$.retentionSweepInterval=null;$.nextRetentionSweepAt=null,eU$($),$2$($),$.handleCache.clear();for(let U of $.resultResolvers.values())U.reject(new D4);$.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 eU$($){if($.secondInstanceDetectionInterval!==null)clearInterval($.secondInstanceDetectionInterval??void 0),$.secondInstanceDetectionInterval=null;if($.secondInstanceDetector!==null)$.secondInstanceDetector.stop(),$.secondInstanceDetector=null}function $2$($){if($.leaseManager!==null)$.leaseManager.stop(),$.leaseManager=null}var MI=B(()=>{AF();F$();D0()});function NI($,U,G){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}E6(G,$.options.payloadSizePolicy.maxBytes,"finalizer state"),t1($,U,{conditions:[],operations:[{type:"put",key:V.finalizerState(U),value:N(G)}]})}var qI=B(()=>{y();u();c4()});function OI($){let{storage:U,holderId:G,getNow:J,ttlMs:X,renewIntervalMs:Q,waitTimeoutMs:Z}=$,Y=$.acquirePollIntervalMs??U2$,j=Q,D=!1,_=null,L=null,W=null,F=null,P=!1,q=null,A=$.delay??(($$)=>new Promise((b$)=>setTimeout(b$,$$)));function g($$){if(P)return;P=!0,$.onLeaseLost?.($$)}async function f(){let $$=await U.get(V.leaseHolder()),b$=await U.get(V.leaseEpoch());return{epochRaw:b$,holderRaw:$$,epoch:b$===null?null:L5(b$),holder:$$===null?null:V5($$)}}async function m($$,b$,R$){let e$=J()+X,R1=QB({holderId:G,expiresAt:e$,epoch:R$}),SG=await W$(U,[{key:V.leaseEpoch(),expectedValue:$$},{key:V.leaseHolder(),expectedValue:b$}],[{type:"put",key:V.leaseEpoch(),value:XB(R$)},{type:"put",key:V.leaseHolder(),value:R1}]);if(SG)_=R$,L=XB(R$),W=R1;return SG}async function p(){let{epochRaw:$$,holderRaw:b$,epoch:R$,holder:e$}=await f();if($$!==null&&R$===null)throw new ZU('the "lease:epoch" high-water mark is present but does not decode to a valid epoch');if($$===null&&b$!==null)throw new ZU('a "lease:holder" record exists with no "lease:epoch" key (the lease protocol never deletes the epoch)');if(e$!==null&&J()<e$.expiresAt)return!1;let R1=(R$??0)+1;if(R1>=Number.MAX_SAFE_INTEGER)throw new ZU(`the next ownership epoch (${R1}) is at or above the safe-integer ceiling and cannot be minted without bricking future boots`);return m($$,b$,R1)}async function d(){let $$=J(),b$=$$+Z,R$=null,e$=!0;for(;;){if(D)return;if(!e$&&J()>=b$)throw new G8(J()-$$,R$);if(e$=!1,await p())return;let $6=await U.get(V.leaseHolder());if(R$=$6===null?null:V5($6)?.holderId??null,J()>=b$)throw new G8(J()-$$,R$);await A(Y)}}async function X$(){if(D||P||_===null||W===null)return;let $$=J()+X,R$=QB({holderId:G,expiresAt:$$,epoch:_}),e$;try{e$=await W$(U,[{key:V.leaseHolder(),expectedValue:W}],[{type:"put",key:V.leaseHolder(),value:R$}])}catch{let $6=V5(W)?.expiresAt??0;if(J()>=$6-j)g("renewal-unconfirmable");return}if(e$){W=R$;return}g("deposed")}function M$(){if(q!==null)return;q=X$().catch(()=>{}).finally(()=>{q=null})}function v6(){if(D||F!==null)return;F=setInterval(()=>{M$()},Q),F.unref?.()}function f8(){return L===null?null:L.slice()}function i(){if(F!==null)clearInterval(F),F=null}async function Q$(){if(D=!0,i(),q!==null)await q;if(W===null)return;try{if(await W$(U,[{key:V.leaseHolder(),expectedValue:W}],[{type:"delete",key:V.leaseHolder()}]))W=null}catch{}}function Z$(){D=!0,i()}return{acquire:d,startRenewal:v6,renewOnce:X$,currentEpochBytes:f8,release:Q$,stop:Z$}}var U2$=1000;var AI=B(()=>{y();ZB();z5()});async function CF($){let U=await $.get(vV);if(U!==null){let G=new TextDecoder().decode(U);if(!G2$.test(G))throw new V1(null,m0);let J=Number(G);if(!Number.isSafeInteger(J))throw new V1(null,m0);if(J!==m0)throw new V1(J,m0);return}for(let G of J2$)for await(let J of $.scan(G,{limit:1}))throw new V1(null,m0);await $.put(vV,new TextEncoder().encode(String(m0)))}var G2$,J2$;var CI=B(()=>{gV();G2$=/^(?:0|[1-9]\d*)$/,J2$=["wf:","op:","schedule:","ev:","sig:","upd:","idx:"]});async function RI($,U,G,J){if(G==="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 Z=Q.queryHandlers.get(G);if(Z)return Z(J);let Y=Q.exposedAccessors.get(G);if(!Y)return;return Y()}function Z2$($){return X2$.encode(JSON.stringify($))}async function mQ($){try{await $()}catch{}}function Y2$($){let{instanceId:U,heartbeatAt:G,sequence:J}=$;return typeof U==="string"&&U.length>0&&typeof G==="number"&&Number.isFinite(G)&&typeof J==="number"&&Number.isInteger(J)&&J>=0}function j2$($){let U;try{U=JSON.parse(Q2$.decode($))}catch{return null}if(typeof U!=="object"||U===null)return null;let G=U;return Y2$(G)?G:null}function EI($){let{storage:U,instanceId:G,getNow:J,intervalMs:X}=$,Q=$.warn??((f)=>process.emitWarning(f,D2$)),Z=X*(TI+1),Y=0,j=!1,D=!1,_=new Map,L=new Set;async function W(){let f=[];for await(let[m,p]of U.scan(V.livenessPrefix())){let d=j2$(p);if(d!==null&&d.instanceId!==G)f.push({key:m,heartbeat:d})}return f}async function F(f,m){let p=m-Z*H2$;for(let d of f)if(d.heartbeat.heartbeatAt<p)await mQ(()=>U.delete(d.key))}function P(f){let m=new Set;for(let{key:p,heartbeat:d}of f){if(V.liveness(d.instanceId)!==p)continue;m.add(d.instanceId);let X$=_.get(d.instanceId),v6=X$!==void 0&&d.sequence>X$.sequence?X$.advances+1:0;if(_.set(d.instanceId,{sequence:d.sequence,advances:v6}),v6>=TI&&!L.has(d.instanceId))L.add(d.instanceId),Q(`another engine instance (${d.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 p of Array.from(_.keys()))if(!m.has(p))_.delete(p)}let q=!1;async function A(){if(D||q)return;q=!0;let f=!1;try{let m=J(),p=await W();if(!j)j=!0,await F(p,m);if(P(p),D)return;Y+=1;let d={instanceId:G,heartbeatAt:m,sequence:Y};f=!0,await mQ(()=>U.put(V.liveness(G),Z2$(d)))}finally{if(q=!1,f&&D)await mQ(()=>U.delete(V.liveness(G)))}}async function g(){D=!0,await mQ(()=>U.delete(V.liveness(G)))}return{tick:A,stop:g}}function SI($,U){return function(){let J=$();if(J===null){if(U.secondInstanceDetectionInterval!==null)clearInterval(U.secondInstanceDetectionInterval),U.secondInstanceDetectionInterval=null;return}J.tick().catch(()=>{})}}var X2$,Q2$,D2$="WeftSecondInstanceWarning",H2$=10,TI=2;var bI=B(()=>{y();X2$=new TextEncoder,Q2$=new TextDecoder});var xI,vI,gI,RF;var II=B(()=>{y();xV();$U();d6();A3();lz();E$();k6();JU();Cz();e2();D5();g5();NQ();Qg();_g();JI();MI();hQ();AF();F$();B4();qI();xB();G0();D0();UF();q1();AI();j0();c3();oW();tW();w5();CI();_W();JF();$Q();hW();bI();$0();a$();l4();O1();U8();P5();AQ();pW();e2();F$();G0();z5();hQ();xI=Symbol("engineParkedWorkflowCountForTesting"),vI=Symbol("engineSignalWaiterCountForTesting"),gI=Symbol("engineSleepResolverCountForTesting");RF=class RF extends EventTarget{static async create($){let U=new RF($);try{await CF(z(U).storage);for(let[G,J]of PF($.activities)){if(G!==J.name)throw new f0("activity",G,J.name);U.#K(J)}for(let[G,J]of PF($.workflows)){if(G!==J.name)throw new f0("workflow",G,J.name);U.register(J)}if(await U.#$(),$.recover!==!1)await U.recoverAll($.acknowledgeUnknownWorkflowTypes!==void 0?{acknowledgeUnknownWorkflowTypes:$.acknowledgeUnknownWorkflowTypes}:{}),z(U).scheduler.start()}catch(G){throw await U[Symbol.asyncDispose](),G}return U}constructor($){super();Nb(this),z(this).registrations=new Map,z(this).workflowTypesByHandler=new WeakMap;let U=ag($),G=$?.getNow??Date.now,J=eg(U,$,G),X=$I({options:$,getNow:G,maxNestingDepth:J.maxNestingDepth,development:J.development,broadcastEvents:J.broadcastEvents,getRegistration:z(this).registrations.get.bind(z(this).registrations),getComposedWorkflowInterceptor:()=>a6(z(this)),resolveWorkflowType:this.#z.bind(this),registerCancelHandler:(D,_)=>JG(z(this),D,_),recordFinalizerState:(D,_)=>NI(z(this),D,_),getWorkflowServices:(D)=>z(this).workflowServices.get(D),getLogSink:()=>J.onLog??void 0});z(this).storage=U,z(this).abortController=new AbortController,z(this).disposed=!1,z(this).handleCache=new Map,z(this).resultResolvers=new Map,z(this).signalWaiters=new Map,z(this).signalWaitersByWorkflow=new Map,z(this).conditionWaiters=new Map,z(this).updateWaiters=new Map,z(this).updateWaitersByWorkflow=new Map,z(this).sleepResolvers=new Map,z(this).sleepResolversByWorkflow=new Map,z(this).interceptors=tg($),z(this).composedWorkflowInterceptor=void 0,z(this).composedActivityInterceptor=void 0,z(this).updateCoordinator=new iz(U),z(this).activityRegistry=new o9,z(this).activityRegistriesByWorkflow=new Map,z(this).workflowDefinitionsByName=new Map,z(this).workflowTypeByWorkflowId=new Map,z(this).activityWorkerDispatcher=null,z(this).checkpoints=new Map,z(this).broadcastChannel=null,z(this).pendingNestingDepth=void 0,z(this).pendingParentHeaders=void 0,z(this).pendingExecutionStateOwnerId=void 0,z(this).workflowNestingDepths=new Map,z(this).workflowHeaders=new Map,z(this).workflowStateWriteChains=new Map,z(this).finalizationRegistry=new FinalizationRegistry(OR(z(this).handleCache)),z(this).options=J,z(this).scheduler=new Y7({storage:U,onTimerFired:(D)=>mB(z(this),D,this.#V()),getNow:G,commitTimerCleanup:(D)=>C$(z(this),D,[],()=>Error("Timer cleanup lost its fenced CAS race"))}),z(this).strategy=X.strategy,z(this).inlineStrategy=X.inlineStrategy,z(this).queuedInlineWorkflowStarts=[],z(this).queuedInlineWorkflowStartIds=new Set,z(this).queuedOrLaunchingInlineWorkflowStartIds=new Set,z(this).queuedInlineWorkflowStartFlushScheduled=!1;let Q=new WeakRef(this),Z=X.inlineStrategy!==null?new MessageChannel:null;if(z(this).queuedInlineWorkflowStartChannel=Z,Z!==null)Z.port1.onmessage=BI(Q,Z);z(this).heartbeatDetails=new Map,z(this).lastHeartbeatDetailsByStep=new Map,z(this).workflowServices=new Map,z(this).pendingAsyncActivities=new Map,z(this).pendingAsyncActivityResolutions=new Map,z(this).pendingStarts=new Set,z(this).pendingScheduleCreations=new Set,z(this).workflowsNeedingTerminalCleanup=new Set,z(this).reviewCoordinator=new dz(U,G),z(this).reviewWaiters=new Map,z(this).reviewWaitersByWorkflow=new Map,z(this).reviewEscalationHandlers=new Map,z(this).workflowReviewIds=new Map,z(this).parkedInlineWorkflows=new Set,z(this).terminalizingWorkflows=new Set,z(this).deliveredPendingUpdateIds=new Map,z(this).cancelHandlersByWorkflow=new Map,z(this).reviewTimerIds=new Map,z(this).pendingWebhooks=new Set,z(this).pendingTimelineEntries=new Map,z(this).pendingAtomicWorkflowCommitSideEffects=new Map,z(this).cleanupIntervalDisposalTracker=null;let Y={disposed:!1,cleanupInterval:null,secondInstanceDetectionInterval:null,testToken:jI()},j=setInterval(FI(Q,Y),60000);Y.cleanupInterval=j,z(this).cleanupInterval=j,z(this).cleanupIntervalDisposalTracker=Y,IQ.register(this,Y,Y),z(this).retentionSweepInterval=null,z(this).retentionSweepInFlight=null,z(this).nextRetentionSweepAt=null,z(this).secondInstanceDetectionInterval=null,z(this).secondInstanceDetector=null,z(this).leaseManager=null,z(this).inFlightLeaseAcquire=null,z(this).deposed=!1,z(this).tearDownAfterDeposition=()=>{this.#U()},z(this).eventLogHeads=new Map,z(this).workflowFeedListeners=new Map,z(this).workflowVersionTuples=new Map,z(this).workflowVisibilityWatermark=void 0,z(this).workflowVisibilityWatermarkExpiresAt=void 0,z(this).activityWorkerDispatcher=UI($?.activityExecution),z(this).strategy.onMessage(this.#B.bind(this)),z(this).alertManager=GI(this,$?.alerts,G),this.#Q(),this.#G()}addEventListener($,U,G){super.addEventListener($,U,G)}removeEventListener($,U,G){super.removeEventListener($,U,G)}async#$(){let $=z(this);if($.options.ownershipMode!=="lease")return;if($.disposed)throw new D4;if($.inFlightLeaseAcquire!==null){await $.inFlightLeaseAcquire;return}if($.leaseManager!==null)return;q$($.storage,"conditionalBatch","ownership: 'lease'");let U=OI({storage:$.storage,holderId:crypto.randomUUID(),getNow:$.options.getNow,ttlMs:$.options.leaseTtlMs,renewIntervalMs:$.options.leaseRenewIntervalMs,waitTimeoutMs:$.options.leaseWaitTimeoutMs,onLeaseLost:(J)=>{if(J==="deposed"){v3($);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.",YB)}});$.leaseManager=U;let G=(async()=>{try{await U.acquire()}catch(J){if($.leaseManager===U)$.leaseManager=null;throw J}if($.disposed){if(await U.release(),$.leaseManager===U)$.leaseManager=null;throw new D4}U.startRenewal()})();$.inFlightLeaseAcquire=G;try{await G}finally{if($.inFlightLeaseAcquire===G)$.inFlightLeaseAcquire=null}}#U(){let $=z(this);if($.disposed)return;let U=$.leaseManager;yQ($),U?.release().catch(()=>{})}#G(){let $=z(this);if(!$.options.secondInstanceDetectionEnabled)return;let U=EI({storage:$.storage,instanceId:crypto.randomUUID(),getNow:$.options.getNow,intervalMs:$.options.secondInstanceHeartbeatIntervalMs});$.secondInstanceDetector=U;let G=$.cleanupIntervalDisposalTracker;if(G===null)return;let J=new WeakRef(this),X=setInterval(SI(KI(J),G),$.options.secondInstanceHeartbeatIntervalMs);$.secondInstanceDetectionInterval=X,G.secondInstanceDetectionInterval=X}#J(){return RQ(z(this))}#X(){TQ(z(this))}#Q(){EQ(z(this),{hasConfiguredRetention:()=>this.#J(),runRetentionSweep:()=>this.#Z(),setNextRetentionSweepAt:()=>this.#X()})}async#Z(){return SQ(z(this),($,U)=>this.#j().handleCleanupError($,U),($)=>d4(z(this),$,this.#j()))}#Y(){return t$(this)}#j(){return z$(this)}#D(){return ZQ(this)}#_(){return n4(this)}#H(){return MG(this)}#L(){return C8(this)}#V(){return PQ(this)}#z($){return t5(z(this),$,this.#D())}get state(){let $=z(this).storage;return{execution:(U,G,J)=>new i2($,V.stateExecution(U,G),J),workflow:(U,G,J)=>new i2($,V.stateWorkflow(U,G),J)}}async#B($){return Jg(z(this),$,this.#H())}#F($){return U0(z(this),$,this.#_())}register($){if(VI($))return this.#K($),gQ(this);return Rb(z(this),$,this.#D()),gQ(this)}registerWorkflows($){for(let[U,G]of Object.entries($)){if(U!==G.name)throw new f0("workflow",U,G.name);this.register(G)}return gQ(this)}addInterceptor($){z(this).interceptors.push($),z(this).composedWorkflowInterceptor=void 0,z(this).composedActivityInterceptor=void 0}#K($){z(this).activityRegistry.register($.name,$)}resolveRegisteredActivity($){return z(this).activityRegistry.resolve($)}registerActivityFunction($,U,G){z(this).activityRegistry.register($,U,G)}unregisterRegisteredActivity($){z(this).activityRegistry.unregister($)}getWorkflowDefinition($){let U=z(this).registrations.get($);return U===void 0?void 0:MF($,U)}listWorkflowDefinitions(){return[...z(this).registrations.entries()].map(([$,U])=>MF($,U))}getActivityDefinition($){return z(this).activityRegistry.getDefinition($)}listActivityDefinitions(){return z(this).activityRegistry.listDefinitions()}async start($,U,G){if(h3(z(this)),G?.idempotencyKey!==void 0)return aB(z(this),$,U,G,this.#Y());return r6(z(this),$,U,G,void 0,this.#Y())}async startOrSignal($,U,G,J){return h3(z(this)),tB(z(this),$,U,G,J,this.#P())}#P(){return{...this.#Y(),signalExistingWorkflow:($,U,G,J)=>this.signal($,U,G,{signalId:J})}}getHandle($){let U=z(this).handleCache.get($);if(U){let G=U.ref.deref();if(G)return G}return I5(z(this),$)}async list($,U){return QE(z(this),$,U)}async aggregate($,U){return pC(z(this),$,U)}getRetentionOverview(){return Xg(z(this),($)=>GF(z(this),$))}async purge($){return CE(z(this),$,(U)=>d4(z(this),U,this.#j()))}async cancelAll($,U){return RE(z(this),$,U)}async retryFailedAll($,U){return TE(z(this),$,U)}async signalAll($,U,G,J){if(J===void 0)return SB(z(this),$,U,G);return SB(z(this),$,U,G,J)}async deleteAll($,U){return EE(z(this),$,(G)=>d4(z(this),G,this.#j()),U)}async tagAll($,U,G){return SE(z(this),$,U,G)}async untagAll($,U,G){return bE(z(this),$,U,G)}async schedule($,U,G,J){if(typeof $==="object"){let X=$,Q=typeof X.workflow==="string"?X.workflow:X.workflow.name,Z=X.every!==void 0?{every:X.every}:{cron:X.cron??""};return IW(z(this),Q,X.input,Z,{...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(G===void 0)throw Error("A cron string or schedule spec must be provided when scheduling by workflow type.");return IW(z(this),$,U,G,J)}async getSchedule($){let U=X0($,"scheduleId"),G=await DU(z(this),U);return G?Wx(G):null}async listSchedules($){return zx(z(this),$)}async pauseSchedule($){return Fx(z(this),$)}async resumeSchedule($){return Kx(z(this),$)}async cancelSchedule($){return Px(z(this),$)}async updateSchedule($,U){return Mx(z(this),$,U)}[y3]($){return vE(z(this),$)}[xI](){return z(this).parkedInlineWorkflows.size}[vI](){return z(this).signalWaiters.size}[gI](){return z(this).sleepResolvers.size}async signal($,U,G,J){return FT(z(this),$,R6(U),G,{loadWorkflowState:(X)=>J$(z(this),X),dispatchEvent:(X)=>this.dispatchEvent(X),broadcast:(X)=>this.#F(X),getComposedInterceptor:()=>a6(z(this)),resumeParkedInlineWorkflow:(X)=>F4(CQ(z(this),X,this.#H()))},J)}async update($,U,G,J){return qT(z(this),$,R6(U),G,J,this.#L())}async query($,U,G){return RI(z(this),$,R6(U),G)}async getStreamChunks($,U,G){return hv(z(this),$,U,G)}async getOffload($,U){return Cv(z(this),$,U)}async fork($,U){return h3(z(this)),jW(z(this),$,U,this.#Y())}async resume($){return h3(z(this)),s5(z(this),$,this.#Y())}async recoverAll($){if(await this.#$(),z(this).disposed)throw new D4;return await xR(z(this)),await Bx(z(this)),YW(z(this),this.#Y(),$)}async completeAsyncActivity($,U){await IR(z(this),$,U,{feedOperationResult:(G,J)=>s6(z(this),G,J),finalizeTimeline:(G,J,X)=>K4(z(this),G,J,X)})}async failAsyncActivity($,U){await yR(z(this),$,U,{feedOperationResult:(G,J,X)=>s6(z(this),G,J,X),finalizeTimeline:(G,J,X)=>K4(z(this),G,J,X)})}async cancel($){await WW(z(this),$,this.#j())}async suspend($){await CW(z(this),$,this.#j())}async timeout($){await FW(z(this),$,this.#j())}async get($){let U=await J$(z(this),$);if(U?.status==="running"&&Wb(z(this),$))return{...U,status:"pending"};return U}async getCurrentCheckpointStep($){let U=z(this).checkpoints.get($);if(U!==void 0)return U.step;let G=await z(this).storage.get(V.checkpoint($));if(G===null)return null;return I$(G).step}async getAttributes($){return HE(z(this),$)}async setAttributes($,U){return _E(z(this),$,U)}async addTags($,...U){return LE(z(this),$,...U)}async removeTags($,...U){return VE(z(this),$,...U)}async getEvents($){return Zg(z(this),$)}async*replayWorkflowFeed($,U,G){yield*vv(z(this),$,U,G)}async snapshotWorkflowFeedTail($,U){return gv(z(this),$,U)}subscribeWorkflowFeedCommits($,U,G){return Iv(z(this),$,U,G)}async listCheckpoints($){return Yg(z(this),$)}async getCheckpointAt($,U){return jg(z(this),$,U)}async getTimeline($){return Dg(z(this),$)}async replayTo($,U){return Hg(z(this),$,U)}async listReviews($){return hb(z(this),$)}async getReview($,U){return yb(z(this),$,U)}async submitReview($,U){return mb(z(this),$,U,{dispatchEvent:this.dispatchEvent.bind(this)})}async getUpdateResult($){return OT(z(this),$)}async submitCoordinatedUpdate($,U,G,J){return AT(z(this),$,U,G,J,this.#L())}[Symbol.dispose](){let $=z(this).leaseManager;yQ(z(this)),$?.release()}async[Symbol.asyncDispose](){if(!z(this).disposed){let $=z(this).leaseManager;try{await WI(this)}finally{yQ(z(this)),await z(this).inFlightLeaseAcquire?.catch(()=>{}),await $?.release()}return}this[Symbol.dispose]()}get storage(){return z(this).storage}get scheduler(){return z(this).scheduler}async fireTimer($){await mB(z(this),$,this.#V())}}});var _2$={};J4(_2$,{shouldEmitEngineLeakWarningForTesting:()=>LI,setNextEngineLeakWarningTokenForTesting:()=>YI,setEngineLeakWarningOverrideForTesting:()=>ZI,hasEngineLeakWarningTokenForTesting:()=>HI,getEngineLeakCollectionCountForTesting:()=>DI,clearEngineLeakWarningTokenForTesting:()=>_I,assertCompatiblePersistedDataVersion:()=>CF,WorkflowTypeNotRegisteredForRecoveryError:()=>k0,WorkflowTeardownPendingError:()=>s9,WorkflowSuspendNotSupportedError:()=>w0,WorkflowNotRegisteredError:()=>T6,WorkflowNotFoundError:()=>m4,WorkflowHandle:()=>m3,WorkflowConcurrencyLimitExceededError:()=>a9,WorkflowAlreadyExistsError:()=>p$,StartOrSignalConflictError:()=>u0,ScheduleHandle:()=>zG,PersistedDataIncompatibleError:()=>V1,IdempotencyKeyPurgedError:()=>f6,HANDLE_RESULT_PROMISE:()=>y3,EngineLeaseNotHeldError:()=>g3,EngineLeaseCorruptedError:()=>ZU,EngineLeaseAcquisitionTimeoutError:()=>G8,EngineDisposedError:()=>D4,EngineCreateNameMismatchError:()=>f0,Engine:()=>RF,ENGINE_SLEEP_RESOLVER_COUNT_FOR_TESTING:()=>gI,ENGINE_SIGNAL_WAITER_COUNT_FOR_TESTING:()=>vI,ENGINE_PARKED_WORKFLOW_COUNT_FOR_TESTING:()=>xI,ENGINE_LEASE_LOST_WARNING_NAME:()=>YB,BulkOperationConfirmationError:()=>j6,BulkDeleteRequiresTerminalWorkflowsError:()=>z1,AsyncActivityTokenNotFoundError:()=>t2,ActivityResolutionError:()=>t9,ActivityReconciliationIndeterminateError:()=>t6,ActivityReconciliationConflictError:()=>_Q,ActivityReconciliationCapabilityError:()=>HQ});var L0=B(()=>{II()});function MU($){return $!==null&&typeof $==="object"&&!Array.isArray($)}function W0($){if($===null||typeof $==="string"||typeof $==="boolean"||typeof $==="number"&&Number.isFinite($))return!0;if(Array.isArray($))return $.every(W0);if(!MU($))return!1;return Object.values($).every(W0)}function h$($){return typeof $==="string"&&$.length>0}function kZ($){return Array.isArray($)&&$.every(h$)}function VP($){if(!MU($))return!1;return Object.values($).every((U)=>typeof U==="string")}function zP($){if(!MU($))return!1;return Object.values($).every(W0)}function NU($){return typeof $==="number"&&Number.isFinite($)}function t($,U,G){return{ok:!1,error:{code:$,message:U,...G!==void 0?{requestedProtocolVersion:G}:{}}}}function fZ($,U,G){let J={};for(let[X,Q,Z,Y]of G){let j=U[X];if(j===void 0){if(Q)return{ok:!1,error:t($,Y)};continue}if(!Z(j))return{ok:!1,error:t($,Y)};J[X]=j}return{ok:!0,values:J}}var O4=2,mw=2,kw=2,wZ=[2];var cZ={$ref:"#/$defs/jsonValue"},BP={type:"object",additionalProperties:cZ},fw={type:"object",additionalProperties:{type:"string"}},uZ={const:O4},pZ={register:{type:"object",additionalProperties:!1,required:["type","protocolVersion","workerId","activities"],properties:{type:{const:"register"},protocolVersion:uZ,workerId:{type:"string",minLength:1},activities:{type:"array",items:{type:"string",minLength:1}},concurrency:{type:"number",minimum:1,maximum:1000},queue:{type:"string",minLength:1},deploymentName:{type:"string",minLength:1},buildId:{type:"string",minLength:1},runtimeVersion:{type:"string",minLength:1},gitSha:{type:"string",minLength:1},startedAt:{type:"number"},capabilities:BP}},heartbeat:{type:"object",additionalProperties:!1,required:["type","workerId"],properties:{type:{const:"heartbeat"},workerId:{type:"string",minLength:1}}},taskResult:{oneOf:[{type:"object",additionalProperties:!1,required:["type","operationId","status","value"],properties:{type:{const:"taskResult"},operationId:{type:"string",minLength:1},status:{const:"completed"},value:cZ,attemptToken:{type:"string",minLength:1}}},{type:"object",additionalProperties:!1,required:["type","operationId","status","error"],properties:{type:{const:"taskResult"},operationId:{type:"string",minLength:1},status:{const:"failed"},error:{type:"string"},attemptToken:{type:"string",minLength:1}}},{type:"object",additionalProperties:!1,required:["type","operationId","status","error"],properties:{type:{const:"taskResult"},operationId:{type:"string",minLength:1},status:{const:"cancelled"},error:{type:"string"},cancelled:{const:!0},attemptToken:{type:"string",minLength:1}}}]},task:{type:"object",additionalProperties:!1,required:["type","operationId","activityName","input"],properties:{type:{const:"task"},operationId:{type:"string",minLength:1},activityName:{type:"string",minLength:1},input:cZ,attempt:{type:"number",minimum:1},headers:fw,attemptToken:{type:"string",minLength:1}}},cancel:{type:"object",additionalProperties:!1,required:["type","operationId"],properties:{type:{const:"cancel"},operationId:{type:"string",minLength:1}}},shutdown:{type:"object",additionalProperties:!1,required:["type"],properties:{type:{const:"shutdown"}}},registerAck:{type:"object",additionalProperties:!1,required:["type","protocolVersion","workerId","queue","activities","concurrency"],properties:{type:{const:"registerAck"},protocolVersion:uZ,workerId:{type:"string",minLength:1},queue:{type:"string",minLength:1},activities:{type:"array",items:{type:"string",minLength:1}},concurrency:{type:"number",minimum:1,maximum:1000}}},registerError:{type:"object",additionalProperties:!1,required:["type","code","message","supportedProtocolVersions"],properties:{type:{const:"registerError"},code:{enum:["invalid_registration","unsupported_protocol_version"]},message:{type:"string"},supportedProtocolVersions:{type:"array",items:uZ},requestedProtocolVersion:{type:"number"}}},protocolError:{type:"object",additionalProperties:!1,required:["type","code","message"],properties:{type:{const:"protocolError"},code:{enum:["invalid_json","invalid_message","unknown_message_type","registration_required"]},message:{type:"string"}}}},ww={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://weft.dev/schemas/remote-worker-protocol.v1.json",title:"Weft RemoteWorker Protocol v1",oneOf:Object.keys(pZ).map(($)=>({$ref:`#/$defs/messages/${$}`})),$defs:{jsonValue:{oneOf:[{type:"null"},{type:"boolean"},{type:"number"},{type:"string"},{type:"array",items:{$ref:"#/$defs/jsonValue"}},{type:"object",additionalProperties:{$ref:"#/$defs/jsonValue"}}]},jsonObject:BP,messages:pZ}};function dZ($){let U=$.attemptToken;if(U===void 0)return{ok:!0,message:{}};if(!h$(U))return t("invalid_message","taskResult.attemptToken must be a non-empty string when present");return{ok:!0,message:{attemptToken:U}}}function uw($,U){let G=U.value;if(!W0(G))return t("invalid_message","completed taskResult.value must be valid JSON");let J=dZ(U);if(!J.ok)return J;return{ok:!0,message:{type:"taskResult",operationId:$,status:"completed",value:G,...J.message}}}function cw($,U){let G=U.error;if(typeof G!=="string")return t("invalid_message","failed taskResult.error must be a string");let J=dZ(U);if(!J.ok)return J;return{ok:!0,message:{type:"taskResult",operationId:$,status:"failed",error:G,...J.message}}}function pw($,U){let G=U.error;if(typeof G!=="string")return t("invalid_message","cancelled taskResult.error must be a string");let J=U.cancelled;if(J!==void 0&&J!==!0)return t("invalid_message","taskResult.cancelled must be true when present");let X=dZ(U);if(!X.ok)return X;return{ok:!0,message:{type:"taskResult",operationId:$,status:"cancelled",error:G,...J===!0?{cancelled:J}:{},...X.message}}}var dw={completed:uw,failed:cw,cancelled:pw};function lw($){return $==="completed"||$==="failed"||$==="cancelled"}function WP($){let U=$.operationId;if(!h$(U))return t("invalid_message","taskResult.operationId must be a non-empty string");let G=$.status;if(!lw(G))return t("invalid_message","taskResult.status must be completed, failed, or cancelled");return dw[G](U,$)}var iw=new Set(["register","heartbeat","taskResult"]),nw=new Set(["registerAck","registerError","protocolError","task","cancel","shutdown"]);function rw($){if($===O4)return{ok:!0,message:$};let U=NU($)?$:void 0;return t("unsupported_protocol_version",`Unsupported RemoteWorker protocol version: ${String($)}`,U)}var ow=[["workerId",!0,h$,"register.workerId must be a non-empty string"],["activities",!0,kZ,"register.activities must be an array of non-empty strings"],["concurrency",!1,NU,"register.concurrency must be a finite number"],["queue",!1,h$,"register.queue must be a non-empty string"],["deploymentName",!1,h$,"register.deploymentName must be a non-empty string when present"],["buildId",!1,h$,"register.buildId must be a non-empty string when present"],["runtimeVersion",!1,h$,"register.runtimeVersion must be a non-empty string when present"],["gitSha",!1,h$,"register.gitSha must be a non-empty string when present"],["startedAt",!1,NU,"register.startedAt must be a finite number when present"],["capabilities",!1,zP,"register.capabilities must be a JSON object when present"]];function sw($){let U=rw($.protocolVersion);if(!U.ok)return U;let G=fZ("invalid_registration",$,ow);if(!G.ok)return G.error;return{ok:!0,message:{type:"register",protocolVersion:U.message,...G.values}}}function aw($){let U=$.workerId;if(!h$(U))return t("invalid_message","heartbeat.workerId must be a non-empty string");return{ok:!0,message:{type:"heartbeat",workerId:U}}}var tw=[["operationId",!0,h$,"task.operationId must be a non-empty string"],["activityName",!0,h$,"task.activityName must be a non-empty string"],["input",!0,W0,"task.input must be valid JSON"],["attempt",!1,NU,"task.attempt must be a finite number"],["headers",!1,VP,"task.headers must be a string map"],["attemptToken",!1,h$,"task.attemptToken must be a non-empty string"]];function ew($){let U=fZ("invalid_message",$,tw);if(!U.ok)return U.error;return{ok:!0,message:{type:"task",...U.values}}}function $u($){let U=$.operationId;if(!h$(U))return t("invalid_message","cancel.operationId must be a non-empty string");return{ok:!0,message:{type:"cancel",operationId:U}}}function Uu(){return{ok:!0,message:{type:"shutdown"}}}function Gu($){let U=$.protocolVersion;if(U!==O4)return t("invalid_message",`registerAck.protocolVersion must be ${String(O4)}`);let{workerId:G,queue:J,activities:X,concurrency:Q}=$;if(!h$(G))return t("invalid_message","registerAck.workerId must be a non-empty string");if(!h$(J))return t("invalid_message","registerAck.queue must be a non-empty string");if(!kZ(X))return t("invalid_message","registerAck.activities must be a string array");if(typeof Q!=="number"||!Number.isFinite(Q))return t("invalid_message","registerAck.concurrency must be a finite number");return{ok:!0,message:{type:"registerAck",protocolVersion:U,workerId:G,queue:J,activities:X,concurrency:Q}}}function Ju($){let{code:U,message:G,supportedProtocolVersions:J,requestedProtocolVersion:X}=$;if(U!=="invalid_registration"&&U!=="unsupported_protocol_version")return t("invalid_message","registerError.code is not recognized");if(typeof G!=="string")return t("invalid_message","registerError.message must be a string");if(!Array.isArray(J)||!J.every((Z)=>Z===O4))return t("invalid_message","registerError.supportedProtocolVersions is invalid");if(X!==void 0&&!NU(X))return t("invalid_message","registerError.requestedProtocolVersion must be a finite number");return{ok:!0,message:{type:"registerError",code:U,message:G,supportedProtocolVersions:J,...X!==void 0?{requestedProtocolVersion:X}:{}}}}function Xu($){let{code:U,message:G}=$;if(U!=="invalid_json"&&U!=="invalid_message"&&U!=="unknown_message_type"&&U!=="registration_required")return t("invalid_message","protocolError.code is not recognized");if(typeof G!=="string")return t("invalid_message","protocolError.message must be a string");return{ok:!0,message:{type:"protocolError",code:U,message:G}}}function FP($){if(!MU($))return t("invalid_message","Worker protocol message must be a JSON object");let U=$.type;if(typeof U!=="string")return t("invalid_message","Worker protocol message.type must be a string");if(!iw.has(U))return t("unknown_message_type",`Unknown worker message type: ${U}`);switch(U){case"register":return sw($);case"heartbeat":return aw($);case"taskResult":return WP($);default:return t("unknown_message_type",`Unknown worker message type: ${U}`)}}function WZ$($){if(!MU($))return t("invalid_message","Server protocol message must be a JSON object");let U=$.type;if(typeof U!=="string")return t("invalid_message","Server protocol message.type must be a string");if(!nw.has(U))return t("unknown_message_type",`Unknown server message type: ${U}`);switch(U){case"registerAck":return Gu($);case"registerError":return Ju($);case"protocolError":return Xu($);case"task":return ew($);case"cancel":return $u($);case"shutdown":return Uu();default:return t("unknown_message_type",`Unknown server message type: ${U}`)}}u();Y$();a();var JY=["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"],Dc=new Set(JY);function eP($){return Dc.has($)}function $M($){let U=new Set;tP($.scope,U),tP($.scp,U);let G=$.permissions;if(Array.isArray(G)){for(let J of G)if(typeof J==="string"&&eP(J))U.add(J)}return U}function tP($,U){if(typeof $!=="string")return;if($.trim().length===0)return;for(let G of $.split(/\s+/)){if(G.length===0)continue;if(eP(G))U.add(G)}}function UM($){let U=$M($),G=typeof $.sub==="string"?$.sub:void 0;return{method:"jwt",scopes:U,claims:$,subject:G,hasScope(J){return U.has(J)}}}function dU($){let U=new Set($.scopes);return{method:"api-key",scopes:U,claims:void 0,subject:$.subject,hasScope(G){return U.has(G)}}}function GM($){let U=new Set($.scopes);return{method:"mtls",scopes:U,claims:void 0,subject:$.subject,hasScope(G){return U.has(G)}}}function K0(){return Hc}function Xj$(){let $=new Set(JY);return{method:"stdio-local",scopes:$,claims:void 0,subject:"stdio-local",hasScope(U){return $.has(U)}}}var Hc={method:"unauthenticated"};function K$($){return $.method!=="unauthenticated"}a();var e="2.0",U$=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 lU($){if($===null)return!0;if(typeof $==="string")return!0;if(typeof $==="number"&&Number.isFinite($))return!0;return!1}var E4="0.5.0";a();class J6 extends I{constructor($){super("McpToolExecutionError",$)}}function M6($,U,G){if(!$.authRequired)return;if(!K$($.principal))throw new J6(`${G} requires authentication`);if(!$.principal.hasScope(U))throw new J6(`${G} requires ${U}`)}async function sG($,U){return $.get(U)}async function r8($,U){return $.list(U)}var P0="2025-11-25",S4="tools/list",JM="notifications/tools/list_changed",aG="resources/list",tG="resources/templates/list",XM=1048576;function QM($,U){return{jsonrpc:e,id:$,result:U}}function o8($,U,G,J){return{jsonrpc:e,id:$,error:J===void 0?{code:U,message:G}:{code:U,message:G,data:J}}}function eG($,U,G){return o8($,U$.INVALID_PARAMS,U,G)}function ZM($,U){return o8($,U$.METHOD_NOT_FOUND,`Unknown MCP method: ${U}`,{method:U})}function YM($){return o8($,U$.INTERNAL_ERROR,"Internal error")}function XY($,U){return o8($,-32002,"Resource not found",{uri:U})}function QY($,U){return o8($,-32011,U,{reason:U})}function $J($){if($===null||typeof $!=="object"||Array.isArray($))return!1;let U=$;if(U.jsonrpc!==e)return!1;return typeof U.method==="string"}function UJ($){return $.id===void 0}function M0($){if($===void 0||$===null)return;return typeof $==="number"?`number:${String($)}`:`string:${$}`}function jM($){try{return{ok:!0,value:JSON.parse($)}}catch{return{ok:!1}}}function DM($){let[U=""]=$.trim().toLowerCase().split(";");return U.trim()==="application/json"}function ZY($,U){if($===null||$.trim().length===0)return!0;return $.split(",").map((G)=>G.split(";")[0]?.trim().toLowerCase()??"").some((G)=>G==="*/*"||G===U)}var _c=["pending","running","completed","failed","cancelled","timed-out","suspended"];function YY($){if(!Fc($))return{ok:!1,message:"List filter must be a JSON object"};let U=Lc($.status),G=Vc($.type,"type"),J=zc($.tags,"tags"),X=HM($.limit,"limit"),Q=HM($.offset,"offset"),Z=Bc([U,G,J,X,Q]);if(Z!==void 0)return Z;return{ok:!0,filter:Wc({status:s8(U),type:s8(G),tags:s8(J),limit:s8(X),offset:s8(Q)})}}function LM($){let U={},G=$.getAll("status");if(G.length===1)U.status=G[0];if(G.length>1)U.status=G;let J=$.get("type");if(J!==null)U.type=J;let X=$.getAll("tag");if(X.length>0)U.tags=X;let Q=$.get("limit");if(Q!==null)U.limit=Number(Q);let Z=$.get("offset");if(Z!==null)U.offset=Number(Z);return YY(U)}function Lc($){if($===void 0)return{ok:!0};if(typeof $==="string")return _M($)?{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 G of $){if(typeof G!=="string"||!_M(G))return{ok:!1,message:"List filter status array contains an invalid workflow status"};U.push(G)}return{ok:!0,value:U}}function Vc($,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 zc($,U){if($===void 0)return{ok:!0};if(!Array.isArray($))return{ok:!1,message:`List filter ${U} must be an array`};let G=[];for(let J of $){if(typeof J!=="string")return{ok:!1,message:`List filter ${U} must contain only strings`};G.push(J)}return{ok:!0,value:G}}function HM($,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 Bc($){for(let U of $)if(!U.ok)return U;return}function s8($){return $.ok?$.value:void 0}function Wc($){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 _M($){return _c.some((U)=>U===$)}function Fc($){return $!==null&&typeof $==="object"&&!Array.isArray($)}function VM(){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 zM($){return M6($,"workflows:read","Listing workflow resources"),(await r8($.engine,{})).items.map((G)=>({uri:a8(G.id,"state"),name:`workflow_${G.id}`,title:`${G.type} workflow ${G.id}`,description:`Current state for workflow ${G.id}.`,mimeType:"application/json"}))}async function jY($,U){M6(U,"workflows:read","Reading workflow resources");let G=FM($);if(G===null)return null;if(G.kind==="search"){let X=await r8(U.engine,G.filter);return GJ($,X)}let J=await sG(U.engine,G.workflowId);if(J===null)return null;switch(G.kind){case"state":return GJ($,J);case"events":return M6(U,"events:read","Reading workflow events"),GJ($,{events:await U.engine.getEvents(G.workflowId)});case"checkpoints":return GJ($,{checkpoints:await U.engine.listCheckpoints(G.workflowId)})}}async function BM($,U,G){if(await jY($,G)===null)return!1;return U.subscriptions.add($),!0}function WM($,U){U.subscriptions.delete($)}function GJ($,U){return{contents:[{uri:$,mimeType:"application/json",text:JSON.stringify(U)}]}}function FM($){let U=Kc($);if(U===null)return null;if(U.pathname==="/search")return Pc(U.searchParams);return Mc(U.pathname)}function Kc($){let U;try{U=new URL($)}catch{return null}if(U.protocol!=="weft:"||U.hostname!=="workflows")return null;return U}function Pc($){let U=LM($);return U.ok?{kind:"search",filter:U.filter}:null}function KM($){return FM($)?.kind==="search"}function Mc($){let U=$.split("/").filter(Boolean).map(Nc);if(U.some((X)=>X===null))return null;if(U.length!==2)return null;let[G,J]=U;if(!G)return null;if(J==="state"||J==="events"||J==="checkpoints")return{kind:J,workflowId:G};return null}function a8($,U){return`weft://workflows/${encodeURIComponent($)}/${U}`}function Nc($){try{return decodeURIComponent($)}catch{return null}}y1();a();var zl=1;class O2 extends I{entityKind;entityName;direction;constructor($,U,G,J){let X=J instanceof Error?J.message:String(J);super("RegistrySchemaConversionError",`Failed to convert ${G} for ${$} "${U}": ${X}`,{cause:J});this.entityKind=$,this.entityName=U,this.direction=G}}function BO($){let U=$.listWorkflowDefinitions(),G=$.listActivityDefinitions(),J=U.toSorted((Y,j)=>{if(Y.type<j.type)return-1;if(Y.type>j.type)return 1;return 0}),X=G.toSorted((Y,j)=>{if(Y.name<j.name)return-1;if(Y.name>j.name)return 1;return 0}),Q=Object.create(null);for(let Y of J)Q[Y.type]=Bl(Y);let Z=Object.create(null);for(let Y of X)Z[Y.name]=Wl(Y);return{registryVersion:zl,workflows:Q,activities:Z}}function Bl($){let U={};if($.inputSchema!==void 0)U.inputSchema=wX("workflow",$.type,"inputSchema",$.inputSchema);if($.outputSchema!==void 0)U.outputSchema=wX("workflow",$.type,"outputSchema",$.outputSchema);if($.description!==void 0)U.description=$.description;if($.tags.length>0)U.tags=[...$.tags];return U}function Wl($){let U={queue:$.queue};if($.inputSchema!==void 0)U.inputSchema=wX("activity",$.name,"inputSchema",$.inputSchema);if($.outputSchema!==void 0)U.outputSchema=wX("activity",$.name,"outputSchema",$.outputSchema);if($.description!==void 0)U.description=$.description;return U}function wX($,U,G,J){try{return Y6(J,G==="inputSchema"?"input":"output")}catch(X){throw new O2($,U,G,X)}}y1();var WO=new WeakMap,WV=30000,BV=2147483647;function m1($){return KO($).tools.map((U)=>U.definition)}async function FO($,U,G){let J=KO(G.engine).toolsByName.get($);if(J===void 0)return uX(`Unknown tool: ${$}`);try{let X=await J.call(U??{},G);return Tl(X)}catch(X){if(X instanceof J6)return uX(X.message);if(X instanceof Error&&X.message==="Workflow cancelled")return uX(X.message);return console.warn("MCP tool execution failed:",X),uX("Tool execution failed")}}function KO($){let U=Fl($),G=WO.get($);if(G!==void 0&&Kl(G.signature,U))return G;let J=Pl($),X={signature:U,tools:J,toolsByName:new Map(J.map((Q)=>[Q.definition.name,Q]))};return WO.set($,X),X}function Fl($){return $.listWorkflowDefinitions().toSorted((U,G)=>U.type<G.type?-1:U.type>G.type?1:0).map((U)=>[U.type,U.description,U.inputSchema])}function Kl($,U){if($.length!==U.length)return!1;for(let G=0;G<$.length;G++){let J=$[G],X=U[G];if(J===void 0||X===void 0)return!1;if(J[0]!==X[0]||J[1]!==X[1]||J[2]!==X[2])return!1}return!0}function Pl($){let U=[...Rl()],G=new Set(U.map((J)=>J.definition.name));for(let J of $.listWorkflowDefinitions().toSorted((X,Q)=>X.type<Q.type?-1:X.type>Q.type?1:0)){if(J.inputSchema===void 0)continue;let X=Sl(El(J.type),G);G.add(X),U.push({definition:{name:X,title:J.type,description:J.description??`Run Weft workflow ${J.type}.`,inputSchema:Ml(J.type,J.inputSchema)},call:async(Q,Z)=>{M6(Z,"workflows:write","Calling workflow tools");let{input:Y,timeoutMs:j}=ql(Q),D=crypto.randomUUID();Z.session.trackRequest(Z.requestId,D);try{if(Z.session.isRequestCancelled(Z.requestId))throw new J6("Workflow cancelled");let _=await b0(Z.engine).start(J.type,Y,{id:D});if(Z.session.isRequestCancelled(Z.requestId))await Z.engine.cancel(_.id);let L=await Al(_,{timeoutMs:j,signal:Z.session.requestSignal(Z.requestId)});if(L.status==="timed-out")return Cl(_.id,j);return{workflowId:_.id,result:L.result}}finally{Z.session.untrackRequest(Z.requestId)}}})}return U.toSorted((J,X)=>J.definition.name<X.definition.name?-1:1)}function Ml($,U){try{return Nl(Y6(U,"input"))}catch(G){throw new O2("workflow",$,"inputSchema",G)}}function Nl($){return{type:"object",additionalProperties:!1,required:["input"],properties:{input:$,timeoutMs:{type:"integer",minimum:1,maximum:BV,default:WV,description:"Maximum milliseconds to wait for the workflow result before returning a running status."}}}}function ql($){if($===null||typeof $!=="object"||Array.isArray($))return{input:$,timeoutMs:WV};let U=$,G=Ol(U.timeoutMs);return{input:U.input,timeoutMs:G}}function Ol($){if($===void 0)return WV;if(typeof $==="number"&&Number.isSafeInteger($)&&$>=1&&$<=BV)return $;throw new J6(`Tool argument "timeoutMs" must be an integer from 1 to ${BV}`)}async function Al($,U){if(U.signal?.aborted)throw new J6("Workflow cancelled");let G,J,X=$.result().then((Y)=>({status:"completed",result:Y})),Q=new Promise((Y)=>{G=setTimeout(()=>Y({status:"timed-out"}),U.timeoutMs)}),Z=U.signal===void 0?void 0:new Promise((Y,j)=>{let D=()=>j(new J6("Workflow cancelled"));U.signal?.addEventListener("abort",D,{once:!0}),J=()=>U.signal?.removeEventListener("abort",D)});try{return await Promise.race(Z===void 0?[X,Q]:[X,Q,Z])}finally{if(G!==void 0)clearTimeout(G);J?.()}}function Cl($,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 Rl(){return[{definition:{name:"start_workflow",description:"Start a Weft workflow and return its workflow id.",inputSchema:v0({type:{type:"string"},input:{},id:{type:"string"}},["type"])},call:async($,U)=>{M6(U,"workflows:write","Starting workflows");let G=x0($),J=L1(G.type,"type"),X=G.input??{},Q=typeof G.id==="string"?{id:G.id}:void 0;return{workflowId:(await b0(U.engine).start(J,X,Q)).id}}},{definition:{name:"signal_workflow",description:"Send a signal to a Weft workflow.",inputSchema:v0({workflowId:{type:"string"},signalName:{type:"string"},payload:{}},["workflowId","signalName"])},call:async($,U)=>{M6(U,"signals:write","Signalling workflows");let G=x0($),J=L1(G.workflowId,"workflowId");return await k9(U,J),await U.engine.signal(J,L1(G.signalName,"signalName"),G.payload),{ok:!0}}},{definition:{name:"update_workflow",description:"Run an update handler on a Weft workflow.",inputSchema:v0({workflowId:{type:"string"},updateName:{type:"string"},payload:{}},["workflowId","updateName"])},call:async($,U)=>{M6(U,"updates:write","Updating workflows");let G=x0($),J=L1(G.workflowId,"workflowId");return await k9(U,J),{result:await U.engine.update(J,L1(G.updateName,"updateName"),G.payload)}}},{definition:{name:"query_workflow",description:"Run a query handler on a Weft workflow.",inputSchema:v0({workflowId:{type:"string"},queryName:{type:"string"},input:{}},["workflowId","queryName"])},call:async($,U)=>{M6(U,"queries:read","Querying workflows");let G=x0($),J=L1(G.workflowId,"workflowId");return await k9(U,J),{result:await U.engine.query(J,L1(G.queryName,"queryName"),G.input)}}},{definition:{name:"cancel_workflow",description:"Cancel a Weft workflow.",inputSchema:v0({workflowId:{type:"string"}},["workflowId"])},call:async($,U)=>{M6(U,"workflows:write","Cancelling workflows");let G=L1(x0($).workflowId,"workflowId");return await k9(U,G),await U.engine.cancel(G),{ok:!0}}},{definition:{name:"list_workflows",description:"List visible Weft workflows.",inputSchema:v0({status:{},type:{type:"string"},tags:{type:"array",items:{type:"string"}},limit:{type:"number"},offset:{type:"number"}})},call:async($,U)=>{M6(U,"workflows:read","Listing workflows");let G=YY(x0($));if(!G.ok)throw new J6(G.message);return await r8(U.engine,G.filter)}},{definition:{name:"get_workflow_state",description:"Read visible Weft workflow state.",inputSchema:v0({workflowId:{type:"string"}},["workflowId"])},call:async($,U)=>{M6(U,"workflows:read","Reading workflow state");let G=L1(x0($).workflowId,"workflowId");return await k9(U,G)}}]}async function k9($,U){let G=await sG($.engine,U);if(G===null)throw new J6(`Workflow "${U}" not found`);return G}function Tl($){return{isError:!1,content:[{type:"text",text:JSON.stringify($)}]}}function uX($){return{isError:!0,content:[{type:"text",text:$}]}}function x0($){if($!==null&&typeof $==="object"&&!Array.isArray($))return $;throw new J6("Tool arguments must be a JSON object")}function L1($,U){if(typeof $==="string"&&$.length>0)return $;throw new J6(`Tool argument "${U}" must be a non-empty string`)}function v0($,U=[]){return{type:"object",properties:$,required:[...U],additionalProperties:!1}}function El($){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 Sl($,U){if(!U.has($))return $;let G=2;while(U.has(`${$}_${String(G)}`))G+=1;return`${$}_${String(G)}`}async function PO($,U){if(!$J($))return{kind:"response",response:eG(null,"Invalid MCP JSON-RPC request")};if(UJ($)){try{await bl($,U)}catch(J){console.error(`[weft.mcp] Ignored MCP notification error for ${$.method}:`,J)}return{kind:"accepted"}}let G=$.id??null;try{let J=await vl($,U);return{kind:"response",response:QM(G,J)}}catch(J){if(J instanceof k1||J instanceof g0)return{kind:"response",response:J.toResponse(G)};if(J instanceof J6)return{kind:"response",response:QY(G,J.message)};return console.error("[weft.mcp] Unhandled MCP dispatcher error:",J),{kind:"response",response:YM(G)}}}async function bl($,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 G=cX($.params),J=U.session.cancelRequest(G.requestId);if(J!==void 0)await U.engine.cancel(J)}}var xl={initialize:async($,U)=>gl($.params,U.session),ping:async()=>({}),[S4]:async($,U)=>({tools:m1(U.engine)}),"tools/call":hl,[aG]:async($,U)=>({resources:await zM(U)}),"resources/read":yl,"resources/subscribe":ml,"resources/unsubscribe":kl,[tG]:async()=>({resourceTemplates:VM()}),"prompts/list":async()=>({prompts:[]}),"prompts/get":async()=>{throw new k1(-32002,"Prompt not found")},"logging/setLevel":async()=>({}),"completion/complete":async()=>({completion:{values:[],total:0,hasMore:!1}})};async function vl($,U){if(U.authRequired&&!K$(U.principal)&&$.method!=="initialize")throw new k1(-32011,"MCP request requires authentication");Il($,U);let G=xl[$.method];if(G===void 0)throw new g0(ZM($.id??null,$.method));return G($,U)}function gl($,U){let G=cX($),J=typeof G.protocolVersion==="string"?G.protocolVersion:void 0;return U.protocolVersion=J===P0?J:P0,U.phase="initializing",{protocolVersion:U.protocolVersion,capabilities:{tools:{listChanged:!0},resources:{subscribe:!0,listChanged:!1},prompts:{},logging:{},completions:{}},serverInfo:{name:"weft",title:"Weft",version:E4}}}function Il($,U){if($.method==="initialize"){if(U.session.phase!=="new")throw new k1(-32000,"MCP session is already initialized");return}if(U.session.phase==="new")throw new k1(-32000,"MCP session must be initialized before requests");if(U.session.phase==="initializing")throw new k1(-32000,"MCP session must receive notifications/initialized before requests")}async function hl($,U){let G=cX($.params),J=G.name;if(typeof J!=="string"||J.length===0)throw new g0(eG($.id??null,"tools/call requires name"));return FO(J,G.arguments??{},{...U,requestId:$.id})}async function yl($,U){let G=FV($),J=await jY(G,U);if(J===null)throw new g0(XY($.id??null,G));return J}async function ml($,U){let G=FV($);if(!await BM(G,U.session,U))throw new g0(XY($.id??null,G));return{}}function kl($,U){let G=FV($);return WM(G,U.session),{}}function FV($){let G=cX($.params).uri;if(typeof G!=="string"||G.length===0)throw new g0(eG($.id??null,`${$.method} requires uri`));return G}function cX($){if($===void 0)return{};if($!==null&&typeof $==="object"&&!Array.isArray($))return $;throw new k1(U$.INVALID_PARAMS,"MCP params must be an object")}class k1 extends I{jsonRpcCode;data;constructor($,U,G){super("McpProtocolError",U);this.jsonRpcCode=$,this.data=G}toResponse($){if(this.jsonRpcCode===-32011)return QY($,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 g0 extends I{response;constructor($){super("McpResponseError",$.error?.message??"MCP response error");this.response=$}toResponse($){return this.response}}Y$();a();class f9 extends I{constructor(){super("McpSessionLimitExceededError","Too many MCP sessions")}}var MO=["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 qO{id;principal;token;phase="new";protocolVersion="2025-11-25";subscriptions=new Set;createdAtMilliseconds;lastActivityMilliseconds;#$=new Map;#U=new Set;#G=new Set;constructor($,U,G=Date.now()){this.id=$,this.principal=U,this.token=crypto.randomUUID(),this.createdAtMilliseconds=G,this.lastActivityMilliseconds=G}touch($=Date.now()){this.lastActivityMilliseconds=$}isIdleExpired($,U){return $-this.lastActivityMilliseconds>U}trackRequest($,U){let G=M0(A2($));if(G===void 0)return;this.#$.set(G,{workflowId:U,abortController:new AbortController})}cancelRequest($){let U=M0(A2($));if(U===void 0)return;let G=this.#$.get(U);if(G===void 0)return;return this.#U.add(U),G.abortController.abort(),G.workflowId}isRequestCancelled($){let U=M0(A2($));return U!==void 0&&this.#U.has(U)}requestSignal($){let U=M0(A2($));if(U===void 0)return;return this.#$.get(U)?.abortController.signal}untrackRequest($){let U=M0(A2($));if(U===void 0)return;this.#$.delete(U),this.#U.delete(U)}workflowForRequest($){let U=M0(A2($));if(U===void 0)return;return this.#$.get(U)?.workflowId}addTarget($){return this.#G.add($),()=>{this.#G.delete($)}}notify($,U){let G=U===void 0?{jsonrpc:"2.0",method:$}:{jsonrpc:"2.0",method:$,params:U};for(let J of this.#G)J(G)}close(){this.#$.clear(),this.#U.clear(),this.subscriptions.clear(),this.#G.clear()}}function A2($){if($===void 0)return;if($===null||typeof $==="string")return $;if(typeof $==="number"&&Number.isFinite($))return $;return}class OO{#$;#U=new Map;#G;#J;#X;#Q;#Z;#Y;constructor($,U={}){this.#$=$,this.#X=U.maximumSessions??1024,this.#Q=U.sessionIdleTimeoutMilliseconds??1800000,this.#Z=U.currentTimeMilliseconds??Date.now,this.#Y=NO($),this.#G=(G)=>{let J=G.workflowId;if(typeof J!=="string")return;this.#j(J)},this.#J=()=>{this.#D()};for(let G of MO)this.#$.addEventListener(G,this.#G);this.#$.addEventListener(F0.type,this.#J)}create($){if(this.#_(),this.#U.size>=this.#X)throw new f9;let U=this.#Z(),G=new qO(crypto.randomUUID(),$,U);return this.#U.set(G.id,G),G}add($){if(this.#_(),this.#U.size>=this.#X)throw new f9;return $.touch(this.#Z()),this.#U.set($.id,$),$}get($){return this.#_(),this.#U.get($)}touch($){if(this.#U.get($.id)!==$)return;$.touch(this.#Z())}delete($){this.#U.get($)?.close(),this.#U.delete($)}closeAll(){for(let $ of this.#U.values())$.close();this.#U.clear()}#j($){let U=[a8($,"state"),a8($,"events"),a8($,"checkpoints")],G=this.#Z();for(let J of this.#U.values()){let X=new Set;for(let Z of U){if(!J.subscriptions.has(Z))continue;X.add(Z)}let Q=[...J.subscriptions].filter(KM);for(let Z of Q)X.add(Z);if(X.size===0)continue;J.touch(G);for(let Z of X)J.notify("notifications/resources/updated",{uri:Z})}this.#_()}#D(){let $=NO(this.#$);if(fl(this.#Y,$))return;this.#Y=$;let U=this.#Z();for(let G of this.#U.values()){if(G.phase!=="ready")continue;G.touch(U),G.notify(JM)}this.#_()}#_(){let $=this.#Z();for(let[U,G]of this.#U){if(!G.isIdleExpired($,this.#Q))continue;G.close(),this.#U.delete(U)}}async[Symbol.asyncDispose](){for(let $ of MO)this.#$.removeEventListener($,this.#G);this.#$.removeEventListener(F0.type,this.#J),this.closeAll()}}function NO($){return m1($).map((U)=>[U.name,U.title,U.description,JSON.stringify(U.inputSchema)??""])}function fl($,U){if($.length!==U.length)return!1;for(let G=0;G<$.length;G++){let J=$[G],X=U[G];if(J===void 0||X===void 0)return!1;if(J[0]!==X[0]||J[1]!==X[1]||J[2]!==X[2]||J[3]!==X[3])return!1}return!0}function AO($,U){return new OO($,U)}class pX extends I{constructor(){super("McpBodyTooLargeError","body too large")}}async function RO($){let U=al($.request,$.publicOrigin,$.trustedHosts);if(U!==null)return U;switch($.request.method){case"POST":return wl($);case"GET":return ll($);case"DELETE":return il($);default:return new Response("Method Not Allowed",{status:405,headers:{allow:"POST, GET, DELETE"}})}}async function wl($){let U=ul($.request);if(U!==null)return U;let G=await cl($);if(G instanceof Response)return G;if(!G.ok)return Response.json({jsonrpc:"2.0",id:null,error:{code:-32700,message:"Parse error"}},{status:200,headers:f1()});let J=pl($,G.value);if(J instanceof Response)return J;let{session:X,createdSession:Q,principal:Z}=J,Y=await PO(G.value,{engine:$.engine,session:X,principal:Z,authRequired:nl($)});if(Y.kind==="accepted")return new Response(null,{status:202,headers:CO(X,Q)});return Response.json(Y.response,{status:200,headers:CO(X,Q)})}function ul($){if(!ZY($.headers.get("accept"),"application/json"))return new Response("Not Acceptable",{status:406});if(!DM($.headers.get("content-type")??""))return new Response("Unsupported Media Type",{status:415});return null}async function cl($){let U=$.maxBodyBytes??XM;try{let G=await sl($.request,U);return jM(new TextDecoder().decode(G))}catch(G){return new Response(G instanceof pX?"Payload Too Large":"Bad Request",{status:G instanceof pX?413:400})}}function pl($,U){let G=KV($.request.headers),J=TO($.request.headers);if(J!==null)return J;if(dl(U,G)){let Z=dX($);try{return{session:$.sessionManager.create(Z),createdSession:!0,principal:Z}}catch(Y){if(Y instanceof f9)return new Response(Y.message,{status:429,headers:f1()});throw Y}}if(G===null)return new Response("Missing Mcp-Session-Id",{status:400});let X=$.sessionManager.get(G);if(X===void 0)return new Response("MCP session not found",{status:404});let Q=dX($);if(!MV(X,Q,PV($.request.headers)))return new Response("Forbidden",{status:403,headers:f1()});return $.sessionManager.touch(X),{session:X,createdSession:!1,principal:Q}}function dl($,U){if(U!==null)return!1;if(!$J($))return!1;return $.method==="initialize"&&!UJ($)}function ll($){if(!ZY($.request.headers.get("accept"),"text/event-stream"))return new Response("Not Acceptable",{status:406});let U=TO($.request.headers);if(U!==null)return U;let G=KV($.request.headers);if(G===null)return new Response("Missing Mcp-Session-Id",{status:400});let J=$.sessionManager.get(G);if(J===void 0)return new Response("MCP session not found",{status:404});let X=dX($);if(!MV(J,X,PV($.request.headers)))return new Response("Forbidden",{status:403,headers:f1()});$.sessionManager.touch(J);let Q=new ReadableStream({start(Z){let Y=new TextEncoder,j=(_)=>{Z.enqueue(Y.encode(`event: message
53
+ ${G.callerStack}`;let Q=J instanceof Error?J.message:String(J);X.finalizePendingTimelineEntry(U,"failed",Q),X.feedOperationResult(U,{status:"failed",error:Q,...J instanceof Error?{errorName:J.name}:{},failureCategory:Q3(J,{defaultErrorCategory:"application"})},{value:J})}async function Ix($,U,G,J,X){try{let Q=await J();BG($,U,Q,X)}catch(Q){WG($,U,G,Q,X)}}async function hx($,U,G,J,X){try{await J()}catch(Q){WG($,U,G,Q,X)}}var jQ=B(()=>{f4()});async function mx($,U,G,J){return J.runOperationWithResult(U,G,()=>kW($,U,G,mW($,U),J))}function mW($,U){let G=Y0$($,U);if(G+1>$.options.maxNestingDepth)throw Error(`Child workflow nesting depth exceeded: ${G+1} exceeds maximum of ${$.options.maxNestingDepth}. Configure maxNestingDepth in engine options to increase the limit.`);return G}function Y0$($,U){return $.inlineStrategy?.getContext(U)?.nestingDepth??$.workflowNestingDepths.get(U)??0}function j0$($,U){$.pendingNestingDepth=U.pendingNestingDepth,$.pendingParentHeaders=U.pendingParentHeaders,$.pendingExecutionStateOwnerId=U.pendingExecutionStateOwnerId}function D0$($,U){if($.pendingNestingDepth===U.pendingNestingDepth)$.pendingNestingDepth=void 0;if($.pendingParentHeaders===U.pendingParentHeaders)$.pendingParentHeaders=void 0;if($.pendingExecutionStateOwnerId===U.pendingExecutionStateOwnerId)$.pendingExecutionStateOwnerId=void 0}function H0$($,U,G){return $.type===U.workflowType&&EC($.input,U.input)&&$.executionStateOwnerId===G}async function _0$($,U,G,J,X){let Q=await X.loadWorkflowState($);if(!Q)throw J;if(!H0$(Q,U,G))throw Error(`Child workflow id collision for "${$}" does not match the requested child workflow`,{cause:J});return X.getHandle($)}async function L0$($,U,G,J,X){_7(G.options,"ctx.startChild"),j0$($,J);try{return await X.start(G.workflowType,G.input,{id:U})}catch(Q){if(!(Q instanceof p$))throw Q;return _0$(U,G,J.pendingExecutionStateOwnerId??void 0,Q,X)}finally{D0$($,J)}}async function kW($,U,G,J,X){let Q=G.options?.id,Z=typeof Q==="string"?Q:crypto.randomUUID(),Y=$.workflowHeaders.get(U)??new Map,j=await X.loadWorkflowState(U),D=V0$(G),_=D==="abandon"?null:j?.executionStateOwnerId??U,L=async()=>{let F={pendingNestingDepth:J+1,pendingParentHeaders:$.workflowHeaders.get(U),pendingExecutionStateOwnerId:_},P=await L0$($,Z,G,F,X);if(D==="abandon")return yx(P.id);if(D==="request-cancel")return t1($,U,{conditions:[],operations:jb($,U,P.id)}),JW($,U,P.id,X),yx(P.id);return P.result()},W=X.getComposedWorkflowInterceptor();if(!W)return L();return W.childWorkflow({workflowId:U,childWorkflowId:Z,workflowType:G.workflowType,input:G.input,headers:new Map,parentHeaders:Y},L)}function V0$($){return $.options?.parentClosePolicy??"await"}function yx($){return{id:$}}var fW=B(()=>{m$();QW();F$();B$()});function fx($){return{[kx]:!0,finalize:$}}function z0$($){return typeof $==="object"&&$!==null&&$[kx]===!0}async function O8($){if(z0$($))return $.finalize();if(Array.isArray($))return Promise.all($.map((U)=>O8(U)));return $}var kx;var DQ=B(()=>{kx=Symbol("weft.deferredConsume")});function wx($,U){return Math.min(Math.max(0,$-U),B0$)}function ux($,U,G){G?.throwIfAborted();let J=$.abortController.signal;if(J.aborted)return Promise.reject(J.reason??Error("aborted"));if(wx(U.scheduledFireAt,$.options.getNow())===0)return Promise.resolve();return new Promise((X,Q)=>{let Z,Y=()=>{G?.removeEventListener("abort",j),J.removeEventListener("abort",j)},j=()=>{clearTimeout(Z),Y(),Q(G?.reason??J.reason??Error("aborted"))},D=()=>{let _=wx(U.scheduledFireAt,$.options.getNow());if(_===0){Y(),X();return}Z=setTimeout(D,_)};G?.addEventListener("abort",j,{once:!0}),J.addEventListener("abort",j,{once:!0}),D()})}function cx($,U,G,J){J?.throwIfAborted();let{signalName:X}=G,Q=`${U}:${X}`,Z=$.abortController.signal;return new Promise((Y,j)=>{let D=!1,_=!1,{promise:L,resolve:W}=Promise.withResolvers(),F=()=>{J?.removeEventListener("abort",q),Z.removeEventListener("abort",q)},P=async()=>{let f=await x3($,U,X);return f.found?f.payload:void 0},q=()=>{if(D)return;if(D=!0,F(),_)b3($,U,Q,W);j(J?.reason??Z.reason??Error("aborted"))},A=()=>{if(D)return;D=!0,F(),Y(fx(P))},g=(f)=>{if(D)return;if(D=!0,F(),_)b3($,U,Q,W);j(f)};if(J?.addEventListener("abort",q,{once:!0}),Z.addEventListener("abort",q,{once:!0}),Z.aborted){q();return}(async()=>{let f=await $B($,U,X);if(D)return;if(f.found){A();return}$.signalWaiters.set(Q,W),e1($.signalWaitersByWorkflow,U,Q),_=!0;let m=await $B($,U,X);if(D)return;if(m.found){b3($,U,Q,W),A();return}if(await L,D)return;A()})().catch(g)})}var B0$=2147483647;var px=B(()=>{DQ();$0()});function W0$($,U,G,J){let X=$.lastHeartbeatDetailsByStep.get(U);if(X===void 0)X=new Map,$.lastHeartbeatDetailsByStep.set(U,X);X.set(G,J)}function dx($,U,G){return $.lastHeartbeatDetailsByStep.get(U)?.get(G)}function wW($,U,G){let J=$.lastHeartbeatDetailsByStep.get(U);if(J===void 0)return;if(J.delete(G),J.size===0)$.lastHeartbeatDetailsByStep.delete(U)}function lx($,U,G,J){if(!$.options.development)return;if($.activityWorkerDispatcher)return;if(J<=1)return;if(dx($,U,G)!==void 0)return;$.engine.dispatchEvent(new R4(U,`Activity retry (attempt ${J}) at step ${G} 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.${G}.lastHeartbeatDetails`]))}function ix($,U,G,J,X){return{signal:J,lastHeartbeatDetails:dx($,U,G),heartbeat:(Q)=>{$.heartbeatDetails.set(U,Q),W0$($,U,G,Q)},completeAsync:X}}var nx=B(()=>{Y$()});async function ox($,U,G){let J=await M0$(G);return{idempotencyKeyDigest:J,key:V.activityReconciliation($,U,J)}}function sx($,U){let G=$?.idempotencyKey?.(U.input);if(G!==void 0)return G;let J=U.options?.idempotencyKey;return typeof J==="string"?J:void 0}async function ax($,U){let G=await $.get(U);if(G===null)return null;return P0$(O(G))}function LQ($,U){return E6($,U,"activity result"),N($)}async function F0$($,U,G){if(!$.capabilities().conditionalBatch)throw new HQ;return q$($,"conditionalBatch","activity result reconciliation"),W$($,[{key:U.key,expectedValue:null}],[{type:"put",key:U.key,value:N(G)}])}function uW($,U,G){return{...$,status:"completed",result:U,updatedAt:G}}async function tx($,U,G,J,X,Q,Z){let Y=await ax($.storage,J.key);if(Y===null){let _=await q0$($,U,G,J,Z);if(_.didClaim)return _.record;Y=_.record}if(Y.status==="completed")return{completedResult:Y.result};if(!X?.verify)throw new t6(`Activity "${G.activityName}" has a prior dispatch marker but no Tier-0 verifier.`);let j=K0$(await O0$(X,U,G,Q,Y));if(j==="not-completed"){let _={...Y,attempt:Y.attempt+1,ownerId:crypto.randomUUID(),updatedAt:$.options.getNow()};return await rx($.storage,J,Y,_),_}if(j==="completed-result-unavailable")throw new t6(`Activity "${G.activityName}" completed externally but its result is unavailable.`);if(j==="indeterminate")throw new t6(`Activity "${G.activityName}" reconciliation is indeterminate.`);LQ(j.result,$.options.payloadSizePolicy.maxBytes);let D=uW(Y,j.result,$.options.getNow());return await rx($.storage,J,Y,D),{completedResult:j.result}}async function rx($,U,G,J){let X=$v(U,G,J);if(!await W$($,X.conditions,X.operations))throw new _Q("Activity reconciliation completion lost compare-and-set ownership.")}function ex($,U,G,J,X){t1($,U,$v(G,J,X))}function $v($,U,G){return{conditions:[{key:$.key,expectedValue:N(U)}],operations:[{type:"put",key:$.key,value:N(G)}]}}function K0$($){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 t6("Activity verifier did not return a Tier-0 pre-dispatch reconciliation state.")}function cW($,U,G,J,X,Q,Z){return{phase:$,workflowId:U,operationId:G,activityName:J,input:X,...Q===void 0?{}:{idempotencyKey:Q},attempt:Z}}function P0$($){if(typeof $!=="object"||$===null)throw new t6("Activity reconciliation record is not an object.");let U=$;if(!A0$(U))throw new t6("Activity reconciliation record has an invalid shape.");if(U.status==="started")return U;if(U.status==="completed"&&"result"in U)return U;throw new t6("Activity reconciliation record has an unsupported status.")}async function M0$($){let U=new TextEncoder().encode($),G=await crypto.subtle.digest("SHA-256",U);return[...new Uint8Array(G)].map((J)=>J.toString(16).padStart(2,"0")).join("")}function N0$($,U,G,J,X){return{version:1,status:"started",workflowId:$,operationId:U.operationId,activityName:U.activityName,idempotencyKeyDigest:G.idempotencyKeyDigest,attempt:J,ownerId:crypto.randomUUID(),createdAt:X,updatedAt:X}}async function q0$($,U,G,J,X){let Q=N0$(U,G,J,X,$.options.getNow());if(await F0$($.storage,J,Q))return{didClaim:!0,record:Q};let Y=await ax($.storage,J.key);if(Y===null)throw new t6("Activity reconciliation claim conflicted but no record could be read.");return{didClaim:!1,record:Y}}async function O0$($,U,G,J,X){try{return await $.verify(void 0,cW("pre-dispatch-reconciliation",U,G.operationId,G.activityName,G.input,J,X.attempt))}catch(Q){let Z=Q instanceof Error?Q.message:String(Q);throw new t6(`Activity "${G.activityName}" verifier threw during pre-dispatch reconciliation: ${Z}`)}}function A0$($){let U=["workflowId","operationId","activityName","idempotencyKeyDigest","ownerId"],G=["attempt","createdAt","updatedAt"];return $.version===1&&U.every((J)=>typeof $[J]==="string")&&G.every((J)=>typeof $[J]==="number")}var HQ,_Q,t6;var pW=B(()=>{y();u();c4();a();HQ=class HQ extends I{constructor(){super("ActivityReconciliationCapabilityError",'Activity result reconciliation requires storage capability "conditionalBatch".')}};_Q=class _Q extends I{constructor($){super("ActivityReconciliationConflictError",$)}};t6=class t6 extends I{constructor($){super("ActivityReconciliationIndeterminateError",$)}}});function Uv($,U,G){let J=$.workflowTypeByWorkflowId.get(U);if(J!==void 0){let Q=$.activityRegistriesByWorkflow.get(J);if(Q!==void 0){let Y=Q.resolve(G);if(Y)return{fn:Y,workflowType:J}}let Z=$.activityRegistry.resolve(G);if(Z)return{fn:Z,workflowType:J};return}let X=$.activityRegistry.resolve(G);if(X)return{fn:X,workflowType:"<unknown>"};return}function dW($,U,G){let J=Uv($,U,G.activityName);if(J)return J.fn;if(typeof G.fn==="function")return G.fn;return}function Gv($,U,G){let J=Uv($,U,G.activityName);if(J)return J.fn;if(G.fn)return G.fn;let X=$.workflowTypeByWorkflowId.get(U)??"<unknown>";throw new t9(X,G.activityName)}var Jv=B(()=>{F$()});function C0$($,U,G,J,X){return(async()=>{let Q=await G?.(X,J);if(typeof Q!=="boolean")throw Error(`Verification failed for activity "${U}"`);if(!Q)throw Error(`Verification failed for activity "${U}"`)})()}function R0$($,U,G,J){let X=dW($,U,G);if(!X?.compensate)return;return async()=>{await X.compensate?.(G.input,J)}}async function T0$($,U,G,J,X){let Q=$.activityWorkerDispatcher;if(!Q)throw Error(`No activity worker dispatcher available for "${G}"`);let Z=await Q.execute({operationId:U,activityName:G,input:J,attempt:X});if(Z.status==="failed"){let Y=Error(Z.error);if(Z.errorName!==void 0)Y.name=Z.errorName;throw Y}return Z.value}function E0$($,U,G,J,X,Q){let Z=Gv($,U,G);return z3(Z,Q,J)}function Xv($,U){if(U.size>0)$.headers=[...U.entries()]}function lW($){let U=$.attempt;return typeof U==="number"&&Number.isInteger(U)&&U>0?U:1}async function Qv($,U,G,J,X=lW(G),Q){let Z=G.input,Y=G.step??0;lx($,U,Y,X);let j=SR(U,Y,X),{perAttemptTimeoutMs:D,attemptAbortController:_,activitySignal:L}=ub($,U,G,Q),W=ix($,U,Y,L,()=>{throw new e7(j)}),F=$.activityWorkerDispatcher?(m,p)=>T0$($,G.operationId,m,p,X):(m,p)=>GQ(E0$($,U,G,W,m,p),D,m,X,_),P=J.getComposedActivityInterceptor(),q=async(m,p,d)=>{if(!P)return F(m,p);let X$={workflowId:U,activityName:m,input:p,attempt:X,headers:d};return await P.execute(X$,async(v6)=>{return F(m,v6.input)})},A=J.getComposedWorkflowInterceptor();if(A){let m={workflowId:U,activityName:G.activityName,input:Z,attempt:X,headers:new Map};function*p(){return yield q(G.activityName,m.input,m.headers)}let d=A.activity(m,p),X$=await hR(d);return Xv(G,m.headers),X$}let g=new Map,f=await q(G.activityName,Z,g);return Xv(G,g),f}async function FG($,U,G,J,X,Q){let Z=dW($,U,G),Y=sx(Z,G),j=lW(G);if(Y!==void 0){let _=await ox(U,G.activityName,Y),L=await tx($,U,G,_,Z,Y,j);if("completedResult"in L)return LQ(L.completedResult,$.options.payloadSizePolicy.maxBytes),L.completedResult;let W=await Qv($,U,G,J,L.attempt,X);LQ(W,$.options.payloadSizePolicy.maxBytes),await Zv($,U,G,W,Z,Y,L.attempt,Q,!0);let F=uW(L,W,$.options.getNow());if(ex($,U,_,L,F),!Q)wW($,U,G.step??0);return W}let D=await Qv($,U,G,J,j,X);if(E6(D,$.options.payloadSizePolicy.maxBytes,"activity result"),await Zv($,U,G,D,Z,Y,j,Q),!Q)wW($,U,G.step??0);return D}async function Zv($,U,G,J,X,Q,Z,Y,j=!1){let D=Y?R0$($,U,G,J):void 0;if(D)Y?.recordCompensation(D);if(X?.verify){let _=cW("post-execution-validation",U,G.operationId,G.activityName,G.input,Q,Z),L=C0$($,G.activityName,X.verify,_,J);if(Y){if(Y.recordVerification(L),j)await L}else await L}}async function Yv($,U,G,J){return J.runOperationWithResult(U,G,async()=>{try{return await FG($,U,G,J)}catch(X){if(X instanceof e7)return bR($,X,{workflowId:U,activityName:G.activityName,operationId:G.operationId,step:G.step??0,attempt:lW(G)},{feedOperationResult:J.feedOperationResult,finalizeTimeline:J.finalizePendingTimelineEntry});throw X}})}var VQ=B(()=>{c4();nx();PW();pW();Jv();e2();B$()});function zQ($){let U=new Set,G=(J)=>{for(let X of J)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")G(X.operations)};G($)}async function jv($,U,G,J){let X=$.abortController.signal,Q=`${U}:${G.signalName}`;while(!0){if(X.aborted)return;let Z=await x3($,U,G.signalName);if(Z.found){J.completeOperation(U,Z.payload);return}let{promise:Y,resolve:j}=Promise.withResolvers();if($.signalWaiters.set(Q,j),e1($.signalWaitersByWorkflow,U,Q),X.aborted){$.signalWaiters.delete(Q),l6($.signalWaitersByWorkflow,U,Q);return}let D=await x3($,U,G.signalName);if(D.found){if($.signalWaiters.get(Q)===j)$.signalWaiters.delete(Q),l6($.signalWaitersByWorkflow,U,Q);J.completeOperation(U,D.payload);return}if(await Y,X.aborted)return}}async function Dv($,U,G,J){return J.runOperationWithResult(U,G,async()=>{zQ(G.operations);let X=Hv(G.resumedCacheEntry),Q=G.operations.map((_,L)=>typeof _.operationId==="string"?_.operationId:`parallel:${G.step}:${L}`),{slots:Z,hasFirstError:Y,firstError:j}=await MR(Q,X,(_)=>J.executeSubOperation(U,G.operations[_]));if(Y)Lv(b0$($,U),Z,"ctx.all","worker execution mode");await S0$(Z);let D=uz("all",Z);if(_v($,U,G.step,D),Y)throw j;return NR(Z)})}async function S0$($){let G=(await Promise.allSettled($.map(async(J)=>{if(J.status==="fulfilled")J.value=await O8(J.value)}))).find((J)=>J.status==="rejected");if(G)throw G.reason}function Hv($){if(!GU($))return;return $.branches}function b0$($,U){return $.inlineStrategy?.getContext(U)!==void 0}function _v($,U,G,J){let X=$.inlineStrategy?.getContext(U);if(X===void 0)return!1;return X.accumulatedResults.set(G,J),!0}function Lv($,U,G,J){if($||!U.some((X)=>X.status==="fulfilled"))return;throw Error(`${G} partial-failure preservation is not supported in ${J}: the engine cannot persist fulfilled branch slots after a sibling branch fails. Run the workflow inline or make branch side effects idempotent.`)}async function Vv($,U,G,J){return J.runOperationWithResult(U,G,async()=>{zQ(G.operations);let X=new AbortController,Q=G.operations.map((Y)=>J.executeSubOperation(U,Y,X.signal));Promise.allSettled(Q);let Z;try{Z=await Promise.race(Q)}finally{X.abort()}return O8(Z)})}async function zv($,U,G,J){return J.runOperationWithResult(U,G,async()=>{let X=Object.keys(G.branches),Q=X.map((q)=>`run-all:${G.step}:${q}`),Z=Hv(G.resumedCacheEntry),Y=I0$(Z,X),j=x0$(G.branches,X,Y),{outcomes:D,hasFirstError:_,firstError:L}=await RR(j,(q,A)=>z3(q,A)),W=v0$(X,Q,Y,D),F=uz("run-all",W,X),P=_v($,U,G.step,F);if(_)throw Lv(P,W,"ctx.runAll","worker execution mode"),L;return g0$(X,W)})}function x0$($,U,G){let J={};for(let X of U)if(G?.get(X)?.status!=="fulfilled"){let Q=$[X];if(Q!==void 0)J[X]=Q}return J}function v0$($,U,G,J){let X=new Map;for(let Q of J)X.set(Q.name,Q);return $.map((Q,Z)=>{let Y=U[Z],j=G?.get(Q);if(j?.status==="fulfilled")return j;let D=X.get(Q);if(D.status==="fulfilled")return{status:"fulfilled",value:D.value,operationId:Y};let _=D.reason instanceof Error?D.reason:Error(String(D.reason));return{status:"rejected",reason:{name:_.name,message:_.message},operationId:Y}})}function g0$($,U){let G={};for(let J=0;J<$.length;J++){let X=U[J];if(X?.status==="fulfilled")G[$[J]]=X.value}return G}function I0$($,U){if($===void 0)return;let G=new Map;for(let J=0;J<U.length;J++){let X=U[J],Q=$[J];if(X!==void 0&&Q!==void 0)G.set(X,Q)}return G}function h0$($){return typeof $.execute==="function"}async function Bv($,U,G,J,X){return TR(G.branches,(Q,Z)=>{if(!X||!h0$(Q))return z3(Q,Z);return FG($,U,{type:"activity",operationId:crypto.randomUUID(),activityName:Q.name,fn:Q,input:Z},J.getActivityOperationCallbacks(),void 0,X)})}var BQ=B(()=>{s7();A3();DQ();VQ();cz();$0();B$()});async function Wv($,U,G,J){return J.runOperationWithoutResult(U,G,()=>J.processReviewOperation(U,G.reviewOptions))}async function WQ($,U,G,J,X,Q){X?.throwIfAborted();let Z=y0$[G.type];if(!Z)throw Error(`Unsupported sub-operation type: ${G.type}`);return Z({internals:$,workflowId:U,callbacks:J,signal:X,speculativeState:Q},G)}async function m0$($,U,G,J,X,Q){return FG($,U,G,J.createActivityOperationCallbacks(),X,Q)}async function k0$($,U,G,J){return kW($,U,G,mW($,U),J.createChildWorkflowOperationCallbacks())}async function f0$($,U){return e0($.storage,o1(U.scope,U.key),U)}async function w0$($,U,G){let J=o1(U.scope,U.key),X=U.mode==="delete"?await P3($.storage,J,U.expectedVersion):await K3($.storage,J,U.expectedVersion,U.value);if(X.applied&&U.scope.type==="execution")await G.createStateOperationCallbacks().ensureTerminalCleanupTracked(U.scope.ownerWorkflowId);return X}async function u0$($,U,G,J,X,Q){X?.throwIfAborted();let Z=new AbortController,Y=()=>{Z.abort(X?.reason)};X?.addEventListener("abort",Y,{once:!0});let j=G.operations.map((D)=>WQ($,U,D,J,Z.signal,Q));Promise.allSettled(j);try{return await Promise.all(j)}finally{X?.removeEventListener("abort",Y),Z.abort()}}async function c0$($,U,G,J,X,Q){X?.throwIfAborted();let Z=new AbortController,Y=()=>{Z.abort(X?.reason)};X?.addEventListener("abort",Y,{once:!0});let j=G.operations.map((D)=>WQ($,U,D,J,Z.signal,Q));Promise.allSettled(j);try{return await Promise.race(j)}finally{X?.removeEventListener("abort",Y),Z.abort()}}var y0$;var iW=B(()=>{$U();fW();px();VQ();BQ();B$();y0$={activity:($,U)=>m0$($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),"child-workflow":($,U)=>k0$($.internals,$.workflowId,U,$.callbacks),memo:($,U)=>Promise.resolve(E7(U.fn)),"state-read":($,U)=>f0$($.internals,U),"state-commit":($,U)=>w0$($.internals,U,$.callbacks),parallel:($,U)=>u0$($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),race:($,U)=>c0$($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),"run-all":($,U)=>Bv($.internals,$.workflowId,U,$.callbacks.createCoordinationOperationCallbacks(),$.speculativeState),sleep:($,U)=>ux($.internals,U,$.signal),"wait-signal":($,U)=>cx($.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 nW($){return{runOperationWithResult:(U,G,J)=>H0($,U,G,J),start:(U,G,J)=>r6(z($),U,G,J,void 0,t$($)),loadWorkflowState:(U)=>J$(z($),U),getHandle:(U)=>$.getHandle(U),getComposedWorkflowInterceptor:()=>a6(z($))}}function FQ($){return{runOperationWithResult:(U,G,J)=>H0($,U,G,J),finalizePendingTimelineEntry:(U,G,J)=>K4(z($),U,G,J),feedOperationResult:(U,G,J)=>s6(z($),U,G,J),getComposedActivityInterceptor:()=>Gb(z($)),getComposedWorkflowInterceptor:()=>a6(z($))}}function A8($){return{completeOperation:(U,G)=>MQ($,U,G),runOperationWithResult:(U,G,J)=>H0($,U,G,J),executeSubOperation:(U,G,J,X)=>rW($,U,G,J,X),getActivityOperationCallbacks:()=>FQ($)}}function Kv($){return{completeOperation:(U,G)=>MQ($,U,G),failOperation:(U,G,J)=>p0$($,U,G,J),isWorkflowRunning:async(U)=>{return(await J$(z($),U))?.status==="running"},scheduleConditionDeadline:(U,G,J)=>z($).scheduler.schedule({id:`cond:${U}:${G}`,workflowId:U,fireAt:J,kind:"wait-condition"}),cancelConditionDeadline:(U,G)=>z($).scheduler.cancel(`cond:${U}:${G}`,U)}}function KG($){return{runOperationWithResult:(U,G,J)=>H0($,U,G,J)}}function KQ($){return{runOperationWithResult:(U,G,J)=>H0($,U,G,J),ensureTerminalCleanupTracked:(U)=>DG(z($),U)}}function Pv($){return{runOperationWithResult:(U,G,J)=>H0($,U,G,J),handleCleanupError:(U,G,J)=>z$($).handleCleanupError(U,G,J)}}function PQ($){return{completeOperation:(U,G)=>MQ($,U,G),dispatchEvent:(U)=>$.dispatchEvent(U),loadWorkflowState:(U)=>J$(z($),U),failWorkflow:(U,G)=>b6(z($),U,G,z$($)),runSerializedWorkflowStateWrite:(U,G)=>i6(z($),U,G),beginWorkflowExecution:(U,G,J,X,Q,Z,Y)=>p5(z($),U,G,J,X,Q,Z,Y,t$($)),workflowVersionTupleFromState:(U)=>h5(z($),U,t$($)),setWorkflowStartHeaders:(U,G)=>M1(z($),U,G,t$($)),loadWorkflowStartHeaders:(U)=>LU(z($),U,t$($)),parseStartOptionDuration:(U,G)=>W8(z($),U,G,t$($)),runDeferredTerminalCleanup:(U,G)=>lB(z($),U,G,z$($)),runWorkflowFinalizer:(U,G)=>AW(z($),U,G,z$($)),handleScheduleTimer:(U)=>Tx($,U),timeout:(U)=>$.timeout(U),handleCleanupError:(U,G,J)=>z$($).handleCleanupError(U,G,J)}}function C8($){return{dispatchEvent:(U)=>$.dispatchEvent(U),broadcast:(U)=>U0(z($),U,n4($)),completeOperation:(U,G)=>MQ($,U,G),guardTerminalWorkflow:(U)=>yW(z($),U,YQ($)),guardTerminalWorkflowAfterCoordinatedRequest:(U,G)=>bx(z($),U,G,YQ($)),persistCoordinatedUpdateResponse:(U,G,J,X,Q)=>Fv($,U,G,J,X,Q),deliverCoordinatedUpdateToWaiterIfAvailable:(U,G,J)=>ET(z($),U,G,J,C8($)),dispatchPendingUpdateReceived:(U,G,J)=>vT(z($),U,G,J,n4($)),createCoordinatedUpdateResponder:(U,G,J)=>TT(z($),U,G,J,{persistCoordinatedUpdateResponse:(X,Q,Z,Y,j)=>Fv($,X,Q,Z,Y,j)}),findPendingUpdateByName:(U,G)=>ST(z($),U,G),schedulePendingInlineUpdateDrain:(U)=>Ob(z($),U,LG($))}}async function Fv($,U,G,J,X,Q){let Z=z($),Y=Z.updateCoordinator.buildResponseOperations(J,U,Q,void 0,X);try{await C$(Z,Y,[],()=>Error(`Coordinated update response for workflow "${U}" lost its CAS race.`)),$.dispatchEvent(new I6(J,U,G,Q)),U0(Z,{type:"update:completed",workflowId:U,updateId:J},n4($))}catch(j){z$($).handleCleanupError("writeCoordinatedUpdateResponse",j,U)}}function MQ($,U,G){return BG(z($),U,G,VG($))}function p0$($,U,G,J){return WG(z($),U,G,J,VG($))}async function H0($,U,G,J){return Ix(z($),U,G,J,VG($))}async function Mv($,U,G,J){return hx(z($),U,G,J,VG($))}async function rW($,U,G,J,X){return WQ(z($),U,G,{createActivityOperationCallbacks:()=>FQ($),createChildWorkflowOperationCallbacks:()=>nW($),createCoordinationOperationCallbacks:()=>A8($),createStateOperationCallbacks:()=>KQ($)},J,X)}async function Nv($,U,G){return fb(z($),U,G,Rx($))}var NQ=B(()=>{Y$();D5();N8();Ex();B4();xx();q1();j0();jQ();HW();$Q();a$();l4();iW();O1();U8()});async function qv($,U,G,J){return J.runOperationWithResult(U,G,async()=>E7(G.fn))}async function Ov($,U,G,J){return J.runOperationWithResult(U,G,async()=>{let X=await G.fn(),Q=N(X);return await $.storage.put(V.offload(U,G.key),Q),{key:G.key,workflowId:U,sizeBytes:Q.byteLength}})}async function Av($,U,G,J){return J.runOperationWithResult(U,G,async()=>{let{workflowId:X,key:Q,sizeBytes:Z}=G.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 Z!=="number"||!Number.isFinite(Z)||Z<0)throw Error("ctx.load() requires a valid offload reference size");let Y=await $.storage.get(V.offload(X,Q));if(Y===null)throw Error(`Offloaded data not found for key "${Q}" in workflow "${X}"`);return O(Y)})}async function Cv($,U,G){let J=await $.storage.get(V.offload(U,G));if(J===null)return null;return O(J)}async function Rv($,U,G,J){return J.runOperationWithResult(U,G,async()=>{await $.storage.put(V.archive(U,G.key),N(G.data));return})}var oW=B(()=>{y();u();B$()});class sW{#$;#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((G)=>G.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 Tv($,U,G,J){return J.runOperationWithResult(U,G,()=>d0$($,U,G,J))}async function d0$($,U,G,J){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 Z=Q.createSpeculativeChild(),Y=new sW,j=l0$(G,Z);try{let D=await i0$(U,j,Y,J);return await Y.drainVerifications(),Q.commitSpeculativeChild(Z),D}catch(D){throw await Y.rollback(),D}}function l0$($,U){return $.execute(U)}async function i0$($,U,G,J){let X=async(Q,Z)=>{let Y=Z===void 0?await U.next(Q):await U.throw(Z);if(Y.done)return Y.value;let j=Y.value;try{if(j.type==="race"||j.type==="parallel")zQ(j.operations);let D=await J.executeSubOperation($,j,void 0,G),_=await O8(D);return X(_,void 0)}catch(D){return X(Q,D instanceof Error?D:Error(String(D)))}};return X(void 0,void 0)}var Ev=B(()=>{DQ();BQ()});async function Sv($,U,G,J){return J.runOperationWithResult(U,G,async()=>{let X=o1(G.scope,G.key);return e0($.storage,X,G)})}async function bv($,U,G,J){return J.runOperationWithResult(U,G,async()=>{let X=o1(G.scope,G.key);if(G.mode==="delete"){let Z=await P3($.storage,X,G.expectedVersion);if(Z.applied&&G.scope.type==="execution")await J.ensureTerminalCleanupTracked(G.scope.ownerWorkflowId);return Z}let Q=await K3($.storage,X,G.expectedVersion,G.value);if(Q.applied&&G.scope.type==="execution")await J.ensureTerminalCleanupTracked(G.scope.ownerWorkflowId);return Q})}var xv=B(()=>{$U()});function r0$($){if(!n0$.test($))return;let U=Number.parseInt($,10);return Number.isSafeInteger(U)?U:void 0}async function R8($,U,G,J){let X=J?.after,Q=V.streamChunkPrefix(U,G),Z=[],Y=X!==void 0&&X>=0?{gt:V.streamChunk(U,G,X)}:void 0;for await(let[j,D]of $.scan(Q,Y)){let _=j.slice(Q.length),L=r0$(_);if(L===void 0)continue;Z.push({sequence:L,value:O(D)})}return Z}function qQ($){return N({sequence:$})}function o0$($){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 T8($,U,G){let J=await $.get(V.streamTail(U,G));if(J===null)return null;try{return o0$(O(J))}catch{return null}}var n0$;var PG=B(()=>{y();u();n0$=/^\d+$/});async function*vv($,U,G,J){if(G==="events"){yield*a0$($,U,J);return}yield*t0$($,U,J)}async function gv($,U,G){if(G==="events"){let Z=$.eventLogHeads.get(U);if(Z)return Z.sequence;return(await new S6($.storage,U).loadHead()).sequence}let J=await T8($.storage,U,BU);if(J!==null)return J;let X=await R8($.storage,U,BU);if(X.length===0)return-1;let Q=-1;for(let Z of X)if(Z.sequence>Q)Q=Z.sequence;return Q}function Iv($,U,G,J){let X=u2(U,G),Q=$.workflowFeedListeners.get(X);if(!Q)Q=new Set,$.workflowFeedListeners.set(X,Q);return Q.add(J),()=>{let Z=$.workflowFeedListeners.get(X);if(!Z)return;if(Z.delete(J),Z.size===0)$.workflowFeedListeners.delete(X)}}async function*a0$($,U,G){let J=new S6($.storage,U),X=G<0?0:G+1,Q=await Z0($.storage,U);if(Q!==null&&X<Q.sequence)yield{workflowId:U,selector:"events",kind:s0$,sequence:Q.sequence-1,timestamp:0,payload:{compactedBefore:Q.sequence,requestedFrom:X}},X=Q.sequence;for await(let Z of J.scan({fromSequence:X}))yield{workflowId:U,selector:"events",kind:Z.type,sequence:Z.sequence,timestamp:Z.timestamp,payload:Z.payload}}async function*t0$($,U,G){let J=G>=0?await R8($.storage,U,BU,{after:G}):await R8($.storage,U,BU),X=Date.now();for(let Q of J)yield{workflowId:U,selector:"tokens",kind:aW,sequence:Q.sequence,timestamp:X,payload:Q.value}}function OQ($,U,G,J){let X=$.workflowFeedListeners.get(u2(U,G));if(!X||X.size===0)return;let Q=[...X];for(let Z of Q)try{let Y=Z(J);if(Y&&typeof Y.then==="function")Y.catch(()=>{})}catch{}}var BU="tokens",aW="stream:chunk",s0$="workflow:compaction-boundary";var AQ=B(()=>{_U();o3();B$();PG()});async function hv($,U,G,J){return R8($.storage,U,G,J)}async function yv($,U,G,J){return J.runOperationWithResult(U,G,()=>e0$($,U,G,J))}async function e0$($,U,G,J){let X={heartbeat:(Z)=>{$.heartbeatDetails.set(U,Z)}},Q=[];try{let Z=await $U$($,U,G,G.fn(X),Q),Y={key:G.key,workflowId:U,chunkCount:Z.chunkCount,totalSizeBytes:Z.totalSizeBytes};return await $.storage.put(V.streamMetadata(U,G.key),N(Y)),Y}catch(Z){throw await UU$($,U,G.key,Q,J),Z}}async function $U$($,U,G,J,X){let Q=0,Z=0;for await(let Y of J){let j=N(Y),D=Q,_=V.streamChunk(U,G.key,D);if(G.key===BU)await $.storage.batch([{type:"put",key:_,value:j},{type:"put",key:V.streamTail(U,G.key),value:qQ(D)}]);else await $.storage.put(_,j);if(X.push(_),Z+=j.byteLength,Q++,G.key===BU)OQ($,U,"tokens",{workflowId:U,selector:"tokens",kind:aW,sequence:D,timestamp:Date.now(),payload:Y})}return{chunkCount:Q,totalSizeBytes:Z}}async function UU$($,U,G,J,X){await CR($.storage,U,G,J,qR(X.handleCleanupError,U))}var tW=B(()=>{y();u();A3();PG();AQ()});function kv($,U,G){if(U())return{done:!0,value:G===void 0?void 0:!0};if(G!==void 0&&$.options.getNow()>=G)return{done:!0,value:!1};return{done:!1}}async function fv($,U,G,J){let X=$.abortController.signal,{predicate:Q,deadline:Z}=G,Y=!1,j=(D)=>{if(Y)return;Y=!0,J.completeOperation(U,D)};if(X.aborted)return;try{let D=kv($,Q,Z);if(D.done){j(D.value);return}if(Z!==void 0)await J.scheduleConditionDeadline(U,G.step,Z);try{let _=await mv($,U,Q,Z,J);while(_.status==="continue")_=await mv($,U,Q,Z,J);if(_.status==="complete")j(_.value)}finally{if(wv($,U),Z!==void 0)await J.cancelConditionDeadline(U,G.step)}}catch(D){J.failOperation(U,G,D)}}async function mv($,U,G,J,X){let Q=$.abortController.signal;if(Q.aborted)return{status:"stop"};let{promise:Z,resolve:Y}=Promise.withResolvers();$.conditionWaiters.set(U,Y);let j=Q.aborted?{done:!0,value:void 0,aborted:!0}:{...kv($,G,J),aborted:!1};if(j.done)return wv($,U),j.aborted?{status:"stop"}:{status:"complete",value:j.value};if(await Z,Q.aborted)return{status:"stop"};if(!await X.isWorkflowRunning(U))return{status:"stop"};return{status:"continue"}}function wv($,U){$.conditionWaiters.delete(U)}function eW($){return{processActivityOperation:(U,G)=>Yv(z($),U,G,FQ($)),processSleepOperation:(U,G)=>cE(z($),U,G,PQ($)),processWaitSignalOperation:(U,G)=>jv(z($),U,G,A8($)),processWaitUpdateOperation:(U,G)=>CT(z($),U,G,C8($)),processWaitConditionOperation:(U,G)=>fv(z($),U,G,Kv($)),processGetVersionOperation:async(U,G)=>{BG(z($),U,G.version,{finalizePendingTimelineEntry:(J,X,Q)=>K4(z($),J,X,Q),feedOperationResult:(J,X,Q)=>s6(z($),J,X,Q)})},processParallelOperation:(U,G)=>Dv(z($),U,G,A8($)),processRaceOperation:(U,G)=>Vv(z($),U,G,A8($)),processMemoOperation:(U,G)=>qv(z($),U,G,KG($)),processChildWorkflowOperation:(U,G)=>mx(z($),U,G,nW($)),processOffloadOperation:(U,G)=>Ov(z($),U,G,KG($)),processLoadOperation:(U,G)=>Av(z($),U,G,KG($)),processArchiveOperation:(U,G)=>Rv(z($),U,G,KG($)),processStateReadOperation:(U,G)=>Sv(z($),U,G,KQ($)),processStateCommitOperation:(U,G)=>bv(z($),U,G,KQ($)),processRunAllOperation:(U,G)=>zv(z($),U,G,A8($)),processSpeculateOperation:(U,G)=>Tv(z($),U,G,{runOperationWithResult:(J,X,Q)=>H0($,J,X,Q),executeSubOperation:(J,X,Q,Z)=>rW($,J,X,Q,Z)}),processStreamOperation:(U,G)=>yv(z($),U,G,Pv($)),processWaitReviewOperation:(U,G)=>Wv(z($),U,G,{runOperationWithoutResult:(J,X,Q)=>Mv($,J,X,Q),processReviewOperation:(J,X)=>Nv($,J,X)}),finalizePendingTimelineEntry:(U,G,J)=>K4(z($),U,G,J),feedOperationResult:(U,G,J)=>s6(z($),U,G,J)}}var uv=B(()=>{NQ();fW();q1();VQ();BQ();oW();jQ();Ev();xv();tW();w5();l4();iW();O1();U8();Qx(($)=>eW($))});function cv($){let U=c($).pendingAttributeChanges;return U!==void 0&&Object.keys(U).length>0}function pv($){let U=c($).updateHandlers;return U!==void 0&&U.size>0}function dv($){let U=c($).exposedValues;return U!==void 0&&U.size>0}var $F=B(()=>{$8()});function lv($,U,G,J,X,Q){let Z=P8($,U),Y=$.workflowVersionTuples.get(U);if(Z)Q.push(Z);let j={step:J,operationType:G.type,operationLabel:NC(G),inputSummary:qC(G),timestamp:X,status:"running",...Y?{versionTuple:Y}:{}};return Q.push({type:"put",key:V.timeline(U,J),value:N(j)}),{startedAt:X,entry:j}}async function iv($,U,G,J,X){if($.inlineStrategy?.getContext(U))await GU$($,U,G,X);else if(J&&J.byteLength>0)await JU$($,U,G,J,X)}async function GU$($,U,G,J){let X=$.checkpoints.get(U),Q=$.inlineStrategy?.getContext(U);if(!X||!Q)return;let Z={...X.searchAttributes},Y=Q.checkpointPendingAttributeChanges,j=cv(Q),D=Iz(X,Q.checkpointLocals,{accumulatedResults:Q.checkpointAccumulatedResults,now:$.options.getNow(),...Y!==void 0?{searchAttributes:Y}:{}}),_=Xz(D,ov(G,Q.stepIndex)),L=nv($,U,_.checkpoint,w$(Qz(_.checkpoint,_.replayPayload)),_.replayPayload);if(XU$(U,L,Z,Y,j,J),await rv($,U,G,L,J),j)J.dispatchEvent(new bU(U,{...Y}))}async function JU$($,U,G,J,X){let Q=new Uint8Array(J),Z=I$(Q),Y=f2(Z),j=Xz(Z,ov(G,Z.step)),D=O7(Y,j.replayPayload),_=w$(Qz(j.checkpoint,D));await rv($,U,G,nv($,U,j.checkpoint,_,D),X)}function nv($,U,G,J,X){let Q=[{type:"put",key:V.checkpoint(U),value:J}];if($.options.checkpointHistory>0)Q.push({type:"put",key:V.checkpointHistory(U,G.step),value:J});let Z=JE($,U);return{checkpoint:G,serialized:J,...X===void 0?{}:{replayPayload:X},...Z!==void 0?{expectedSerialized:Z}:{},step:G.step,timestamp:G.createdAt,operations:Q}}function XU$($,U,G,J,X,Q){if(!X)return;Q.validateAttributeValueSizes(J??{}),U.operations.push({type:"put",key:V.attribute($),value:N(U.checkpoint.searchAttributes)}),U.operations.push(...i$($,G,U.checkpoint.searchAttributes))}async function rv($,U,G,J,X){DU$($,U,J,X);let Q=X.appendTimelineBatchOperations(U,G,J.step,J.timestamp,J.operations),{newHead:Z,timestamp:Y}=HU$($,U,J),j=$.options.historyPolicy.retentionWindow,D=j===null?null:await gE($.storage,U,Z.sequence,j,J.operations),_=Y5($,U);if(_!==void 0)J.operations.push(..._.operations);let L=$.storage.capabilities().conditionalBatch,W=QU$(_,L),F=ZU$(U,J,L,W);if(await C$($,J.operations,F,()=>{return Error(`Checkpoint commit for workflow "${U}" lost its CAS race against a newer checkpoint.`)}),_!==void 0)j5($,U);if(J.expectedSerialized!==void 0)A5($,U,J.serialized);if($.pendingTimelineEntries.set(U,Q),$.checkpoints.set(U,J.checkpoint),$.eventLogHeads.set(U,Z),D!==null)jU$($,U,D,X);if(OQ($,U,"events",{workflowId:U,selector:"events",kind:"workflow:checkpoint",sequence:Z.sequence,timestamp:Y,payload:{step:J.step}}),X.swallowPromiseRejection(X.pruneCheckpointHistory(U,J.step)),YU$($,Z.sequence))await X.enforceHistoryCircuitBreaker(U)}function QU$($,U){if(!U)return[];return $?.conditions??[]}function ZU$($,U,G,J){let X=[];if(G&&U.expectedSerialized!==void 0)X.push({key:V.checkpoint($),expectedValue:U.expectedSerialized});return X.push(...J),X}function YU$($,U){let G=$.options.historyPolicy.maxEvents;return G!==null&&U+1>G}function jU$($,U,G,J){let X=$.options.archiveAdapter;if(X===null||G.deletedEntries.length===0)return;let{from:Q,to:Z}=G.deletedRange,Y=`events:${Q}-${Z}`,j=IE(G.deletedEntries);J.swallowPromiseRejection(Promise.resolve().then(()=>X.store(U,Y,j)))}function DU$($,U,G,J){if(G.serialized.byteLength>=$.options.checkpointSizeWarningThreshold)J.dispatchEvent(new IU(U,G.serialized.byteLength,G.step))}function HU$($,U,G){return new S6($.storage,U).appendToBatch({type:"workflow:checkpoint",payload:GC(G.step,G.replayPayload)},G.operations,$.eventLogHeads.get(U)??n0,$.workflowVersionTuples.get(U))}function ov($,U){let G="step"in $?$.step:void 0;if(typeof G==="number"&&Number.isSafeInteger(G)&&G>=0)return G;return Math.max(0,U-1)}async function sv($,U,G){let J=$.options.checkpointHistory;if(J<=0)return;let X=G-J;if(X<1)return;let Q=V.checkpointHistory(U,X);await $.storage.delete(Q)}function av($,U,G){if(!$.options.development)return;let J=$.inlineStrategy?.getContext(U);if(!J)return;let X=J.stepIndex,Q=$.checkpoints.get(U);if(!Q)return;let Z=hz({...Q,locals:J.checkpointLocals,accumulatedResults:J.checkpointAccumulatedResults});if(!Z.valid){let Y=Z.divergences.map((D)=>D.path),j=`Checkpoint at step ${X} has ${Z.divergences.length} non-serializable field(s)`;G.dispatchEvent(new R4(U,j,Y))}}var tv=B(()=>{y();d6();u();$F();_U();Y$();D6();HU();s0();o3();B4();B$();O1();AQ()});async function ev($,U,G){let J=$.inlineStrategy?.getContext(U);if(!J)return!1;let Q=$.registrations.get(J.workflowType)?.constraints;if(!Q||Q.length===0)return!1;let Z={id:U,type:J.workflowType,status:"running"};for(let Y of Q){if(!await _U$(Y,Z))continue;if(LU$(G,U,Y),Y.onViolation==="warn"){VU$(U,Y);continue}let D=Error(`Constraint violated: ${Y.name} (scope: ${Y.scope})`);if(Y.onViolation==="fail")await zU$(G,U,D);else BU$(G,U,D);return!0}return!1}async function _U$($,U){try{let G=$.check(U);return!(G instanceof Promise?await G:G)}catch(G){return console.warn(`[weft] Constraint "${$.name}" check() threw an error:`,G),!0}}function LU$($,U,G){$.dispatchEvent(new uU(U,G.name,G.scope,G.onViolation))}function VU$($,U){console.warn(`[weft] Constraint "${U.name}" (scope: ${U.scope}) violated on workflow "${$}" \u2014 continuing (onViolation: 'warn')`)}async function zU$($,U,G){$.cancelWorkflowInStrategy(U),await $.failWorkflow(U,G)}function BU$($,U,G){$.feedOperationResult(U,{status:"failed",error:G.message,errorName:G.name,failureCategory:"application"},{value:G})}var $g=B(()=>{Y$()});async function Ug($,U,G,J){if(G.type!=="wait-signal"||$.inlineStrategy===null)return!1;let X=$.inlineStrategy,Q=X.getContext(U);if(Q&&(pv(Q)||dv(Q)))return!1;if(await J.hasBufferedSignal(U,G.signalName))return!1;if(!await J.runSerializedWorkflowStateWrite(U,async()=>{let Y=await J.loadWorkflowState(U);if($.terminalizingWorkflows.has(U)||!Y||Y.status!=="running")return!1;return X.parkWorkflow(U,{retainContext:!0}),$.parkedInlineWorkflows.add(U),!0}))return!1;if(await J.hasBufferedSignal(U,G.signalName))await J.resumeParkedInlineWorkflow(U);return!0}async function CQ($,U,G){if(!$.parkedInlineWorkflows.has(U))return;$.parkedInlineWorkflows.delete(U);try{await QG($,U,!1,G.createLifecycleCallbacks())}catch(J){let X=await G.getParkedWorkflowResumeDisposition(U);if(X==="resumable")throw $.parkedInlineWorkflows.add(U),J;if(X==="corrupt")throw J}}async function Gg($,U,G){if($.terminalizingWorkflows.has(U))return"terminal-or-missing";let J=await G.loadWorkflowState(U);if(!J||J.status!=="running")return"terminal-or-missing";if(!await G.readCheckpointBytes(U))return"corrupt";return"resumable"}async function Jg($,U,G){switch(U.type){case"completed":await KW($,U.workflowId,U.result,G.createTerminationCallbacks());break;case"failed":{let J=Error(U.error);if(U.errorStack)J.stack=U.errorStack;await b6($,U.workflowId,J,G.createTerminationCallbacks(),U.failureCategory??"system");break}case"checkpoint":{let J=G.translateOperationRequest(U.operationRequest);if(await G.persistCheckpoint(U.workflowId,J,U.checkpoint),G.validateDevelopmentCheckpoint(U.workflowId),await G.evaluateConstraints(U.workflowId))break;if(await G.parkInlineWorkflowAfterCheckpoint(U.workflowId,J))break;if(J.type==="wait-signal"&&$.inlineStrategy===null){G.processOperation(U.workflowId,J).catch((Q)=>{let Z=Q instanceof Error?Q:Error(String(Q));return b6($,U.workflowId,Z,G.createTerminationCallbacks(),"system")});break}await G.processOperation(U.workflowId,J);break}}}var UF=B(()=>{$F();j0();O1()});function RQ($){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 TQ($){$.nextRetentionSweepAt=$.options.getNow()+$.options.retentionSweepIntervalMs}function EQ($,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 J=U.runRetentionSweep().finally(()=>{if($.retentionSweepInFlight===J)$.retentionSweepInFlight=null});$.retentionSweepInFlight=J},$.options.retentionSweepIntervalMs)}async function SQ($,U,G){try{await p3($,void 0,{expiredOnly:!0,limit:$.options.retentionSweepBatchSize,now:$.options.getNow()},G)}catch(J){U("retentionSweep",J)}}function GF($,U){let G=$.registrations.get(U);if(G?.retention)return{type:U,source:"workflow",retention:G.retention};if($.options.retention!==null)return{type:U,source:"engine",retention:$.options.retention};return{type:U,source:"none",retention:null}}function Xg($,U=(G)=>GF($,G)){let G=[...$.registrations.keys()].toSorted().map((J)=>U(J));return{defaultRetention:$.options.retention,sweepIntervalMs:$.options.retentionSweepIntervalMs,sweepBatchSize:$.options.retentionSweepBatchSize,nextSweepAt:$.nextRetentionSweepAt,workflowTypes:G}}var JF=B(()=>{g5()});function MG($){return{createLifecycleCallbacks:()=>t$($),createTerminationCallbacks:()=>z$($),evaluateConstraints:(U)=>ev(z($),U,Xx($)),getParkedWorkflowResumeDisposition:(U)=>Gg(z($),U,MG($)),hasBufferedSignal:(U,G)=>PT(z($),U,G),loadWorkflowState:(U)=>J$(z($),U),parkInlineWorkflowAfterCheckpoint:(U,G)=>Ug(z($),U,G,MG($)),persistCheckpoint:(U,G,J)=>WU$($,U,G,J),processOperation:(U,G)=>gx(z($),U,G,eW($)),readCheckpointBytes:(U)=>z($).storage.get(V.checkpoint(U)),resumeParkedInlineWorkflow:(U)=>CQ(z($),U,MG($)),runSerializedWorkflowStateWrite:(U,G)=>i6(z($),U,G),translateOperationRequest:(U)=>vx(z($),U),validateDevelopmentCheckpoint:(U)=>av(z($),U,{dispatchEvent:(G)=>{$.dispatchEvent(G)}})}}function WU$($,U,G,J){return iv(z($),U,G,J,{appendTimelineBatchOperations:(X,Q,Z,Y,j)=>lv(z($),X,Q,Z,Y,j),swallowPromiseRejection:(X)=>{F4(X)},validateAttributeValueSizes:Y8,pruneCheckpointHistory:(X,Q)=>sv(z($),X,Q),dispatchEvent:(X)=>{$.dispatchEvent(X)},enforceHistoryCircuitBreaker:(X)=>zU(z($),X,"timed-out",z$($),sX)})}function FU$($){EQ(z($),{hasConfiguredRetention:()=>RQ(z($)),runRetentionSweep:()=>SQ(z($),(U,G)=>z$($).handleCleanupError(U,G),(U)=>d4(z($),U,z$($))),setNextRetentionSweepAt:()=>TQ(z($))})}var Qg=B(()=>{y();k6();j8();N8();uv();tv();$g();UF();q1();jQ();JF();$0();a$();l4();O1();NQ();N8();Jx(($)=>FU$($))});async function Zg($,U){let G=[],J=new S6($.storage,U);for await(let X of J.scan())G.push({type:X.type,timestamp:X.timestamp,data:Bz(X.payload)});return G}async function Yg($,U){if($.options.checkpointHistory<=0)return[];let G=`${V.checkpoint(U)}:`,J=[];for await(let[,X]of $.storage.scan(G,{reverse:!0,limit:$.options.checkpointHistory})){let Q=I$(X);J.push({step:Q.step,timestamp:Q.createdAt,sizeBytes:X.byteLength})}return J}async function jg($,U,G){let J=await $.storage.get(V.checkpointHistory(U,G));if(!J)return null;let X=await o0($.storage,U,I$(J));return zz({step:X.step,locals:X.locals,searchAttributes:X.searchAttributes,version:X.version,createdAt:X.createdAt})}async function Dg($,U){let G=[];for await(let[,J]of $.storage.scan(V.timelinePrefix(U))){let X;try{X=O(J)}catch{continue}if(BC(X))G.push({...X,inputSummary:Wz(X.inputSummary)??X.inputSummary,...X.outputSummary!==void 0?{outputSummary:Wz(X.outputSummary)??X.outputSummary}:{}})}return G.sort((J,X)=>J.step-X.step),G}async function Hg($,U,G){let J=await $.storage.get(V.checkpointHistory(U,G));if(!J)return null;let Q=await new S6($.storage,U).replay(Math.max(G-1,-1)),Z=await o0($.storage,U,I$(J)),Y=await Z0($.storage,U);return{checkpoint:zz({step:Z.step,locals:Z.locals,searchAttributes:Z.searchAttributes,version:Z.version,createdAt:Z.createdAt}),accumulatedResults:Z.accumulatedResults.map(([j,D])=>[j,i0(D)]),events:Q.map((j)=>({type:j.type,timestamp:j.timestamp,data:Bz(j.payload)})),...Y!==null?{compactedBefore:Y.sequence}:{}}}var _g=B(()=>{y();d6();u();D3();_U();s0();o3();B$();A$()});function Lg($,U){let G=0,J=$.length;while(G<J){let X=G+J>>>1;if($[X].timestamp<U)G=X+1;else J=X}return G}class XF{#$;#U;#G;constructor($){this.#$=$,this.#U=[],this.#G=0}record($,U){if(this.#U.push({timestamp:$,failed:U}),U)this.#G++;this.#J($)}rate($){if(this.#J($),this.#U.length===0)return 0;return this.#G/this.#U.length}#J($){let U=$-this.#$,G=Lg(this.#U,U);if(G===0)return;for(let J=0;J<G;J++)if(this.#U[J].failed)this.#G--;this.#U.splice(0,G)}}class QF{#$;#U;#G;constructor($){this.#$=$,this.#U=[],this.#G=[]}record($,U){this.#U.push({timestamp:$,value:U}),this.#J(U),this.#Q($)}percentile($,U){if(this.#Q(U),this.#G.length===0)return 0;let G=Math.ceil($/100*this.#G.length)-1;return this.#G[Math.max(0,G)]??0}#J($){let U=0,G=this.#G.length;while(U<G){let J=U+G>>>1;if(this.#G[J]<$)U=J+1;else G=J}this.#G.splice(U,0,$)}#X($){let U=0,G=this.#G.length;while(U<G){let J=U+G>>>1;if(this.#G[J]<$)U=J+1;else G=J}if(U<this.#G.length&&this.#G[U]===$)this.#G.splice(U,1)}#Q($){let U=$-this.#$,G=Lg(this.#U,U);if(G===0)return;for(let J=0;J<G;J++)this.#X(this.#U[J].value);this.#U.splice(0,G)}}var KU$=1e4,ZF;var Vg=B(()=>{Y$();E$();ZF=class ZF{#$;#U;#G;#J;#X;#Q;#Z;#Y;#j;constructor($,U,G=Date.now){this.#$=$,this.#U=U,this.#Y=G,this.#Q=0,this.#Z=new Set,this.#X=[],this.#G=[];for(let J of U.rules)this.#G.push({rule:J,status:"idle",currentValue:0});this.#J=new Map;for(let J=0;J<U.rules.length;J++){let X=U.rules[J],Q=X.window?T$(X.window):60000;if(X.metric==="workflow.failure_rate")this.#J.set(J,new XF(Q));else if(X.metric==="activity.p99_duration")this.#J.set(J,new QF(Q))}this.#_(),this.#j=setInterval(this.#D.bind(this),KU$)}#D(){for(let $=0;$<this.#U.rules.length;$++)this.#L($)}#_(){let $=this.#U.rules.some((J)=>J.metric==="workflow.failure_rate"),U=this.#U.rules.some((J)=>J.metric==="activity.p99_duration");if($){let J=(X)=>{let Q=this.#Y();for(let Z=0;Z<this.#U.rules.length;Z++){if(this.#U.rules[Z].metric!=="workflow.failure_rate")continue;this.#J.get(Z).record(Q,X),this.#L(Z)}};this.#H("workflow:completed",()=>J(!1));for(let X of["workflow:failed","workflow:timed-out","workflow:cancelled"])this.#H(X,()=>J(!0))}if(U)this.#H("activity:completed",(J)=>{if(!(J instanceof RU))return;let X=this.#Y();for(let Q=0;Q<this.#U.rules.length;Q++){if(this.#U.rules[Q].metric!=="activity.p99_duration")continue;this.#J.get(Q).record(X,J.duration),this.#L(Q)}});if(this.#U.rules.some((J)=>J.metric==="storage.size"))this.#H("storage:size-reported",(J)=>{if(!(J instanceof yU))return;this.#Q=J.sizeBytes;for(let X=0;X<this.#U.rules.length;X++){if(this.#U.rules[X].metric!=="storage.size")continue;this.#L(X)}})}#H($,U){this.#X.push({type:$,handler:U}),this.#$.addEventListener($,U)}#L($){let U=this.#U.rules[$],G=this.#G[$],J=this.#Y(),X=0,Q=U.threshold;if(U.metric==="workflow.failure_rate")X=this.#J.get($).rate(J);else if(U.metric==="activity.p99_duration")X=this.#J.get($).percentile(99,J);else if(U.metric==="storage.size")X=this.#Q;if(G.currentValue=X,X>=Q&&G.status==="idle")G.status="firing",G.lastFiredAt=J,this.#$.dispatchEvent(new fU(U.metric,Q,X,U.window)),this.#V(U,"alert:fired",X);else if(X<Q&&G.status==="firing")G.status="idle",G.lastResolvedAt=J,this.#$.dispatchEvent(new wU(U.metric,Q,X,U.window)),this.#V(U,"alert:resolved",X)}#V($,U,G){if($.action==="log")console.warn(`[weft:alert] ${U}: ${$.metric} = ${G} (threshold: ${$.threshold})`);if($.action==="webhook")this.#z($,U,G)}#z($,U,G){let J=this.#U.webhooks??[];for(let X of J){if(!X.events.includes(U))continue;let Q=new AbortController;this.#Z.add(Q);let Z={event:U,alert:{metric:$.metric,threshold:$.threshold,currentValue:G,window:$.window,timestamp:this.#Y()}};fetch(X.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Z),signal:AbortSignal.any([Q.signal,AbortSignal.timeout(30000)])}).catch(()=>{}).finally(this.#Z.delete.bind(this.#Z,Q))}}get states(){return this.#G}[Symbol.dispose](){if(this.#j!==null)clearInterval(this.#j),this.#j=null;for(let{type:$,handler:U}of this.#X)this.#$.removeEventListener($,U);this.#X=[];for(let $ of this.#Z)$.abort();this.#Z.clear()}}});var YF;var zg=B(()=>{YF=class YF{#$;#U;constructor($,U){this.#$=$,this.#U=U?.timeoutMilliseconds??30000}async execute($){let U=await this.#$.acquire(),G=!1;try{return await new Promise((J)=>{let X=!1,Q=(_)=>{if(X)return;X=!0,D(),J(_)},Z=(_)=>{if(_.data.operationId===$.operationId)Q(_.data)},Y=(_)=>{Q({operationId:$.operationId,status:"failed",error:`Activity worker crashed: ${_.message??"unknown error"}`})},j=setTimeout(()=>{Q({operationId:$.operationId,status:"failed",error:`Activity "${$.activityName}" timed out after ${this.#U}ms (operationId: ${$.operationId})`}),G=!0,U.terminate()},this.#U),D=()=>{clearTimeout(j),U.removeEventListener("message",Z),U.removeEventListener("error",Y)};U.addEventListener("message",Z),U.addEventListener("error",Y),U.postMessage($)})}finally{if(!G)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 bQ;var Bg=B(()=>{bQ=class bQ{#$;#U;#G;#J;#X;#Q;#Z;#Y;#j;constructor($){this.#$=new Set,this.#U=[],this.#G=[],this.#J=new Map,this.#X=$.concurrency,this.#Q=$.workerUrl,this.#Z=$.smol??!1,this.#Y=!1,this.#j=null}async acquire(){if(this.#Y)throw Error("WorkerPool has been disposed");let $=this.#U.pop();if($)return $;if(this.#$.size<this.#X)return this.#D();return new Promise((U,G)=>{this.#G.push({resolve:U,reject:G})})}async acquireSpecificWorker($){if(this.#Y)throw Error("WorkerPool has been disposed");if(!this.#$.has($))throw Error("Worker does not belong to this WorkerPool");let U=this.#U.indexOf($);if(U>=0)return this.#U.splice(U,1),$;return new Promise((G,J)=>{let X=this.#J.get($)??[];X.push({resolve:G,reject:J}),this.#J.set($,X)})}discard($){if(!this.#$.has($))return;this.#$.delete($),this.#H($),this.#L($,Error("Worker was discarded from this WorkerPool")),$.terminate(),this.#z(),this.#B()}release($){if(this.#Y&&!this.#j)return;let U=this.#J.get($);if(U&&U.length>0){let J=U.shift();if(U.length===0)this.#J.delete($);J.resolve($);return}let G=this.#G.shift();if(G){G.resolve($);return}this.#U.push($),this.#B()}get availableCount(){return this.#U.length}get totalCount(){return this.#$.size}get pendingCount(){let $=0;for(let U of this.#J.values())$+=U.length;return this.#G.length+$}[Symbol.dispose](){if(this.#Y)return;this.#Y=!0,this.#_()}async[Symbol.asyncDispose](){if(this.#Y)return;if(this.#Y=!0,this.#V(Error("WorkerPool has been disposed")),this.#U.length===this.#$.size){this.#_();return}return new Promise(($)=>{this.#j=()=>{this.#_(),$()}})}#D(){let $={};if(this.#Z)$.smol=!0;let U=new Worker(this.#Q,$);return this.#$.add(U),U}#_(){this.#V(Error("WorkerPool has been disposed"));for(let $ of this.#$)$.terminate();this.#$.clear(),this.#U.length=0,this.#G.length=0,this.#J.clear()}#H($){let U=this.#U.indexOf($);if(U>=0)this.#U.splice(U,1)}#L($,U){let G=this.#J.get($);if(!G)return;this.#J.delete($);for(let J of G)J.reject(U)}#V($){let U=this.#G.splice(0);for(let G of U)G.reject($);for(let G of this.#J.values())for(let J of G)J.reject($);this.#J.clear()}#z(){if(this.#Y)return;while(this.#G.length>0){let $=this.#U.shift();if($){this.#G.shift()?.resolve($);continue}if(this.#$.size<this.#X){this.#G.shift()?.resolve(this.#D());continue}return}}#B(){if(this.#j&&this.#U.length===this.#$.size)this.#j(),this.#j=null}}});function Wg($,U,G,J){return{workflowId:G.workflowId,workflowType:G.workflowType,startedAt:G.startedAt??$.getNow(),abortController:J,getNow:$.getNow,nestingDepth:G.nestingDepth??0,executionStateOwnerId:G.executionStateOwnerId??G.workflowId,...G.sleepReferenceTime!==void 0&&{sleepReferenceTime:G.sleepReferenceTime},...$.resolveWorkflowType!==void 0&&{resolveWorkflowType:$.resolveWorkflowType},...U.searchAttributes&&{searchAttributeSchema:U.searchAttributes},...G.deadline!==void 0&&{deadline:G.deadline},...PU$($,G.workflowId),services:$.getWorkflowServices?.(G.workflowId),...MU$($)}}function PU$($,U){let{registerCancelHandler:G,recordFinalizerState:J}=$;return{...G!==void 0&&{registerCancelHandler:(X)=>G(U,X)},...J!==void 0&&{recordFinalizerState:(X)=>J(U,X)}}}function MU$($){let U=$.getLogSink?.();return U===void 0?{}:{logSink:U}}function Fg($){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 jF;var Kg=B(()=>{r5();f4();jF=class jF{#$;#U;#G;#J;#X;#Q;#Z;#Y;constructor($){this.#$=$,this.#U=new Map,this.#G=new Map,this.#J=new Map,this.#X=new Map,this.#Q=new Map,this.#Z=new Map,this.#Y=null}onMessage($){this.#Y=$}startWorkflow($){let U=this.#$.getRegistration($.workflowType);if(!U){this.#L({type:"failed",workflowId:$.workflowId,error:`No workflow registered with name "${$.workflowType}"`});return}let G=new AbortController;this.#G.set($.workflowId,G);let J=new Y0(Wg(this.#$,U,$,G)),X=this.#$.getComposedWorkflowInterceptor?.()??null;if(F8(J,X),this.#$.development)J.explain(!0);this.#J.set($.workflowId,J);let Q=U.handler(J,$.input);this.#U.set($.workflowId,Q),this.#j($.workflowId,Q,void 0)}resumeWorkflow($){let U=this.#U.get($.workflowId);if(!U){this.#L({type:"failed",workflowId:$.workflowId,error:`No active generator for workflow: ${$.workflowId}`});return}let G=$.operationResult.status==="completed"?$.operationResult.value:void 0,J=$.operationResult.status==="failed"?$.operationResult.failureCategory:void 0,X=$.operationResult.status==="failed"?K7($.operationResult):void 0;if(X)this.#D($.workflowId,U,X,J);else this.#j($.workflowId,U,G)}cancelWorkflow($){let U=this.#G.get($);if(U)U.abort();this.#V($)}parkWorkflow($,U){let G=U?.retainContext?this.#J.get($)??this.#X.get($):void 0;if(this.#V($),G!==void 0)this.#X.set($,G)}getContext($){return this.#J.get($)}getParkedContext($){return this.#X.get($)}clearParkedContext($){this.#X.delete($)}getAbortController($){return this.#G.get($)}waitForWorkflowTurn($){return this.#Z.get($)}waitForWorkflowAdvance($){return this.#Q.get($)}hasGenerator($){return this.#U.has($)}continueWorkflow($,U){let G=this.#U.get($);if(!G)return;this.#j($,G,U)}throwIntoWorkflow($,U,G){let J=this.#U.get($);if(!J)return;this.#D($,J,U,G)}adoptWorkflow($,U,G,J){this.#X.delete($),this.#U.set($,U),this.#J.set($,G),this.#G.set($,J)}[Symbol.dispose](){this.#U.clear(),this.#G.clear(),this.#J.clear(),this.#X.clear(),this.#Q.clear(),this.#Z.clear(),this.#Y=null}async[Symbol.asyncDispose](){this[Symbol.dispose]()}#j($,U,G){return this.#_($,(async()=>{try{if(this.#G.get($)?.signal.aborted)return;let X=await U.next(G);if(X.done){this.#V($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0}),this.#L({type:"completed",workflowId:$,result:X.value});return}let Q=X.value;this.#L({type:"checkpoint",workflowId:$,checkpoint:new ArrayBuffer(0),operationRequest:Q})}catch(J){this.#V($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0});let X={type:"failed",workflowId:$,error:J instanceof Error?J.message:String(J),failureCategory:Q3(J,{defaultErrorCategory:"application"})};if(J instanceof Error&&J.stack!==void 0)X.errorStack=J.stack;this.#L(X)}})())}#D($,U,G,J){return this.#_($,(async()=>{try{if(this.#G.get($)?.signal.aborted)return;let Q=await U.throw(G);if(Q.done){this.#V($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0}),this.#L({type:"completed",workflowId:$,result:Q.value});return}let Z=Q.value;this.#L({type:"checkpoint",workflowId:$,checkpoint:new ArrayBuffer(0),operationRequest:Z})}catch(X){this.#V($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0});let Q={type:"failed",workflowId:$,error:X instanceof Error?X.message:String(X),failureCategory:J??Q3(X,{defaultErrorCategory:"application"})};if(X instanceof Error&&X.stack!==void 0)Q.errorStack=X.stack;this.#L(Q)}})())}#_($,U){let G=U.finally(()=>{if(this.#Q.get($)===G)this.#Q.delete($)});return G.catch(()=>{}),this.#Q.set($,G),G}#H($,U){let G=U.finally(()=>{if(this.#Z.get($)===G)this.#Z.delete($)});return G.catch(()=>{}),this.#Z.set($,G),G}#L($){let U=this.#Y?.($);if(U instanceof Promise){this.#H($.workflowId,U);return}this.#Z.delete($.workflowId)}#V($,U){if(this.#U.delete($),this.#G.delete($),this.#J.delete($),this.#X.delete($),!U?.preserveTrackedAdvance)this.#Q.delete($);if(!U?.preserveTrackedTurn)this.#Z.delete($)}}});class DF{#$=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,G){if(U===null)return;let J=(this.#U.get($)??1)-1;if(J>0){this.#U.set($,J);return}this.#U.delete($),this.forgetWorkflowIfClosed($,G)}wasResumedDuringCheckpointHandling($,U){return U!==null&&(this.#$.get($)??0)>U}forgetWorkflowIfClosed($,U){if(!U||this.#U.has($))return;this.#$.delete($)}}function qU$($){if($===void 0)return!0;if(typeof $!=="object"||$===null)return!1;let U=Object.getPrototypeOf($);return U===Object.prototype||U===null}function xQ($){if(typeof $!=="object"||$===null)return!1;let U=$;return NU$.has(U.level)&&typeof U.message==="string"&&typeof U.workflowId==="string"&&typeof U.workflowType==="string"&&typeof U.timestamp==="number"&&Number.isFinite(U.timestamp)&&qU$(U.attributes)}function Pg($){return typeof $==="object"&&$!==null&&$.type==="log"}var NU$;var vQ=B(()=>{NU$=new Set(["debug","info","warn","error"])});function TU$($){let U=0;return N(E8($,[],(J)=>{U+=J})).byteLength+U}function NG($,U){let G=TU$($);if(U!==void 0&&G>U)throw new S8(G,U);return G}function Tg($){let U=EU$($);SU$(U),bU$(U)}function EU$($){if(typeof $!=="object"||$===null)throw new n$("Worker outbound message must be an object");return $}function SU$($){if(typeof $.workflowId!=="string")throw new n$("Worker outbound message must include workflowId");Ng($,"protocolVersion"),Ng($,"turnId")}function Ng($,U){if($[U]!==void 0&&!Number.isSafeInteger($[U]))throw new n$(`Worker outbound message ${U} must be an integer`)}function bU$($){switch($.type){case"checkpoint":xU$($);return;case"completed":return;case"failed":vU$($);return;case"log":gU$($);return;default:throw new n$("Worker outbound message has an unsupported type")}}function xU$($){if(!($.checkpoint instanceof ArrayBuffer))throw new n$("Worker checkpoint message must include checkpoint bytes");if(typeof $.operationRequest!=="object"||$.operationRequest===null)throw new n$("Worker checkpoint message must include operationRequest")}function vU$($){if(typeof $.error!=="string")throw new n$("Worker failed message must include an error string")}function gU$($){if(!xQ($.record))throw new n$("Worker log message must include a valid log record")}function E8($,U,G){let J=IU$($,U,G);if(J.handled)return J.value;if(U.includes($))throw new n$("Worker protocol message cannot include cyclic values");if(!i8($).valid)throw new n$("Worker protocol message contains non-cloneable values");return mU$($,U,G)}function IU$($,U,G){if(typeof $==="function"||typeof $==="symbol")throw new n$("Worker protocol message cannot include functions or symbols");let J=hU$($,G);if(J.handled)return J;let X=yU$($,U,G);if(X.handled)return X;if(Array.isArray($))return{handled:!0,value:$.map((Q)=>E8(Q,U,G))};if(typeof $!=="object"||$===null)return{handled:!0,value:$};return{handled:!1}}function hU$($,U){if($ instanceof ArrayBuffer)return U($.byteLength),{handled:!0,value:{[Mg]:$.byteLength}};if(ArrayBuffer.isView($))return U($.byteLength),{handled:!0,value:{[Mg]:$.byteLength}};return{handled:!1}}function yU$($,U,G){if($ instanceof Date)return{handled:!0,value:{[OU$]:$.toISOString()}};if($ instanceof Error)return{handled:!0,value:{[AU$]:{name:$.name,message:$.message}}};if($ instanceof Map)return{handled:!0,value:{[CU$]:[...$.entries()].map(([J,X])=>[E8(J,U,G),E8(X,U,G)])}};if($ instanceof Set)return{handled:!0,value:{[RU$]:[...$.values()].map((J)=>E8(J,U,G))}};return{handled:!1}}function mU$($,U,G){U.push($);try{let J={};for(let X of Object.keys($).toSorted())J[X]=E8($[X],U,G);return J}finally{U.pop()}}var A1=1,qg=1000,Og=1048576,HF=4096,Ag=60000,Cg=5000,Rg=5,Mg="__weftBinaryBytes",OU$="__weftDate",AU$="__weftError",CU$="__weftMap",RU$="__weftSet",n$,S8;var _0=B(()=>{u();vQ();n$=class n$ extends Error{constructor($){super($);this.name="WorkerProtocolError"}};S8=class S8 extends n${actualBytes;maxBytes;constructor($,U){super(`Worker protocol message is ${$} bytes, exceeding limit ${U}`);this.actualBytes=$;this.maxBytes=U}}});class _F{#$;constructor($){this.#$=$}async acquireAndSend($,U){try{let G=await this.#$.pool.acquire();this.#$.ownership.setActive($,G),this.#$.attachWorkerListeners(G),this.#U(G,$,U,"run")}catch(G){this.#$.emit({type:"failed",workflowId:$,error:G instanceof Error?G.message:String(G)})}}postResumeMessage($,U,G){this.#U($,U.workflowId,G,"resume")}async resumeParkedWorkflow($,U,G){try{let J=await this.#$.pool.acquireSpecificWorker(U);if(this.#$.isDisposed()||!this.#$.ownership.activateParked($.workflowId,J)){this.#$.pool.release(J);return}this.#$.attachWorkerListeners(J),this.postResumeMessage(J,$,G)}catch(J){if(this.#$.isDisposed()||this.#$.ownership.getParkedWorker($.workflowId)!==U)return;this.#$.ownership.deleteParked($.workflowId),this.#$.emit({type:"failed",workflowId:$.workflowId,error:J instanceof Error?J.message:String(J)})}}async cancelParkedWorkflow($,U){try{let G=await this.#$.pool.acquireSpecificWorker(U),J={type:"cancel",workflowId:$};if(this.#$.requireProtocolVersion())J.protocolVersion=A1;G.postMessage(J),this.#$.detachWorkerListenersIfIdle(G),this.#$.pool.release(G)}catch{}}#U($,U,G,J){if(!this.#$.validateHostToWorkerMessage(U,G,$))return;try{this.#$.beginTurn($,U,G.turnId??0,J),$.postMessage(G,[kU$(G.checkpoint)])}catch(X){this.#G($,U,X,J)}}#G($,U,G,J){if(this.#$.clearTurn($),J==="resume"){this.#$.discardWorkerAndFailWorkflows($,{targetWorkflowId:U,targetCategory:"system",targetError:G instanceof Error?G.message:String(G),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:G instanceof Error?G.message:String(G),failureCategory:"system"})}}function kU$($){if($ instanceof ArrayBuffer)return $;if($.buffer instanceof ArrayBuffer)return $.buffer;throw Error("Worker checkpoint must use an ArrayBuffer-backed view")}var Eg=B(()=>{_0()});class LF{#$=new Map;#U=new Map;#G=new Map;#J=new Set;resetWorkflow($){this.#J.delete($)}markCancelled($){this.#J.add($)}consumeCancelled($){return this.#J.delete($)}getActiveWorker($){return this.#$.get($)}getParkedWorker($){return this.#U.get($)}getTargetWorker($){return this.getActiveWorker($)??this.getParkedWorker($)}setActive($,U){this.#$.set($,U),this.#G.set(U,$)}releaseActive($){let U=this.#$.get($);if(!U)return;return this.#$.delete($),this.#G.delete(U),U}parkActive($,U){if(this.#$.get($)!==U)return!1;return this.#$.delete($),this.#G.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=[],G=this.#G.get($);if(G)U.push(G);for(let[J,X]of this.#U)if(X===$)U.push(J);return U}forgetWorkflow($){let U=this.#$.get($);if(U)this.#G.delete(U);this.#$.delete($),this.#U.delete($),this.#J.delete($)}clear(){this.#$.clear(),this.#U.clear(),this.#G.clear(),this.#J.clear()}workerIsIdle($){if(this.#G.has($))return!1;for(let U of this.#U.values())if(U===$)return!1;return!0}}function Sg($,U){let G={type:"run",protocolVersion:A1,turnId:U.turnId,workflowId:$.workflowId,workflowType:$.workflowType,checkpoint:$.checkpoint,input:$.input,executionStateOwnerId:$.executionStateOwnerId??$.workflowId};if(U.maxProtocolMessageBytes!==void 0)G.maxProtocolMessageBytes=U.maxProtocolMessageBytes;if($.deadline!==void 0)G.deadline=$.deadline;if($.headers)G.headers=$.headers;if(U.hasLogSink)G.hostHasLogSink=!0;return G}function VF($,U){let G={type:"resume",protocolVersion:A1,turnId:U.turnId,workflowId:$.workflowId,checkpoint:$.checkpoint,operationResult:$.operationResult};if(U.maxProtocolMessageBytes!==void 0)G.maxProtocolMessageBytes=U.maxProtocolMessageBytes;if(U.hasLogSink)G.hostHasLogSink=!0;return G}var bg=B(()=>{_0()});class zF{#$=new Map;attach($,U){if(this.#$.has($))return;let G={message:(J)=>{U.message(J.data)},error:U.error,messageerror:U.messageerror};this.#$.set($,G),$.addEventListener("message",G.message),$.addEventListener("error",G.error),$.addEventListener("messageerror",G.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 xg($,U){try{let G=$?.(U);if(G instanceof Promise)return G.then(()=>!1,()=>!0);return!1}catch{return!0}}function vg($){let U=$.operationRequest;return U.type==="wait-signal"||U.kind==="signal-wait"}function gg($,U,G){if(G!==void 0)try{NG($,G)}catch(X){return X instanceof S8?"dropped-oversize":"dropped-invalid"}if(!xQ($.record))return"dropped-invalid";let J=$.record;if(J.workflowId!==$.workflowId)return"dropped-invalid";if(U!==void 0)try{U(J)}catch{n5(J)}return"accepted-valid"}var BF=B(()=>{$W();vQ();_0()});class hg{#$;#U;#G;#J;#X=new WeakMap;constructor($){this.#$=$.floodWindowMs,this.#U=$.floodThreshold,this.#G=$.strikeThreshold,this.#J=$.getNow}recordArrival($){let U=this.#J(),G=this.#Q($),J=U-G.windowStartedAt;if(J>=this.#$||J<0)G.windowStartedAt=U,G.arrivalsInWindow=0;return G.arrivalsInWindow+=1,G.arrivalsInWindow>this.#U?"discard":"tolerate"}recordOutcome($,U){switch(U){case"accepted-valid":return"tolerate";case"dropped-oversize":case"dropped-invalid":{let G=this.#Q($);return G.lifetimeStrikes+=1,G.lifetimeStrikes>=this.#G?"discard":"tolerate"}default:throw Error(`Unknown forwarded-log outcome: ${String(U)}`)}}forget($){this.#X.delete($)}#Q($){let U=this.#X.get($);if(!U)U={windowStartedAt:this.#J(),arrivalsInWindow:0,lifetimeStrikes:0},this.#X.set($,U);return U}}class yg{#$;#U;#G;constructor($){this.#U=$.onLog,this.#G=$.maxProtocolMessageBytes,this.#$=new hg({floodWindowMs:$.floodWindowMs??Ag,floodThreshold:$.floodThreshold??Cg,strikeThreshold:$.strikeThreshold??Rg,getNow:$.getNow??Date.now})}get hasSink(){return this.#U!==void 0}handle($,U,G){if(this.#$.recordArrival($)==="discard")return Ig("forwarded-log flooding");if(typeof U.workflowId!=="string"||!G(U.workflowId))return null;let J=gg(U,this.#U,this.#G);if(this.#$.recordOutcome($,J)==="discard")return Ig("repeated oversize/invalid forwarded logs");return null}forget($){this.#$.forget($)}}function Ig($){let U=`Worker discarded for log abuse: ${$}`;return{targetCategory:"system",targetError:U,otherCategory:"system",otherError:U}}function mg($,U){return new yg({onLog:$?.onLog,maxProtocolMessageBytes:U,getNow:$?.getNow,floodWindowMs:$?.forwardedLogFloodWindowMs,floodThreshold:$?.forwardedLogFloodThreshold,strikeThreshold:$?.forwardedLogStrikeThreshold})}var kg=B(()=>{BF();_0()});class WF{#$;#U;#G;constructor($,U,G){this.#$=$,this.#U=U,this.#G=G}validateHostToWorkerMessage($){try{return NG($,this.#$),null}catch(U){return fg(U,{otherError:"Worker protocol send failed"})}}acceptWorkerMessage($,U){try{if(Tg(U),NG(U,this.#$),this.#U)this.#J($,U);return{accepted:!0,message:U}}catch(G){let J=fU$(U);return{accepted:!1,failure:fg(G,{...J===void 0?{}:{targetWorkflowId:J},otherError:J===void 0?"Worker discarded after protocol violation":`Worker discarded after protocol violation for workflow: ${J}`})}}}#J($,U){if(U.protocolVersion!==A1)throw new n$("Worker protocol version mismatch");let G=this.#G.get($);if(!G)throw new n$("Worker message arrived outside an active turn");if((U.type==="log"?void 0:U.turnId)!==G.turnId||U.workflowId!==G.workflowId)throw new n$("Worker message did not match the active turn")}}function fg($,U){return{...U.targetWorkflowId===void 0?{}:{targetWorkflowId:U.targetWorkflowId},failureCategory:$ instanceof S8?"resource":"system",error:$ instanceof Error?$.message:String($),otherError:U.otherError}}function fU$($){if(typeof $!=="object"||$===null)return;let U=$.workflowId;return typeof U==="string"?U:void 0}var wg=B(()=>{_0()});class FF{#$=new Map;#U;#G;constructor($,U){this.#U=$,this.#G=U}begin($,U,G,J){this.clear($);let X={worker:$,workflowId:U,turnId:G,kind:J,timeout:null};if(this.#U!==void 0)X.timeout=setTimeout(()=>{if(this.#$.get($)===X)this.#G(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 KF;var ug=B(()=>{Eg();bg();kg();BF();wg();vQ();_0();KF=class KF{#$;#U;#G;#J;#X;#Q;#Z;#Y;#j;#D;#_;#H;#L;#V;#z;#B;#F;constructor($,U){let{workflowTurnTimeoutMs:G,maxProtocolMessageBytes:J,requireProtocolVersion:X=!1,discardOnCancel:Q=!1,broadcastEvents:Z=!1}=U??{};if(this.#$=$,this.#U=new LF,this.#G=new zF,this.#Q=new DF,this.#Z=G,this.#Y=J,this.#j=X,this.#D=Q,this.#_=mg(U,J),this.#H=new FF(this.#Z,(Y)=>{this.#b(Y)}),this.#L=new WF(this.#Y,this.#j,this.#H),this.#V=new _F({pool:this.#$,ownership:this.#U,isDisposed:()=>this.#B,requireProtocolVersion:()=>this.#j,validateHostToWorkerMessage:(Y,j,D)=>this.#O(Y,j,D),attachWorkerListeners:(Y)=>{this.#E(Y)},detachWorkerListenersIfIdle:(Y)=>{this.#q(Y)},beginTurn:(Y,j,D,_)=>{this.#H.begin(Y,j,D,_)},clearTurn:(Y)=>{this.#H.clear(Y)},discardWorkerAndFailWorkflows:(Y,j)=>{this.#W(Y,j)},emit:(Y)=>{this.#M(Y)}}),this.#z=null,this.#J=null,this.#X=null,this.#B=!1,this.#F=1,Z)try{this.#J=new BroadcastChannel("weft:events"),this.#X=(Y)=>{this.#x(Y.data)},this.#J.addEventListener("message",this.#X)}catch{}}onMessage($){this.#z=$}startWorkflow($){this.#U.resetWorkflow($.workflowId),this.#Q.resetWorkflow($.workflowId);let U=Sg($,this.#K());if(!this.#O($.workflowId,U))return;this.#V.acquireAndSend($.workflowId,U)}resumeWorkflow($){let U=this.#U.getActiveWorker($.workflowId);if(U){this.#Q.recordResume($.workflowId);let J=VF($,this.#K());this.#V.postResumeMessage(U,$,J);return}let G=this.#U.getParkedWorker($.workflowId);if(G){let J=VF($,this.#K());this.#V.resumeParkedWorkflow($,G,J);return}if(this.#U.consumeCancelled($.workflowId))return;if(!this.#B)this.#M({type:"failed",workflowId:$.workflowId,error:`No worker assigned for workflow: ${$.workflowId}`})}#K(){return{turnId:this.#F++,maxProtocolMessageBytes:this.#Y,hasLogSink:this.#_.hasSink}}cancelWorkflow($){let U=this.#U.getActiveWorker($);if(U){if(this.#U.markCancelled($),this.#D){this.#W(U,{targetWorkflowId:$,skipTarget:!0,otherCategory:"system",otherError:`Worker discarded during cancellation of workflow: ${$}`});return}let J={type:"cancel",workflowId:$};if(this.#j)J.protocolVersion=A1;U.postMessage(J),this.#N($);return}let G=this.#U.getParkedWorker($);if(!G)return;if(this.#U.markCancelled($),this.#U.deleteParked($),this.#D){this.#W(G,{targetWorkflowId:$,skipTarget:!0,otherCategory:"system",otherError:`Worker discarded during cancellation of parked workflow: ${$}`});return}this.#V.cancelParkedWorkflow($,G)}[Symbol.dispose](){this.#P(),this.#$[Symbol.dispose]()}async[Symbol.asyncDispose](){this.#P(),await this.#$[Symbol.asyncDispose]()}#P(){if(this.#B=!0,this.#J){if(this.#X)this.#J.removeEventListener("message",this.#X);this.#J.close()}this.#H.clearAll();let $=this.#U.activeWorkflowIds();for(let U of $)this.#N(U);this.#G.detachAll(),this.#U.clear(),this.#Q.clear(),this.#z=null}async#A($,U){if(Pg(U)){let Q=(Y)=>this.#U.getTargetWorker(Y)===$,Z=this.#_.handle($,U,Q);if(Z)this.#W($,Z);return}if(!this.#S($,U))return;this.#H.clear($);let G=this.#Q.beginCheckpointHandling(U),J=xg(this.#z,U),X=J instanceof Promise?await J:J;try{if(this.#C($,U))return;if(X)return;this.#R($,U,G)}finally{this.#Q.finishCheckpointHandling(U.workflowId,G,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.#q($),this.#Q.forgetWorkflowIfClosed(U.workflowId,this.#U.isWorkflowClosed(U.workflowId)),!0}#R($,U,G){if(U.type!=="checkpoint"||!vg(U))return;if(this.#Q.wasResumedDuringCheckpointHandling(U.workflowId,G))return;if(this.#U.parkActive(U.workflowId,$))this.#$.release($)}#T($,U){this.#W($,{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.#q(U),this.#$.release(U)}#E($){this.#G.attach($,{message:(U)=>{this.#A($,U).catch(()=>{})},error:(U)=>{this.#T($,U)},messageerror:()=>{this.#W($,{targetCategory:"system",targetError:"Worker messageerror event",otherCategory:"system",otherError:"Worker messageerror event"})}})}#q($){this.#G.detachIfIdle($,(U)=>this.#U.workerIsIdle(U))}#O($,U,G){let J=this.#L.validateHostToWorkerMessage(U);if(!J)return!0;if(G)return this.#W(G,{targetWorkflowId:$,targetCategory:J.failureCategory,targetError:J.error,otherCategory:"system",otherError:`Worker discarded after protocol send failure for workflow: ${$}`}),!1;return this.#M({type:"failed",workflowId:$,error:J.error,failureCategory:J.failureCategory}),!1}#S($,U){let G=this.#L.acceptWorkerMessage($,U);if(G.accepted)return!0;return this.#W($,{...G.failure.targetWorkflowId===void 0?{}:{targetWorkflowId:G.failure.targetWorkflowId},targetCategory:G.failure.failureCategory,targetError:G.failure.error,otherCategory:"system",otherError:G.failure.otherError}),!1}#b($){this.#W($.worker,{targetWorkflowId:$.workflowId,targetCategory:"timeout",targetError:`Worker workflow turn timed out after ${this.#Z}ms`,otherCategory:"timeout",otherError:`Worker discarded after workflow turn timed out: ${$.workflowId}`})}#W($,U){let G=this.#U.workflowIdsForWorker($);if(G.length===0){this.#H.clear($),this.#_.forget($);return}for(let J of G){let X=J===U.targetWorkflowId;if(this.#U.forgetWorkflow(J),this.#Q.forgetWorkflowIfClosed(J,!0),X&&U.skipTarget)continue;this.#M({type:"failed",workflowId:J,error:X?U.targetError??U.otherError:U.otherError,failureCategory:X?U.targetCategory??U.otherCategory:U.otherCategory})}this.#H.clear($),this.#_.forget($),this.#G.detach($),this.#$.discard($)}#x($){if($.type==="signal:received"&&typeof $.workflowId==="string"){let U=this.#U.getTargetWorker($.workflowId);if(U)U.postMessage($)}}#M($){let U=this.#z?.($);if(U instanceof Promise)U.catch(()=>{})}}});function lg($){let U=wU$($?.ownership??"none");if(U!=="lease")return{ownershipMode:U,leaseTtlMs:cg,leaseRenewIntervalMs:pg,leaseWaitTimeoutMs:dg};let G=L4($?.leaseTtl,"options.leaseTtl")??cg,J=L4($?.leaseRenewInterval,"options.leaseRenewInterval")??pg,X=L4($?.leaseWaitTimeout,"options.leaseWaitTimeout")??dg;return uU$(G,J,X),{ownershipMode:U,leaseTtlMs:G,leaseRenewIntervalMs:J,leaseWaitTimeoutMs:X}}function wU$($){if($!=="none"&&$!=="lease")throw Error(`Unknown ownership posture "${String($)}". Expected 'none' or 'lease'.`);return $}function uU$($,U,G){if($<=0||U<=0||G<=0)throw Error(`ownership: 'lease' requires positive leaseTtl, leaseRenewInterval, and leaseWaitTimeout (got leaseTtl=${$}ms, leaseRenewInterval=${U}ms, leaseWaitTimeout=${G}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 cg=30000,pg=5000,dg=60000;var ig=B(()=>{A$()});function PF($){return Object.entries($??{})}function gQ($,U){return $}function rg($){return cU$($,{bunEnv:typeof Bun<"u"?Bun.env:void 0,processEnv:typeof process<"u"?process.env:void 0})}function cU$($,U){if(U.bunEnv!==void 0)return U.bunEnv[$];if(U.processEnv!==void 0)return U.processEnv[$];return}function pU$($){return $?.development===!0||rg("WEFT_DEV_WARNINGS")==="1"||rg("NODE_ENV")==="development"}function ag($){let G=$?.storage??void 0;if(G===void 0){if(!ng&&pU$($))ng=!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.)");G=new gG}if(!$?.compression)return G;return new mZ(G,$.compression)}function tg($){return $?.interceptors?[...$.interceptors]:[]}function MF($,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 dU$($){return{retention:C7($?.retention,"options.retention"),retentionSweepIntervalMs:L4($?.retentionSweepInterval,"options.retentionSweepInterval")??nO,retentionSweepBatchSize:$?.retentionSweepBatchSize!==void 0?Math.max(1,Math.floor($.retentionSweepBatchSize)):rO}}function b8($,U){return $??U}function lU$($){return{development:b8($?.development,!1),broadcastEvents:b8($?.broadcastEvents,!1)}}function iU$($){return{checkpointHistory:b8($?.checkpointHistory,10),checkpointSizeWarningThreshold:b8($?.checkpointSizeWarningThreshold,65536),maxNestingDepth:b8($?.maxNestingDepth,10)}}function nU$($){return{historyPolicy:WC($?.history,"options.history"),archiveAdapter:$?.archive??null,payloadSizePolicy:FC($?.payloadSize,"options.payloadSize")}}function rU$($){let U=b8($?.detectSecondInstance,!1),G=U?L4($?.secondInstanceHeartbeatInterval,"options.secondInstanceHeartbeatInterval")??og:og;return{secondInstanceDetectionEnabled:U,secondInstanceHeartbeatIntervalMs:G}}function eg($,U,G){return{storage:$,getNow:G,resolveWorkflowServices:U?.resolveWorkflowServices??null,onLog:U?.onLog??null,...lU$(U),...iU$(U),...dU$(U),...nU$(U),...rU$(U),...lg(U)}}function oU$($){let U=sU$($?.workflowExecutionMode),G=aU$($,U);if(!G)return{mode:"inline",workerExecution:null};return tU$(G)}function sU$($){if($===void 0||$==="inline"||$==="worker")return $;throw Error('options.workflowExecutionMode must be "inline" or "worker" when provided')}function aU$($,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 tU$($){let U=sg($.workflowTurnTimeoutMs,"options.workerExecution.workflowTurnTimeoutMs",void 0)??qg,G=sg($.maxProtocolMessageBytes,"options.workerExecution.maxProtocolMessageBytes",void 0)??Og;if(G<HF)throw Error(`options.workerExecution.maxProtocolMessageBytes must be at least ${HF}`);return{mode:"worker",workerExecution:$,workflowTurnTimeoutMs:U,maxProtocolMessageBytes:G,requireProtocolVersion:!0,discardOnCancel:!0}}function sg($,U,G){if($===void 0)return G;if(typeof $!=="number"||!Number.isSafeInteger($)||$<=0)throw Error(`${U} must be a positive safe integer when provided`);return $}function $I($){let{options:U,getNow:G,maxNestingDepth:J,development:X,broadcastEvents:Q,getRegistration:Z,getComposedWorkflowInterceptor:Y,resolveWorkflowType:j,registerCancelHandler:D,recordFinalizerState:_,getWorkflowServices:L,getLogSink:W}=$,F=oU$(U);if(F.mode==="worker"){let q=new bQ({workerUrl:F.workerExecution.workerUrl,concurrency:F.workerExecution.poolSize??4,smol:F.workerExecution.smol??!1}),A=W?.(),g={broadcastEvents:Q,requireProtocolVersion:F.requireProtocolVersion,discardOnCancel:F.discardOnCancel,workflowTurnTimeoutMs:F.workflowTurnTimeoutMs,maxProtocolMessageBytes:F.maxProtocolMessageBytes,getNow:G,...A!==void 0&&{onLog:A}};return{strategy:new KF(q,g),inlineStrategy:null}}let P=new jF({getRegistration:Z,getNow:G,maxNestingDepth:J,development:X,resolveWorkflowType:j,...Fg({getComposedWorkflowInterceptor:Y,registerCancelHandler:D,recordFinalizerState:_,getWorkflowServices:L,getLogSink:W})});return{strategy:P,inlineStrategy:P}}function UI($){if(!$)return null;return new YF(new bQ({workerUrl:$.workerUrl,concurrency:$.poolSize??4,smol:$.smol??!1}))}function GI($,U,G){return U?new ZF($,U,G):null}var ng=!1,og=15000;var JI=B(()=>{Vg();LP();$P();zg();Bg();Kg();k6();ug();_0();ig();A$()});function QI(){if(NF!==void 0)return NF;return Bun.env.WEFT_DEV_WARNINGS==="1"||Bun.env.NODE_ENV==="development"}function ZI($){NF=$}function YI($){qF=$}function jI(){let $=qF;return qF=void 0,$}function DI(){return XI}function HI($){return OF.has($)}function _I($){OF.delete($)}function LI(){return QI()}var NF,XI=0,qF,OF,IQ;var hQ=B(()=>{OF=new Set,IQ=new FinalizationRegistry(($)=>{if(XI++,$.cleanupInterval!==null)clearInterval($.cleanupInterval),$.cleanupInterval=null;if($.secondInstanceDetectionInterval!==null)clearInterval($.secondInstanceDetectionInterval),$.secondInstanceDetectionInterval=null;if(!$.disposed&&QI()){if($.testToken!==void 0)OF.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 VI($){return typeof $==="function"&&typeof $.name==="string"&&"execute"in $&&typeof $.execute==="function"}function zI($){let U=t$($);return{processPendingUpdatesAfterInlineAdvance:(G)=>U.processPendingUpdatesAfterInlineAdvance(G),swallowPromiseRejection:(G)=>F4(G)}}function BI($,U){return function(){let J=$.deref();if(J===void 0){U.port1.close(),U.port2.close();return}z(J).queuedInlineWorkflowStartFlushScheduled=!1,F4(ZG(z(J),zI(J)))}}async function WI($){await zb(z($),zI($))}function FI($,U){return function(){let J=$.deref();if(J===void 0){if(U.cleanupInterval!==null)clearInterval(U.cleanupInterval),U.cleanupInterval=null;return}let X=z(J);AR(X.updateCoordinator,(Q,Z)=>z$(J).handleCleanupError(Q,Z))()}}function KI($){return function(){let G=$.deref();if(G===void 0)return null;let J=z(G);if(J.disposed)return null;return J.secondInstanceDetector}}function PI($){if($.cleanupInterval!==null)clearInterval($.cleanupInterval??void 0),$.cleanupInterval=null;if($.cleanupIntervalDisposalTracker!==null)$.cleanupIntervalDisposalTracker.disposed=!0,$.cleanupIntervalDisposalTracker.cleanupInterval=null,IQ.unregister($.cleanupIntervalDisposalTracker),$.cleanupIntervalDisposalTracker=null}var AF=B(()=>{A3();N8();hQ();D0();q1();l4()});function yQ($){$.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(),Bb($),$.scheduler[Symbol.dispose](),$.strategy[Symbol.dispose](),$.activityWorkerDispatcher?.[Symbol.dispose](),$.activityWorkerDispatcher=null,$.inlineStrategy=null,PI($),$.retentionSweepInterval!==null)clearInterval($.retentionSweepInterval??void 0),$.retentionSweepInterval=null;$.nextRetentionSweepAt=null,eU$($),$2$($),$.handleCache.clear();for(let U of $.resultResolvers.values())U.reject(new D4);$.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 eU$($){if($.secondInstanceDetectionInterval!==null)clearInterval($.secondInstanceDetectionInterval??void 0),$.secondInstanceDetectionInterval=null;if($.secondInstanceDetector!==null)$.secondInstanceDetector.stop(),$.secondInstanceDetector=null}function $2$($){if($.leaseManager!==null)$.leaseManager.stop(),$.leaseManager=null}var MI=B(()=>{AF();F$();D0()});function NI($,U,G){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}E6(G,$.options.payloadSizePolicy.maxBytes,"finalizer state"),t1($,U,{conditions:[],operations:[{type:"put",key:V.finalizerState(U),value:N(G)}]})}var qI=B(()=>{y();u();c4()});function OI($){let{storage:U,holderId:G,getNow:J,ttlMs:X,renewIntervalMs:Q,waitTimeoutMs:Z}=$,Y=$.acquirePollIntervalMs??U2$,j=Q,D=!1,_=null,L=null,W=null,F=null,P=!1,q=null,A=$.delay??(($$)=>new Promise((b$)=>setTimeout(b$,$$)));function g($$){if(P)return;P=!0,$.onLeaseLost?.($$)}async function f(){let $$=await U.get(V.leaseHolder()),b$=await U.get(V.leaseEpoch());return{epochRaw:b$,holderRaw:$$,epoch:b$===null?null:L5(b$),holder:$$===null?null:V5($$)}}async function m($$,b$,R$){let e$=J()+X,R1=QB({holderId:G,expiresAt:e$,epoch:R$}),SG=await W$(U,[{key:V.leaseEpoch(),expectedValue:$$},{key:V.leaseHolder(),expectedValue:b$}],[{type:"put",key:V.leaseEpoch(),value:XB(R$)},{type:"put",key:V.leaseHolder(),value:R1}]);if(SG)_=R$,L=XB(R$),W=R1;return SG}async function p(){let{epochRaw:$$,holderRaw:b$,epoch:R$,holder:e$}=await f();if($$!==null&&R$===null)throw new ZU('the "lease:epoch" high-water mark is present but does not decode to a valid epoch');if($$===null&&b$!==null)throw new ZU('a "lease:holder" record exists with no "lease:epoch" key (the lease protocol never deletes the epoch)');if(e$!==null&&J()<e$.expiresAt)return!1;let R1=(R$??0)+1;if(R1>=Number.MAX_SAFE_INTEGER)throw new ZU(`the next ownership epoch (${R1}) is at or above the safe-integer ceiling and cannot be minted without bricking future boots`);return m($$,b$,R1)}async function d(){let $$=J(),b$=$$+Z,R$=null,e$=!0;for(;;){if(D)return;if(!e$&&J()>=b$)throw new G8(J()-$$,R$);if(e$=!1,await p())return;let $6=await U.get(V.leaseHolder());if(R$=$6===null?null:V5($6)?.holderId??null,J()>=b$)throw new G8(J()-$$,R$);await A(Y)}}async function X$(){if(D||P||_===null||W===null)return;let $$=J()+X,R$=QB({holderId:G,expiresAt:$$,epoch:_}),e$;try{e$=await W$(U,[{key:V.leaseHolder(),expectedValue:W}],[{type:"put",key:V.leaseHolder(),value:R$}])}catch{let $6=V5(W)?.expiresAt??0;if(J()>=$6-j)g("renewal-unconfirmable");return}if(e$){W=R$;return}g("deposed")}function M$(){if(q!==null)return;q=X$().catch(()=>{}).finally(()=>{q=null})}function v6(){if(D||F!==null)return;F=setInterval(()=>{M$()},Q),F.unref?.()}function f8(){return L===null?null:L.slice()}function i(){if(F!==null)clearInterval(F),F=null}async function Q$(){if(D=!0,i(),q!==null)await q;if(W===null)return;try{if(await W$(U,[{key:V.leaseHolder(),expectedValue:W}],[{type:"delete",key:V.leaseHolder()}]))W=null}catch{}}function Z$(){D=!0,i()}return{acquire:d,startRenewal:v6,renewOnce:X$,currentEpochBytes:f8,release:Q$,stop:Z$}}var U2$=1000;var AI=B(()=>{y();ZB();z5()});async function CF($){let U=await $.get(vV);if(U!==null){let G=new TextDecoder().decode(U);if(!G2$.test(G))throw new V1(null,m0);let J=Number(G);if(!Number.isSafeInteger(J))throw new V1(null,m0);if(J!==m0)throw new V1(J,m0);return}for(let G of J2$)for await(let J of $.scan(G,{limit:1}))throw new V1(null,m0);await $.put(vV,new TextEncoder().encode(String(m0)))}var G2$,J2$;var CI=B(()=>{gV();G2$=/^(?:0|[1-9]\d*)$/,J2$=["wf:","op:","schedule:","ev:","sig:","upd:","idx:"]});async function RI($,U,G,J){if(G==="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 Z=Q.queryHandlers.get(G);if(Z)return Z(J);let Y=Q.exposedAccessors.get(G);if(!Y)return;return Y()}function Z2$($){return X2$.encode(JSON.stringify($))}async function mQ($){try{await $()}catch{}}function Y2$($){let{instanceId:U,heartbeatAt:G,sequence:J}=$;return typeof U==="string"&&U.length>0&&typeof G==="number"&&Number.isFinite(G)&&typeof J==="number"&&Number.isInteger(J)&&J>=0}function j2$($){let U;try{U=JSON.parse(Q2$.decode($))}catch{return null}if(typeof U!=="object"||U===null)return null;let G=U;return Y2$(G)?G:null}function EI($){let{storage:U,instanceId:G,getNow:J,intervalMs:X}=$,Q=$.warn??((f)=>process.emitWarning(f,D2$)),Z=X*(TI+1),Y=0,j=!1,D=!1,_=new Map,L=new Set;async function W(){let f=[];for await(let[m,p]of U.scan(V.livenessPrefix())){let d=j2$(p);if(d!==null&&d.instanceId!==G)f.push({key:m,heartbeat:d})}return f}async function F(f,m){let p=m-Z*H2$;for(let d of f)if(d.heartbeat.heartbeatAt<p)await mQ(()=>U.delete(d.key))}function P(f){let m=new Set;for(let{key:p,heartbeat:d}of f){if(V.liveness(d.instanceId)!==p)continue;m.add(d.instanceId);let X$=_.get(d.instanceId),v6=X$!==void 0&&d.sequence>X$.sequence?X$.advances+1:0;if(_.set(d.instanceId,{sequence:d.sequence,advances:v6}),v6>=TI&&!L.has(d.instanceId))L.add(d.instanceId),Q(`another engine instance (${d.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 p of Array.from(_.keys()))if(!m.has(p))_.delete(p)}let q=!1;async function A(){if(D||q)return;q=!0;let f=!1;try{let m=J(),p=await W();if(!j)j=!0,await F(p,m);if(P(p),D)return;Y+=1;let d={instanceId:G,heartbeatAt:m,sequence:Y};f=!0,await mQ(()=>U.put(V.liveness(G),Z2$(d)))}finally{if(q=!1,f&&D)await mQ(()=>U.delete(V.liveness(G)))}}async function g(){D=!0,await mQ(()=>U.delete(V.liveness(G)))}return{tick:A,stop:g}}function SI($,U){return function(){let J=$();if(J===null){if(U.secondInstanceDetectionInterval!==null)clearInterval(U.secondInstanceDetectionInterval),U.secondInstanceDetectionInterval=null;return}J.tick().catch(()=>{})}}var X2$,Q2$,D2$="WeftSecondInstanceWarning",H2$=10,TI=2;var bI=B(()=>{y();X2$=new TextEncoder,Q2$=new TextDecoder});var xI,vI,gI,RF;var II=B(()=>{y();xV();$U();d6();A3();lz();E$();k6();JU();Cz();e2();D5();g5();NQ();Qg();_g();JI();MI();hQ();AF();F$();B4();qI();xB();G0();D0();UF();q1();AI();j0();c3();oW();tW();w5();CI();_W();JF();$Q();hW();bI();$0();a$();l4();O1();U8();P5();AQ();pW();e2();F$();G0();z5();hQ();xI=Symbol("engineParkedWorkflowCountForTesting"),vI=Symbol("engineSignalWaiterCountForTesting"),gI=Symbol("engineSleepResolverCountForTesting");RF=class RF extends EventTarget{static async create($){let U=new RF($);try{await CF(z(U).storage);for(let[J,X]of PF($.activities)){if(J!==X.name)throw new f0("activity",J,X.name);U.#K(X)}for(let[J,X]of PF($.workflows)){if(J!==X.name)throw new f0("workflow",J,X.name);U.register(X)}if(await U.#$(),$.recover!==!1)await U.recoverAll($.acknowledgeUnknownWorkflowTypes!==void 0?{acknowledgeUnknownWorkflowTypes:$.acknowledgeUnknownWorkflowTypes}:{});if($.startScheduler??$.recover!==!1)z(U).scheduler.start()}catch(G){throw await U[Symbol.asyncDispose](),G}return U}constructor($){super();Nb(this),z(this).registrations=new Map,z(this).workflowTypesByHandler=new WeakMap;let U=ag($),G=$?.getNow??Date.now,J=eg(U,$,G),X=$I({options:$,getNow:G,maxNestingDepth:J.maxNestingDepth,development:J.development,broadcastEvents:J.broadcastEvents,getRegistration:z(this).registrations.get.bind(z(this).registrations),getComposedWorkflowInterceptor:()=>a6(z(this)),resolveWorkflowType:this.#z.bind(this),registerCancelHandler:(D,_)=>JG(z(this),D,_),recordFinalizerState:(D,_)=>NI(z(this),D,_),getWorkflowServices:(D)=>z(this).workflowServices.get(D),getLogSink:()=>J.onLog??void 0});z(this).storage=U,z(this).abortController=new AbortController,z(this).disposed=!1,z(this).handleCache=new Map,z(this).resultResolvers=new Map,z(this).signalWaiters=new Map,z(this).signalWaitersByWorkflow=new Map,z(this).conditionWaiters=new Map,z(this).updateWaiters=new Map,z(this).updateWaitersByWorkflow=new Map,z(this).sleepResolvers=new Map,z(this).sleepResolversByWorkflow=new Map,z(this).interceptors=tg($),z(this).composedWorkflowInterceptor=void 0,z(this).composedActivityInterceptor=void 0,z(this).updateCoordinator=new iz(U),z(this).activityRegistry=new o9,z(this).activityRegistriesByWorkflow=new Map,z(this).workflowDefinitionsByName=new Map,z(this).workflowTypeByWorkflowId=new Map,z(this).activityWorkerDispatcher=null,z(this).checkpoints=new Map,z(this).broadcastChannel=null,z(this).pendingNestingDepth=void 0,z(this).pendingParentHeaders=void 0,z(this).pendingExecutionStateOwnerId=void 0,z(this).workflowNestingDepths=new Map,z(this).workflowHeaders=new Map,z(this).workflowStateWriteChains=new Map,z(this).finalizationRegistry=new FinalizationRegistry(OR(z(this).handleCache)),z(this).options=J,z(this).scheduler=new Y7({storage:U,onTimerFired:(D)=>mB(z(this),D,this.#V()),getNow:G,commitTimerCleanup:(D)=>C$(z(this),D,[],()=>Error("Timer cleanup lost its fenced CAS race"))}),z(this).strategy=X.strategy,z(this).inlineStrategy=X.inlineStrategy,z(this).queuedInlineWorkflowStarts=[],z(this).queuedInlineWorkflowStartIds=new Set,z(this).queuedOrLaunchingInlineWorkflowStartIds=new Set,z(this).queuedInlineWorkflowStartFlushScheduled=!1;let Q=new WeakRef(this),Z=X.inlineStrategy!==null?new MessageChannel:null;if(z(this).queuedInlineWorkflowStartChannel=Z,Z!==null)Z.port1.onmessage=BI(Q,Z);z(this).heartbeatDetails=new Map,z(this).lastHeartbeatDetailsByStep=new Map,z(this).workflowServices=new Map,z(this).pendingAsyncActivities=new Map,z(this).pendingAsyncActivityResolutions=new Map,z(this).pendingStarts=new Set,z(this).pendingScheduleCreations=new Set,z(this).workflowsNeedingTerminalCleanup=new Set,z(this).reviewCoordinator=new dz(U,G),z(this).reviewWaiters=new Map,z(this).reviewWaitersByWorkflow=new Map,z(this).reviewEscalationHandlers=new Map,z(this).workflowReviewIds=new Map,z(this).parkedInlineWorkflows=new Set,z(this).terminalizingWorkflows=new Set,z(this).deliveredPendingUpdateIds=new Map,z(this).cancelHandlersByWorkflow=new Map,z(this).reviewTimerIds=new Map,z(this).pendingWebhooks=new Set,z(this).pendingTimelineEntries=new Map,z(this).pendingAtomicWorkflowCommitSideEffects=new Map,z(this).cleanupIntervalDisposalTracker=null;let Y={disposed:!1,cleanupInterval:null,secondInstanceDetectionInterval:null,testToken:jI()},j=setInterval(FI(Q,Y),60000);Y.cleanupInterval=j,z(this).cleanupInterval=j,z(this).cleanupIntervalDisposalTracker=Y,IQ.register(this,Y,Y),z(this).retentionSweepInterval=null,z(this).retentionSweepInFlight=null,z(this).nextRetentionSweepAt=null,z(this).secondInstanceDetectionInterval=null,z(this).secondInstanceDetector=null,z(this).leaseManager=null,z(this).inFlightLeaseAcquire=null,z(this).deposed=!1,z(this).tearDownAfterDeposition=()=>{this.#U()},z(this).eventLogHeads=new Map,z(this).workflowFeedListeners=new Map,z(this).workflowVersionTuples=new Map,z(this).workflowVisibilityWatermark=void 0,z(this).workflowVisibilityWatermarkExpiresAt=void 0,z(this).activityWorkerDispatcher=UI($?.activityExecution),z(this).strategy.onMessage(this.#B.bind(this)),z(this).alertManager=GI(this,$?.alerts,G),this.#Q(),this.#G()}addEventListener($,U,G){super.addEventListener($,U,G)}removeEventListener($,U,G){super.removeEventListener($,U,G)}async#$(){let $=z(this);if($.options.ownershipMode!=="lease")return;if($.disposed)throw new D4;if($.inFlightLeaseAcquire!==null){await $.inFlightLeaseAcquire;return}if($.leaseManager!==null)return;q$($.storage,"conditionalBatch","ownership: 'lease'");let U=OI({storage:$.storage,holderId:crypto.randomUUID(),getNow:$.options.getNow,ttlMs:$.options.leaseTtlMs,renewIntervalMs:$.options.leaseRenewIntervalMs,waitTimeoutMs:$.options.leaseWaitTimeoutMs,onLeaseLost:(J)=>{if(J==="deposed"){v3($);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.",YB)}});$.leaseManager=U;let G=(async()=>{try{await U.acquire()}catch(J){if($.leaseManager===U)$.leaseManager=null;throw J}if($.disposed){if(await U.release(),$.leaseManager===U)$.leaseManager=null;throw new D4}U.startRenewal()})();$.inFlightLeaseAcquire=G;try{await G}finally{if($.inFlightLeaseAcquire===G)$.inFlightLeaseAcquire=null}}#U(){let $=z(this);if($.disposed)return;let U=$.leaseManager;yQ($),U?.release().catch(()=>{})}#G(){let $=z(this);if(!$.options.secondInstanceDetectionEnabled)return;let U=EI({storage:$.storage,instanceId:crypto.randomUUID(),getNow:$.options.getNow,intervalMs:$.options.secondInstanceHeartbeatIntervalMs});$.secondInstanceDetector=U;let G=$.cleanupIntervalDisposalTracker;if(G===null)return;let J=new WeakRef(this),X=setInterval(SI(KI(J),G),$.options.secondInstanceHeartbeatIntervalMs);$.secondInstanceDetectionInterval=X,G.secondInstanceDetectionInterval=X}#J(){return RQ(z(this))}#X(){TQ(z(this))}#Q(){EQ(z(this),{hasConfiguredRetention:()=>this.#J(),runRetentionSweep:()=>this.#Z(),setNextRetentionSweepAt:()=>this.#X()})}async#Z(){return SQ(z(this),($,U)=>this.#j().handleCleanupError($,U),($)=>d4(z(this),$,this.#j()))}#Y(){return t$(this)}#j(){return z$(this)}#D(){return ZQ(this)}#_(){return n4(this)}#H(){return MG(this)}#L(){return C8(this)}#V(){return PQ(this)}#z($){return t5(z(this),$,this.#D())}get state(){let $=z(this).storage;return{execution:(U,G,J)=>new i2($,V.stateExecution(U,G),J),workflow:(U,G,J)=>new i2($,V.stateWorkflow(U,G),J)}}async#B($){return Jg(z(this),$,this.#H())}#F($){return U0(z(this),$,this.#_())}register($){if(VI($))return this.#K($),gQ(this);return Rb(z(this),$,this.#D()),gQ(this)}registerWorkflows($){for(let[U,G]of Object.entries($)){if(U!==G.name)throw new f0("workflow",U,G.name);this.register(G)}return gQ(this)}addInterceptor($){z(this).interceptors.push($),z(this).composedWorkflowInterceptor=void 0,z(this).composedActivityInterceptor=void 0}#K($){z(this).activityRegistry.register($.name,$)}resolveRegisteredActivity($){return z(this).activityRegistry.resolve($)}registerActivityFunction($,U,G){z(this).activityRegistry.register($,U,G)}unregisterRegisteredActivity($){z(this).activityRegistry.unregister($)}getWorkflowDefinition($){let U=z(this).registrations.get($);return U===void 0?void 0:MF($,U)}listWorkflowDefinitions(){return[...z(this).registrations.entries()].map(([$,U])=>MF($,U))}getActivityDefinition($){return z(this).activityRegistry.getDefinition($)}listActivityDefinitions(){return z(this).activityRegistry.listDefinitions()}async start($,U,G){if(h3(z(this)),G?.idempotencyKey!==void 0)return aB(z(this),$,U,G,this.#Y());return r6(z(this),$,U,G,void 0,this.#Y())}async startOrSignal($,U,G,J){return h3(z(this)),tB(z(this),$,U,G,J,this.#P())}#P(){return{...this.#Y(),signalExistingWorkflow:($,U,G,J)=>this.signal($,U,G,{signalId:J})}}getHandle($){let U=z(this).handleCache.get($);if(U){let G=U.ref.deref();if(G)return G}return I5(z(this),$)}async list($,U){return QE(z(this),$,U)}async aggregate($,U){return pC(z(this),$,U)}getRetentionOverview(){return Xg(z(this),($)=>GF(z(this),$))}async purge($){return CE(z(this),$,(U)=>d4(z(this),U,this.#j()))}async cancelAll($,U){return RE(z(this),$,U)}async retryFailedAll($,U){return TE(z(this),$,U)}async signalAll($,U,G,J){if(J===void 0)return SB(z(this),$,U,G);return SB(z(this),$,U,G,J)}async deleteAll($,U){return EE(z(this),$,(G)=>d4(z(this),G,this.#j()),U)}async tagAll($,U,G){return SE(z(this),$,U,G)}async untagAll($,U,G){return bE(z(this),$,U,G)}async schedule($,U,G,J){if(typeof $==="object"){let X=$,Q=typeof X.workflow==="string"?X.workflow:X.workflow.name,Z=X.every!==void 0?{every:X.every}:{cron:X.cron??""};return IW(z(this),Q,X.input,Z,{...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(G===void 0)throw Error("A cron string or schedule spec must be provided when scheduling by workflow type.");return IW(z(this),$,U,G,J)}async getSchedule($){let U=X0($,"scheduleId"),G=await DU(z(this),U);return G?Wx(G):null}async listSchedules($){return zx(z(this),$)}async pauseSchedule($){return Fx(z(this),$)}async resumeSchedule($){return Kx(z(this),$)}async cancelSchedule($){return Px(z(this),$)}async updateSchedule($,U){return Mx(z(this),$,U)}[y3]($){return vE(z(this),$)}[xI](){return z(this).parkedInlineWorkflows.size}[vI](){return z(this).signalWaiters.size}[gI](){return z(this).sleepResolvers.size}async signal($,U,G,J){return FT(z(this),$,R6(U),G,{loadWorkflowState:(X)=>J$(z(this),X),dispatchEvent:(X)=>this.dispatchEvent(X),broadcast:(X)=>this.#F(X),getComposedInterceptor:()=>a6(z(this)),resumeParkedInlineWorkflow:(X)=>F4(CQ(z(this),X,this.#H()))},J)}async update($,U,G,J){return qT(z(this),$,R6(U),G,J,this.#L())}async query($,U,G){return RI(z(this),$,R6(U),G)}async getStreamChunks($,U,G){return hv(z(this),$,U,G)}async getOffload($,U){return Cv(z(this),$,U)}async fork($,U){return h3(z(this)),jW(z(this),$,U,this.#Y())}async resume($){return h3(z(this)),s5(z(this),$,this.#Y())}async recoverAll($){if(await this.#$(),z(this).disposed)throw new D4;return await xR(z(this)),await Bx(z(this)),YW(z(this),this.#Y(),$)}async completeAsyncActivity($,U){await IR(z(this),$,U,{feedOperationResult:(G,J)=>s6(z(this),G,J),finalizeTimeline:(G,J,X)=>K4(z(this),G,J,X)})}async failAsyncActivity($,U){await yR(z(this),$,U,{feedOperationResult:(G,J,X)=>s6(z(this),G,J,X),finalizeTimeline:(G,J,X)=>K4(z(this),G,J,X)})}async cancel($){await WW(z(this),$,this.#j())}async suspend($){await CW(z(this),$,this.#j())}async timeout($){await FW(z(this),$,this.#j())}async get($){let U=await J$(z(this),$);if(U?.status==="running"&&Wb(z(this),$))return{...U,status:"pending"};return U}async getCurrentCheckpointStep($){let U=z(this).checkpoints.get($);if(U!==void 0)return U.step;let G=await z(this).storage.get(V.checkpoint($));if(G===null)return null;return I$(G).step}async getAttributes($){return HE(z(this),$)}async setAttributes($,U){return _E(z(this),$,U)}async addTags($,...U){return LE(z(this),$,...U)}async removeTags($,...U){return VE(z(this),$,...U)}async getEvents($){return Zg(z(this),$)}async*replayWorkflowFeed($,U,G){yield*vv(z(this),$,U,G)}async snapshotWorkflowFeedTail($,U){return gv(z(this),$,U)}subscribeWorkflowFeedCommits($,U,G){return Iv(z(this),$,U,G)}async listCheckpoints($){return Yg(z(this),$)}async getCheckpointAt($,U){return jg(z(this),$,U)}async getTimeline($){return Dg(z(this),$)}async replayTo($,U){return Hg(z(this),$,U)}async listReviews($){return hb(z(this),$)}async getReview($,U){return yb(z(this),$,U)}async submitReview($,U){return mb(z(this),$,U,{dispatchEvent:this.dispatchEvent.bind(this)})}async getUpdateResult($){return OT(z(this),$)}async submitCoordinatedUpdate($,U,G,J){return AT(z(this),$,U,G,J,this.#L())}[Symbol.dispose](){let $=z(this).leaseManager;yQ(z(this)),$?.release()}async[Symbol.asyncDispose](){if(!z(this).disposed){let $=z(this).leaseManager;try{await WI(this)}finally{yQ(z(this)),await z(this).inFlightLeaseAcquire?.catch(()=>{}),await $?.release()}return}this[Symbol.dispose]()}get storage(){return z(this).storage}get scheduler(){return z(this).scheduler}async fireTimer($){await mB(z(this),$,this.#V())}}});var _2$={};J4(_2$,{shouldEmitEngineLeakWarningForTesting:()=>LI,setNextEngineLeakWarningTokenForTesting:()=>YI,setEngineLeakWarningOverrideForTesting:()=>ZI,hasEngineLeakWarningTokenForTesting:()=>HI,getEngineLeakCollectionCountForTesting:()=>DI,clearEngineLeakWarningTokenForTesting:()=>_I,assertCompatiblePersistedDataVersion:()=>CF,WorkflowTypeNotRegisteredForRecoveryError:()=>k0,WorkflowTeardownPendingError:()=>s9,WorkflowSuspendNotSupportedError:()=>w0,WorkflowNotRegisteredError:()=>T6,WorkflowNotFoundError:()=>m4,WorkflowHandle:()=>m3,WorkflowConcurrencyLimitExceededError:()=>a9,WorkflowAlreadyExistsError:()=>p$,StartOrSignalConflictError:()=>u0,ScheduleHandle:()=>zG,PersistedDataIncompatibleError:()=>V1,IdempotencyKeyPurgedError:()=>f6,HANDLE_RESULT_PROMISE:()=>y3,EngineLeaseNotHeldError:()=>g3,EngineLeaseCorruptedError:()=>ZU,EngineLeaseAcquisitionTimeoutError:()=>G8,EngineDisposedError:()=>D4,EngineCreateNameMismatchError:()=>f0,Engine:()=>RF,ENGINE_SLEEP_RESOLVER_COUNT_FOR_TESTING:()=>gI,ENGINE_SIGNAL_WAITER_COUNT_FOR_TESTING:()=>vI,ENGINE_PARKED_WORKFLOW_COUNT_FOR_TESTING:()=>xI,ENGINE_LEASE_LOST_WARNING_NAME:()=>YB,BulkOperationConfirmationError:()=>j6,BulkDeleteRequiresTerminalWorkflowsError:()=>z1,AsyncActivityTokenNotFoundError:()=>t2,ActivityResolutionError:()=>t9,ActivityReconciliationIndeterminateError:()=>t6,ActivityReconciliationConflictError:()=>_Q,ActivityReconciliationCapabilityError:()=>HQ});var L0=B(()=>{II()});function MU($){return $!==null&&typeof $==="object"&&!Array.isArray($)}function W0($){if($===null||typeof $==="string"||typeof $==="boolean"||typeof $==="number"&&Number.isFinite($))return!0;if(Array.isArray($))return $.every(W0);if(!MU($))return!1;return Object.values($).every(W0)}function h$($){return typeof $==="string"&&$.length>0}function kZ($){return Array.isArray($)&&$.every(h$)}function VP($){if(!MU($))return!1;return Object.values($).every((U)=>typeof U==="string")}function zP($){if(!MU($))return!1;return Object.values($).every(W0)}function NU($){return typeof $==="number"&&Number.isFinite($)}function t($,U,G){return{ok:!1,error:{code:$,message:U,...G!==void 0?{requestedProtocolVersion:G}:{}}}}function fZ($,U,G){let J={};for(let[X,Q,Z,Y]of G){let j=U[X];if(j===void 0){if(Q)return{ok:!1,error:t($,Y)};continue}if(!Z(j))return{ok:!1,error:t($,Y)};J[X]=j}return{ok:!0,values:J}}var O4=2,mw=2,kw=2,wZ=[2];var cZ={$ref:"#/$defs/jsonValue"},BP={type:"object",additionalProperties:cZ},fw={type:"object",additionalProperties:{type:"string"}},uZ={const:O4},pZ={register:{type:"object",additionalProperties:!1,required:["type","protocolVersion","workerId","activities"],properties:{type:{const:"register"},protocolVersion:uZ,workerId:{type:"string",minLength:1},activities:{type:"array",items:{type:"string",minLength:1}},concurrency:{type:"number",minimum:1,maximum:1000},queue:{type:"string",minLength:1},deploymentName:{type:"string",minLength:1},buildId:{type:"string",minLength:1},runtimeVersion:{type:"string",minLength:1},gitSha:{type:"string",minLength:1},startedAt:{type:"number"},capabilities:BP}},heartbeat:{type:"object",additionalProperties:!1,required:["type","workerId"],properties:{type:{const:"heartbeat"},workerId:{type:"string",minLength:1}}},taskResult:{oneOf:[{type:"object",additionalProperties:!1,required:["type","operationId","status","value"],properties:{type:{const:"taskResult"},operationId:{type:"string",minLength:1},status:{const:"completed"},value:cZ,attemptToken:{type:"string",minLength:1}}},{type:"object",additionalProperties:!1,required:["type","operationId","status","error"],properties:{type:{const:"taskResult"},operationId:{type:"string",minLength:1},status:{const:"failed"},error:{type:"string"},attemptToken:{type:"string",minLength:1}}},{type:"object",additionalProperties:!1,required:["type","operationId","status","error"],properties:{type:{const:"taskResult"},operationId:{type:"string",minLength:1},status:{const:"cancelled"},error:{type:"string"},cancelled:{const:!0},attemptToken:{type:"string",minLength:1}}}]},task:{type:"object",additionalProperties:!1,required:["type","operationId","activityName","input"],properties:{type:{const:"task"},operationId:{type:"string",minLength:1},activityName:{type:"string",minLength:1},input:cZ,attempt:{type:"number",minimum:1},headers:fw,attemptToken:{type:"string",minLength:1}}},cancel:{type:"object",additionalProperties:!1,required:["type","operationId"],properties:{type:{const:"cancel"},operationId:{type:"string",minLength:1}}},shutdown:{type:"object",additionalProperties:!1,required:["type"],properties:{type:{const:"shutdown"}}},registerAck:{type:"object",additionalProperties:!1,required:["type","protocolVersion","workerId","queue","activities","concurrency"],properties:{type:{const:"registerAck"},protocolVersion:uZ,workerId:{type:"string",minLength:1},queue:{type:"string",minLength:1},activities:{type:"array",items:{type:"string",minLength:1}},concurrency:{type:"number",minimum:1,maximum:1000}}},registerError:{type:"object",additionalProperties:!1,required:["type","code","message","supportedProtocolVersions"],properties:{type:{const:"registerError"},code:{enum:["invalid_registration","unsupported_protocol_version"]},message:{type:"string"},supportedProtocolVersions:{type:"array",items:uZ},requestedProtocolVersion:{type:"number"}}},protocolError:{type:"object",additionalProperties:!1,required:["type","code","message"],properties:{type:{const:"protocolError"},code:{enum:["invalid_json","invalid_message","unknown_message_type","registration_required"]},message:{type:"string"}}}},ww={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://weft.dev/schemas/remote-worker-protocol.v1.json",title:"Weft RemoteWorker Protocol v1",oneOf:Object.keys(pZ).map(($)=>({$ref:`#/$defs/messages/${$}`})),$defs:{jsonValue:{oneOf:[{type:"null"},{type:"boolean"},{type:"number"},{type:"string"},{type:"array",items:{$ref:"#/$defs/jsonValue"}},{type:"object",additionalProperties:{$ref:"#/$defs/jsonValue"}}]},jsonObject:BP,messages:pZ}};function dZ($){let U=$.attemptToken;if(U===void 0)return{ok:!0,message:{}};if(!h$(U))return t("invalid_message","taskResult.attemptToken must be a non-empty string when present");return{ok:!0,message:{attemptToken:U}}}function uw($,U){let G=U.value;if(!W0(G))return t("invalid_message","completed taskResult.value must be valid JSON");let J=dZ(U);if(!J.ok)return J;return{ok:!0,message:{type:"taskResult",operationId:$,status:"completed",value:G,...J.message}}}function cw($,U){let G=U.error;if(typeof G!=="string")return t("invalid_message","failed taskResult.error must be a string");let J=dZ(U);if(!J.ok)return J;return{ok:!0,message:{type:"taskResult",operationId:$,status:"failed",error:G,...J.message}}}function pw($,U){let G=U.error;if(typeof G!=="string")return t("invalid_message","cancelled taskResult.error must be a string");let J=U.cancelled;if(J!==void 0&&J!==!0)return t("invalid_message","taskResult.cancelled must be true when present");let X=dZ(U);if(!X.ok)return X;return{ok:!0,message:{type:"taskResult",operationId:$,status:"cancelled",error:G,...J===!0?{cancelled:J}:{},...X.message}}}var dw={completed:uw,failed:cw,cancelled:pw};function lw($){return $==="completed"||$==="failed"||$==="cancelled"}function WP($){let U=$.operationId;if(!h$(U))return t("invalid_message","taskResult.operationId must be a non-empty string");let G=$.status;if(!lw(G))return t("invalid_message","taskResult.status must be completed, failed, or cancelled");return dw[G](U,$)}var iw=new Set(["register","heartbeat","taskResult"]),nw=new Set(["registerAck","registerError","protocolError","task","cancel","shutdown"]);function rw($){if($===O4)return{ok:!0,message:$};let U=NU($)?$:void 0;return t("unsupported_protocol_version",`Unsupported RemoteWorker protocol version: ${String($)}`,U)}var ow=[["workerId",!0,h$,"register.workerId must be a non-empty string"],["activities",!0,kZ,"register.activities must be an array of non-empty strings"],["concurrency",!1,NU,"register.concurrency must be a finite number"],["queue",!1,h$,"register.queue must be a non-empty string"],["deploymentName",!1,h$,"register.deploymentName must be a non-empty string when present"],["buildId",!1,h$,"register.buildId must be a non-empty string when present"],["runtimeVersion",!1,h$,"register.runtimeVersion must be a non-empty string when present"],["gitSha",!1,h$,"register.gitSha must be a non-empty string when present"],["startedAt",!1,NU,"register.startedAt must be a finite number when present"],["capabilities",!1,zP,"register.capabilities must be a JSON object when present"]];function sw($){let U=rw($.protocolVersion);if(!U.ok)return U;let G=fZ("invalid_registration",$,ow);if(!G.ok)return G.error;return{ok:!0,message:{type:"register",protocolVersion:U.message,...G.values}}}function aw($){let U=$.workerId;if(!h$(U))return t("invalid_message","heartbeat.workerId must be a non-empty string");return{ok:!0,message:{type:"heartbeat",workerId:U}}}var tw=[["operationId",!0,h$,"task.operationId must be a non-empty string"],["activityName",!0,h$,"task.activityName must be a non-empty string"],["input",!0,W0,"task.input must be valid JSON"],["attempt",!1,NU,"task.attempt must be a finite number"],["headers",!1,VP,"task.headers must be a string map"],["attemptToken",!1,h$,"task.attemptToken must be a non-empty string"]];function ew($){let U=fZ("invalid_message",$,tw);if(!U.ok)return U.error;return{ok:!0,message:{type:"task",...U.values}}}function $u($){let U=$.operationId;if(!h$(U))return t("invalid_message","cancel.operationId must be a non-empty string");return{ok:!0,message:{type:"cancel",operationId:U}}}function Uu(){return{ok:!0,message:{type:"shutdown"}}}function Gu($){let U=$.protocolVersion;if(U!==O4)return t("invalid_message",`registerAck.protocolVersion must be ${String(O4)}`);let{workerId:G,queue:J,activities:X,concurrency:Q}=$;if(!h$(G))return t("invalid_message","registerAck.workerId must be a non-empty string");if(!h$(J))return t("invalid_message","registerAck.queue must be a non-empty string");if(!kZ(X))return t("invalid_message","registerAck.activities must be a string array");if(typeof Q!=="number"||!Number.isFinite(Q))return t("invalid_message","registerAck.concurrency must be a finite number");return{ok:!0,message:{type:"registerAck",protocolVersion:U,workerId:G,queue:J,activities:X,concurrency:Q}}}function Ju($){let{code:U,message:G,supportedProtocolVersions:J,requestedProtocolVersion:X}=$;if(U!=="invalid_registration"&&U!=="unsupported_protocol_version")return t("invalid_message","registerError.code is not recognized");if(typeof G!=="string")return t("invalid_message","registerError.message must be a string");if(!Array.isArray(J)||!J.every((Z)=>Z===O4))return t("invalid_message","registerError.supportedProtocolVersions is invalid");if(X!==void 0&&!NU(X))return t("invalid_message","registerError.requestedProtocolVersion must be a finite number");return{ok:!0,message:{type:"registerError",code:U,message:G,supportedProtocolVersions:J,...X!==void 0?{requestedProtocolVersion:X}:{}}}}function Xu($){let{code:U,message:G}=$;if(U!=="invalid_json"&&U!=="invalid_message"&&U!=="unknown_message_type"&&U!=="registration_required")return t("invalid_message","protocolError.code is not recognized");if(typeof G!=="string")return t("invalid_message","protocolError.message must be a string");return{ok:!0,message:{type:"protocolError",code:U,message:G}}}function FP($){if(!MU($))return t("invalid_message","Worker protocol message must be a JSON object");let U=$.type;if(typeof U!=="string")return t("invalid_message","Worker protocol message.type must be a string");if(!iw.has(U))return t("unknown_message_type",`Unknown worker message type: ${U}`);switch(U){case"register":return sw($);case"heartbeat":return aw($);case"taskResult":return WP($);default:return t("unknown_message_type",`Unknown worker message type: ${U}`)}}function WZ$($){if(!MU($))return t("invalid_message","Server protocol message must be a JSON object");let U=$.type;if(typeof U!=="string")return t("invalid_message","Server protocol message.type must be a string");if(!nw.has(U))return t("unknown_message_type",`Unknown server message type: ${U}`);switch(U){case"registerAck":return Gu($);case"registerError":return Ju($);case"protocolError":return Xu($);case"task":return ew($);case"cancel":return $u($);case"shutdown":return Uu();default:return t("unknown_message_type",`Unknown server message type: ${U}`)}}u();Y$();a();var JY=["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"],Dc=new Set(JY);function eP($){return Dc.has($)}function $M($){let U=new Set;tP($.scope,U),tP($.scp,U);let G=$.permissions;if(Array.isArray(G)){for(let J of G)if(typeof J==="string"&&eP(J))U.add(J)}return U}function tP($,U){if(typeof $!=="string")return;if($.trim().length===0)return;for(let G of $.split(/\s+/)){if(G.length===0)continue;if(eP(G))U.add(G)}}function UM($){let U=$M($),G=typeof $.sub==="string"?$.sub:void 0;return{method:"jwt",scopes:U,claims:$,subject:G,hasScope(J){return U.has(J)}}}function dU($){let U=new Set($.scopes);return{method:"api-key",scopes:U,claims:void 0,subject:$.subject,hasScope(G){return U.has(G)}}}function GM($){let U=new Set($.scopes);return{method:"mtls",scopes:U,claims:void 0,subject:$.subject,hasScope(G){return U.has(G)}}}function K0(){return Hc}function Xj$(){let $=new Set(JY);return{method:"stdio-local",scopes:$,claims:void 0,subject:"stdio-local",hasScope(U){return $.has(U)}}}var Hc={method:"unauthenticated"};function K$($){return $.method!=="unauthenticated"}a();var e="2.0",U$=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 lU($){if($===null)return!0;if(typeof $==="string")return!0;if(typeof $==="number"&&Number.isFinite($))return!0;return!1}var E4="0.6.0";a();class J6 extends I{constructor($){super("McpToolExecutionError",$)}}function M6($,U,G){if(!$.authRequired)return;if(!K$($.principal))throw new J6(`${G} requires authentication`);if(!$.principal.hasScope(U))throw new J6(`${G} requires ${U}`)}async function sG($,U){return $.get(U)}async function r8($,U){return $.list(U)}var P0="2025-11-25",S4="tools/list",JM="notifications/tools/list_changed",aG="resources/list",tG="resources/templates/list",XM=1048576;function QM($,U){return{jsonrpc:e,id:$,result:U}}function o8($,U,G,J){return{jsonrpc:e,id:$,error:J===void 0?{code:U,message:G}:{code:U,message:G,data:J}}}function eG($,U,G){return o8($,U$.INVALID_PARAMS,U,G)}function ZM($,U){return o8($,U$.METHOD_NOT_FOUND,`Unknown MCP method: ${U}`,{method:U})}function YM($){return o8($,U$.INTERNAL_ERROR,"Internal error")}function XY($,U){return o8($,-32002,"Resource not found",{uri:U})}function QY($,U){return o8($,-32011,U,{reason:U})}function $J($){if($===null||typeof $!=="object"||Array.isArray($))return!1;let U=$;if(U.jsonrpc!==e)return!1;return typeof U.method==="string"}function UJ($){return $.id===void 0}function M0($){if($===void 0||$===null)return;return typeof $==="number"?`number:${String($)}`:`string:${$}`}function jM($){try{return{ok:!0,value:JSON.parse($)}}catch{return{ok:!1}}}function DM($){let[U=""]=$.trim().toLowerCase().split(";");return U.trim()==="application/json"}function ZY($,U){if($===null||$.trim().length===0)return!0;return $.split(",").map((G)=>G.split(";")[0]?.trim().toLowerCase()??"").some((G)=>G==="*/*"||G===U)}var _c=["pending","running","completed","failed","cancelled","timed-out","suspended"];function YY($){if(!Fc($))return{ok:!1,message:"List filter must be a JSON object"};let U=Lc($.status),G=Vc($.type,"type"),J=zc($.tags,"tags"),X=HM($.limit,"limit"),Q=HM($.offset,"offset"),Z=Bc([U,G,J,X,Q]);if(Z!==void 0)return Z;return{ok:!0,filter:Wc({status:s8(U),type:s8(G),tags:s8(J),limit:s8(X),offset:s8(Q)})}}function LM($){let U={},G=$.getAll("status");if(G.length===1)U.status=G[0];if(G.length>1)U.status=G;let J=$.get("type");if(J!==null)U.type=J;let X=$.getAll("tag");if(X.length>0)U.tags=X;let Q=$.get("limit");if(Q!==null)U.limit=Number(Q);let Z=$.get("offset");if(Z!==null)U.offset=Number(Z);return YY(U)}function Lc($){if($===void 0)return{ok:!0};if(typeof $==="string")return _M($)?{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 G of $){if(typeof G!=="string"||!_M(G))return{ok:!1,message:"List filter status array contains an invalid workflow status"};U.push(G)}return{ok:!0,value:U}}function Vc($,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 zc($,U){if($===void 0)return{ok:!0};if(!Array.isArray($))return{ok:!1,message:`List filter ${U} must be an array`};let G=[];for(let J of $){if(typeof J!=="string")return{ok:!1,message:`List filter ${U} must contain only strings`};G.push(J)}return{ok:!0,value:G}}function HM($,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 Bc($){for(let U of $)if(!U.ok)return U;return}function s8($){return $.ok?$.value:void 0}function Wc($){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 _M($){return _c.some((U)=>U===$)}function Fc($){return $!==null&&typeof $==="object"&&!Array.isArray($)}function VM(){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 zM($){return M6($,"workflows:read","Listing workflow resources"),(await r8($.engine,{})).items.map((G)=>({uri:a8(G.id,"state"),name:`workflow_${G.id}`,title:`${G.type} workflow ${G.id}`,description:`Current state for workflow ${G.id}.`,mimeType:"application/json"}))}async function jY($,U){M6(U,"workflows:read","Reading workflow resources");let G=FM($);if(G===null)return null;if(G.kind==="search"){let X=await r8(U.engine,G.filter);return GJ($,X)}let J=await sG(U.engine,G.workflowId);if(J===null)return null;switch(G.kind){case"state":return GJ($,J);case"events":return M6(U,"events:read","Reading workflow events"),GJ($,{events:await U.engine.getEvents(G.workflowId)});case"checkpoints":return GJ($,{checkpoints:await U.engine.listCheckpoints(G.workflowId)})}}async function BM($,U,G){if(await jY($,G)===null)return!1;return U.subscriptions.add($),!0}function WM($,U){U.subscriptions.delete($)}function GJ($,U){return{contents:[{uri:$,mimeType:"application/json",text:JSON.stringify(U)}]}}function FM($){let U=Kc($);if(U===null)return null;if(U.pathname==="/search")return Pc(U.searchParams);return Mc(U.pathname)}function Kc($){let U;try{U=new URL($)}catch{return null}if(U.protocol!=="weft:"||U.hostname!=="workflows")return null;return U}function Pc($){let U=LM($);return U.ok?{kind:"search",filter:U.filter}:null}function KM($){return FM($)?.kind==="search"}function Mc($){let U=$.split("/").filter(Boolean).map(Nc);if(U.some((X)=>X===null))return null;if(U.length!==2)return null;let[G,J]=U;if(!G)return null;if(J==="state"||J==="events"||J==="checkpoints")return{kind:J,workflowId:G};return null}function a8($,U){return`weft://workflows/${encodeURIComponent($)}/${U}`}function Nc($){try{return decodeURIComponent($)}catch{return null}}y1();a();var zl=1;class O2 extends I{entityKind;entityName;direction;constructor($,U,G,J){let X=J instanceof Error?J.message:String(J);super("RegistrySchemaConversionError",`Failed to convert ${G} for ${$} "${U}": ${X}`,{cause:J});this.entityKind=$,this.entityName=U,this.direction=G}}function BO($){let U=$.listWorkflowDefinitions(),G=$.listActivityDefinitions(),J=U.toSorted((Y,j)=>{if(Y.type<j.type)return-1;if(Y.type>j.type)return 1;return 0}),X=G.toSorted((Y,j)=>{if(Y.name<j.name)return-1;if(Y.name>j.name)return 1;return 0}),Q=Object.create(null);for(let Y of J)Q[Y.type]=Bl(Y);let Z=Object.create(null);for(let Y of X)Z[Y.name]=Wl(Y);return{registryVersion:zl,workflows:Q,activities:Z}}function Bl($){let U={};if($.inputSchema!==void 0)U.inputSchema=wX("workflow",$.type,"inputSchema",$.inputSchema);if($.outputSchema!==void 0)U.outputSchema=wX("workflow",$.type,"outputSchema",$.outputSchema);if($.description!==void 0)U.description=$.description;if($.tags.length>0)U.tags=[...$.tags];return U}function Wl($){let U={queue:$.queue};if($.inputSchema!==void 0)U.inputSchema=wX("activity",$.name,"inputSchema",$.inputSchema);if($.outputSchema!==void 0)U.outputSchema=wX("activity",$.name,"outputSchema",$.outputSchema);if($.description!==void 0)U.description=$.description;return U}function wX($,U,G,J){try{return Y6(J,G==="inputSchema"?"input":"output")}catch(X){throw new O2($,U,G,X)}}y1();var WO=new WeakMap,WV=30000,BV=2147483647;function m1($){return KO($).tools.map((U)=>U.definition)}async function FO($,U,G){let J=KO(G.engine).toolsByName.get($);if(J===void 0)return uX(`Unknown tool: ${$}`);try{let X=await J.call(U??{},G);return Tl(X)}catch(X){if(X instanceof J6)return uX(X.message);if(X instanceof Error&&X.message==="Workflow cancelled")return uX(X.message);return console.warn("MCP tool execution failed:",X),uX("Tool execution failed")}}function KO($){let U=Fl($),G=WO.get($);if(G!==void 0&&Kl(G.signature,U))return G;let J=Pl($),X={signature:U,tools:J,toolsByName:new Map(J.map((Q)=>[Q.definition.name,Q]))};return WO.set($,X),X}function Fl($){return $.listWorkflowDefinitions().toSorted((U,G)=>U.type<G.type?-1:U.type>G.type?1:0).map((U)=>[U.type,U.description,U.inputSchema])}function Kl($,U){if($.length!==U.length)return!1;for(let G=0;G<$.length;G++){let J=$[G],X=U[G];if(J===void 0||X===void 0)return!1;if(J[0]!==X[0]||J[1]!==X[1]||J[2]!==X[2])return!1}return!0}function Pl($){let U=[...Rl()],G=new Set(U.map((J)=>J.definition.name));for(let J of $.listWorkflowDefinitions().toSorted((X,Q)=>X.type<Q.type?-1:X.type>Q.type?1:0)){if(J.inputSchema===void 0)continue;let X=Sl(El(J.type),G);G.add(X),U.push({definition:{name:X,title:J.type,description:J.description??`Run Weft workflow ${J.type}.`,inputSchema:Ml(J.type,J.inputSchema)},call:async(Q,Z)=>{M6(Z,"workflows:write","Calling workflow tools");let{input:Y,timeoutMs:j}=ql(Q),D=crypto.randomUUID();Z.session.trackRequest(Z.requestId,D);try{if(Z.session.isRequestCancelled(Z.requestId))throw new J6("Workflow cancelled");let _=await b0(Z.engine).start(J.type,Y,{id:D});if(Z.session.isRequestCancelled(Z.requestId))await Z.engine.cancel(_.id);let L=await Al(_,{timeoutMs:j,signal:Z.session.requestSignal(Z.requestId)});if(L.status==="timed-out")return Cl(_.id,j);return{workflowId:_.id,result:L.result}}finally{Z.session.untrackRequest(Z.requestId)}}})}return U.toSorted((J,X)=>J.definition.name<X.definition.name?-1:1)}function Ml($,U){try{return Nl(Y6(U,"input"))}catch(G){throw new O2("workflow",$,"inputSchema",G)}}function Nl($){return{type:"object",additionalProperties:!1,required:["input"],properties:{input:$,timeoutMs:{type:"integer",minimum:1,maximum:BV,default:WV,description:"Maximum milliseconds to wait for the workflow result before returning a running status."}}}}function ql($){if($===null||typeof $!=="object"||Array.isArray($))return{input:$,timeoutMs:WV};let U=$,G=Ol(U.timeoutMs);return{input:U.input,timeoutMs:G}}function Ol($){if($===void 0)return WV;if(typeof $==="number"&&Number.isSafeInteger($)&&$>=1&&$<=BV)return $;throw new J6(`Tool argument "timeoutMs" must be an integer from 1 to ${BV}`)}async function Al($,U){if(U.signal?.aborted)throw new J6("Workflow cancelled");let G,J,X=$.result().then((Y)=>({status:"completed",result:Y})),Q=new Promise((Y)=>{G=setTimeout(()=>Y({status:"timed-out"}),U.timeoutMs)}),Z=U.signal===void 0?void 0:new Promise((Y,j)=>{let D=()=>j(new J6("Workflow cancelled"));U.signal?.addEventListener("abort",D,{once:!0}),J=()=>U.signal?.removeEventListener("abort",D)});try{return await Promise.race(Z===void 0?[X,Q]:[X,Q,Z])}finally{if(G!==void 0)clearTimeout(G);J?.()}}function Cl($,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 Rl(){return[{definition:{name:"start_workflow",description:"Start a Weft workflow and return its workflow id.",inputSchema:v0({type:{type:"string"},input:{},id:{type:"string"}},["type"])},call:async($,U)=>{M6(U,"workflows:write","Starting workflows");let G=x0($),J=L1(G.type,"type"),X=G.input??{},Q=typeof G.id==="string"?{id:G.id}:void 0;return{workflowId:(await b0(U.engine).start(J,X,Q)).id}}},{definition:{name:"signal_workflow",description:"Send a signal to a Weft workflow.",inputSchema:v0({workflowId:{type:"string"},signalName:{type:"string"},payload:{}},["workflowId","signalName"])},call:async($,U)=>{M6(U,"signals:write","Signalling workflows");let G=x0($),J=L1(G.workflowId,"workflowId");return await k9(U,J),await U.engine.signal(J,L1(G.signalName,"signalName"),G.payload),{ok:!0}}},{definition:{name:"update_workflow",description:"Run an update handler on a Weft workflow.",inputSchema:v0({workflowId:{type:"string"},updateName:{type:"string"},payload:{}},["workflowId","updateName"])},call:async($,U)=>{M6(U,"updates:write","Updating workflows");let G=x0($),J=L1(G.workflowId,"workflowId");return await k9(U,J),{result:await U.engine.update(J,L1(G.updateName,"updateName"),G.payload)}}},{definition:{name:"query_workflow",description:"Run a query handler on a Weft workflow.",inputSchema:v0({workflowId:{type:"string"},queryName:{type:"string"},input:{}},["workflowId","queryName"])},call:async($,U)=>{M6(U,"queries:read","Querying workflows");let G=x0($),J=L1(G.workflowId,"workflowId");return await k9(U,J),{result:await U.engine.query(J,L1(G.queryName,"queryName"),G.input)}}},{definition:{name:"cancel_workflow",description:"Cancel a Weft workflow.",inputSchema:v0({workflowId:{type:"string"}},["workflowId"])},call:async($,U)=>{M6(U,"workflows:write","Cancelling workflows");let G=L1(x0($).workflowId,"workflowId");return await k9(U,G),await U.engine.cancel(G),{ok:!0}}},{definition:{name:"list_workflows",description:"List visible Weft workflows.",inputSchema:v0({status:{},type:{type:"string"},tags:{type:"array",items:{type:"string"}},limit:{type:"number"},offset:{type:"number"}})},call:async($,U)=>{M6(U,"workflows:read","Listing workflows");let G=YY(x0($));if(!G.ok)throw new J6(G.message);return await r8(U.engine,G.filter)}},{definition:{name:"get_workflow_state",description:"Read visible Weft workflow state.",inputSchema:v0({workflowId:{type:"string"}},["workflowId"])},call:async($,U)=>{M6(U,"workflows:read","Reading workflow state");let G=L1(x0($).workflowId,"workflowId");return await k9(U,G)}}]}async function k9($,U){let G=await sG($.engine,U);if(G===null)throw new J6(`Workflow "${U}" not found`);return G}function Tl($){return{isError:!1,content:[{type:"text",text:JSON.stringify($)}]}}function uX($){return{isError:!0,content:[{type:"text",text:$}]}}function x0($){if($!==null&&typeof $==="object"&&!Array.isArray($))return $;throw new J6("Tool arguments must be a JSON object")}function L1($,U){if(typeof $==="string"&&$.length>0)return $;throw new J6(`Tool argument "${U}" must be a non-empty string`)}function v0($,U=[]){return{type:"object",properties:$,required:[...U],additionalProperties:!1}}function El($){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 Sl($,U){if(!U.has($))return $;let G=2;while(U.has(`${$}_${String(G)}`))G+=1;return`${$}_${String(G)}`}async function PO($,U){if(!$J($))return{kind:"response",response:eG(null,"Invalid MCP JSON-RPC request")};if(UJ($)){try{await bl($,U)}catch(J){console.error(`[weft.mcp] Ignored MCP notification error for ${$.method}:`,J)}return{kind:"accepted"}}let G=$.id??null;try{let J=await vl($,U);return{kind:"response",response:QM(G,J)}}catch(J){if(J instanceof k1||J instanceof g0)return{kind:"response",response:J.toResponse(G)};if(J instanceof J6)return{kind:"response",response:QY(G,J.message)};return console.error("[weft.mcp] Unhandled MCP dispatcher error:",J),{kind:"response",response:YM(G)}}}async function bl($,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 G=cX($.params),J=U.session.cancelRequest(G.requestId);if(J!==void 0)await U.engine.cancel(J)}}var xl={initialize:async($,U)=>gl($.params,U.session),ping:async()=>({}),[S4]:async($,U)=>({tools:m1(U.engine)}),"tools/call":hl,[aG]:async($,U)=>({resources:await zM(U)}),"resources/read":yl,"resources/subscribe":ml,"resources/unsubscribe":kl,[tG]:async()=>({resourceTemplates:VM()}),"prompts/list":async()=>({prompts:[]}),"prompts/get":async()=>{throw new k1(-32002,"Prompt not found")},"logging/setLevel":async()=>({}),"completion/complete":async()=>({completion:{values:[],total:0,hasMore:!1}})};async function vl($,U){if(U.authRequired&&!K$(U.principal)&&$.method!=="initialize")throw new k1(-32011,"MCP request requires authentication");Il($,U);let G=xl[$.method];if(G===void 0)throw new g0(ZM($.id??null,$.method));return G($,U)}function gl($,U){let G=cX($),J=typeof G.protocolVersion==="string"?G.protocolVersion:void 0;return U.protocolVersion=J===P0?J:P0,U.phase="initializing",{protocolVersion:U.protocolVersion,capabilities:{tools:{listChanged:!0},resources:{subscribe:!0,listChanged:!1},prompts:{},logging:{},completions:{}},serverInfo:{name:"weft",title:"Weft",version:E4}}}function Il($,U){if($.method==="initialize"){if(U.session.phase!=="new")throw new k1(-32000,"MCP session is already initialized");return}if(U.session.phase==="new")throw new k1(-32000,"MCP session must be initialized before requests");if(U.session.phase==="initializing")throw new k1(-32000,"MCP session must receive notifications/initialized before requests")}async function hl($,U){let G=cX($.params),J=G.name;if(typeof J!=="string"||J.length===0)throw new g0(eG($.id??null,"tools/call requires name"));return FO(J,G.arguments??{},{...U,requestId:$.id})}async function yl($,U){let G=FV($),J=await jY(G,U);if(J===null)throw new g0(XY($.id??null,G));return J}async function ml($,U){let G=FV($);if(!await BM(G,U.session,U))throw new g0(XY($.id??null,G));return{}}function kl($,U){let G=FV($);return WM(G,U.session),{}}function FV($){let G=cX($.params).uri;if(typeof G!=="string"||G.length===0)throw new g0(eG($.id??null,`${$.method} requires uri`));return G}function cX($){if($===void 0)return{};if($!==null&&typeof $==="object"&&!Array.isArray($))return $;throw new k1(U$.INVALID_PARAMS,"MCP params must be an object")}class k1 extends I{jsonRpcCode;data;constructor($,U,G){super("McpProtocolError",U);this.jsonRpcCode=$,this.data=G}toResponse($){if(this.jsonRpcCode===-32011)return QY($,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 g0 extends I{response;constructor($){super("McpResponseError",$.error?.message??"MCP response error");this.response=$}toResponse($){return this.response}}Y$();a();class f9 extends I{constructor(){super("McpSessionLimitExceededError","Too many MCP sessions")}}var MO=["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 qO{id;principal;token;phase="new";protocolVersion="2025-11-25";subscriptions=new Set;createdAtMilliseconds;lastActivityMilliseconds;#$=new Map;#U=new Set;#G=new Set;constructor($,U,G=Date.now()){this.id=$,this.principal=U,this.token=crypto.randomUUID(),this.createdAtMilliseconds=G,this.lastActivityMilliseconds=G}touch($=Date.now()){this.lastActivityMilliseconds=$}isIdleExpired($,U){return $-this.lastActivityMilliseconds>U}trackRequest($,U){let G=M0(A2($));if(G===void 0)return;this.#$.set(G,{workflowId:U,abortController:new AbortController})}cancelRequest($){let U=M0(A2($));if(U===void 0)return;let G=this.#$.get(U);if(G===void 0)return;return this.#U.add(U),G.abortController.abort(),G.workflowId}isRequestCancelled($){let U=M0(A2($));return U!==void 0&&this.#U.has(U)}requestSignal($){let U=M0(A2($));if(U===void 0)return;return this.#$.get(U)?.abortController.signal}untrackRequest($){let U=M0(A2($));if(U===void 0)return;this.#$.delete(U),this.#U.delete(U)}workflowForRequest($){let U=M0(A2($));if(U===void 0)return;return this.#$.get(U)?.workflowId}addTarget($){return this.#G.add($),()=>{this.#G.delete($)}}notify($,U){let G=U===void 0?{jsonrpc:"2.0",method:$}:{jsonrpc:"2.0",method:$,params:U};for(let J of this.#G)J(G)}close(){this.#$.clear(),this.#U.clear(),this.subscriptions.clear(),this.#G.clear()}}function A2($){if($===void 0)return;if($===null||typeof $==="string")return $;if(typeof $==="number"&&Number.isFinite($))return $;return}class OO{#$;#U=new Map;#G;#J;#X;#Q;#Z;#Y;constructor($,U={}){this.#$=$,this.#X=U.maximumSessions??1024,this.#Q=U.sessionIdleTimeoutMilliseconds??1800000,this.#Z=U.currentTimeMilliseconds??Date.now,this.#Y=NO($),this.#G=(G)=>{let J=G.workflowId;if(typeof J!=="string")return;this.#j(J)},this.#J=()=>{this.#D()};for(let G of MO)this.#$.addEventListener(G,this.#G);this.#$.addEventListener(F0.type,this.#J)}create($){if(this.#_(),this.#U.size>=this.#X)throw new f9;let U=this.#Z(),G=new qO(crypto.randomUUID(),$,U);return this.#U.set(G.id,G),G}add($){if(this.#_(),this.#U.size>=this.#X)throw new f9;return $.touch(this.#Z()),this.#U.set($.id,$),$}get($){return this.#_(),this.#U.get($)}touch($){if(this.#U.get($.id)!==$)return;$.touch(this.#Z())}delete($){this.#U.get($)?.close(),this.#U.delete($)}closeAll(){for(let $ of this.#U.values())$.close();this.#U.clear()}#j($){let U=[a8($,"state"),a8($,"events"),a8($,"checkpoints")],G=this.#Z();for(let J of this.#U.values()){let X=new Set;for(let Z of U){if(!J.subscriptions.has(Z))continue;X.add(Z)}let Q=[...J.subscriptions].filter(KM);for(let Z of Q)X.add(Z);if(X.size===0)continue;J.touch(G);for(let Z of X)J.notify("notifications/resources/updated",{uri:Z})}this.#_()}#D(){let $=NO(this.#$);if(fl(this.#Y,$))return;this.#Y=$;let U=this.#Z();for(let G of this.#U.values()){if(G.phase!=="ready")continue;G.touch(U),G.notify(JM)}this.#_()}#_(){let $=this.#Z();for(let[U,G]of this.#U){if(!G.isIdleExpired($,this.#Q))continue;G.close(),this.#U.delete(U)}}async[Symbol.asyncDispose](){for(let $ of MO)this.#$.removeEventListener($,this.#G);this.#$.removeEventListener(F0.type,this.#J),this.closeAll()}}function NO($){return m1($).map((U)=>[U.name,U.title,U.description,JSON.stringify(U.inputSchema)??""])}function fl($,U){if($.length!==U.length)return!1;for(let G=0;G<$.length;G++){let J=$[G],X=U[G];if(J===void 0||X===void 0)return!1;if(J[0]!==X[0]||J[1]!==X[1]||J[2]!==X[2]||J[3]!==X[3])return!1}return!0}function AO($,U){return new OO($,U)}class pX extends I{constructor(){super("McpBodyTooLargeError","body too large")}}async function RO($){let U=al($.request,$.publicOrigin,$.trustedHosts);if(U!==null)return U;switch($.request.method){case"POST":return wl($);case"GET":return ll($);case"DELETE":return il($);default:return new Response("Method Not Allowed",{status:405,headers:{allow:"POST, GET, DELETE"}})}}async function wl($){let U=ul($.request);if(U!==null)return U;let G=await cl($);if(G instanceof Response)return G;if(!G.ok)return Response.json({jsonrpc:"2.0",id:null,error:{code:-32700,message:"Parse error"}},{status:200,headers:f1()});let J=pl($,G.value);if(J instanceof Response)return J;let{session:X,createdSession:Q,principal:Z}=J,Y=await PO(G.value,{engine:$.engine,session:X,principal:Z,authRequired:nl($)});if(Y.kind==="accepted")return new Response(null,{status:202,headers:CO(X,Q)});return Response.json(Y.response,{status:200,headers:CO(X,Q)})}function ul($){if(!ZY($.headers.get("accept"),"application/json"))return new Response("Not Acceptable",{status:406});if(!DM($.headers.get("content-type")??""))return new Response("Unsupported Media Type",{status:415});return null}async function cl($){let U=$.maxBodyBytes??XM;try{let G=await sl($.request,U);return jM(new TextDecoder().decode(G))}catch(G){return new Response(G instanceof pX?"Payload Too Large":"Bad Request",{status:G instanceof pX?413:400})}}function pl($,U){let G=KV($.request.headers),J=TO($.request.headers);if(J!==null)return J;if(dl(U,G)){let Z=dX($);try{return{session:$.sessionManager.create(Z),createdSession:!0,principal:Z}}catch(Y){if(Y instanceof f9)return new Response(Y.message,{status:429,headers:f1()});throw Y}}if(G===null)return new Response("Missing Mcp-Session-Id",{status:400});let X=$.sessionManager.get(G);if(X===void 0)return new Response("MCP session not found",{status:404});let Q=dX($);if(!MV(X,Q,PV($.request.headers)))return new Response("Forbidden",{status:403,headers:f1()});return $.sessionManager.touch(X),{session:X,createdSession:!1,principal:Q}}function dl($,U){if(U!==null)return!1;if(!$J($))return!1;return $.method==="initialize"&&!UJ($)}function ll($){if(!ZY($.request.headers.get("accept"),"text/event-stream"))return new Response("Not Acceptable",{status:406});let U=TO($.request.headers);if(U!==null)return U;let G=KV($.request.headers);if(G===null)return new Response("Missing Mcp-Session-Id",{status:400});let J=$.sessionManager.get(G);if(J===void 0)return new Response("MCP session not found",{status:404});let X=dX($);if(!MV(J,X,PV($.request.headers)))return new Response("Forbidden",{status:403,headers:f1()});$.sessionManager.touch(J);let Q=new ReadableStream({start(Z){let Y=new TextEncoder,j=(_)=>{Z.enqueue(Y.encode(`event: message
54
54
  data: ${JSON.stringify(_)}
55
55
 
56
56
  `))};Z.enqueue(Y.encode(`: connected