@lostgradient/weft 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cli-main.js +2 -2
- package/dist/core/engine/construction.d.ts +1 -0
- package/dist/core/engine/engine-create-types.d.ts +14 -0
- package/dist/core/engine/index.js +2 -2
- package/dist/mcp/cli.js +1 -1
- package/dist/server/handler.js +2 -2
- package/dist/server/index.js +1 -1
- package/dist/service-worker/index.js +2 -2
- package/dist/testing/index.js +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/dist/cli-main.js
CHANGED
|
@@ -51,14 +51,14 @@ ${$.map((j)=>{switch(j.change){case"added":return` - field \`${j.field}\` was a
|
|
|
51
51
|
`);if(U.length<=4)return $;return U.slice(0,4).join(`
|
|
52
52
|
`)}function a$$($,U){if(typeof U==="object"&&U!==null&&"type"in U)return{workflowType:h5($,U.type),options:U.options};return{workflowType:h5($,U),options:void 0}}function h5($,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 t$$($,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 pV($,U){return`${U}:${$.stepIndex}`}function m5($,U,j,G=void 0){if(Bb(G),G?.id!==void 0)return G;return{...G,id:`${$.context.workflowId}:${U}:${j}`}}function e$$($,U,j,G){if(G===void 0)return m5($,U,j);let{idPrefix:X,...J}=G;return Bb(J),m5($,U,j,X!==void 0?{...J,id:`${X}:${j}`}:J)}function Bb($){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 f5($){let U=[];for(let j of $){let G=j.next();if(!G.done)U.push(G.value)}return U}function*zb($,U,j,G,X){let J=U.stepIndex++;if(U.accumulatedResults?.has(J)){if(U.explainMode)console.log(`[weft] ctx.startChild("${j}") \u2192 Returning cached result from step ${J}`);return Vb(U.accumulatedResults.get(J),X)}if(U.explainMode)console.log(`[weft] ctx.startChild("${j}", ${JSON.stringify(G)})`),console.log(` \u2192 Creating checkpoint at step ${J}`),console.log(` \u2192 Starting child workflow of type "${j}"`);let Q=crypto.randomUUID(),Z=W$(),H=yield{type:"child-workflow",operationId:Q,workflowType:j,input:G,callerStack:Z,...X!==void 0?{options:X}:{}};return $.accumulatedResults.set(J,H),Vb(H,X)}function Vb($,U){return(U?.parentClosePolicy??"await")==="await"?$:$}function*Pb($,U,j,G){let X=pV(U,"pipe"),J=G;for(let[Q,Z]of j.entries()){let Y=a$$(U,Z);J=yield*$.startChild(Y.workflowType,J,m5(U,X,Q,Y.options))}return J}function*Kb($,U,j,G,X){if(j.length===0)return[];let J=pV(U,"map"),Q=t$$(j.length,X?.concurrency),Z=h5(U,G),Y=[];for(let H=0;H<j.length;H+=Q){let D=j.slice(H,H+Q),L=yield*$.all(D.map((B,z)=>$.startChild(Z,B,m5(U,J,H+z))));for(let B=0;B<L.length;B++)Y[H+B]=L[B]}return Y}function*Nb($,U,j,G,X,J){if(j.length===0)return X;let Q=pV(U,"reduce"),Z=h5(U,G),Y=X;for(let[H,D]of j.entries())Y=yield*$.startChild(Z,{accumulator:Y,item:D,index:H},e$$(U,Q,H,J));return Y}var dV=()=>{};function U4$($){return $==="all"||$==="race"||$==="run-all"}function j4$($){return $==="pending"||$==="fulfilled"||$==="rejected"||$==="aborted"}function G4$($){if($===null||typeof $!=="object")return!1;let U=$;return typeof U.name==="string"&&typeof U.message==="string"}function X4$($){if($===null||typeof $!=="object")return!1;let U=$;if(!j4$(U.status))return!1;if(typeof U.operationId!=="string")return!1;if(U.status==="rejected"&&!G4$(U.reason))return!1;return!0}function J4$($){if($===void 0)return!0;return Array.isArray($)&&$.every((U)=>typeof U==="string")}function Q4$($){return typeof $==="number"&&Number.isSafeInteger($)&&$>=0}function Z4$($){return $!==null&&typeof $==="object"&&$.__weftParallelOperationCache===!0}function Y4$($,U,j,G){if($==="race"){if(U.length!==1||j<1)return!1;let X=U[0];if(X==null||typeof X!=="object")return!1;return X.status==="fulfilled"&&G===void 0}if(U.length!==j)return!1;if($==="run-all")return Array.isArray(G)&&G.length===j;return G===void 0}function B9($){if($===null||typeof $!=="object")return!1;let U=$;if(U.__weftParallelOperationCache!==!0)return!1;if(U.formatVersion!==2)return!1;if(!U4$(U.variant))return!1;if(!Array.isArray(U.branches))return!1;if(!Q4$(U.subOperationCount))return!1;if(!J4$(U.branchNames))return!1;let j=U.subOperationCount;if(!Y4$(U.variant,U.branches,j,U.branchNames))return!1;return U.branches.every(X4$)}function k5($){if(Z4$($)&&!B9($))throw new q6("Parallel operation cache entry is malformed or incompatible with this engine version.")}function e8($,U,j,G){return{__weftParallelOperationCache:!0,formatVersion:2,variant:$,branches:U,...G!==void 0?{branchNames:G}:{},subOperationCount:j}}var q6;var Mb=V(()=>{t();q6=class q6 extends y{constructor($){super("BranchTopologyChangedError",$)}}});function H4$($){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 _4$($){let U=$.branchNames;if(U===void 0)throw Error("Cannot reconstruct ctx.runAll result: cache entry missing branchNames");let j={};for(let G=0;G<U.length;G++){let X=$.branches[G];if(X?.status!=="fulfilled")throw Error(`Cannot reconstruct ctx.runAll result: branch '${U[G]}' is ${X?.status??"missing"}`);j[U[G]]=X.value}return j}function qb($){return $.branches.every((U)=>U.status==="fulfilled")}function*Ab($,U,j){let G=U.stepIndex++;if(U.accumulatedResults?.has(G)){let H=U.accumulatedResults.get(G);if(k5(H),B9(H)){if(H.variant!=="all")throw new q6(`ctx.all step ${G} found a cached entry of variant '${H.variant}'. The same step must use the same parallel primitive across retries.`);if(j.length!==H.subOperationCount)throw new q6(`ctx.all branch count changed across retry: expected ${H.subOperationCount}, got ${j.length}. Branch count must be deterministic.`);if(qb(H))return U.stepIndex+=H.subOperationCount,H4$(H);let D=f5(j);lV(D,`parallel:${G}`);let L=W$();return yield{type:"parallel",operationId:`parallel:${G}`,operations:D,step:G,resumedCacheEntry:H,callerStack:L}}return H}let X=f5(j),J=`parallel:${G}`;lV(X,J);let Q=W$(),Y=yield{type:"parallel",operationId:J,operations:X,step:G,callerStack:Q};return $.accumulatedResults.set(G,D4$(Y,J,X.length)),Y}function D4$($,U,j){return e8("all",$.map((G,X)=>({status:"fulfilled",value:G,operationId:`${U}:${X}`})),j)}function*Ob($,U,j){let G=U.stepIndex++;if(U.accumulatedResults?.has(G)){let Y=U.accumulatedResults.get(G);if(k5(Y),B9(Y)){if(Y.variant!=="race")throw new q6(`ctx.race step ${G} found a cached entry of variant '${Y.variant}'. The same step must use the same parallel primitive across retries.`);if(j.length!==Y.subOperationCount)throw new q6(`ctx.race branch count changed across retry: expected ${Y.subOperationCount}, got ${j.length}. Branch count must be deterministic.`);let H=Y.branches[0];if(H?.status!=="fulfilled")throw new q6(`ctx.race step ${G} cached entry has no fulfilled winner slot \u2014 entry is malformed.`);return U.stepIndex+=Y.subOperationCount,H.value}return Y}let X=f5(j),J=`race:${G}`;lV(X,J);let Q=W$(),Z=yield{type:"race",operationId:J,operations:X,callerStack:Q};return $.accumulatedResults.set(G,{__weftParallelOperationCache:!0,formatVersion:2,variant:"race",branches:[{status:"fulfilled",value:Z,operationId:`${J}:winner`}],subOperationCount:X.length}),Z}function lV($,U){for(let j=0;j<$.length;j++){let G=$[j];if(G!==void 0)G.operationId=`${U}:${j}`}}function*Cb($,U,j,G){let X=U.stepIndex++;if(U.memoCache?.has(j))return U.memoCache.get(j);if(U.accumulatedResults?.has(X)){let Y=U.accumulatedResults.get(X);return U.memoCache??=new Map,U.memoCache.set(j,Y),Y}let J=crypto.randomUUID(),Q=W$(),Z=yield{type:"memo",operationId:J,key:j,fn:G,callerStack:Q};return U.memoCache??=new Map,U.memoCache.set(j,Z),$.accumulatedResults.set(X,Z),Z}function L4$($,U,j){if($.variant!=="run-all")throw new q6(`ctx.runAll step ${j} found a cached entry of variant '${$.variant}'. The same step must use the same parallel primitive across retries.`);let G=$.branchNames??[];if(G.length!==U.length)throw new q6(`ctx.runAll branch count changed across retry: expected ${G.length}, got ${U.length}`);for(let X=0;X<U.length;X++)if(G[X]!==U[X])throw new q6(`ctx.runAll branch order changed across retry: expected '${G[X]}' at index ${X}, got '${U[X]}'. Branch names must appear in the same order across retries.`)}function*Rb($,U,j){let G=U.stepIndex++,X=Object.keys(j);if(U.accumulatedResults?.has(G)){let H=U.accumulatedResults.get(G);if(k5(H),B9(H)){if(L4$(H,X,G),qb(H))return _4$(H);let D=`run-all:${G}`,L=W$();return yield{type:"run-all",operationId:D,branches:j,step:G,resumedCacheEntry:H,callerStack:L}}return H}if(U.explainMode)console.log(`[weft] ctx.runAll({ ${X.join(", ")} })`),console.log(` \u2192 Creating checkpoint at step ${G}`),console.log(` \u2192 Running ${X.length} named branches in parallel`);let J=`run-all:${G}`,Q=W$(),Z=yield{type:"run-all",operationId:J,branches:j,step:G,callerStack:Q},Y=Z;return $.accumulatedResults.set(G,F4$(Y,X,J)),Z}function F4$($,U,j){return e8("run-all",U.map((G)=>({status:"fulfilled",value:$[G],operationId:`${j}:${G}`})),U.length,U)}var u5=V(()=>{dV();Mb()});function iV(){return{hasFirstError:!1,firstError:void 0}}function nV($,U){if(!$.hasFirstError)$.hasFirstError=!0,$.firstError=U}async function Tb($,U,j){let G=$.map((J,Q)=>{let Z=U?.[Q];if(Z?.status==="fulfilled")return Z;return{status:"pending",operationId:J}}),X=iV();return await Promise.all($.map(async(J,Q)=>{if(G[Q]?.status==="fulfilled")return;try{let Z=await j(Q);G[Q]={status:"fulfilled",value:Z,operationId:J}}catch(Z){let Y=Z instanceof Error?Z:Error(String(Z));G[Q]={status:"rejected",reason:{name:Y.name,message:Y.message},operationId:J},nV(X,Z)}})),{slots:G,hasFirstError:X.hasFirstError,firstError:X.firstError}}function rV($,U,j){return e8($,U,U.length,j)}function bb($){return $.map((U,j)=>{if(U.status!=="fulfilled")throw Error(`Branch slot ${j} is ${U.status}, not fulfilled`);return U.value})}var sV=V(()=>{u5()});function Eb($,U){return(j,G)=>{$(j,G,U)}}function Sb($){return(U)=>{let j=$.get(U);if(!j||j.ref.deref()!==void 0)return;$.delete(U)}}function xb($,U){return()=>{$.cleanupExpiredResponses().catch((j)=>{U("cleanupExpiredResponses",j)})}}async function gb($,U,j,G,X){if(G.length===0)return;let J=[...G.map((Q)=>({type:"delete",key:Q})),{type:"delete",key:F.streamTail(U,j)},{type:"delete",key:F.streamMetadata(U,j)}];await $.batch(J).catch((Q)=>{X("cleanupPartialStreamChunks",Q,U)})}async function vb($,U){let j=Object.entries($),G=iV();return{outcomes:await Promise.all(j.map(async([J,[Q,Z]])=>{try{let Y=await U(Q,Z);return{status:"fulfilled",name:J,value:Y}}catch(Y){return nV(G,Y),{status:"rejected",name:J,reason:Y}}})),hasFirstError:G.hasFirstError,firstError:G.firstError}}async function yb($,U){let j={},G=Object.entries($);return await Promise.all(G.map(async([X,[J,Q]])=>{j[X]=await U(J,Q)})),j}var $3=V(()=>{h();sV()});var H0,BU;var w5=V(()=>{H0=class H0 extends Event{static type="human-review:requested";workflowId;reviewId;reviewType;reviewers;constructor($,U,j,G){super(H0.type);this.workflowId=$,this.reviewId=U,this.reviewType=j,this.reviewers=G}};BU=class BU extends Event{static type="human-review:completed";workflowId;reviewId;decision;reviewer;duration;constructor($,U,j,G,X){super(BU.type);this.workflowId=$,this.reviewId=U,this.decision=j,this.reviewer=G,this.duration=X}}});class aV{#$;#U;#j;constructor($,U){if(this.#$=$,typeof U==="function")this.#U=U;else this.#U=U?.getNow??Date.now,this.#j=U?.eventTarget}async createReview($,U){let j=crypto.randomUUID(),G={reviewId:j,workflowId:$,artifact:U.artifact,reviewType:U.reviewType??"general",reviewers:U.reviewers??[],allowPartial:U.allowPartial??!1,createdAt:this.#U()};if(U.timeout!==void 0)G.timeout=U.timeout;if(U.webhookUrl!==void 0)G.webhookUrl=U.webhookUrl;let X=F.review($,j);if(await this.#$.put(X,M(G)),this.#j)this.#j.dispatchEvent(new H0($,j,G.reviewType,G.reviewers));return G}async submitDecision($,U){let j={reviewId:$,decision:U.decision,reviewer:U.reviewer,timestamp:this.#U()};if(U.feedback!==void 0)j.feedback=U.feedback;if(U.sectionDecisions!==void 0)j.sectionDecisions=U.sectionDecisions;return j}async getReview($,U){let j=F.review($,U),G=await this.#$.get(j);if(!G)return null;return A(G)}async listPendingReviews(){let U=[];for await(let[,j]of this.#$.scan("review:"))U.push(A(j));return U}cleanupOperations($,U){return[{type:"delete",key:F.review($,U)}]}checkEscalations($,U,j){let G=j-$.createdAt;for(let X=U.length-1;X>=0;X--){let J=U[X];if(G<J.after)continue;if(J.action!==void 0){let Q=J.action==="auto-approve"?"approved":"rejected";return{type:"auto-decide",decision:Q,auditReason:J.auditReason??`Auto-${Q} after ${J.after}ms`}}if(J.to!==void 0)return{type:"escalate",to:J.to}}return null}}var oV;var tV=V(()=>{h();u();t();w5();oV=class oV extends y{reviewId;elapsed;constructor($,U){super("ReviewTimeoutError",`Review ${$} timed out after ${U}ms`);this.reviewId=$,this.elapsed=U}}});class eV{#$;constructor($){this.#$=$}async createRequest($,U,j,G){let X=crypto.randomUUID(),J={updateId:X,workflowId:$,name:U,payload:j,createdAt:Date.now()};if(G?.idempotencyKey!==void 0)J.idempotencyKey=G.idempotencyKey;let Q=F.update($,X);return await this.#$.put(Q,M(J)),X}async checkIdempotency($,U){let j=F.updateIdempotency($,U),G=await this.#$.get(j);if(!G)return null;let X=A(G);return this.getResponse(X.updateId)}async getPendingUpdates($){let U=F.updatePrefix($),j=[];for await(let[,G]of this.#$.scan(U))j.push(A(G));return j.toSorted((G,X)=>G.createdAt-X.createdAt||(G.updateId<X.updateId?-1:G.updateId>X.updateId?1:0))}buildResponseOperations($,U,j,G,X){let J={updateId:$,result:j,createdAt:Date.now()};if(G!==void 0)J.error=G;let Q=[{type:"delete",key:F.update(U,$)},{type:"put",key:F.updateResponse($),value:M(J)}];if(X!==void 0)Q.push({type:"put",key:F.updateIdempotency(U,X),value:M({updateId:$})});return Q}async deleteRequest($,U){await this.#$.delete(F.update($,U))}async deleteRequestIfUnconsumed($,U){let j=await this.getResponse(U);if(j!==null)return j;return await this.deleteRequest($,U),this.getResponse(U)}async getResponse($){let U=F.updateResponse($),j=await this.#$.get(U);if(!j)return null;return A(j)}async waitForResponse($,U){let j=Date.now()+U;while(Date.now()<j){let G=await this.getResponse($);if(G)return G;let X=j-Date.now();if(X<=0)break;await F1(Math.min(V4$,X))}throw new zU($,U)}async cleanupExpiredResponses($){let U=$??B4$,j=Date.now()-U,G=[],X=new Set;for await(let[Z,Y]of this.#$.scan("upr:")){let H=A(Y);if(H.createdAt<j)G.push(Z),X.add(H.updateId)}if(G.length===0)return 0;let J=[];for await(let[Z,Y]of this.#$.scan("upk:")){let H=A(Y);if(X.has(H.updateId))J.push(Z)}let Q=[...G.map((Z)=>({type:"delete",key:Z})),...J.map((Z)=>({type:"delete",key:Z}))];return await this.#$.batch(Q),G.length}}var zU,T1,PU,V4$=50,B4$=300000;var z9=V(()=>{L6();h();u();t();zU=class zU extends y{updateId;constructor($,U){super("UpdateTimeoutError",`Update ${$} timed out after ${U}ms`);this.updateId=$}};T1=class T1 extends y{updateName;issues;constructor($,U){let j=U.map((G)=>G.message).join("; ");super("UpdateValidationError",`Update "${$}" rejected by validator: ${j}`);this.updateName=$,this.issues=U}};PU=class PU extends y{workflowId;status;constructor($,U){super("WorkflowTerminalError",`Cannot send update to workflow "${$}": workflow is in terminal state "${U}"`);this.workflowId=$,this.status=U}}});function y4($,U,j){if(U===null)return;let G=M($).byteLength;if(G>U)throw new P9(j,G,U)}function U3($,U,j){let G=M($);if(U!==null&&G.byteLength>U)throw new P9(j,G.byteLength,U);return G}var P9;var n6=V(()=>{u();t();P9=class P9 extends y{payloadKind;serializedBytes;maxBytes;constructor($,U,j){super("PayloadSizeExceededError",`${$} exceeds the configured maximum serialized size: ${String(U)} bytes > ${String(j)} byte limit.`);this.payloadKind=$,this.serializedBytes=U,this.maxBytes=j}}});function c5($){return`${Ib}${R($)}:`}function P4$($){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 hb($,U,j){return`${z4$}:${$}:${U}:${j}`}function K4$($,U){let j={version:1,token:U.token,workflowId:U.workflowId,activityName:U.activityName,operationId:U.operationId,step:U.step,attempt:U.attempt,createdAt:U.createdAt};return $.put(F.asyncActivity(U.workflowId,U.token),M(j))}async function N4$($,U){let j=$.pendingAsyncActivities.has(U.token);if($.pendingAsyncActivities.set(U.token,U),await K4$($.storage,U),!j)$.engine.dispatchEvent(new n9(U.token,U.operationId,U.workflowId,U.activityName,U.attempt))}async function mb($,U,j,G){let X=O4$($,j.workflowId,U.token);if(X!==void 0)return kb(j.workflowId,X,G),new Promise(()=>{});return await N4$($,{token:U.token,createdAt:$.options.getNow(),...j}),new Promise(()=>{})}async function fb($){for await(let[,U]of $.storage.scan(Ib)){let j=A(U);if(!P4$(j))continue;$.pendingAsyncActivities.set(j.token,{token:j.token,workflowId:j.workflowId,activityName:j.activityName,operationId:j.operationId,step:j.step,attempt:j.attempt,createdAt:j.createdAt})}}async function M4$($,U){let j=$.pendingAsyncActivities.get(U);if(!j)throw new KU(U);$.pendingAsyncActivities.delete(U);try{await $.storage.delete(F.asyncActivity(j.workflowId,U))}catch(G){throw $.pendingAsyncActivities.set(U,j),G}return j}function q4$($,U){return $.inlineStrategy!==null&&!$.inlineStrategy.hasGenerator(U)}function A4$($,U,j){$.pendingAsyncActivityResolutions??=new Map;let G=$.pendingAsyncActivityResolutions.get(U)??[];G.push(j),$.pendingAsyncActivityResolutions.set(U,G)}function O4$($,U,j){$.pendingAsyncActivityResolutions??=new Map;let G=$.pendingAsyncActivityResolutions.get(U);if(G===void 0)return;let X=G.findIndex((Q)=>Q.token===j);if(X===-1)return;let J=G[X];if(J===void 0)return;if(G.splice(X,1),G.length===0)$.pendingAsyncActivityResolutions.delete(U);return J}function kb($,U,j){j.finalizeTimeline($,U.timelineStatus,U.timelineOutput),j.feedOperationResult($,U.outcome,U.originalReason)}async function ub($,U,j,G,X){let J=await M4$($,U),Q=j.status==="completed"?j.value:j.error,Z={token:U,outcome:j,timelineStatus:j.status,timelineOutput:Q,...X!==void 0?{originalReason:X}:{}};if(q4$($,J.workflowId)){A4$($,J.workflowId,Z);return}kb(J.workflowId,Z,G)}async function wb($,U,j,G){y4(j,$.options.payloadSizePolicy.maxBytes,"activity result"),await ub($,U,{status:"completed",value:j},G)}async function cb($){let U=$.next();while(!U.done){let j=U.value;if(j instanceof Promise){let G;try{G=await j}catch(X){U=$.throw(X);continue}U=$.next(G)}else U=$.next(j)}return U.value}async function pb($,U,j,G){let X=j instanceof Error?j.message:String(j),J=j instanceof Error?j.name:void 0;y4({message:X,name:J},$.options.payloadSizePolicy.maxBytes,"activity result"),await ub($,U,{status:"failed",error:X,...j instanceof Error?{errorName:j.name}:{},failureCategory:"application"},G,{value:j})}var z4$="async-act:v1",Ib="async-act:v1:",p5,KU;var NU=V(()=>{h();u();H$();n6();t();p5=class p5 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=$}};KU=class KU extends y{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 d5($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function $B($){return d5($)&&$.version===1&&d5($.attempts)&&($.completedRetrySleeps===void 0||d5($.completedRetrySleeps))&&($.dispatchedAt===void 0||d5($.dispatchedAt))}function db($,U){if(!Number.isInteger($)||$<=1||$>1e4)throw Error(`Invalid checkpointed activity retry attempt ${String($)} for step ${String(U)}`)}function lb($,U){let j=$.checkpointLocals.__weftActivityRetryState;if(!$B(j))return;let G=j.attempts[String(U)];if(G===void 0)return;return db(G,U),G}function ib($,U){let j=$.checkpointLocals.__weftActivityRetryState;if(!$B(j))return 0;let G=j.completedRetrySleeps?.[String(U)];if(G===void 0)return 0;if(!Number.isInteger(G)||G<0||G>1e4)throw Error(`Invalid checkpointed activity retry sleep count ${String(G)} for step ${String(U)}`);return G}function l5($){let U=$.checkpointLocals.__weftActivityRetryState;return $B(U)?U:void 0}function i5($,U,j,G){let{["__weftActivityRetryState"]:X,...J}=$.checkpointLocals,Q=Object.keys(U).length>0,Z=j!==void 0&&Object.keys(j).length>0,Y=G!==void 0&&Object.keys(G).length>0;if(!Q&&!Z&&!Y){$.checkpointLocals=J;return}$.checkpointLocals={...J,["__weftActivityRetryState"]:{version:1,attempts:U,...Z?{completedRetrySleeps:j}:{},...Y?{dispatchedAt:G}:{}}}}function nb($,U,j){db(j,U);let G=l5($),X=G?{...G.attempts}:{};X[String(U)]=j,i5($,X,G?.completedRetrySleeps,G?.dispatchedAt)}function C4$($,U){let j=l5($);if(!j)return;let G={...j.attempts};delete G[String(U)],i5($,G,j.completedRetrySleeps,j.dispatchedAt)}function rb($,U,j){if(!Number.isInteger(j)||j<0||j>1e4)throw Error(`Invalid completed activity retry sleep count ${String(j)} for step ${String(U)}`);if(C4$($,U),j===0)return;let G=l5($),X=G?{...G.attempts}:{},J=G?{...G.completedRetrySleeps}:{};J[String(U)]=j,i5($,X,J,G?.dispatchedAt)}function sb($,U,j){let G=l5($),X=G?.dispatchedAt?.[String(U)];if(typeof X==="number"&&Number.isFinite(X))return X;if(X!==void 0)throw Error(`Invalid checkpointed activity dispatch anchor ${String(X)} for step ${String(U)}`);let J=G?{...G.attempts}:{},Q=G?.dispatchedAt?{...G.dispatchedAt}:{};return Q[String(U)]=j,i5($,J,G?.completedRetrySleeps,Q),j}function tb($){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=b$($);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>ob)throw Error(`Activity timeout of ${U}ms exceeds the maximum supported per-attempt cap of ${ob}ms (~24.8 days).`);return U}function eb($){return $===void 0?void 0:b$($)}function $E($,U){if(U?.scheduleToCloseTimeout!==void 0)return U.scheduleToCloseTimeout;if(typeof $==="string")return;return $.scheduleToCloseTimeout}function UE($,U){if(U?.timeout!==void 0)return U.timeout;if(typeof $==="string")return;return $.timeout}function R4$($,U){return U-$.dispatchedAt>=$.budgetMs}function jB($,U,j,G){if($===void 0)return;if(!R4$($,G??j))return;throw new ab(U,j-$.dispatchedAt,$.budgetMs,G!==void 0&&j-$.dispatchedAt<$.budgetMs?G-$.dispatchedAt:void 0)}var ab,UB,ob=2147483647;var GB=V(()=>{E$();t();ab=class ab extends y{activityName;elapsed;budget;projectedNextDispatchElapsed;constructor($,U,j,G){super("ActivityScheduleToCloseTimeoutError",G===void 0?`Activity "${$}" exceeded its scheduleToCloseTimeout budget of ${j}ms (elapsed ${U}ms across retries)`:`Activity "${$}" will not retry within its scheduleToCloseTimeout budget of ${j}ms (elapsed ${U}ms; next retry would start at ${G}ms after first dispatch, at or beyond the deadline)`);if(this.activityName=$,this.elapsed=U,this.budget=j,G!==void 0)this.projectedNextDispatchElapsed=G}};UB=class UB extends y{activityName;attempt;timeoutMs;constructor($,U,j){super("ActivityPerAttemptTimeoutError",`Activity "${$}" attempt ${U} exceeded its per-attempt timeout of ${j}ms`);this.activityName=$,this.attempt=U,this.timeoutMs=j}}});function r5($){if($===null||typeof $!=="object"||Array.isArray($))return!1;let U=Object.keys($);if(U.length===0)return!1;for(let j of U)if(!E4$.has(j))return!1;for(let j of U)if(S4$.has(j))return!0;return!1}function j3($,U){let j=U===void 0?[]:Object.entries(U).filter(([G])=>G!==I5&&G!==b4$);if($===void 0){if(j.length===0)return T4$;return Object.fromEntries(j)}return{...Object.fromEntries(j),[I5]:$}}function jE($,U){$.stateSession=U,$.checkpointLocals=j3(U,$.checkpointLocals)}function GE($,U,j){if(WU(U),$.stateSession&&hV($.stateSession,U))return Y0($.stateSession[U]);return j===void 0?void 0:Y0(j)}function XE($,U,j){WU(U);let G=a8($.stateSession)??o8();return G[U]=Y0(j),fV(G),jE($,G),Y0(G[U])}function x4$($,U,j,G){return XE($,U,G(GE($,U,j)))}function g4$($,U){if(WU(U),!$.stateSession||!hV($.stateSession,U))return;let j=a8($.stateSession)??o8();delete j[U],jE($,Object.keys(j).length===0?void 0:j)}function v4$($){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&&r5($[0]))return{hasInput:!1,options:{...$[0],sticky:!0}};if($.length===1)return{hasInput:!0,input:$[0],options:{sticky:!0}};let U=$[1];if(!r5(U))throw Error("sessionState.run() options must be ActivityCallOptions.");return{hasInput:!0,input:$[0],options:{...U,sticky:!0}}}function n5($,U){let j=$.stepIndex++;if($.accumulatedResults?.has(j))return $.accumulatedResults.get(j);let G=U();return $.accumulatedResults??=new Map,$.accumulatedResults.set(j,G),G}function JE($,U,j,G){let X=G!==void 0&&"initial"in G,J=X?Y0(G.initial):void 0;return{get:()=>n5(U,()=>GE(U,j,X?J:void 0)),set:(L)=>n5(U,()=>XE(U,j,L)),update:(L)=>n5(U,()=>x4$(U,j,X?J:void 0,L)),delete:()=>{n5(U,()=>{g4$(U,j);return})},increment(L=1){return this.update((B)=>(B??0)+L)},decrement(L=1){return this.update((B)=>(B??0)-L)},merge(L){return this.update((B)=>({...B??{},...L}))},append(L){return this.update((B)=>[...B??[],L])},removeFirst(){let L;return this.update((B)=>{let z=[...B??[]];return L=z.shift(),z}),L},removeLast(){let L;return this.update((B)=>{let z=[...B??[]];return L=z.pop(),z}),L},run:(L,...B)=>{let z=v4$(B);if(!z.hasInput)return $.run(L,z.options);return $.run(L,z.input,z.options)}}}var T4$,b4$="sessionState",E4$,S4$;var G3=V(()=>{t8();T4$=Object.freeze({}),E4$=new Set(["timeout","queue","retry","idempotencyKey","sticky","visibilityTimeout","scheduleToCloseTimeout"]),S4$=new Set(["queue","retry","idempotencyKey","sticky","visibilityTimeout","scheduleToCloseTimeout"])});function ZE($,U,j){let G={context:$,abortController:U.abortController,stepIndex:U.initialStep??0,accumulatedResults:U.accumulatedResults,stateSession:j,checkpointLocals:j3(j,U.locals),searchAttributes:U.searchAttributes?{...U.searchAttributes}:{},searchAttributeSchema:U.searchAttributeSchema,workflowInterceptor:void 0,pendingAttributeChanges:void 0,updateHandlers:void 0,updateValidators:void 0,queryHandlers:void 0,exposedValues:void 0,memoCache:void 0,deadline:U.deadline,getNow:U.getNow??Date.now,sleepReferenceTime:U.sleepReferenceTime,explainMode:!1,nestingDepth:U.nestingDepth??0,executionStateOwnerId:U.executionStateOwnerId??U.workflowId,resolveWorkflowType:U.resolveWorkflowType,registerCancelHandler:U.registerCancelHandler,services:U.services,logSink:U.logSink,recordFinalizerState:U.recordFinalizerState};QE.set($,G)}function c($){let U=QE.get($);if(!U)throw Error("Context internals not initialized");return U}var QE;var MU=V(()=>{G3();QE=new WeakMap});function I4$($){if(typeof $!=="function")return!1;if($.length===0)return!0;let U=$.execute;return typeof U==="function"&&U.length===0}function h4$($,U){let j=U.at(-1);return U.length>0&&r5(j)&&(U.length>1||typeof $!=="string"&&I4$($))}function m4$($,U){let j=[...U],G=h4$($,j)?j.pop():void 0;if(j.length>1)throw Error("ctx.run() accepts one activity input value plus optional ActivityCallOptions.");return{input:j[0],options:G}}function f4$($,U,j){let G=eb(j);if(G===void 0)return;return{budgetMs:G,dispatchedAt:sb($,U,$.getNow())}}function k4$($,U){if(U!==void 0)return U;return typeof $==="string"?$:$.name||"anonymous"}function u4$($){return typeof $==="function"?$:void 0}function w4$($,U,j,G){let X=$.accumulatedResults?.has(U)??!1;if(X){let Q=$.accumulatedResults?.get(U);if($.stepIndex+=ib($,U),$.explainMode)console.log(`[weft] ctx.run(${j}) \u2192 Returning cached result from step ${U}`);return{request:{type:"activity",operationId:"",activityName:j,input:G},step:U,hasCachedResult:X,cachedResult:Q,retryAttempt:1}}let J=lb($,U);if(J!==void 0)return $.stepIndex+=J-2,{request:{type:"activity",operationId:"",activityName:j,input:G},step:U,hasCachedResult:!1,retryAttempt:J};return{request:{type:"activity",operationId:"",activityName:j,input:G},step:U,hasCachedResult:X,retryAttempt:1}}function c4$($,U,j,G,X,J){let Q=J?.queue??"default";if($.explainMode)console.log(`[weft] ctx.run(${j}, ${JSON.stringify(X)})`),console.log(` \u2192 Creating checkpoint at step ${U}`),console.log(` \u2192 Dispatching activity "${j}" to queue "${Q}"`);return{type:"activity",operationId:crypto.randomUUID(),activityName:j,step:U,...G!==void 0?{fn:G}:{},input:X,callerStack:W$(),...J!==void 0?{options:J}:{}}}function p4$($,U){let j=typeof $==="string"?void 0:$.retry,G=U?.retry;if(j===void 0&&G===void 0)return;return{...QR,...j,...G}}function d4$($,U){let j=U.nonRetryableErrors??[];if(j.length===0)return!1;if($ instanceof Error)return j.includes($.name)||j.includes($.message);return j.includes(String($))}function l4$($,U,j){return U!==void 0&&j<U.maxAttempts&&!d4$($,U)}function i4$($,U){if(U===1)return $;return{...$,operationId:crypto.randomUUID(),attempt:U}}function n4$($,U,j,G){let{input:X,options:J}=m4$(U,j),Q=k4$(U,G),Z=u4$(U),Y=c($),H=Y.stepIndex++,D=w4$(Y,H,Q,X);if(D.hasCachedResult)return D;let L=p4$(U,J),B=$E(U,J),z=UE(U,J),K=z===void 0?J:{...J,timeout:z};return{request:c4$(Y,H,Q,Z,X,K),step:H,hasCachedResult:!1,retryAttempt:D.retryAttempt,...L===void 0?{}:{retryPolicy:L},...B===void 0?{}:{scheduleToCloseTimeout:B}}}function*YE($,U,j,G){let{request:X,step:J,hasCachedResult:Q,cachedResult:Z,retryAttempt:Y,retryPolicy:H,scheduleToCloseTimeout:D}=n4$($,U,j,G);if(Q)return Z;let L=c($),B=H===void 0?void 0:f4$(L,J,D),z=Y;if(z>1){if(H===void 0)throw Error(`Missing activity retry policy for checkpointed retry attempt ${z}`);yield*$.sleep($U(z-1,H))}while(!0){if(z>1)jB(B,X.activityName,L.getNow());try{let K=yield i4$(X,z);return $.accumulatedResults.set(J,K),rb(L,J,z-1),K}catch(K){if(!l4$(K,H,z))throw K;let q=$U(z,H),O=L.getNow();jB(B,X.activityName,O,O+q);let g=z+1;nb(L,J,g),yield*$.sleep(q),z=g}}}var HE=V(()=>{E$();d4();GB();MU();G3()});class r4${workflowId;signal;#$=[];#U;#j=!1;constructor($,U){this.workflowId=$,this.signal=U}async step($,U){let{promise:j,resolve:G,reject:X}=Promise.withResolvers();return this.#$.push({name:$,fn:U,resolve:G,reject:X}),this.#U?.(),j}async dequeue(){if(this.#$.length>0)return this.#$.shift();if(this.#j)return null;let{promise:$,resolve:U}=Promise.withResolvers();if(this.#U=U,await $,this.#U=void 0,this.#j&&this.#$.length===0)return null;return this.#$.shift()??null}signalDone(){this.#j=!0,this.#U?.()}}function*XB(){yield void 0}async function*JB(){yield void 0}function s4$(){return XB().next(),JB().next(),{syncGeneratorFunctionPrototype:Object.getPrototypeOf(XB),asyncGeneratorFunctionPrototype:Object.getPrototypeOf(JB),syncGeneratorPrototype:Object.getPrototypeOf(XB.prototype),asyncGeneratorPrototype:Object.getPrototypeOf(JB.prototype)}}function _E($){return Object.getPrototypeOf($)===o4$}function DE($){return Object.getPrototypeOf($)===a4$}function LE($){if($===null||typeof $!=="object")return!1;let U=Object.getPrototypeOf($);if(U===null)return!1;let j=Object.getPrototypeOf(U);return j===t4$||j===e4$}var o4$,a4$,t4$,e4$;var QB=V(()=>{({syncGeneratorFunctionPrototype:o4$,asyncGeneratorFunctionPrototype:a4$,syncGeneratorPrototype:t4$,asyncGeneratorPrototype:e4$}=s4$())});function X3($,U){let j=$.conditionWaiters.get(U);if(j)j()}function J3($){return $6$.encode($).byteLength<=128}function s5($){if($.length===0)throw Error("signalId must be non-empty");if(!J3($))throw Error(`signalId must be at most ${String(128)} bytes`)}var $6$;var o5=V(()=>{$6$=new TextEncoder});async function zE($,U,j,G,X){let J=F.signalSequence(U);if(!$.storage.capabilities().conditionalBatch){await U6$($.storage,U,async()=>{let Q=await $.storage.get(J),Z=await BE($,U,Q),Y=VE($,U,j,Z,J);G(Y),await $.storage.batch(Y),X()});return}O$($.storage,"conditionalBatch","anonymous signal ordering");for(let Q=0;Q<FE;Q+=1){let Z=await $.storage.get(J),Y=await BE($,U,Z),H=VE($,U,j,Y,J);if(G(H),await z$($.storage,[{key:J,expectedValue:Z}],H)){X();return}}throw Error(`Could not allocate anonymous signal sequence for workflow "${U}" after ${FE} attempts`)}async function U6$($,U,j){let G=WE.get($);if(!G)G=new Map,WE.set($,G);let X=G.get(U)??Promise.resolve(),J,Q=new Promise((Y)=>{J=Y}),Z=X.then(()=>Q,()=>Q);G.set(U,Z);try{await X.catch(()=>{}),await j()}finally{if(J(),G.get(U)===Z)G.delete(U)}}function VE($,U,j,G,X){let J=j.map(({signalName:Q,payload:Z},Y)=>({type:"put",key:F.signal(U,Q,j6$(G+Y)),value:U3(Z,$.options.payloadSizePolicy.maxBytes,"signal payload")}));return J.push({type:"put",key:X,value:M(G+j.length)}),J}function j6$($){return`anonymous:${String($).padStart(16,"0")}:${crypto.randomUUID()}`}async function BE($,U,j){if(j!==null)return J6$(j);return G6$($,U)}async function G6$($,U){let j=`sig:${R(U)}:`,G=0;for await(let[X]of $.storage.scan(j)){let J=X6$(X);if(J!==null&&J>=G)G=J+1}return G}function X6$($){let j=$.lastIndexOf(":anonymous%3A");if(j===-1)return null;let G=j+13,X=$.indexOf("%3A",G);if(X===-1)return null;let J=Number($.slice(G,X));return Number.isSafeInteger(J)&&J>=0?J:null}function J6$($){if($===null)return 0;let U=A($);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 FE=5,WE;var PE=V(()=>{h();u();n6();WE=new WeakMap});function _0($,U,j){if(j.conditions.length===0&&j.operations.length===0)return;let G=$.pendingAtomicWorkflowCommitSideEffects.get(U);if(G===void 0){$.pendingAtomicWorkflowCommitSideEffects.set(U,{conditions:[...j.conditions],operations:[...j.operations]});return}G.conditions.push(...j.conditions),G.operations.push(...j.operations)}function a5($,U){let j=$.pendingAtomicWorkflowCommitSideEffects.get(U);if(j===void 0)return;if($.pendingAtomicWorkflowCommitSideEffects.delete(U),j.conditions.length===0&&j.operations.length===0)return;return{conditions:[...j.conditions],operations:[...j.operations]}}function t5($,U){$.pendingAtomicWorkflowCommitSideEffects.delete(U)}function KE($,U,j){let G=$.pendingAtomicWorkflowCommitSideEffects.get(U);if(G===void 0)return!1;return G.operations.some((X)=>X.type==="put"&&X.key===j)}async function OE($,U,j,G,X,J={}){let Q=async(Y,H,D)=>{await Y6$($,Y,[{signalName:H,payload:D}],X,J)},Z=X.getComposedInterceptor();if(Z){let Y,H=!1;try{Z.signalReceived({workflowId:U,signalName:j,payload:G,headers:new Map},(D)=>{if(H)throw Error("signalReceived interceptor called next() more than once");H=!0,Y=Q(D.workflowId,D.signalName,D.payload)})}catch(D){if(Y)await Y;throw D}if(!Y)return;await Y}else await Q(U,j,G)}function Q3($,U,j,G){let X=$.signalWaiters.get(j);if(!X)return;if(G&&X!==G)return;$.signalWaiters.delete(j),t4($.signalWaitersByWorkflow,U,j)}async function Y6$($,U,j,G,X={}){if(j.length===0)return;let J=await G.loadWorkflowState(U);if(J&&p$(J.status))return;let Q=F6$(j,X);if(W6$(j,X,Q),Q!==void 0)O$($.storage,"conditionalBatch","signal idempotency");if(Q!==void 0){let Z=H6$($,U,j,Q);NE($,U,Z);let Y=j[0],H=F.signalAcceptedResponse(U,Y.signalName,Q),D=M(AE);if(await $.storage.get(H)!==null)return;if(!await z$($.storage,[{key:H,expectedValue:null}],[...Z,{type:"put",key:H,value:D}]))return;ME($,U),qE($,U,j,G);return}await zE($,U,j,(Z)=>NE($,U,Z),()=>ME($,U)),qE($,U,j,G)}function H6$($,U,j,G){return j.map(({signalName:X,payload:J})=>({type:"put",key:F.signal(U,X,G),value:U3(J,$.options.payloadSizePolicy.maxBytes,"signal payload")}))}function CE($,U,j,G,X){s5(X);let J=F.startSignal(U,j,X),Q=F.signalAcceptedResponse(U,j,X);return{operations:[{type:"put",key:J,value:U3(G,$.options.payloadSizePolicy.maxBytes,"signal payload")},{type:"put",key:Q,value:M(AE)}],condition:{key:Q,expectedValue:null}}}function NE($,U,j){if($.workflowsNeedingTerminalCleanup.has(U))return;j.push({type:"put",key:F.terminalCleanupNeeded(U),value:Q6$})}function ME($,U){$.workflowsNeedingTerminalCleanup.add(U)}function qE($,U,j,G){let X=!1;for(let{signalName:J,payload:Q,options:Z}of j){if(Z?.emitPublicEvent!==!1)G.dispatchEvent(new e9(U,J,Q)),G.broadcast({type:"signal:received",workflowId:U,signalName:J});let Y=`${U}:${J}`,H=$.signalWaiters.get(Y);if(H){Q3($,U,Y,H),H();continue}if($.parkedInlineWorkflows.has(U))X=!0}if(X)G.resumeParkedInlineWorkflow(U)}async function RE($,U,j){return await YB($,U,j)!==null}async function Z3($,U,j){let G=await YB($,U,j);if(G===null)return{found:!1};return _0($,U,{conditions:[{key:G.key,expectedValue:new Uint8Array(G.value)}],operations:[{type:"delete",key:G.key}]}),{found:!0,payload:A(G.value)}}async function ZB($,U,j){let G=await YB($,U,j);return G===null?{found:!1}:{found:!0,payload:A(G.value)}}async function YB($,U,j){let G=R(U),X=R(j),J=D6$(G,X);return await _6$($,J,G,X)}async function _6$($,U,j,G){for await(let[X,J]of $.storage.scan(U,{limit:1}))if(L6$(X,j,G))return{key:X,value:J};return null}function D6$($,U){return`sig:${$}:${U}:`}function L6$($,U,j){let G=$.split(":");return G.length===Z6$&&G[0]==="sig"&&G[1]===U&&G[2]===j&&(G[3]==="0"||G[3]==="1")&&G[4]!==""}function F6$($,U){if($.length!==1)return;return $[0]?.options?.signalId??U.signalId}function W6$($,U,j){if(j!==void 0){s5(j);return}for(let G of $){let X=G.options?.signalId??U.signalId;if(X!==void 0)s5(X)}}function D0($,U,j){let G=$.get(U);if(!G){$.set(U,j);return}if(typeof G==="string"){if(G===j)return;$.set(U,new Set([G,j]));return}G.add(j)}function t4($,U,j){let G=$.get(U);if(!G)return;if(typeof G==="string"){if(G===j)$.delete(U);return}if(G.delete(j),G.size===0){$.delete(U);return}if(G.size===1){let[X]=G;if(X!==void 0)$.set(U,X)}}var Q6$,AE,Z6$=5;var L0=V(()=>{h();u();H$();n6();o5();PE();N$();Q6$=new Uint8Array(0),AE={ok:!0}});async function TE($,U,j,G){let{promise:X,resolve:J}=Promise.withResolvers(),Q=!1;G({payload:U,respond:(H)=>{if(Q)return;Q=!0,J(H)}});let Y;try{return await Promise.race([X,new Promise((H,D)=>{Y=setTimeout(()=>D(new zU($,j)),j)})])}finally{clearTimeout(Y)}}var bE=V(()=>{z9()});async function EE($,U,j,G,X,J){let Q=X?.timeout??30000;await mE($,U,j,G),await J.guardTerminalWorkflow(U);let Z=await V6$($,U,j,G,J);if(Z.handled)return Z.value;let Y=await B6$($,U,j,G,Q,J);if(Y.handled)return Y.value;return await z6$($,U,j,G,Q,J)}async function V6$($,U,j,G,X){let J=$.inlineStrategy?.getContext(U)?.updateHandlers.get(j);if(!J)return{handled:!1};let Q=crypto.randomUUID();X.dispatchEvent(new F6(Q,U,j,G));try{let Z=await HB($,j,J,G);return X.dispatchEvent(new k4(Q,U,j,Z)),X.broadcast({type:"update:completed",workflowId:U,updateId:Q}),X3($,U),{handled:!0,value:Z}}catch(Z){let Y=Z instanceof Error?Z.message:String(Z);throw X.dispatchEvent(new k4(Q,U,j,void 0,Y)),X.broadcast({type:"update:completed",workflowId:U,updateId:Q}),X3($,U),Z}}async function B6$($,U,j,G,X,J){let Q=`${U}:${j}`,Z=$.updateWaiters.get(Q);if(!Z)return{handled:!1};let Y=await J.findPendingUpdateByName(U,j);if($.updateWaiters.get(Q)!==Z||Y)return{handled:!1};$.updateWaiters.delete(Q),t4($.updateWaitersByWorkflow,U,Q);let H=crypto.randomUUID();J.dispatchEvent(new F6(H,U,j,G));let D=await TE(H,G,X,Z);return J.dispatchEvent(new k4(H,U,j,D)),J.broadcast({type:"update:completed",workflowId:U,updateId:H}),{handled:!0,value:D}}async function z6$($,U,j,G,X,J){let Q=await $.updateCoordinator.createRequest(U,j,G);J.schedulePendingInlineUpdateDrain(U),await J.guardTerminalWorkflowAfterCoordinatedRequest(U,Q),J.dispatchEvent(new F6(Q,U,j,G)),await J.deliverCoordinatedUpdateToWaiterIfAvailable(U,{updateId:Q,workflowId:U,name:j,payload:G,createdAt:Date.now()});let Z=await $.updateCoordinator.waitForResponse(Q,X);if(Z.error)throw Error(Z.error);return Z.result}async function SE($,U){return $.updateCoordinator.getResponse(U)}async function xE($,U,j,G,X,J){let Q=X?.timeout??30000,Z=X?.idempotencyKey;if(Z!==void 0){let B=await $.updateCoordinator.checkIdempotency(U,Z);if(B!==null)return{updateId:B.updateId,result:B.result}}await mE($,U,j,G),await J.guardTerminalWorkflow(U);let Y={timeout:Q};if(Z!==void 0)Y.idempotencyKey=Z;let H=await $.updateCoordinator.createRequest(U,j,G,Y);J.schedulePendingInlineUpdateDrain(U),await J.guardTerminalWorkflowAfterCoordinatedRequest(U,H),await J.deliverCoordinatedUpdateToWaiterIfAvailable(U,{updateId:H,workflowId:U,name:j,payload:G,createdAt:Date.now(),idempotencyKey:Z},!0);let D=await $.updateCoordinator.waitForResponse(H,Q),L={updateId:D.updateId,result:D.result};if(D.error!==void 0)L.error=D.error;return L}async function gE($,U,j,G){let X=`${U}:${j.updateName}`,J=await G.findPendingUpdateByName(U,j.updateName);if(J){await $.updateCoordinator.deleteRequest(U,J.updateId),G.dispatchPendingUpdateReceived(U,j.updateName,J),G.completeOperation(U,{payload:J.payload,respond:G.createCoordinatedUpdateResponder(U,j.updateName,J)});return}let{promise:Q,resolve:Z}=Promise.withResolvers();$.updateWaiters.set(X,Z),D0($.updateWaitersByWorkflow,U,X);let Y=await G.findPendingUpdateByName(U,j.updateName);if(Y){if($.updateWaiters.get(X)===Z)$.updateWaiters.delete(X),t4($.updateWaitersByWorkflow,U,X);await $.updateCoordinator.deleteRequest(U,Y.updateId),G.dispatchPendingUpdateReceived(U,j.updateName,Y),G.completeOperation(U,{payload:Y.payload,respond:G.createCoordinatedUpdateResponder(U,j.updateName,Y)});return}G.completeOperation(U,await Q)}function vE($,U,j,G,X){X.dispatchEvent(new F6(G.updateId,U,j,G.payload))}function yE($,U,j,G,X){let J=!1;return(Q)=>{if(J)return;J=!0,X.persistCoordinatedUpdateResponse(U,j,G.updateId,G.idempotencyKey,Q)}}async function IE($,U,j,G=!1,X){let J=`${U}:${j.name}`,Q=$.updateWaiters.get(J);if(!Q)return!1;let Z=await X.findPendingUpdateByName(U,j.name);if(!Z||Z.updateId!==j.updateId)return!1;if(await $.updateCoordinator.deleteRequest(U,j.updateId),$.updateWaiters.delete(J),t4($.updateWaitersByWorkflow,U,J),G)X.dispatchPendingUpdateReceived(U,j.name,j);return Q({payload:j.payload,respond:X.createCoordinatedUpdateResponder(U,j.name,j)}),!0}async function hE($,U,j){return(await $.updateCoordinator.getPendingUpdates(U)).find((X)=>X.name===j)}async function HB($,U,j,G){let X=j(G);if(LE(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 mE($,U,j,G){let X=$.inlineStrategy?.getContext(U)?.updateValidators.get(j);if(X===void 0)return;let J;try{J=await X(G)}catch(Z){let Y=Z instanceof Error?Z.message:String(Z);throw new T1(j,[{message:Y}])}let Q=_B(J);if(Q!==null&&Q.length>0)throw new T1(j,Q)}function _B($){if($===null||typeof $!=="object"||!("issues"in $))return null;let{issues:U}=$;if(!Array.isArray(U))return null;return U.flatMap((j)=>{if(j===null||typeof j!=="object")return[];let G=j;if(typeof G.message!=="string")return[];let X={message:G.message};if(Array.isArray(G.path)&&G.path.length>0)X.path=G.path.reduce((J,Q)=>{let Z=Q!==null&&typeof Q==="object"&&"key"in Q?String(Q.key):String(Q);return J+"/"+Z.replace(/~/g,"~0").replace(/\//g,"~1")},"");return[X]})}var qU=V(()=>{H$();QB();z9();L0();bE()});function fE($,U,j,G){let X=$.handleCache.get(U);if(!X)return;let J=X.ref.deref();if(!J)return;J.dispatchEvent(j)}function kE($,U,j,G,X){vE($,U,j,G,{dispatchEvent:X.dispatchEvent})}function F0($,U,j){if(!$.options.broadcastEvents)return;if($.broadcastChannel===null)try{$.broadcastChannel=new BroadcastChannel("weft:events")}catch{return}$.broadcastChannel.postMessage(U)}var e5=V(()=>{qU()});function N6$($){if($.status===void 0)return!1;if(Array.isArray($.status))return $.status.length>0;return $.status.length>0}function M6$($){return $.type!==void 0&&$.type.trim().length>0}function q6$($){return(c$($.tags)?.length??0)>0}function A6$($){return $.attributes?.some((U)=>$4(U.key).trim().length>0)??!1}function O6$($){return $.idPrefix!==void 0&&$.idPrefix.length>=P6$}function R6$($){return Object.values(C6$).some((U)=>U($))}function r6($){if(!R6$($))throw Error(K6$);return $}var P6$=3,K6$='Field "filter" must include at least one of status, type, tags, attributes, idPrefix (\u22653 chars), or failureCategory paired with status',C6$;var $J=V(()=>{W4();n4();C6$={status:N6$,type:M6$,tags:q6$,attributes:A6$,idPrefix:O6$}});var K9;var UJ=V(()=>{t();K9=class K9 extends y{workflowId;timeoutType;elapsed;constructor($,U,j){super("WorkflowTimeoutError",`Workflow "${$}" exceeded ${U} timeout after ${j}ms`);this.workflowId=$,this.timeoutType=U,this.elapsed=j}}});function DB($){let U=new Uint8Array(8);return new DataView(U.buffer).setBigUint64(0,BigInt($),!1),U}function jJ($){if($.byteLength!==8)return null;let U=new DataView($.buffer,$.byteOffset,$.byteLength).getBigUint64(0,!1),j=Number(U);return Number.isSafeInteger(j)&&j>=1&&j<Number.MAX_SAFE_INTEGER?j:null}function LB($){return T6$.encode(JSON.stringify($))}function E6$($){return typeof $==="object"&&$!==null}function GJ($){let U;try{U=JSON.parse(b6$.decode($))}catch{return null}if(!E6$(U))return null;let{holderId:j,expiresAt:G,epoch:X}=U;if(typeof j!=="string"||typeof G!=="number"||!Number.isSafeInteger(G)||G<0||typeof X!=="number"||!Number.isSafeInteger(X)||X<1)return null;return{holderId:j,expiresAt:G,epoch:X}}var T6$,b6$;var FB=V(()=>{T6$=new TextEncoder,b6$=new TextDecoder});function Y3($){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 WB="WeftEngineLeaseLostWarning";var AU,N9,H3,_3;var XJ=V(()=>{t();AU=class AU extends y{waitedMs;heldBy;constructor($,U){let j=U===null?"":` (currently held by "${U}")`;super("EngineLeaseAcquisitionTimeoutError",`Could not acquire the storage ownership lease within ${$}ms${j}. Another engine instance still holds it. Increase leaseWaitTimeout above the outgoing instance's drain time and the lease TTL, or ensure the previous instance releases the lease on shutdown.`);this.waitedMs=$,this.heldBy=U}};N9=class N9 extends y{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).`)}};H3=class H3 extends y{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()`.")}};_3=class _3 extends y{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 D3($){if($.options.ownershipMode!=="lease")return;if(!(!$.deposed&&$.leaseManager!==null&&$.leaseManager.currentEpochBytes()!==null))throw new H3}async function uE($,U,j){let G=S6$($);if(G===null){if(j.length===0)return await $.storage.batch(U),"committed";return await z$($.storage,j,U)?"committed":"lost-race"}let X=[...j,{key:F.leaseEpoch(),expectedValue:G}];if(await z$($.storage,X,U))return"committed";if(await g6$($,G))throw Y3($),new _3;return"lost-race"}function S6$($){if($.deposed)throw new _3;if($.options.ownershipMode!=="lease")return null;let U=$.leaseManager?.currentEpochBytes()??null;if(U===null)throw Y3($),new _3;return U}async function R$($,U,j,G){if(await uE($,U,j)==="lost-race")throw G()}async function OU($,U,j){return await uE($,U,j)==="committed"}function x6$($,U){if(U===null||$.byteLength!==U.byteLength)return!1;for(let j=0;j<$.byteLength;j+=1)if($[j]!==U[j])return!1;return!0}async function g6$($,U){let j;try{j=await $.storage.get(F.leaseEpoch())}catch{return!0}if(j===null)return!0;if(jJ(j)===null)return!0;return!x6$(U,j)}var A6=V(()=>{h();FB();XJ()});async function*pE($,U,j){let G={events:[],resolver:void 0},X={done:!1},J=v6$($,G,X);try{if(!X.done)I6$(G,X,await U(),j);while(!X.done||G.events.length>0){if(G.events.length===0)await h6$(G);while(G.events.length>0)yield G.events.shift()}}finally{J()}}function v6$($,U,j){let G=dE.bind(void 0,U),X=y6$.bind(void 0,j,U);for(let J of wE)$.addEventListener(J,G);for(let J of cE)$.addEventListener(J,X);return()=>{for(let J of wE)$.removeEventListener(J,G);for(let J of cE)$.removeEventListener(J,X)}}function dE($,U){$.events.push(U),$.resolver?.()}function y6$($,U,j){if($.done)return;$.done=!0,dE(U,j)}function I6$($,U,j,G){if(!j||U.done)return;let X=G(j);if(!X)return;$.events.push(X),U.done=!0}async function h6$($){let{promise:U,resolve:j}=Promise.withResolvers();$.resolver=j,await U,$.resolver=void 0}var wE,cE;var lE=V(()=>{_Y();wE=["activity:started","activity:completed","signal:received"],cE=Qq});function O6($){return $.startedAt??$.createdAt}function iE($){switch($.status){case"completed":{let U=$.updatedAt-O6($);return new W6($.id,$.result,U)}case"failed":{let U=Error($.error??"Workflow failed");if($.errorStack)U.stack=$.errorStack;return new O4($.id,U)}case"cancelled":return new u4($.id);case"timed-out":{let U=$.updatedAt-O6($);return new C4($.id,"execution",U,$.terminationReason)}default:return null}}var L3,F3;var W0=V(()=>{H$();UJ();d4();lE();L3=Symbol("handleResultPromise");F3=class F3 extends EventTarget{id;#$;#U;constructor($,U){super();this.id=$,this.#$=U,this.#U=void 0}async result(){return this.#U??=this.#$[L3](this.id),this.#U}async cancel(){return this.#$.cancel(this.id)}async suspend(){return this.#$.suspend(this.id)}async resume(){await this.#$.resume(this.id)}async getLaunchMetadata(){let $=await this.#$.get(this.id);if($===null)return null;return{input:$.input,launchOptions:{id:$.id,...$.tags!==void 0&&$.tags.length>0&&{tags:$.tags}}}}async snapshot(){let $=await this.#$.get(this.id);if($===null)return null;let U=await this.#$.getCurrentCheckpointStep(this.id);return{status:$.status,step:U??0}}async signal($,U,j){return this.#$.signal(this.id,g4($),U,j)}async update($,U,j){return this.#$.update(this.id,g4($),U,j)}async query($,U){return this.#$.query(this.id,g4($),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*pE(this,()=>this.#$.get(this.id),iE)}[Symbol.observable](){return{subscribe:($)=>{let U=new AbortController,j=$.next?.bind($),G=["workflow:completed","workflow:failed","workflow:cancelled","workflow:timed-out","activity:started","activity:completed"],X=!1;if(j){let Y=(H)=>{if(X)return;j(H)};for(let H of G)this.addEventListener(H,Y,{signal:U.signal})}let J=(Y)=>{if(X)return;if(Y instanceof O4)X=!0,$.error?.(Y.error);else if(Y instanceof C4)X=!0,$.error?.(new K9(Y.workflowId,Y.timeoutType,Y.elapsed))};this.addEventListener("workflow:failed",J,{signal:U.signal}),this.addEventListener("workflow:timed-out",J,{signal:U.signal});let Q=$.complete?.bind($),Z=()=>{if(X)return;X=!0,Q?.()};return this.addEventListener("workflow:completed",Z,{signal:U.signal}),this.addEventListener("workflow:cancelled",Z,{signal:U.signal}),(async()=>{let Y=await this.#$.get(this.id);if(U.signal.aborted||X||!Y)return;let H=iE(Y);if(!H)return;if(j?.(H),H instanceof O4)J(H);else if(H instanceof C4)J(H);else Z()})(),{unsubscribe:U.abort.bind(U)}}}}async[Symbol.asyncDispose](){}}});function m6$($,U,j){if(j===void 0||j<=0)return 0;let G=BigInt(`0x${MG(`${$}\x00${U}`)}`);return Number(G%BigInt(j))}function CU($,U){return U+m6$($.id,U,$.jitterMs)}var JJ=V(()=>{L6()});function rE(){return"UTC"}function sE($){let U=nE.get($);if(U)return U;let j=new Intl.DateTimeFormat("en-US",{timeZone:$,calendar:"iso8601",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",weekday:"short",hourCycle:"h23",timeZoneName:"shortOffset"});return nE.set($,j),j}function k6$($,U){let G=sE(U).formatToParts(new Date($)).find((Y)=>Y.type==="timeZoneName")?.value,X=/^GMT([+-])(\d{1,2})(?::(\d{2}))?$/.exec(G??"");if(!X)return 0;let J=X[1]==="-"?-1:1,Q=Number.parseInt(X[2],10),Z=Number.parseInt(X[3]??"0",10);return J*(Q*60+Z)*60000}function VB($,U){let j=sE(U).formatToParts(new Date($)),G=new Map(j.map((Q)=>[Q.type,Q.value])),X=G.get("weekday"),J=X?f6$.get(X):void 0;if(J===void 0)throw Error(`Unable to resolve weekday for time zone "${U}"`);return{year:Number.parseInt(G.get("year")??"",10),month:Number.parseInt(G.get("month")??"",10),day:Number.parseInt(G.get("day")??"",10),hour:Number.parseInt(G.get("hour")??"",10),minute:Number.parseInt(G.get("minute")??"",10),second:Number.parseInt(G.get("second")??"",10),dayOfWeek:J}}function u6$($,U){return $.year===U.year&&$.month===U.month&&$.day===U.day&&$.hour===U.hour&&$.minute===U.minute&&$.second===U.second}function V0($,U,j){let G=Date.UTC($.year,$.month-1,$.day,$.hour,$.minute,$.second),X=G;for(let Z=0;Z<6;Z+=1){let Y=k6$(X,U),H=G-Y;if(H===X)break;X=H}let J=new Set;for(let Z=-120;Z<=120;Z+=15)J.add(X+Z*60000);return[...J].filter((Z)=>Z>=j).filter((Z)=>u6$($,VB(Z,U))).toSorted((Z,Y)=>Z-Y)[0]??null}function QJ($,U){let j=new Date(Date.UTC($.year,$.month-1,$.day,$.hour,$.minute,$.second));if(U.days!==void 0)j.setUTCDate(j.getUTCDate()+U.days);if(U.hours!==void 0)j.setUTCHours(j.getUTCHours()+U.hours);if(U.minutes!==void 0)j.setUTCMinutes(j.getUTCMinutes()+U.minutes);return{year:j.getUTCFullYear(),month:j.getUTCMonth()+1,day:j.getUTCDate(),hour:j.getUTCHours(),minute:j.getUTCMinutes(),second:j.getUTCSeconds()}}function W3($,U){for(let j of $)if(j>U)return{value:j,wrapped:!1};return{value:$[0],wrapped:!0}}function oE($,U){let j=U.daysOfMonth.values.includes($.day),G=U.daysOfWeek.values.includes($.dayOfWeek);if(U.daysOfMonth.wildcard&&U.daysOfWeek.wildcard)return!0;if(U.daysOfMonth.wildcard)return G;if(U.daysOfWeek.wildcard)return j;return j||G}var f6$,nE;var aE=V(()=>{f6$=new Map([["Sun",0],["Mon",1],["Tue",2],["Wed",3],["Thu",4],["Fri",5],["Sat",6]]),nE=new Map});function tE($,U,j,G){let X=$.toUpperCase();if(U?.has(X))return U.get(X);let J=Number.parseInt($,10);if(!Number.isInteger(J))throw Error(`Invalid cron token "${$}"`);let Q=G===6&&J===7?0:J;if(Q<j||Q>G)throw Error(`Cron token "${$}" is outside the allowed range ${j}-${G}`);return Q}function p6$($,U){return{values:Array.from({length:U-$+1},(j,G)=>$+G),wildcard:!0}}function d6$($,U){let j=U===void 0?1:Number.parseInt(U,10);if(!Number.isInteger(j)||j<=0)throw Error(`Invalid cron step "${$}"`);return j}function eE($,U,j,G){for(let X=U;X<=j;X+=G)$.add(X)}function l6$($,U,j,G,X){let[J="",Q]=U.split("/"),Z=d6$(U,Q);if(J==="*"||J==="?"){eE($,j,G,Z);return}let[Y,H]=J.split("-"),D=tE(Y,X,j,G),L=H===void 0?D:tE(H,X,j,G);if(D>L)throw Error(`Invalid cron range "${U}"`);eE($,D,L,Z)}function RU($,U,j,G){let X=$.trim();if(X==="*"||X==="?")return p6$(U,j);let J=new Set,Q=X.split(",");for(let Z of Q){let Y=Z.trim();if(Y.length===0)throw Error(`Invalid cron field "${$}"`);l6$(J,Y,U,j,G)}return{values:[...J].toSorted((Z,Y)=>Z-Y),wildcard:!1}}function M9($){let U=$.trim().split(/\s+/).filter((H)=>H.length>0);if(U.length!==5&&U.length!==6)throw Error("Cron expression must have 5 fields or 6 fields with seconds");let j=U.length===6,[G,X,J,Q,Z,Y]=j?U:["0",...U];return{expression:$,hasSeconds:j,seconds:RU(G,0,59),minutes:RU(X,0,59),hours:RU(J,0,23),daysOfMonth:RU(Q,1,31),months:RU(Z,1,12,w6$),daysOfWeek:RU(Y,0,6,c6$)}}var w6$,c6$;var BB=V(()=>{w6$=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]]),c6$=new Map([["SUN",0],["MON",1],["TUE",2],["WED",3],["THU",4],["FRI",5],["SAT",6]])});function q9($){return $+1000}function i6$($){return{year:$.year,month:$.month,day:$.day,hour:0,minute:0,second:0}}function n6$($,U,j,G){let X=W3(j.months.values,U.month);return V0({year:U.year+(X.wrapped?1:0),month:X.value,day:1,hour:0,minute:0,second:0},G,q9($))??$+86400000}function $S($,U,j){return V0(QJ(i6$(U),{days:1}),j,q9($))??$+86400000}function r6$($,U,j,G){let X=W3(j.hours.values,U.hour);return V0({year:U.year,month:U.month,day:U.day,hour:X.value,minute:0,second:0},G,q9($))??$S($,U,G)}function s6$($,U,j,G){let X=W3(j.minutes.values,U.minute),J=V0({year:U.year,month:U.month,day:U.day,hour:U.hour,minute:X.value,second:0},G,q9($));if(J!==null)return J;return V0(QJ({year:U.year,month:U.month,day:U.day,hour:U.hour,minute:0,second:0},{hours:1}),G,q9($))??$+3600000}function o6$($,U,j,G){let X=W3(j.seconds.values,U.second),J=V0({year:U.year,month:U.month,day:U.day,hour:U.hour,minute:U.minute,second:X.value},G,q9($));if(J!==null)return J;return V0(QJ({year:U.year,month:U.month,day:U.day,hour:U.hour,minute:U.minute,second:0},{minutes:1}),G,q9($))??$+60000}function ZJ($,U,j){let G=typeof $==="string"?M9($):$,X=j?.timeZone??rE(),J=U4(Math.floor(U/1000)*1000+1000,"Cron occurrence candidate");for(let Q=0;Q<1e5;Q+=1){let Z=VB(J,X);if(!G.months.values.includes(Z.month)){J=n6$(J,Z,G,X);continue}if(!oE(Z,G)){J=$S(J,Z,X);continue}if(!G.hours.values.includes(Z.hour)){J=r6$(J,Z,G,X);continue}if(!G.minutes.values.includes(Z.minute)){J=s6$(J,Z,G,X);continue}if(!G.seconds.values.includes(Z.second)){J=o6$(J,Z,G,X);continue}return J}throw Error(`Could not find the next cron occurrence for "${G.expression}"`)}function zB($,U,j,G){let X=typeof $==="string"?M9($):$,J=[],Q=G?.maxOccurrences;if(Q!==void 0&&(!Number.isSafeInteger(Q)||Q<=0))throw Error("Cron occurrence maxOccurrences must be a positive safe integer");let Z=Q??Number.POSITIVE_INFINITY,Y=U;while(Y<=j&&J.length<Z)J.push(Y),Y=ZJ(X,Y,G);return J}var US=V(()=>{E$();aE();BB()});var jS=V(()=>{US();BB()});var PB=V(()=>{jS()});function V3($){return typeof $==="number"&&Number.isSafeInteger($)&&$>=0}function a6$($){return typeof $==="string"&&KB.has($)}function t6$($){return typeof $==="string"&&NB.has($)}function YJ($){if(typeof $!=="string")return!1;try{return q1($,"schedule id"),!0}catch{return!1}}function B0($,U){return q1($,U)}function JS($){if($===void 0)return{overlap:"skip",backfill:!1};if(typeof $!=="object"||$===null)throw Error("options must be an object when provided");let{id:U,overlap:j,backfill:G,jitter:X}=$,J={overlap:"skip",backfill:!1};if(U!==void 0)J.id=B0(U,"options.id");if(j!==void 0){if(!NB.has(j))throw Error(`options.overlap must be one of ${[...NB].join(", ")}`);J.overlap=j}if(G!==void 0){if(typeof G!=="boolean")throw Error("options.backfill must be a boolean when provided");J.backfill=G}if(X!==void 0)J.jitterMs=e6$(X,"options.jitter");return J}function e6$($,U){if(typeof $!=="string"&&typeof $!=="number")throw Error(`${U} must be a duration string or a number of milliseconds`);let j;try{j=b$($)}catch(X){let J=X instanceof Error?X.message:String(X);throw Error(`Invalid ${U}: ${J}`,{cause:X})}let G=Math.ceil(j);if(!Number.isSafeInteger(G)||G<=0)throw Error(`${U} must resolve to a positive number of milliseconds`);return G}function $1$($){if(typeof $!=="string"&&typeof $!=="number")throw Error('Schedule interval "every" must be a duration string or a number of milliseconds');let U;try{U=b$($)}catch(G){let X=G instanceof Error?G.message:String(G);throw Error(`Invalid schedule interval "every": ${X}`,{cause:G})}let j=Math.ceil(U);if(!Number.isSafeInteger(j)||j<=0)throw Error('Schedule interval "every" must resolve to a positive number of milliseconds');return{kind:"interval",intervalMs:j}}function GS($){if(typeof $!=="string")throw Error('Schedule "cron" must be a string');return M9($),{kind:"cron",cronExpression:$}}function MB($){if(typeof $==="string")return GS($);if(typeof $!=="object"||$===null)throw Error('Schedule spec must be a cron string or an object with "cron" or "every"');let U="cron"in $&&$.cron!==void 0,j="every"in $&&$.every!==void 0;if(U===j)throw Error('Schedule spec must specify exactly one of "cron" or "every"');return j?$1$($.every):GS($.cron)}function U1$($){if($===void 0)return;let U=Array.isArray($)?$:[$];for(let j of U)if(!KB.has(j))throw Error(`filter.status must be one of ${[...KB].join(", ")}`)}function j1$($){if($===void 0)return;if(typeof $!=="string"||$.length===0)throw Error("filter.workflowType must be a non-empty string when provided")}function XS($,U){if($===void 0)return;if(!Number.isSafeInteger($)||$<0)throw Error(`filter.${U} must be a non-negative safe integer when provided`)}function QS($){if($===void 0)return;if(typeof $!=="object"||$===null)throw Error("filter must be an object when provided");return U1$($.status),j1$($.workflowType),XS($.limit,"limit"),XS($.offset,"offset"),$}function l$($,U){let j=$===void 0?"[weft] Ignoring malformed schedule record":`[weft] Ignoring malformed schedule "${$}"`;return console.warn(`${j} ${U}.`),null}function G1$($,U){let{cronExpression:j,intervalMs:G}=$,X=j!==void 0,J=G!==void 0;if(X===J)return l$(U,"with conflicting or missing cadence (expected exactly one of cronExpression or intervalMs)");if(J){if(typeof G!=="number"||!Number.isSafeInteger(G)||G<=0)return l$(U,"with invalid intervalMs");return{intervalMs:G}}if(typeof j!=="string")return l$(U,"with invalid cronExpression");try{M9(j)}catch{return l$(U,"with invalid cronExpression")}return{cronExpression:j}}function X1$($){let U=$.id;if(!YJ(U))return l$(void 0,"with invalid id");let j=$.workflowType;if(typeof j!=="string"||j.length===0)return l$(U,"with invalid workflowType");let G=G1$($,U);if(!G)return null;let X=$.status;if(!a6$(X))return l$(U,"with invalid status");let J=$.overlap;if(!t6$(J))return l$(U,"with invalid overlap policy");return{id:U,workflowType:j,status:X,overlap:J,...G}}function J1$($,U){let j=$.backfill;if(typeof j!=="boolean")return l$(U,"with invalid backfill flag"),null;return j}function Q1$($,U){let j=$.jitterMs;if(j===void 0)return;if(typeof j!=="number"||!Number.isSafeInteger(j)||j<=0)return l$(U,"with invalid jitterMs"),null;return j}function Z1$($,U){let{createdAt:j,updatedAt:G}=$;if(!V3(j)||!V3(G))return l$(U,"with invalid timestamps");let X=$.lastFireAt;if(X!==void 0&&!V3(X))return l$(U,"with invalid lastFireAt");let J=$.lastMissedFireAt;if(J!==void 0&&!V3(J))return l$(U,"with invalid lastMissedFireAt");return{createdAt:j,updatedAt:G,...X!==void 0&&{lastFireAt:X},...J!==void 0&&{lastMissedFireAt:J}}}function Y1$($,U){let j=$.nextFireAt;if(j===void 0)return l$(U,"with invalid nextFireAt"),{ok:!1};if(j!==null&&!V3(j))return l$(U,"with invalid nextFireAt"),{ok:!1};return{ok:!0,value:j}}function H1$($,U){let j=$.currentWorkflowId;if(j===void 0)return{ok:!0};if(!YJ(j))return l$(U,"with invalid currentWorkflowId"),{ok:!1};return{ok:!0,value:j}}function _1$($,U){let j=$.queuedRuns;if(typeof j!=="number"||!Number.isSafeInteger(j)||j<0)return l$(U,"with invalid queuedRuns"),null;return j}function D1$($,U){let j=$.missedFireCount;if(j===void 0)return 0;if(typeof j!=="number"||!Number.isSafeInteger(j)||j<0)return l$(U,"with invalid missedFireCount"),null;return j}function L1$($,U){let j=J1$($,U);if(j===null)return null;let G=Q1$($,U);if(G===null)return null;let X=Z1$($,U);if(X===null)return null;let J=Y1$($,U);if(!J.ok)return null;let Q=H1$($,U);if(!Q.ok)return null;let Z=_1$($,U);if(Z===null)return null;let Y=D1$($,U);if(Y===null)return null;return{backfill:j,...G!==void 0&&{jitterMs:G},...X,nextFireAt:J.value,...Q.value!==void 0&&{currentWorkflowId:Q.value},missedFireCount:Y,queuedRuns:Z}}function B3($){let U=A($);if(!s4(U))return console.warn("[weft] Ignoring malformed schedule record with non-object payload."),null;let j=X1$(U);if(!j)return null;let G=L1$(U,j.id);if(!G)return null;return{...j,input:U.input,...G}}var KB,NB;var HJ=V(()=>{u();XU();PB();E$();w$();KB=new Set(["active","paused","cancelled"]),NB=new Set(["skip","queue","cancel-running","allow"])});async function e4($,U,j){let X=($.workflowStateWriteChains.get(U)??Promise.resolve()).catch(()=>{return}).then(j),J=X.then(()=>{return},()=>{return});$.workflowStateWriteChains.set(U,J);try{return await X}finally{if($.workflowStateWriteChains.get(U)===J)$.workflowStateWriteChains.delete(U)}}async function J$($,U){let j=await $.storage.get(F.workflow(U));if(!j)return null;return U$(j)}async function ZS($,U){let j=await J$($,U);if(!j)throw Error(`Workflow "${U}" not found`);if(j.status==="completed")return j.result;if(j.status==="failed"){let G=Error(j.error??"Workflow failed");if(j.errorStack)G.stack=j.errorStack;throw G}if(j.status==="cancelled")throw Error("Workflow cancelled");if(j.status==="timed-out"){let G=j.executionDeadline?j.executionDeadline-O6(j):0;throw new K9(U,"execution",G)}throw Error(`Workflow "${U}" is still ${j.status}`)}function F1$($,U,j,G){let X=G.includePendingAtomicSideEffects?a5($,U):void 0,J=X===void 0?j:[...j,...X.operations],Z=$.storage.capabilities().conditionalBatch?X?.conditions??[]:[];return{operations:J,conditions:Z,hasPendingSideEffects:X!==void 0}}async function _J($,U,j,G={}){let X=F1$($,U.id,j,G);if(await R$($,X.operations,X.conditions,()=>Error(`Workflow state commit for workflow "${U.id}" lost its atomic side-effect precondition.`)),X.hasPendingSideEffects)t5($,U.id)}async function A9($,U){let j=await $.storage.get(F.schedule(U));return j?B3(j):null}async function z3($,U){let j=await A9($,U);if(!j)throw Error(`Schedule "${U}" not found`);return j}async function $6($,U,j){let G=[{type:"put",key:F.schedule(U.id),value:M(U)}];if((j?.includeTimer??U.status==="active")&&U.status==="active"&&U.nextFireAt!==null){let J=CU(U,U.nextFireAt);G.push(...v$({id:_U(U.id),workflowId:U.id,fireAt:J,kind:"schedule"}))}await $.storage.batch(G)}async function YS($,U){let j=await $.storage.get(F.workflowHeaders(U));if(!j)return;return xT(j)}var j4=V(()=>{h();u();E$();UJ();A6();W0();JJ();B$();N$();HJ()});async function qB($,U,j){if(j===void 0){let X=await $.storage.get(F.attribute(U));if(!X)return;j=A(X)}let G=a$(U,j,{});if(G.push({type:"delete",key:F.attribute(U)}),G.length>0)await $.storage.batch(G)}function DJ($,U){return{...Object.fromEntries(Object.entries($).filter(([G])=>G.startsWith("weft:"))),...U}}async function AB($,U,j){if(Object.keys(j).length===0)return;let G=a$(U,{},j);await $.storage.batch([{type:"put",key:F.attribute(U),value:M(j)},...G])}function TU($,U){let j=[];if(p$($.status))j.push({type:"delete",key:F.terminalWorkflow($.updatedAt,$.id)});if(p$(U.status))j.push({type:"put",key:F.terminalWorkflow(U.updatedAt,U.id),value:W1$});return j}async function OB($,U,j,G={}){return await e4($,U,async()=>{let X=await $.storage.get(F.workflow(U));if(!X)return null;let J=U$(X);if(G.allowedStatuses&&!G.allowedStatuses.includes(J.status))return null;let Q=$.options.getNow(),Z={...J,...j,updatedAt:Q},Y=G.buildAdditionalOperations?.(J,Q)??[];return await _J($,J,[...TU(J,Z),{type:"put",key:F.workflow(U),value:M(Z)},...V4(U,J,Z).batchOps,...Y],{includePendingAtomicSideEffects:p$(Z.status)}),{previousState:J,updatedAt:Q}})}async function LJ($,U,j,G){return await e4($,U,async()=>{let X=await $.storage.get(F.workflow(U));if(!X)throw new p6(U);let J=U$(X),Q=c$(J.tags)??[],Z=z1$(j,"Workflow tags")??[];if(Z.length===0)return!1;let Y=V1$(Q,Z,G);if(B1$(Q,Y))return!1;let H={...J,updatedAt:$.options.getNow()};if(Y!==void 0)H.tags=Y;else delete H.tags;return await $.storage.batch([...TU(J,H),{type:"put",key:F.workflow(U),value:M(H)},...V4(U,J,H).batchOps,...GU(U,Q,Y)]),!0})}function V1$($,U,j){let G=new Set($);for(let J of U)if(j==="add")G.add(J);else G.delete(J);let X=c$([...G]);if(j==="add"&&X!==void 0)tW(X,"Workflow tags");return X}function B1$($,U){return $.length===(U?.length??0)&&$.every((j,G)=>j===U?.[G])}async function HS($,U,j,G,X){r6(U);let J=X??await P1$($,U),Q=0;for(let Z of J){let Y=!1;try{Y=await LJ($,Z,j,G)}catch(H){if(!(H instanceof p6))throw H}if(Y)Q+=1}return{modified:Q}}function bU($){for(let[U,j]of Object.entries($))if(Array.isArray(j))for(let G of j)QV(o$(G),U);else QV(o$(j),U)}function z1$($,U="options.tags"){if($===void 0)return;return c$(y$($,U))}async function P1$($,U){let j=[],G=ZU(U?.offset,"offset")??0,X=ZU(U?.limit,"limit");if(X===0)return j;for await(let J of O5($,U)){if(G>0){G-=1;continue}if(j.push(J.id),X!==void 0)X-=1;if(X===0)return j}return j}var W1$;var EU=V(()=>{h();$J();u();W4();w$();n4();P$();j4();N$();B4();D9();W1$=new Uint8Array(0)});function WJ($,U,j){let G=FJ.get($);if(!G)G=new Map,FJ.set($,G);G.set(U,new Uint8Array(j))}function _S($,U){let j=FJ.get($)?.get(U);return j?new Uint8Array(j):void 0}function z0($,U){FJ.get($)?.delete(U)}var FJ;var O9=V(()=>{FJ=new WeakMap});async function LS($,U,j){let G=U===void 0?void 0:jU(U),X=c$(G?.tags),J=await b5($,G,X),Q=J!==null?await K1$($,J,G,X,j):await N1$($,G,X,j);return vT(q1$(Q),G)}async function K1$($,U,j,G,X){let J=[...U];if(J.length>i6)throw new M6(i6);let Q=[];for(let Z=0;Z<J.length;Z+=r4){let Y=J.slice(Z,Z+r4),H=await Promise.all(Y.map((B)=>$.storage.get(F.workflow(B)))),D=await E5($,H,j),L=[];for(let B of H){if(!B)continue;let z=U$(B);if(!C1(z,j,U,G,D.get(z.id)??null))continue;L.push(z)}Q.push(...await M1$($,L,X))}return Q}async function N1$($,U,j,G){let X=[],J=0;for await(let[Q,Z]of $.storage.scan("wf:")){if(!R1(Q))continue;if(J+=1,J>i6)throw new M6(i6);let Y=U$(Z),H=await S5($,Y.id,U);if(!C1(Y,U,null,j,H))continue;let D=FS(Y,G)?await $.storage.get(F.attribute(Y.id)):null;X.push(BS(Y,WS(D)))}return X}async function M1$($,U,j){let G=new Map;return await Promise.all(U.map(async(X)=>{if(!FS(X,j))return;G.set(X.id,await $.storage.get(F.attribute(X.id)))})),U.map((X)=>BS(X,WS(G.get(X.id)??null)))}function FS($,U){return U?.includeFailureCategory===!0&&$.status==="failed"&&($.failureCategory===void 0||$.failureCategory===null)}function WS($){if($===null)return;let U=A($);if(!VS(U))return;let j=U.failureCategory;if(d6(j))return j;return G5(j)}function VS($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function BS($,U){let j=$.failureCategory??U;return{id:$.id,type:$.type,status:$.status,...$.tags!==void 0&&{tags:$.tags},version:$.versionTuple.workflowVersion,createdAt:$.createdAt,updatedAt:$.updatedAt,...$.executionDeadline!==void 0&&{executionDeadline:$.executionDeadline},...j!==void 0&&j!==null&&{failureCategory:j}}}function q1$($){return $.toSorted((U,j)=>{if(U.createdAt!==j.createdAt)return j.createdAt-U.createdAt;if(U.id<j.id)return-1;if(U.id>j.id)return 1;return 0})}async function*CB($,U){yield*O5($,U)}async function*RB($,U){let j=A1$(U);if(DS(j))return;let G=[];for await(let X of CB($,U)){if(O1$(j))continue;if(G.push(X),C1$(j),G.length===VJ)yield G,G=[];if(DS(j))break}if(G.length>0)yield G}function A1$($){return{remainingOffset:ZU($?.offset,"offset")??0,remainingLimit:ZU($?.limit,"limit")}}function O1$($){if($.remainingOffset<=0)return!1;return $.remainingOffset-=1,!0}function C1$($){if($.remainingLimit===void 0)return;$.remainingLimit-=1}function DS($){return $.remainingLimit===0}async function zS($,U){let j=await $.storage.get(F.attribute(U));if(!j)return null;let G=A(j);if(!VS(G))return null;return G}async function PS($,U,j){let G=await $.storage.get(F.workflow(U));if(G){let H=U$(G),D=$.registrations.get(H.type);if(D?.searchAttributes){let L=D.searchAttributes;for(let[B,z]of Object.entries(j)){if(!(B in L))throw Error(`Unknown search attribute "${B}". Registered attributes: ${Object.keys(L).join(", ")}`);j0(B,z,L[B])}}}bU(j);let X=await $.storage.get(F.attribute(U)),J=X?A(X):{},Q={...J,...j},Z=a$(U,J,Q),Y=[{type:"put",key:F.attribute(U),value:M(Q)},...Z];await $.storage.batch(Y)}async function KS($,U,...j){await LJ($,U,j,"add")}async function NS($,U,...j){await LJ($,U,j,"remove")}var VJ=1000;var P3=V(()=>{h();u();l6();u8();W4();n4();EU();EV();SV();B$();N$();B4();D9()});async function K3($,U,j,G){let{effectiveLimit:X,manualOffset:J}=b1$($,U,j.limit);if(X===0)return{deleted:0};let Q=J,Z=0,Y=j.expiredOnly&&U===void 0?T1$($,j.now):CB($,U);for await(let H of Y){if(!await g1$($,H,j.expiredOnly,j.now))continue;if(Q>0){Q-=1;continue}if(await TB($,H,G),Z+=1,X!==void 0&&Z>=X)break}return{deleted:Z}}function R1$($){let U=null,j=(G)=>{for(let X of[G?.completed,G?.failed,G?.cancelled,G?.timedOut]){if(X===void 0)continue;U=U===null?X:Math.min(U,X)}};j($.options.retention);for(let G of $.registrations.values())j(G.retention);return U}async function*T1$($,U){let j=R1$($);if(j===null)return;let G=F.terminalWorkflowPrefix(),X=U-j,J=`${G}${String(X).padStart(16,"0")}:\xFF`;for await(let[Q]of $.storage.scan(G,{lte:J})){let Z=Q.slice(Q.lastIndexOf(":")+1),Y=E6(Z);if(Y===null)continue;let H=await $.storage.get(F.workflow(Y));if(!H){await $.storage.delete(Q);continue}let D=U$(H);if(!p$(D.status))continue;yield D}}function b1$($,U,j){return{manualOffset:E1$(U?.offset),effectiveLimit:x1$(S1$(U?.limit),j)}}function E1$($){if($===void 0)return 0;if(!Number.isFinite($))return 0;if($<=0)return 0;return Math.floor($)}function S1$($){if($===void 0)return;if(!Number.isFinite($))return;if($<0)return;return Math.floor($)}function x1$($,U){if($===void 0)return U;if(U===void 0)return $;return Math.min($,U)}async function g1$($,U,j,G){if(!p$(U.status))return!1;if(await Q4($.storage,F.teardownOwed(U.id)))return!1;if(!j)return!0;let X=v1$($,U);return X!==null&&X<=G}function v1$($,U){if(!p$(U.status))return null;let j=$.registrations.get(U.type)?.retention??$.options.retention,G=CT(j,U.status);if(G===void 0)return null;return U.updatedAt+G}async function TB($,U,j){let G=await bB($,U);await $.storage.batch(G),EB($,U.id,j)}async function bB($,U){let j=U.id,G=await $.storage.get(F.attribute(j)),X=y1$(U,G),J=await m1$($,U);return r1$(X,J),X.push(...V4(j,U,null).batchOps),X}function EB($,U,j){z0($,U),$.checkpoints.delete(U),$.heartbeatDetails.delete(U),$.lastHeartbeatDetailsByStep.delete(U);for(let[G,X]of $.pendingAsyncActivities)if(X.workflowId===U)$.pendingAsyncActivities.delete(G);$.pendingAsyncActivityResolutions.delete(U),$.eventLogHeads.delete(U),$.workflowVersionTuples.delete(U),$.handleCache.delete(U),$.resultResolvers.delete(U),$.workflowHeaders.delete(U),$.workflowNestingDepths.delete(U),$.workflowTypeByWorkflowId.delete(U),j(U)}function y1$($,U){return[...I1$($.id,U),...h1$($)]}function I1$($,U){if(!U)return[];let j=A(U);return a$($,j,{}).filter(MS)}function h1$($){return GU($.id,c$($.tags),void 0).filter(MS)}function MS($){return $.type==="delete"}async function m1$($,U){let j=U.id,G=f1$(U);return k1$(G,U),u1$(G,U),await c1$($.storage,G,j),await d1$($.storage,G,j),G}function f1$($){return new Set([F.workflow($.id),F.checkpoint($.id),F.workflowHeaders($.id),F.terminalCleanupNeeded($.id),F.workflowConcurrencyHolder($.id),F.workflowHasServices($.id),F.finalizerState($.id),F.teardownOwed($.id),F.attribute($.id),F.terminalWorkflow($.updatedAt,$.id)])}function k1$($,U){if(U.executionDeadline===void 0)return;$.add(F.deadline(U.executionDeadline,U.id)),$.add(`timer-idx:deadline:${U.id}`)}function u1$($,U){if(U.terminalCleanupToken===void 0)return;let j=DU(w1$(U),U.terminalCleanupToken);$.add(F.terminalCleanup(U.updatedAt+BJ,j))}function w1$($){return $.status==="cancelled"||$.status==="timed-out"}async function c1$($,U,j){let G=F.updatePrefix(j),X=await qS($,G);for(let J of X)U.add(J),p1$(U,G,J)}function p1$($,U,j){let G=j.slice(U.length);if(G.length>0)$.add(F.updateResponse(G))}async function d1$($,U,j){for(let G of n1$(j)){let X=await qS($,G);for(let J of X)U.add(J)}await l1$($,U,j)}async function l1$($,U,j){let G=F.fleetEventByWorkflowPrefix(j);for await(let[X]of $.scan(G)){U.add(X);let J=i1$(G,X);if(J!==null)U.add(F.fleetEvent(J))}}function i1$($,U){if(!U.startsWith($))return null;let j=U.slice($.length);if(!/^\d+$/.test(j))return null;let G=Number(j);return Number.isSafeInteger(G)?G:null}function n1$($){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}:`,c5($),`sigres:v1:${U}:`]}function r1$($,U){for(let j of U)$.push({type:"delete",key:j})}async function qS($,U){let j=[];for await(let G of BG($,U))j.push(G);return j}var BJ=60000;var zJ=V(()=>{h();u();W4();n4();NU();O9();P3();B$();N$();B4()});function PJ($){let U=new WeakSet,j=(G)=>{if(s1$(G))return!0;if(o1$(G))return!1;if(Array.isArray(G))return a1$(G,U,j);if(typeof G==="object")return t1$(G,U,j);return!1};return j($)}function AS($){if($===void 0)return null;if($ instanceof Error)return{name:$.name,message:$.message};if(PJ($))return $;try{let U=JSON.stringify($);if(U===void 0)return SB($);let j=JSON.parse(U);return PJ(j)?j:SB($)}catch{return SB($)}}function s1$($){if($===null)return!0;if(typeof $==="number")return Number.isFinite($);return typeof $==="string"||typeof $==="boolean"}function o1$($){let U=typeof $;return U==="undefined"||U==="bigint"||U==="function"||U==="symbol"}function a1$($,U,j){if(U.has($))return!1;U.add($);for(let G of $)if(!j(G))return!1;return U.delete($),!0}function t1$($,U,j){if(!e1$($))return!1;if(U.has($))return!1;U.add($);for(let G of Object.values($))if(!j(G))return!1;return U.delete($),!0}function SB($){if(typeof $==="bigint")return $.toString();if(typeof $==="symbol")return $.description??null;return null}function e1$($){if(!$||typeof $!=="object")return!1;let U=Reflect.getPrototypeOf($);return U===Object.prototype||U===null}function N3($){let U=xB($);return MG(U)}function xB($){if($===null)return"null";if($===void 0)return $0$;if(typeof $!=="object")return JSON.stringify($);if(Array.isArray($))return"["+$.map(xB).join(",")+"]";let U=$;return"{"+Object.keys(U).toSorted().filter((G)=>U[G]!==void 0).map((G)=>`${JSON.stringify(G)}:${xB(U[G])}`).join(",")+"}"}function U0$($){if(typeof $!=="object"||$===null)return!1;let U=$;if(typeof U.status!=="string"||typeof U.effectName!=="string")return!1;let j=U.status;if(j==="in-flight")return typeof U.recordedAt==="number";if(j==="committed")return PJ(U.output)&&typeof U.completedAt==="number";if(j==="aborted")return typeof U.reason==="string"&&typeof U.completedAt==="number";return!1}class j0${#$;#U;#j;#G=0;constructor($,U,j){this.#$=$,this.#U=U,this.#j=j}get duplicatesPrevented(){return this.#G}recordReplay(){this.#G++}async lookup($){let U=F.toolEffect(this.#U,this.#j,$),j=await this.#$.get(U);if(!j)return null;let G=A(j);if(!U0$(G))return null;return G}async record($,U){let j={status:"in-flight",effectName:U,recordedAt:Date.now()};await this.#X($,j)}async commit($,U,j){let G={status:"committed",effectName:U,output:AS(j),completedAt:Date.now()};await this.#X($,G)}async abort($,U,j){let G={status:"aborted",effectName:U,reason:j,completedAt:Date.now()};await this.#X($,G)}async#X($,U){let j=F.toolEffect(this.#U,this.#j,$);await this.#$.put(j,M(U))}}var $0$="\x00undefined";var OS=V(()=>{L6();h();u()});function NJ($,U,j){let X=(U.status===void 0?j:Array.isArray(U.status)?U.status:[U.status]).filter((Q)=>j.includes(Q));if(X.length===0)return{...U,status:[]};if(X.length!==1)return{...U,status:X};let[J]=X;return{...U,status:J??[]}}async function M3($,U,j,G,X,J){let Q=await _0$($,j);return vB(U,G,X,Q,J)}function vB($,U,j,G,X){let J=Q0$(U),Q=J0$(J,G),Z=Z0$($,J,j,Q,X),Y=Y0$($,J,j,G),H=Q.sampleWorkflowIds;return{workflowIds:G.map((D)=>D.id),confirmationToken:Y,scope:Q,preview:{dryRun:!0,action:$,matched:G.length,requestId:Z,scope:Q,sampleWorkflowIds:H,confirmationToken:Y,confirmationTokenVersion:1}}}function J0$($,U){let j=U.slice(0,CS).map((G)=>G.id);return{matched:U.length,filter:$,statuses:gB(U.map((G)=>G.status)),workflowTypes:gB(U.map((G)=>G.type)),sampleWorkflowIds:j,sampleLimit:CS}}function Q0$($){let U={};if($.status!==void 0)U.status=Array.isArray($.status)?gB($.status):$.status;if($.type!==void 0)U.type=$.type;let j=c$($.tags);if(j!==void 0)U.tags=j;if($.attributes!==void 0)U.attributes=$.attributes.map((G)=>({key:$4(G.key),...G.value===void 0?{}:{value:Array.isArray(G.value)?[...G.value]:G.value},...G.gt===void 0?{}:{gt:G.gt},...G.lt===void 0?{}:{lt:G.lt},...G.gte===void 0?{}:{gte:G.gte},...G.lte===void 0?{}:{lte:G.lte}})).toSorted((G,X)=>N3(G).localeCompare(N3(X)));if($.limit!==void 0)U.limit=$.limit;if($.offset!==void 0)U.offset=$.offset;return U}function Z0$($,U,j,G,X){let J=X.requestId?.trim();if(J!==void 0&&J.length>0)return J;return`bulk:${N3({action:$,actionParameters:KJ(j),filterSummary:U,matched:G.matched,sampleWorkflowIds:G.sampleWorkflowIds})}`}function Y0$($,U,j,G){return`bulk:${N3({version:1,action:$,actionParameters:KJ(j),filterSummary:U,workflows:G.map((X)=>({id:X.id,status:X.status}))})}`}function SU($,U){if($.confirmationToken===void 0)return;if($.confirmationToken===U.confirmationToken)return;throw new F4}function xU($){return $.confirmationToken!==void 0||$.requestId!==void 0||$.principal!==void 0}async function gU($,U,j,G,X){let J=await H0$($,U,j,X);return{...G,auditEvent:J}}async function H0$($,U,j,G){let X=$.options.getNow(),J=j.requestId?.trim(),Q=J!==void 0&&J.length>0?J:U.preview.requestId,Z={type:"bulk-operation:audit",action:U.preview.action,requestId:Q,timestamp:X,principal:j.principal??X0$,filterSummary:U.scope.filter,scope:U.scope,affectedCount:G,sampleWorkflowIds:U.scope.sampleWorkflowIds,confirmationToken:U.confirmationToken};return await $.storage.put(F.bulkOperationAudit(X,Q,U.confirmationToken),M(Z)),Z}function vU($){let U=$.bulkConcurrency;if(U!==void 0&&(!Number.isSafeInteger(U)||U<1))throw Error('Field "bulkConcurrency" must be a positive integer');let j="confirmationToken"in $?$.confirmationToken:void 0;if(j!==void 0&&j.length>O8)throw Error(`Field "confirmationToken" must be at most ${String(O8)} characters`);if($.requestId!==void 0&&$.requestId.length>s0)throw Error(`Field "requestId" must be at most ${String(s0)} characters`);return $}function q3($){return $.bulkConcurrency??G0$}function A3($,U,j){return{id:U,error:j instanceof Error?j.message:String(j)}}async function _0$($,U){let j=[];for await(let G of RB($,U))for(let X of G)j.push(RS(X));return j}function RS($){return{id:$.id,type:$.type,status:$.status,updatedAt:$.updatedAt}}function gB($){return[...new Set($)].toSorted((U,j)=>U.localeCompare(j))}function KJ($){if(D0$($))return $;if(typeof $==="bigint")return $.toString();if(typeof $==="symbol")return String($);if(typeof $==="function")return"[function]";if(Array.isArray($))return $.map(KJ);let U=$,j={};for(let G of Object.keys(U).toSorted())j[G]=KJ(U[G]);return j}function D0$($){return $===null||$===void 0||typeof $==="string"||typeof $==="number"||typeof $==="boolean"}async function TS($,U){let j=[];for await(let G of RB($,U))for(let X of G){if(!p$(X.status))throw new M1;j.push(RS(X))}return j}var CS=20,G0$=1,X0$;var bS=V(()=>{h();u();OS();W4();n4();P$();P3();N$();X0$={method:"in-process"}});function yU(){return{holders:[],waiters:[]}}function L0$($){if($===void 0)return yU();return{holders:Array.isArray($.holders)?$.holders:[],waiters:Array.isArray($.waiters)?$.waiters:[]}}function F0$($,U){return $.filter((j)=>j.leaseExpiresAt>U)}function yB($,U){let{holderId:j,now:G}=U,X=L0$($);return{holders:F0$(X.holders,G).filter((J)=>J.holderId!==j),waiters:X.waiters.filter((J)=>J!==j)}}var ES=()=>{};function W0$($,U){return{key:L9($),expectedValue:U===0?null:M(U)}}function V0$($){if($===void 0)return yU();return{holders:Array.isArray($.holders)?$.holders:[],waiters:Array.isArray($.waiters)?$.waiters:[]}}function B0$($,U){return $.filter((j)=>j.leaseExpiresAt>U)}function z0$($,U){let j=V0$($),G=B0$(j.holders,U.now);if(G.some((X)=>X.holderId===U.workflowId))return{acquired:!0,record:{holders:G.map((X)=>X.holderId===U.workflowId?{holderId:U.workflowId,leaseExpiresAt:SS}:X),waiters:[]}};if(G.length>=U.limit)return{acquired:!1,record:{holders:G,waiters:[]}};return{acquired:!0,record:{holders:[...G,{holderId:U.workflowId,leaseExpiresAt:SS}],waiters:[]}}}function P0$($,U,j){if(j.key===void 0)return $;let G;try{G=j.key(U)}catch(X){throw Error(`workflow("${$}").concurrency.key threw while resolving the partition key: ${X instanceof Error?X.message:String(X)}`,{cause:X})}if(typeof G!=="string")throw TypeError(`workflow("${$}").concurrency.key must return a string partition key`);return G}function K0$($,U){return{version:IB,workflowType:$,partitionKey:U}}function N0$($){let U=A($);if(typeof U!=="object"||U===null)return null;let j=U;if(j.version!==IB||typeof j.workflowType!=="string"||typeof j.partitionKey!=="string")return null;return{version:IB,workflowType:j.workflowType,partitionKey:j.partitionKey}}async function MJ($,U,j,G,X){let J=P0$(U,G,X),Q=F.workflowConcurrency(U,J),Z=await F9($.storage,Q,{initial:yU()}),Y=z0$(Z.value,{workflowId:j,now:$.options.getNow(),limit:X.max});if(!Y.acquired)throw new S8({workflowType:U,limit:X.max,partitionKey:J});return{stateKey:Q,conditions:[W0$(Q,Z.version)],operations:[{type:"put",key:Q,value:M(Y.record)},{type:"put",key:L9(Q),value:M(Z.version+1)},{type:"put",key:F.workflowConcurrencyHolder(j),value:M(K0$(U,J))},{type:"put",key:F.terminalCleanupNeeded(j),value:new Uint8Array(0)}]}}async function IU($,U){let j=F.workflowConcurrencyHolder(U),G=await $.storage.get(j);if(G===null)return;let X=N0$(G);if(X===null){await $.storage.delete(j);return}let J=F.workflowConcurrency(X.workflowType,X.partitionKey);await new FU($.storage,J,{initial:yU()}).update((Z)=>yB(Z,{holderId:U,now:$.options.getNow()})),await $.storage.delete(j)}var IB=1,SS;var O3=V(()=>{h();W9();u();ES();P$();SS=Number.MAX_SAFE_INTEGER});async function qJ($,U,j){let G=[];for(let X=0;X<$.length;X+=U){let J=$.slice(X,X+U);G.push(...await Promise.all(J.map(async(Q)=>{try{return{item:Q,status:"fulfilled",value:await j(Q)}}catch(Z){return{item:Q,status:"rejected",reason:Z}}})))}return G}async function gS($,U,j){return K3($,U,{expiredOnly:!1,now:$.options.getNow()},j)}async function A0$($,U,j={}){j=vU(j),r6(U);let G=NJ($,U,xS),X=await M3($,"cancel",G,U,{},j);if(j.dryRun===!0)return X.preview;SU(j,X);let J=X.workflowIds,Q=q3(j),Z=0,Y=[],H=await qJ(J,Q,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(B){return{status:"failed",error:A3($,L,B)}}});for(let L of H){if(L.status==="rejected"){Y.push(A3($,L.item,L.reason));continue}let{value:B}=L;if(B.status==="cancelled"){Z+=1;continue}Y.push(B.error)}let D={cancelled:Z,failed:Y.length,errors:Y};if(!xU(j))return D;return gU($,X,j,D,Z)}async function vS($,U,j={}){return A0$($,U,j)}async function O0$($,U,j={}){j=vU(j),r6(U);let G=NJ($,U,M0$),X=await M3($,"retry-failed",G,U,{},j);if(j.dryRun===!0)return X.preview;SU(j,X);let J=q3(j),Q=0,Z=[],Y=await qJ(X.workflowIds,J,async(D)=>{try{return await C0$($,D),{status:"retried"}}catch(L){return{status:"failed",error:A3($,D,L)}}});for(let D of Y){if(D.status==="rejected"){Z.push(A3($,D.item,D.reason));continue}let{value:L}=D;if(L.status==="retried"){Q+=1;continue}Z.push(L.error)}let H={retried:Q,failed:Z.length,errors:Z};if(!xU(j))return H;return gU($,X,j,H,Q)}async function yS($,U,j={}){return O0$($,U,j)}async function C0$($,U){let j=await J$($,U);if(j===null)throw Error("Workflow no longer exists");if(j.status!=="failed")throw Error(`Workflow is ${j.status}, not failed`);if(await $.storage.get(F.checkpoint(U))!==null){await R0$($,j),await $.engine.resume(U);return}await $.engine.start(j.type,j.input,{id:U,onTerminalConflict:"start-new",...j.tags!==void 0?{tags:j.tags}:{}})}async function R0$($,U){let j=await e4($,U.id,async()=>T0$($,U.id));if(j.terminalCleanupTimerId!==void 0)await $.scheduler.cancel(j.terminalCleanupTimerId,U.id)}async function T0$($,U){let j;for(let G=0;G<q0$;G+=1){let X=await $.storage.get(F.workflow(U));if(X===null)throw Error("Workflow no longer exists");let J=U$(X);if(J.status!=="failed")throw Error(`Workflow is ${J.status}, not failed`);let Q=await $.storage.get(F.checkpoint(U));if(Q===null)throw Error("Checkpoint no longer exists");let Z=h$(Q),Y=$.registrations.get(J.type);if(Y===void 0)throw Error(`No workflow registered with name "${J.type}" (needed to retry "${U}")`);let H=Y.concurrency===void 0?void 0:await MJ($,J.type,U,J.input,Y.concurrency);j=H?.stateKey??j;let D=E0$($,J),L=await S0$($,U),B=[...TU(J,D),{type:"put",key:F.workflow(U),value:M(D)},...V4(U,J,D).batchOps,...x0$(U,L,Z.searchAttributes),...D.executionDeadline===void 0?[]:v$({id:`deadline:${U}`,workflowId:U,fireAt:D.executionDeadline,kind:"execution-deadline"}),...H?.operations??[]],z=H?.conditions??[];if(await b0$($,B,z))return{terminalCleanupTimerId:J.terminalCleanupToken===void 0?void 0:DU(!1,J.terminalCleanupToken)}}throw Error(`Workflow concurrency admission for "${j??U}" changed too many times while retrying failed workflow "${U}"`)}async function b0$($,U,j){if(j.length===0)return await $.storage.batch(U),!0;return O$($.storage,"conditionalBatch","retry failed workflow"),z$($.storage,j,U)}function E0$($,U){let j={...U,status:"running",updatedAt:$.options.getNow()};return delete j.error,delete j.errorStack,delete j.failureCategory,delete j.result,delete j.terminationReason,delete j.terminalCleanupToken,j}async function S0$($,U){let j=await $.storage.get(F.attribute(U));if(j===null)return{};return A(j)}function x0$($,U,j){let G=a$($,U,j);if(Object.keys(j).length===0)G.push({type:"delete",key:F.attribute($)});else G.push({type:"put",key:F.attribute($),value:M(j)});return G}async function hB($,U,j,G,X){let J=vU(X??{});if(r6(U),j.length===0)throw Error('Field "name" must be a non-empty string');let Q=NJ($,U,xS),Z=await M3($,"signal",Q,U,{name:j,payload:G},J);if(J.dryRun===!0)return Z.preview;SU(J,Z);let Y=Z.workflowIds,H=q3(J),D=0,L=0,B=await qJ(Y,H,async(K)=>{try{return await $.engine.signal(K,j,G),{status:"signalled"}}catch{return{status:"failed"}}});for(let K of B)if(K.status==="fulfilled"&&K.value.status==="signalled")D+=1;else L+=1;let z={signalled:D,failed:L};if(!xU(J))return z;return gU($,Z,J,z,D)}async function g0$($,U,j,G={}){G=vU(G),r6(U);let X=await TS($,U),J=vB("delete",U,{},X,G);if(G.dryRun===!0){let D=[];for(let L of J.workflowIds)if(await Q4($.storage,F.teardownOwed(L)))D.push(L);return D.length>0?{...J.preview,skippedTeardownPending:D}:J.preview}SU(G,J);let Q=q3(G),Z=0,Y=[];for(let D=0;D<J.workflowIds.length;D+=VJ){let L=J.workflowIds.slice(D,D+VJ),B=await v0$($,L),z=[];for(let O of B)if(await Q4($.storage,F.teardownOwed(O.id)))Y.push(O.id);else z.push(O);let K=await qJ(z,Q,async(O)=>{return await TB($,O,j),O.id}),q=[];for(let O of K)if(O.status==="fulfilled")Z+=1;else q.push(O.reason);if(q.length>0)throw AggregateError(q,`Bulk delete failed for ${q.length} workflow(s) after deleting ${Z} workflow(s)`)}let H={deleted:Z,...Y.length>0?{skippedTeardownPending:Y}:{}};if(!xU(G))return H;return gU($,J,G,H,Z)}async function IS($,U,j,G={}){return g0$($,U,j,G)}async function v0$($,U){let j=[];for(let G of U){let X=await J$($,G);if(X===null)continue;if(!p$(X.status))throw new M1;j.push(X)}return j}async function hS($,U,j,G={}){return fS($,U,j,"add",G)}async function mS($,U,j,G={}){return fS($,U,j,"remove",G)}async function fS($,U,j,G,X){X=vU(X),r6(U);let Q=await M3($,G==="add"?"tag:add":"tag:remove",U,U,{tags:j},X);if(X.dryRun===!0)return Q.preview;SU(X,Q);let Z=await HS($,U,j,G,Q.workflowIds);if(!xU(X))return Z;return gU($,Q,X,Z,Z.modified)}var xS,M0$,q0$=5;var AJ=V(()=>{h();$J();a4();u();E$();W4();EU();zJ();bS();P$();P3();B$();j4();N$();O3();B4();zJ();xS=["pending","running","suspended"],M0$=["failed"]});function OJ($,U){let j=new F3(U,$.engine);return m0$($,U,j),j}function y0$($,U){let{promise:j,resolve:G,reject:X}=Promise.withResolvers(),J={promise:j,resolve:G,reject:X};return $.resultResolvers.set(U,J),j.catch(()=>{}),J}function kS($,U){let j=$.resultResolvers.get(U);if(j)return j.promise;if($.disposed){let X=Promise.reject(new z6);return X.catch(()=>{}),X}let G=y0$($,U);return I0$($,U,G),G.promise}async function I0$($,U,j){try{let G=await J$($,U);if(h0$($,U,j))return;if(!G){$.resultResolvers.delete(U),j.reject(Error(`Workflow "${U}" not found in storage`));return}if(G.status==="running"||G.status==="pending"||G.status==="suspended")return;try{let X=await ZS($,U);mB($,U,j),j.resolve(X)}catch(X){mB($,U,j),j.reject(X)}}catch(G){mB($,U,j),j.reject(G)}}function h0$($,U,j){let G=$.resultResolvers.get(U);if(G===void 0||G===j)return!1;return G.promise.then(j.resolve,j.reject),!0}function mB($,U,j){if($.resultResolvers.get(U)===j)$.resultResolvers.delete(U)}function m0$($,U,j){let G=$.handleCache.get(U);if(G)$.finalizationRegistry.unregister(G.unregisterToken);let X={};$.handleCache.set(U,{ref:new WeakRef(j),unregisterToken:X}),$.finalizationRegistry.register(j,U,X)}var fB=V(()=>{P$();W0();j4()});function k0$($){if(typeof $!=="object"||$===null)return!1;let U=$;if(U.type!=="event-log-watermark"||U.version!==1)return!1;let j=U.prevHash;if(typeof j!=="string"||j.length===0)return!1;return u0$(U.sequence,U.deletedThrough)}function u0$($,U){return typeof $==="number"&&Number.isSafeInteger($)&&$>0&&U===$-1}async function P0($,U){let j=await $.get(F.eventWatermark(U));if(j===null)return null;let G=A(j);return k0$(G)?G:null}async function uS($,U,j,G,X){if(G===null)return null;let J=Math.max(0,j-G+1),Q=await P0($,U),Z=Q?.sequence??0,Y=Math.min(J,Z+f0$);if(Y<=Z)return null;let H=await p0$($,U,Z,Y);if(H===null)return null;let D=NG(H.lastDeletedBytes),L={type:"event-log-watermark",version:1,sequence:Y,prevHash:D,deletedThrough:Y-1,...w0$(c0$(Q?.checkpointReplay,H.deletedEntries))};for(let B=Z;B<Y;B+=1)X.push({type:"delete",key:F.event(U,B)});return X.push({type:"put",key:F.eventWatermark(U),value:M(L)}),{watermark:L,deletedEntries:H.deletedEntries,deletedRange:{from:Z,to:Y-1}}}function w0$($){return $===void 0?{}:{checkpointReplay:$}}function c0$($,U){let j=$;for(let G of U){let X=A(G);if(!O1(X))continue;j=_5(j,QU(X.payload))}return j}async function p0$($,U,j,G){let X=[],J=j,Q=F.eventPrefix(U),Z=F.event(U,j),Y=F.event(U,G);for await(let[,D]of $.scan(Q,{gte:Z,lt:Y})){let L=A(D);if(!O1(L)||L.sequence!==J)return null;X.push(D),J+=1}if(J!==G||X.length===0)return null;let H=X[X.length-1];if(H===void 0)return null;return{deletedEntries:X,lastDeletedBytes:H}}function wS($){return M($)}var f0$=1000;var C3=V(()=>{L6();h();u();d8();H9()});async function cS($,U){for(let G=0;G<5;G+=1){let X=await P0($,U),J=await p8($,U),Q=await d0$($,U,X,J);if(Q.outcome==="ok")return{valid:!0};let Z=await P0($,U),Y=await p8($,U),H=(Z?.sequence??-1)>(X?.sequence??-1),D=Y.sequence!==J.sequence||Y.lastHash!==J.lastHash;if(H||D)continue;return{valid:!1,firstInvalidSequence:Q.firstInvalidSequence}}return{valid:!1,indeterminate:!0,reason:"concurrent-compaction"}}async function d0$($,U,j,G){let X=j?.prevHash??c8,J=j?.sequence??0,Q=F.eventPrefix(U),Z=j?{gte:F.event(U,j.sequence)}:void 0,Y=await i0$($,Q,Z,X,J);if(Y.outcome==="invalid")return Y;if(Y.entriesSeen===0&&j!==null)return{outcome:"invalid",firstInvalidSequence:j.sequence};return l0$(Y,G)}function l0$($,U){if(U.sequence===Q9.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 i0$($,U,j,G,X){let J=G,Q=0,Z=-1;for await(let[,Y]of $.scan(U,j)){let H=A(Y);if(!O1(H))continue;let D=n0$(H,J,Q===0,X);if(D.outcome==="invalid")return D;Q+=1,Z=H.sequence,J=Y5(Y)}return{outcome:"scanned",entriesSeen:Q,lastSequence:Z,lastHash:J}}function n0$($,U,j,G){if(j&&$.sequence!==G)return{outcome:"invalid",firstInvalidSequence:G};if($.prevHash!==U)return{outcome:"invalid",firstInvalidSequence:$.sequence};return{outcome:"ok"}}var pS=V(()=>{h();u();C3();d8()});class I4{#$;#U;constructor($,U){this.#$=$,this.#U=U}appendToBatch($,U,j,G){let{entry:X,encoded:J,newHead:Q}=this.#j($,j,G);return U.push({type:"put",key:F.event(this.#U,Q.sequence),value:J},{type:"put",key:F.eventHead(this.#U),value:M(Q)}),{newHead:Q,timestamp:X.timestamp}}async append($,U,j){let G=await this.#G(),{encoded:X,hash:J,newHead:Q}=this.#j($,G,j),Z={type:"put",key:F.event(this.#U,Q.sequence),value:X},Y={type:"put",key:F.eventHead(this.#U),value:M(Q)};if(U)U.push(Z,Y);else await this.#$.batch([Z,Y]);return{sequence:Q.sequence,hash:J,newHead:Q}}async*scan($){let U=$?.fromSequence??0,j=F.eventPrefix(this.#U),G=F.event(this.#U,U);for await(let[,X]of this.#$.scan(j,{gte:G})){let J=A(X);if(O1(J))yield J}}async replay($){let U=[];for await(let j of this.scan()){if(j.sequence>$)break;U.push(j)}return U}async verify(){return cS(this.#$,this.#U)}async loadHead(){return this.#G()}#j($,U,j){let G=U.sequence+1,X=U.lastHash,J={type:$.type,workflowId:this.#U,sequence:G,prevHash:X,payload:$.payload,timestamp:Date.now()};if(j!==void 0)J.versionTuple=j;let Q=M(J),Z=Y5(Q);return{entry:J,encoded:Q,hash:Z,newHead:{sequence:G,lastHash:Z}}}async#G(){return p8(this.#$,this.#U)}}var C9=V(()=>{h();u();d8();pS()});async function kB($,U,j,G){let X=$.options.historyPolicy.maxEvents;if(X===null||j.sequence+1<=X)return!1;return await G.enforceHistoryCircuitBreaker(U),!0}async function lS($,U,j){if($.options.historyPolicy.maxEvents===null)return!1;let G=$.eventLogHeads.get(U)??await new I4($.storage,U).loadHead();return kB($,U,G,j)}function R3($,U,j){return j.createWorkflowHandleWithResultPromise(U)}function b1($,U,j,G){if(!j||j.size===0){$.workflowHeaders.delete(U);return}$.workflowHeaders.set(U,new Map(j)),$.workflowsNeedingTerminalCleanup.add(U)}async function R9($,U,j){return YS($,U)}async function uB($,U,j){if(await Q4($.storage,F.terminalCleanupNeeded(U)))$.workflowsNeedingTerminalCleanup.add(U)}function wB($,U,j,G){if(U===void 0)return;return c$(y$(U,j??"options.tags"))}async function cB($,U,j){try{await j.processPendingUpdatesForHandlers(U)}catch(G){j.handleCleanupError("processPendingUpdates",G,U)}}var dS="weft:forkedFrom",q4;var E1=V(()=>{h();C9();w$();n4();j4();q4=new Uint8Array(0)});function hU($,U,j){return{workflowVersion:U.version}}function CJ($,U,j){return U.versionTuple}function RJ($,U,j,G,X,J){let Q=F5(G.version,X.version),Z=hU($,X,J),Y=BT(CJ($,j,J),Z),H=Y.workflowVersion!==void 0||Y.agentVersion!==void 0||Y.toolVersions!==void 0;if(Q==="incompatible"||H)iS($,U,j,X,Y,J);return{state:j,checkpoint:G,versionTuple:Z,shouldPersistPreparedState:!1}}async function pB($,U,j,G,X,J,Q){let Z=RJ($,U,j,G,J,Q),Y=await Y9($.storage,U,Z.checkpoint);return{state:Z.state,checkpoint:Y,serializedCheckpoint:X,versionTuple:Z.versionTuple}}function iS($,U,j,G,X,J){throw new VV(U,j.type,j.versionTuple.workflowVersion,G.version,void 0,X)}var T3=V(()=>{W5();H9()});async function bJ($,U,j,G,X=()=>{}){let J=$.options.resolveWorkflowServices;if($.inlineStrategy===null)return!1;if($.workflowServices.has(U.id))return!1;if(await $.storage.get(F.workflowHasServices(U.id))===null)return!1;if(!J){let Z=s0$(U.id);X(new v6(U.id,Z,[r0$]));try{await j(U.id,TJ(U.id,Z))}catch(Y){G("reprovideRecoveredServices",Y,U.id)}return!0}let Q;try{let Z=await J({workflowId:U.id,workflowType:U.type,input:U.input});if(Z.status==="available")return $.workflowServices.set(U.id,Z.services),!1;Q=Z.reason}catch(Z){Q=Z instanceof Error?Z.message:String(Z)}try{await j(U.id,TJ(U.id,Q))}catch(Z){G("reprovideRecoveredServices",Z,U.id)}return!0}function TJ($,U){return Error(`Workflow "${$}" services unavailable: ${U}`)}function s0$($){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 r0$="EngineOptions.resolveWorkflowServices";var EJ=V(()=>{h();H$()});function rS($,U,j,G,X){return{id:`delayed-start:${U}`,workflowId:U,fireAt:j,kind:"delayed-start",...G?.executionTimeout!==void 0&&{executionTimeoutMs:X.parseStartOptionDuration(G.executionTimeout,"options.executionTimeout")}}}async function sS($,U,j,G){if(j.scheduledFireAt<=$.options.getNow()){G.completeOperation(U,void 0);return}let{promise:X,resolve:J}=Promise.withResolvers();if(await $.scheduler.schedule({id:`sleep:${j.operationId}`,workflowId:U,fireAt:j.scheduledFireAt,kind:"sleep"}),o0$($,U,j.operationId,J),await X,(await G.loadWorkflowState(U))?.status==="running")G.completeOperation(U,void 0)}function o0$($,U,j,G){$.sleepResolvers.set(`${U}:${j}`,G);let X=$.sleepResolversByWorkflow.get(U);if(!X)X=new Set,$.sleepResolversByWorkflow.set(U,X);X.add(j)}async function a0$($,U,j){let G=await j.loadWorkflowState(U.workflowId);if(!G||G.status!=="pending")return;let X=await t0$($,U,j);if(!X)return;let J=$.registrations.get(G.type);if(!J){await j.failWorkflow(U.workflowId,Error(`No workflow registered with name "${G.type}"`));return}let Q=$.options.getNow(),Z=await e0$(U,Q,j);if(Z==="invalid")return;let Y=await j.runSerializedWorkflowStateWrite(U.workflowId,async()=>{let D=await j.loadWorkflowState(U.workflowId);if(!D||D.status!=="pending")return null;let L={...D,status:"running",startedAt:Q,updatedAt:Q,...Z!==void 0&&{executionDeadline:Z}},B=[{type:"put",key:F.workflow(U.workflowId),value:M(L)},...V4(U.workflowId,D,L).batchOps];if(Z!==void 0)B.push(...v$({id:`deadline:${U.workflowId}`,workflowId:U.workflowId,fireAt:Z,kind:"execution-deadline"}));return await R$($,B,[],()=>Error(`Delayed-start transition for workflow "${U.workflowId}" lost its CAS race.`)),L});if(!Y)return;if(await bJ($,Y,(D,L)=>j.failWorkflow(D,L),j.handleCleanupError,j.dispatchEvent))return;if(await Q4($.storage,F.terminalCleanupNeeded(U.workflowId)))$.workflowsNeedingTerminalCleanup.add(U.workflowId);$.checkpoints.set(U.workflowId,X),$.workflowVersionTuples.set(U.workflowId,j.workflowVersionTupleFromState(Y)),j.setWorkflowStartHeaders(U.workflowId,await j.loadWorkflowStartHeaders(U.workflowId)),j.beginWorkflowExecution(U.workflowId,Y.type,Y.input,X,Z,Y.executionStateOwnerId??U.workflowId,J)}async function t0$($,U,j){let G=await $.storage.get(F.checkpoint(U.workflowId));if(!G)return await j.failWorkflow(U.workflowId,Error(`Checkpoint not found for delayed workflow "${U.workflowId}"`)),null;return h$(G)}async function e0$($,U,j){if($.executionTimeoutMs===void 0)return;if(!Number.isFinite($.executionTimeoutMs)||$.executionTimeoutMs<0)return await nS($,j),"invalid";try{return U4(U+$.executionTimeoutMs,`Delayed execution timeout for workflow "${$.workflowId}"`)}catch{return await nS($,j),"invalid"}}async function nS($,U){await U.failWorkflow($.workflowId,Error(`Invalid delayed execution timeout for workflow "${$.workflowId}"`))}async function dB($,U,j){if(U.id.startsWith("review-escalation:")||U.id.startsWith("review-timeout:")){await U9$($,U,j);return}if(U.kind==="delayed-start"){await a0$($,U,j);return}if(U.kind==="terminal-cleanup"){await j.runDeferredTerminalCleanup(U.workflowId,U.id);return}if(U.kind==="teardown"){await j.runWorkflowFinalizer(U.workflowId,U.id);return}if(U.kind==="schedule"){await j.handleScheduleTimer(U);return}if(U.kind==="sleep")j9$($,U);else if(U.kind==="wait-condition")$9$($,U);else if(U.kind==="execution-deadline")await j.timeout(U.workflowId)}function $9$($,U){let j=$.conditionWaiters.get(U.workflowId);if(j)j()}async function U9$($,U,j){let G=U.id.split(":")[1];if(!G)return;let X=$.reviewEscalationHandlers.get(G);if(!X)return;let J=await j.loadWorkflowState(U.workflowId);if(!J||J.status!=="running")return;await X(U)}function j9$($,U){let j=U.id.replace("sleep:",""),G=`${U.workflowId}:${j}`,X=$.sleepResolvers.get(G);if(!X)return;$.sleepResolvers.delete(G),G9$($,U.workflowId,j),X()}function G9$($,U,j){let G=$.sleepResolversByWorkflow.get(U);if(!G)return;if(G.delete(j),G.size===0)$.sleepResolversByWorkflow.delete(U)}var SJ=V(()=>{h();a4();u();E$();A6();EJ();B4()});function oS($,U,j,G,X,J,Q,Z,Y,H,D,L){let B=A5(U,null,j).batchOps,z=[...L??[],{type:"put",key:F.workflow(U),value:M(j)},{type:"put",key:F.checkpoint(U),value:d$(G)},...B,...GU(U,void 0,j.tags),...J9$($,U,X,J?.searchAttributes,D),...X9$(U,J,Y),...H??[]];if(Q!==void 0)z.push(...v$({id:`deadline:${U}`,workflowId:U,fireAt:Q,kind:"execution-deadline"}));if(Z)z.push(...v$(Z));return z}function X9$($,U,j){let G=j!==void 0&&j.size>0,X=U?.services!==void 0,J=[];if(G)J.push({type:"put",key:F.workflowHeaders($),value:K5(j)});if(X)J.push({type:"put",key:F.workflowHasServices($),value:q4});if(G||X)J.push({type:"put",key:F.terminalCleanupNeeded($),value:q4});return J}function J9$($,U,j,G,X){if(!G||Object.keys(G).length===0)return[];return Q9$($,j,G,X),bU(G),[{type:"put",key:F.attribute(U),value:M(G)},...a$(U,{},G)]}function Q9$($,U,j,G){if(!U.searchAttributes)return;let X=U.searchAttributes;for(let[J,Q]of Object.entries(j)){if(!(J in X))throw Error(`Unknown search attribute "${J}". Registered attributes: ${Object.keys(X).join(", ")}`);j0(J,Q,X[J])}}var aS=V(()=>{h();a4();u();E$();W4();n4();EU();B$();B4();E1()});async function Z9$($,U,j){if(j.length===0)return await R$($,U,[],()=>Error("Workflow start lost its CAS race.")),!0;return O$($.storage,"conditionalBatch","start preconditions"),OU($,U,j.map((G)=>G.condition))}async function Y9$($,U){for(let j of U){if(j.source!=="start-precondition")continue;let G=await $.storage.get(j.condition.key);if(!f1(G,j.condition.expectedValue))return!0}return!1}function H9$($){return($??[]).map((U)=>({source:"start-precondition",condition:U}))}function _9$($){return $.map((U)=>({source:"workflow-concurrency",condition:U}))}function eS($,U){if(U===void 0||U.length===0)return $;return[...$??[],...U]}async function $x($,U){let{internals:j,workflowId:G,state:X,checkpoint:J,registration:Q,options:Z}=$,Y=$.buildWorkflowConcurrencyStartOperations===void 0?1:tS,H;for(let D=0;D<Y;D+=1){let L=U?.(G),B=await $.buildWorkflowConcurrencyStartOperations?.();H=B?.stateKey??H;let z=oS(j,G,X,J,Q,Z,X.executionDeadline,$.delayedStartTimer,$.persistedWorkflowStartHeaders,eS($.additionalStartOperations,eS(L?.operations,B?.operations)),$.callbacks,$.purgeDeleteOperations),K=[...H9$(L?.conditions),..._9$(B?.conditions??[])];if(await Z9$(j,z,K))return;if(await Y9$(j,K))throw new T9;if(B===void 0)throw new T9}throw new Q0(H??"workflow concurrency admission",tS)}var T9,tS=5;var xJ=V(()=>{h();W9();A6();aS();T9=class T9 extends Error{constructor(){super("start idempotency compare-and-swap lost to a concurrent caller");this.name="StartIdempotencyRaceLostError"}}});function lB($,U,j,G,X,J){let Q=J.getComposedWorkflowInterceptor();if(!Q)return;let Z=new Map;if(X)for(let[H,D]of X)Z.set(H,D);let Y;return Q.workflowStart({workflowId:U,workflowType:j,input:G,headers:Z},(H)=>{Y=new Map(H.headers)}),Y}function gJ($,U,j,G,X,J,Q,Z,Y){if(J!==0)$.workflowNestingDepths.set(U,J);$.workflowTypeByWorkflowId.set(U,j),$.strategy.startWorkflow({workflowId:U,workflowType:j,input:G,checkpoint:d$(X),nestingDepth:J,executionStateOwnerId:Z,startedAt:X.createdAt,sleepReferenceTime:X.createdAt,...Q!==void 0&&{deadline:Q},...$.workflowHeaders.has(U)&&{headers:[...$.workflowHeaders.get(U)]}})}function vJ($,U,j,G,X,J,Q,Z,Y,H){let D=$.pendingNestingDepth??0;if($.pendingNestingDepth=void 0,$.inlineStrategy!==null){Y.queueInlineWorkflowExecutionStart({workflowId:U,workflowType:j,input:G,checkpoint:X,nestingDepth:D,executionDeadline:J,executionStateOwnerId:Q,...H!==void 0&&{onStarted:H}});return}Y.dispatchEvent(new y6(U,j,G)),gJ($,U,j,G,X,D,J,Q,Y),H?.()}function Ux($,U,j){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(j)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 jx($,U,j,G){if(U.isDelayed)return;let X=U.options?.defer===!1?Promise.withResolvers():void 0;if(vJ($,j,U.type,U.input,U.checkpoint,U.state.executionDeadline,U.state.executionStateOwnerId??j,U.registration,G,X?()=>X.resolve():void 0),X)await X.promise}var iB=V(()=>{a4();H$();w$()});function D9$($,U){return{signal:()=>({waiters:$.signalWaiters,byWorkflow:$.signalWaitersByWorkflow}),update:()=>({waiters:$.updateWaiters,byWorkflow:$.updateWaitersByWorkflow}),review:()=>({waiters:$.reviewWaiters,byWorkflow:$.reviewWaitersByWorkflow})}[U]()}function Xx($,U,j){let{waiters:G,byWorkflow:X}=D9$($,j),J=X.get(U);if(!J)return;if(typeof J==="string")G.delete(J);else for(let Q of J)G.delete(Q);X.delete(U)}function L9$($,U){let j=$.sleepResolversByWorkflow.get(U);if(!j)return;for(let G of j){let X=`${U}:${G}`,J=$.sleepResolvers.get(X);if(J)J();$.sleepResolvers.delete(X)}$.sleepResolversByWorkflow.delete(U)}function F9$($,U){let j=$.sleepResolversByWorkflow.get(U);if(!j)return;for(let G of j)$.sleepResolvers.delete(`${U}:${G}`);$.sleepResolversByWorkflow.delete(U)}function W9$($,U){let j=$.conditionWaiters.get(U);if(!j)return;j(),$.conditionWaiters.delete(U)}function V9$($,U){$.conditionWaiters.delete(U)}function Jx($,U,j){let G=$.workflowReviewIds.get(U);if(!G)return;for(let X of G){$.reviewEscalationHandlers.delete(X);let J=$.reviewTimerIds.get(X);if(J){for(let Q of J)j.swallowPromiseRejection($.scheduler.cancel(Q,U));$.reviewTimerIds.delete(X)}}$.workflowReviewIds.delete(U)}function s6($,U,j){for(let G of Qx)Xx($,U,G);L9$($,U),W9$($,U),Jx($,U,j),$.deliveredPendingUpdateIds.delete(U),$.workflowNestingDepths.delete(U),$.workflowHeaders.delete(U),$.workflowServices.delete(U),$.workflowTypeByWorkflowId.delete(U)}function rB($,U,j){for(let G of Qx)Xx($,U,G);F9$($,U),V9$($,U),Jx($,U,j)}async function Zx($,U,j){let G=R(U),X=[F.activityReconciliationPrefix(U),F.childCancellationPrefix(U),c5(U),F.signalAcceptedResponsePrefix(U),`sig:${G}:`,`state:execution:${G}:`,`tool-effect:${G}:`];if(j)X.push(`offload:${G}:`,`blob:${G}:`);if(await $.storage.delete(F.workflowHeaders(U)),await $.storage.delete(F.signalSequence(U)),await IU($,U),await $.storage.delete(F.workflowHasServices(U)),!await Q4($.storage,F.teardownOwed(U)))await $.storage.delete(F.finalizerState(U));if($.storage.deletePrefix){for(let Y of X)await $.storage.deletePrefix(Y);return}let J=500,Q=[],Z=async()=>{if(Q.length===0)return;await $.storage.batch(Q),Q=[]};for(let Y of X)for await(let[H]of $.storage.scan(Y))if(Q.push({type:"delete",key:H}),Q.length>=J)await Z();await Z()}function sB($,U,j){$.workflowsNeedingTerminalCleanup.delete(U),z0($,U),$.checkpoints.delete(U),$.heartbeatDetails.delete(U),$.lastHeartbeatDetailsByStep.delete(U);for(let[G,X]of $.pendingAsyncActivities)if(X.workflowId===U)$.pendingAsyncActivities.delete(G);$.eventLogHeads.delete(U),$.pendingTimelineEntries.delete(U),$.pendingAsyncActivityResolutions??=new Map,$.pendingAsyncActivityResolutions.delete(U),$.pendingAtomicWorkflowCommitSideEffects??=new Map,$.pendingAtomicWorkflowCommitSideEffects.delete(U),$.parkedInlineWorkflows.delete(U),$.inlineStrategy?.clearParkedContext(U),$.workflowVersionTuples.delete(U),$.cancelHandlersByWorkflow.delete(U),$.workflowFeedListeners.delete(YU(U,"events")),$.workflowFeedListeners.delete(YU(U,"tokens")),s6($,U,j)}function oB($,U,j){sB($,U,j)}async function yJ($,U,j,G){sB($,U,G),await aB($,U,j,G)}async function aB($,U,j,G){await G.cleanupReviews(U),await Zx($,U,j),await $.storage.delete(F.terminalCleanupNeeded(U))}async function tB($,U,j,G){let X=fT(j);if(!X){G.handleCleanupError("cleanupTerminalWorkflowDurableState",Error(`Ignoring malformed terminal cleanup timer id "${j}"`),U);return}let J=await G.loadWorkflowState(U);if(!J||!Gx.has(J.status))return;if(J.terminalCleanupToken!==X.terminalCleanupToken)return;try{await aB($,U,X.includeOutputArtifacts,G)}catch(Q){throw G.handleCleanupError("cleanupTerminalWorkflowDurableState",Q,U),Q}}function b3($,U,j,G,X){let J=j instanceof Error?j:Error(String(j));X.dispatchEvent(new U2(U,J,G))}async function E3($,U,j){try{await j.handleScheduledWorkflowTerminal(U)}catch(G){j.handleCleanupError("handleScheduledWorkflowTerminal",G,U)}}var Gx,nB,Qx;var S3=V(()=>{h();H$();NU();O9();B$();O3();Gx=new Set(["completed","failed","cancelled","timed-out"]),nB=["running","pending","suspended"];Qx=["signal","update","review"]});async function Yx($,U,j){let G=await $.storage.get(F.workflow(U));if(G===null)return null;if(j?.onTerminalConflict!=="start-new")throw new r$(U);let X=U$(G);if(!p$(X.status))throw new r$(U);if(await Q4($.storage,F.teardownOwed(U)))throw new E8(U);return X}async function Hx($,U,j){let G=(J)=>s6($,J,{swallowPromiseRejection:j.swallowPromiseRejection}),X=await bB($,U);return EB($,U.id,G),X}var _x=V(()=>{h();zJ();P$();S3();N$()});function B9$($,U,j){let G=U?.id!==void 0,X=U?.id!==void 0?q1(U.id,"options.id"):crypto.randomUUID(),J=$.pendingParentHeaders;$.pendingParentHeaders=void 0;let Q=$.pendingExecutionStateOwnerId,Z=Q===null?void 0:Q??X;$.pendingExecutionStateOwnerId=void 0;let Y=$.options.getNow(),H=Dx($,U,Y,j),D=wB($,U?.tags,void 0,j),L=H!==void 0&&H>Y?rS($,X,H,U,{parseStartOptionDuration:(B,z)=>mU($,B,z,j)}):void 0;return{workflowId:X,callerProvidedId:G,parentHeaders:J,executionStateOwnerId:Z,submissionTime:Y,delayedStartTimer:L,normalizedTags:D}}function z9$($,U){z0($,U),$.checkpoints.delete(U),$.workflowHeaders.delete(U),$.workflowVersionTuples.delete(U),$.workflowServices.delete(U),$.workflowsNeedingTerminalCleanup.delete(U)}function P9$($,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 U6($,U,j,G,X,J,Q){let Z=$.registrations.get(U);if(!Z)throw new v4(U);let Y=Z.concurrency;P9$($,G),oX(G);let H=B9$($,G,J),{workflowId:D,callerProvidedId:L,parentHeaders:B,executionStateOwnerId:z,delayedStartTimer:K}=H;if(Ux($,G,Boolean(K)),$.pendingStarts.has(D))throw new r$(D);$.pendingStarts.add(D);let q=!1;try{let O=L?await Yx($,D,G):null;y4(j,$.options.payloadSizePolicy.maxBytes,"workflow input");let g=hU($,Z,J),k=Lx($,D,U,j,g,G,H.normalizedTags,z,K,J),m=Fx($,D,g.workflowVersion,G,J),p=lB($,D,U,j,B,J),d=N5(p),Q$=O!==null?await Hx($,O,J):void 0;if($.checkpoints.set(D,m),b1($,D,p,J),$.workflowVersionTuples.set(D,g),await $x({internals:$,workflowId:D,state:k,checkpoint:m,registration:Z,options:G,delayedStartTimer:K,persistedWorkflowStartHeaders:d,additionalStartOperations:X,buildWorkflowConcurrencyStartOperations:Y===void 0?void 0:()=>MJ($,U,D,j,Y),callbacks:J,purgeDeleteOperations:Q$},Q),G?.services!==void 0)$.workflowServices.set(D,G.services),$.workflowsNeedingTerminalCleanup.add(D);if(Y!==void 0)$.workflowsNeedingTerminalCleanup.add(D);let q$=R3($,D,J);return await jx($,{type:U,input:j,checkpoint:m,state:k,registration:Z,options:G,isDelayed:Boolean(K)},D,J),q=!0,q$}finally{if($.pendingStarts.delete(D),!q)z9$($,D)}}function Dx($,U,j,G){if(rX(U?.startAt,U?.startAfter),U?.startAt!==void 0)return tX(U.startAt,"options.startAt");if(U?.startAfter!==void 0){let X=mU($,U.startAfter,"options.startAfter",G);try{return U4(j+X,"options.startAfter")}catch{throw new o("options.startAfter must resolve to a finite, non-negative start time")}}return}function mU($,U,j,G){return I8(U,j)}function K9$($,U,j,G,X,J,Q,Z){return{id:$,type:U,status:J?"pending":"running",input:j,versionTuple:G,...X!==void 0&&{executionStateOwnerId:X},createdAt:Q,...!J&&{startedAt:Q},updatedAt:Q,...Z!==void 0&&{tags:Z}}}function N9$($,U,j,G,X){if(U?.executionTimeout===void 0||j)return;let J=mU($,U.executionTimeout,"options.executionTimeout",X);try{return U4(G+J,"options.executionTimeout")}catch{throw new o("options.executionTimeout must resolve to a finite, non-negative deadline")}}function Lx($,U,j,G,X,J,Q,Z,Y,H){let D=$.options.getNow(),L=K9$(U,j,G,X,Z,Y,D,Q),B=N9$($,J,Y,D,H);if(B!==void 0)L.executionDeadline=B;return L}function Fx($,U,j,G,X){let J=uV(U,j,$.options.getNow());if(G?.searchAttributes)J.searchAttributes={...G.searchAttributes};return J}var IJ=V(()=>{a4();n6();E$();w$();O9();P$();SJ();B$();O3();T3();E1();xJ();iB();_x()});async function g3($,U){let j=await $.storage.get(F.startIdempotency(U));if(j===null)return;return A(j).workflowId}async function $z($,U){if(await J$($,U)===null)throw new l4(U);return U}async function A9$($,U){for(let j=0;j<M9$;j+=1){if(!$.pendingStarts.has(U))return;await F1(q9$)}}async function Uz($,U,j,G,X){let J=await x3($,U,j,G,X);if(J!==void 0)return J;return await A9$($,U),x3($,U,j,G,X)}async function x3($,U,j,G,X){let J=await J$($,U);if(J===null)return;if(p$(J.status))throw new $9(U,J.status);return await X.signalExistingWorkflow(U,j.name,j.payload,G),X.getHandle(U)}async function Wx($,U,j,G,X,J){for(let Z=0;Z<eB;Z+=1){let Y=await x3($,U,j,G,X);if(Y!==void 0)return Y;if(Z<eB-1)await F1(O9$)}if(await g3($,J)===U)throw new l4(U);throw Error(`startOrSignal resolved winning workflow "${U}" but its record never became readable after ${eB} attempts.`)}async function hJ($,U){let j=await g3($,U);if(j===void 0)throw Error(`start idempotency mapping for key "${U}" vanished after a lost compare-and-swap; the start-idem: keyspace may have been mutated externally.`);return j}var M9$=5,q9$=5,eB=5,O9$=5;var jz=V(()=>{L6();h();u();P$();j4();N$()});function Gz($,U,j){return(G)=>{let X=[],J=[];if(U!==void 0){let Q=F.startIdempotency(U);X.push({type:"put",key:Q,value:M({workflowId:G})}),J.push({key:Q,expectedValue:null})}if(j!==void 0){let Q=CE($,G,j.name,j.payload,j.signalId);X.push(...Q.operations),J.push(Q.condition)}return{operations:X,conditions:J}}}async function Bx($,U,j,G,X,J,Q){let Z=J?.idempotencyKey;for(let Y=0;Y<Vx;Y+=1){let H=await R9$($,J,async()=>{return U6($,U,j,J,void 0,Q,Gz($,Z,{name:G.name,payload:G.payload,signalId:X}))});if(H.kind==="created")return{handle:H.handle,outcome:"started"};if(H.kind==="lost-keyed")return{handle:await Wx($,H.id,G,X,Q,H.idempotencyKey),outcome:"signalled"};if(H.kind==="lost-caller-id"){let D=await Uz($,H.id,G,X,Q);if(D!==void 0)return{handle:D,outcome:"signalled"}}else{let D=await C9$($,U,j,G,X,J,Q);if(D!==void 0)return D}}throw Error(`startOrSignal could not create workflow "${J?.id??"<generated>"}" after ${Vx} attempts: each concurrent same-id winner aborted before its durable commit.`)}async function C9$($,U,j,G,X,J,Q){try{return{handle:await U6($,U,j,J,void 0,Q),outcome:"started"}}catch(Z){if(!(Z instanceof r$))throw Z;let Y=await Uz($,Z.workflowId,G,X,Q);return Y===void 0?void 0:{handle:Y,outcome:"signalled"}}}async function R9$($,U,j){try{return{kind:"created",handle:await j()}}catch(G){if(G instanceof r$)return{kind:"lost-caller-id",id:G.workflowId};if(G instanceof T9){let X=U?.idempotencyKey;if(X!==void 0)return{kind:"lost-keyed",id:await hJ($,X),idempotencyKey:X};return{kind:"signal-already-buffered"}}throw G}}var Vx=5;var zx=V(()=>{h();u();P$();L0();xJ();jz();IJ()});function T9$($,U){if(U!==void 0)return F.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 Xz($,U,j,G,X){O$($.storage,"conditionalBatch","start idempotency");let{idempotencyKey:J}=G;if(J===void 0)throw new o("startWithIdempotency requires options.idempotencyKey");sX(J,"options.idempotencyKey"),oW(G),oX(G);let Q=await g3($,J);if(Q!==void 0)return X.getHandle(await $z($,Q));try{return await U6($,U,j,G,void 0,X,Gz($,J,void 0))}catch(Z){if(!(Z instanceof T9))throw Z}return X.getHandle(await $z($,await hJ($,J)))}function b9$($,U){let j=U?.idempotencyKey;if(j===void 0)return;if(sX(j,"options.idempotencyKey"),oW(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 Jz($,U,j,G,X,J){O$($.storage,"conditionalBatch","startOrSignal"),aX(X,"startOrSignal");let Q=X?.idempotencyKey;b9$(G,X);let Z=T9$(G,Q),Y=Q!==void 0?await g3($,Q):void 0,H=Y??X?.id;if(H!==void 0){let D=await x3($,H,G,Z,J);if(D!==void 0)return{handle:D,outcome:"signalled"};if(Y!==void 0)throw new l4(Y)}return Bx($,U,j,G,Z,X,J)}var Px=V(()=>{h();w$();P$();xJ();zx();jz();IJ()});function Kx($,U,j){if($.searchAttributeSchema){if(!(U in $.searchAttributeSchema))throw Error(`Unknown search attribute "${U}". Registered attributes: ${Object.keys($.searchAttributeSchema).join(", ")}`);j0(U,j,$.searchAttributeSchema[U])}}function Nx($,U,j){Kx($,U,j),$.searchAttributes[U]=j,$.pendingAttributeChanges??={},$.pendingAttributeChanges[U]=j}function Mx($,U){for(let[j,G]of Object.entries(U))Kx($,j,G);for(let[j,G]of Object.entries(U))$.searchAttributes[j]=G,$.pendingAttributeChanges??={},$.pendingAttributeChanges[j]=G}function qx($,U){return $.searchAttributes[U]}function Ax($){return{...$.searchAttributes}}var Ox=V(()=>{W4()});function Rx($,U,j,G){S9$(U,j,G);let X=`version:${U}`,J=$[X];if(J===void 0)return{localKey:X,version:G,newlyPinned:!0,checkpointLocals:{...$,[X]:G}};if(typeof J!=="number"||!Number.isSafeInteger(J))throw Error(`Invalid checkpointed workflow version patch "${U}" value ${JSON.stringify(J)}`);let Q=J;return x9$(U,Q,j,G),{localKey:X,version:Q,newlyPinned:!1,checkpointLocals:$}}function S9$($,U,j){if(typeof $!=="string"||$.length===0)throw Error("ctx.getVersion() requires a non-empty changeId");if(Cx("minSupported",U),Cx("maxSupported",j),U>j)throw Error("ctx.getVersion() minSupported must be less than or equal to maxSupported")}function Cx($,U){if(!Number.isSafeInteger(U))throw Error(`ctx.getVersion() ${$} must be a safe integer`)}function x9$($,U,j,G){if(U<j)throw Error(`Workflow version patch "${$}" is pinned to version ${U}, below the minimum supported version ${j}`);if(U>G)throw Error(`Workflow version patch "${$}" is pinned to version ${U}, above the maximum supported version ${G}`)}function Tx($,U){let j=$.stepIndex++;if($.accumulatedResults?.has(j))return{cached:!0};let G=b$(U);if($.explainMode)console.log(`[weft] ctx.sleep(${JSON.stringify(U)})`),console.log(` \u2192 Creating checkpoint at step ${j}`),console.log(` \u2192 Scheduling timer for ${G}ms`);let X=crypto.randomUUID(),J=W$(),Q=$.sleepReferenceTime??$.getNow();return $.sleepReferenceTime=void 0,{cached:!1,milliseconds:G,request:{type:"sleep",operationId:X,duration:G,scheduledFireAt:Q+G,callerStack:J},step:j}}function*bx($,U){yield U.request,$.accumulatedResults.set(U.step,void 0)}function*Ex($,U,j){let G=U.stepIndex++;if(U.accumulatedResults?.has(G))return U.accumulatedResults.get(G);if(U.explainMode)console.log(`[weft] ctx.waitForSignal("${j}")`),console.log(` \u2192 Creating checkpoint at step ${G}`),console.log(` \u2192 Waiting for signal "${j}"`);let X=crypto.randomUUID(),J=W$(),Q=yield{type:"wait-signal",operationId:X,signalName:j,callerStack:J};return $.accumulatedResults.set(G,Q),Q}function v9$($,U,j){if(j===void 0)return;let G=`${g9$}${U}`,X=$.checkpointLocals[G];if(typeof X==="number"&&Number.isFinite(X))return X;if(X!==void 0)throw Error(`Invalid checkpointed wait-condition deadline ${JSON.stringify(X)} for step ${U}`);let J=b$(j),Q=$.sleepReferenceTime??$.getNow();$.sleepReferenceTime=void 0;let Z=Q+J;return $.checkpointLocals={...$.checkpointLocals,[G]:Z},Z}function*Sx($,U,j,G){let X=U.stepIndex++;if(U.accumulatedResults?.has(X))return U.accumulatedResults.get(X);let J=v9$(U,X,G);if(U.explainMode)console.log("[weft] ctx.waitUntil(predicate)"),console.log(` \u2192 Creating checkpoint at step ${X}`),console.log(J===void 0?" \u2192 Waiting indefinitely":` \u2192 Deadline at ${J}`);let Q=crypto.randomUUID(),Z=W$(),Y=yield{type:"wait-condition",operationId:Q,step:X,predicate:j,...J!==void 0&&{deadline:J},callerStack:Z};return $.accumulatedResults.set(X,Y),Y}function*xx($,U,j,G,X){let J=U.stepIndex++,Q=Rx(U.checkpointLocals,j,G,X);if(U.checkpointLocals=Q.checkpointLocals,!Q.newlyPinned)return Q.version;if(U.accumulatedResults?.has(J)){let D=U.accumulatedResults.get(J);if(D!==Q.version)throw Error(`ctx.getVersion("${j}") replay result ${String(D)} does not match pinned version ${String(Q.version)}`);return Q.version}if(U.explainMode)console.log(`[weft] ctx.getVersion("${j}", ${G}, ${X})`),console.log(` \u2192 Creating checkpoint at step ${J}`),console.log(` \u2192 Pinning workflow patch "${j}" to version ${Q.version}`);let Z=crypto.randomUUID(),Y=W$();return yield{type:"get-version",operationId:Z,changeId:j,minSupported:G,maxSupported:X,version:Q.version,callerStack:Y}}function*gx($,U,j){let G=U.stepIndex++;if(U.accumulatedResults?.has(G))return{payload:U.accumulatedResults.get(G).payload,respond:()=>{}};if(U.explainMode)console.log(`[weft] ctx.waitForUpdate("${j}")`),console.log(` \u2192 Creating checkpoint at step ${G}`),console.log(` \u2192 Waiting for update "${j}"`);let X=crypto.randomUUID(),J=W$(),Z=yield{type:"wait-update",operationId:X,updateName:j,callerStack:J};return $.accumulatedResults.set(G,{payload:Z.payload}),Z}function*vx($,U,j){let G=U.stepIndex++;if(U.accumulatedResults?.has(G))return U.accumulatedResults.get(G);if(U.explainMode)console.log(`[weft] ctx.review(${JSON.stringify(j.reviewType??"general")})`),console.log(` \u2192 Creating checkpoint at step ${G}`),console.log(" \u2192 Pausing for human review");let X=crypto.randomUUID(),J=W$(),Q=yield{type:"wait-review",operationId:X,reviewOptions:j,callerStack:J};return $.accumulatedResults.set(G,Q),Q}function*yx($,U,j,G){let X=U.stepIndex++;if(U.accumulatedResults?.has(X))return U.accumulatedResults.get(X);if(U.explainMode)console.log(`[weft] ctx.offload("${j}")`),console.log(` \u2192 Creating checkpoint at step ${X}`),console.log(` \u2192 Offloading data for key "${j}" to external storage`);let J=crypto.randomUUID(),Q=W$(),Z=yield{type:"offload",operationId:J,key:j,fn:G,callerStack:Q};return $.accumulatedResults.set(X,Z),Z}function*Ix($,U,j,G){let X=U.stepIndex++;if(U.accumulatedResults?.has(X))return U.accumulatedResults.get(X);if(U.explainMode)console.log(`[weft] ctx.stream("${j}")`),console.log(` \u2192 Creating checkpoint at step ${X}`),console.log(` \u2192 Streaming data for key "${j}" to external storage`);let J=crypto.randomUUID(),Q=W$(),Z=yield{type:"stream",operationId:J,key:j,fn:G,callerStack:Q};return $.accumulatedResults.set(X,Z),Z}function*hx($,U,j){let G=U.stepIndex++;if(U.accumulatedResults?.has(G))return U.accumulatedResults.get(G);if(U.explainMode)console.log(`[weft] ctx.load("${j.key}")`),console.log(` \u2192 Creating checkpoint at step ${G}`),console.log(` \u2192 Loading offloaded data for key "${j.key}"`);let X=crypto.randomUUID(),J=W$(),Q=yield{type:"load",operationId:X,reference:j,callerStack:J};return $.accumulatedResults.set(G,Q),Q}function*mx($,U,j,G){let X=U.stepIndex++;if(U.accumulatedResults?.has(X))return;if(U.explainMode)console.log(`[weft] ctx.archive("${j}")`),console.log(` \u2192 Creating checkpoint at step ${X}`),console.log(` \u2192 Archiving data for key "${j}"`);let J=crypto.randomUUID(),Q=W$();yield{type:"archive",operationId:J,key:j,data:G,callerStack:Q},$.accumulatedResults.set(X,void 0)}var g9$="__weftConditionDeadline:";var fx=V(()=>{E$()});function*kx($,U){let j=[],G,X=!1,J=!0,Q=c($).registerCancelHandler?.(async()=>{if(!J||X)return;X=!0;try{await I9$(j)}finally{J=!1,j.length=0,Q?.()}});for(let Y of U){let H=Y.definition;try{let D=(B,z)=>H.execute(B,z);Object.defineProperty(D,"name",{value:H.name,configurable:!0});let L=yield*$.run(D,Y.input);j.push({definition:H,input:Y.input,output:L}),G=L}catch(D){if(!X){X=!0;for(let L=j.length-1;L>=0;L--){let B=j[L];if(B.definition.compensate!==void 0){let{input:z,output:K,definition:q}=B,O=async()=>q.compensate?.(z,K);Object.defineProperty(O,"name",{value:`compensate:${B.definition.name}`,configurable:!0});try{yield*$.run(O)}catch{}}}}throw Z(),D}}return Z(),G;function Z(){J=!1,j.length=0,Q?.()}}async function I9$($){for(let U=$.length-1;U>=0;U--){let j=$[U];if(j.definition.compensate!==void 0)try{await j.definition.compensate(j.input,j.output)}catch{}}}var ux=V(()=>{MU()});function*wx($,U,j){let G=U.stepIndex++;if(U.accumulatedResults?.has(G))return U.accumulatedResults.get(G);let X=crypto.randomUUID(),J=W$(),Q=yield{type:"speculate",operationId:X,execute:j,callerStack:J};return $.accumulatedResults.set(G,Q),Q}var cx=()=>{};function j6($){return $===void 0?void 0:new Map($)}function px($){return $===void 0?void 0:{...$}}function f9$($,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 k9$($,U){let j={workflowId:$.workflowId,workflowType:$.workflowType,startedAt:$.startedAt,abortController:U.abortController,getNow:U.getNow,initialStep:U.stepIndex,locals:U.checkpointLocals,searchAttributes:U.searchAttributes,nestingDepth:U.nestingDepth,executionStateOwnerId:U.executionStateOwnerId},G=j6(U.accumulatedResults);if(G!==void 0)j.accumulatedResults=G;return f9$(j,U),j}function u9$($,U){$.pendingAttributeChanges=px(U.pendingAttributeChanges),$.updateHandlers=j6(U.updateHandlers),$.updateValidators=j6(U.updateValidators),$.queryHandlers=j6(U.queryHandlers),$.exposedValues=j6(U.exposedValues),$.memoCache=j6(U.memoCache),$.explainMode=U.explainMode,$.workflowInterceptor=U.workflowInterceptor}function dx($,U){let j=c($),G=U(k9$($,j));return u9$(c(G),j),G}function lx($,U){let j=c($),G=c(U);j.stepIndex=G.stepIndex,j.accumulatedResults=j6(G.accumulatedResults),j.stateSession=a8(G.stateSession),j.checkpointLocals=j3(j.stateSession,G.checkpointLocals),j.searchAttributes={...G.searchAttributes},j.pendingAttributeChanges=px(G.pendingAttributeChanges),j.updateHandlers=j6(G.updateHandlers),j.updateValidators=j6(G.updateValidators),j.queryHandlers=j6(G.queryHandlers),j.exposedValues=j6(G.exposedValues),j.memoCache=j6(G.memoCache),j.sleepReferenceTime=G.sleepReferenceTime}var ix=V(()=>{t8();MU();G3()});function nx($,U){let j=w9$($,U);return{session:(G,X)=>JE($,U,G,X),execution:(G,X)=>new Qz({type:"execution",ownerWorkflowId:U.executionStateOwnerId},G,X,j),workflow:(G,X)=>new Qz({type:"workflow",workflowType:$.workflowType},G,X,j)}}function w9$($,U){return{nextStep:()=>U.stepIndex++,has:(j)=>U.accumulatedResults?.has(j)??!1,get:(j)=>U.accumulatedResults?.get(j),set:(j,G)=>{$.accumulatedResults.set(j,G)}}}var Qz;var rx=V(()=>{W9();G3();Qz=class Qz extends EventTarget{#$;#U;#j;#G;#X;#J;constructor($,U,j,G){super();this.#$=$,this.#U=U,this.#j=Z0($,U),this.#G=j?.maxRetries??10,this.#X=j&&"initial"in j?{initial:j.initial}:void 0,this.#J=G}*get(){return(yield*this.#Q()).value}*set($){return yield*this.update(()=>$)}*update($){for(let U=0;U<this.#G;U++){let j=yield*this.#Q(),G=$(j.value),X=yield*this.#Z(j.version,"set",G);if(X.applied)return this.dispatchEvent(new G0(G,j.value,X.version)),G;this.dispatchEvent(new X0(this.#j,U+1))}throw this.dispatchEvent(new J0(this.#j,this.#G)),new Q0(this.#j,this.#G)}*delete(){for(let $=0;$<this.#G;$++){let U=yield*this.#Q(),j=yield*this.#Z(U.version,"delete");if(j.applied){this.dispatchEvent(new G0(void 0,U.value,j.version));return}this.dispatchEvent(new X0(this.#j,$+1))}throw this.dispatchEvent(new J0(this.#j,this.#G)),new Q0(this.#j,this.#G)}*increment($=1){return yield*this.update((U)=>(U??0)+$)}*decrement($=1){return yield*this.update((U)=>(U??0)-$)}*merge($){return yield*this.update((U)=>({...U??{},...$}))}*append($){return yield*this.update((U)=>[...U??[],$])}*removeFirst(){let $;return yield*this.update((U)=>{let j=[...U??[]];return $=j.shift(),j}),$}*removeLast(){let $;return yield*this.update((U)=>{let j=[...U??[]];return $=j.pop(),j}),$}*#Q(){return yield*this.#Y({type:"state-read",operationId:crypto.randomUUID(),scope:this.#$,key:this.#U,...this.#X!==void 0?{initial:this.#X.initial}:{},callerStack:W$()})}*#Z($,U,j){return yield*this.#Y({type:"state-commit",operationId:crypto.randomUUID(),scope:this.#$,key:this.#U,expectedVersion:$,mode:U,...U==="set"?{value:j}:{},callerStack:W$()})}*#Y($){let U=this.#J;if(U===void 0)return yield $;let j=U.nextStep();if(U.has(j))return U.get(j);let G=yield $;return U.set(j,G),G}}});function sx($,U,j,G){if(_E(j)||DE(j))throw TypeError(`Update handler "${U}" cannot be a generator function. `+"Use a plain function \u2014 update handlers run synchronously at checkpoint boundaries and cannot yield.");if($.updateHandlers??=new Map,$.updateHandlers.set(U,j),G?.validator!==void 0)$.updateValidators??=new Map,$.updateValidators.set(U,G.validator);else $.updateValidators?.delete(U)}function ox($,U,j){$.queryHandlers??=new Map,$.queryHandlers.set(U,j)}function ax($,U){$.exposedValues??=new Map;for(let[j,G]of Object.entries(U))$.exposedValues.set(j,G)}var tx=V(()=>{QB()});function mJ($){console[d9$[$.level]]($)}function l9$($,U,j,G){return{level:U,message:j,workflowId:$.workflowId,workflowType:$.workflowType,timestamp:$.now(),...G!==void 0&&{attributes:G}}}function i9$($){let U=(j,G,X)=>{if($.isReplaying())return;let J=l9$($,j,G,X);if($.sink!==void 0){try{$.sink(J)}catch{mJ(J)}return}mJ(J)};return{debug:(j,G)=>U("debug",j,G),info:(j,G)=>U("info",j,G),warn:(j,G)=>U("warn",j,G),error:(j,G)=>U("error",j,G)}}function ex($,U,j,G){return i9$({workflowId:$,workflowType:U,isReplaying:()=>{let X=j();return X.accumulatedResults?.has(X.stepIndex)??!1},now:()=>j().getNow(),...G!==void 0&&{sink:G}})}var d9$;var Zz=V(()=>{d9$={debug:"debug",info:"info",warn:"warn",error:"error"}});function fU($,U){c($).workflowInterceptor=U}class K0{workflowId;workflowType;startedAt;signal;#$;constructor($){this.workflowId=$.workflowId,this.workflowType=$.workflowType,this.startedAt=$.startedAt,this.signal=$.abortController.signal;let U=mV($.locals);ZE(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.#$??=ex(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 dx(this,($)=>new K0($))}commitSpeculativeChild($){lx(this,$)}get state(){return nx(this,c(this))}*run($,...U){return yield*YE(this,$,U)}*sleep($){let U=c(this),j=Tx(U,$);if(j.cached)return;let G=()=>bx(this,j);if(!U.workflowInterceptor)return yield*G();return yield*U.workflowInterceptor.sleep({workflowId:this.workflowId,duration:j.milliseconds,headers:new Map},G)}*suspendUntil($){return yield*this.waitForSignal($)}*waitForSignal($){let U=c(this),j=g4($),G=()=>Ex(this,U,j);if(U.accumulatedResults?.has(U.stepIndex))return yield*G();if(!U.workflowInterceptor)return yield*G();return yield*U.workflowInterceptor.waitForSignal({workflowId:this.workflowId,signalName:j,payload:void 0,headers:new Map},G)}*waitForUpdate($){return yield*gx(this,c(this),g4($))}*waitUntil($,U){return yield*Sx(this,c(this),$,U)}*getVersion($,U,j){return yield*xx(this,c(this),$,U,j)}*review($){return yield*vx(this,c(this),$)}*all($){return yield*Ab(this,c(this),[...$])}*race($){return yield*Ob(this,c(this),[...$])}*memo($,U){return yield*Cb(this,c(this),$,U)}*offload($,U){return yield*yx(this,c(this),$,U)}*stream($,U){return yield*Ix(this,c(this),$,U)}*load($){return yield*hx(this,c(this),$)}*archive($,U){return yield*mx(this,c(this),$,U)}*runAll($){return yield*Rb(this,c(this),$)}*saga($){return yield*kx(this,$)}*startChild($,U,j){return yield*zb(this,c(this),$,U,j)}*pipe($,U){return yield*Pb(this,c(this),$,U)}*map($,U,j){return yield*Kb(this,c(this),$,U,j)}*reduce($,U,j,G){return yield*Nb(this,c(this),$,U,j,G)}explain($=!0){c(this).explainMode=$}*speculate($){return yield*wx(this,c(this),$)}setAttribute($,U){Nx(c(this),$4($),U)}setAttributes($){Mx(c(this),$)}getAttribute($){return qx(c(this),$4($))}getAttributes(){return Ax(c(this))}onUpdate($,U,j){sx(c(this),g4($),U,j)}onQuery($,U){ox(c(this),g4($),U)}expose($){ax(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 $g=V(()=>{t8();d4();Ox();dV();fx();MU();u5();HE();ux();cx();ix();rx();tx();Zz()});var fJ=V(()=>{$g()});function v3($,U,j){$.cancelHandlersByWorkflow??=new Map;let G=$.cancelHandlersByWorkflow.get(U);if(G===void 0)G=[],$.cancelHandlersByWorkflow.set(U,G);return G.push(j),()=>{let X=$.cancelHandlersByWorkflow.get(U);if(X===void 0)return;let J=X.indexOf(j);if(J!==-1)X.splice(J,1);if(X.length===0)$.cancelHandlersByWorkflow.delete(U)}}function kJ($,U){return(j)=>v3($,U,j)}function y3($,U){$.cancelHandlersByWorkflow??=new Map,$.cancelHandlersByWorkflow.delete(U)}function Ug($,U){$.cancelHandlersByWorkflow??=new Map;let j=$.cancelHandlersByWorkflow.get(U)??[];return $.cancelHandlersByWorkflow.delete(U),j}function jg($){return{async execute(U,j){let G=j;for(let X=$.length-1;X>=0;X--){let J=$[X];if(J.execute){let Q=G,Z=J.execute.bind(J);G=(Y)=>{return Z(Y,Q)}}}return G(U)}}}var Gg;var Yz=V(()=>{Gg=Object.freeze(["activity","sleep","waitForSignal","workflowStart","childWorkflow","query","signalReceived"])});function Hz($){let U=[],j=[];for(let G of $){if(Gg.some((X)=>Xg(G,X)))U.push(G);if(Xg(G,"execute"))j.push(G)}return{workflow:U,activity:j}}function Xg($,U){return typeof $[U]==="function"}var Jg=V(()=>{Yz()});function n9$($){return function*(j,G){let X=G;for(let J=$.length-1;J>=0;J--){let Q=$[J];if(Q.activity){let Z=X,Y=Q.activity.bind(Q);X=function*(H){return yield*Y(H,Z)}}}return yield*X(j)}}function r9$($){return function*(j,G){let X=G;for(let J=$.length-1;J>=0;J--){let Q=$[J];if(Q.sleep){let Z=X,Y=Q.sleep.bind(Q);X=function*(H){yield*Y(H,Z)}}}yield*X(j)}}function s9$($){return function*(j,G){let X=G;for(let J=$.length-1;J>=0;J--){let Q=$[J];if(Q.waitForSignal){let Z=X,Y=Q.waitForSignal.bind(Q);X=function*(H){return yield*Y(H,Z)}}}return yield*X(j)}}function o9$($){return function(j,G){let X=G;for(let J=$.length-1;J>=0;J--){let Q=$[J];if(Q.workflowStart){let Z=X,Y=Q.workflowStart.bind(Q);X=(H)=>{Y(H,Z)}}}X(j)}}function a9$($){return async function(j,G){let X=G;for(let J=$.length-1;J>=0;J--){let Q=$[J];if(Q.childWorkflow){let Z=X,Y=Q.childWorkflow.bind(Q);X=(H)=>{return Y(H,Z)}}}return X(j)}}function t9$($){return function*(j,G){let X=G;for(let J=$.length-1;J>=0;J--){let Q=$[J];if(Q.query){let Z=X,Y=Q.query.bind(Q);X=function*(H){return yield*Y(H,Z)}}}return yield*X(j)}}function e9$($){return function(j,G){let X=G;for(let J=$.length-1;J>=0;J--){let Q=$[J];if(Q.signalReceived){let Z=X,Y=Q.signalReceived.bind(Q);X=(H)=>{Y(H,Z)}}}X(j)}}function Qg($){return{activity:n9$($),sleep:r9$($),waitForSignal:s9$($),workflowStart:o9$($),childWorkflow:a9$($),query:t9$($),signalReceived:e9$($)}}var Zg=V(()=>{Yz();Jg()});var Yg=V(()=>{Zg()});function G6($,U,j,G){if($.inlineStrategy){if(j.status==="completed")$.inlineStrategy.continueWorkflow(U,j.value);else $.inlineStrategy.throwIntoWorkflow(U,G!==void 0?G.value:X5(j),j.failureCategory);return}let X=$.checkpoints.get(U),J=X?d$(X):new ArrayBuffer(0);$.strategy.resumeWorkflow({workflowId:U,checkpoint:J,operationResult:j})}async function C6($){if(!$)return;try{await $}catch{}}function X6($){if($.interceptors.length===0)return null;if($.composedWorkflowInterceptor!==void 0)return $.composedWorkflowInterceptor;let U=Hz($.interceptors).workflow;return $.composedWorkflowInterceptor=U.length===0?null:Qg(U),$.composedWorkflowInterceptor}function Hg($){if($.interceptors.length===0)return null;if($.composedActivityInterceptor!==void 0)return $.composedActivityInterceptor;let U=Hz($.interceptors).activity;return $.composedActivityInterceptor=U.length===0?null:jg(U),$.composedActivityInterceptor}var o6=V(()=>{a4();l6();Yg()});function _g($,U,j,G){return{workflowId:U,step:j.step}}function Dg($,U,j,G){return{...U.searchAttributes,[dS]:j.workflowId}}function Lg($,U,j,G,X,J,Q){return{id:U,type:j.type,status:"running",input:j.input,versionTuple:G,executionStateOwnerId:U,createdAt:J,startedAt:J,updatedAt:J,forkedFrom:X}}function Fg($,U,j,G,X,J,Q){let Z=[{type:"put",key:F.workflow(U),value:M(j)},{type:"put",key:F.checkpoint(U),value:X},...A5(U,null,j).batchOps];if(Object.keys(G.searchAttributes).length>0)Z.push({type:"put",key:F.attribute(U),value:M(G.searchAttributes)},...a$(U,{},G.searchAttributes));if(J&&J.size>0)Z.push({type:"put",key:F.workflowHeaders(U),value:K5(J)},{type:"put",key:F.terminalCleanupNeeded(U),value:q4});return Z}var Wg=V(()=>{h();u();W4();B$();B4();E1()});function Vg($,U,j){let G=[{type:"put",key:F.childCancellation(U,j),value:q4}],X=!$.workflowsNeedingTerminalCleanup.has(U);if($.workflowsNeedingTerminalCleanup.add(U),X)G.push({type:"put",key:F.terminalCleanupNeeded(U),value:q4});return G}function _z($,U,j,G){v3($,U,()=>G.getHandle(j).cancel())}async function Dz($,U,j){for await(let[G]of $.storage.scan(F.childCancellationPrefix(U))){let X=$2$(U,G);if(X===null)continue;_z($,U,X,j)}}function $2$($,U){let j=F.childCancellationPrefix($);if(!U.startsWith(j))return null;let G=U.slice(j.length);if(G.length===0||G.includes(":"))return null;return XM(G)}var Lz=V(()=>{h();E1()});async function U2$($,U,j){return bJ($,U,j.failWorkflowForUnavailableServices,j.handleCleanupError,j.dispatchEvent)}function Bg($,U){if($.terminalizingWorkflows.has(U))throw Error(`Cannot resume workflow "${U}": termination is in progress`)}function j2$($,U){let{workflowId:j,resumeCheckpoint:G,serializedCheckpoint:X,registeredVersionTuple:J,restoredHead:Q,callbacks:Z}=U;$.checkpoints.set(j,G),WJ($,j,X),$.workflowVersionTuples.set(j,J),$.eventLogHeads.set(j,Q),b1($,j,U.workflowStartHeaders,Z),$.parkedInlineWorkflows.delete(j)}async function G2$($,U,j){let{workflowId:G,resumeCheckpoint:X,registration:J,callbacks:Q}=j,Z=new Map(X.accumulatedResults),Y=new AbortController;y3($,G),await Dz($,G,Q);let H=new K0({workflowId:G,workflowType:U.type,startedAt:O6(U),abortController:Y,getNow:$.options.getNow,resolveWorkflowType:Q.resolveWorkflowTypeTarget,executionStateOwnerId:U.executionStateOwnerId??G,accumulatedResults:Z,locals:X.locals,searchAttributes:X.searchAttributes,registerCancelHandler:kJ($,G),...J.searchAttributes&&{searchAttributeSchema:J.searchAttributes},sleepReferenceTime:X.createdAt,...U.executionDeadline!==void 0&&{deadline:U.executionDeadline},services:$.workflowServices.get(G),...$.options.onLog!=null&&{logSink:$.options.onLog}});if(fU(H,X6($)),$.options.development)H.explain(!0);let D=J.handler(H,U.input),L=$.inlineStrategy;L.adoptWorkflow(G,D,H,Y),L.continueWorkflow(G,void 0)}async function X2$($,U,j){let{workflowId:G,resumeCheckpoint:X,workflowStartHeaders:J,callbacks:Q}=j;y3($,G),await Dz($,G,Q);let Z=d$(X);$.strategy.startWorkflow({workflowId:G,workflowType:U.type,input:U.input,checkpoint:Z,nestingDepth:$.workflowNestingDepths.get(G)??0,executionStateOwnerId:U.executionStateOwnerId??G,...U.executionDeadline!==void 0&&{deadline:U.executionDeadline},...J!==void 0&&J.size>0&&{headers:[...J]}})}async function J2$($,U){let{workflowId:j}=U;Bg($,j);let G=await J$($,j);if(Bg($,j),!G)throw Error(`Workflow "${j}" not found in storage`);if(G.status!=="running"&&G.status!=="suspended")throw Error(`Cannot resume workflow "${j}": status is "${G.status}", expected "running" or "suspended"`);if(await Q2$($,G),j2$($,U),$.inlineStrategy){await G2$($,G,U);return}await X2$($,G,U)}async function Q2$($,U){if(U.status!=="suspended")return;let j={...U};U.status="running",U.updatedAt=$.options.getNow(),await R$($,[{type:"put",key:F.workflow(U.id),value:M(U)},...V4(U.id,j,U).batchOps,...U.executionDeadline!==void 0?v$({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 I3($,U,j,G){let X=await $.storage.get(F.workflow(U));if(!X)throw Error(`Workflow "${U}" not found in storage`);let J=U$(X);if(J.status!=="running"&&J.status!=="suspended")throw Error(`Cannot resume workflow "${U}": status is "${J.status}", expected "running" or "suspended"`);let Q=await $.storage.get(F.checkpoint(U));if(!Q)throw Error(`Checkpoint not found for workflow "${U}"`);let Z=h$(Q),Y=$.registrations.get(J.type);if(!Y)throw Error(`No workflow registered with name "${J.type}" (needed to resume "${U}")`);let H=await pB($,U,J,Z,Q,Y,G),D=H.checkpoint,L=H.versionTuple,z=await new I4($.storage,U).loadHead();if(await kB($,U,z,G))return G.getHandle(U);let K=await R9($,U,G);if(await uB($,U,G),await U2$($,J,G))return G.getHandle(U);let q=G.getHandle(U);if(await G.runSerializedWorkflowStateWrite(U,()=>J2$($,{workflowId:U,resumeCheckpoint:D,serializedCheckpoint:H.serializedCheckpoint,registeredVersionTuple:L,restoredHead:z,workflowStartHeaders:K,registration:Y,callbacks:G})),j)G.dispatchEvent(new Y2(U,D.step));if($.inlineStrategy)G.swallowPromiseRejection(G.processPendingUpdatesAfterInlineAdvance(U));return q}var Fz=V(()=>{h();a4();u();fJ();C9();H$();E$();O9();Lz();A6();W0();j4();o6();N$();B4();T3();EJ();E1()});function Z2$($){return $.includes(":ckpt")||$.includes(":offload")||$.includes(":archive")||$.includes(":timeline:")}function Y2$($,U,j){let G=U.hasLocalCheckpointOwnership(j.id,j.status);if(j.status==="pending"||U.isInlineWorkflowLocallyOwned(j.id,j.status)||G)return{kind:"local",workflowId:j.id};if(j.status!=="running")return{kind:"ignored"};if(!$.registrations.has(j.type))return{kind:"missing",workflow:{type:j.type,workflowId:j.id}};return{kind:"recoverable",workflowId:j.id}}function H2$($,U){if(U.kind==="ignored")return;if($.entries.push(U),U.kind==="missing")$.missingWorkflows.push(U.workflow)}async function _2$($,U){let j={entries:[],missingWorkflows:[]};for await(let[G,X]of $.storage.scan("wf:")){if(Z2$(G))continue;H2$(j,Y2$($,U,U$(X)))}return j}async function Wz($,U,j){let G=await _2$($,U),X=[];if(G.missingWorkflows.length>0&&j?.acknowledgeUnknownWorkflowTypes!==!0)throw new a0({registeredTypes:$.registrations.keys(),missingWorkflows:G.missingWorkflows});for(let J of G.entries){if(J.kind==="local"){X.push(U.getHandle(J.workflowId));continue}if(J.kind==="missing"){U.dispatchEvent(new yG(J.workflow.workflowId,J.workflow.type,"type-not-registered"));continue}try{X.push(await uJ($,J.workflowId,U))}catch(Q){if(Q instanceof Aj){await U.failWorkflowForCheckpointDecodeError(J.workflowId,Q);continue}throw Q}}return X}async function uJ($,U,j){let G=await J$($,U);if(G!==null){if(j.isInlineWorkflowLocallyOwned(U,G.status)||j.hasLocalCheckpointOwnership(U,G.status))return await lS($,U,j),j.getHandle(U)}return I3($,U,!0,j)}async function Vz($,U,j,G){let X=await J$($,U);if(!X)throw Error(`Workflow "${U}" not found`);let J=$.registrations.get(X.type);if(!J)throw Error(`No workflow registered with name "${X.type}" (needed to fork "${U}")`);let Q=j?.fromStep!==void 0?ST(j.fromStep):void 0,Z=Q!==void 0?F.checkpointHistory(U,Q):F.checkpoint(U),Y=await $.storage.get(Z);if(!Y){if(Q!==void 0)throw Error(`Checkpoint not found at step ${String(Q)} for workflow "${U}"`);throw Error(`Checkpoint not found for workflow "${U}"`)}let H=h$(Y),D=await Y9($.storage,U,H),L=RJ($,U,X,D,J,G),B=$.workflowHeaders.get(U)??await R9($,U,G),z=N5(B),K=crypto.randomUUID(),q=$.options.getNow(),O=_g($,U,D,G),{accumulatedResultReplayWatermark:g,...k}=L.checkpoint,m={...k,createdAt:q,workflowId:K,searchAttributes:Dg($,L.checkpoint,O,G)},p=Lg($,K,L.state,L.versionTuple,O,q,G),d=!1;try{let Q$=d$(m);await R$($,Fg($,K,p,m,Q$,z,G),[],()=>Error(`Fork of workflow "${K}" lost its CAS race.`)),$.eventLogHeads.set(K,Q9),b1($,K,z,G);let q$=zg($,K,p,m,J,G);return d=!0,q$}finally{if(!d)z0($,K),$.checkpoints.delete(K),$.workflowVersionTuples.delete(K),$.eventLogHeads.delete(K),$.workflowHeaders.delete(K)}}function D2$($,U,j,G,X,J){let Q=$.inlineStrategy;if(!Q)throw Error("Inline workflow launch requested without an inline strategy.");let Z=new Map(G.accumulatedResults),Y=new AbortController;y3($,U);let H=new K0({workflowId:U,workflowType:j.type,startedAt:O6(j),abortController:Y,getNow:$.options.getNow,resolveWorkflowType:J.resolveWorkflowTypeTarget,executionStateOwnerId:j.executionStateOwnerId??U,accumulatedResults:Z,searchAttributes:G.searchAttributes,registerCancelHandler:kJ($,U),...X.searchAttributes&&{searchAttributeSchema:X.searchAttributes},sleepReferenceTime:G.createdAt,...j.executionDeadline!==void 0&&{deadline:j.executionDeadline},...$.options.onLog!=null&&{logSink:$.options.onLog}});if(fU(H,X6($)),$.options.development)H.explain(!0);let D=X.handler(H,j.input);Q.adoptWorkflow(U,D,H,Y),Q.continueWorkflow(U,void 0),J.swallowPromiseRejection(J.processPendingUpdatesAfterInlineAdvance(U))}function L2$($,U,j,G){let X=d$(G);$.strategy.startWorkflow({workflowId:U,workflowType:j.type,input:j.input,checkpoint:X,executionStateOwnerId:j.executionStateOwnerId??U,...j.executionDeadline!==void 0&&{deadline:j.executionDeadline},...$.workflowHeaders.has(U)&&{headers:[...$.workflowHeaders.get(U)]}})}function zg($,U,j,G,X,J){$.checkpoints.set(U,G),$.workflowVersionTuples.set(U,hU($,X,J));let Q=R3($,U,J);if(J.dispatchEvent(new y6(U,j.type,j.input)),$.inlineStrategy)D2$($,U,j,G,X,J);else L2$($,U,j,G);return Q}var Pg=V(()=>{h();a4();YY();fJ();C9();H$();O9();H9();P$();A6();W0();B$();j4();o6();N$();Wg();T3();Fz();E1()});var N0=V(()=>{E1();T3();IJ();Px();iB();Pg();Fz()});function Kg($,U,j){if($.queuedInlineWorkflowStartIds.add(U.workflowId),$.queuedOrLaunchingInlineWorkflowStartIds.add(U.workflowId),$.queuedInlineWorkflowStarts.push(U),$.queuedInlineWorkflowStartFlushScheduled)return;if($.queuedInlineWorkflowStartFlushScheduled=!0,$.queuedInlineWorkflowStartChannel!==null){$.queuedInlineWorkflowStartChannel.port2.postMessage(void 0);return}setTimeout(()=>{$.queuedInlineWorkflowStartFlushScheduled=!1,j.swallowPromiseRejection(h3($,j))},0)}function Bz($,U){for(let j of U)$.queuedInlineWorkflowStartIds.delete(j.workflowId),$.queuedOrLaunchingInlineWorkflowStartIds.delete(j.workflowId),j.onStarted?.()}async function h3($,U){if($.abortController.signal.aborted){let G=$.queuedInlineWorkflowStarts;$.queuedInlineWorkflowStarts=[],Bz($,G);return}if($.queuedInlineWorkflowStarts.length===0)return;let j=$.queuedInlineWorkflowStarts;$.queuedInlineWorkflowStarts=[];for(let G of j)await U.swallowPromiseRejection(F2$($,G,U))}async function Ng($,U){$.queuedInlineWorkflowStartFlushScheduled=!1,await h3($,U)}async function Mg($,U){$.queuedInlineWorkflowStartFlushScheduled=!1;let j=0,G=1000;while($.queuedInlineWorkflowStarts.length>0&&!$.abortController.signal.aborted&&j<G)j+=1,await U.swallowPromiseRejection(h3($,U))}async function F2$($,U,j){try{let G=await J$($,U.workflowId);if(!G||G.status!=="running")return;$.queuedInlineWorkflowStartIds.delete(U.workflowId),$.engine.dispatchEvent(new y6(U.workflowId,U.workflowType,U.input)),gJ($,U.workflowId,U.workflowType,U.input,U.checkpoint,U.nestingDepth,U.executionDeadline,U.executionStateOwnerId),await j.processPendingUpdatesAfterInlineAdvance(U.workflowId)}finally{$.queuedInlineWorkflowStartIds.delete(U.workflowId),$.queuedOrLaunchingInlineWorkflowStartIds.delete(U.workflowId),U.onStarted?.()}}function wJ($,U){if($.queuedInlineWorkflowStarts.length===0)return!1;let j=$.queuedInlineWorkflowStarts.length,G=[];if($.queuedInlineWorkflowStarts=$.queuedInlineWorkflowStarts.filter((X)=>{if(X.workflowId===U)return G.push(X),!1;return!0}),$.queuedInlineWorkflowStarts.length!==j)Bz($,G);return $.queuedInlineWorkflowStarts.length!==j}function qg($){$.queuedInlineWorkflowStartFlushScheduled=!1;let U=$.queuedInlineWorkflowStarts;$.queuedInlineWorkflowStarts=[],Bz($,U),$.queuedInlineWorkflowStartIds.clear(),$.queuedOrLaunchingInlineWorkflowStartIds.clear();let j=$.queuedInlineWorkflowStartChannel;if(j!==null)j.port1.close(),j.port2.close(),$.queuedInlineWorkflowStartChannel=null}function Ag($,U){return $.queuedInlineWorkflowStartIds.has(U)}function W2$($,U){return $.queuedOrLaunchingInlineWorkflowStartIds.has(U)}function Og($){return $==="running"||$==="pending"}function Cg($,U,j){if(!Og(j))return!1;if(W2$($,U))return!0;if($.inlineStrategy===null)return!1;return $.inlineStrategy.getContext(U)!==void 0||$.inlineStrategy.waitForWorkflowTurn(U)!==void 0||$.parkedInlineWorkflows.has(U)}function Rg($,U,j){return $.checkpoints.has(U)&&Og(j)}var M0=V(()=>{H$();N0();j4()});function bg($){let U={engine:$};Tg.set($,U)}function W($){let U=Tg.get($);if(!U)throw Error("Engine internals not initialized \u2014 initializeInternals(this) was not called in the Engine constructor");return U}var Tg;var S1=V(()=>{Tg=new WeakMap});async function V2$(){await new Promise(($)=>{setTimeout($,0)})}async function B2$($,U){let j=$.inlineStrategy;if(j===null)return!1;let G=j.getContext(U);if(G&&G.updateHandlers.size>0)return!0;let X=j.waitForWorkflowAdvance(U);if(X){if(await X,G=j.getContext(U),G&&G.updateHandlers.size>0)return!0}for(let J=0;J<5;J++)if(await V2$(),G=j.getContext(U),G&&G.updateHandlers.size>0)return!0;return!1}async function z2$($,U,j,G){return HB($,U,j,G)}async function Eg($,U,j){if((await $.updateCoordinator.getPendingUpdates(U)).length===0)return;if(!await B2$($,U))return;await m3($,U,j)}function Sg($,U,j){if($.inlineStrategy===null)return;setTimeout(()=>{m3($,U,j).catch(()=>{})},0)}async function P2$($,U,j){let G;try{G=await $(j)}catch(J){let Q=J instanceof Error?J.message:String(J);return new T1(U,[{message:Q}]).message}let X=_B(G);if(X!==null&&X.length>0)return new T1(U,X).message;return null}async function m3($,U,j){let G=$.inlineStrategy?.getContext(U);if(!G)return;let X=G.updateHandlers;if(X.size===0)return;let J=await $.updateCoordinator.getPendingUpdates(U);if(J.length===0)return;let Q=!1;try{for(let Z of J){let Y=X.get(Z.name);if(!Y)continue;if(!K2$($,U,Z.updateId))continue;let H=await N2$(G,Z);if(H!==null){await M2$($,U,Z,H,j);continue}Q=!0,await q2$($,U,Z,Y,j)}}finally{if(Q)X3($,U)}}function K2$($,U,j){let G=$.deliveredPendingUpdateIds.get(U);if(G===void 0)G=new Set,$.deliveredPendingUpdateIds.set(U,G);if(G.has(j))return!1;return G.add(j),!0}async function N2$($,U){let j=$.updateValidators?.get(U.name);if(j===void 0)return null;return P2$(j,U.name,U.payload)}async function M2$($,U,j,G,X){let J=$.updateCoordinator.buildResponseOperations(j.updateId,U,void 0,G,j.idempotencyKey);await R$($,J,[],()=>Error(`Update rejection for workflow "${U}" lost its CAS race.`)),X.broadcast({type:"update:completed",workflowId:U,updateId:j.updateId})}async function q2$($,U,j,G,X){X.dispatchEvent(new F6(j.updateId,U,j.name,j.payload));let J,Q;try{J=await z2$($,j.name,G,j.payload)}catch(Y){Q=Y instanceof Error?Y.message:String(Y)}let Z=$.updateCoordinator.buildResponseOperations(j.updateId,U,J,Q,j.idempotencyKey);await R$($,Z,[],()=>Error(`Update response for workflow "${U}" lost its CAS race.`)),X.dispatchEvent(new k4(j.updateId,U,j.name,J,Q)),X.broadcast({type:"update:completed",workflowId:U,updateId:j.updateId})}var zz=V(()=>{H$();z9();A6();qU()});function A2$($){return $===void 0?void 0:[...$]}function gg($){return typeof $==="object"&&$!==null&&"name"in $&&"handler"in $}function O2$($,U,j){if(!j.constraints||j.constraints.length===0)return;if($.inlineStrategy===null)throw Error(`Cannot register workflow "${U}" with constraints: constraints are not supported in worker execution mode. The engine was constructed with \`workerExecution\`, which runs workflows in a Web Worker where the inline execution context required by constraint evaluation is unavailable. Remove the \`constraints\` option, or construct the engine without \`workerExecution\` to run workflows inline.`)}function C2$($,U){let j=A2$(U.tags),G=V5(U.retention,`registration("${$}").retention`);return{handler:U.handler,version:U.version??"1",...U.description===void 0?{}:{description:U.description},...j===void 0?{}:{tags:j},...U.inputSchema===void 0?{}:{inputSchema:U0(U.inputSchema,`registration("${$}").inputSchema`)},...U.outputSchema===void 0?{}:{outputSchema:U0(U.outputSchema,`registration("${$}").outputSchema`)},...G!==null&&{retention:G},...U.concurrency!==void 0?{concurrency:R2$(U.concurrency,`registration("${$}").concurrency`)}:{}}}function R2$($,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 T2$($,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 b2$($,U){let j=C2$($,U);return T2$(j,U),j}function xg($,U,j){let G=U.name;$0(G,"workflow"),O2$($,G,U);let X=b2$(G,U);$.registrations.set(G,X),j.ensureRetentionSweepInterval(),$.workflowTypesByHandler.set(U.handler,G),j.dispatchEvent(new x0(G))}function f3($,U){if(!(U in $))return!1;let j=$[U];return typeof j==="object"&&j!==null}function E2$($){if(!gg($))return!1;return f3($,"activities")&&f3($,"signals")&&f3($,"updates")&&f3($,"queries")&&f3($,"searchAttributes")}function S2$($){let U=new b8;for(let j of Object.values($)){let G=o2(j),X=UR(G);U.register(X.name,X)}return U}function x2$($,U,j){let G=$.workflowDefinitionsByName.get(U);if(G===void 0)return{kind:"register"};if(G===j)return{kind:"idempotent"};throw Error(`Workflow "${U}" is already registered with a different definition`)}function vg($,U,j){if(!gg(U))throw TypeError("engine.register() expects a WorkflowDefinition (produced by `workflow({ name }).execute(fn)`) or an ActivityDefinition.");if(E2$(U)){if(x2$($,U.name,U).kind==="idempotent")return;let X=S2$(U.activities);xg($,U,j),$.workflowDefinitionsByName.set(U.name,U),$.activityRegistriesByWorkflow.set(U.name,X);return}xg($,U,j)}function cJ($,U,j){if(typeof U==="string")return U;let G=$.workflowTypesByHandler.get(U);if(G)return G;throw Error("Workflow functions used in composition operators must be registered before use. Pass the registered workflow type string or register the function on the engine first.")}var Pz=V(()=>{kW();H$();d4();A8();N$()});function a6($,U,j){if(j!==void 0)$[U]=j}function yg($){return{status:"pending",...$}}function y2$($){let U={reviewId:$.reviewId,workflowId:$.workflowId,artifact:$.artifact,reviewType:$.reviewType,reviewers:$.reviewers,allowPartial:$.allowPartial,createdAt:$.createdAt};return a6(U,"timeout",$.timeout),a6(U,"webhookUrl",$.webhookUrl),U}function pJ($){let U;try{U=A($)}catch{return null}let j=g2$.safeParse(U);if(!j.success)return null;return y2$(j.data)}function Ig($,U){let j={status:"completed",reviewId:$.reviewId,workflowId:$.workflowId,artifact:$.artifact,reviewType:$.reviewType,reviewers:$.reviewers,allowPartial:$.allowPartial,createdAt:$.createdAt,decision:U.decision,reviewer:U.reviewer,timestamp:U.timestamp};return a6(j,"timeout",$.timeout),a6(j,"webhookUrl",$.webhookUrl),a6(j,"feedback",U.feedback),a6(j,"sectionDecisions",U.sectionDecisions),j}function I2$($){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 a6(U,"timeout",$.timeout),a6(U,"webhookUrl",$.webhookUrl),a6(U,"feedback",$.feedback),a6(U,"sectionDecisions",$.sectionDecisions),U}function Kz($){let U;try{U=A($)}catch{return null}let j=v2$.safeParse(U);if(!j.success)return null;return I2$(j.data)}var g2$,v2$;var Nz=V(()=>{w();u();g2$=_.object({reviewId:_.string(),workflowId:_.string(),artifact:_.unknown().nonoptional(),reviewType:_.string(),reviewers:_.array(_.string()),allowPartial:_.boolean(),timeout:_.number().optional(),webhookUrl:_.string().optional(),createdAt:_.number()}),v2$=_.object({status:_.literal("completed"),reviewId:_.string(),workflowId:_.string(),artifact:_.unknown().nonoptional(),reviewType:_.string(),reviewers:_.array(_.string()),allowPartial:_.boolean(),timeout:_.number().optional(),webhookUrl:_.string().optional(),createdAt:_.number(),decision:_.enum(["approved","rejected","needs-changes"]),reviewer:_.string(),feedback:_.string().optional(),sectionDecisions:_.record(_.string(),_.enum(["approved","rejected"])).optional(),timestamp:_.number()})});function Mz($,U){if(U.workflowId!==void 0&&$.workflowId!==U.workflowId)return!1;if(U.reviewType!==void 0&&$.reviewType!==U.reviewType)return!1;return!0}function qz($){if($===void 0)return"review-decision:";return`review-decision:${R($)}:`}function h2$($,U){return`${qz($)}${R(U)}`}async function hg($,U,j,G=()=>!0){for await(let[X,J]of U){if(!G(X))continue;let Q=Kz(J);if(Q!==null&&Mz(Q,j))$.push(Q)}}async function mg($,U){let j=[],G=U.workflowId===void 0?null:qz(U.workflowId);if(G!==null)await hg(j,$.scan(G),U);return await hg(j,$.scan("review-decision:"),U,(X)=>G===null||!X.startsWith(G)),j}async function fg($,U,j,G){let X=Ig(j,G);await $.batch([{type:"put",key:h2$(j.workflowId,j.reviewId),value:M(X)},{type:"delete",key:U}])}async function kg($,U){let j=qz(U),G=[];if($.deletePrefix)await $.deletePrefix(j);else for await(let[X]of $.scan(j))G.push({type:"delete",key:X});for await(let[X,J]of $.scan("review-decision:")){if(X.startsWith(j))continue;if(Kz(J)?.workflowId===U)G.push({type:"delete",key:X})}if(G.length>0)await $.batch(G)}var ug=V(()=>{h();u();Nz()});function m2$($){if($.workflowId===void 0)return"review:";return`review:${R($.workflowId)}:`}async function f2$($,U){let j=[];for await(let[,G]of $.storage.scan(m2$(U))){let X=pJ(G);if(X!==null&&Mz(X,U))j.push(yg(X))}return j}async function wg($,U,j,G,X){await fg($.storage,U,j,G),X(new BU(j.workflowId,j.reviewId,G.decision,G.reviewer,G.timestamp-j.createdAt))}async function cg($,U={}){if(U.status==="completed")return mg($.storage,U);return f2$($,U)}async function pg($,U,j){return $.reviewCoordinator.getReview(U,j)}async function k2$($,U){for await(let[j,G]of $.storage.scan("review:")){let X=pJ(G);if(X!==null&&X.reviewId===U)return{reviewKey:j,reviewData:X,workflowId:X.workflowId}}return null}async function u2$($,U,j){if(j!==void 0){let G=F.review(j,U),X=await $.storage.get(G);return X===null?null:{reviewKey:G,reviewData:pJ(X),workflowId:j}}return k2$($,U)}function w2$($,U,j){let{decision:G,reviewer:X,feedback:J,sectionDecisions:Q}=U,Z={reviewId:$,decision:G,reviewer:X,timestamp:j};if(J!==void 0)Z.feedback=J;if(Q!==void 0)Z.sectionDecisions=Q;return Z}function c2$($,U,j,G){let X=`${U}:${j}`,J=$.reviewWaiters.get(X);if(!J)return;$.reviewWaiters.delete(X),t4($.reviewWaitersByWorkflow,U,X),J(G)}async function dg($,U,j,G){let X=await u2$($,U,j.workflowId);if(X===null)throw Error(`Review "${U}" not found`);if(X.reviewData===null)throw Error(`Review "${U}" could not be loaded`);let J=w2$(U,j,$.options.getNow());await wg($,X.reviewKey,X.reviewData,J,G.dispatchEvent),c2$($,X.workflowId,U,J)}function p2$($,U){$({ok:!0,value:U})}async function d2$($,U,j,G,X,J,Q,Z,Y){if(!Z.id.startsWith(`review-escalation:${j}:`)&&Z.id!==`review-timeout:${j}`)return!1;if(Z.id===`review-timeout:${j}`){$.reviewWaiters.delete(G),t4($.reviewWaitersByWorkflow,U,G);let L=$.options.getNow()-X.createdAt;await $.storage.delete(F.review(U,j));let B=new oV(j,L);return await Y.failWorkflow(U,B),Q({ok:!1,error:B}),!0}if(!J.escalation)return!1;let H=$.reviewCoordinator.checkEscalations(X,J.escalation,$.options.getNow());if(!H)return!1;if(H.type==="escalate")return J.onEscalation?.(H),!1;$.reviewWaiters.delete(G),t4($.reviewWaitersByWorkflow,U,G);let D={reviewId:j,decision:H.decision,reviewer:"system",feedback:H.auditReason,timestamp:$.options.getNow()};return await wg($,F.review(U,j),X,D,Y.dispatchEvent),Q({ok:!0,value:D}),!0}async function l2$($,U,j,G,X){try{await fetch(G,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workflowId:U,reviewId:j.reviewId,reviewType:j.reviewType,reviewers:j.reviewers,artifact:j.artifact}),signal:X.signal})}catch(J){if(!(J instanceof DOMException&&J.name==="AbortError"))console.warn(`[weft] Failed to send review webhook for ${j.reviewId}`,J)}finally{$.pendingWebhooks.delete(X)}}async function lg($,U){let j=`review:${R(U)}:`,G=[];if($.storage.deletePrefix)await $.storage.deletePrefix(j);else for await(let[X]of $.storage.scan(j))G.push({type:"delete",key:X});if(G.length>0)await $.storage.batch(G);await kg($.storage,U)}function kU($,U,j){if(j!==void 0)$[U]=j}function i2$($){let U={artifact:$.artifact};return kU(U,"reviewType",$.reviewType),kU(U,"reviewers",$.reviewers),kU(U,"allowPartial",$.allowPartial),kU(U,"timeout",$.timeout),kU(U,"escalation",$.escalation),kU(U,"webhookUrl",$.webhookUrl),U}async function n2$($,U,j,G,X){let J=[];for(let Q of G.escalation??[]){let Z=`review-escalation:${j}:${Q.after}`;J.push(Z),await $.scheduler.schedule({id:Z,workflowId:U,fireAt:X+Q.after,kind:"sleep"})}if(G.timeout!==void 0){let Q=`review-timeout:${j}`;J.push(Q),await $.scheduler.schedule({id:Q,workflowId:U,fireAt:X+G.timeout,kind:"sleep"})}return J}function r2$($,U,j){let{promise:G,resolve:X}=Promise.withResolvers(),J=`${U}:${j}`;return $.reviewWaiters.set(J,(Q)=>p2$(X,Q)),D0($.reviewWaitersByWorkflow,U,J),{promise:G,resolve:X,waiterKey:J}}function s2$($,U,j,G,X){let J=$.workflowReviewIds.get(U);if($.reviewEscalationHandlers.set(j,X),G.length>0)$.reviewTimerIds.set(j,G);if(!J)J=new Set,$.workflowReviewIds.set(U,J);J.add(j)}function o2$($,U,j){let G=$.workflowReviewIds.get(U);if($.reviewEscalationHandlers.delete(j),$.reviewTimerIds.delete(j),G?.delete(j),G?.size===0)$.workflowReviewIds.delete(U)}async function ig($,U,j,G){let X=$.options.getNow();await G.ensureTerminalCleanupTracked(U);let J=await $.reviewCoordinator.createReview(U,i2$(j)),Q=J.reviewId;if(G.dispatchEvent(new H0(U,Q,J.reviewType,J.reviewers)),j.webhookUrl!==void 0){let B=new AbortController;$.pendingWebhooks.add(B),l2$($,U,J,j.webhookUrl,B)}let Z=await n2$($,U,Q,j,X),{promise:Y,resolve:H,waiterKey:D}=r2$($,U,Q);s2$($,U,Q,Z,(B)=>d2$($,U,Q,D,J,j,H,B,G));let L=await Y;o2$($,U,Q);for(let B of Z)await $.scheduler.cancel(B,U);if(!L.ok)return;G.feedOperationResult(U,{status:"completed",value:L.value})}var dJ=V(()=>{h();w5();tV();ug();Nz();L0()});async function a2$($,U,j){for(let G of $)try{await G()}catch(X){U.handleCleanupError("cancel-handler",X,j)}}async function t2$($,U,j,G){if(j!=="cancelled")return;let X=Ug($,U);await a2$(X,G,U)}async function Az($,U,j){await b9($,U,"cancelled",j)}async function Oz($,U,j){await b9($,U,"timed-out",j)}async function b9($,U,j,G,X){$.terminalizingWorkflows.add(U),wJ($,U),$.strategy.cancelWorkflow(U);try{let J=$.workflowsNeedingTerminalCleanup.has(U)?crypto.randomUUID():void 0,Q=await $.storage.get(F.attribute(U)),Z=Q?A(Q):{},Y=await $.storage.get(F.finalizerState(U))!==null||KE($,U,F.finalizerState(U)),H=DJ(Z),D=j==="timed-out"?"Workflow timed out":"Workflow cancelled",L=await OB($,U,{status:j,...X!==void 0?{terminationReason:X}:{},...J!==void 0?{terminalCleanupToken:J}:{}},{allowedStatuses:nB,buildAdditionalOperations:(g,k)=>{R6($,U,j,D,k);let m=uU($,U);return[...m?[m]:[],...J!==void 0?lJ($,U,!0,k,J):[],...JU$(U,Y,k)]}});if(!L)return;await t2$($,U,j,G),await IU($,U);let{previousState:B,updatedAt:z}=L,K=z-O6(B);if(await qB($,U,Z),await AB($,U,H),G.swallowPromiseRejection($.scheduler.cancel(`deadline:${U}`,U)),B.status==="pending")G.swallowPromiseRejection($.scheduler.cancel(`delayed-start:${U}`,U));let q=$.resultResolvers.get(U),O=e2$(U,j,K);try{await yJ($,U,!0,G);let g=$U$(U,j,K,X);if(G.dispatchEvent(g),G.forwardEventToHandle(U,g),q)q.reject(O);E3($,U,G)}catch(g){if(q)q.reject(O);throw g}finally{$.resultResolvers.delete(U)}}finally{$.terminalizingWorkflows.delete(U)}}function e2$($,U,j){return U==="timed-out"?new K9($,"execution",j):Error("Workflow cancelled")}function $U$($,U,j,G){return U==="timed-out"?new C4($,"execution",j,G):new u4($)}function UU$($,U,j,G){return{...$,status:"completed",result:U,updatedAt:j,...G!==void 0?{terminalCleanupToken:G}:{}}}function jU$($,U,j){if(j===void 0||Object.keys(j).length===0)return;let G=DJ(j);if($.push(...a$(U,j,G)),Object.keys(G).length>0)$.push({type:"put",key:F.attribute(U),value:M(G)});else $.push({type:"delete",key:F.attribute(U)})}function GU$($,U,j,G){let X=V4(U,j,G).batchOps,J=[...TU(j,G),{type:"put",key:F.workflow(U),value:M(G)},...X],Q=uU($,U);if(Q)J.push(Q);return J}function XU$($,U,j,G,X){X.swallowPromiseRejection($.scheduler.cancel(`deadline:${U}`,U));let J=$.resultResolvers.get(U);try{oB($,U,X);let Q=new W6(U,j,G);if(X.dispatchEvent(Q),X.forwardEventToHandle(U,Q),X.broadcast({type:"workflow:completed",workflowId:U}),J)J.resolve(j);E3($,U,X)}catch(Q){if(J)J.resolve(j);throw Q}finally{$.resultResolvers.delete(U)}}async function Cz($,U,j,G){let X=await G.runSerializedWorkflowStateWrite(U,async()=>{let J=await G.loadWorkflowState(U);if(!J||J.status!=="running")return null;let Q=U4($.options.getNow(),"Workflow completion timestamp"),Z=Q-O6(J),Y=$.workflowsNeedingTerminalCleanup.has(U)?crypto.randomUUID():void 0,H=UU$(J,j,Q,Y),D=GU$($,U,J,H),L=$.checkpoints.get(U)?.searchAttributes;if(L===void 0){let B=await $.storage.get(F.attribute(U));if(B)L=A(B)}if(jU$(D,U,L),Y!==void 0)D.push(...lJ($,U,!1,Q,Y));return await G.commitWorkflowStateOperations(J,D,{includePendingAtomicSideEffects:!0}),{duration:Z}});if(!X)return;await IU($,U),XU$($,U,j,X.duration,G)}async function h4($,U,j,G,X="system"){let J=await $.storage.get(F.attribute(U)),Q=J?A(J):{},Z=DJ(Q,{failureCategory:X}),Y={status:"failed",error:j.message,failureCategory:X},H=$.workflowsNeedingTerminalCleanup.has(U)?crypto.randomUUID():void 0;if(j.stack!==void 0)Y.errorStack=j.stack;if(H!==void 0)Y.terminalCleanupToken=H;if(!await OB($,U,Y,{allowedStatuses:nB,buildAdditionalOperations:(B,z)=>{R6($,U,"failed",j.message,z);let K=uU($,U);return[...K?[K]:[],...H!==void 0?lJ($,U,!1,z,H):[]]}}))return;await IU($,U),await qB($,U,Q),G.swallowPromiseRejection($.scheduler.cancel(`deadline:${U}`,U)),await AB($,U,Z);let L=$.resultResolvers.get(U);try{await yJ($,U,!1,G);let B=new O4(U,j);if(G.dispatchEvent(B),G.forwardEventToHandle(U,B),L)L.reject(j);E3($,U,G)}catch(B){if(L)L.reject(j);throw B}finally{$.resultResolvers.delete(U)}}function lJ($,U,j,G,X){return v$({id:DU(j,X),workflowId:U,fireAt:G+BJ,kind:"terminal-cleanup"})}function JU$($,U,j){if(!U)return[];let G=crypto.randomUUID(),X={status:"owed",attempts:0,token:G};return[{type:"put",key:F.teardownOwed($),value:M(X)},...v$({id:z5(G),workflowId:$,fireAt:j,kind:"teardown"})]}async function k3($,U){if($.workflowsNeedingTerminalCleanup.has(U))return;$.workflowsNeedingTerminalCleanup.add(U),await $.storage.put(F.terminalCleanupNeeded(U),q4)}function R6($,U,j,G,X=$.options.getNow()){let J=$.pendingTimelineEntries.get(U);if(!J)return;let Q=J.entry.status;if(Q===j)return;if(Q!=="running"&&!(Q==="completed"&&(j==="failed"||j==="cancelled"||j==="timed-out")))return;J.entry.status=j,J.entry.outputSummary=I$(G),J.entry.duration=X-J.startedAt}function uU($,U){let j=$.pendingTimelineEntries.get(U);if(!j)return null;return{type:"put",key:F.timeline(U,j.entry.step),value:M(j.entry)}}var ng=V(()=>{h();u();H$();E$();W4();UJ();EU();AJ();W0();M0();N0();B$();O3();B4();S3()});function rg($,U,j,G){let X=$.inlineStrategy?.getAbortController(U),J=$.activityWorkerDispatcher?void 0:tb(j.options?.timeout),Q=J===void 0?void 0:new AbortController,Z=QU$(X?.signal,Q?.signal,G);return{perAttemptTimeoutMs:J,attemptAbortController:Q,activitySignal:Z}}function QU$($,U,j){let G=[$,U,j].filter((J)=>J!==void 0),[X]=G;if(X===void 0)return new AbortController().signal;if(G.length===1)return X;return AbortSignal.any(G)}async function iJ($,U,j,G,X){if(U===void 0)return $;let J=Promise.resolve($);J.catch(()=>{});let Q,Z=new Promise((Y,H)=>{Q=setTimeout(()=>{let D=new UB(j,G,U);H(D),X?.abort(D)},U)});try{return await Promise.race([J,Z])}finally{if(Q!==void 0)clearTimeout(Q)}}var Rz=V(()=>{GB()});async function sg($,U,j,G){let X=$.timeout===void 0?void 0:b$($.timeout),J=new AbortController,Q=()=>J.abort(G.reason);if(G.aborted)J.abort(G.reason);else G.addEventListener("abort",Q,{once:!0});let Z={signal:J.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 iJ($.execute(U,Z),X,$.name,j,J),G.aborted)return{ok:!1,error:Error(`Finalizer "${$.name}" resolved while the engine was shutting down; treating attempt ${j} as shutdown-aborted so the teardown re-runs after restart.`,{cause:G.reason}),abortedByShutdown:!0};return{ok:!0}}catch(Y){return{ok:!1,error:Y,abortedByShutdown:G.aborted}}finally{G.removeEventListener("abort",Q)}}var og=V(()=>{E$();Rz()});function tg($){let U=$-1;return Tz[U]??Tz[Tz.length-1]}function eg($){return($.timeout===void 0?ZU$:b$($.timeout))+YU$}function $v($,U,j){if(U.status!=="running")return!0;if(U.claimedAt===void 0)return!0;return $.options.getNow()-U.claimedAt>=eg(j)}function nJ($,U,j){return v$({id:z5($),workflowId:U,fireAt:j,kind:"teardown"})}function bz($,U){return M({status:"owed",attempts:$,token:U})}function HU$($,U,j){return M({status:"running",attempts:$,token:U,claimedAt:j})}async function u3($,U,j,G){let X=$.options.getNow()+G;try{await R$($,nJ(j,U,X),[],()=>Error("teardown self-heal re-arm lost the lease fence"))}catch{}}async function Uv($,U,j){try{return await OU($,[{type:"delete",key:F.teardownOwed(U)}],[{key:F.teardownOwed(U),expectedValue:j}])}catch{return!1}}async function jv($,U,j,G,X){let J=HU$(G,X,$.options.getNow());return await OU($,[{type:"put",key:F.teardownOwed(U),value:J}],[{key:F.teardownOwed(U),expectedValue:j}])?J:null}async function w3($,U,j,G){return OU($,G,[{key:F.teardownOwed(U),expectedValue:j}])}async function Ez($,U,j,G,X,J){let Q={type:j,lastError:J.lastError,attempts:G,deadLetteredAt:$.options.getNow(),...J.finalizerInput===void 0?{}:{finalizerInput:J.finalizerInput}};return w3($,U,X,[{type:"delete",key:F.teardownOwed(U)},{type:"delete",key:F.finalizerState(U)},{type:"put",key:F.teardownDeadLetter(U),value:M(Q)}])}var ag=8,Tz,ZU$=300000,YU$=30000,wU=30000;var Gv=V(()=>{h();u();E$();A6();B$();Tz=[60000,300000,900000,3600000]});function DU$($){return $ instanceof Error?$.message:String($)}async function rJ($,U,j){await u3($,U,j,wU)}async function Sz($,U,j,G){return await Uv($,U,G)?{kind:"cleared"}:{kind:"rearm",token:j}}async function LU$($,U,j,G){let X;try{X=A(G)}catch{return Sz($,U,j,G)}if(!TT(X))return Sz($,U,j,G);return{kind:"claim",claim:X}}async function FU$($,U,j,G){let X=await $.storage.get(F.teardownOwed(U));if(X===null)return{kind:"cleared"};let J=await LU$($,U,j,X);if(J.kind!=="claim")return J;let Q=J.claim;if(Q.token!==j)return{kind:"cleared"};let Z=await G.loadWorkflowState(U);if(Z===null||!_U$.has(Z.status))return Sz($,U,j,X);let Y=$.registrations.get(Z.type)?.finalizer;if(Y===void 0)return{kind:"rearm",token:j};let H=Y;if(!$v($,Q,H))return{kind:"rearm",token:j};let D=await $.storage.get(F.finalizerState(U));if(D===null)return await WU$($,U,Z.type,Q.attempts,X,G),{kind:"cleared"};return{kind:"run",drive:{state:Z,claim:Q,markerBytes:X,finalizer:H,finalizerInput:A(D)}}}async function WU$($,U,j,G,X,J){if(await Ez($,U,j,G,X,{lastError:"finalizer state missing \u2014 recorded resource cannot be torn down",finalizerInput:void 0}))J.dispatchEvent(new V1(U,j,"dead-lettered",G,"finalizer state missing \u2014 recorded resource cannot be torn down"))}async function xz($,U,j,G){let X=RT(j);if(X===null)return;try{let J=await FU$($,U,X,G);if(J.kind==="cleared")return;if(J.kind==="rearm"){await u3($,U,J.token,wU);return}await VU$($,U,X,J.drive,G)}catch(J){await u3($,U,X,wU),G.handleCleanupError("runWorkflowFinalizer",J,U)}}async function VU$($,U,j,G,X){let{state:J,claim:Q,markerBytes:Z,finalizer:Y,finalizerInput:H}=G,D=Q.attempts+1,L=await jv($,U,Z,Q.attempts,j);if(L===null){await u3($,U,j,wU);return}let B=await sg(Y,H,D,$.abortController.signal);if(B.ok){await BU$($,U,J.type,j,D,L,X);return}if(B.abortedByShutdown){let z=$.options.getNow()+wU;if(!await w3($,U,L,[{type:"put",key:F.teardownOwed(U),value:bz(Q.attempts,j)},...nJ(j,U,z)]))await rJ($,U,j);return}await zU$($,U,J,D,j,L,B.error,X)}async function BU$($,U,j,G,X,J,Q){if(!await w3($,U,J,[{type:"delete",key:F.teardownOwed(U)},{type:"delete",key:F.finalizerState(U)}])){await rJ($,U,G);return}Q.dispatchEvent(new V1(U,j,"completed",X))}async function zU$($,U,j,G,X,J,Q,Z){let Y=DU$(Q);if(G>=ag){let L=await $.storage.get(F.finalizerState(U));if(!await Ez($,U,j.type,G,J,{lastError:Y,finalizerInput:L===null?void 0:A(L)})){await rJ($,U,X);return}Z.dispatchEvent(new V1(U,j.type,"dead-lettered",G,Y));return}let H=$.options.getNow()+tg(G);if(!await w3($,U,J,[{type:"put",key:F.teardownOwed(U),value:bz(G,X)},...nJ(X,U,H)])){await rJ($,U,X);return}Z.dispatchEvent(new V1(U,j.type,"failed",G,Y))}var _U$;var Xv=V(()=>{h();u();H$();B$();og();Gv();_U$=new Set(["cancelled","timed-out"])});async function gz($,U,j){if(!await j.runSerializedWorkflowStateWrite(U,async()=>{let J=await j.loadWorkflowState(U);if(!J||J.status!=="running")return!1;if($.inlineStrategy===null)throw new e0("suspend is only supported in inline execution mode; a worker run cannot be paused without cancelling it.");$.inlineStrategy.parkWorkflow(U),wJ($,U),$.checkpoints.delete(U),$.parkedInlineWorkflows.delete(U),rB($,U,j);let Q=$.options.getNow(),Z={...J,status:"suspended",updatedAt:Q};return await j.commitWorkflowStateOperations(J,[{type:"put",key:F.workflow(U),value:M(Z)},...V4(U,J,Z).batchOps,...PU$(U,J.executionDeadline)]),!0}))return;let X=new H2(U);j.dispatchEvent(X),j.forwardEventToHandle(U,X)}function PU$($,U){if(U===void 0)return[];let j=`deadline:${$}`;return[{type:"delete",key:F.deadline(U,j)},{type:"delete",key:`timer-idx:${j}`}]}var Jv=V(()=>{h();u();H$();P$();M0();B4();S3()});var x1=V(()=>{S3();ng();Xv();Jv()});function c3($){return{dispatchEvent:(U)=>$.dispatchEvent(U),broadcast:(U)=>F0(W($),U,t6($))}}function sJ($){return{processPendingUpdatesAfterInlineAdvance:(U)=>Qv($,U),swallowPromiseRejection:(U)=>C6(U)}}async function Qv($,U){try{await Eg(W($),U,c3($))}catch(j){V$($).handleCleanupError("processPendingUpdates",j,U)}}function G4($){return{dispatchEvent:(U)=>{$.dispatchEvent(U)},getHandle:(U)=>$.getHandle(U),createWorkflowHandleWithResultPromise:(U)=>OJ(W($),U),runSerializedWorkflowStateWrite:(U,j)=>e4(W($),U,j),getComposedWorkflowInterceptor:()=>X6(W($)),resolveWorkflowTypeTarget:(U)=>cJ(W($),U,oJ($)),processPendingUpdatesAfterReplay:(U)=>{cB(W($),U,{processPendingUpdatesForHandlers:(j)=>m3(W($),j,c3($)),handleCleanupError:(j,G,X)=>V$($).handleCleanupError(j,G,X)})},processPendingUpdatesAfterInlineAdvance:(U)=>Qv($,U),processPendingUpdatesForHandlers:(U)=>m3(W($),U,c3($)),queueInlineWorkflowExecutionStart:(U)=>Kg(W($),U,sJ($)),isInlineWorkflowLocallyOwned:(U,j)=>Cg(W($),U,j),hasLocalCheckpointOwnership:(U,j)=>Rg(W($),U,j),handleCleanupError:(U,j,G)=>V$($).handleCleanupError(U,j,G),swallowPromiseRejection:(U)=>C6(U),enforceHistoryCircuitBreaker:(U)=>b9(W($),U,"timed-out",V$($),hX),failWorkflowForUnavailableServices:(U,j)=>h4(W($),U,j,V$($),"system"),failWorkflowForCheckpointDecodeError:(U,j)=>h4(W($),U,j,V$($),"system")}}function KU$($,U){let j=(G)=>{$.dispatchEvent(G)};return{dispatchEvent:j,forwardEventToHandle:(G,X)=>fE(W($),G,X,t6($)),broadcast:(G)=>F0(W($),G,t6($)),swallowPromiseRejection:(G)=>C6(G),handleCleanupError:(G,X,J)=>b3(W($),G,X,J,{dispatchEvent:j}),handleScheduledWorkflowTerminal:U,loadWorkflowState:(G)=>J$(W($),G),runSerializedWorkflowStateWrite:(G,X)=>e4(W($),G,X),commitWorkflowStateOperations:(G,X,J)=>_J(W($),G,X,J),cleanupReviews:(G)=>lg(W($),G)}}function Yv($){Zv=$}function V$($){return KU$($,(U)=>Zv($,U))}function oJ($){return{ensureRetentionSweepInterval:()=>NU$($),dispatchEvent:(U)=>$.dispatchEvent(U)}}function _v($){Hv=$}function NU$($){Hv($)}function t6($){return{dispatchEvent:(U)=>$.dispatchEvent(U)}}function aJ($){return{deleteRequestIfUnconsumed:(U,j)=>W($).updateCoordinator.deleteRequestIfUnconsumed(U,j),getUpdateResponse:(U)=>W($).updateCoordinator.getResponse(U)}}function Dv($){return{cancelWorkflowInStrategy:(U)=>W($).strategy.cancelWorkflow(U),dispatchEvent:(U)=>$.dispatchEvent(U),failWorkflow:(U,j)=>h4(W($),U,j,V$($)),feedOperationResult:(U,j,G)=>G6(W($),U,j,G)}}var Zv=async()=>{return},Hv=()=>{return};var cU=V(()=>{d4();e5();fB();M0();S1();N0();zz();Pz();dJ();j4();o6();x1()});function Lv($){vz=$}function p3($){if(vz===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 vz($)}var vz;class d3{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 Fv($){if(!Number.isSafeInteger($)||$<=0)throw Error("Interval schedule period must be a positive safe integer of milliseconds")}function yz($,U,j){Fv(U);let G=U4($,"Interval anchor"),X=U4(j,"Interval occurrence candidate");if(X<G)return G+U;let J=X-G,Q=Math.floor(J/U),Z=G+(Q+1)*U;return U4(Z,"Interval occurrence")}function Wv($,U,j,G,X){Fv(U);let J=X?.maxOccurrences;if(J!==void 0&&(!Number.isSafeInteger(J)||J<=0))throw Error("Interval occurrence maxOccurrences must be a positive safe integer");let Q=J??Number.POSITIVE_INFINITY,Z=[],Y=j;while(Y<=G&&Z.length<Q)Z.push(Y),Y=yz($,U,Y);return Z}var Vv=V(()=>{E$()});function Bv($){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 e6($,U){let j=Bv($);if(j.kind==="interval")return yz(j.anchor,j.intervalMs,U);return ZJ(j.cronExpression,U)}function zv($,U,j,G){let X=Bv($);if(X.kind==="interval")return Wv(X.anchor,X.intervalMs,U,j,{maxOccurrences:G});return zB(X.cronExpression,U,j,{maxOccurrences:G})}var Iz=V(()=>{PB();Vv()});async function hz($,U,j,G){let X=crypto.randomUUID(),J=U.overlap==="allow"?[]:[{type:"put",key:F.scheduleRun(X),value:M(U.id)}],Q=await MU$($,X,U);if(Q!==null){if(J.push({type:"put",key:F.workflowHasServices(X),value:q4},{type:"put",key:F.terminalCleanupNeeded(X),value:q4}),$.workflowsNeedingTerminalCleanup.add(X),Q.status==="available")$.workflowServices.set(X,Q.services)}if(await j.startWorkflow(U.workflowType,U.input,{id:X},J),$.engine.dispatchEvent(new a9(U.id,X,$.options.getNow(),G)),Q!==null&&Q.status==="unavailable"){let Z=TJ(X,Q.reason);try{await j.failWorkflow(X,Z)}catch(Y){j.handleCleanupError("startScheduledRun",Y,X)}}return X}async function MU$($,U,j){let G=$.options.resolveWorkflowServices;if($.inlineStrategy===null||!G)return null;try{return await G({workflowId:U,workflowType:j.workflowType,input:j.input})}catch(X){return{status:"unavailable",reason:X instanceof Error?X.message:String(X)}}}var Pv=V(()=>{h();u();H$();EJ();E1()});async function uz($,U,j){let G=await A9($,U.workflowId);if(!OU$(G,U))return;let X=G;try{let J=$.options.getNow(),Q=CU$(G,U,J);if(!Q)return;if(Q.occurrencesToProcess.length===0){if(X={...X,updatedAt:J,nextFireAt:mz(X,Q,J),...Q.missedOccurrences&&{lastMissedFireAt:Q.missedOccurrences.lastMissedFireAt,missedFireCount:X.missedFireCount+Q.missedOccurrences.count}},await fz($,X),Q.missedOccurrences)$.engine.dispatchEvent(new t9(X.id,Q.missedOccurrences.count,Q.missedOccurrences.windowStart,Q.missedOccurrences.windowEnd));return}X=await TU$($,G,Q,J,j,{onProcessedState:(Z)=>{X=Z}})}catch(J){if(J instanceof kz)throw J;await bU$($,X,J)}}function OU$($,U){return $?.status==="active"&&$.nextFireAt!==null&&CU($,$.nextFireAt)===U.fireAt}function CU$($,U,j){let G=zv($,$.nextFireAt,Math.max(j,U.fireAt),$.backfill?Kv:2);if(G.length===0)return null;if(!$.backfill&&j-U.fireAt>qU$)return{dueOccurrences:G,missedOccurrences:RU$($,$.nextFireAt,j),occurrencesToProcess:[],skipMissedOccurrences:!0};let X=$.backfill?G:G.slice(0,1);return{dueOccurrences:G,occurrencesToProcess:X,skipMissedOccurrences:!1}}function RU$($,U,j){let G=0,X=U,J=U;while(X<=j&&G<AU$){G+=1,J=X;let Z=e6($,X);if(Z<=X)throw Error(`Schedule "${$.id}" produced a non-advancing occurrence`);X=Z}let Q=X<=j;return{count:G,lastMissedFireAt:J,windowStart:U,windowEnd:Q?J:j}}function mz($,U,j){if(U.skipMissedOccurrences)return e6($,U.missedOccurrences?.lastMissedFireAt??j);let G=U.occurrencesToProcess.at(-1)??U.dueOccurrences.at(-1);return e6($,G)}async function TU$($,U,j,G,X,J){let Q=U;for(let[Z,Y]of j.occurrencesToProcess.entries()){let H=Z===j.occurrencesToProcess.length-1;if(Q={...await X.applyScheduleOccurrence(Q,Y),lastFireAt:Y,updatedAt:G},H)Q={...Q,nextFireAt:mz(Q,j,G)};if(J.onProcessedState(Q),await fz($,Q,{includeTimer:H}),U.backfill&&Q.currentWorkflowId!==void 0){if(Q=await X.settleBackfillScheduleState(Q),H)Q={...Q,updatedAt:G,nextFireAt:mz(Q,j,G)},await fz($,Q);J.onProcessedState(Q)}}return Q}async function fz($,U,j){try{await $6($,U,j)}catch(G){throw new kz(U.id,G)}}async function bU$($,U,j){let G=$.options.getNow(),X={...U,status:"paused",updatedAt:G,nextFireAt:e6(U,G)};await $6($,X,{includeTimer:!1}),console.error(`[weft] Paused schedule "${X.id}" after timer processing failed:`,j)}var qU$=1000,Kv=256,AU$,kz;var Nv=V(()=>{HY();JJ();Iz();j4();AU$=Kv;kz=class kz extends Error{scheduleId;constructor($,U){super(`Failed to persist schedule "${$}" while processing its timer`,{cause:U});this.scheduleId=$}}});async function wz($,U,j,G,X){if(!$.registrations.has(U))throw new v4(U);let J=MB(G),Q=JS(X),Z=Q.id??crypto.randomUUID();if($.pendingScheduleCreations.has(Z))throw Error(`Schedule with id "${Z}" already exists`);$.pendingScheduleCreations.add(Z);try{if(await $.storage.get(F.schedule(Z)))throw Error(`Schedule with id "${Z}" already exists`);let Y=$.options.getNow(),H=J.kind==="interval"?{intervalMs:J.intervalMs}:{cronExpression:J.cronExpression},D={id:Z,workflowType:U,input:j,...H,status:"active",overlap:Q.overlap,backfill:Q.backfill,...Q.jitterMs!==void 0&&{jitterMs:Q.jitterMs},createdAt:Y,updatedAt:Y,nextFireAt:e6({...H,createdAt:Y},Y),missedFireCount:0,queuedRuns:0};return await $6($,D),new d3(Z,$.engine)}finally{$.pendingScheduleCreations.delete(Z)}}async function Mv($,U){let j=QS(U),G=[];for await(let[X,J]of $.storage.scan("schedule:")){if(X.slice(9).includes(":"))continue;let Z=B3(J);if(!Z||!hT(Z,j))continue;let{input:Y,...H}=Z;G.push(H)}return mT(G,j)}async function qv($){for await(let[U,j]of $.storage.scan("schedule:")){if(U.slice(9).includes(":"))continue;let X=B3(j);if(!EU$(X))continue;if(await SU$($,X))continue;await $6($,X)}}function EU$($){return $?.status==="active"&&$.nextFireAt!==null}async function SU$($,U){let j=F.scheduleTick(CU(U,U.nextFireAt),U.id);if(await $.storage.get(j)===null)return!1;let X=await $.storage.get(`timer-idx:${_U(U.id)}`);return X!==null&&A(X)===j}function Av($){let{input:U,...j}=$;return j}async function Ov($,U){let j=B0(U,"scheduleId"),G=await z3($,j);if(G.status!=="active")return;await $.scheduler.cancel(_U(j),j);let X=$.options.getNow(),J={...G,status:"paused",updatedAt:X,nextFireAt:e6(G,X),queuedRuns:0};await $6($,J,{includeTimer:!1})}async function Cv($,U){let j=B0(U,"scheduleId"),G=await z3($,j);if(G.status==="cancelled")throw Error(`Schedule "${j}" has been cancelled and cannot be resumed`);if(G.status==="active")return;let X=$.options.getNow(),J={...G,status:"active",updatedAt:X,nextFireAt:e6(G,X)};await $6($,J)}async function Rv($,U){let j=B0(U,"scheduleId"),G=await z3($,j);if(G.status==="active")await $.scheduler.cancel(_U(j),j);let X={...G,status:"cancelled",updatedAt:$.options.getNow(),nextFireAt:null,queuedRuns:0};await $6($,X,{includeTimer:!1})}async function Tv($,U,j){let G=B0(U,"scheduleId"),X=MB(j),J=await z3($,G),Q=$.options.getNow(),{cronExpression:Z,intervalMs:Y,...H}=J,D=X.kind==="interval"?{intervalMs:X.intervalMs}:{cronExpression:X.cronExpression},L=X.kind==="interval"?{createdAt:Q}:{},B={...H,...D,...L,updatedAt:Q,nextFireAt:J.status==="cancelled"?null:e6({...D,createdAt:Q},Q)};await $6($,B,{includeTimer:J.status==="active"})}function bv($){let U=$?.status;return U==="running"||U==="pending"||U==="suspended"}async function Ev($,U,j){if(!U.currentWorkflowId)return{state:U,currentWorkflowState:null};let G=await j.loadWorkflowState(U.currentWorkflowId);if(bv(G))return{state:U,currentWorkflowState:G};return await $.storage.delete(F.scheduleRun(U.currentWorkflowId)),{state:q5(U),currentWorkflowState:G??null}}function xU$($){return bv($)}async function gU$($,U,j,G){if(!U)return{...$,currentWorkflowId:await j.startScheduledRun($,G)};if($.overlap==="cancel-running"){if($.currentWorkflowId)j.getWorkflowResult($.currentWorkflowId).catch(()=>{}),await j.cancelWorkflow($.currentWorkflowId);let X=q5($);return{...$,currentWorkflowId:await j.startScheduledRun(X,G)}}if($.overlap==="queue")return{...$,queuedRuns:$.queuedRuns+1};return $}async function Sv($,U,j,G){let{state:X,currentWorkflowState:J}=await j.refreshScheduledWorkflowState(U),Q=xU$(J);if(X.overlap==="allow")return await j.startScheduledRun(X,G),X;return gU$(X,Q,j,G)}async function xv($,U,j){if(!U.currentWorkflowId)return U;await j.flushQueuedInlineWorkflowStartsDirectly();let G=$.inlineStrategy?.waitForWorkflowTurn(U.currentWorkflowId);if(G)await G;return(await j.refreshScheduledWorkflowState(U)).state}async function gv($,U,j){let G=await $.storage.get(F.scheduleRun(U));if(!G)return;await $.storage.delete(F.scheduleRun(U));let X=A(G);if(!YJ(X))return;let Q=await A9($,X);if(!Q||Q.currentWorkflowId!==U)return;let Z=$.options.getNow(),Y={...q5(Q),updatedAt:Z};if(Y.status==="active"&&Y.overlap==="queue"&&Y.queuedRuns>0){let H=await j.startScheduledRun(Y);await $6($,{...Y,currentWorkflowId:H,queuedRuns:Y.queuedRuns-1,updatedAt:Z},{includeTimer:!1});return}await $6($,Y,{includeTimer:!1})}var cz=V(()=>{h();u();P$();JJ();Iz();B$();j4();HJ();Pv();Nv()});function pU($){return{startWorkflow:async(U,j,G,X)=>{await U6(W($),U,j,G,X,G4($))},loadWorkflowState:(U)=>J$(W($),U),cancelWorkflow:(U)=>$.cancel(U),getWorkflowResult:(U)=>$.getHandle(U).result(),refreshScheduledWorkflowState:(U)=>vU$($,U),startScheduledRun:(U,j)=>yU$($,U,j),applyScheduleOccurrence:(U,j)=>IU$($,U,j),settleBackfillScheduleState:(U)=>hU$($,U),flushQueuedInlineWorkflowStartsDirectly:()=>Ng(W($),sJ($)),failWorkflow:(U,j)=>h4(W($),U,j,V$($)),handleCleanupError:(U,j,G)=>b3(W($),U,j,G,{dispatchEvent:(X)=>$.dispatchEvent(X)})}}function vv($){return{dispatchEvent:$.dispatchEvent.bind($),failWorkflow:(U,j)=>h4(W($),U,j,V$($)),feedOperationResult:(U,j)=>G6(W($),U,j),ensureTerminalCleanupTracked:(U)=>k3(W($),U)}}async function vU$($,U){return Ev(W($),U,pU($))}async function yU$($,U,j){return hz(W($),U,pU($),j)}async function IU$($,U,j){return Sv(W($),U,pU($),j)}async function hU$($,U){return xv(W($),U,pU($))}async function yv($,U){return uz(W($),U,pU($))}async function mU$($,U){return gv(W($),U,pU($))}var Iv=V(()=>{cU();M0();S1();N0();cz();j4();o6();x1();Yv(($,U)=>mU$($,U))});async function pz($,U,j){let G=await $.storage.get(F.workflow(U));if(!G)return;let X=U$(G);if(kU$.has(X.status))throw new PU(U,X.status)}async function uU$($,U,j,G){for(let X=0;X<hv;X++){if(await G.getUpdateResponse(j)!==null)return!0;if(await $.storage.get(F.update(U,j))===null)return!0;if(X<hv-1)await F1(fU$)}return!1}async function mv($,U,j,G){try{await pz($,U,G)}catch(X){if(X instanceof PU){if(await uU$($,U,j,G))return;if(await G.deleteRequestIfUnconsumed(U,j)!==null)return}throw X}}var hv=5,fU$=5,kU$;var fv=V(()=>{L6();h();z9();N$();kU$=new Set(["completed","failed","cancelled","timed-out"])});function kv($,U){let j=U;if(j==null||typeof j!=="object")throw Error("Invalid operation request received from execution strategy");if("type"in j&&typeof j.type==="string")return j;if("kind"in j&&typeof j.kind==="string"){let G=j.kind,J={activity:"activity",timer:"sleep","signal-wait":"wait-signal","child-workflow":"child-workflow"}[G]??G;return{...j,type:J,operationId:j.id??crypto.randomUUID(),activityName:j.activityName??"",input:j.input}}throw Error("Unsupported operation request shape received from execution strategy")}async function uv($,U,j,G){let X=cU$(j,G);if(X)return X(U,j);let J=String(j.type);i3($,U,j,Error(`Unsupported operation type: ${J}`),G)}function wU$($){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 cU$($,U){return wU$(U)[$.type]}function l3($,U,j,G){G.finalizePendingTimelineEntry(U,"completed",j),G.feedOperationResult(U,{status:"completed",value:j})}function i3($,U,j,G,X){if(G instanceof Error&&j.callerStack)G.stack=`${G.stack}
|
|
53
53
|
--- workflow call site ---
|
|
54
|
-
${j.callerStack}`;let J=G instanceof Error?G.message:String(G);X.finalizePendingTimelineEntry(U,"failed",J),X.feedOperationResult(U,{status:"failed",error:J,...G instanceof Error?{errorName:G.name}:{},failureCategory:f8(G,{defaultErrorCategory:"application"})},{value:G})}async function wv($,U,j,G,X){try{let J=await G();l3($,U,J,X)}catch(J){i3($,U,j,J,X)}}async function cv($,U,j,G,X){try{await G()}catch(J){i3($,U,j,J,X)}}var tJ=V(()=>{l6()});async function dv($,U,j,G){return G.runOperationWithResult(U,j,()=>lz($,U,j,dz($,U),G))}function dz($,U){let j=pU$($,U);if(j+1>$.options.maxNestingDepth)throw Error(`Child workflow nesting depth exceeded: ${j+1} exceeds maximum of ${$.options.maxNestingDepth}. Configure maxNestingDepth in engine options to increase the limit.`);return j}function pU$($,U){return $.inlineStrategy?.getContext(U)?.nestingDepth??$.workflowNestingDepths.get(U)??0}function dU$($,U){$.pendingNestingDepth=U.pendingNestingDepth,$.pendingParentHeaders=U.pendingParentHeaders,$.pendingExecutionStateOwnerId=U.pendingExecutionStateOwnerId}function lU$($,U){if($.pendingNestingDepth===U.pendingNestingDepth)$.pendingNestingDepth=void 0;if($.pendingParentHeaders===U.pendingParentHeaders)$.pendingParentHeaders=void 0;if($.pendingExecutionStateOwnerId===U.pendingExecutionStateOwnerId)$.pendingExecutionStateOwnerId=void 0}function iU$($,U,j){return $.type===U.workflowType&&IT($.input,U.input)&&$.executionStateOwnerId===j}async function nU$($,U,j,G,X){let J=await X.loadWorkflowState($);if(!J)throw G;if(!iU$(J,U,j))throw Error(`Child workflow id collision for "${$}" does not match the requested child workflow`,{cause:G});return X.getHandle($)}async function rU$($,U,j,G,X){aX(j.options,"ctx.startChild"),dU$($,G);try{return await X.start(j.workflowType,j.input,{id:U})}catch(J){if(!(J instanceof r$))throw J;return nU$(U,j,G.pendingExecutionStateOwnerId??void 0,J,X)}finally{lU$($,G)}}async function lz($,U,j,G,X){let J=j.options?.id,Q=typeof J==="string"?J:crypto.randomUUID(),Z=$.workflowHeaders.get(U)??new Map,Y=await X.loadWorkflowState(U),H=sU$(j),D=H==="abandon"?null:Y?.executionStateOwnerId??U,L=async()=>{let z={pendingNestingDepth:G+1,pendingParentHeaders:$.workflowHeaders.get(U),pendingExecutionStateOwnerId:D},K=await rU$($,Q,j,z,X);if(H==="abandon")return pv(K.id);if(H==="request-cancel")return _0($,U,{conditions:[],operations:Vg($,U,K.id)}),_z($,U,K.id,X),pv(K.id);return K.result()},B=X.getComposedWorkflowInterceptor();if(!B)return L();return B.childWorkflow({workflowId:U,childWorkflowId:Q,workflowType:j.workflowType,input:j.input,headers:new Map,parentHeaders:Z},L)}function sU$($){return $.options?.parentClosePolicy??"await"}function pv($){return{id:$}}var iz=V(()=>{w$();Lz();P$();B$()});function iv($){return{[lv]:!0,finalize:$}}function oU$($){return typeof $==="object"&&$!==null&&$[lv]===!0}async function dU($){if(oU$($))return $.finalize();if(Array.isArray($))return Promise.all($.map((U)=>dU(U)));return $}var lv;var eJ=V(()=>{lv=Symbol("weft.deferredConsume")});function nv($,U){return Math.min(Math.max(0,$-U),aU$)}function rv($,U,j){j?.throwIfAborted();let G=$.abortController.signal;if(G.aborted)return Promise.reject(G.reason??Error("aborted"));if(nv(U.scheduledFireAt,$.options.getNow())===0)return Promise.resolve();return new Promise((X,J)=>{let Q,Z=()=>{j?.removeEventListener("abort",Y),G.removeEventListener("abort",Y)},Y=()=>{clearTimeout(Q),Z(),J(j?.reason??G.reason??Error("aborted"))},H=()=>{let D=nv(U.scheduledFireAt,$.options.getNow());if(D===0){Z(),X();return}Q=setTimeout(H,D)};j?.addEventListener("abort",Y,{once:!0}),G.addEventListener("abort",Y,{once:!0}),H()})}function sv($,U,j,G){G?.throwIfAborted();let{signalName:X}=j,J=`${U}:${X}`,Q=$.abortController.signal;return new Promise((Z,Y)=>{let H=!1,D=!1,{promise:L,resolve:B}=Promise.withResolvers(),z=()=>{G?.removeEventListener("abort",q),Q.removeEventListener("abort",q)},K=async()=>{let k=await Z3($,U,X);return k.found?k.payload:void 0},q=()=>{if(H)return;if(H=!0,z(),D)Q3($,U,J,B);Y(G?.reason??Q.reason??Error("aborted"))},O=()=>{if(H)return;H=!0,z(),Z(iv(K))},g=(k)=>{if(H)return;if(H=!0,z(),D)Q3($,U,J,B);Y(k)};if(G?.addEventListener("abort",q,{once:!0}),Q.addEventListener("abort",q,{once:!0}),Q.aborted){q();return}(async()=>{let k=await ZB($,U,X);if(H)return;if(k.found){O();return}$.signalWaiters.set(J,B),D0($.signalWaitersByWorkflow,U,J),D=!0;let m=await ZB($,U,X);if(H)return;if(m.found){Q3($,U,J,B),O();return}if(await L,H)return;O()})().catch(g)})}var aU$=2147483647;var ov=V(()=>{eJ();L0()});function tU$($,U,j,G){let X=$.lastHeartbeatDetailsByStep.get(U);if(X===void 0)X=new Map,$.lastHeartbeatDetailsByStep.set(U,X);X.set(j,G)}function av($,U,j){return $.lastHeartbeatDetailsByStep.get(U)?.get(j)}function nz($,U,j){let G=$.lastHeartbeatDetailsByStep.get(U);if(G===void 0)return;if(G.delete(j),G.size===0)$.lastHeartbeatDetailsByStep.delete(U)}function tv($,U,j,G){if(!$.options.development)return;if($.activityWorkerDispatcher)return;if(G<=1)return;if(av($,U,j)!==void 0)return;$.engine.dispatchEvent(new v6(U,`Activity retry (attempt ${G}) at step ${j} has no lastHeartbeatDetails. Either the previous attempt never recorded heartbeat details (it never called heartbeat(), or called it with no details), or the engine process restarted and discarded the in-memory heartbeat (it is not durable). The resumable-batch pattern only resumes across in-process retries; design the activity to restart cleanly when lastHeartbeatDetails is undefined.`,[`step.${j}.lastHeartbeatDetails`]))}function ev($,U,j,G,X){return{signal:G,lastHeartbeatDetails:av($,U,j),heartbeat:(J)=>{$.heartbeatDetails.set(U,J),tU$($,U,j,J)},completeAsync:X}}var $y=V(()=>{H$()});async function jy($,U,j){let G=await jj$(j);return{idempotencyKeyDigest:G,key:F.activityReconciliation($,U,G)}}function Gy($,U){let j=$?.idempotencyKey?.(U.input);if(j!==void 0)return j;let G=U.options?.idempotencyKey;return typeof G==="string"?G:void 0}async function Xy($,U){let j=await $.get(U);if(j===null)return null;return Uj$(A(j))}function jQ($,U){return y4($,U,"activity result"),M($)}async function eU$($,U,j){if(!$.capabilities().conditionalBatch)throw new $Q;return O$($,"conditionalBatch","activity result reconciliation"),z$($,[{key:U.key,expectedValue:null}],[{type:"put",key:U.key,value:M(j)}])}function rz($,U,j){return{...$,status:"completed",result:U,updatedAt:j}}async function Jy($,U,j,G,X,J,Q){let Z=await Xy($.storage,G.key);if(Z===null){let D=await Xj$($,U,j,G,Q);if(D.didClaim)return D.record;Z=D.record}if(Z.status==="completed")return{completedResult:Z.result};if(!X?.verify)throw new J6(`Activity "${j.activityName}" has a prior dispatch marker but no Tier-0 verifier.`);let Y=$j$(await Jj$(X,U,j,J,Z));if(Y==="not-completed"){let D={...Z,attempt:Z.attempt+1,ownerId:crypto.randomUUID(),updatedAt:$.options.getNow()};return await Uy($.storage,G,Z,D),D}if(Y==="completed-result-unavailable")throw new J6(`Activity "${j.activityName}" completed externally but its result is unavailable.`);if(Y==="indeterminate")throw new J6(`Activity "${j.activityName}" reconciliation is indeterminate.`);jQ(Y.result,$.options.payloadSizePolicy.maxBytes);let H=rz(Z,Y.result,$.options.getNow());return await Uy($.storage,G,Z,H),{completedResult:Y.result}}async function Uy($,U,j,G){let X=Zy(U,j,G);if(!await z$($,X.conditions,X.operations))throw new UQ("Activity reconciliation completion lost compare-and-set ownership.")}function Qy($,U,j,G,X){_0($,U,Zy(j,G,X))}function Zy($,U,j){return{conditions:[{key:$.key,expectedValue:M(U)}],operations:[{type:"put",key:$.key,value:M(j)}]}}function $j$($){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 J6("Activity verifier did not return a Tier-0 pre-dispatch reconciliation state.")}function sz($,U,j,G,X,J,Q){return{phase:$,workflowId:U,operationId:j,activityName:G,input:X,...J===void 0?{}:{idempotencyKey:J},attempt:Q}}function Uj$($){if(typeof $!=="object"||$===null)throw new J6("Activity reconciliation record is not an object.");let U=$;if(!Qj$(U))throw new J6("Activity reconciliation record has an invalid shape.");if(U.status==="started")return U;if(U.status==="completed"&&"result"in U)return U;throw new J6("Activity reconciliation record has an unsupported status.")}async function jj$($){let U=new TextEncoder().encode($),j=await crypto.subtle.digest("SHA-256",U);return[...new Uint8Array(j)].map((G)=>G.toString(16).padStart(2,"0")).join("")}function Gj$($,U,j,G,X){return{version:1,status:"started",workflowId:$,operationId:U.operationId,activityName:U.activityName,idempotencyKeyDigest:j.idempotencyKeyDigest,attempt:G,ownerId:crypto.randomUUID(),createdAt:X,updatedAt:X}}async function Xj$($,U,j,G,X){let J=Gj$(U,j,G,X,$.options.getNow());if(await eU$($.storage,G,J))return{didClaim:!0,record:J};let Z=await Xy($.storage,G.key);if(Z===null)throw new J6("Activity reconciliation claim conflicted but no record could be read.");return{didClaim:!1,record:Z}}async function Jj$($,U,j,G,X){try{return await $.verify(void 0,sz("pre-dispatch-reconciliation",U,j.operationId,j.activityName,j.input,G,X.attempt))}catch(J){let Q=J instanceof Error?J.message:String(J);throw new J6(`Activity "${j.activityName}" verifier threw during pre-dispatch reconciliation: ${Q}`)}}function Qj$($){let U=["workflowId","operationId","activityName","idempotencyKeyDigest","ownerId"],j=["attempt","createdAt","updatedAt"];return $.version===1&&U.every((G)=>typeof $[G]==="string")&&j.every((G)=>typeof $[G]==="number")}var $Q,UQ,J6;var oz=V(()=>{h();u();n6();t();$Q=class $Q extends y{constructor(){super("ActivityReconciliationCapabilityError",'Activity result reconciliation requires storage capability "conditionalBatch".')}};UQ=class UQ extends y{constructor($){super("ActivityReconciliationConflictError",$)}};J6=class J6 extends y{constructor($){super("ActivityReconciliationIndeterminateError",$)}}});function Yy($,U,j){let G=$.workflowTypeByWorkflowId.get(U);if(G!==void 0){let J=$.activityRegistriesByWorkflow.get(G);if(J!==void 0){let Z=J.resolve(j);if(Z)return{fn:Z,workflowType:G}}let Q=$.activityRegistry.resolve(j);if(Q)return{fn:Q,workflowType:G};return}let X=$.activityRegistry.resolve(j);if(X)return{fn:X,workflowType:"<unknown>"};return}function az($,U,j){let G=Yy($,U,j.activityName);if(G)return G.fn;if(typeof j.fn==="function")return j.fn;return}function Hy($,U,j){let G=Yy($,U,j.activityName);if(G)return G.fn;if(j.fn)return j.fn;let X=$.workflowTypeByWorkflowId.get(U)??"<unknown>";throw new x8(X,j.activityName)}var _y=V(()=>{P$()});function Zj$($,U,j,G,X){return(async()=>{let J=await j?.(X,G);if(typeof J!=="boolean")throw Error(`Verification failed for activity "${U}"`);if(!J)throw Error(`Verification failed for activity "${U}"`)})()}function Yj$($,U,j,G){let X=az($,U,j);if(!X?.compensate)return;return async()=>{await X.compensate?.(j.input,G)}}async function Hj$($,U,j,G,X){let J=$.activityWorkerDispatcher;if(!J)throw Error(`No activity worker dispatcher available for "${j}"`);let Q=await J.execute({operationId:U,activityName:j,input:G,attempt:X});if(Q.status==="failed"){let Z=Error(Q.error);if(Q.errorName!==void 0)Z.name=Q.errorName;throw Z}return Q.value}function _j$($,U,j,G,X,J){let Q=Hy($,U,j);return i8(Q,J,G)}function Dy($,U){if(U.size>0)$.headers=[...U.entries()]}function tz($){let U=$.attempt;return typeof U==="number"&&Number.isInteger(U)&&U>0?U:1}async function Ly($,U,j,G,X=tz(j),J){let Q=j.input,Z=j.step??0;tv($,U,Z,X);let Y=hb(U,Z,X),{perAttemptTimeoutMs:H,attemptAbortController:D,activitySignal:L}=rg($,U,j,J),B=ev($,U,Z,L,()=>{throw new p5(Y)}),z=$.activityWorkerDispatcher?(m,p)=>Hj$($,j.operationId,m,p,X):(m,p)=>iJ(_j$($,U,j,B,m,p),H,m,X,D),K=G.getComposedActivityInterceptor(),q=async(m,p,d)=>{if(!K)return z(m,p);let Q$={workflowId:U,activityName:m,input:p,attempt:X,headers:d};return await K.execute(Q$,async(f4)=>{return z(m,f4.input)})},O=G.getComposedWorkflowInterceptor();if(O){let m={workflowId:U,activityName:j.activityName,input:Q,attempt:X,headers:new Map};function*p(){return yield q(j.activityName,m.input,m.headers)}let d=O.activity(m,p),Q$=await cb(d);return Dy(j,m.headers),Q$}let g=new Map,k=await q(j.activityName,Q,g);return Dy(j,g),k}async function n3($,U,j,G,X,J){let Q=az($,U,j),Z=Gy(Q,j),Y=tz(j);if(Z!==void 0){let D=await jy(U,j.activityName,Z),L=await Jy($,U,j,D,Q,Z,Y);if("completedResult"in L)return jQ(L.completedResult,$.options.payloadSizePolicy.maxBytes),L.completedResult;let B=await Ly($,U,j,G,L.attempt,X);jQ(B,$.options.payloadSizePolicy.maxBytes),await Fy($,U,j,B,Q,Z,L.attempt,J,!0);let z=rz(L,B,$.options.getNow());if(Qy($,U,D,L,z),!J)nz($,U,j.step??0);return B}let H=await Ly($,U,j,G,Y,X);if(y4(H,$.options.payloadSizePolicy.maxBytes,"activity result"),await Fy($,U,j,H,Q,Z,Y,J),!J)nz($,U,j.step??0);return H}async function Fy($,U,j,G,X,J,Q,Z,Y=!1){let H=Z?Yj$($,U,j,G):void 0;if(H)Z?.recordCompensation(H);if(X?.verify){let D=sz("post-execution-validation",U,j.operationId,j.activityName,j.input,J,Q),L=Zj$($,j.activityName,X.verify,D,G);if(Z){if(Z.recordVerification(L),Y)await L}else await L}}async function Wy($,U,j,G){return G.runOperationWithResult(U,j,async()=>{try{return await n3($,U,j,G)}catch(X){if(X instanceof p5)return mb($,X,{workflowId:U,activityName:j.activityName,operationId:j.operationId,step:j.step??0,attempt:tz(j)},{feedOperationResult:G.feedOperationResult,finalizeTimeline:G.finalizePendingTimelineEntry});throw X}})}var GQ=V(()=>{n6();$y();Rz();oz();_y();NU();B$()});function XQ($){let U=new Set,j=(G)=>{for(let X of G)if(X.type==="wait-signal"){if(U.has(X.signalName))throw Error(`ctx.race / ctx.all cannot have two branches waiting on the same signal "${X.signalName}": sibling wait-signal branches share one waiter and would clobber each other. Wait on the signal once, or use distinct signal names.`);U.add(X.signalName)}else if(X.type==="race"||X.type==="parallel")j(X.operations)};j($)}async function Vy($,U,j,G){let X=$.abortController.signal,J=`${U}:${j.signalName}`;while(!0){if(X.aborted)return;let Q=await Z3($,U,j.signalName);if(Q.found){G.completeOperation(U,Q.payload);return}let{promise:Z,resolve:Y}=Promise.withResolvers();if($.signalWaiters.set(J,Y),D0($.signalWaitersByWorkflow,U,J),X.aborted){$.signalWaiters.delete(J),t4($.signalWaitersByWorkflow,U,J);return}let H=await Z3($,U,j.signalName);if(H.found){if($.signalWaiters.get(J)===Y)$.signalWaiters.delete(J),t4($.signalWaitersByWorkflow,U,J);G.completeOperation(U,H.payload);return}if(await Z,X.aborted)return}}async function By($,U,j,G){return G.runOperationWithResult(U,j,async()=>{XQ(j.operations);let X=zy(j.resumedCacheEntry),J=j.operations.map((D,L)=>typeof D.operationId==="string"?D.operationId:`parallel:${j.step}:${L}`),{slots:Q,hasFirstError:Z,firstError:Y}=await Tb(J,X,(D)=>G.executeSubOperation(U,j.operations[D]));if(Z)Ky(Lj$($,U),Q,"ctx.all","worker execution mode");await Dj$(Q);let H=rV("all",Q);if(Py($,U,j.step,H),Z)throw Y;return bb(Q)})}async function Dj$($){let j=(await Promise.allSettled($.map(async(G)=>{if(G.status==="fulfilled")G.value=await dU(G.value)}))).find((G)=>G.status==="rejected");if(j)throw j.reason}function zy($){if(!B9($))return;return $.branches}function Lj$($,U){return $.inlineStrategy?.getContext(U)!==void 0}function Py($,U,j,G){let X=$.inlineStrategy?.getContext(U);if(X===void 0)return!1;return X.accumulatedResults.set(j,G),!0}function Ky($,U,j,G){if($||!U.some((X)=>X.status==="fulfilled"))return;throw Error(`${j} partial-failure preservation is not supported in ${G}: the engine cannot persist fulfilled branch slots after a sibling branch fails. Run the workflow inline or make branch side effects idempotent.`)}async function Ny($,U,j,G){return G.runOperationWithResult(U,j,async()=>{XQ(j.operations);let X=new AbortController,J=j.operations.map((Z)=>G.executeSubOperation(U,Z,X.signal));Promise.allSettled(J);let Q;try{Q=await Promise.race(J)}finally{X.abort()}return dU(Q)})}async function My($,U,j,G){return G.runOperationWithResult(U,j,async()=>{let X=Object.keys(j.branches),J=X.map((q)=>`run-all:${j.step}:${q}`),Q=zy(j.resumedCacheEntry),Z=Bj$(Q,X),Y=Fj$(j.branches,X,Z),{outcomes:H,hasFirstError:D,firstError:L}=await vb(Y,(q,O)=>i8(q,O)),B=Wj$(X,J,Z,H),z=rV("run-all",B,X),K=Py($,U,j.step,z);if(D)throw Ky(K,B,"ctx.runAll","worker execution mode"),L;return Vj$(X,B)})}function Fj$($,U,j){let G={};for(let X of U)if(j?.get(X)?.status!=="fulfilled"){let J=$[X];if(J!==void 0)G[X]=J}return G}function Wj$($,U,j,G){let X=new Map;for(let J of G)X.set(J.name,J);return $.map((J,Q)=>{let Z=U[Q],Y=j?.get(J);if(Y?.status==="fulfilled")return Y;let H=X.get(J);if(H.status==="fulfilled")return{status:"fulfilled",value:H.value,operationId:Z};let D=H.reason instanceof Error?H.reason:Error(String(H.reason));return{status:"rejected",reason:{name:D.name,message:D.message},operationId:Z}})}function Vj$($,U){let j={};for(let G=0;G<$.length;G++){let X=U[G];if(X?.status==="fulfilled")j[$[G]]=X.value}return j}function Bj$($,U){if($===void 0)return;let j=new Map;for(let G=0;G<U.length;G++){let X=U[G],J=$[G];if(X!==void 0&&J!==void 0)j.set(X,J)}return j}function zj$($){return typeof $.execute==="function"}async function qy($,U,j,G,X){return yb(j.branches,(J,Q)=>{if(!X||!zj$(J))return i8(J,Q);return n3($,U,{type:"activity",operationId:crypto.randomUUID(),activityName:J.name,fn:J,input:Q},G.getActivityOperationCallbacks(),void 0,X)})}var JQ=V(()=>{u5();$3();eJ();GQ();sV();L0();B$()});async function Ay($,U,j,G){return G.runOperationWithoutResult(U,j,()=>G.processReviewOperation(U,j.reviewOptions))}async function QQ($,U,j,G,X,J){X?.throwIfAborted();let Q=Pj$[j.type];if(!Q)throw Error(`Unsupported sub-operation type: ${j.type}`);return Q({internals:$,workflowId:U,callbacks:G,signal:X,speculativeState:J},j)}async function Kj$($,U,j,G,X,J){return n3($,U,j,G.createActivityOperationCallbacks(),X,J)}async function Nj$($,U,j,G){return lz($,U,j,dz($,U),G.createChildWorkflowOperationCallbacks())}async function Mj$($,U){return F9($.storage,Z0(U.scope,U.key),U)}async function qj$($,U,j){let G=Z0(U.scope,U.key),X=U.mode==="delete"?await s8($.storage,G,U.expectedVersion):await r8($.storage,G,U.expectedVersion,U.value);if(X.applied&&U.scope.type==="execution")await j.createStateOperationCallbacks().ensureTerminalCleanupTracked(U.scope.ownerWorkflowId);return X}async function Aj$($,U,j,G,X,J){X?.throwIfAborted();let Q=new AbortController,Z=()=>{Q.abort(X?.reason)};X?.addEventListener("abort",Z,{once:!0});let Y=j.operations.map((H)=>QQ($,U,H,G,Q.signal,J));Promise.allSettled(Y);try{return await Promise.all(Y)}finally{X?.removeEventListener("abort",Z),Q.abort()}}async function Oj$($,U,j,G,X,J){X?.throwIfAborted();let Q=new AbortController,Z=()=>{Q.abort(X?.reason)};X?.addEventListener("abort",Z,{once:!0});let Y=j.operations.map((H)=>QQ($,U,H,G,Q.signal,J));Promise.allSettled(Y);try{return await Promise.race(Y)}finally{X?.removeEventListener("abort",Z),Q.abort()}}var Pj$;var ez=V(()=>{W9();iz();ov();GQ();JQ();B$();Pj$={activity:($,U)=>Kj$($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),"child-workflow":($,U)=>Nj$($.internals,$.workflowId,U,$.callbacks),memo:($,U)=>Promise.resolve(P5(U.fn)),"state-read":($,U)=>Mj$($.internals,U),"state-commit":($,U)=>qj$($.internals,U,$.callbacks),parallel:($,U)=>Aj$($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),race:($,U)=>Oj$($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),"run-all":($,U)=>qy($.internals,$.workflowId,U,$.callbacks.createCoordinationOperationCallbacks(),$.speculativeState),sleep:($,U)=>rv($.internals,U,$.signal),"wait-signal":($,U)=>sv($.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 $P($){return{runOperationWithResult:(U,j,G)=>q0($,U,j,G),start:(U,j,G)=>U6(W($),U,j,G,void 0,G4($)),loadWorkflowState:(U)=>J$(W($),U),getHandle:(U)=>$.getHandle(U),getComposedWorkflowInterceptor:()=>X6(W($))}}function ZQ($){return{runOperationWithResult:(U,j,G)=>q0($,U,j,G),finalizePendingTimelineEntry:(U,j,G)=>R6(W($),U,j,G),feedOperationResult:(U,j,G)=>G6(W($),U,j,G),getComposedActivityInterceptor:()=>Hg(W($)),getComposedWorkflowInterceptor:()=>X6(W($))}}function lU($){return{completeOperation:(U,j)=>_Q($,U,j),runOperationWithResult:(U,j,G)=>q0($,U,j,G),executeSubOperation:(U,j,G,X)=>UP($,U,j,G,X),getActivityOperationCallbacks:()=>ZQ($)}}function Cy($){return{completeOperation:(U,j)=>_Q($,U,j),failOperation:(U,j,G)=>Cj$($,U,j,G),isWorkflowRunning:async(U)=>{return(await J$(W($),U))?.status==="running"},scheduleConditionDeadline:(U,j,G)=>W($).scheduler.schedule({id:`cond:${U}:${j}`,workflowId:U,fireAt:G,kind:"wait-condition"}),cancelConditionDeadline:(U,j)=>W($).scheduler.cancel(`cond:${U}:${j}`,U)}}function r3($){return{runOperationWithResult:(U,j,G)=>q0($,U,j,G)}}function YQ($){return{runOperationWithResult:(U,j,G)=>q0($,U,j,G),ensureTerminalCleanupTracked:(U)=>k3(W($),U)}}function Ry($){return{runOperationWithResult:(U,j,G)=>q0($,U,j,G),handleCleanupError:(U,j,G)=>V$($).handleCleanupError(U,j,G)}}function HQ($){return{completeOperation:(U,j)=>_Q($,U,j),dispatchEvent:(U)=>$.dispatchEvent(U),loadWorkflowState:(U)=>J$(W($),U),failWorkflow:(U,j)=>h4(W($),U,j,V$($)),runSerializedWorkflowStateWrite:(U,j)=>e4(W($),U,j),beginWorkflowExecution:(U,j,G,X,J,Q,Z)=>vJ(W($),U,j,G,X,J,Q,Z,G4($)),workflowVersionTupleFromState:(U)=>CJ(W($),U,G4($)),setWorkflowStartHeaders:(U,j)=>b1(W($),U,j,G4($)),loadWorkflowStartHeaders:(U)=>R9(W($),U,G4($)),parseStartOptionDuration:(U,j)=>mU(W($),U,j,G4($)),runDeferredTerminalCleanup:(U,j)=>tB(W($),U,j,V$($)),runWorkflowFinalizer:(U,j)=>xz(W($),U,j,V$($)),handleScheduleTimer:(U)=>yv($,U),timeout:(U)=>$.timeout(U),handleCleanupError:(U,j,G)=>V$($).handleCleanupError(U,j,G)}}function iU($){return{dispatchEvent:(U)=>$.dispatchEvent(U),broadcast:(U)=>F0(W($),U,t6($)),completeOperation:(U,j)=>_Q($,U,j),guardTerminalWorkflow:(U)=>pz(W($),U,aJ($)),guardTerminalWorkflowAfterCoordinatedRequest:(U,j)=>mv(W($),U,j,aJ($)),persistCoordinatedUpdateResponse:(U,j,G,X,J)=>Oy($,U,j,G,X,J),deliverCoordinatedUpdateToWaiterIfAvailable:(U,j,G)=>IE(W($),U,j,G,iU($)),dispatchPendingUpdateReceived:(U,j,G)=>kE(W($),U,j,G,t6($)),createCoordinatedUpdateResponder:(U,j,G)=>yE(W($),U,j,G,{persistCoordinatedUpdateResponse:(X,J,Q,Z,Y)=>Oy($,X,J,Q,Z,Y)}),findPendingUpdateByName:(U,j)=>hE(W($),U,j),schedulePendingInlineUpdateDrain:(U)=>Sg(W($),U,c3($))}}async function Oy($,U,j,G,X,J){let Q=W($),Z=Q.updateCoordinator.buildResponseOperations(G,U,J,void 0,X);try{await R$(Q,Z,[],()=>Error(`Coordinated update response for workflow "${U}" lost its CAS race.`)),$.dispatchEvent(new k4(G,U,j,J)),F0(Q,{type:"update:completed",workflowId:U,updateId:G},t6($))}catch(Y){V$($).handleCleanupError("writeCoordinatedUpdateResponse",Y,U)}}function _Q($,U,j){return l3(W($),U,j,p3($))}function Cj$($,U,j,G){return i3(W($),U,j,G,p3($))}async function q0($,U,j,G){return wv(W($),U,j,G,p3($))}async function Ty($,U,j,G){return cv(W($),U,j,G,p3($))}async function UP($,U,j,G,X){return QQ(W($),U,j,{createActivityOperationCallbacks:()=>ZQ($),createChildWorkflowOperationCallbacks:()=>$P($),createCoordinationOperationCallbacks:()=>lU($),createStateOperationCallbacks:()=>YQ($)},G,X)}async function by($,U,j){return ig(W($),U,j,vv($))}var DQ=V(()=>{H$();e5();cU();Iv();A6();fv();S1();N0();tJ();zz();dJ();j4();o6();ez();x1();qU()});async function Ey($,U,j,G){return G.runOperationWithResult(U,j,async()=>P5(j.fn))}async function Sy($,U,j,G){return G.runOperationWithResult(U,j,async()=>{let X=await j.fn(),J=M(X);return await $.storage.put(F.offload(U,j.key),J),{key:j.key,workflowId:U,sizeBytes:J.byteLength}})}async function xy($,U,j,G){return G.runOperationWithResult(U,j,async()=>{let{workflowId:X,key:J,sizeBytes:Q}=j.reference;if(typeof X!=="string"||X!==U)throw Error("ctx.load() can only read offloaded data from the current workflow");if(typeof J!=="string"||J.length===0)throw Error("ctx.load() requires a non-empty offload reference key");if(typeof Q!=="number"||!Number.isFinite(Q)||Q<0)throw Error("ctx.load() requires a valid offload reference size");let Z=await $.storage.get(F.offload(X,J));if(Z===null)throw Error(`Offloaded data not found for key "${J}" in workflow "${X}"`);return A(Z)})}async function gy($,U,j){let G=await $.storage.get(F.offload(U,j));if(G===null)return null;return A(G)}async function vy($,U,j,G){return G.runOperationWithResult(U,j,async()=>{await $.storage.put(F.archive(U,j.key),M(j.data));return})}var jP=V(()=>{h();u();B$()});class GP{#$;#U;constructor(){this.#$=[],this.#U=[]}recordVerification($){this.#$.push($.then(()=>({failed:!1}),(U)=>({failed:!0,error:U})))}recordCompensation($){this.#U.push($)}async drainVerifications(){let U=(await Promise.all(this.#$)).find((j)=>j.failed);if(U)throw U.error}async rollback(){for(let $=this.#U.length-1;$>=0;$--)try{await this.#U[$]()}catch{}await Promise.all(this.#$)}}async function yy($,U,j,G){return G.runOperationWithResult(U,j,()=>Rj$($,U,j,G))}async function Rj$($,U,j,G){let X=$.inlineStrategy;if(!X)throw Error("ctx.speculate() requires inline execution mode");let J=X.getContext(U);if(!J)throw Error(`No active inline context for workflow "${U}"`);let Q=J.createSpeculativeChild(),Z=new GP,Y=Tj$(j,Q);try{let H=await bj$(U,Y,Z,G);return await Z.drainVerifications(),J.commitSpeculativeChild(Q),H}catch(H){throw await Z.rollback(),H}}function Tj$($,U){return $.execute(U)}async function bj$($,U,j,G){let X=async(J,Q)=>{let Z=Q===void 0?await U.next(J):await U.throw(Q);if(Z.done)return Z.value;let Y=Z.value;try{if(Y.type==="race"||Y.type==="parallel")XQ(Y.operations);let H=await G.executeSubOperation($,Y,void 0,j),D=await dU(H);return X(D,void 0)}catch(H){return X(J,H instanceof Error?H:Error(String(H)))}};return X(void 0,void 0)}var Iy=V(()=>{eJ();JQ()});async function hy($,U,j,G){return G.runOperationWithResult(U,j,async()=>{let X=Z0(j.scope,j.key);return F9($.storage,X,j)})}async function my($,U,j,G){return G.runOperationWithResult(U,j,async()=>{let X=Z0(j.scope,j.key);if(j.mode==="delete"){let Q=await s8($.storage,X,j.expectedVersion);if(Q.applied&&j.scope.type==="execution")await G.ensureTerminalCleanupTracked(j.scope.ownerWorkflowId);return Q}let J=await r8($.storage,X,j.expectedVersion,j.value);if(J.applied&&j.scope.type==="execution")await G.ensureTerminalCleanupTracked(j.scope.ownerWorkflowId);return J})}var fy=V(()=>{W9()});function Sj$($){if(!Ej$.test($))return;let U=Number.parseInt($,10);return Number.isSafeInteger(U)?U:void 0}async function nU($,U,j,G){let X=G?.after,J=F.streamChunkPrefix(U,j),Q=[],Z=X!==void 0&&X>=0?{gt:F.streamChunk(U,j,X)}:void 0;for await(let[Y,H]of $.scan(J,Z)){let D=Y.slice(J.length),L=Sj$(D);if(L===void 0)continue;Q.push({sequence:L,value:A(H)})}return Q}function LQ($){return M({sequence:$})}function xj$($){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 rU($,U,j){let G=await $.get(F.streamTail(U,j));if(G===null)return null;try{return xj$(A(G))}catch{return null}}var Ej$;var s3=V(()=>{h();u();Ej$=/^\d+$/});async function*ky($,U,j,G){if(j==="events"){yield*vj$($,U,G);return}yield*yj$($,U,G)}async function uy($,U,j){if(j==="events"){let Q=$.eventLogHeads.get(U);if(Q)return Q.sequence;return(await new I4($.storage,U).loadHead()).sequence}let G=await rU($.storage,U,E9);if(G!==null)return G;let X=await nU($.storage,U,E9);if(X.length===0)return-1;let J=-1;for(let Q of X)if(Q.sequence>J)J=Q.sequence;return J}function wy($,U,j,G){let X=YU(U,j),J=$.workflowFeedListeners.get(X);if(!J)J=new Set,$.workflowFeedListeners.set(X,J);return J.add(G),()=>{let Q=$.workflowFeedListeners.get(X);if(!Q)return;if(Q.delete(G),Q.size===0)$.workflowFeedListeners.delete(X)}}async function*vj$($,U,j){let G=new I4($.storage,U),X=j<0?0:j+1,J=await P0($.storage,U);if(J!==null&&X<J.sequence)yield{workflowId:U,selector:"events",kind:gj$,sequence:J.sequence-1,timestamp:0,payload:{compactedBefore:J.sequence,requestedFrom:X}},X=J.sequence;for await(let Q of G.scan({fromSequence:X}))yield{workflowId:U,selector:"events",kind:Q.type,sequence:Q.sequence,timestamp:Q.timestamp,payload:Q.payload}}async function*yj$($,U,j){let G=j>=0?await nU($.storage,U,E9,{after:j}):await nU($.storage,U,E9),X=Date.now();for(let J of G)yield{workflowId:U,selector:"tokens",kind:XP,sequence:J.sequence,timestamp:X,payload:J.value}}function FQ($,U,j,G){let X=$.workflowFeedListeners.get(YU(U,j));if(!X||X.size===0)return;let J=[...X];for(let Q of J)try{let Z=Q(G);if(Z&&typeof Z.then==="function")Z.catch(()=>{})}catch{}}var E9="tokens",XP="stream:chunk",gj$="workflow:compaction-boundary";var WQ=V(()=>{C9();C3();B$();s3()});async function cy($,U,j,G){return nU($.storage,U,j,G)}async function py($,U,j,G){return G.runOperationWithResult(U,j,()=>Ij$($,U,j,G))}async function Ij$($,U,j,G){let X={heartbeat:(Q)=>{$.heartbeatDetails.set(U,Q)}},J=[];try{let Q=await hj$($,U,j,j.fn(X),J),Z={key:j.key,workflowId:U,chunkCount:Q.chunkCount,totalSizeBytes:Q.totalSizeBytes};return await $.storage.put(F.streamMetadata(U,j.key),M(Z)),Z}catch(Q){throw await mj$($,U,j.key,J,G),Q}}async function hj$($,U,j,G,X){let J=0,Q=0;for await(let Z of G){let Y=M(Z),H=J,D=F.streamChunk(U,j.key,H);if(j.key===E9)await $.storage.batch([{type:"put",key:D,value:Y},{type:"put",key:F.streamTail(U,j.key),value:LQ(H)}]);else await $.storage.put(D,Y);if(X.push(D),Q+=Y.byteLength,J++,j.key===E9)FQ($,U,"tokens",{workflowId:U,selector:"tokens",kind:XP,sequence:H,timestamp:Date.now(),payload:Z})}return{chunkCount:J,totalSizeBytes:Q}}async function mj$($,U,j,G,X){await gb($.storage,U,j,G,Eb(X.handleCleanupError,U))}var JP=V(()=>{h();u();$3();s3();WQ()});function ly($,U,j){if(U())return{done:!0,value:j===void 0?void 0:!0};if(j!==void 0&&$.options.getNow()>=j)return{done:!0,value:!1};return{done:!1}}async function iy($,U,j,G){let X=$.abortController.signal,{predicate:J,deadline:Q}=j,Z=!1,Y=(H)=>{if(Z)return;Z=!0,G.completeOperation(U,H)};if(X.aborted)return;try{let H=ly($,J,Q);if(H.done){Y(H.value);return}if(Q!==void 0)await G.scheduleConditionDeadline(U,j.step,Q);try{let D=await dy($,U,J,Q,G);while(D.status==="continue")D=await dy($,U,J,Q,G);if(D.status==="complete")Y(D.value)}finally{if(ny($,U),Q!==void 0)await G.cancelConditionDeadline(U,j.step)}}catch(H){G.failOperation(U,j,H)}}async function dy($,U,j,G,X){let J=$.abortController.signal;if(J.aborted)return{status:"stop"};let{promise:Q,resolve:Z}=Promise.withResolvers();$.conditionWaiters.set(U,Z);let Y=J.aborted?{done:!0,value:void 0,aborted:!0}:{...ly($,j,G),aborted:!1};if(Y.done)return ny($,U),Y.aborted?{status:"stop"}:{status:"complete",value:Y.value};if(await Q,J.aborted)return{status:"stop"};if(!await X.isWorkflowRunning(U))return{status:"stop"};return{status:"continue"}}function ny($,U){$.conditionWaiters.delete(U)}function QP($){return{processActivityOperation:(U,j)=>Wy(W($),U,j,ZQ($)),processSleepOperation:(U,j)=>sS(W($),U,j,HQ($)),processWaitSignalOperation:(U,j)=>Vy(W($),U,j,lU($)),processWaitUpdateOperation:(U,j)=>gE(W($),U,j,iU($)),processWaitConditionOperation:(U,j)=>iy(W($),U,j,Cy($)),processGetVersionOperation:async(U,j)=>{l3(W($),U,j.version,{finalizePendingTimelineEntry:(G,X,J)=>R6(W($),G,X,J),feedOperationResult:(G,X,J)=>G6(W($),G,X,J)})},processParallelOperation:(U,j)=>By(W($),U,j,lU($)),processRaceOperation:(U,j)=>Ny(W($),U,j,lU($)),processMemoOperation:(U,j)=>Ey(W($),U,j,r3($)),processChildWorkflowOperation:(U,j)=>dv(W($),U,j,$P($)),processOffloadOperation:(U,j)=>Sy(W($),U,j,r3($)),processLoadOperation:(U,j)=>xy(W($),U,j,r3($)),processArchiveOperation:(U,j)=>vy(W($),U,j,r3($)),processStateReadOperation:(U,j)=>hy(W($),U,j,YQ($)),processStateCommitOperation:(U,j)=>my(W($),U,j,YQ($)),processRunAllOperation:(U,j)=>My(W($),U,j,lU($)),processSpeculateOperation:(U,j)=>yy(W($),U,j,{runOperationWithResult:(G,X,J)=>q0($,G,X,J),executeSubOperation:(G,X,J,Q)=>UP($,G,X,J,Q)}),processStreamOperation:(U,j)=>py(W($),U,j,Ry($)),processWaitReviewOperation:(U,j)=>Ay(W($),U,j,{runOperationWithoutResult:(G,X,J)=>Ty($,G,X,J),processReviewOperation:(G,X)=>by($,G,X)}),finalizePendingTimelineEntry:(U,j,G)=>R6(W($),U,j,G),feedOperationResult:(U,j,G)=>G6(W($),U,j,G)}}var ry=V(()=>{DQ();iz();S1();GQ();JQ();jP();tJ();Iy();fy();JP();SJ();o6();ez();x1();qU();Lv(($)=>QP($))});function sy($){let U=c($).pendingAttributeChanges;return U!==void 0&&Object.keys(U).length>0}function oy($){let U=c($).updateHandlers;return U!==void 0&&U.size>0}function ay($){let U=c($).exposedValues;return U!==void 0&&U.size>0}var ZP=V(()=>{MU()});function ty($,U,j,G,X,J){let Q=uU($,U),Z=$.workflowVersionTuples.get(U);if(Q)J.push(Q);let Y={step:G,operationType:j.type,operationLabel:bT(j),inputSummary:ET(j),timestamp:X,status:"running",...Z?{versionTuple:Z}:{}};return J.push({type:"put",key:F.timeline(U,G),value:M(Y)}),{startedAt:X,entry:Y}}async function ey($,U,j,G,X){if($.inlineStrategy?.getContext(U))await fj$($,U,j,X);else if(G&&G.byteLength>0)await kj$($,U,j,G,X)}async function fj$($,U,j,G){let X=$.checkpoints.get(U),J=$.inlineStrategy?.getContext(U);if(!X||!J)return;let Q={...X.searchAttributes},Z=J.checkpointPendingAttributeChanges,Y=sy(J),H=wV(X,J.checkpointLocals,{accumulatedResults:J.checkpointAccumulatedResults,now:$.options.getNow(),...Z!==void 0?{searchAttributes:Z}:{}}),D=LV(H,jI(j,J.stepIndex)),L=$I($,U,D.checkpoint,d$(FV(D.checkpoint,D.replayPayload)),D.replayPayload);if(uj$(U,L,Q,Z,Y,G),await UI($,U,j,L,G),Y)G.dispatchEvent(new o9(U,{...Z}))}async function kj$($,U,j,G,X){let J=new Uint8Array(G),Q=h$(J),Z=QU(Q),Y=LV(Q,jI(j,Q.step)),H=_5(Z,Y.replayPayload),D=d$(FV(Y.checkpoint,H));await UI($,U,j,$I($,U,Y.checkpoint,D,H),X)}function $I($,U,j,G,X){let J=[{type:"put",key:F.checkpoint(U),value:G}];if($.options.checkpointHistory>0)J.push({type:"put",key:F.checkpointHistory(U,j.step),value:G});let Q=_S($,U);return{checkpoint:j,serialized:G,...X===void 0?{}:{replayPayload:X},...Q!==void 0?{expectedSerialized:Q}:{},step:j.step,timestamp:j.createdAt,operations:J}}function uj$($,U,j,G,X,J){if(!X)return;J.validateAttributeValueSizes(G??{}),U.operations.push({type:"put",key:F.attribute($),value:M(U.checkpoint.searchAttributes)}),U.operations.push(...a$($,j,U.checkpoint.searchAttributes))}async function UI($,U,j,G,X){lj$($,U,G,X);let J=X.appendTimelineBatchOperations(U,j,G.step,G.timestamp,G.operations),{newHead:Q,timestamp:Z}=ij$($,U,G),Y=$.options.historyPolicy.retentionWindow,H=Y===null?null:await uS($.storage,U,Q.sequence,Y,G.operations),D=a5($,U);if(D!==void 0)G.operations.push(...D.operations);let L=$.storage.capabilities().conditionalBatch,B=wj$(D,L),z=cj$(U,G,L,B);if(await R$($,G.operations,z,()=>{return Error(`Checkpoint commit for workflow "${U}" lost its CAS race against a newer checkpoint.`)}),D!==void 0)t5($,U);if(G.expectedSerialized!==void 0)WJ($,U,G.serialized);if($.pendingTimelineEntries.set(U,J),$.checkpoints.set(U,G.checkpoint),$.eventLogHeads.set(U,Q),H!==null)dj$($,U,H,X);if(FQ($,U,"events",{workflowId:U,selector:"events",kind:"workflow:checkpoint",sequence:Q.sequence,timestamp:Z,payload:{step:G.step}}),X.swallowPromiseRejection(X.pruneCheckpointHistory(U,G.step)),pj$($,Q.sequence))await X.enforceHistoryCircuitBreaker(U)}function wj$($,U){if(!U)return[];return $?.conditions??[]}function cj$($,U,j,G){let X=[];if(j&&U.expectedSerialized!==void 0)X.push({key:F.checkpoint($),expectedValue:U.expectedSerialized});return X.push(...G),X}function pj$($,U){let j=$.options.historyPolicy.maxEvents;return j!==null&&U+1>j}function dj$($,U,j,G){let X=$.options.archiveAdapter;if(X===null||j.deletedEntries.length===0)return;let{from:J,to:Q}=j.deletedRange,Z=`events:${J}-${Q}`,Y=wS(j.deletedEntries);G.swallowPromiseRejection(Promise.resolve().then(()=>X.store(U,Z,Y)))}function lj$($,U,j,G){if(j.serialized.byteLength>=$.options.checkpointSizeWarningThreshold)G.dispatchEvent(new $2(U,j.serialized.byteLength,j.step))}function ij$($,U,j){return new I4($.storage,U).appendToBatch({type:"workflow:checkpoint",payload:DT(j.step,j.replayPayload)},j.operations,$.eventLogHeads.get(U)??Q9,$.workflowVersionTuples.get(U))}function jI($,U){let j="step"in $?$.step:void 0;if(typeof j==="number"&&Number.isSafeInteger(j)&&j>=0)return j;return Math.max(0,U-1)}async function GI($,U,j){let G=$.options.checkpointHistory;if(G<=0)return;let X=j-G;if(X<1)return;let J=F.checkpointHistory(U,X);await $.storage.delete(J)}function XI($,U,j){if(!$.options.development)return;let G=$.inlineStrategy?.getContext(U);if(!G)return;let X=G.stepIndex,J=$.checkpoints.get(U);if(!J)return;let Q=cV({...J,locals:G.checkpointLocals,accumulatedResults:G.checkpointAccumulatedResults});if(!Q.valid){let Z=Q.divergences.map((H)=>H.path),Y=`Checkpoint at step ${X} has ${Q.divergences.length} non-serializable field(s)`;j.dispatchEvent(new v6(U,Y,Z))}}var JI=V(()=>{h();a4();u();ZP();C9();H$();W4();O9();H9();C3();A6();B$();x1();WQ()});async function QI($,U,j){let G=$.inlineStrategy?.getContext(U);if(!G)return!1;let J=$.registrations.get(G.workflowType)?.constraints;if(!J||J.length===0)return!1;let Q={id:U,type:G.workflowType,status:"running"};for(let Z of J){if(!await nj$(Z,Q))continue;if(rj$(j,U,Z),Z.onViolation==="warn"){sj$(U,Z);continue}let H=Error(`Constraint violated: ${Z.name} (scope: ${Z.scope})`);if(Z.onViolation==="fail")await oj$(j,U,H);else aj$(j,U,H);return!0}return!1}async function nj$($,U){try{let j=$.check(U);return!(j instanceof Promise?await j:j)}catch(j){return console.warn(`[weft] Constraint "${$.name}" check() threw an error:`,j),!0}}function rj$($,U,j){$.dispatchEvent(new Z2(U,j.name,j.scope,j.onViolation))}function sj$($,U){console.warn(`[weft] Constraint "${U.name}" (scope: ${U.scope}) violated on workflow "${$}" \u2014 continuing (onViolation: 'warn')`)}async function oj$($,U,j){$.cancelWorkflowInStrategy(U),await $.failWorkflow(U,j)}function aj$($,U,j){$.feedOperationResult(U,{status:"failed",error:j.message,errorName:j.name,failureCategory:"application"},{value:j})}var ZI=V(()=>{H$()});async function YI($,U,j,G){if(j.type!=="wait-signal"||$.inlineStrategy===null)return!1;let X=$.inlineStrategy,J=X.getContext(U);if(J&&(oy(J)||ay(J)))return!1;if(await G.hasBufferedSignal(U,j.signalName))return!1;if(!await G.runSerializedWorkflowStateWrite(U,async()=>{let Z=await G.loadWorkflowState(U);if($.terminalizingWorkflows.has(U)||!Z||Z.status!=="running")return!1;return X.parkWorkflow(U,{retainContext:!0}),$.parkedInlineWorkflows.add(U),!0}))return!1;if(await G.hasBufferedSignal(U,j.signalName))await G.resumeParkedInlineWorkflow(U);return!0}async function VQ($,U,j){if(!$.parkedInlineWorkflows.has(U))return;$.parkedInlineWorkflows.delete(U);try{await I3($,U,!1,j.createLifecycleCallbacks())}catch(G){let X=await j.getParkedWorkflowResumeDisposition(U);if(X==="resumable")throw $.parkedInlineWorkflows.add(U),G;if(X==="corrupt")throw G}}async function HI($,U,j){if($.terminalizingWorkflows.has(U))return"terminal-or-missing";let G=await j.loadWorkflowState(U);if(!G||G.status!=="running")return"terminal-or-missing";if(!await j.readCheckpointBytes(U))return"corrupt";return"resumable"}async function _I($,U,j){switch(U.type){case"completed":await Cz($,U.workflowId,U.result,j.createTerminationCallbacks());break;case"failed":{let G=Error(U.error);if(U.errorStack)G.stack=U.errorStack;await h4($,U.workflowId,G,j.createTerminationCallbacks(),U.failureCategory??"system");break}case"checkpoint":{let G=j.translateOperationRequest(U.operationRequest);if(await j.persistCheckpoint(U.workflowId,G,U.checkpoint),j.validateDevelopmentCheckpoint(U.workflowId),await j.evaluateConstraints(U.workflowId))break;if(await j.parkInlineWorkflowAfterCheckpoint(U.workflowId,G))break;if(G.type==="wait-signal"&&$.inlineStrategy===null){j.processOperation(U.workflowId,G).catch((J)=>{let Q=J instanceof Error?J:Error(String(J));return h4($,U.workflowId,Q,j.createTerminationCallbacks(),"system")});break}await j.processOperation(U.workflowId,G);break}}}var YP=V(()=>{ZP();N0();x1()});function BQ($){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 zQ($){$.nextRetentionSweepAt=$.options.getNow()+$.options.retentionSweepIntervalMs}function PQ($,U){if(!U.hasConfiguredRetention()){if($.retentionSweepInterval!==null)clearInterval($.retentionSweepInterval??void 0),$.retentionSweepInterval=null;$.nextRetentionSweepAt=null;return}if($.retentionSweepInterval!==null)return;U.setNextRetentionSweepAt(),$.retentionSweepInterval=setInterval(()=>{if(U.setNextRetentionSweepAt(),$.retentionSweepInFlight!==null)return;let G=U.runRetentionSweep().finally(()=>{if($.retentionSweepInFlight===G)$.retentionSweepInFlight=null});$.retentionSweepInFlight=G},$.options.retentionSweepIntervalMs)}async function KQ($,U,j){try{await K3($,void 0,{expiredOnly:!0,limit:$.options.retentionSweepBatchSize,now:$.options.getNow()},j)}catch(G){U("retentionSweep",G)}}function HP($,U){let j=$.registrations.get(U);if(j?.retention)return{type:U,source:"workflow",retention:j.retention};if($.options.retention!==null)return{type:U,source:"engine",retention:$.options.retention};return{type:U,source:"none",retention:null}}function DI($,U=(j)=>HP($,j)){let j=[...$.registrations.keys()].toSorted().map((G)=>U(G));return{defaultRetention:$.options.retention,sweepIntervalMs:$.options.retentionSweepIntervalMs,sweepBatchSize:$.options.retentionSweepBatchSize,nextSweepAt:$.nextRetentionSweepAt,workflowTypes:j}}var _P=V(()=>{AJ()});function o3($){return{createLifecycleCallbacks:()=>G4($),createTerminationCallbacks:()=>V$($),evaluateConstraints:(U)=>QI(W($),U,Dv($)),getParkedWorkflowResumeDisposition:(U)=>HI(W($),U,o3($)),hasBufferedSignal:(U,j)=>RE(W($),U,j),loadWorkflowState:(U)=>J$(W($),U),parkInlineWorkflowAfterCheckpoint:(U,j)=>YI(W($),U,j,o3($)),persistCheckpoint:(U,j,G)=>tj$($,U,j,G),processOperation:(U,j)=>uv(W($),U,j,QP($)),readCheckpointBytes:(U)=>W($).storage.get(F.checkpoint(U)),resumeParkedInlineWorkflow:(U)=>VQ(W($),U,o3($)),runSerializedWorkflowStateWrite:(U,j)=>e4(W($),U,j),translateOperationRequest:(U)=>kv(W($),U),validateDevelopmentCheckpoint:(U)=>XI(W($),U,{dispatchEvent:(j)=>{$.dispatchEvent(j)}})}}function tj$($,U,j,G){return ey(W($),U,j,G,{appendTimelineBatchOperations:(X,J,Q,Z,Y)=>ty(W($),X,J,Q,Z,Y),swallowPromiseRejection:(X)=>{C6(X)},validateAttributeValueSizes:bU,pruneCheckpointHistory:(X,J)=>GI(W($),X,J),dispatchEvent:(X)=>{$.dispatchEvent(X)},enforceHistoryCircuitBreaker:(X)=>b9(W($),X,"timed-out",V$($),hX)})}function ej$($){PQ(W($),{hasConfiguredRetention:()=>BQ(W($)),runRetentionSweep:()=>KQ(W($),(U,j)=>V$($).handleCleanupError(U,j),(U)=>s6(W($),U,V$($))),setNextRetentionSweepAt:()=>zQ(W($))})}var LI=V(()=>{h();d4();EU();cU();ry();JI();ZI();YP();S1();tJ();_P();L0();j4();o6();x1();DQ();cU();_v(($)=>ej$($))});async function FI($,U){let j=[],G=new I4($.storage,U);for await(let X of G.scan())j.push({type:X.type,timestamp:X.timestamp,data:qV(X.payload)});return j}async function WI($,U){if($.options.checkpointHistory<=0)return[];let j=`${F.checkpoint(U)}:`,G=[];for await(let[,X]of $.storage.scan(j,{reverse:!0,limit:$.options.checkpointHistory})){let J=h$(X);G.push({step:J.step,timestamp:J.createdAt,sizeBytes:X.byteLength})}return G}async function VI($,U,j){let G=await $.storage.get(F.checkpointHistory(U,j));if(!G)return null;let X=await Y9($.storage,U,h$(G));return MV({step:X.step,locals:X.locals,searchAttributes:X.searchAttributes,version:X.version,createdAt:X.createdAt})}async function BI($,U){let j=[];for await(let[,G]of $.storage.scan(F.timelinePrefix(U))){let X;try{X=A(G)}catch{continue}if(qT(X))j.push({...X,inputSummary:AV(X.inputSummary)??X.inputSummary,...X.outputSummary!==void 0?{outputSummary:AV(X.outputSummary)??X.outputSummary}:{}})}return j.sort((G,X)=>G.step-X.step),j}async function zI($,U,j){let G=await $.storage.get(F.checkpointHistory(U,j));if(!G)return null;let J=await new I4($.storage,U).replay(Math.max(j-1,-1)),Q=await Y9($.storage,U,h$(G)),Z=await P0($.storage,U);return{checkpoint:MV({step:Q.step,locals:Q.locals,searchAttributes:Q.searchAttributes,version:Q.version,createdAt:Q.createdAt}),accumulatedResults:Q.accumulatedResults.map(([Y,H])=>[Y,J9(H)]),events:J.map((Y)=>({type:Y.type,timestamp:Y.timestamp,data:qV(Y.payload)})),...Z!==null?{compactedBefore:Z.sequence}:{}}}var PI=V(()=>{h();a4();u();XU();C9();H9();C3();B$();N$()});function KI($,U){let j=0,G=$.length;while(j<G){let X=j+G>>>1;if($[X].timestamp<U)j=X+1;else G=X}return j}class DP{#$;#U;#j;constructor($){this.#$=$,this.#U=[],this.#j=0}record($,U){if(this.#U.push({timestamp:$,failed:U}),U)this.#j++;this.#G($)}rate($){if(this.#G($),this.#U.length===0)return 0;return this.#j/this.#U.length}#G($){let U=$-this.#$,j=KI(this.#U,U);if(j===0)return;for(let G=0;G<j;G++)if(this.#U[G].failed)this.#j--;this.#U.splice(0,j)}}class LP{#$;#U;#j;constructor($){this.#$=$,this.#U=[],this.#j=[]}record($,U){this.#U.push({timestamp:$,value:U}),this.#G(U),this.#J($)}percentile($,U){if(this.#J(U),this.#j.length===0)return 0;let j=Math.ceil($/100*this.#j.length)-1;return this.#j[Math.max(0,j)]??0}#G($){let U=0,j=this.#j.length;while(U<j){let G=U+j>>>1;if(this.#j[G]<$)U=G+1;else j=G}this.#j.splice(U,0,$)}#X($){let U=0,j=this.#j.length;while(U<j){let G=U+j>>>1;if(this.#j[G]<$)U=G+1;else j=G}if(U<this.#j.length&&this.#j[U]===$)this.#j.splice(U,1)}#J($){let U=$-this.#$,j=KI(this.#U,U);if(j===0)return;for(let G=0;G<j;G++)this.#X(this.#U[G].value);this.#U.splice(0,j)}}var $8$=1e4,FP;var NI=V(()=>{H$();E$();FP=class FP{#$;#U;#j;#G;#X;#J;#Q;#Z;#Y;constructor($,U,j=Date.now){this.#$=$,this.#U=U,this.#Z=j,this.#J=0,this.#Q=new Set,this.#X=[],this.#j=[];for(let G of U.rules)this.#j.push({rule:G,status:"idle",currentValue:0});this.#G=new Map;for(let G=0;G<U.rules.length;G++){let X=U.rules[G],J=X.window?b$(X.window):60000;if(X.metric==="workflow.failure_rate")this.#G.set(G,new DP(J));else if(X.metric==="activity.p99_duration")this.#G.set(G,new LP(J))}this.#D(),this.#Y=setInterval(this.#H.bind(this),$8$)}#H(){for(let $=0;$<this.#U.rules.length;$++)this.#L($)}#D(){let $=this.#U.rules.some((G)=>G.metric==="workflow.failure_rate"),U=this.#U.rules.some((G)=>G.metric==="activity.p99_duration");if($){let G=(X)=>{let J=this.#Z();for(let Q=0;Q<this.#U.rules.length;Q++){if(this.#U.rules[Q].metric!=="workflow.failure_rate")continue;this.#G.get(Q).record(J,X),this.#L(Q)}};this.#_("workflow:completed",()=>G(!1));for(let X of["workflow:failed","workflow:timed-out","workflow:cancelled"])this.#_(X,()=>G(!0))}if(U)this.#_("activity:completed",(G)=>{if(!(G instanceof i9))return;let X=this.#Z();for(let J=0;J<this.#U.rules.length;J++){if(this.#U.rules[J].metric!=="activity.p99_duration")continue;this.#G.get(J).record(X,G.duration),this.#L(J)}});if(this.#U.rules.some((G)=>G.metric==="storage.size"))this.#_("storage:size-reported",(G)=>{if(!(G instanceof j2))return;this.#J=G.sizeBytes;for(let X=0;X<this.#U.rules.length;X++){if(this.#U.rules[X].metric!=="storage.size")continue;this.#L(X)}})}#_($,U){this.#X.push({type:$,handler:U}),this.#$.addEventListener($,U)}#L($){let U=this.#U.rules[$],j=this.#j[$],G=this.#Z(),X=0,J=U.threshold;if(U.metric==="workflow.failure_rate")X=this.#G.get($).rate(G);else if(U.metric==="activity.p99_duration")X=this.#G.get($).percentile(99,G);else if(U.metric==="storage.size")X=this.#J;if(j.currentValue=X,X>=J&&j.status==="idle")j.status="firing",j.lastFiredAt=G,this.#$.dispatchEvent(new J2(U.metric,J,X,U.window)),this.#F(U,"alert:fired",X);else if(X<J&&j.status==="firing")j.status="idle",j.lastResolvedAt=G,this.#$.dispatchEvent(new Q2(U.metric,J,X,U.window)),this.#F(U,"alert:resolved",X)}#F($,U,j){if($.action==="log")console.warn(`[weft:alert] ${U}: ${$.metric} = ${j} (threshold: ${$.threshold})`);if($.action==="webhook")this.#W($,U,j)}#W($,U,j){let G=this.#U.webhooks??[];for(let X of G){if(!X.events.includes(U))continue;let J=new AbortController;this.#Q.add(J);let Q={event:U,alert:{metric:$.metric,threshold:$.threshold,currentValue:j,window:$.window,timestamp:this.#Z()}};fetch(X.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Q),signal:AbortSignal.any([J.signal,AbortSignal.timeout(30000)])}).catch(()=>{}).finally(this.#Q.delete.bind(this.#Q,J))}}get states(){return this.#j}[Symbol.dispose](){if(this.#Y!==null)clearInterval(this.#Y),this.#Y=null;for(let{type:$,handler:U}of this.#X)this.#$.removeEventListener($,U);this.#X=[];for(let $ of this.#Q)$.abort();this.#Q.clear()}}});var WP;var MI=V(()=>{WP=class WP{#$;#U;constructor($,U){this.#$=$,this.#U=U?.timeoutMilliseconds??30000}async execute($){let U=await this.#$.acquire(),j=!1;try{return await new Promise((G)=>{let X=!1,J=(D)=>{if(X)return;X=!0,H(),G(D)},Q=(D)=>{if(D.data.operationId===$.operationId)J(D.data)},Z=(D)=>{J({operationId:$.operationId,status:"failed",error:`Activity worker crashed: ${D.message??"unknown error"}`})},Y=setTimeout(()=>{J({operationId:$.operationId,status:"failed",error:`Activity "${$.activityName}" timed out after ${this.#U}ms (operationId: ${$.operationId})`}),j=!0,U.terminate()},this.#U),H=()=>{clearTimeout(Y),U.removeEventListener("message",Q),U.removeEventListener("error",Z)};U.addEventListener("message",Q),U.addEventListener("error",Z),U.postMessage($)})}finally{if(!j)this.#$.release(U)}}get availableCount(){return this.#$.availableCount}get totalCount(){return this.#$.totalCount}get pendingCount(){return this.#$.pendingCount}[Symbol.dispose](){this.#$[Symbol.dispose]()}async[Symbol.asyncDispose](){await this.#$[Symbol.asyncDispose]()}}});var NQ;var qI=V(()=>{NQ=class NQ{#$;#U;#j;#G;#X;#J;#Q;#Z;#Y;constructor($){this.#$=new Set,this.#U=[],this.#j=[],this.#G=new Map,this.#X=$.concurrency,this.#J=$.workerUrl,this.#Q=$.smol??!1,this.#Z=!1,this.#Y=null}async acquire(){if(this.#Z)throw Error("WorkerPool has been disposed");let $=this.#U.pop();if($)return $;if(this.#$.size<this.#X)return this.#H();return new Promise((U,j)=>{this.#j.push({resolve:U,reject:j})})}async acquireSpecificWorker($){if(this.#Z)throw Error("WorkerPool has been disposed");if(!this.#$.has($))throw Error("Worker does not belong to this WorkerPool");let U=this.#U.indexOf($);if(U>=0)return this.#U.splice(U,1),$;return new Promise((j,G)=>{let X=this.#G.get($)??[];X.push({resolve:j,reject:G}),this.#G.set($,X)})}discard($){if(!this.#$.has($))return;this.#$.delete($),this.#_($),this.#L($,Error("Worker was discarded from this WorkerPool")),$.terminate(),this.#W(),this.#V()}release($){if(this.#Z&&!this.#Y)return;let U=this.#G.get($);if(U&&U.length>0){let G=U.shift();if(U.length===0)this.#G.delete($);G.resolve($);return}let j=this.#j.shift();if(j){j.resolve($);return}this.#U.push($),this.#V()}get availableCount(){return this.#U.length}get totalCount(){return this.#$.size}get pendingCount(){let $=0;for(let U of this.#G.values())$+=U.length;return this.#j.length+$}[Symbol.dispose](){if(this.#Z)return;this.#Z=!0,this.#D()}async[Symbol.asyncDispose](){if(this.#Z)return;if(this.#Z=!0,this.#F(Error("WorkerPool has been disposed")),this.#U.length===this.#$.size){this.#D();return}return new Promise(($)=>{this.#Y=()=>{this.#D(),$()}})}#H(){let $={};if(this.#Q)$.smol=!0;let U=new Worker(this.#J,$);return this.#$.add(U),U}#D(){this.#F(Error("WorkerPool has been disposed"));for(let $ of this.#$)$.terminate();this.#$.clear(),this.#U.length=0,this.#j.length=0,this.#G.clear()}#_($){let U=this.#U.indexOf($);if(U>=0)this.#U.splice(U,1)}#L($,U){let j=this.#G.get($);if(!j)return;this.#G.delete($);for(let G of j)G.reject(U)}#F($){let U=this.#j.splice(0);for(let j of U)j.reject($);for(let j of this.#G.values())for(let G of j)G.reject($);this.#G.clear()}#W(){if(this.#Z)return;while(this.#j.length>0){let $=this.#U.shift();if($){this.#j.shift()?.resolve($);continue}if(this.#$.size<this.#X){this.#j.shift()?.resolve(this.#H());continue}return}}#V(){if(this.#Y&&this.#U.length===this.#$.size)this.#Y(),this.#Y=null}}});function AI($,U,j,G){return{workflowId:j.workflowId,workflowType:j.workflowType,startedAt:j.startedAt??$.getNow(),abortController:G,getNow:$.getNow,nestingDepth:j.nestingDepth??0,executionStateOwnerId:j.executionStateOwnerId??j.workflowId,...j.sleepReferenceTime!==void 0&&{sleepReferenceTime:j.sleepReferenceTime},...$.resolveWorkflowType!==void 0&&{resolveWorkflowType:$.resolveWorkflowType},...U.searchAttributes&&{searchAttributeSchema:U.searchAttributes},...j.deadline!==void 0&&{deadline:j.deadline},...U8$($,j.workflowId),services:$.getWorkflowServices?.(j.workflowId),...j8$($)}}function U8$($,U){let{registerCancelHandler:j,recordFinalizerState:G}=$;return{...j!==void 0&&{registerCancelHandler:(X)=>j(U,X)},...G!==void 0&&{recordFinalizerState:(X)=>G(U,X)}}}function j8$($){let U=$.getLogSink?.();return U===void 0?{}:{logSink:U}}function OI($){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 VP;var CI=V(()=>{fJ();l6();VP=class VP{#$;#U;#j;#G;#X;#J;#Q;#Z;constructor($){this.#$=$,this.#U=new Map,this.#j=new Map,this.#G=new Map,this.#X=new Map,this.#J=new Map,this.#Q=new Map,this.#Z=null}onMessage($){this.#Z=$}startWorkflow($){let U=this.#$.getRegistration($.workflowType);if(!U){this.#L({type:"failed",workflowId:$.workflowId,error:`No workflow registered with name "${$.workflowType}"`});return}let j=new AbortController;this.#j.set($.workflowId,j);let G=new K0(AI(this.#$,U,$,j)),X=this.#$.getComposedWorkflowInterceptor?.()??null;if(fU(G,X),this.#$.development)G.explain(!0);this.#G.set($.workflowId,G);let J=U.handler(G,$.input);this.#U.set($.workflowId,J),this.#Y($.workflowId,J,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 j=$.operationResult.status==="completed"?$.operationResult.value:void 0,G=$.operationResult.status==="failed"?$.operationResult.failureCategory:void 0,X=$.operationResult.status==="failed"?X5($.operationResult):void 0;if(X)this.#H($.workflowId,U,X,G);else this.#Y($.workflowId,U,j)}cancelWorkflow($){let U=this.#j.get($);if(U)U.abort();this.#F($)}parkWorkflow($,U){let j=U?.retainContext?this.#G.get($)??this.#X.get($):void 0;if(this.#F($),j!==void 0)this.#X.set($,j)}getContext($){return this.#G.get($)}getParkedContext($){return this.#X.get($)}clearParkedContext($){this.#X.delete($)}getAbortController($){return this.#j.get($)}waitForWorkflowTurn($){return this.#Q.get($)}waitForWorkflowAdvance($){return this.#J.get($)}hasGenerator($){return this.#U.has($)}continueWorkflow($,U){let j=this.#U.get($);if(!j)return;this.#Y($,j,U)}throwIntoWorkflow($,U,j){let G=this.#U.get($);if(!G)return;this.#H($,G,U,j)}adoptWorkflow($,U,j,G){this.#X.delete($),this.#U.set($,U),this.#G.set($,j),this.#j.set($,G)}[Symbol.dispose](){this.#U.clear(),this.#j.clear(),this.#G.clear(),this.#X.clear(),this.#J.clear(),this.#Q.clear(),this.#Z=null}async[Symbol.asyncDispose](){this[Symbol.dispose]()}#Y($,U,j){return this.#D($,(async()=>{try{if(this.#j.get($)?.signal.aborted)return;let X=await U.next(j);if(X.done){this.#F($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0}),this.#L({type:"completed",workflowId:$,result:X.value});return}let J=X.value;this.#L({type:"checkpoint",workflowId:$,checkpoint:new ArrayBuffer(0),operationRequest:J})}catch(G){this.#F($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0});let X={type:"failed",workflowId:$,error:G instanceof Error?G.message:String(G),failureCategory:f8(G,{defaultErrorCategory:"application"})};if(G instanceof Error&&G.stack!==void 0)X.errorStack=G.stack;this.#L(X)}})())}#H($,U,j,G){return this.#D($,(async()=>{try{if(this.#j.get($)?.signal.aborted)return;let J=await U.throw(j);if(J.done){this.#F($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0}),this.#L({type:"completed",workflowId:$,result:J.value});return}let Q=J.value;this.#L({type:"checkpoint",workflowId:$,checkpoint:new ArrayBuffer(0),operationRequest:Q})}catch(X){this.#F($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0});let J={type:"failed",workflowId:$,error:X instanceof Error?X.message:String(X),failureCategory:G??f8(X,{defaultErrorCategory:"application"})};if(X instanceof Error&&X.stack!==void 0)J.errorStack=X.stack;this.#L(J)}})())}#D($,U){let j=U.finally(()=>{if(this.#J.get($)===j)this.#J.delete($)});return j.catch(()=>{}),this.#J.set($,j),j}#_($,U){let j=U.finally(()=>{if(this.#Q.get($)===j)this.#Q.delete($)});return j.catch(()=>{}),this.#Q.set($,j),j}#L($){let U=this.#Z?.($);if(U instanceof Promise){this.#_($.workflowId,U);return}this.#Q.delete($.workflowId)}#F($,U){if(this.#U.delete($),this.#j.delete($),this.#G.delete($),this.#X.delete($),!U?.preserveTrackedAdvance)this.#J.delete($);if(!U?.preserveTrackedTurn)this.#Q.delete($)}}});class BP{#$=new Map;#U=new Map;resetWorkflow($){this.#$.delete($),this.#U.delete($)}clear(){this.#$.clear(),this.#U.clear()}recordResume($){this.#$.set($,(this.#$.get($)??0)+1)}beginCheckpointHandling($){if($.type!=="checkpoint")return null;return this.#U.set($.workflowId,(this.#U.get($.workflowId)??0)+1),this.#$.get($.workflowId)??0}finishCheckpointHandling($,U,j){if(U===null)return;let G=(this.#U.get($)??1)-1;if(G>0){this.#U.set($,G);return}this.#U.delete($),this.forgetWorkflowIfClosed($,j)}wasResumedDuringCheckpointHandling($,U){return U!==null&&(this.#$.get($)??0)>U}forgetWorkflowIfClosed($,U){if(!U||this.#U.has($))return;this.#$.delete($)}}function X8$($){if($===void 0)return!0;if(typeof $!=="object"||$===null)return!1;let U=Object.getPrototypeOf($);return U===Object.prototype||U===null}function MQ($){if(typeof $!=="object"||$===null)return!1;let U=$;return G8$.has(U.level)&&typeof U.message==="string"&&typeof U.workflowId==="string"&&typeof U.workflowType==="string"&&typeof U.timestamp==="number"&&Number.isFinite(U.timestamp)&&X8$(U.attributes)}function RI($){return typeof $==="object"&&$!==null&&$.type==="log"}var G8$;var qQ=V(()=>{G8$=new Set(["debug","info","warn","error"])});function H8$($){let U=0;return M(sU($,[],(G)=>{U+=G})).byteLength+U}function a3($,U){let j=H8$($);if(U!==void 0&&j>U)throw new oU(j,U);return j}function yI($){let U=_8$($);D8$(U),L8$(U)}function _8$($){if(typeof $!=="object"||$===null)throw new t$("Worker outbound message must be an object");return $}function D8$($){if(typeof $.workflowId!=="string")throw new t$("Worker outbound message must include workflowId");bI($,"protocolVersion"),bI($,"turnId")}function bI($,U){if($[U]!==void 0&&!Number.isSafeInteger($[U]))throw new t$(`Worker outbound message ${U} must be an integer`)}function L8$($){switch($.type){case"checkpoint":F8$($);return;case"completed":return;case"failed":W8$($);return;case"log":V8$($);return;default:throw new t$("Worker outbound message has an unsupported type")}}function F8$($){if(!($.checkpoint instanceof ArrayBuffer))throw new t$("Worker checkpoint message must include checkpoint bytes");if(typeof $.operationRequest!=="object"||$.operationRequest===null)throw new t$("Worker checkpoint message must include operationRequest")}function W8$($){if(typeof $.error!=="string")throw new t$("Worker failed message must include an error string")}function V8$($){if(!MQ($.record))throw new t$("Worker log message must include a valid log record")}function sU($,U,j){let G=B8$($,U,j);if(G.handled)return G.value;if(U.includes($))throw new t$("Worker protocol message cannot include cyclic values");if(!Oj($).valid)throw new t$("Worker protocol message contains non-cloneable values");return K8$($,U,j)}function B8$($,U,j){if(typeof $==="function"||typeof $==="symbol")throw new t$("Worker protocol message cannot include functions or symbols");let G=z8$($,j);if(G.handled)return G;let X=P8$($,U,j);if(X.handled)return X;if(Array.isArray($))return{handled:!0,value:$.map((J)=>sU(J,U,j))};if(typeof $!=="object"||$===null)return{handled:!0,value:$};return{handled:!1}}function z8$($,U){if($ instanceof ArrayBuffer)return U($.byteLength),{handled:!0,value:{[TI]:$.byteLength}};if(ArrayBuffer.isView($))return U($.byteLength),{handled:!0,value:{[TI]:$.byteLength}};return{handled:!1}}function P8$($,U,j){if($ instanceof Date)return{handled:!0,value:{[J8$]:$.toISOString()}};if($ instanceof Error)return{handled:!0,value:{[Q8$]:{name:$.name,message:$.message}}};if($ instanceof Map)return{handled:!0,value:{[Z8$]:[...$.entries()].map(([G,X])=>[sU(G,U,j),sU(X,U,j)])}};if($ instanceof Set)return{handled:!0,value:{[Y8$]:[...$.values()].map((G)=>sU(G,U,j))}};return{handled:!1}}function K8$($,U,j){U.push($);try{let G={};for(let X of Object.keys($).toSorted())G[X]=sU($[X],U,j);return G}finally{U.pop()}}var g1=1,EI=1000,SI=1048576,zP=4096,xI=60000,gI=5000,vI=5,TI="__weftBinaryBytes",J8$="__weftDate",Q8$="__weftError",Z8$="__weftMap",Y8$="__weftSet",t$,oU;var A0=V(()=>{u();qQ();t$=class t$ extends Error{constructor($){super($);this.name="WorkerProtocolError"}};oU=class oU extends t${actualBytes;maxBytes;constructor($,U){super(`Worker protocol message is ${$} bytes, exceeding limit ${U}`);this.actualBytes=$;this.maxBytes=U}}});class PP{#$;constructor($){this.#$=$}async acquireAndSend($,U){try{let j=await this.#$.pool.acquire();this.#$.ownership.setActive($,j),this.#$.attachWorkerListeners(j),this.#U(j,$,U,"run")}catch(j){this.#$.emit({type:"failed",workflowId:$,error:j instanceof Error?j.message:String(j)})}}postResumeMessage($,U,j){this.#U($,U.workflowId,j,"resume")}async resumeParkedWorkflow($,U,j){try{let G=await this.#$.pool.acquireSpecificWorker(U);if(this.#$.isDisposed()||!this.#$.ownership.activateParked($.workflowId,G)){this.#$.pool.release(G);return}this.#$.attachWorkerListeners(G),this.postResumeMessage(G,$,j)}catch(G){if(this.#$.isDisposed()||this.#$.ownership.getParkedWorker($.workflowId)!==U)return;this.#$.ownership.deleteParked($.workflowId),this.#$.emit({type:"failed",workflowId:$.workflowId,error:G instanceof Error?G.message:String(G)})}}async cancelParkedWorkflow($,U){try{let j=await this.#$.pool.acquireSpecificWorker(U),G={type:"cancel",workflowId:$};if(this.#$.requireProtocolVersion())G.protocolVersion=g1;j.postMessage(G),this.#$.detachWorkerListenersIfIdle(j),this.#$.pool.release(j)}catch{}}#U($,U,j,G){if(!this.#$.validateHostToWorkerMessage(U,j,$))return;try{this.#$.beginTurn($,U,j.turnId??0,G),$.postMessage(j,[N8$(j.checkpoint)])}catch(X){this.#j($,U,X,G)}}#j($,U,j,G){if(this.#$.clearTurn($),G==="resume"){this.#$.discardWorkerAndFailWorkflows($,{targetWorkflowId:U,targetCategory:"system",targetError:j instanceof Error?j.message:String(j),otherCategory:"system",otherError:"Worker was discarded after resume postMessage failed"});return}this.#$.ownership.forgetWorkflow(U),this.#$.detachWorkerListenersIfIdle($),this.#$.pool.release($),this.#$.emit({type:"failed",workflowId:U,error:j instanceof Error?j.message:String(j),failureCategory:"system"})}}function N8$($){if($ instanceof ArrayBuffer)return $;if($.buffer instanceof ArrayBuffer)return $.buffer;throw Error("Worker checkpoint must use an ArrayBuffer-backed view")}var II=V(()=>{A0()});class KP{#$=new Map;#U=new Map;#j=new Map;#G=new Set;resetWorkflow($){this.#G.delete($)}markCancelled($){this.#G.add($)}consumeCancelled($){return this.#G.delete($)}getActiveWorker($){return this.#$.get($)}getParkedWorker($){return this.#U.get($)}getTargetWorker($){return this.getActiveWorker($)??this.getParkedWorker($)}setActive($,U){this.#$.set($,U),this.#j.set(U,$)}releaseActive($){let U=this.#$.get($);if(!U)return;return this.#$.delete($),this.#j.delete(U),U}parkActive($,U){if(this.#$.get($)!==U)return!1;return this.#$.delete($),this.#j.delete(U),this.#U.set($,U),!0}activateParked($,U){if(this.#U.get($)!==U)return!1;return this.#U.delete($),this.setActive($,U),!0}deleteParked($){this.#U.delete($)}isWorkflowClosed($){return!this.#$.has($)&&!this.#U.has($)}activeWorkflowIds(){return[...this.#$.keys()]}workflowIdsForWorker($){let U=[],j=this.#j.get($);if(j)U.push(j);for(let[G,X]of this.#U)if(X===$)U.push(G);return U}forgetWorkflow($){let U=this.#$.get($);if(U)this.#j.delete(U);this.#$.delete($),this.#U.delete($),this.#G.delete($)}clear(){this.#$.clear(),this.#U.clear(),this.#j.clear(),this.#G.clear()}workerIsIdle($){if(this.#j.has($))return!1;for(let U of this.#U.values())if(U===$)return!1;return!0}}function hI($,U){let j={type:"run",protocolVersion:g1,turnId:U.turnId,workflowId:$.workflowId,workflowType:$.workflowType,checkpoint:$.checkpoint,input:$.input,executionStateOwnerId:$.executionStateOwnerId??$.workflowId};if(U.maxProtocolMessageBytes!==void 0)j.maxProtocolMessageBytes=U.maxProtocolMessageBytes;if($.deadline!==void 0)j.deadline=$.deadline;if($.headers)j.headers=$.headers;if(U.hasLogSink)j.hostHasLogSink=!0;return j}function NP($,U){let j={type:"resume",protocolVersion:g1,turnId:U.turnId,workflowId:$.workflowId,checkpoint:$.checkpoint,operationResult:$.operationResult};if(U.maxProtocolMessageBytes!==void 0)j.maxProtocolMessageBytes=U.maxProtocolMessageBytes;if(U.hasLogSink)j.hostHasLogSink=!0;return j}var mI=V(()=>{A0()});class MP{#$=new Map;attach($,U){if(this.#$.has($))return;let j={message:(G)=>{U.message(G.data)},error:U.error,messageerror:U.messageerror};this.#$.set($,j),$.addEventListener("message",j.message),$.addEventListener("error",j.error),$.addEventListener("messageerror",j.messageerror)}detach($){let U=this.#$.get($);if(!U)return;$.removeEventListener("message",U.message),$.removeEventListener("error",U.error),$.removeEventListener("messageerror",U.messageerror),this.#$.delete($)}detachIfIdle($,U){if(U($))this.detach($)}detachAll(){for(let $ of this.#$.keys())this.detach($)}}function fI($,U){try{let j=$?.(U);if(j instanceof Promise)return j.then(()=>!1,()=>!0);return!1}catch{return!0}}function kI($){let U=$.operationRequest;return U.type==="wait-signal"||U.kind==="signal-wait"}function uI($,U,j){if(j!==void 0)try{a3($,j)}catch(X){return X instanceof oU?"dropped-oversize":"dropped-invalid"}if(!MQ($.record))return"dropped-invalid";let G=$.record;if(G.workflowId!==$.workflowId)return"dropped-invalid";if(U!==void 0)try{U(G)}catch{mJ(G)}return"accepted-valid"}var qP=V(()=>{Zz();qQ();A0()});class cI{#$;#U;#j;#G;#X=new WeakMap;constructor($){this.#$=$.floodWindowMs,this.#U=$.floodThreshold,this.#j=$.strikeThreshold,this.#G=$.getNow}recordArrival($){let U=this.#G(),j=this.#J($),G=U-j.windowStartedAt;if(G>=this.#$||G<0)j.windowStartedAt=U,j.arrivalsInWindow=0;return j.arrivalsInWindow+=1,j.arrivalsInWindow>this.#U?"discard":"tolerate"}recordOutcome($,U){switch(U){case"accepted-valid":return"tolerate";case"dropped-oversize":case"dropped-invalid":{let j=this.#J($);return j.lifetimeStrikes+=1,j.lifetimeStrikes>=this.#j?"discard":"tolerate"}default:throw Error(`Unknown forwarded-log outcome: ${String(U)}`)}}forget($){this.#X.delete($)}#J($){let U=this.#X.get($);if(!U)U={windowStartedAt:this.#G(),arrivalsInWindow:0,lifetimeStrikes:0},this.#X.set($,U);return U}}class pI{#$;#U;#j;constructor($){this.#U=$.onLog,this.#j=$.maxProtocolMessageBytes,this.#$=new cI({floodWindowMs:$.floodWindowMs??xI,floodThreshold:$.floodThreshold??gI,strikeThreshold:$.strikeThreshold??vI,getNow:$.getNow??Date.now})}get hasSink(){return this.#U!==void 0}handle($,U,j){if(this.#$.recordArrival($)==="discard")return wI("forwarded-log flooding");if(typeof U.workflowId!=="string"||!j(U.workflowId))return null;let G=uI(U,this.#U,this.#j);if(this.#$.recordOutcome($,G)==="discard")return wI("repeated oversize/invalid forwarded logs");return null}forget($){this.#$.forget($)}}function wI($){let U=`Worker discarded for log abuse: ${$}`;return{targetCategory:"system",targetError:U,otherCategory:"system",otherError:U}}function dI($,U){return new pI({onLog:$?.onLog,maxProtocolMessageBytes:U,getNow:$?.getNow,floodWindowMs:$?.forwardedLogFloodWindowMs,floodThreshold:$?.forwardedLogFloodThreshold,strikeThreshold:$?.forwardedLogStrikeThreshold})}var lI=V(()=>{qP();A0()});class AP{#$;#U;#j;constructor($,U,j){this.#$=$,this.#U=U,this.#j=j}validateHostToWorkerMessage($){try{return a3($,this.#$),null}catch(U){return iI(U,{otherError:"Worker protocol send failed"})}}acceptWorkerMessage($,U){try{if(yI(U),a3(U,this.#$),this.#U)this.#G($,U);return{accepted:!0,message:U}}catch(j){let G=M8$(U);return{accepted:!1,failure:iI(j,{...G===void 0?{}:{targetWorkflowId:G},otherError:G===void 0?"Worker discarded after protocol violation":`Worker discarded after protocol violation for workflow: ${G}`})}}}#G($,U){if(U.protocolVersion!==g1)throw new t$("Worker protocol version mismatch");let j=this.#j.get($);if(!j)throw new t$("Worker message arrived outside an active turn");if((U.type==="log"?void 0:U.turnId)!==j.turnId||U.workflowId!==j.workflowId)throw new t$("Worker message did not match the active turn")}}function iI($,U){return{...U.targetWorkflowId===void 0?{}:{targetWorkflowId:U.targetWorkflowId},failureCategory:$ instanceof oU?"resource":"system",error:$ instanceof Error?$.message:String($),otherError:U.otherError}}function M8$($){if(typeof $!=="object"||$===null)return;let U=$.workflowId;return typeof U==="string"?U:void 0}var nI=V(()=>{A0()});class OP{#$=new Map;#U;#j;constructor($,U){this.#U=$,this.#j=U}begin($,U,j,G){this.clear($);let X={worker:$,workflowId:U,turnId:j,kind:G,timeout:null};if(this.#U!==void 0)X.timeout=setTimeout(()=>{if(this.#$.get($)===X)this.#j(X)},this.#U);this.#$.set($,X)}clear($){let U=this.#$.get($);if(!U)return;if(U.timeout!==null)clearTimeout(U.timeout);this.#$.delete($)}clearAll(){for(let $ of this.#$.keys())this.clear($)}get($){return this.#$.get($)}}var CP;var rI=V(()=>{II();mI();lI();qP();nI();qQ();A0();CP=class CP{#$;#U;#j;#G;#X;#J;#Q;#Z;#Y;#H;#D;#_;#L;#F;#W;#V;#z;constructor($,U){let{workflowTurnTimeoutMs:j,maxProtocolMessageBytes:G,requireProtocolVersion:X=!1,discardOnCancel:J=!1,broadcastEvents:Q=!1}=U??{};if(this.#$=$,this.#U=new KP,this.#j=new MP,this.#J=new BP,this.#Q=j,this.#Z=G,this.#Y=X,this.#H=J,this.#D=dI(U,G),this.#_=new OP(this.#Q,(Z)=>{this.#S(Z)}),this.#L=new AP(this.#Z,this.#Y,this.#_),this.#F=new PP({pool:this.#$,ownership:this.#U,isDisposed:()=>this.#V,requireProtocolVersion:()=>this.#Y,validateHostToWorkerMessage:(Z,Y,H)=>this.#A(Z,Y,H),attachWorkerListeners:(Z)=>{this.#b(Z)},detachWorkerListenersIfIdle:(Z)=>{this.#q(Z)},beginTurn:(Z,Y,H,D)=>{this.#_.begin(Z,Y,H,D)},clearTurn:(Z)=>{this.#_.clear(Z)},discardWorkerAndFailWorkflows:(Z,Y)=>{this.#B(Z,Y)},emit:(Z)=>{this.#N(Z)}}),this.#W=null,this.#G=null,this.#X=null,this.#V=!1,this.#z=1,Q)try{this.#G=new BroadcastChannel("weft:events"),this.#X=(Z)=>{this.#x(Z.data)},this.#G.addEventListener("message",this.#X)}catch{}}onMessage($){this.#W=$}startWorkflow($){this.#U.resetWorkflow($.workflowId),this.#J.resetWorkflow($.workflowId);let U=hI($,this.#P());if(!this.#A($.workflowId,U))return;this.#F.acquireAndSend($.workflowId,U)}resumeWorkflow($){let U=this.#U.getActiveWorker($.workflowId);if(U){this.#J.recordResume($.workflowId);let G=NP($,this.#P());this.#F.postResumeMessage(U,$,G);return}let j=this.#U.getParkedWorker($.workflowId);if(j){let G=NP($,this.#P());this.#F.resumeParkedWorkflow($,j,G);return}if(this.#U.consumeCancelled($.workflowId))return;if(!this.#V)this.#N({type:"failed",workflowId:$.workflowId,error:`No worker assigned for workflow: ${$.workflowId}`})}#P(){return{turnId:this.#z++,maxProtocolMessageBytes:this.#Z,hasLogSink:this.#D.hasSink}}cancelWorkflow($){let U=this.#U.getActiveWorker($);if(U){if(this.#U.markCancelled($),this.#H){this.#B(U,{targetWorkflowId:$,skipTarget:!0,otherCategory:"system",otherError:`Worker discarded during cancellation of workflow: ${$}`});return}let G={type:"cancel",workflowId:$};if(this.#Y)G.protocolVersion=g1;U.postMessage(G),this.#M($);return}let j=this.#U.getParkedWorker($);if(!j)return;if(this.#U.markCancelled($),this.#U.deleteParked($),this.#H){this.#B(j,{targetWorkflowId:$,skipTarget:!0,otherCategory:"system",otherError:`Worker discarded during cancellation of parked workflow: ${$}`});return}this.#F.cancelParkedWorkflow($,j)}[Symbol.dispose](){this.#K(),this.#$[Symbol.dispose]()}async[Symbol.asyncDispose](){this.#K(),await this.#$[Symbol.asyncDispose]()}#K(){if(this.#V=!0,this.#G){if(this.#X)this.#G.removeEventListener("message",this.#X);this.#G.close()}this.#_.clearAll();let $=this.#U.activeWorkflowIds();for(let U of $)this.#M(U);this.#j.detachAll(),this.#U.clear(),this.#J.clear(),this.#W=null}async#O($,U){if(RI(U)){let J=(Z)=>this.#U.getTargetWorker(Z)===$,Q=this.#D.handle($,U,J);if(Q)this.#B($,Q);return}if(!this.#E($,U))return;this.#_.clear($);let j=this.#J.beginCheckpointHandling(U),G=fI(this.#W,U),X=G instanceof Promise?await G:G;try{if(this.#C($,U))return;if(X)return;this.#R($,U,j)}finally{this.#J.finishCheckpointHandling(U.workflowId,j,this.#U.isWorkflowClosed(U.workflowId))}}#C($,U){if(U.type!=="completed"&&U.type!=="failed")return!1;return this.#U.consumeCancelled(U.workflowId),this.#U.deleteParked(U.workflowId),this.#M(U.workflowId),this.#q($),this.#J.forgetWorkflowIfClosed(U.workflowId,this.#U.isWorkflowClosed(U.workflowId)),!0}#R($,U,j){if(U.type!=="checkpoint"||!kI(U))return;if(this.#J.wasResumedDuringCheckpointHandling(U.workflowId,j))return;if(this.#U.parkActive(U.workflowId,$))this.#$.release($)}#T($,U){this.#B($,{targetCategory:"system",targetError:`Worker crashed: ${U.message??"unknown error"}`,otherCategory:"system",otherError:`Worker crashed: ${U.message??"unknown error"}`})}#M($){let U=this.#U.releaseActive($);if(U)this.#_.clear(U),this.#q(U),this.#$.release(U)}#b($){this.#j.attach($,{message:(U)=>{this.#O($,U).catch(()=>{})},error:(U)=>{this.#T($,U)},messageerror:()=>{this.#B($,{targetCategory:"system",targetError:"Worker messageerror event",otherCategory:"system",otherError:"Worker messageerror event"})}})}#q($){this.#j.detachIfIdle($,(U)=>this.#U.workerIsIdle(U))}#A($,U,j){let G=this.#L.validateHostToWorkerMessage(U);if(!G)return!0;if(j)return this.#B(j,{targetWorkflowId:$,targetCategory:G.failureCategory,targetError:G.error,otherCategory:"system",otherError:`Worker discarded after protocol send failure for workflow: ${$}`}),!1;return this.#N({type:"failed",workflowId:$,error:G.error,failureCategory:G.failureCategory}),!1}#E($,U){let j=this.#L.acceptWorkerMessage($,U);if(j.accepted)return!0;return this.#B($,{...j.failure.targetWorkflowId===void 0?{}:{targetWorkflowId:j.failure.targetWorkflowId},targetCategory:j.failure.failureCategory,targetError:j.failure.error,otherCategory:"system",otherError:j.failure.otherError}),!1}#S($){this.#B($.worker,{targetWorkflowId:$.workflowId,targetCategory:"timeout",targetError:`Worker workflow turn timed out after ${this.#Q}ms`,otherCategory:"timeout",otherError:`Worker discarded after workflow turn timed out: ${$.workflowId}`})}#B($,U){let j=this.#U.workflowIdsForWorker($);if(j.length===0){this.#_.clear($),this.#D.forget($);return}for(let G of j){let X=G===U.targetWorkflowId;if(this.#U.forgetWorkflow(G),this.#J.forgetWorkflowIfClosed(G,!0),X&&U.skipTarget)continue;this.#N({type:"failed",workflowId:G,error:X?U.targetError??U.otherError:U.otherError,failureCategory:X?U.targetCategory??U.otherCategory:U.otherCategory})}this.#_.clear($),this.#D.forget($),this.#j.detach($),this.#$.discard($)}#x($){if($.type==="signal:received"&&typeof $.workflowId==="string"){let U=this.#U.getTargetWorker($.workflowId);if(U)U.postMessage($)}}#N($){let U=this.#W?.($);if(U instanceof Promise)U.catch(()=>{})}}});function tI($){let U=q8$($?.ownership??"none");if(U!=="lease")return{ownershipMode:U,leaseTtlMs:sI,leaseRenewIntervalMs:oI,leaseWaitTimeoutMs:aI};let j=N6($?.leaseTtl,"options.leaseTtl")??sI,G=N6($?.leaseRenewInterval,"options.leaseRenewInterval")??oI,X=N6($?.leaseWaitTimeout,"options.leaseWaitTimeout")??aI;return A8$(j,G,X),{ownershipMode:U,leaseTtlMs:j,leaseRenewIntervalMs:G,leaseWaitTimeoutMs:X}}function q8$($){if($!=="none"&&$!=="lease")throw Error(`Unknown ownership posture "${String($)}". Expected 'none' or 'lease'.`);return $}function A8$($,U,j){if($<=0||U<=0||j<=0)throw Error(`ownership: 'lease' requires positive leaseTtl, leaseRenewInterval, and leaseWaitTimeout (got leaseTtl=${$}ms, leaseRenewInterval=${U}ms, leaseWaitTimeout=${j}ms).`);if(U>=$)throw Error(`ownership: 'lease' requires leaseRenewInterval (${U}ms) to be strictly less than leaseTtl (${$}ms), so a renewal fires before the lease can lapse.`)}var sI=30000,oI=5000,aI=60000;var eI=V(()=>{N$()});function RP($){return Object.entries($??{})}function AQ($,U){return $}function Uh($){return O8$($,{bunEnv:typeof Bun<"u"?Bun.env:void 0,processEnv:typeof process<"u"?process.env:void 0})}function O8$($,U){if(U.bunEnv!==void 0)return U.bunEnv[$];if(U.processEnv!==void 0)return U.processEnv[$];return}function C8$($){return $?.development===!0||Uh("WEFT_DEV_WARNINGS")==="1"||Uh("NODE_ENV")==="development"}function Xh($){let j=$?.storage??void 0;if(j===void 0){if(!$h&&C8$($))$h=!0,console.warn("[weft] Engine started with no `storage` configured \u2014 falling back to MemoryStorage. "+"Workflow state is held only in memory and is lost when the process exits, so a crash or restart discards every in-flight workflow. Pass a durable adapter (e.g. SQLiteStorage) via `new Engine({ storage })` for anything beyond tests and local dev. (This warning appears only in development.)");j=new f9}if(!$?.compression)return j;return new iZ(j,$.compression)}function Jh($){return $?.interceptors?[...$.interceptors]:[]}function TP($,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 R8$($){return{retention:V5($?.retention,"options.retention"),retentionSweepIntervalMs:N6($?.retentionSweepInterval,"options.retentionSweepInterval")??GR,retentionSweepBatchSize:$?.retentionSweepBatchSize!==void 0?Math.max(1,Math.floor($.retentionSweepBatchSize)):XR}}function aU($,U){return $??U}function T8$($){return{development:aU($?.development,!1),broadcastEvents:aU($?.broadcastEvents,!1)}}function b8$($){return{checkpointHistory:aU($?.checkpointHistory,10),checkpointSizeWarningThreshold:aU($?.checkpointSizeWarningThreshold,65536),maxNestingDepth:aU($?.maxNestingDepth,10)}}function E8$($){return{historyPolicy:AT($?.history,"options.history"),archiveAdapter:$?.archive??null,payloadSizePolicy:OT($?.payloadSize,"options.payloadSize")}}function S8$($){let U=aU($?.detectSecondInstance,!1),j=U?N6($?.secondInstanceHeartbeatInterval,"options.secondInstanceHeartbeatInterval")??jh:jh;return{secondInstanceDetectionEnabled:U,secondInstanceHeartbeatIntervalMs:j}}function Qh($,U,j){return{storage:$,getNow:j,resolveWorkflowServices:U?.resolveWorkflowServices??null,onLog:U?.onLog??null,...T8$(U),...b8$(U),...R8$(U),...E8$(U),...S8$(U),...tI(U)}}function x8$($){let U=g8$($?.workflowExecutionMode),j=v8$($,U);if(!j)return{mode:"inline",workerExecution:null};return y8$(j)}function g8$($){if($===void 0||$==="inline"||$==="worker")return $;throw Error('options.workflowExecutionMode must be "inline" or "worker" when provided')}function v8$($,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 y8$($){let U=Gh($.workflowTurnTimeoutMs,"options.workerExecution.workflowTurnTimeoutMs",void 0)??EI,j=Gh($.maxProtocolMessageBytes,"options.workerExecution.maxProtocolMessageBytes",void 0)??SI;if(j<zP)throw Error(`options.workerExecution.maxProtocolMessageBytes must be at least ${zP}`);return{mode:"worker",workerExecution:$,workflowTurnTimeoutMs:U,maxProtocolMessageBytes:j,requireProtocolVersion:!0,discardOnCancel:!0}}function Gh($,U,j){if($===void 0)return j;if(typeof $!=="number"||!Number.isSafeInteger($)||$<=0)throw Error(`${U} must be a positive safe integer when provided`);return $}function Zh($){let{options:U,getNow:j,maxNestingDepth:G,development:X,broadcastEvents:J,getRegistration:Q,getComposedWorkflowInterceptor:Z,resolveWorkflowType:Y,registerCancelHandler:H,recordFinalizerState:D,getWorkflowServices:L,getLogSink:B}=$,z=x8$(U);if(z.mode==="worker"){let q=new NQ({workerUrl:z.workerExecution.workerUrl,concurrency:z.workerExecution.poolSize??4,smol:z.workerExecution.smol??!1}),O=B?.(),g={broadcastEvents:J,requireProtocolVersion:z.requireProtocolVersion,discardOnCancel:z.discardOnCancel,workflowTurnTimeoutMs:z.workflowTurnTimeoutMs,maxProtocolMessageBytes:z.maxProtocolMessageBytes,getNow:j,...O!==void 0&&{onLog:O}};return{strategy:new CP(q,g),inlineStrategy:null}}let K=new VP({getRegistration:Q,getNow:j,maxNestingDepth:G,development:X,resolveWorkflowType:Y,...OI({getComposedWorkflowInterceptor:Z,registerCancelHandler:H,recordFinalizerState:D,getWorkflowServices:L,getLogSink:B})});return{strategy:K,inlineStrategy:K}}function Yh($){if(!$)return null;return new WP(new NQ({workerUrl:$.workerUrl,concurrency:$.poolSize??4,smol:$.smol??!1}))}function Hh($,U,j){return U?new FP($,U,j):null}var $h=!1,jh=15000;var _h=V(()=>{NI();PM();PG();MI();qI();CI();d4();rI();A0();eI();N$()});function Lh(){if(bP!==void 0)return bP;return Bun.env.WEFT_DEV_WARNINGS==="1"||Bun.env.NODE_ENV==="development"}function Fh($){bP=$}function Wh($){EP=$}function Vh(){let $=EP;return EP=void 0,$}function Bh(){return Dh}function zh($){return SP.has($)}function Ph($){SP.delete($)}function Kh(){return Lh()}var bP,Dh=0,EP,SP,OQ;var CQ=V(()=>{SP=new Set,OQ=new FinalizationRegistry(($)=>{if(Dh++,$.cleanupInterval!==null)clearInterval($.cleanupInterval),$.cleanupInterval=null;if($.secondInstanceDetectionInterval!==null)clearInterval($.secondInstanceDetectionInterval),$.secondInstanceDetectionInterval=null;if(!$.disposed&&Lh()){if($.testToken!==void 0)SP.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 Nh($){return typeof $==="function"&&typeof $.name==="string"&&"execute"in $&&typeof $.execute==="function"}function Mh($){let U=G4($);return{processPendingUpdatesAfterInlineAdvance:(j)=>U.processPendingUpdatesAfterInlineAdvance(j),swallowPromiseRejection:(j)=>C6(j)}}function qh($,U){return function(){let G=$.deref();if(G===void 0){U.port1.close(),U.port2.close();return}W(G).queuedInlineWorkflowStartFlushScheduled=!1,C6(h3(W(G),Mh(G)))}}async function Ah($){await Mg(W($),Mh($))}function Oh($,U){return function(){let G=$.deref();if(G===void 0){if(U.cleanupInterval!==null)clearInterval(U.cleanupInterval),U.cleanupInterval=null;return}let X=W(G);xb(X.updateCoordinator,(J,Q)=>V$(G).handleCleanupError(J,Q))()}}function Ch($){return function(){let j=$.deref();if(j===void 0)return null;let G=W(j);if(G.disposed)return null;return G.secondInstanceDetector}}function Rh($){if($.cleanupInterval!==null)clearInterval($.cleanupInterval??void 0),$.cleanupInterval=null;if($.cleanupIntervalDisposalTracker!==null)$.cleanupIntervalDisposalTracker.disposed=!0,$.cleanupIntervalDisposalTracker.cleanupInterval=null,OQ.unregister($.cleanupIntervalDisposalTracker),$.cleanupIntervalDisposalTracker=null}var xP=V(()=>{$3();cU();CQ();M0();S1();o6()});function RQ($){$.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(),qg($),$.scheduler[Symbol.dispose](),$.strategy[Symbol.dispose](),$.activityWorkerDispatcher?.[Symbol.dispose](),$.activityWorkerDispatcher=null,$.inlineStrategy=null,Rh($),$.retentionSweepInterval!==null)clearInterval($.retentionSweepInterval??void 0),$.retentionSweepInterval=null;$.nextRetentionSweepAt=null,I8$($),h8$($),$.handleCache.clear();for(let U of $.resultResolvers.values())U.reject(new z6);$.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 I8$($){if($.secondInstanceDetectionInterval!==null)clearInterval($.secondInstanceDetectionInterval??void 0),$.secondInstanceDetectionInterval=null;if($.secondInstanceDetector!==null)$.secondInstanceDetector.stop(),$.secondInstanceDetector=null}function h8$($){if($.leaseManager!==null)$.leaseManager.stop(),$.leaseManager=null}var Th=V(()=>{xP();P$();M0()});function bh($,U,j){if($.terminalizingWorkflows.has(U)){if($.options.development)console.warn(`[weft] ctx.setFinalizerState() called for workflow "${U}" after it began terminalizing; the value is ignored. Record finalizer state while the workflow is still running.`);return}y4(j,$.options.payloadSizePolicy.maxBytes,"finalizer state"),_0($,U,{conditions:[],operations:[{type:"put",key:F.finalizerState(U),value:M(j)}]})}var Eh=V(()=>{h();u();n6()});function Sh($){let{storage:U,holderId:j,getNow:G,ttlMs:X,renewIntervalMs:J,waitTimeoutMs:Q}=$,Z=$.acquirePollIntervalMs??m8$,Y=J,H=!1,D=null,L=null,B=null,z=null,K=!1,q=null,O=$.delay??((j$)=>new Promise((x$)=>setTimeout(x$,j$)));function g(j$){if(K)return;K=!0,$.onLeaseLost?.(j$)}async function k(){let j$=await U.get(F.leaseHolder()),x$=await U.get(F.leaseEpoch());return{epochRaw:x$,holderRaw:j$,epoch:x$===null?null:jJ(x$),holder:j$===null?null:GJ(j$)}}async function m(j$,x$,T$){let X4=G()+X,m1=LB({holderId:j,expiresAt:X4,epoch:T$}),VG=await z$(U,[{key:F.leaseEpoch(),expectedValue:j$},{key:F.leaseHolder(),expectedValue:x$}],[{type:"put",key:F.leaseEpoch(),value:DB(T$)},{type:"put",key:F.leaseHolder(),value:m1}]);if(VG)D=T$,L=DB(T$),B=m1;return VG}async function p(){let{epochRaw:j$,holderRaw:x$,epoch:T$,holder:X4}=await k();if(j$!==null&&T$===null)throw new N9('the "lease:epoch" high-water mark is present but does not decode to a valid epoch');if(j$===null&&x$!==null)throw new N9('a "lease:holder" record exists with no "lease:epoch" key (the lease protocol never deletes the epoch)');if(X4!==null&&G()<X4.expiresAt)return!1;let m1=(T$??0)+1;if(m1>=Number.MAX_SAFE_INTEGER)throw new N9(`the next ownership epoch (${m1}) is at or above the safe-integer ceiling and cannot be minted without bricking future boots`);return m(j$,x$,m1)}async function d(){let j$=G(),x$=j$+Q,T$=null,X4=!0;for(;;){if(H)return;if(!X4&&G()>=x$)throw new AU(G()-j$,T$);if(X4=!1,await p())return;let J4=await U.get(F.leaseHolder());if(T$=J4===null?null:GJ(J4)?.holderId??null,G()>=x$)throw new AU(G()-j$,T$);await O(Z)}}async function Q$(){if(H||K||D===null||B===null)return;let j$=G()+X,T$=LB({holderId:j,expiresAt:j$,epoch:D}),X4;try{X4=await z$(U,[{key:F.leaseHolder(),expectedValue:B}],[{type:"put",key:F.leaseHolder(),value:T$}])}catch{let J4=GJ(B)?.expiresAt??0;if(G()>=J4-Y)g("renewal-unconfirmable");return}if(X4){B=T$;return}g("deposed")}function q$(){if(q!==null)return;q=Q$().catch(()=>{}).finally(()=>{q=null})}function f4(){if(H||z!==null)return;z=setInterval(()=>{q$()},J),z.unref?.()}function Bj(){return L===null?null:L.slice()}function i(){if(z!==null)clearInterval(z),z=null}async function Z$(){if(H=!0,i(),q!==null)await q;if(B===null)return;try{if(await z$(U,[{key:F.leaseHolder(),expectedValue:B}],[{type:"delete",key:F.leaseHolder()}]))B=null}catch{}}function Y$(){H=!0,i()}return{acquire:d,startRenewal:f4,renewOnce:Q$,currentEpochBytes:Bj,release:Z$,stop:Y$}}var m8$=1000;var xh=V(()=>{h();FB();XJ()});async function gP($){let U=await $.get(uW);if(U!==null){let j=new TextDecoder().decode(U);if(!f8$.test(j))throw new N1(null,o0);let G=Number(j);if(!Number.isSafeInteger(G))throw new N1(null,o0);if(G!==o0)throw new N1(G,o0);return}for(let j of k8$)for await(let G of $.scan(j,{limit:1}))throw new N1(null,o0);await $.put(uW,new TextEncoder().encode(String(o0)))}var f8$,k8$;var gh=V(()=>{wW();f8$=/^(?:0|[1-9]\d*)$/,k8$=["wf:","op:","schedule:","ev:","sig:","upd:","idx:"]});async function vh($,U,j,G){if(j==="activityProgress")return $.heartbeatDetails.get(U);let X=$.inlineStrategy;if(!X)throw Error("Workflow queries are not supported when using the worker execution strategy.");let J=X.getContext(U)??X.getParkedContext(U);if(!J)return;let Q=J.queryHandlers.get(j);if(Q)return Q(G);let Z=J.exposedAccessors.get(j);if(!Z)return;return Z()}function c8$($){return u8$.encode(JSON.stringify($))}async function TQ($){try{await $()}catch{}}function p8$($){let{instanceId:U,heartbeatAt:j,sequence:G}=$;return typeof U==="string"&&U.length>0&&typeof j==="number"&&Number.isFinite(j)&&typeof G==="number"&&Number.isInteger(G)&&G>=0}function d8$($){let U;try{U=JSON.parse(w8$.decode($))}catch{return null}if(typeof U!=="object"||U===null)return null;let j=U;return p8$(j)?j:null}function Ih($){let{storage:U,instanceId:j,getNow:G,intervalMs:X}=$,J=$.warn??((k)=>process.emitWarning(k,l8$)),Q=X*(yh+1),Z=0,Y=!1,H=!1,D=new Map,L=new Set;async function B(){let k=[];for await(let[m,p]of U.scan(F.livenessPrefix())){let d=d8$(p);if(d!==null&&d.instanceId!==j)k.push({key:m,heartbeat:d})}return k}async function z(k,m){let p=m-Q*i8$;for(let d of k)if(d.heartbeat.heartbeatAt<p)await TQ(()=>U.delete(d.key))}function K(k){let m=new Set;for(let{key:p,heartbeat:d}of k){if(F.liveness(d.instanceId)!==p)continue;m.add(d.instanceId);let Q$=D.get(d.instanceId),f4=Q$!==void 0&&d.sequence>Q$.sequence?Q$.advances+1:0;if(D.set(d.instanceId,{sequence:d.sequence,advances:f4}),f4>=yh&&!L.has(d.instanceId))L.add(d.instanceId),J(`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(D.keys()))if(!m.has(p))D.delete(p)}let q=!1;async function O(){if(H||q)return;q=!0;let k=!1;try{let m=G(),p=await B();if(!Y)Y=!0,await z(p,m);if(K(p),H)return;Z+=1;let d={instanceId:j,heartbeatAt:m,sequence:Z};k=!0,await TQ(()=>U.put(F.liveness(j),c8$(d)))}finally{if(q=!1,k&&H)await TQ(()=>U.delete(F.liveness(j)))}}async function g(){H=!0,await TQ(()=>U.delete(F.liveness(j)))}return{tick:O,stop:g}}function hh($,U){return function(){let G=$();if(G===null){if(U.secondInstanceDetectionInterval!==null)clearInterval(U.secondInstanceDetectionInterval),U.secondInstanceDetectionInterval=null;return}G.tick().catch(()=>{})}}var u8$,w8$,l8$="WeftSecondInstanceWarning",i8$=10,yh=2;var mh=V(()=>{h();u8$=new TextEncoder,w8$=new TextDecoder});var fh,kh,uh,S9;var wh=V(()=>{h();kW();W9();a4();$3();tV();E$();d4();z9();gV();NU();e5();AJ();DQ();LI();PI();_h();Th();CQ();xP();P$();A6();Eh();fB();W0();M0();YP();S1();xh();N0();P3();jP();JP();SJ();gh();Pz();_P();dJ();cz();mh();L0();j4();o6();x1();qU();HJ();WQ();oz();NU();P$();W0();XJ();CQ();fh=Symbol("engineParkedWorkflowCountForTesting"),kh=Symbol("engineSignalWaiterCountForTesting"),uh=Symbol("engineSleepResolverCountForTesting");S9=class S9 extends EventTarget{static async create($){let U=new S9($);try{await gP(W(U).storage);for(let[j,G]of RP($.activities)){if(j!==G.name)throw new t0("activity",j,G.name);U.#P(G)}for(let[j,G]of RP($.workflows)){if(j!==G.name)throw new t0("workflow",j,G.name);U.register(G)}if(await U.#$(),$.recover!==!1)await U.recoverAll($.acknowledgeUnknownWorkflowTypes!==void 0?{acknowledgeUnknownWorkflowTypes:$.acknowledgeUnknownWorkflowTypes}:{}),W(U).scheduler.start()}catch(j){throw await U[Symbol.asyncDispose](),j}return U}constructor($){super();bg(this),W(this).registrations=new Map,W(this).workflowTypesByHandler=new WeakMap;let U=Xh($),j=$?.getNow??Date.now,G=Qh(U,$,j),X=Zh({options:$,getNow:j,maxNestingDepth:G.maxNestingDepth,development:G.development,broadcastEvents:G.broadcastEvents,getRegistration:W(this).registrations.get.bind(W(this).registrations),getComposedWorkflowInterceptor:()=>X6(W(this)),resolveWorkflowType:this.#W.bind(this),registerCancelHandler:(H,D)=>v3(W(this),H,D),recordFinalizerState:(H,D)=>bh(W(this),H,D),getWorkflowServices:(H)=>W(this).workflowServices.get(H),getLogSink:()=>G.onLog??void 0});W(this).storage=U,W(this).abortController=new AbortController,W(this).disposed=!1,W(this).handleCache=new Map,W(this).resultResolvers=new Map,W(this).signalWaiters=new Map,W(this).signalWaitersByWorkflow=new Map,W(this).conditionWaiters=new Map,W(this).updateWaiters=new Map,W(this).updateWaitersByWorkflow=new Map,W(this).sleepResolvers=new Map,W(this).sleepResolversByWorkflow=new Map,W(this).interceptors=Jh($),W(this).composedWorkflowInterceptor=void 0,W(this).composedActivityInterceptor=void 0,W(this).updateCoordinator=new eV(U),W(this).activityRegistry=new b8,W(this).activityRegistriesByWorkflow=new Map,W(this).workflowDefinitionsByName=new Map,W(this).workflowTypeByWorkflowId=new Map,W(this).activityWorkerDispatcher=null,W(this).checkpoints=new Map,W(this).broadcastChannel=null,W(this).pendingNestingDepth=void 0,W(this).pendingParentHeaders=void 0,W(this).pendingExecutionStateOwnerId=void 0,W(this).workflowNestingDepths=new Map,W(this).workflowHeaders=new Map,W(this).workflowStateWriteChains=new Map,W(this).finalizationRegistry=new FinalizationRegistry(Sb(W(this).handleCache)),W(this).options=G,W(this).scheduler=new nX({storage:U,onTimerFired:(H)=>dB(W(this),H,this.#F()),getNow:j,commitTimerCleanup:(H)=>R$(W(this),H,[],()=>Error("Timer cleanup lost its fenced CAS race"))}),W(this).strategy=X.strategy,W(this).inlineStrategy=X.inlineStrategy,W(this).queuedInlineWorkflowStarts=[],W(this).queuedInlineWorkflowStartIds=new Set,W(this).queuedOrLaunchingInlineWorkflowStartIds=new Set,W(this).queuedInlineWorkflowStartFlushScheduled=!1;let J=new WeakRef(this),Q=X.inlineStrategy!==null?new MessageChannel:null;if(W(this).queuedInlineWorkflowStartChannel=Q,Q!==null)Q.port1.onmessage=qh(J,Q);W(this).heartbeatDetails=new Map,W(this).lastHeartbeatDetailsByStep=new Map,W(this).workflowServices=new Map,W(this).pendingAsyncActivities=new Map,W(this).pendingAsyncActivityResolutions=new Map,W(this).pendingStarts=new Set,W(this).pendingScheduleCreations=new Set,W(this).workflowsNeedingTerminalCleanup=new Set,W(this).reviewCoordinator=new aV(U,j),W(this).reviewWaiters=new Map,W(this).reviewWaitersByWorkflow=new Map,W(this).reviewEscalationHandlers=new Map,W(this).workflowReviewIds=new Map,W(this).parkedInlineWorkflows=new Set,W(this).terminalizingWorkflows=new Set,W(this).deliveredPendingUpdateIds=new Map,W(this).cancelHandlersByWorkflow=new Map,W(this).reviewTimerIds=new Map,W(this).pendingWebhooks=new Set,W(this).pendingTimelineEntries=new Map,W(this).pendingAtomicWorkflowCommitSideEffects=new Map,W(this).cleanupIntervalDisposalTracker=null;let Z={disposed:!1,cleanupInterval:null,secondInstanceDetectionInterval:null,testToken:Vh()},Y=setInterval(Oh(J,Z),60000);Z.cleanupInterval=Y,W(this).cleanupInterval=Y,W(this).cleanupIntervalDisposalTracker=Z,OQ.register(this,Z,Z),W(this).retentionSweepInterval=null,W(this).retentionSweepInFlight=null,W(this).nextRetentionSweepAt=null,W(this).secondInstanceDetectionInterval=null,W(this).secondInstanceDetector=null,W(this).leaseManager=null,W(this).inFlightLeaseAcquire=null,W(this).deposed=!1,W(this).tearDownAfterDeposition=()=>{this.#U()},W(this).eventLogHeads=new Map,W(this).workflowFeedListeners=new Map,W(this).workflowVersionTuples=new Map,W(this).workflowVisibilityWatermark=void 0,W(this).workflowVisibilityWatermarkExpiresAt=void 0,W(this).activityWorkerDispatcher=Yh($?.activityExecution),W(this).strategy.onMessage(this.#V.bind(this)),W(this).alertManager=Hh(this,$?.alerts,j),this.#J(),this.#j()}addEventListener($,U,j){super.addEventListener($,U,j)}removeEventListener($,U,j){super.removeEventListener($,U,j)}async#$(){let $=W(this);if($.options.ownershipMode!=="lease")return;if($.disposed)throw new z6;if($.inFlightLeaseAcquire!==null){await $.inFlightLeaseAcquire;return}if($.leaseManager!==null)return;O$($.storage,"conditionalBatch","ownership: 'lease'");let U=Sh({storage:$.storage,holderId:crypto.randomUUID(),getNow:$.options.getNow,ttlMs:$.options.leaseTtlMs,renewIntervalMs:$.options.leaseRenewIntervalMs,waitTimeoutMs:$.options.leaseWaitTimeoutMs,onLeaseLost:(G)=>{if(G==="deposed"){Y3($);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.",WB)}});$.leaseManager=U;let j=(async()=>{try{await U.acquire()}catch(G){if($.leaseManager===U)$.leaseManager=null;throw G}if($.disposed){if(await U.release(),$.leaseManager===U)$.leaseManager=null;throw new z6}U.startRenewal()})();$.inFlightLeaseAcquire=j;try{await j}finally{if($.inFlightLeaseAcquire===j)$.inFlightLeaseAcquire=null}}#U(){let $=W(this);if($.disposed)return;let U=$.leaseManager;RQ($),U?.release().catch(()=>{})}#j(){let $=W(this);if(!$.options.secondInstanceDetectionEnabled)return;let U=Ih({storage:$.storage,instanceId:crypto.randomUUID(),getNow:$.options.getNow,intervalMs:$.options.secondInstanceHeartbeatIntervalMs});$.secondInstanceDetector=U;let j=$.cleanupIntervalDisposalTracker;if(j===null)return;let G=new WeakRef(this),X=setInterval(hh(Ch(G),j),$.options.secondInstanceHeartbeatIntervalMs);$.secondInstanceDetectionInterval=X,j.secondInstanceDetectionInterval=X}#G(){return BQ(W(this))}#X(){zQ(W(this))}#J(){PQ(W(this),{hasConfiguredRetention:()=>this.#G(),runRetentionSweep:()=>this.#Q(),setNextRetentionSweepAt:()=>this.#X()})}async#Q(){return KQ(W(this),($,U)=>this.#Y().handleCleanupError($,U),($)=>s6(W(this),$,this.#Y()))}#Z(){return G4(this)}#Y(){return V$(this)}#H(){return oJ(this)}#D(){return t6(this)}#_(){return o3(this)}#L(){return iU(this)}#F(){return HQ(this)}#W($){return cJ(W(this),$,this.#H())}get state(){let $=W(this).storage;return{execution:(U,j,G)=>new FU($,F.stateExecution(U,j),G),workflow:(U,j,G)=>new FU($,F.stateWorkflow(U,j),G)}}async#V($){return _I(W(this),$,this.#_())}#z($){return F0(W(this),$,this.#D())}register($){if(Nh($))return this.#P($),AQ(this);return vg(W(this),$,this.#H()),AQ(this)}registerWorkflows($){for(let[U,j]of Object.entries($)){if(U!==j.name)throw new t0("workflow",U,j.name);this.register(j)}return AQ(this)}addInterceptor($){W(this).interceptors.push($),W(this).composedWorkflowInterceptor=void 0,W(this).composedActivityInterceptor=void 0}#P($){W(this).activityRegistry.register($.name,$)}resolveRegisteredActivity($){return W(this).activityRegistry.resolve($)}registerActivityFunction($,U,j){W(this).activityRegistry.register($,U,j)}unregisterRegisteredActivity($){W(this).activityRegistry.unregister($)}getWorkflowDefinition($){let U=W(this).registrations.get($);return U===void 0?void 0:TP($,U)}listWorkflowDefinitions(){return[...W(this).registrations.entries()].map(([$,U])=>TP($,U))}getActivityDefinition($){return W(this).activityRegistry.getDefinition($)}listActivityDefinitions(){return W(this).activityRegistry.listDefinitions()}async start($,U,j){if(D3(W(this)),j?.idempotencyKey!==void 0)return Xz(W(this),$,U,j,this.#Z());return U6(W(this),$,U,j,void 0,this.#Z())}async startOrSignal($,U,j,G){return D3(W(this)),Jz(W(this),$,U,j,G,this.#K())}#K(){return{...this.#Z(),signalExistingWorkflow:($,U,j,G)=>this.signal($,U,j,{signalId:G})}}getHandle($){let U=W(this).handleCache.get($);if(U){let j=U.ref.deref();if(j)return j}return OJ(W(this),$)}async list($,U){return LS(W(this),$,U)}async aggregate($,U){return oT(W(this),$,U)}getRetentionOverview(){return DI(W(this),($)=>HP(W(this),$))}async purge($){return gS(W(this),$,(U)=>s6(W(this),U,this.#Y()))}async cancelAll($,U){return vS(W(this),$,U)}async retryFailedAll($,U){return yS(W(this),$,U)}async signalAll($,U,j,G){if(G===void 0)return hB(W(this),$,U,j);return hB(W(this),$,U,j,G)}async deleteAll($,U){return IS(W(this),$,(j)=>s6(W(this),j,this.#Y()),U)}async tagAll($,U,j){return hS(W(this),$,U,j)}async untagAll($,U,j){return mS(W(this),$,U,j)}async schedule($,U,j,G){if(typeof $==="object"){let X=$,J=typeof X.workflow==="string"?X.workflow:X.workflow.name,Q=X.every!==void 0?{every:X.every}:{cron:X.cron??""};return wz(W(this),J,X.input,Q,{...X.id!==void 0&&{id:X.id},...X.overlapPolicy!==void 0&&{overlap:X.overlapPolicy},...X.backfill!==void 0&&{backfill:X.backfill},...X.jitter!==void 0&&{jitter:X.jitter}})}if(j===void 0)throw Error("A cron string or schedule spec must be provided when scheduling by workflow type.");return wz(W(this),$,U,j,G)}async getSchedule($){let U=B0($,"scheduleId"),j=await A9(W(this),U);return j?Av(j):null}async listSchedules($){return Mv(W(this),$)}async pauseSchedule($){return Ov(W(this),$)}async resumeSchedule($){return Cv(W(this),$)}async cancelSchedule($){return Rv(W(this),$)}async updateSchedule($,U){return Tv(W(this),$,U)}[L3]($){return kS(W(this),$)}[fh](){return W(this).parkedInlineWorkflows.size}[kh](){return W(this).signalWaiters.size}[uh](){return W(this).sleepResolvers.size}async signal($,U,j,G){return OE(W(this),$,g4(U),j,{loadWorkflowState:(X)=>J$(W(this),X),dispatchEvent:(X)=>this.dispatchEvent(X),broadcast:(X)=>this.#z(X),getComposedInterceptor:()=>X6(W(this)),resumeParkedInlineWorkflow:(X)=>C6(VQ(W(this),X,this.#_()))},G)}async update($,U,j,G){return EE(W(this),$,g4(U),j,G,this.#L())}async query($,U,j){return vh(W(this),$,g4(U),j)}async getStreamChunks($,U,j){return cy(W(this),$,U,j)}async getOffload($,U){return gy(W(this),$,U)}async fork($,U){return D3(W(this)),Vz(W(this),$,U,this.#Z())}async resume($){return D3(W(this)),uJ(W(this),$,this.#Z())}async recoverAll($){if(await this.#$(),W(this).disposed)throw new z6;return await fb(W(this)),await qv(W(this)),Wz(W(this),this.#Z(),$)}async completeAsyncActivity($,U){await wb(W(this),$,U,{feedOperationResult:(j,G)=>G6(W(this),j,G),finalizeTimeline:(j,G,X)=>R6(W(this),j,G,X)})}async failAsyncActivity($,U){await pb(W(this),$,U,{feedOperationResult:(j,G,X)=>G6(W(this),j,G,X),finalizeTimeline:(j,G,X)=>R6(W(this),j,G,X)})}async cancel($){await Az(W(this),$,this.#Y())}async suspend($){await gz(W(this),$,this.#Y())}async timeout($){await Oz(W(this),$,this.#Y())}async get($){let U=await J$(W(this),$);if(U?.status==="running"&&Ag(W(this),$))return{...U,status:"pending"};return U}async getCurrentCheckpointStep($){let U=W(this).checkpoints.get($);if(U!==void 0)return U.step;let j=await W(this).storage.get(F.checkpoint($));if(j===null)return null;return h$(j).step}async getAttributes($){return zS(W(this),$)}async setAttributes($,U){return PS(W(this),$,U)}async addTags($,...U){return KS(W(this),$,...U)}async removeTags($,...U){return NS(W(this),$,...U)}async getEvents($){return FI(W(this),$)}async*replayWorkflowFeed($,U,j){yield*ky(W(this),$,U,j)}async snapshotWorkflowFeedTail($,U){return uy(W(this),$,U)}subscribeWorkflowFeedCommits($,U,j){return wy(W(this),$,U,j)}async listCheckpoints($){return WI(W(this),$)}async getCheckpointAt($,U){return VI(W(this),$,U)}async getTimeline($){return BI(W(this),$)}async replayTo($,U){return zI(W(this),$,U)}async listReviews($){return cg(W(this),$)}async getReview($,U){return pg(W(this),$,U)}async submitReview($,U){return dg(W(this),$,U,{dispatchEvent:this.dispatchEvent.bind(this)})}async getUpdateResult($){return SE(W(this),$)}async submitCoordinatedUpdate($,U,j,G){return xE(W(this),$,U,j,G,this.#L())}[Symbol.dispose](){let $=W(this).leaseManager;RQ(W(this)),$?.release()}async[Symbol.asyncDispose](){if(!W(this).disposed){let $=W(this).leaseManager;try{await Ah(this)}finally{RQ(W(this)),await W(this).inFlightLeaseAcquire?.catch(()=>{}),await $?.release()}return}this[Symbol.dispose]()}get storage(){return W(this).storage}get scheduler(){return W(this).scheduler}async fireTimer($){await dB(W(this),$,this.#F())}}});var vP={};m$(vP,{shouldEmitEngineLeakWarningForTesting:()=>Kh,setNextEngineLeakWarningTokenForTesting:()=>Wh,setEngineLeakWarningOverrideForTesting:()=>Fh,hasEngineLeakWarningTokenForTesting:()=>zh,getEngineLeakCollectionCountForTesting:()=>Bh,clearEngineLeakWarningTokenForTesting:()=>Ph,assertCompatiblePersistedDataVersion:()=>gP,WorkflowTypeNotRegisteredForRecoveryError:()=>a0,WorkflowTeardownPendingError:()=>E8,WorkflowSuspendNotSupportedError:()=>e0,WorkflowNotRegisteredError:()=>v4,WorkflowNotFoundError:()=>p6,WorkflowHandle:()=>F3,WorkflowConcurrencyLimitExceededError:()=>S8,WorkflowAlreadyExistsError:()=>r$,StartOrSignalConflictError:()=>$9,ScheduleHandle:()=>d3,PersistedDataIncompatibleError:()=>N1,IdempotencyKeyPurgedError:()=>l4,HANDLE_RESULT_PROMISE:()=>L3,EngineLeaseNotHeldError:()=>H3,EngineLeaseCorruptedError:()=>N9,EngineLeaseAcquisitionTimeoutError:()=>AU,EngineDisposedError:()=>z6,EngineCreateNameMismatchError:()=>t0,Engine:()=>S9,ENGINE_SLEEP_RESOLVER_COUNT_FOR_TESTING:()=>uh,ENGINE_SIGNAL_WAITER_COUNT_FOR_TESTING:()=>kh,ENGINE_PARKED_WORKFLOW_COUNT_FOR_TESTING:()=>fh,ENGINE_LEASE_LOST_WARNING_NAME:()=>WB,BulkOperationConfirmationError:()=>F4,BulkDeleteRequiresTerminalWorkflowsError:()=>M1,AsyncActivityTokenNotFoundError:()=>KU,ActivityResolutionError:()=>x8,ActivityReconciliationIndeterminateError:()=>J6,ActivityReconciliationConflictError:()=>UQ,ActivityReconciliationCapabilityError:()=>$Q});var Q6=V(()=>{wh()});var RZ;var YN=V(()=>{RZ={fragmentationVacuumPercent:20,walSizeWarningBytes:104857600,databaseSizeWarningFraction:0.8,databaseSizeCriticalFraction:0.95,longRunningWorkflowMilliseconds:604800000,largeCheckpointBytes:524288,defaultDatabaseSizeLimitBytes:10737418240}});function c_$({database:$}){if($.integrityOk)return[];return[{severity:"critical",section:"database",message:`Database integrity check failed: ${$.integrityError}`}]}function p_$({database:$,thresholds:U}){if($.sizeLimitBytes<=0)return[];let j=$.sizeBytes/$.sizeLimitBytes,G=`Database is at ${(j*100).toFixed(1)}% capacity (${TZ($.sizeBytes)} / ${TZ($.sizeLimitBytes)}).`;if(j>U.databaseSizeCriticalFraction)return[{severity:"critical",section:"database",message:G}];if(j>U.databaseSizeWarningFraction)return[{severity:"warning",section:"database",message:G}];return[]}function d_$({database:$,thresholds:U}){if($.walSizeBytes===null||$.walSizeBytes<=U.walSizeWarningBytes)return[];return[{severity:"warning",section:"database",message:`WAL file is ${TZ($.walSizeBytes)}, which may indicate stalled checkpointing.`}]}function l_$({database:$,thresholds:U}){if($.fragmentationPercent<=U.fragmentationVacuumPercent)return[];return[{severity:"warning",section:"database",message:`Database fragmentation is ${$.fragmentationPercent.toFixed(1)}%. Running VACUUM is recommended.`}]}function i_$({workflows:$,thresholds:U}){let j=$.longestRunning;if(!j||j.elapsedMilliseconds<=U.longRunningWorkflowMilliseconds)return[];return[{severity:"warning",section:"workflows",message:`Workflow "${j.id}" has been running for ${o_$(j.elapsedMilliseconds)}. Consider setting an executionTimeout to prevent runaway workflows.`}]}function n_$({workflows:$,thresholds:U}){let j=$.largestCheckpoint;if(!j||j.sizeBytes<=U.largeCheckpointBytes)return[];return[{severity:"warning",section:"workflows",message:`Workflow "${j.workflowId}" has a ${TZ(j.sizeBytes)} checkpoint. Consider reducing state size to improve serialization performance.`}]}function r_$({queues:$}){let U=[];for(let j of $)if(j.pendingCount>0&&j.inflightCount===0)U.push({severity:"warning",section:"activities",message:`Queue "${j.name}" has ${j.pendingCount} pending operation(s) but nothing in-flight. Workers may be stopped or disconnected.`});return U}function oc($,U){let j={database:$.database,workflows:$.workflows,queues:$.queues,thresholds:{...RZ,...U}};return s_$.flatMap((G)=>G(j))}function TZ($){if($<1024)return`${$} B`;if($<1048576)return`${($/1024).toFixed(1)} KB`;if($<1073741824)return`${($/1048576).toFixed(1)} MB`;return`${($/1073741824).toFixed(1)} GB`}function o_$($){let U=Math.floor($/1000),j=Math.floor(U/60),G=Math.floor(j/60),X=Math.floor(G/24);if(X>0)return`${X}d ${G%24}h`;if(G>0)return`${G}h ${j%60}m`;if(j>0)return`${j}m ${U%60}s`;return`${U}s`}var s_$;var ac=V(()=>{YN();s_$=[c_$,p_$,d_$,l_$,i_$,n_$,r_$]});var ec={};m$(ec,{collectDiagnostics:()=>a_$});async function a_$($,U,j){let G=j?.now??Date.now(),X=j?.sizeLimitBytes??RZ.defaultDatabaseSizeLimitBytes,[J,Q,Z]=await Promise.all([$D$($,U,X),JD$($,G),QD$($)]),Y=oc({database:J,workflows:Q,queues:Z});return{timestamp:G,databasePath:U,database:J,workflows:Q,queues:Z,recommendations:Y}}function HN($,U){let j=$[0]?.[U];return typeof j==="number"?j:0}function tc($,U,j){let G=$[0]?.[U];return typeof G==="string"?G:j}async function t_$($){let[U,j,G,X,J]=await Promise.all([$("PRAGMA page_count"),$("PRAGMA page_size"),$("PRAGMA freelist_count"),$("PRAGMA integrity_check"),$("PRAGMA journal_mode")]);return{pageCount:HN(U,"page_count"),pageSize:HN(j,"page_size"),freelistCount:HN(G,"freelist_count"),integrityResult:tc(X,"integrity_check","ok"),journalMode:tc(J,"journal_mode","unknown")}}function e_$($){if($===":memory:")return{sizeBytes:0,walSizeBytes:null};let U=cZ($+"-wal");return{sizeBytes:cZ($),walSizeBytes:U>0?U:null}}async function $D$($,U,j){if(typeof $.query!=="function")return{sizeBytes:0,sizeLimitBytes:j,walSizeBytes:null,integrityOk:!0,integrityError:null,fragmentationPercent:0,journalMode:"unknown",pageCount:0,pageSize:0,freelistCount:0};let G=await t_$($.query.bind($)),{sizeBytes:X,walSizeBytes:J}=e_$(U),Q=G.integrityResult==="ok",Z=G.pageCount>0?G.freelistCount/G.pageCount*100:0;return{sizeBytes:X,sizeLimitBytes:j,walSizeBytes:J,integrityOk:Q,integrityError:Q?null:G.integrityResult,fragmentationPercent:Z,journalMode:G.journalMode,pageCount:G.pageCount,pageSize:G.pageSize,freelistCount:G.freelistCount}}function UD$($){return $==="timed-out"?"timedOut":$}async function jD$($,U){let j={pending:0,running:0,completed:0,failed:0,cancelled:0,timedOut:0,suspended:0},G=0,X=null,J=1/0;for await(let[Q,Z]of $.scan("wf:")){if(!R1(Q))continue;let Y=U$(Z);if(G++,j[UD$(Y.status)]++,Y.status==="running"&&Y.createdAt<J)J=Y.createdAt,X={id:Y.id,type:Y.type,startedAt:Y.createdAt,elapsedMilliseconds:U-Y.createdAt,currentStep:0}}return{total:G,statusCounts:j,longestRunning:X}}async function GD$($,U){let j=await $.get(F.checkpoint(U.id));if(!j)return;let G=A(j);U.currentStep=G.step}async function XD$($){let U=null,j=0;for await(let[G,X]of $.scan("wf:")){let J=G.indexOf(":ckpt");if(J===-1)continue;if(G.length>J+5)continue;if(X.byteLength>j)j=X.byteLength,U={workflowId:G.slice(3,J),sizeBytes:X.byteLength}}return U}async function JD$($,U){let{total:j,statusCounts:G,longestRunning:X}=await jD$($,U);if(X)await GD$($,X);let J=await XD$($);return{total:j,statusCounts:G,longestRunning:X,largestCheckpoint:J}}async function QD$($){let U=new Map;for await(let[j]of $.scan("op:")){if(j.startsWith("op:inflight:"))continue;if(j.startsWith("op:queued:"))continue;if(j.startsWith("op:resolved:"))continue;if(j.startsWith(F.operationResolvedByTimePrefix()))continue;let X=j.split(":")[1]??"";if(!U.has(X))U.set(X,{pending:0,inflight:0});U.get(X).pending++}for await(let[,j]of $.scan("op:inflight:")){let X=A(j).queue;if(!U.has(X))U.set(X,{pending:0,inflight:0});U.get(X).inflight++}return[...U.entries()].map(([j,G])=>({name:j,pendingCount:G.pending,inflightCount:G.inflight}))}var $p=V(()=>{u();N$();D9();L6();h();ac();YN()});var DN={};m$(DN,{formatVersionCheckReport:()=>FD$,formatDuration:()=>Up,formatDiagnosticReport:()=>LD$,formatBytes:()=>ZG});function ZG($){if($===0)return"0 B";if($<1024)return`${$} B`;if($<1048576)return`${($/1024).toFixed(1)} KB`;if($<1073741824)return`${($/1048576).toFixed(1)} MB`;return`${($/1073741824).toFixed(1)} GB`}function Up($){if($<1000)return`${$}ms`;if($<60000)return`${Math.round($/1000)} seconds`;if($<3600000)return`${Math.round($/60000)} minutes`;if($<86400000){let G=Math.floor($/3600000),X=Math.round($%3600000/60000);if(X>0)return`${G} hours ${X} minutes`;return`${G} hours`}let U=Math.floor($/86400000),j=Math.round($%86400000/3600000);if(j>0)return`${U} days ${j} hours`;return`${U} days`}function ZD$($,U){$.push(Hj.bold("Database:")),$.push(` Size: ${ZG(U.sizeBytes)} (of ${ZG(U.sizeLimitBytes)})`),$.push(` WAL size: ${U.walSizeBytes!==null?ZG(U.walSizeBytes):"N/A"}`),$.push(` Integrity: ${U.integrityOk?"OK":`FAILED: ${U.integrityError}`}`),$.push(` Fragmentation: ${U.fragmentationPercent}%`)}function YD$($,U){if($.push(""),$.push(Hj.bold("Workflows:")),U.total===0){$.push(" Total: 0 (no workflows)");return}let j=U.statusCounts,G=j.suspended>0?`, ${j.suspended} suspended`:"";if($.push(` Total: ${U.total} (${j.running} running, ${j.completed} completed, ${j.failed} failed${G})`),U.longestRunning){let X=U.longestRunning;$.push(` Longest running: ${X.id} (started ${Up(X.elapsedMilliseconds)} ago, step ${X.currentStep})`)}if(U.largestCheckpoint){let X=U.largestCheckpoint;$.push(` Largest checkpoint: ${X.workflowId} (${ZG(X.sizeBytes)})`)}}function HD$($,U){if($.push(""),$.push(Hj.bold("Activities:")),U.length===0){$.push(" No activity queues");return}for(let j of U)$.push(` Queue "${j.name}": ${j.pendingCount} pending, ${j.inflightCount} in-flight`)}function _D$($){return $==="critical"?"!!":"!"}function DD$($,U){if($.push(""),$.push(Hj.bold("Recommendations:")),U.length===0){$.push(" No issues found.");return}for(let j of U)$.push(` ${_D$(j.severity)} ${j.message}`)}function LD$($){let U=[];return ZD$(U,$.database),YD$(U,$.workflows),HD$(U,$.queues),DD$(U,$.recommendations),U.join(`
|
|
54
|
+
${j.callerStack}`;let J=G instanceof Error?G.message:String(G);X.finalizePendingTimelineEntry(U,"failed",J),X.feedOperationResult(U,{status:"failed",error:J,...G instanceof Error?{errorName:G.name}:{},failureCategory:f8(G,{defaultErrorCategory:"application"})},{value:G})}async function wv($,U,j,G,X){try{let J=await G();l3($,U,J,X)}catch(J){i3($,U,j,J,X)}}async function cv($,U,j,G,X){try{await G()}catch(J){i3($,U,j,J,X)}}var tJ=V(()=>{l6()});async function dv($,U,j,G){return G.runOperationWithResult(U,j,()=>lz($,U,j,dz($,U),G))}function dz($,U){let j=pU$($,U);if(j+1>$.options.maxNestingDepth)throw Error(`Child workflow nesting depth exceeded: ${j+1} exceeds maximum of ${$.options.maxNestingDepth}. Configure maxNestingDepth in engine options to increase the limit.`);return j}function pU$($,U){return $.inlineStrategy?.getContext(U)?.nestingDepth??$.workflowNestingDepths.get(U)??0}function dU$($,U){$.pendingNestingDepth=U.pendingNestingDepth,$.pendingParentHeaders=U.pendingParentHeaders,$.pendingExecutionStateOwnerId=U.pendingExecutionStateOwnerId}function lU$($,U){if($.pendingNestingDepth===U.pendingNestingDepth)$.pendingNestingDepth=void 0;if($.pendingParentHeaders===U.pendingParentHeaders)$.pendingParentHeaders=void 0;if($.pendingExecutionStateOwnerId===U.pendingExecutionStateOwnerId)$.pendingExecutionStateOwnerId=void 0}function iU$($,U,j){return $.type===U.workflowType&&IT($.input,U.input)&&$.executionStateOwnerId===j}async function nU$($,U,j,G,X){let J=await X.loadWorkflowState($);if(!J)throw G;if(!iU$(J,U,j))throw Error(`Child workflow id collision for "${$}" does not match the requested child workflow`,{cause:G});return X.getHandle($)}async function rU$($,U,j,G,X){aX(j.options,"ctx.startChild"),dU$($,G);try{return await X.start(j.workflowType,j.input,{id:U})}catch(J){if(!(J instanceof r$))throw J;return nU$(U,j,G.pendingExecutionStateOwnerId??void 0,J,X)}finally{lU$($,G)}}async function lz($,U,j,G,X){let J=j.options?.id,Q=typeof J==="string"?J:crypto.randomUUID(),Z=$.workflowHeaders.get(U)??new Map,Y=await X.loadWorkflowState(U),H=sU$(j),D=H==="abandon"?null:Y?.executionStateOwnerId??U,L=async()=>{let z={pendingNestingDepth:G+1,pendingParentHeaders:$.workflowHeaders.get(U),pendingExecutionStateOwnerId:D},K=await rU$($,Q,j,z,X);if(H==="abandon")return pv(K.id);if(H==="request-cancel")return _0($,U,{conditions:[],operations:Vg($,U,K.id)}),_z($,U,K.id,X),pv(K.id);return K.result()},B=X.getComposedWorkflowInterceptor();if(!B)return L();return B.childWorkflow({workflowId:U,childWorkflowId:Q,workflowType:j.workflowType,input:j.input,headers:new Map,parentHeaders:Z},L)}function sU$($){return $.options?.parentClosePolicy??"await"}function pv($){return{id:$}}var iz=V(()=>{w$();Lz();P$();B$()});function iv($){return{[lv]:!0,finalize:$}}function oU$($){return typeof $==="object"&&$!==null&&$[lv]===!0}async function dU($){if(oU$($))return $.finalize();if(Array.isArray($))return Promise.all($.map((U)=>dU(U)));return $}var lv;var eJ=V(()=>{lv=Symbol("weft.deferredConsume")});function nv($,U){return Math.min(Math.max(0,$-U),aU$)}function rv($,U,j){j?.throwIfAborted();let G=$.abortController.signal;if(G.aborted)return Promise.reject(G.reason??Error("aborted"));if(nv(U.scheduledFireAt,$.options.getNow())===0)return Promise.resolve();return new Promise((X,J)=>{let Q,Z=()=>{j?.removeEventListener("abort",Y),G.removeEventListener("abort",Y)},Y=()=>{clearTimeout(Q),Z(),J(j?.reason??G.reason??Error("aborted"))},H=()=>{let D=nv(U.scheduledFireAt,$.options.getNow());if(D===0){Z(),X();return}Q=setTimeout(H,D)};j?.addEventListener("abort",Y,{once:!0}),G.addEventListener("abort",Y,{once:!0}),H()})}function sv($,U,j,G){G?.throwIfAborted();let{signalName:X}=j,J=`${U}:${X}`,Q=$.abortController.signal;return new Promise((Z,Y)=>{let H=!1,D=!1,{promise:L,resolve:B}=Promise.withResolvers(),z=()=>{G?.removeEventListener("abort",q),Q.removeEventListener("abort",q)},K=async()=>{let k=await Z3($,U,X);return k.found?k.payload:void 0},q=()=>{if(H)return;if(H=!0,z(),D)Q3($,U,J,B);Y(G?.reason??Q.reason??Error("aborted"))},O=()=>{if(H)return;H=!0,z(),Z(iv(K))},g=(k)=>{if(H)return;if(H=!0,z(),D)Q3($,U,J,B);Y(k)};if(G?.addEventListener("abort",q,{once:!0}),Q.addEventListener("abort",q,{once:!0}),Q.aborted){q();return}(async()=>{let k=await ZB($,U,X);if(H)return;if(k.found){O();return}$.signalWaiters.set(J,B),D0($.signalWaitersByWorkflow,U,J),D=!0;let m=await ZB($,U,X);if(H)return;if(m.found){Q3($,U,J,B),O();return}if(await L,H)return;O()})().catch(g)})}var aU$=2147483647;var ov=V(()=>{eJ();L0()});function tU$($,U,j,G){let X=$.lastHeartbeatDetailsByStep.get(U);if(X===void 0)X=new Map,$.lastHeartbeatDetailsByStep.set(U,X);X.set(j,G)}function av($,U,j){return $.lastHeartbeatDetailsByStep.get(U)?.get(j)}function nz($,U,j){let G=$.lastHeartbeatDetailsByStep.get(U);if(G===void 0)return;if(G.delete(j),G.size===0)$.lastHeartbeatDetailsByStep.delete(U)}function tv($,U,j,G){if(!$.options.development)return;if($.activityWorkerDispatcher)return;if(G<=1)return;if(av($,U,j)!==void 0)return;$.engine.dispatchEvent(new v6(U,`Activity retry (attempt ${G}) at step ${j} has no lastHeartbeatDetails. Either the previous attempt never recorded heartbeat details (it never called heartbeat(), or called it with no details), or the engine process restarted and discarded the in-memory heartbeat (it is not durable). The resumable-batch pattern only resumes across in-process retries; design the activity to restart cleanly when lastHeartbeatDetails is undefined.`,[`step.${j}.lastHeartbeatDetails`]))}function ev($,U,j,G,X){return{signal:G,lastHeartbeatDetails:av($,U,j),heartbeat:(J)=>{$.heartbeatDetails.set(U,J),tU$($,U,j,J)},completeAsync:X}}var $y=V(()=>{H$()});async function jy($,U,j){let G=await jj$(j);return{idempotencyKeyDigest:G,key:F.activityReconciliation($,U,G)}}function Gy($,U){let j=$?.idempotencyKey?.(U.input);if(j!==void 0)return j;let G=U.options?.idempotencyKey;return typeof G==="string"?G:void 0}async function Xy($,U){let j=await $.get(U);if(j===null)return null;return Uj$(A(j))}function jQ($,U){return y4($,U,"activity result"),M($)}async function eU$($,U,j){if(!$.capabilities().conditionalBatch)throw new $Q;return O$($,"conditionalBatch","activity result reconciliation"),z$($,[{key:U.key,expectedValue:null}],[{type:"put",key:U.key,value:M(j)}])}function rz($,U,j){return{...$,status:"completed",result:U,updatedAt:j}}async function Jy($,U,j,G,X,J,Q){let Z=await Xy($.storage,G.key);if(Z===null){let D=await Xj$($,U,j,G,Q);if(D.didClaim)return D.record;Z=D.record}if(Z.status==="completed")return{completedResult:Z.result};if(!X?.verify)throw new J6(`Activity "${j.activityName}" has a prior dispatch marker but no Tier-0 verifier.`);let Y=$j$(await Jj$(X,U,j,J,Z));if(Y==="not-completed"){let D={...Z,attempt:Z.attempt+1,ownerId:crypto.randomUUID(),updatedAt:$.options.getNow()};return await Uy($.storage,G,Z,D),D}if(Y==="completed-result-unavailable")throw new J6(`Activity "${j.activityName}" completed externally but its result is unavailable.`);if(Y==="indeterminate")throw new J6(`Activity "${j.activityName}" reconciliation is indeterminate.`);jQ(Y.result,$.options.payloadSizePolicy.maxBytes);let H=rz(Z,Y.result,$.options.getNow());return await Uy($.storage,G,Z,H),{completedResult:Y.result}}async function Uy($,U,j,G){let X=Zy(U,j,G);if(!await z$($,X.conditions,X.operations))throw new UQ("Activity reconciliation completion lost compare-and-set ownership.")}function Qy($,U,j,G,X){_0($,U,Zy(j,G,X))}function Zy($,U,j){return{conditions:[{key:$.key,expectedValue:M(U)}],operations:[{type:"put",key:$.key,value:M(j)}]}}function $j$($){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 J6("Activity verifier did not return a Tier-0 pre-dispatch reconciliation state.")}function sz($,U,j,G,X,J,Q){return{phase:$,workflowId:U,operationId:j,activityName:G,input:X,...J===void 0?{}:{idempotencyKey:J},attempt:Q}}function Uj$($){if(typeof $!=="object"||$===null)throw new J6("Activity reconciliation record is not an object.");let U=$;if(!Qj$(U))throw new J6("Activity reconciliation record has an invalid shape.");if(U.status==="started")return U;if(U.status==="completed"&&"result"in U)return U;throw new J6("Activity reconciliation record has an unsupported status.")}async function jj$($){let U=new TextEncoder().encode($),j=await crypto.subtle.digest("SHA-256",U);return[...new Uint8Array(j)].map((G)=>G.toString(16).padStart(2,"0")).join("")}function Gj$($,U,j,G,X){return{version:1,status:"started",workflowId:$,operationId:U.operationId,activityName:U.activityName,idempotencyKeyDigest:j.idempotencyKeyDigest,attempt:G,ownerId:crypto.randomUUID(),createdAt:X,updatedAt:X}}async function Xj$($,U,j,G,X){let J=Gj$(U,j,G,X,$.options.getNow());if(await eU$($.storage,G,J))return{didClaim:!0,record:J};let Z=await Xy($.storage,G.key);if(Z===null)throw new J6("Activity reconciliation claim conflicted but no record could be read.");return{didClaim:!1,record:Z}}async function Jj$($,U,j,G,X){try{return await $.verify(void 0,sz("pre-dispatch-reconciliation",U,j.operationId,j.activityName,j.input,G,X.attempt))}catch(J){let Q=J instanceof Error?J.message:String(J);throw new J6(`Activity "${j.activityName}" verifier threw during pre-dispatch reconciliation: ${Q}`)}}function Qj$($){let U=["workflowId","operationId","activityName","idempotencyKeyDigest","ownerId"],j=["attempt","createdAt","updatedAt"];return $.version===1&&U.every((G)=>typeof $[G]==="string")&&j.every((G)=>typeof $[G]==="number")}var $Q,UQ,J6;var oz=V(()=>{h();u();n6();t();$Q=class $Q extends y{constructor(){super("ActivityReconciliationCapabilityError",'Activity result reconciliation requires storage capability "conditionalBatch".')}};UQ=class UQ extends y{constructor($){super("ActivityReconciliationConflictError",$)}};J6=class J6 extends y{constructor($){super("ActivityReconciliationIndeterminateError",$)}}});function Yy($,U,j){let G=$.workflowTypeByWorkflowId.get(U);if(G!==void 0){let J=$.activityRegistriesByWorkflow.get(G);if(J!==void 0){let Z=J.resolve(j);if(Z)return{fn:Z,workflowType:G}}let Q=$.activityRegistry.resolve(j);if(Q)return{fn:Q,workflowType:G};return}let X=$.activityRegistry.resolve(j);if(X)return{fn:X,workflowType:"<unknown>"};return}function az($,U,j){let G=Yy($,U,j.activityName);if(G)return G.fn;if(typeof j.fn==="function")return j.fn;return}function Hy($,U,j){let G=Yy($,U,j.activityName);if(G)return G.fn;if(j.fn)return j.fn;let X=$.workflowTypeByWorkflowId.get(U)??"<unknown>";throw new x8(X,j.activityName)}var _y=V(()=>{P$()});function Zj$($,U,j,G,X){return(async()=>{let J=await j?.(X,G);if(typeof J!=="boolean")throw Error(`Verification failed for activity "${U}"`);if(!J)throw Error(`Verification failed for activity "${U}"`)})()}function Yj$($,U,j,G){let X=az($,U,j);if(!X?.compensate)return;return async()=>{await X.compensate?.(j.input,G)}}async function Hj$($,U,j,G,X){let J=$.activityWorkerDispatcher;if(!J)throw Error(`No activity worker dispatcher available for "${j}"`);let Q=await J.execute({operationId:U,activityName:j,input:G,attempt:X});if(Q.status==="failed"){let Z=Error(Q.error);if(Q.errorName!==void 0)Z.name=Q.errorName;throw Z}return Q.value}function _j$($,U,j,G,X,J){let Q=Hy($,U,j);return i8(Q,J,G)}function Dy($,U){if(U.size>0)$.headers=[...U.entries()]}function tz($){let U=$.attempt;return typeof U==="number"&&Number.isInteger(U)&&U>0?U:1}async function Ly($,U,j,G,X=tz(j),J){let Q=j.input,Z=j.step??0;tv($,U,Z,X);let Y=hb(U,Z,X),{perAttemptTimeoutMs:H,attemptAbortController:D,activitySignal:L}=rg($,U,j,J),B=ev($,U,Z,L,()=>{throw new p5(Y)}),z=$.activityWorkerDispatcher?(m,p)=>Hj$($,j.operationId,m,p,X):(m,p)=>iJ(_j$($,U,j,B,m,p),H,m,X,D),K=G.getComposedActivityInterceptor(),q=async(m,p,d)=>{if(!K)return z(m,p);let Q$={workflowId:U,activityName:m,input:p,attempt:X,headers:d};return await K.execute(Q$,async(f4)=>{return z(m,f4.input)})},O=G.getComposedWorkflowInterceptor();if(O){let m={workflowId:U,activityName:j.activityName,input:Q,attempt:X,headers:new Map};function*p(){return yield q(j.activityName,m.input,m.headers)}let d=O.activity(m,p),Q$=await cb(d);return Dy(j,m.headers),Q$}let g=new Map,k=await q(j.activityName,Q,g);return Dy(j,g),k}async function n3($,U,j,G,X,J){let Q=az($,U,j),Z=Gy(Q,j),Y=tz(j);if(Z!==void 0){let D=await jy(U,j.activityName,Z),L=await Jy($,U,j,D,Q,Z,Y);if("completedResult"in L)return jQ(L.completedResult,$.options.payloadSizePolicy.maxBytes),L.completedResult;let B=await Ly($,U,j,G,L.attempt,X);jQ(B,$.options.payloadSizePolicy.maxBytes),await Fy($,U,j,B,Q,Z,L.attempt,J,!0);let z=rz(L,B,$.options.getNow());if(Qy($,U,D,L,z),!J)nz($,U,j.step??0);return B}let H=await Ly($,U,j,G,Y,X);if(y4(H,$.options.payloadSizePolicy.maxBytes,"activity result"),await Fy($,U,j,H,Q,Z,Y,J),!J)nz($,U,j.step??0);return H}async function Fy($,U,j,G,X,J,Q,Z,Y=!1){let H=Z?Yj$($,U,j,G):void 0;if(H)Z?.recordCompensation(H);if(X?.verify){let D=sz("post-execution-validation",U,j.operationId,j.activityName,j.input,J,Q),L=Zj$($,j.activityName,X.verify,D,G);if(Z){if(Z.recordVerification(L),Y)await L}else await L}}async function Wy($,U,j,G){return G.runOperationWithResult(U,j,async()=>{try{return await n3($,U,j,G)}catch(X){if(X instanceof p5)return mb($,X,{workflowId:U,activityName:j.activityName,operationId:j.operationId,step:j.step??0,attempt:tz(j)},{feedOperationResult:G.feedOperationResult,finalizeTimeline:G.finalizePendingTimelineEntry});throw X}})}var GQ=V(()=>{n6();$y();Rz();oz();_y();NU();B$()});function XQ($){let U=new Set,j=(G)=>{for(let X of G)if(X.type==="wait-signal"){if(U.has(X.signalName))throw Error(`ctx.race / ctx.all cannot have two branches waiting on the same signal "${X.signalName}": sibling wait-signal branches share one waiter and would clobber each other. Wait on the signal once, or use distinct signal names.`);U.add(X.signalName)}else if(X.type==="race"||X.type==="parallel")j(X.operations)};j($)}async function Vy($,U,j,G){let X=$.abortController.signal,J=`${U}:${j.signalName}`;while(!0){if(X.aborted)return;let Q=await Z3($,U,j.signalName);if(Q.found){G.completeOperation(U,Q.payload);return}let{promise:Z,resolve:Y}=Promise.withResolvers();if($.signalWaiters.set(J,Y),D0($.signalWaitersByWorkflow,U,J),X.aborted){$.signalWaiters.delete(J),t4($.signalWaitersByWorkflow,U,J);return}let H=await Z3($,U,j.signalName);if(H.found){if($.signalWaiters.get(J)===Y)$.signalWaiters.delete(J),t4($.signalWaitersByWorkflow,U,J);G.completeOperation(U,H.payload);return}if(await Z,X.aborted)return}}async function By($,U,j,G){return G.runOperationWithResult(U,j,async()=>{XQ(j.operations);let X=zy(j.resumedCacheEntry),J=j.operations.map((D,L)=>typeof D.operationId==="string"?D.operationId:`parallel:${j.step}:${L}`),{slots:Q,hasFirstError:Z,firstError:Y}=await Tb(J,X,(D)=>G.executeSubOperation(U,j.operations[D]));if(Z)Ky(Lj$($,U),Q,"ctx.all","worker execution mode");await Dj$(Q);let H=rV("all",Q);if(Py($,U,j.step,H),Z)throw Y;return bb(Q)})}async function Dj$($){let j=(await Promise.allSettled($.map(async(G)=>{if(G.status==="fulfilled")G.value=await dU(G.value)}))).find((G)=>G.status==="rejected");if(j)throw j.reason}function zy($){if(!B9($))return;return $.branches}function Lj$($,U){return $.inlineStrategy?.getContext(U)!==void 0}function Py($,U,j,G){let X=$.inlineStrategy?.getContext(U);if(X===void 0)return!1;return X.accumulatedResults.set(j,G),!0}function Ky($,U,j,G){if($||!U.some((X)=>X.status==="fulfilled"))return;throw Error(`${j} partial-failure preservation is not supported in ${G}: the engine cannot persist fulfilled branch slots after a sibling branch fails. Run the workflow inline or make branch side effects idempotent.`)}async function Ny($,U,j,G){return G.runOperationWithResult(U,j,async()=>{XQ(j.operations);let X=new AbortController,J=j.operations.map((Z)=>G.executeSubOperation(U,Z,X.signal));Promise.allSettled(J);let Q;try{Q=await Promise.race(J)}finally{X.abort()}return dU(Q)})}async function My($,U,j,G){return G.runOperationWithResult(U,j,async()=>{let X=Object.keys(j.branches),J=X.map((q)=>`run-all:${j.step}:${q}`),Q=zy(j.resumedCacheEntry),Z=Bj$(Q,X),Y=Fj$(j.branches,X,Z),{outcomes:H,hasFirstError:D,firstError:L}=await vb(Y,(q,O)=>i8(q,O)),B=Wj$(X,J,Z,H),z=rV("run-all",B,X),K=Py($,U,j.step,z);if(D)throw Ky(K,B,"ctx.runAll","worker execution mode"),L;return Vj$(X,B)})}function Fj$($,U,j){let G={};for(let X of U)if(j?.get(X)?.status!=="fulfilled"){let J=$[X];if(J!==void 0)G[X]=J}return G}function Wj$($,U,j,G){let X=new Map;for(let J of G)X.set(J.name,J);return $.map((J,Q)=>{let Z=U[Q],Y=j?.get(J);if(Y?.status==="fulfilled")return Y;let H=X.get(J);if(H.status==="fulfilled")return{status:"fulfilled",value:H.value,operationId:Z};let D=H.reason instanceof Error?H.reason:Error(String(H.reason));return{status:"rejected",reason:{name:D.name,message:D.message},operationId:Z}})}function Vj$($,U){let j={};for(let G=0;G<$.length;G++){let X=U[G];if(X?.status==="fulfilled")j[$[G]]=X.value}return j}function Bj$($,U){if($===void 0)return;let j=new Map;for(let G=0;G<U.length;G++){let X=U[G],J=$[G];if(X!==void 0&&J!==void 0)j.set(X,J)}return j}function zj$($){return typeof $.execute==="function"}async function qy($,U,j,G,X){return yb(j.branches,(J,Q)=>{if(!X||!zj$(J))return i8(J,Q);return n3($,U,{type:"activity",operationId:crypto.randomUUID(),activityName:J.name,fn:J,input:Q},G.getActivityOperationCallbacks(),void 0,X)})}var JQ=V(()=>{u5();$3();eJ();GQ();sV();L0();B$()});async function Ay($,U,j,G){return G.runOperationWithoutResult(U,j,()=>G.processReviewOperation(U,j.reviewOptions))}async function QQ($,U,j,G,X,J){X?.throwIfAborted();let Q=Pj$[j.type];if(!Q)throw Error(`Unsupported sub-operation type: ${j.type}`);return Q({internals:$,workflowId:U,callbacks:G,signal:X,speculativeState:J},j)}async function Kj$($,U,j,G,X,J){return n3($,U,j,G.createActivityOperationCallbacks(),X,J)}async function Nj$($,U,j,G){return lz($,U,j,dz($,U),G.createChildWorkflowOperationCallbacks())}async function Mj$($,U){return F9($.storage,Z0(U.scope,U.key),U)}async function qj$($,U,j){let G=Z0(U.scope,U.key),X=U.mode==="delete"?await s8($.storage,G,U.expectedVersion):await r8($.storage,G,U.expectedVersion,U.value);if(X.applied&&U.scope.type==="execution")await j.createStateOperationCallbacks().ensureTerminalCleanupTracked(U.scope.ownerWorkflowId);return X}async function Aj$($,U,j,G,X,J){X?.throwIfAborted();let Q=new AbortController,Z=()=>{Q.abort(X?.reason)};X?.addEventListener("abort",Z,{once:!0});let Y=j.operations.map((H)=>QQ($,U,H,G,Q.signal,J));Promise.allSettled(Y);try{return await Promise.all(Y)}finally{X?.removeEventListener("abort",Z),Q.abort()}}async function Oj$($,U,j,G,X,J){X?.throwIfAborted();let Q=new AbortController,Z=()=>{Q.abort(X?.reason)};X?.addEventListener("abort",Z,{once:!0});let Y=j.operations.map((H)=>QQ($,U,H,G,Q.signal,J));Promise.allSettled(Y);try{return await Promise.race(Y)}finally{X?.removeEventListener("abort",Z),Q.abort()}}var Pj$;var ez=V(()=>{W9();iz();ov();GQ();JQ();B$();Pj$={activity:($,U)=>Kj$($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),"child-workflow":($,U)=>Nj$($.internals,$.workflowId,U,$.callbacks),memo:($,U)=>Promise.resolve(P5(U.fn)),"state-read":($,U)=>Mj$($.internals,U),"state-commit":($,U)=>qj$($.internals,U,$.callbacks),parallel:($,U)=>Aj$($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),race:($,U)=>Oj$($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),"run-all":($,U)=>qy($.internals,$.workflowId,U,$.callbacks.createCoordinationOperationCallbacks(),$.speculativeState),sleep:($,U)=>rv($.internals,U,$.signal),"wait-signal":($,U)=>sv($.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 $P($){return{runOperationWithResult:(U,j,G)=>q0($,U,j,G),start:(U,j,G)=>U6(W($),U,j,G,void 0,G4($)),loadWorkflowState:(U)=>J$(W($),U),getHandle:(U)=>$.getHandle(U),getComposedWorkflowInterceptor:()=>X6(W($))}}function ZQ($){return{runOperationWithResult:(U,j,G)=>q0($,U,j,G),finalizePendingTimelineEntry:(U,j,G)=>R6(W($),U,j,G),feedOperationResult:(U,j,G)=>G6(W($),U,j,G),getComposedActivityInterceptor:()=>Hg(W($)),getComposedWorkflowInterceptor:()=>X6(W($))}}function lU($){return{completeOperation:(U,j)=>_Q($,U,j),runOperationWithResult:(U,j,G)=>q0($,U,j,G),executeSubOperation:(U,j,G,X)=>UP($,U,j,G,X),getActivityOperationCallbacks:()=>ZQ($)}}function Cy($){return{completeOperation:(U,j)=>_Q($,U,j),failOperation:(U,j,G)=>Cj$($,U,j,G),isWorkflowRunning:async(U)=>{return(await J$(W($),U))?.status==="running"},scheduleConditionDeadline:(U,j,G)=>W($).scheduler.schedule({id:`cond:${U}:${j}`,workflowId:U,fireAt:G,kind:"wait-condition"}),cancelConditionDeadline:(U,j)=>W($).scheduler.cancel(`cond:${U}:${j}`,U)}}function r3($){return{runOperationWithResult:(U,j,G)=>q0($,U,j,G)}}function YQ($){return{runOperationWithResult:(U,j,G)=>q0($,U,j,G),ensureTerminalCleanupTracked:(U)=>k3(W($),U)}}function Ry($){return{runOperationWithResult:(U,j,G)=>q0($,U,j,G),handleCleanupError:(U,j,G)=>V$($).handleCleanupError(U,j,G)}}function HQ($){return{completeOperation:(U,j)=>_Q($,U,j),dispatchEvent:(U)=>$.dispatchEvent(U),loadWorkflowState:(U)=>J$(W($),U),failWorkflow:(U,j)=>h4(W($),U,j,V$($)),runSerializedWorkflowStateWrite:(U,j)=>e4(W($),U,j),beginWorkflowExecution:(U,j,G,X,J,Q,Z)=>vJ(W($),U,j,G,X,J,Q,Z,G4($)),workflowVersionTupleFromState:(U)=>CJ(W($),U,G4($)),setWorkflowStartHeaders:(U,j)=>b1(W($),U,j,G4($)),loadWorkflowStartHeaders:(U)=>R9(W($),U,G4($)),parseStartOptionDuration:(U,j)=>mU(W($),U,j,G4($)),runDeferredTerminalCleanup:(U,j)=>tB(W($),U,j,V$($)),runWorkflowFinalizer:(U,j)=>xz(W($),U,j,V$($)),handleScheduleTimer:(U)=>yv($,U),timeout:(U)=>$.timeout(U),handleCleanupError:(U,j,G)=>V$($).handleCleanupError(U,j,G)}}function iU($){return{dispatchEvent:(U)=>$.dispatchEvent(U),broadcast:(U)=>F0(W($),U,t6($)),completeOperation:(U,j)=>_Q($,U,j),guardTerminalWorkflow:(U)=>pz(W($),U,aJ($)),guardTerminalWorkflowAfterCoordinatedRequest:(U,j)=>mv(W($),U,j,aJ($)),persistCoordinatedUpdateResponse:(U,j,G,X,J)=>Oy($,U,j,G,X,J),deliverCoordinatedUpdateToWaiterIfAvailable:(U,j,G)=>IE(W($),U,j,G,iU($)),dispatchPendingUpdateReceived:(U,j,G)=>kE(W($),U,j,G,t6($)),createCoordinatedUpdateResponder:(U,j,G)=>yE(W($),U,j,G,{persistCoordinatedUpdateResponse:(X,J,Q,Z,Y)=>Oy($,X,J,Q,Z,Y)}),findPendingUpdateByName:(U,j)=>hE(W($),U,j),schedulePendingInlineUpdateDrain:(U)=>Sg(W($),U,c3($))}}async function Oy($,U,j,G,X,J){let Q=W($),Z=Q.updateCoordinator.buildResponseOperations(G,U,J,void 0,X);try{await R$(Q,Z,[],()=>Error(`Coordinated update response for workflow "${U}" lost its CAS race.`)),$.dispatchEvent(new k4(G,U,j,J)),F0(Q,{type:"update:completed",workflowId:U,updateId:G},t6($))}catch(Y){V$($).handleCleanupError("writeCoordinatedUpdateResponse",Y,U)}}function _Q($,U,j){return l3(W($),U,j,p3($))}function Cj$($,U,j,G){return i3(W($),U,j,G,p3($))}async function q0($,U,j,G){return wv(W($),U,j,G,p3($))}async function Ty($,U,j,G){return cv(W($),U,j,G,p3($))}async function UP($,U,j,G,X){return QQ(W($),U,j,{createActivityOperationCallbacks:()=>ZQ($),createChildWorkflowOperationCallbacks:()=>$P($),createCoordinationOperationCallbacks:()=>lU($),createStateOperationCallbacks:()=>YQ($)},G,X)}async function by($,U,j){return ig(W($),U,j,vv($))}var DQ=V(()=>{H$();e5();cU();Iv();A6();fv();S1();N0();tJ();zz();dJ();j4();o6();ez();x1();qU()});async function Ey($,U,j,G){return G.runOperationWithResult(U,j,async()=>P5(j.fn))}async function Sy($,U,j,G){return G.runOperationWithResult(U,j,async()=>{let X=await j.fn(),J=M(X);return await $.storage.put(F.offload(U,j.key),J),{key:j.key,workflowId:U,sizeBytes:J.byteLength}})}async function xy($,U,j,G){return G.runOperationWithResult(U,j,async()=>{let{workflowId:X,key:J,sizeBytes:Q}=j.reference;if(typeof X!=="string"||X!==U)throw Error("ctx.load() can only read offloaded data from the current workflow");if(typeof J!=="string"||J.length===0)throw Error("ctx.load() requires a non-empty offload reference key");if(typeof Q!=="number"||!Number.isFinite(Q)||Q<0)throw Error("ctx.load() requires a valid offload reference size");let Z=await $.storage.get(F.offload(X,J));if(Z===null)throw Error(`Offloaded data not found for key "${J}" in workflow "${X}"`);return A(Z)})}async function gy($,U,j){let G=await $.storage.get(F.offload(U,j));if(G===null)return null;return A(G)}async function vy($,U,j,G){return G.runOperationWithResult(U,j,async()=>{await $.storage.put(F.archive(U,j.key),M(j.data));return})}var jP=V(()=>{h();u();B$()});class GP{#$;#U;constructor(){this.#$=[],this.#U=[]}recordVerification($){this.#$.push($.then(()=>({failed:!1}),(U)=>({failed:!0,error:U})))}recordCompensation($){this.#U.push($)}async drainVerifications(){let U=(await Promise.all(this.#$)).find((j)=>j.failed);if(U)throw U.error}async rollback(){for(let $=this.#U.length-1;$>=0;$--)try{await this.#U[$]()}catch{}await Promise.all(this.#$)}}async function yy($,U,j,G){return G.runOperationWithResult(U,j,()=>Rj$($,U,j,G))}async function Rj$($,U,j,G){let X=$.inlineStrategy;if(!X)throw Error("ctx.speculate() requires inline execution mode");let J=X.getContext(U);if(!J)throw Error(`No active inline context for workflow "${U}"`);let Q=J.createSpeculativeChild(),Z=new GP,Y=Tj$(j,Q);try{let H=await bj$(U,Y,Z,G);return await Z.drainVerifications(),J.commitSpeculativeChild(Q),H}catch(H){throw await Z.rollback(),H}}function Tj$($,U){return $.execute(U)}async function bj$($,U,j,G){let X=async(J,Q)=>{let Z=Q===void 0?await U.next(J):await U.throw(Q);if(Z.done)return Z.value;let Y=Z.value;try{if(Y.type==="race"||Y.type==="parallel")XQ(Y.operations);let H=await G.executeSubOperation($,Y,void 0,j),D=await dU(H);return X(D,void 0)}catch(H){return X(J,H instanceof Error?H:Error(String(H)))}};return X(void 0,void 0)}var Iy=V(()=>{eJ();JQ()});async function hy($,U,j,G){return G.runOperationWithResult(U,j,async()=>{let X=Z0(j.scope,j.key);return F9($.storage,X,j)})}async function my($,U,j,G){return G.runOperationWithResult(U,j,async()=>{let X=Z0(j.scope,j.key);if(j.mode==="delete"){let Q=await s8($.storage,X,j.expectedVersion);if(Q.applied&&j.scope.type==="execution")await G.ensureTerminalCleanupTracked(j.scope.ownerWorkflowId);return Q}let J=await r8($.storage,X,j.expectedVersion,j.value);if(J.applied&&j.scope.type==="execution")await G.ensureTerminalCleanupTracked(j.scope.ownerWorkflowId);return J})}var fy=V(()=>{W9()});function Sj$($){if(!Ej$.test($))return;let U=Number.parseInt($,10);return Number.isSafeInteger(U)?U:void 0}async function nU($,U,j,G){let X=G?.after,J=F.streamChunkPrefix(U,j),Q=[],Z=X!==void 0&&X>=0?{gt:F.streamChunk(U,j,X)}:void 0;for await(let[Y,H]of $.scan(J,Z)){let D=Y.slice(J.length),L=Sj$(D);if(L===void 0)continue;Q.push({sequence:L,value:A(H)})}return Q}function LQ($){return M({sequence:$})}function xj$($){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 rU($,U,j){let G=await $.get(F.streamTail(U,j));if(G===null)return null;try{return xj$(A(G))}catch{return null}}var Ej$;var s3=V(()=>{h();u();Ej$=/^\d+$/});async function*ky($,U,j,G){if(j==="events"){yield*vj$($,U,G);return}yield*yj$($,U,G)}async function uy($,U,j){if(j==="events"){let Q=$.eventLogHeads.get(U);if(Q)return Q.sequence;return(await new I4($.storage,U).loadHead()).sequence}let G=await rU($.storage,U,E9);if(G!==null)return G;let X=await nU($.storage,U,E9);if(X.length===0)return-1;let J=-1;for(let Q of X)if(Q.sequence>J)J=Q.sequence;return J}function wy($,U,j,G){let X=YU(U,j),J=$.workflowFeedListeners.get(X);if(!J)J=new Set,$.workflowFeedListeners.set(X,J);return J.add(G),()=>{let Q=$.workflowFeedListeners.get(X);if(!Q)return;if(Q.delete(G),Q.size===0)$.workflowFeedListeners.delete(X)}}async function*vj$($,U,j){let G=new I4($.storage,U),X=j<0?0:j+1,J=await P0($.storage,U);if(J!==null&&X<J.sequence)yield{workflowId:U,selector:"events",kind:gj$,sequence:J.sequence-1,timestamp:0,payload:{compactedBefore:J.sequence,requestedFrom:X}},X=J.sequence;for await(let Q of G.scan({fromSequence:X}))yield{workflowId:U,selector:"events",kind:Q.type,sequence:Q.sequence,timestamp:Q.timestamp,payload:Q.payload}}async function*yj$($,U,j){let G=j>=0?await nU($.storage,U,E9,{after:j}):await nU($.storage,U,E9),X=Date.now();for(let J of G)yield{workflowId:U,selector:"tokens",kind:XP,sequence:J.sequence,timestamp:X,payload:J.value}}function FQ($,U,j,G){let X=$.workflowFeedListeners.get(YU(U,j));if(!X||X.size===0)return;let J=[...X];for(let Q of J)try{let Z=Q(G);if(Z&&typeof Z.then==="function")Z.catch(()=>{})}catch{}}var E9="tokens",XP="stream:chunk",gj$="workflow:compaction-boundary";var WQ=V(()=>{C9();C3();B$();s3()});async function cy($,U,j,G){return nU($.storage,U,j,G)}async function py($,U,j,G){return G.runOperationWithResult(U,j,()=>Ij$($,U,j,G))}async function Ij$($,U,j,G){let X={heartbeat:(Q)=>{$.heartbeatDetails.set(U,Q)}},J=[];try{let Q=await hj$($,U,j,j.fn(X),J),Z={key:j.key,workflowId:U,chunkCount:Q.chunkCount,totalSizeBytes:Q.totalSizeBytes};return await $.storage.put(F.streamMetadata(U,j.key),M(Z)),Z}catch(Q){throw await mj$($,U,j.key,J,G),Q}}async function hj$($,U,j,G,X){let J=0,Q=0;for await(let Z of G){let Y=M(Z),H=J,D=F.streamChunk(U,j.key,H);if(j.key===E9)await $.storage.batch([{type:"put",key:D,value:Y},{type:"put",key:F.streamTail(U,j.key),value:LQ(H)}]);else await $.storage.put(D,Y);if(X.push(D),Q+=Y.byteLength,J++,j.key===E9)FQ($,U,"tokens",{workflowId:U,selector:"tokens",kind:XP,sequence:H,timestamp:Date.now(),payload:Z})}return{chunkCount:J,totalSizeBytes:Q}}async function mj$($,U,j,G,X){await gb($.storage,U,j,G,Eb(X.handleCleanupError,U))}var JP=V(()=>{h();u();$3();s3();WQ()});function ly($,U,j){if(U())return{done:!0,value:j===void 0?void 0:!0};if(j!==void 0&&$.options.getNow()>=j)return{done:!0,value:!1};return{done:!1}}async function iy($,U,j,G){let X=$.abortController.signal,{predicate:J,deadline:Q}=j,Z=!1,Y=(H)=>{if(Z)return;Z=!0,G.completeOperation(U,H)};if(X.aborted)return;try{let H=ly($,J,Q);if(H.done){Y(H.value);return}if(Q!==void 0)await G.scheduleConditionDeadline(U,j.step,Q);try{let D=await dy($,U,J,Q,G);while(D.status==="continue")D=await dy($,U,J,Q,G);if(D.status==="complete")Y(D.value)}finally{if(ny($,U),Q!==void 0)await G.cancelConditionDeadline(U,j.step)}}catch(H){G.failOperation(U,j,H)}}async function dy($,U,j,G,X){let J=$.abortController.signal;if(J.aborted)return{status:"stop"};let{promise:Q,resolve:Z}=Promise.withResolvers();$.conditionWaiters.set(U,Z);let Y=J.aborted?{done:!0,value:void 0,aborted:!0}:{...ly($,j,G),aborted:!1};if(Y.done)return ny($,U),Y.aborted?{status:"stop"}:{status:"complete",value:Y.value};if(await Q,J.aborted)return{status:"stop"};if(!await X.isWorkflowRunning(U))return{status:"stop"};return{status:"continue"}}function ny($,U){$.conditionWaiters.delete(U)}function QP($){return{processActivityOperation:(U,j)=>Wy(W($),U,j,ZQ($)),processSleepOperation:(U,j)=>sS(W($),U,j,HQ($)),processWaitSignalOperation:(U,j)=>Vy(W($),U,j,lU($)),processWaitUpdateOperation:(U,j)=>gE(W($),U,j,iU($)),processWaitConditionOperation:(U,j)=>iy(W($),U,j,Cy($)),processGetVersionOperation:async(U,j)=>{l3(W($),U,j.version,{finalizePendingTimelineEntry:(G,X,J)=>R6(W($),G,X,J),feedOperationResult:(G,X,J)=>G6(W($),G,X,J)})},processParallelOperation:(U,j)=>By(W($),U,j,lU($)),processRaceOperation:(U,j)=>Ny(W($),U,j,lU($)),processMemoOperation:(U,j)=>Ey(W($),U,j,r3($)),processChildWorkflowOperation:(U,j)=>dv(W($),U,j,$P($)),processOffloadOperation:(U,j)=>Sy(W($),U,j,r3($)),processLoadOperation:(U,j)=>xy(W($),U,j,r3($)),processArchiveOperation:(U,j)=>vy(W($),U,j,r3($)),processStateReadOperation:(U,j)=>hy(W($),U,j,YQ($)),processStateCommitOperation:(U,j)=>my(W($),U,j,YQ($)),processRunAllOperation:(U,j)=>My(W($),U,j,lU($)),processSpeculateOperation:(U,j)=>yy(W($),U,j,{runOperationWithResult:(G,X,J)=>q0($,G,X,J),executeSubOperation:(G,X,J,Q)=>UP($,G,X,J,Q)}),processStreamOperation:(U,j)=>py(W($),U,j,Ry($)),processWaitReviewOperation:(U,j)=>Ay(W($),U,j,{runOperationWithoutResult:(G,X,J)=>Ty($,G,X,J),processReviewOperation:(G,X)=>by($,G,X)}),finalizePendingTimelineEntry:(U,j,G)=>R6(W($),U,j,G),feedOperationResult:(U,j,G)=>G6(W($),U,j,G)}}var ry=V(()=>{DQ();iz();S1();GQ();JQ();jP();tJ();Iy();fy();JP();SJ();o6();ez();x1();qU();Lv(($)=>QP($))});function sy($){let U=c($).pendingAttributeChanges;return U!==void 0&&Object.keys(U).length>0}function oy($){let U=c($).updateHandlers;return U!==void 0&&U.size>0}function ay($){let U=c($).exposedValues;return U!==void 0&&U.size>0}var ZP=V(()=>{MU()});function ty($,U,j,G,X,J){let Q=uU($,U),Z=$.workflowVersionTuples.get(U);if(Q)J.push(Q);let Y={step:G,operationType:j.type,operationLabel:bT(j),inputSummary:ET(j),timestamp:X,status:"running",...Z?{versionTuple:Z}:{}};return J.push({type:"put",key:F.timeline(U,G),value:M(Y)}),{startedAt:X,entry:Y}}async function ey($,U,j,G,X){if($.inlineStrategy?.getContext(U))await fj$($,U,j,X);else if(G&&G.byteLength>0)await kj$($,U,j,G,X)}async function fj$($,U,j,G){let X=$.checkpoints.get(U),J=$.inlineStrategy?.getContext(U);if(!X||!J)return;let Q={...X.searchAttributes},Z=J.checkpointPendingAttributeChanges,Y=sy(J),H=wV(X,J.checkpointLocals,{accumulatedResults:J.checkpointAccumulatedResults,now:$.options.getNow(),...Z!==void 0?{searchAttributes:Z}:{}}),D=LV(H,jI(j,J.stepIndex)),L=$I($,U,D.checkpoint,d$(FV(D.checkpoint,D.replayPayload)),D.replayPayload);if(uj$(U,L,Q,Z,Y,G),await UI($,U,j,L,G),Y)G.dispatchEvent(new o9(U,{...Z}))}async function kj$($,U,j,G,X){let J=new Uint8Array(G),Q=h$(J),Z=QU(Q),Y=LV(Q,jI(j,Q.step)),H=_5(Z,Y.replayPayload),D=d$(FV(Y.checkpoint,H));await UI($,U,j,$I($,U,Y.checkpoint,D,H),X)}function $I($,U,j,G,X){let J=[{type:"put",key:F.checkpoint(U),value:G}];if($.options.checkpointHistory>0)J.push({type:"put",key:F.checkpointHistory(U,j.step),value:G});let Q=_S($,U);return{checkpoint:j,serialized:G,...X===void 0?{}:{replayPayload:X},...Q!==void 0?{expectedSerialized:Q}:{},step:j.step,timestamp:j.createdAt,operations:J}}function uj$($,U,j,G,X,J){if(!X)return;J.validateAttributeValueSizes(G??{}),U.operations.push({type:"put",key:F.attribute($),value:M(U.checkpoint.searchAttributes)}),U.operations.push(...a$($,j,U.checkpoint.searchAttributes))}async function UI($,U,j,G,X){lj$($,U,G,X);let J=X.appendTimelineBatchOperations(U,j,G.step,G.timestamp,G.operations),{newHead:Q,timestamp:Z}=ij$($,U,G),Y=$.options.historyPolicy.retentionWindow,H=Y===null?null:await uS($.storage,U,Q.sequence,Y,G.operations),D=a5($,U);if(D!==void 0)G.operations.push(...D.operations);let L=$.storage.capabilities().conditionalBatch,B=wj$(D,L),z=cj$(U,G,L,B);if(await R$($,G.operations,z,()=>{return Error(`Checkpoint commit for workflow "${U}" lost its CAS race against a newer checkpoint.`)}),D!==void 0)t5($,U);if(G.expectedSerialized!==void 0)WJ($,U,G.serialized);if($.pendingTimelineEntries.set(U,J),$.checkpoints.set(U,G.checkpoint),$.eventLogHeads.set(U,Q),H!==null)dj$($,U,H,X);if(FQ($,U,"events",{workflowId:U,selector:"events",kind:"workflow:checkpoint",sequence:Q.sequence,timestamp:Z,payload:{step:G.step}}),X.swallowPromiseRejection(X.pruneCheckpointHistory(U,G.step)),pj$($,Q.sequence))await X.enforceHistoryCircuitBreaker(U)}function wj$($,U){if(!U)return[];return $?.conditions??[]}function cj$($,U,j,G){let X=[];if(j&&U.expectedSerialized!==void 0)X.push({key:F.checkpoint($),expectedValue:U.expectedSerialized});return X.push(...G),X}function pj$($,U){let j=$.options.historyPolicy.maxEvents;return j!==null&&U+1>j}function dj$($,U,j,G){let X=$.options.archiveAdapter;if(X===null||j.deletedEntries.length===0)return;let{from:J,to:Q}=j.deletedRange,Z=`events:${J}-${Q}`,Y=wS(j.deletedEntries);G.swallowPromiseRejection(Promise.resolve().then(()=>X.store(U,Z,Y)))}function lj$($,U,j,G){if(j.serialized.byteLength>=$.options.checkpointSizeWarningThreshold)G.dispatchEvent(new $2(U,j.serialized.byteLength,j.step))}function ij$($,U,j){return new I4($.storage,U).appendToBatch({type:"workflow:checkpoint",payload:DT(j.step,j.replayPayload)},j.operations,$.eventLogHeads.get(U)??Q9,$.workflowVersionTuples.get(U))}function jI($,U){let j="step"in $?$.step:void 0;if(typeof j==="number"&&Number.isSafeInteger(j)&&j>=0)return j;return Math.max(0,U-1)}async function GI($,U,j){let G=$.options.checkpointHistory;if(G<=0)return;let X=j-G;if(X<1)return;let J=F.checkpointHistory(U,X);await $.storage.delete(J)}function XI($,U,j){if(!$.options.development)return;let G=$.inlineStrategy?.getContext(U);if(!G)return;let X=G.stepIndex,J=$.checkpoints.get(U);if(!J)return;let Q=cV({...J,locals:G.checkpointLocals,accumulatedResults:G.checkpointAccumulatedResults});if(!Q.valid){let Z=Q.divergences.map((H)=>H.path),Y=`Checkpoint at step ${X} has ${Q.divergences.length} non-serializable field(s)`;j.dispatchEvent(new v6(U,Y,Z))}}var JI=V(()=>{h();a4();u();ZP();C9();H$();W4();O9();H9();C3();A6();B$();x1();WQ()});async function QI($,U,j){let G=$.inlineStrategy?.getContext(U);if(!G)return!1;let J=$.registrations.get(G.workflowType)?.constraints;if(!J||J.length===0)return!1;let Q={id:U,type:G.workflowType,status:"running"};for(let Z of J){if(!await nj$(Z,Q))continue;if(rj$(j,U,Z),Z.onViolation==="warn"){sj$(U,Z);continue}let H=Error(`Constraint violated: ${Z.name} (scope: ${Z.scope})`);if(Z.onViolation==="fail")await oj$(j,U,H);else aj$(j,U,H);return!0}return!1}async function nj$($,U){try{let j=$.check(U);return!(j instanceof Promise?await j:j)}catch(j){return console.warn(`[weft] Constraint "${$.name}" check() threw an error:`,j),!0}}function rj$($,U,j){$.dispatchEvent(new Z2(U,j.name,j.scope,j.onViolation))}function sj$($,U){console.warn(`[weft] Constraint "${U.name}" (scope: ${U.scope}) violated on workflow "${$}" \u2014 continuing (onViolation: 'warn')`)}async function oj$($,U,j){$.cancelWorkflowInStrategy(U),await $.failWorkflow(U,j)}function aj$($,U,j){$.feedOperationResult(U,{status:"failed",error:j.message,errorName:j.name,failureCategory:"application"},{value:j})}var ZI=V(()=>{H$()});async function YI($,U,j,G){if(j.type!=="wait-signal"||$.inlineStrategy===null)return!1;let X=$.inlineStrategy,J=X.getContext(U);if(J&&(oy(J)||ay(J)))return!1;if(await G.hasBufferedSignal(U,j.signalName))return!1;if(!await G.runSerializedWorkflowStateWrite(U,async()=>{let Z=await G.loadWorkflowState(U);if($.terminalizingWorkflows.has(U)||!Z||Z.status!=="running")return!1;return X.parkWorkflow(U,{retainContext:!0}),$.parkedInlineWorkflows.add(U),!0}))return!1;if(await G.hasBufferedSignal(U,j.signalName))await G.resumeParkedInlineWorkflow(U);return!0}async function VQ($,U,j){if(!$.parkedInlineWorkflows.has(U))return;$.parkedInlineWorkflows.delete(U);try{await I3($,U,!1,j.createLifecycleCallbacks())}catch(G){let X=await j.getParkedWorkflowResumeDisposition(U);if(X==="resumable")throw $.parkedInlineWorkflows.add(U),G;if(X==="corrupt")throw G}}async function HI($,U,j){if($.terminalizingWorkflows.has(U))return"terminal-or-missing";let G=await j.loadWorkflowState(U);if(!G||G.status!=="running")return"terminal-or-missing";if(!await j.readCheckpointBytes(U))return"corrupt";return"resumable"}async function _I($,U,j){switch(U.type){case"completed":await Cz($,U.workflowId,U.result,j.createTerminationCallbacks());break;case"failed":{let G=Error(U.error);if(U.errorStack)G.stack=U.errorStack;await h4($,U.workflowId,G,j.createTerminationCallbacks(),U.failureCategory??"system");break}case"checkpoint":{let G=j.translateOperationRequest(U.operationRequest);if(await j.persistCheckpoint(U.workflowId,G,U.checkpoint),j.validateDevelopmentCheckpoint(U.workflowId),await j.evaluateConstraints(U.workflowId))break;if(await j.parkInlineWorkflowAfterCheckpoint(U.workflowId,G))break;if(G.type==="wait-signal"&&$.inlineStrategy===null){j.processOperation(U.workflowId,G).catch((J)=>{let Q=J instanceof Error?J:Error(String(J));return h4($,U.workflowId,Q,j.createTerminationCallbacks(),"system")});break}await j.processOperation(U.workflowId,G);break}}}var YP=V(()=>{ZP();N0();x1()});function BQ($){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 zQ($){$.nextRetentionSweepAt=$.options.getNow()+$.options.retentionSweepIntervalMs}function PQ($,U){if(!U.hasConfiguredRetention()){if($.retentionSweepInterval!==null)clearInterval($.retentionSweepInterval??void 0),$.retentionSweepInterval=null;$.nextRetentionSweepAt=null;return}if($.retentionSweepInterval!==null)return;U.setNextRetentionSweepAt(),$.retentionSweepInterval=setInterval(()=>{if(U.setNextRetentionSweepAt(),$.retentionSweepInFlight!==null)return;let G=U.runRetentionSweep().finally(()=>{if($.retentionSweepInFlight===G)$.retentionSweepInFlight=null});$.retentionSweepInFlight=G},$.options.retentionSweepIntervalMs)}async function KQ($,U,j){try{await K3($,void 0,{expiredOnly:!0,limit:$.options.retentionSweepBatchSize,now:$.options.getNow()},j)}catch(G){U("retentionSweep",G)}}function HP($,U){let j=$.registrations.get(U);if(j?.retention)return{type:U,source:"workflow",retention:j.retention};if($.options.retention!==null)return{type:U,source:"engine",retention:$.options.retention};return{type:U,source:"none",retention:null}}function DI($,U=(j)=>HP($,j)){let j=[...$.registrations.keys()].toSorted().map((G)=>U(G));return{defaultRetention:$.options.retention,sweepIntervalMs:$.options.retentionSweepIntervalMs,sweepBatchSize:$.options.retentionSweepBatchSize,nextSweepAt:$.nextRetentionSweepAt,workflowTypes:j}}var _P=V(()=>{AJ()});function o3($){return{createLifecycleCallbacks:()=>G4($),createTerminationCallbacks:()=>V$($),evaluateConstraints:(U)=>QI(W($),U,Dv($)),getParkedWorkflowResumeDisposition:(U)=>HI(W($),U,o3($)),hasBufferedSignal:(U,j)=>RE(W($),U,j),loadWorkflowState:(U)=>J$(W($),U),parkInlineWorkflowAfterCheckpoint:(U,j)=>YI(W($),U,j,o3($)),persistCheckpoint:(U,j,G)=>tj$($,U,j,G),processOperation:(U,j)=>uv(W($),U,j,QP($)),readCheckpointBytes:(U)=>W($).storage.get(F.checkpoint(U)),resumeParkedInlineWorkflow:(U)=>VQ(W($),U,o3($)),runSerializedWorkflowStateWrite:(U,j)=>e4(W($),U,j),translateOperationRequest:(U)=>kv(W($),U),validateDevelopmentCheckpoint:(U)=>XI(W($),U,{dispatchEvent:(j)=>{$.dispatchEvent(j)}})}}function tj$($,U,j,G){return ey(W($),U,j,G,{appendTimelineBatchOperations:(X,J,Q,Z,Y)=>ty(W($),X,J,Q,Z,Y),swallowPromiseRejection:(X)=>{C6(X)},validateAttributeValueSizes:bU,pruneCheckpointHistory:(X,J)=>GI(W($),X,J),dispatchEvent:(X)=>{$.dispatchEvent(X)},enforceHistoryCircuitBreaker:(X)=>b9(W($),X,"timed-out",V$($),hX)})}function ej$($){PQ(W($),{hasConfiguredRetention:()=>BQ(W($)),runRetentionSweep:()=>KQ(W($),(U,j)=>V$($).handleCleanupError(U,j),(U)=>s6(W($),U,V$($))),setNextRetentionSweepAt:()=>zQ(W($))})}var LI=V(()=>{h();d4();EU();cU();ry();JI();ZI();YP();S1();tJ();_P();L0();j4();o6();x1();DQ();cU();_v(($)=>ej$($))});async function FI($,U){let j=[],G=new I4($.storage,U);for await(let X of G.scan())j.push({type:X.type,timestamp:X.timestamp,data:qV(X.payload)});return j}async function WI($,U){if($.options.checkpointHistory<=0)return[];let j=`${F.checkpoint(U)}:`,G=[];for await(let[,X]of $.storage.scan(j,{reverse:!0,limit:$.options.checkpointHistory})){let J=h$(X);G.push({step:J.step,timestamp:J.createdAt,sizeBytes:X.byteLength})}return G}async function VI($,U,j){let G=await $.storage.get(F.checkpointHistory(U,j));if(!G)return null;let X=await Y9($.storage,U,h$(G));return MV({step:X.step,locals:X.locals,searchAttributes:X.searchAttributes,version:X.version,createdAt:X.createdAt})}async function BI($,U){let j=[];for await(let[,G]of $.storage.scan(F.timelinePrefix(U))){let X;try{X=A(G)}catch{continue}if(qT(X))j.push({...X,inputSummary:AV(X.inputSummary)??X.inputSummary,...X.outputSummary!==void 0?{outputSummary:AV(X.outputSummary)??X.outputSummary}:{}})}return j.sort((G,X)=>G.step-X.step),j}async function zI($,U,j){let G=await $.storage.get(F.checkpointHistory(U,j));if(!G)return null;let J=await new I4($.storage,U).replay(Math.max(j-1,-1)),Q=await Y9($.storage,U,h$(G)),Z=await P0($.storage,U);return{checkpoint:MV({step:Q.step,locals:Q.locals,searchAttributes:Q.searchAttributes,version:Q.version,createdAt:Q.createdAt}),accumulatedResults:Q.accumulatedResults.map(([Y,H])=>[Y,J9(H)]),events:J.map((Y)=>({type:Y.type,timestamp:Y.timestamp,data:qV(Y.payload)})),...Z!==null?{compactedBefore:Z.sequence}:{}}}var PI=V(()=>{h();a4();u();XU();C9();H9();C3();B$();N$()});function KI($,U){let j=0,G=$.length;while(j<G){let X=j+G>>>1;if($[X].timestamp<U)j=X+1;else G=X}return j}class DP{#$;#U;#j;constructor($){this.#$=$,this.#U=[],this.#j=0}record($,U){if(this.#U.push({timestamp:$,failed:U}),U)this.#j++;this.#G($)}rate($){if(this.#G($),this.#U.length===0)return 0;return this.#j/this.#U.length}#G($){let U=$-this.#$,j=KI(this.#U,U);if(j===0)return;for(let G=0;G<j;G++)if(this.#U[G].failed)this.#j--;this.#U.splice(0,j)}}class LP{#$;#U;#j;constructor($){this.#$=$,this.#U=[],this.#j=[]}record($,U){this.#U.push({timestamp:$,value:U}),this.#G(U),this.#J($)}percentile($,U){if(this.#J(U),this.#j.length===0)return 0;let j=Math.ceil($/100*this.#j.length)-1;return this.#j[Math.max(0,j)]??0}#G($){let U=0,j=this.#j.length;while(U<j){let G=U+j>>>1;if(this.#j[G]<$)U=G+1;else j=G}this.#j.splice(U,0,$)}#X($){let U=0,j=this.#j.length;while(U<j){let G=U+j>>>1;if(this.#j[G]<$)U=G+1;else j=G}if(U<this.#j.length&&this.#j[U]===$)this.#j.splice(U,1)}#J($){let U=$-this.#$,j=KI(this.#U,U);if(j===0)return;for(let G=0;G<j;G++)this.#X(this.#U[G].value);this.#U.splice(0,j)}}var $8$=1e4,FP;var NI=V(()=>{H$();E$();FP=class FP{#$;#U;#j;#G;#X;#J;#Q;#Z;#Y;constructor($,U,j=Date.now){this.#$=$,this.#U=U,this.#Z=j,this.#J=0,this.#Q=new Set,this.#X=[],this.#j=[];for(let G of U.rules)this.#j.push({rule:G,status:"idle",currentValue:0});this.#G=new Map;for(let G=0;G<U.rules.length;G++){let X=U.rules[G],J=X.window?b$(X.window):60000;if(X.metric==="workflow.failure_rate")this.#G.set(G,new DP(J));else if(X.metric==="activity.p99_duration")this.#G.set(G,new LP(J))}this.#D(),this.#Y=setInterval(this.#H.bind(this),$8$)}#H(){for(let $=0;$<this.#U.rules.length;$++)this.#L($)}#D(){let $=this.#U.rules.some((G)=>G.metric==="workflow.failure_rate"),U=this.#U.rules.some((G)=>G.metric==="activity.p99_duration");if($){let G=(X)=>{let J=this.#Z();for(let Q=0;Q<this.#U.rules.length;Q++){if(this.#U.rules[Q].metric!=="workflow.failure_rate")continue;this.#G.get(Q).record(J,X),this.#L(Q)}};this.#_("workflow:completed",()=>G(!1));for(let X of["workflow:failed","workflow:timed-out","workflow:cancelled"])this.#_(X,()=>G(!0))}if(U)this.#_("activity:completed",(G)=>{if(!(G instanceof i9))return;let X=this.#Z();for(let J=0;J<this.#U.rules.length;J++){if(this.#U.rules[J].metric!=="activity.p99_duration")continue;this.#G.get(J).record(X,G.duration),this.#L(J)}});if(this.#U.rules.some((G)=>G.metric==="storage.size"))this.#_("storage:size-reported",(G)=>{if(!(G instanceof j2))return;this.#J=G.sizeBytes;for(let X=0;X<this.#U.rules.length;X++){if(this.#U.rules[X].metric!=="storage.size")continue;this.#L(X)}})}#_($,U){this.#X.push({type:$,handler:U}),this.#$.addEventListener($,U)}#L($){let U=this.#U.rules[$],j=this.#j[$],G=this.#Z(),X=0,J=U.threshold;if(U.metric==="workflow.failure_rate")X=this.#G.get($).rate(G);else if(U.metric==="activity.p99_duration")X=this.#G.get($).percentile(99,G);else if(U.metric==="storage.size")X=this.#J;if(j.currentValue=X,X>=J&&j.status==="idle")j.status="firing",j.lastFiredAt=G,this.#$.dispatchEvent(new J2(U.metric,J,X,U.window)),this.#F(U,"alert:fired",X);else if(X<J&&j.status==="firing")j.status="idle",j.lastResolvedAt=G,this.#$.dispatchEvent(new Q2(U.metric,J,X,U.window)),this.#F(U,"alert:resolved",X)}#F($,U,j){if($.action==="log")console.warn(`[weft:alert] ${U}: ${$.metric} = ${j} (threshold: ${$.threshold})`);if($.action==="webhook")this.#W($,U,j)}#W($,U,j){let G=this.#U.webhooks??[];for(let X of G){if(!X.events.includes(U))continue;let J=new AbortController;this.#Q.add(J);let Q={event:U,alert:{metric:$.metric,threshold:$.threshold,currentValue:j,window:$.window,timestamp:this.#Z()}};fetch(X.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Q),signal:AbortSignal.any([J.signal,AbortSignal.timeout(30000)])}).catch(()=>{}).finally(this.#Q.delete.bind(this.#Q,J))}}get states(){return this.#j}[Symbol.dispose](){if(this.#Y!==null)clearInterval(this.#Y),this.#Y=null;for(let{type:$,handler:U}of this.#X)this.#$.removeEventListener($,U);this.#X=[];for(let $ of this.#Q)$.abort();this.#Q.clear()}}});var WP;var MI=V(()=>{WP=class WP{#$;#U;constructor($,U){this.#$=$,this.#U=U?.timeoutMilliseconds??30000}async execute($){let U=await this.#$.acquire(),j=!1;try{return await new Promise((G)=>{let X=!1,J=(D)=>{if(X)return;X=!0,H(),G(D)},Q=(D)=>{if(D.data.operationId===$.operationId)J(D.data)},Z=(D)=>{J({operationId:$.operationId,status:"failed",error:`Activity worker crashed: ${D.message??"unknown error"}`})},Y=setTimeout(()=>{J({operationId:$.operationId,status:"failed",error:`Activity "${$.activityName}" timed out after ${this.#U}ms (operationId: ${$.operationId})`}),j=!0,U.terminate()},this.#U),H=()=>{clearTimeout(Y),U.removeEventListener("message",Q),U.removeEventListener("error",Z)};U.addEventListener("message",Q),U.addEventListener("error",Z),U.postMessage($)})}finally{if(!j)this.#$.release(U)}}get availableCount(){return this.#$.availableCount}get totalCount(){return this.#$.totalCount}get pendingCount(){return this.#$.pendingCount}[Symbol.dispose](){this.#$[Symbol.dispose]()}async[Symbol.asyncDispose](){await this.#$[Symbol.asyncDispose]()}}});var NQ;var qI=V(()=>{NQ=class NQ{#$;#U;#j;#G;#X;#J;#Q;#Z;#Y;constructor($){this.#$=new Set,this.#U=[],this.#j=[],this.#G=new Map,this.#X=$.concurrency,this.#J=$.workerUrl,this.#Q=$.smol??!1,this.#Z=!1,this.#Y=null}async acquire(){if(this.#Z)throw Error("WorkerPool has been disposed");let $=this.#U.pop();if($)return $;if(this.#$.size<this.#X)return this.#H();return new Promise((U,j)=>{this.#j.push({resolve:U,reject:j})})}async acquireSpecificWorker($){if(this.#Z)throw Error("WorkerPool has been disposed");if(!this.#$.has($))throw Error("Worker does not belong to this WorkerPool");let U=this.#U.indexOf($);if(U>=0)return this.#U.splice(U,1),$;return new Promise((j,G)=>{let X=this.#G.get($)??[];X.push({resolve:j,reject:G}),this.#G.set($,X)})}discard($){if(!this.#$.has($))return;this.#$.delete($),this.#_($),this.#L($,Error("Worker was discarded from this WorkerPool")),$.terminate(),this.#W(),this.#V()}release($){if(this.#Z&&!this.#Y)return;let U=this.#G.get($);if(U&&U.length>0){let G=U.shift();if(U.length===0)this.#G.delete($);G.resolve($);return}let j=this.#j.shift();if(j){j.resolve($);return}this.#U.push($),this.#V()}get availableCount(){return this.#U.length}get totalCount(){return this.#$.size}get pendingCount(){let $=0;for(let U of this.#G.values())$+=U.length;return this.#j.length+$}[Symbol.dispose](){if(this.#Z)return;this.#Z=!0,this.#D()}async[Symbol.asyncDispose](){if(this.#Z)return;if(this.#Z=!0,this.#F(Error("WorkerPool has been disposed")),this.#U.length===this.#$.size){this.#D();return}return new Promise(($)=>{this.#Y=()=>{this.#D(),$()}})}#H(){let $={};if(this.#Q)$.smol=!0;let U=new Worker(this.#J,$);return this.#$.add(U),U}#D(){this.#F(Error("WorkerPool has been disposed"));for(let $ of this.#$)$.terminate();this.#$.clear(),this.#U.length=0,this.#j.length=0,this.#G.clear()}#_($){let U=this.#U.indexOf($);if(U>=0)this.#U.splice(U,1)}#L($,U){let j=this.#G.get($);if(!j)return;this.#G.delete($);for(let G of j)G.reject(U)}#F($){let U=this.#j.splice(0);for(let j of U)j.reject($);for(let j of this.#G.values())for(let G of j)G.reject($);this.#G.clear()}#W(){if(this.#Z)return;while(this.#j.length>0){let $=this.#U.shift();if($){this.#j.shift()?.resolve($);continue}if(this.#$.size<this.#X){this.#j.shift()?.resolve(this.#H());continue}return}}#V(){if(this.#Y&&this.#U.length===this.#$.size)this.#Y(),this.#Y=null}}});function AI($,U,j,G){return{workflowId:j.workflowId,workflowType:j.workflowType,startedAt:j.startedAt??$.getNow(),abortController:G,getNow:$.getNow,nestingDepth:j.nestingDepth??0,executionStateOwnerId:j.executionStateOwnerId??j.workflowId,...j.sleepReferenceTime!==void 0&&{sleepReferenceTime:j.sleepReferenceTime},...$.resolveWorkflowType!==void 0&&{resolveWorkflowType:$.resolveWorkflowType},...U.searchAttributes&&{searchAttributeSchema:U.searchAttributes},...j.deadline!==void 0&&{deadline:j.deadline},...U8$($,j.workflowId),services:$.getWorkflowServices?.(j.workflowId),...j8$($)}}function U8$($,U){let{registerCancelHandler:j,recordFinalizerState:G}=$;return{...j!==void 0&&{registerCancelHandler:(X)=>j(U,X)},...G!==void 0&&{recordFinalizerState:(X)=>G(U,X)}}}function j8$($){let U=$.getLogSink?.();return U===void 0?{}:{logSink:U}}function OI($){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 VP;var CI=V(()=>{fJ();l6();VP=class VP{#$;#U;#j;#G;#X;#J;#Q;#Z;constructor($){this.#$=$,this.#U=new Map,this.#j=new Map,this.#G=new Map,this.#X=new Map,this.#J=new Map,this.#Q=new Map,this.#Z=null}onMessage($){this.#Z=$}startWorkflow($){let U=this.#$.getRegistration($.workflowType);if(!U){this.#L({type:"failed",workflowId:$.workflowId,error:`No workflow registered with name "${$.workflowType}"`});return}let j=new AbortController;this.#j.set($.workflowId,j);let G=new K0(AI(this.#$,U,$,j)),X=this.#$.getComposedWorkflowInterceptor?.()??null;if(fU(G,X),this.#$.development)G.explain(!0);this.#G.set($.workflowId,G);let J=U.handler(G,$.input);this.#U.set($.workflowId,J),this.#Y($.workflowId,J,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 j=$.operationResult.status==="completed"?$.operationResult.value:void 0,G=$.operationResult.status==="failed"?$.operationResult.failureCategory:void 0,X=$.operationResult.status==="failed"?X5($.operationResult):void 0;if(X)this.#H($.workflowId,U,X,G);else this.#Y($.workflowId,U,j)}cancelWorkflow($){let U=this.#j.get($);if(U)U.abort();this.#F($)}parkWorkflow($,U){let j=U?.retainContext?this.#G.get($)??this.#X.get($):void 0;if(this.#F($),j!==void 0)this.#X.set($,j)}getContext($){return this.#G.get($)}getParkedContext($){return this.#X.get($)}clearParkedContext($){this.#X.delete($)}getAbortController($){return this.#j.get($)}waitForWorkflowTurn($){return this.#Q.get($)}waitForWorkflowAdvance($){return this.#J.get($)}hasGenerator($){return this.#U.has($)}continueWorkflow($,U){let j=this.#U.get($);if(!j)return;this.#Y($,j,U)}throwIntoWorkflow($,U,j){let G=this.#U.get($);if(!G)return;this.#H($,G,U,j)}adoptWorkflow($,U,j,G){this.#X.delete($),this.#U.set($,U),this.#G.set($,j),this.#j.set($,G)}[Symbol.dispose](){this.#U.clear(),this.#j.clear(),this.#G.clear(),this.#X.clear(),this.#J.clear(),this.#Q.clear(),this.#Z=null}async[Symbol.asyncDispose](){this[Symbol.dispose]()}#Y($,U,j){return this.#D($,(async()=>{try{if(this.#j.get($)?.signal.aborted)return;let X=await U.next(j);if(X.done){this.#F($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0}),this.#L({type:"completed",workflowId:$,result:X.value});return}let J=X.value;this.#L({type:"checkpoint",workflowId:$,checkpoint:new ArrayBuffer(0),operationRequest:J})}catch(G){this.#F($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0});let X={type:"failed",workflowId:$,error:G instanceof Error?G.message:String(G),failureCategory:f8(G,{defaultErrorCategory:"application"})};if(G instanceof Error&&G.stack!==void 0)X.errorStack=G.stack;this.#L(X)}})())}#H($,U,j,G){return this.#D($,(async()=>{try{if(this.#j.get($)?.signal.aborted)return;let J=await U.throw(j);if(J.done){this.#F($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0}),this.#L({type:"completed",workflowId:$,result:J.value});return}let Q=J.value;this.#L({type:"checkpoint",workflowId:$,checkpoint:new ArrayBuffer(0),operationRequest:Q})}catch(X){this.#F($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0});let J={type:"failed",workflowId:$,error:X instanceof Error?X.message:String(X),failureCategory:G??f8(X,{defaultErrorCategory:"application"})};if(X instanceof Error&&X.stack!==void 0)J.errorStack=X.stack;this.#L(J)}})())}#D($,U){let j=U.finally(()=>{if(this.#J.get($)===j)this.#J.delete($)});return j.catch(()=>{}),this.#J.set($,j),j}#_($,U){let j=U.finally(()=>{if(this.#Q.get($)===j)this.#Q.delete($)});return j.catch(()=>{}),this.#Q.set($,j),j}#L($){let U=this.#Z?.($);if(U instanceof Promise){this.#_($.workflowId,U);return}this.#Q.delete($.workflowId)}#F($,U){if(this.#U.delete($),this.#j.delete($),this.#G.delete($),this.#X.delete($),!U?.preserveTrackedAdvance)this.#J.delete($);if(!U?.preserveTrackedTurn)this.#Q.delete($)}}});class BP{#$=new Map;#U=new Map;resetWorkflow($){this.#$.delete($),this.#U.delete($)}clear(){this.#$.clear(),this.#U.clear()}recordResume($){this.#$.set($,(this.#$.get($)??0)+1)}beginCheckpointHandling($){if($.type!=="checkpoint")return null;return this.#U.set($.workflowId,(this.#U.get($.workflowId)??0)+1),this.#$.get($.workflowId)??0}finishCheckpointHandling($,U,j){if(U===null)return;let G=(this.#U.get($)??1)-1;if(G>0){this.#U.set($,G);return}this.#U.delete($),this.forgetWorkflowIfClosed($,j)}wasResumedDuringCheckpointHandling($,U){return U!==null&&(this.#$.get($)??0)>U}forgetWorkflowIfClosed($,U){if(!U||this.#U.has($))return;this.#$.delete($)}}function X8$($){if($===void 0)return!0;if(typeof $!=="object"||$===null)return!1;let U=Object.getPrototypeOf($);return U===Object.prototype||U===null}function MQ($){if(typeof $!=="object"||$===null)return!1;let U=$;return G8$.has(U.level)&&typeof U.message==="string"&&typeof U.workflowId==="string"&&typeof U.workflowType==="string"&&typeof U.timestamp==="number"&&Number.isFinite(U.timestamp)&&X8$(U.attributes)}function RI($){return typeof $==="object"&&$!==null&&$.type==="log"}var G8$;var qQ=V(()=>{G8$=new Set(["debug","info","warn","error"])});function H8$($){let U=0;return M(sU($,[],(G)=>{U+=G})).byteLength+U}function a3($,U){let j=H8$($);if(U!==void 0&&j>U)throw new oU(j,U);return j}function yI($){let U=_8$($);D8$(U),L8$(U)}function _8$($){if(typeof $!=="object"||$===null)throw new t$("Worker outbound message must be an object");return $}function D8$($){if(typeof $.workflowId!=="string")throw new t$("Worker outbound message must include workflowId");bI($,"protocolVersion"),bI($,"turnId")}function bI($,U){if($[U]!==void 0&&!Number.isSafeInteger($[U]))throw new t$(`Worker outbound message ${U} must be an integer`)}function L8$($){switch($.type){case"checkpoint":F8$($);return;case"completed":return;case"failed":W8$($);return;case"log":V8$($);return;default:throw new t$("Worker outbound message has an unsupported type")}}function F8$($){if(!($.checkpoint instanceof ArrayBuffer))throw new t$("Worker checkpoint message must include checkpoint bytes");if(typeof $.operationRequest!=="object"||$.operationRequest===null)throw new t$("Worker checkpoint message must include operationRequest")}function W8$($){if(typeof $.error!=="string")throw new t$("Worker failed message must include an error string")}function V8$($){if(!MQ($.record))throw new t$("Worker log message must include a valid log record")}function sU($,U,j){let G=B8$($,U,j);if(G.handled)return G.value;if(U.includes($))throw new t$("Worker protocol message cannot include cyclic values");if(!Oj($).valid)throw new t$("Worker protocol message contains non-cloneable values");return K8$($,U,j)}function B8$($,U,j){if(typeof $==="function"||typeof $==="symbol")throw new t$("Worker protocol message cannot include functions or symbols");let G=z8$($,j);if(G.handled)return G;let X=P8$($,U,j);if(X.handled)return X;if(Array.isArray($))return{handled:!0,value:$.map((J)=>sU(J,U,j))};if(typeof $!=="object"||$===null)return{handled:!0,value:$};return{handled:!1}}function z8$($,U){if($ instanceof ArrayBuffer)return U($.byteLength),{handled:!0,value:{[TI]:$.byteLength}};if(ArrayBuffer.isView($))return U($.byteLength),{handled:!0,value:{[TI]:$.byteLength}};return{handled:!1}}function P8$($,U,j){if($ instanceof Date)return{handled:!0,value:{[J8$]:$.toISOString()}};if($ instanceof Error)return{handled:!0,value:{[Q8$]:{name:$.name,message:$.message}}};if($ instanceof Map)return{handled:!0,value:{[Z8$]:[...$.entries()].map(([G,X])=>[sU(G,U,j),sU(X,U,j)])}};if($ instanceof Set)return{handled:!0,value:{[Y8$]:[...$.values()].map((G)=>sU(G,U,j))}};return{handled:!1}}function K8$($,U,j){U.push($);try{let G={};for(let X of Object.keys($).toSorted())G[X]=sU($[X],U,j);return G}finally{U.pop()}}var g1=1,EI=1000,SI=1048576,zP=4096,xI=60000,gI=5000,vI=5,TI="__weftBinaryBytes",J8$="__weftDate",Q8$="__weftError",Z8$="__weftMap",Y8$="__weftSet",t$,oU;var A0=V(()=>{u();qQ();t$=class t$ extends Error{constructor($){super($);this.name="WorkerProtocolError"}};oU=class oU extends t${actualBytes;maxBytes;constructor($,U){super(`Worker protocol message is ${$} bytes, exceeding limit ${U}`);this.actualBytes=$;this.maxBytes=U}}});class PP{#$;constructor($){this.#$=$}async acquireAndSend($,U){try{let j=await this.#$.pool.acquire();this.#$.ownership.setActive($,j),this.#$.attachWorkerListeners(j),this.#U(j,$,U,"run")}catch(j){this.#$.emit({type:"failed",workflowId:$,error:j instanceof Error?j.message:String(j)})}}postResumeMessage($,U,j){this.#U($,U.workflowId,j,"resume")}async resumeParkedWorkflow($,U,j){try{let G=await this.#$.pool.acquireSpecificWorker(U);if(this.#$.isDisposed()||!this.#$.ownership.activateParked($.workflowId,G)){this.#$.pool.release(G);return}this.#$.attachWorkerListeners(G),this.postResumeMessage(G,$,j)}catch(G){if(this.#$.isDisposed()||this.#$.ownership.getParkedWorker($.workflowId)!==U)return;this.#$.ownership.deleteParked($.workflowId),this.#$.emit({type:"failed",workflowId:$.workflowId,error:G instanceof Error?G.message:String(G)})}}async cancelParkedWorkflow($,U){try{let j=await this.#$.pool.acquireSpecificWorker(U),G={type:"cancel",workflowId:$};if(this.#$.requireProtocolVersion())G.protocolVersion=g1;j.postMessage(G),this.#$.detachWorkerListenersIfIdle(j),this.#$.pool.release(j)}catch{}}#U($,U,j,G){if(!this.#$.validateHostToWorkerMessage(U,j,$))return;try{this.#$.beginTurn($,U,j.turnId??0,G),$.postMessage(j,[N8$(j.checkpoint)])}catch(X){this.#j($,U,X,G)}}#j($,U,j,G){if(this.#$.clearTurn($),G==="resume"){this.#$.discardWorkerAndFailWorkflows($,{targetWorkflowId:U,targetCategory:"system",targetError:j instanceof Error?j.message:String(j),otherCategory:"system",otherError:"Worker was discarded after resume postMessage failed"});return}this.#$.ownership.forgetWorkflow(U),this.#$.detachWorkerListenersIfIdle($),this.#$.pool.release($),this.#$.emit({type:"failed",workflowId:U,error:j instanceof Error?j.message:String(j),failureCategory:"system"})}}function N8$($){if($ instanceof ArrayBuffer)return $;if($.buffer instanceof ArrayBuffer)return $.buffer;throw Error("Worker checkpoint must use an ArrayBuffer-backed view")}var II=V(()=>{A0()});class KP{#$=new Map;#U=new Map;#j=new Map;#G=new Set;resetWorkflow($){this.#G.delete($)}markCancelled($){this.#G.add($)}consumeCancelled($){return this.#G.delete($)}getActiveWorker($){return this.#$.get($)}getParkedWorker($){return this.#U.get($)}getTargetWorker($){return this.getActiveWorker($)??this.getParkedWorker($)}setActive($,U){this.#$.set($,U),this.#j.set(U,$)}releaseActive($){let U=this.#$.get($);if(!U)return;return this.#$.delete($),this.#j.delete(U),U}parkActive($,U){if(this.#$.get($)!==U)return!1;return this.#$.delete($),this.#j.delete(U),this.#U.set($,U),!0}activateParked($,U){if(this.#U.get($)!==U)return!1;return this.#U.delete($),this.setActive($,U),!0}deleteParked($){this.#U.delete($)}isWorkflowClosed($){return!this.#$.has($)&&!this.#U.has($)}activeWorkflowIds(){return[...this.#$.keys()]}workflowIdsForWorker($){let U=[],j=this.#j.get($);if(j)U.push(j);for(let[G,X]of this.#U)if(X===$)U.push(G);return U}forgetWorkflow($){let U=this.#$.get($);if(U)this.#j.delete(U);this.#$.delete($),this.#U.delete($),this.#G.delete($)}clear(){this.#$.clear(),this.#U.clear(),this.#j.clear(),this.#G.clear()}workerIsIdle($){if(this.#j.has($))return!1;for(let U of this.#U.values())if(U===$)return!1;return!0}}function hI($,U){let j={type:"run",protocolVersion:g1,turnId:U.turnId,workflowId:$.workflowId,workflowType:$.workflowType,checkpoint:$.checkpoint,input:$.input,executionStateOwnerId:$.executionStateOwnerId??$.workflowId};if(U.maxProtocolMessageBytes!==void 0)j.maxProtocolMessageBytes=U.maxProtocolMessageBytes;if($.deadline!==void 0)j.deadline=$.deadline;if($.headers)j.headers=$.headers;if(U.hasLogSink)j.hostHasLogSink=!0;return j}function NP($,U){let j={type:"resume",protocolVersion:g1,turnId:U.turnId,workflowId:$.workflowId,checkpoint:$.checkpoint,operationResult:$.operationResult};if(U.maxProtocolMessageBytes!==void 0)j.maxProtocolMessageBytes=U.maxProtocolMessageBytes;if(U.hasLogSink)j.hostHasLogSink=!0;return j}var mI=V(()=>{A0()});class MP{#$=new Map;attach($,U){if(this.#$.has($))return;let j={message:(G)=>{U.message(G.data)},error:U.error,messageerror:U.messageerror};this.#$.set($,j),$.addEventListener("message",j.message),$.addEventListener("error",j.error),$.addEventListener("messageerror",j.messageerror)}detach($){let U=this.#$.get($);if(!U)return;$.removeEventListener("message",U.message),$.removeEventListener("error",U.error),$.removeEventListener("messageerror",U.messageerror),this.#$.delete($)}detachIfIdle($,U){if(U($))this.detach($)}detachAll(){for(let $ of this.#$.keys())this.detach($)}}function fI($,U){try{let j=$?.(U);if(j instanceof Promise)return j.then(()=>!1,()=>!0);return!1}catch{return!0}}function kI($){let U=$.operationRequest;return U.type==="wait-signal"||U.kind==="signal-wait"}function uI($,U,j){if(j!==void 0)try{a3($,j)}catch(X){return X instanceof oU?"dropped-oversize":"dropped-invalid"}if(!MQ($.record))return"dropped-invalid";let G=$.record;if(G.workflowId!==$.workflowId)return"dropped-invalid";if(U!==void 0)try{U(G)}catch{mJ(G)}return"accepted-valid"}var qP=V(()=>{Zz();qQ();A0()});class cI{#$;#U;#j;#G;#X=new WeakMap;constructor($){this.#$=$.floodWindowMs,this.#U=$.floodThreshold,this.#j=$.strikeThreshold,this.#G=$.getNow}recordArrival($){let U=this.#G(),j=this.#J($),G=U-j.windowStartedAt;if(G>=this.#$||G<0)j.windowStartedAt=U,j.arrivalsInWindow=0;return j.arrivalsInWindow+=1,j.arrivalsInWindow>this.#U?"discard":"tolerate"}recordOutcome($,U){switch(U){case"accepted-valid":return"tolerate";case"dropped-oversize":case"dropped-invalid":{let j=this.#J($);return j.lifetimeStrikes+=1,j.lifetimeStrikes>=this.#j?"discard":"tolerate"}default:throw Error(`Unknown forwarded-log outcome: ${String(U)}`)}}forget($){this.#X.delete($)}#J($){let U=this.#X.get($);if(!U)U={windowStartedAt:this.#G(),arrivalsInWindow:0,lifetimeStrikes:0},this.#X.set($,U);return U}}class pI{#$;#U;#j;constructor($){this.#U=$.onLog,this.#j=$.maxProtocolMessageBytes,this.#$=new cI({floodWindowMs:$.floodWindowMs??xI,floodThreshold:$.floodThreshold??gI,strikeThreshold:$.strikeThreshold??vI,getNow:$.getNow??Date.now})}get hasSink(){return this.#U!==void 0}handle($,U,j){if(this.#$.recordArrival($)==="discard")return wI("forwarded-log flooding");if(typeof U.workflowId!=="string"||!j(U.workflowId))return null;let G=uI(U,this.#U,this.#j);if(this.#$.recordOutcome($,G)==="discard")return wI("repeated oversize/invalid forwarded logs");return null}forget($){this.#$.forget($)}}function wI($){let U=`Worker discarded for log abuse: ${$}`;return{targetCategory:"system",targetError:U,otherCategory:"system",otherError:U}}function dI($,U){return new pI({onLog:$?.onLog,maxProtocolMessageBytes:U,getNow:$?.getNow,floodWindowMs:$?.forwardedLogFloodWindowMs,floodThreshold:$?.forwardedLogFloodThreshold,strikeThreshold:$?.forwardedLogStrikeThreshold})}var lI=V(()=>{qP();A0()});class AP{#$;#U;#j;constructor($,U,j){this.#$=$,this.#U=U,this.#j=j}validateHostToWorkerMessage($){try{return a3($,this.#$),null}catch(U){return iI(U,{otherError:"Worker protocol send failed"})}}acceptWorkerMessage($,U){try{if(yI(U),a3(U,this.#$),this.#U)this.#G($,U);return{accepted:!0,message:U}}catch(j){let G=M8$(U);return{accepted:!1,failure:iI(j,{...G===void 0?{}:{targetWorkflowId:G},otherError:G===void 0?"Worker discarded after protocol violation":`Worker discarded after protocol violation for workflow: ${G}`})}}}#G($,U){if(U.protocolVersion!==g1)throw new t$("Worker protocol version mismatch");let j=this.#j.get($);if(!j)throw new t$("Worker message arrived outside an active turn");if((U.type==="log"?void 0:U.turnId)!==j.turnId||U.workflowId!==j.workflowId)throw new t$("Worker message did not match the active turn")}}function iI($,U){return{...U.targetWorkflowId===void 0?{}:{targetWorkflowId:U.targetWorkflowId},failureCategory:$ instanceof oU?"resource":"system",error:$ instanceof Error?$.message:String($),otherError:U.otherError}}function M8$($){if(typeof $!=="object"||$===null)return;let U=$.workflowId;return typeof U==="string"?U:void 0}var nI=V(()=>{A0()});class OP{#$=new Map;#U;#j;constructor($,U){this.#U=$,this.#j=U}begin($,U,j,G){this.clear($);let X={worker:$,workflowId:U,turnId:j,kind:G,timeout:null};if(this.#U!==void 0)X.timeout=setTimeout(()=>{if(this.#$.get($)===X)this.#j(X)},this.#U);this.#$.set($,X)}clear($){let U=this.#$.get($);if(!U)return;if(U.timeout!==null)clearTimeout(U.timeout);this.#$.delete($)}clearAll(){for(let $ of this.#$.keys())this.clear($)}get($){return this.#$.get($)}}var CP;var rI=V(()=>{II();mI();lI();qP();nI();qQ();A0();CP=class CP{#$;#U;#j;#G;#X;#J;#Q;#Z;#Y;#H;#D;#_;#L;#F;#W;#V;#z;constructor($,U){let{workflowTurnTimeoutMs:j,maxProtocolMessageBytes:G,requireProtocolVersion:X=!1,discardOnCancel:J=!1,broadcastEvents:Q=!1}=U??{};if(this.#$=$,this.#U=new KP,this.#j=new MP,this.#J=new BP,this.#Q=j,this.#Z=G,this.#Y=X,this.#H=J,this.#D=dI(U,G),this.#_=new OP(this.#Q,(Z)=>{this.#S(Z)}),this.#L=new AP(this.#Z,this.#Y,this.#_),this.#F=new PP({pool:this.#$,ownership:this.#U,isDisposed:()=>this.#V,requireProtocolVersion:()=>this.#Y,validateHostToWorkerMessage:(Z,Y,H)=>this.#A(Z,Y,H),attachWorkerListeners:(Z)=>{this.#b(Z)},detachWorkerListenersIfIdle:(Z)=>{this.#q(Z)},beginTurn:(Z,Y,H,D)=>{this.#_.begin(Z,Y,H,D)},clearTurn:(Z)=>{this.#_.clear(Z)},discardWorkerAndFailWorkflows:(Z,Y)=>{this.#B(Z,Y)},emit:(Z)=>{this.#N(Z)}}),this.#W=null,this.#G=null,this.#X=null,this.#V=!1,this.#z=1,Q)try{this.#G=new BroadcastChannel("weft:events"),this.#X=(Z)=>{this.#x(Z.data)},this.#G.addEventListener("message",this.#X)}catch{}}onMessage($){this.#W=$}startWorkflow($){this.#U.resetWorkflow($.workflowId),this.#J.resetWorkflow($.workflowId);let U=hI($,this.#P());if(!this.#A($.workflowId,U))return;this.#F.acquireAndSend($.workflowId,U)}resumeWorkflow($){let U=this.#U.getActiveWorker($.workflowId);if(U){this.#J.recordResume($.workflowId);let G=NP($,this.#P());this.#F.postResumeMessage(U,$,G);return}let j=this.#U.getParkedWorker($.workflowId);if(j){let G=NP($,this.#P());this.#F.resumeParkedWorkflow($,j,G);return}if(this.#U.consumeCancelled($.workflowId))return;if(!this.#V)this.#N({type:"failed",workflowId:$.workflowId,error:`No worker assigned for workflow: ${$.workflowId}`})}#P(){return{turnId:this.#z++,maxProtocolMessageBytes:this.#Z,hasLogSink:this.#D.hasSink}}cancelWorkflow($){let U=this.#U.getActiveWorker($);if(U){if(this.#U.markCancelled($),this.#H){this.#B(U,{targetWorkflowId:$,skipTarget:!0,otherCategory:"system",otherError:`Worker discarded during cancellation of workflow: ${$}`});return}let G={type:"cancel",workflowId:$};if(this.#Y)G.protocolVersion=g1;U.postMessage(G),this.#M($);return}let j=this.#U.getParkedWorker($);if(!j)return;if(this.#U.markCancelled($),this.#U.deleteParked($),this.#H){this.#B(j,{targetWorkflowId:$,skipTarget:!0,otherCategory:"system",otherError:`Worker discarded during cancellation of parked workflow: ${$}`});return}this.#F.cancelParkedWorkflow($,j)}[Symbol.dispose](){this.#K(),this.#$[Symbol.dispose]()}async[Symbol.asyncDispose](){this.#K(),await this.#$[Symbol.asyncDispose]()}#K(){if(this.#V=!0,this.#G){if(this.#X)this.#G.removeEventListener("message",this.#X);this.#G.close()}this.#_.clearAll();let $=this.#U.activeWorkflowIds();for(let U of $)this.#M(U);this.#j.detachAll(),this.#U.clear(),this.#J.clear(),this.#W=null}async#O($,U){if(RI(U)){let J=(Z)=>this.#U.getTargetWorker(Z)===$,Q=this.#D.handle($,U,J);if(Q)this.#B($,Q);return}if(!this.#E($,U))return;this.#_.clear($);let j=this.#J.beginCheckpointHandling(U),G=fI(this.#W,U),X=G instanceof Promise?await G:G;try{if(this.#C($,U))return;if(X)return;this.#R($,U,j)}finally{this.#J.finishCheckpointHandling(U.workflowId,j,this.#U.isWorkflowClosed(U.workflowId))}}#C($,U){if(U.type!=="completed"&&U.type!=="failed")return!1;return this.#U.consumeCancelled(U.workflowId),this.#U.deleteParked(U.workflowId),this.#M(U.workflowId),this.#q($),this.#J.forgetWorkflowIfClosed(U.workflowId,this.#U.isWorkflowClosed(U.workflowId)),!0}#R($,U,j){if(U.type!=="checkpoint"||!kI(U))return;if(this.#J.wasResumedDuringCheckpointHandling(U.workflowId,j))return;if(this.#U.parkActive(U.workflowId,$))this.#$.release($)}#T($,U){this.#B($,{targetCategory:"system",targetError:`Worker crashed: ${U.message??"unknown error"}`,otherCategory:"system",otherError:`Worker crashed: ${U.message??"unknown error"}`})}#M($){let U=this.#U.releaseActive($);if(U)this.#_.clear(U),this.#q(U),this.#$.release(U)}#b($){this.#j.attach($,{message:(U)=>{this.#O($,U).catch(()=>{})},error:(U)=>{this.#T($,U)},messageerror:()=>{this.#B($,{targetCategory:"system",targetError:"Worker messageerror event",otherCategory:"system",otherError:"Worker messageerror event"})}})}#q($){this.#j.detachIfIdle($,(U)=>this.#U.workerIsIdle(U))}#A($,U,j){let G=this.#L.validateHostToWorkerMessage(U);if(!G)return!0;if(j)return this.#B(j,{targetWorkflowId:$,targetCategory:G.failureCategory,targetError:G.error,otherCategory:"system",otherError:`Worker discarded after protocol send failure for workflow: ${$}`}),!1;return this.#N({type:"failed",workflowId:$,error:G.error,failureCategory:G.failureCategory}),!1}#E($,U){let j=this.#L.acceptWorkerMessage($,U);if(j.accepted)return!0;return this.#B($,{...j.failure.targetWorkflowId===void 0?{}:{targetWorkflowId:j.failure.targetWorkflowId},targetCategory:j.failure.failureCategory,targetError:j.failure.error,otherCategory:"system",otherError:j.failure.otherError}),!1}#S($){this.#B($.worker,{targetWorkflowId:$.workflowId,targetCategory:"timeout",targetError:`Worker workflow turn timed out after ${this.#Q}ms`,otherCategory:"timeout",otherError:`Worker discarded after workflow turn timed out: ${$.workflowId}`})}#B($,U){let j=this.#U.workflowIdsForWorker($);if(j.length===0){this.#_.clear($),this.#D.forget($);return}for(let G of j){let X=G===U.targetWorkflowId;if(this.#U.forgetWorkflow(G),this.#J.forgetWorkflowIfClosed(G,!0),X&&U.skipTarget)continue;this.#N({type:"failed",workflowId:G,error:X?U.targetError??U.otherError:U.otherError,failureCategory:X?U.targetCategory??U.otherCategory:U.otherCategory})}this.#_.clear($),this.#D.forget($),this.#j.detach($),this.#$.discard($)}#x($){if($.type==="signal:received"&&typeof $.workflowId==="string"){let U=this.#U.getTargetWorker($.workflowId);if(U)U.postMessage($)}}#N($){let U=this.#W?.($);if(U instanceof Promise)U.catch(()=>{})}}});function tI($){let U=q8$($?.ownership??"none");if(U!=="lease")return{ownershipMode:U,leaseTtlMs:sI,leaseRenewIntervalMs:oI,leaseWaitTimeoutMs:aI};let j=N6($?.leaseTtl,"options.leaseTtl")??sI,G=N6($?.leaseRenewInterval,"options.leaseRenewInterval")??oI,X=N6($?.leaseWaitTimeout,"options.leaseWaitTimeout")??aI;return A8$(j,G,X),{ownershipMode:U,leaseTtlMs:j,leaseRenewIntervalMs:G,leaseWaitTimeoutMs:X}}function q8$($){if($!=="none"&&$!=="lease")throw Error(`Unknown ownership posture "${String($)}". Expected 'none' or 'lease'.`);return $}function A8$($,U,j){if($<=0||U<=0||j<=0)throw Error(`ownership: 'lease' requires positive leaseTtl, leaseRenewInterval, and leaseWaitTimeout (got leaseTtl=${$}ms, leaseRenewInterval=${U}ms, leaseWaitTimeout=${j}ms).`);if(U>=$)throw Error(`ownership: 'lease' requires leaseRenewInterval (${U}ms) to be strictly less than leaseTtl (${$}ms), so a renewal fires before the lease can lapse.`)}var sI=30000,oI=5000,aI=60000;var eI=V(()=>{N$()});function RP($){return Object.entries($??{})}function AQ($,U){return $}function Uh($){return O8$($,{bunEnv:typeof Bun<"u"?Bun.env:void 0,processEnv:typeof process<"u"?process.env:void 0})}function O8$($,U){if(U.bunEnv!==void 0)return U.bunEnv[$];if(U.processEnv!==void 0)return U.processEnv[$];return}function C8$($){return $?.development===!0||Uh("WEFT_DEV_WARNINGS")==="1"||Uh("NODE_ENV")==="development"}function Xh($){let j=$?.storage??void 0;if(j===void 0){if(!$h&&C8$($))$h=!0,console.warn("[weft] Engine started with no `storage` configured \u2014 falling back to MemoryStorage. "+"Workflow state is held only in memory and is lost when the process exits, so a crash or restart discards every in-flight workflow. Pass a durable adapter (e.g. SQLiteStorage) via `new Engine({ storage })` for anything beyond tests and local dev. (This warning appears only in development.)");j=new f9}if(!$?.compression)return j;return new iZ(j,$.compression)}function Jh($){return $?.interceptors?[...$.interceptors]:[]}function TP($,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 R8$($){return{retention:V5($?.retention,"options.retention"),retentionSweepIntervalMs:N6($?.retentionSweepInterval,"options.retentionSweepInterval")??GR,retentionSweepBatchSize:$?.retentionSweepBatchSize!==void 0?Math.max(1,Math.floor($.retentionSweepBatchSize)):XR}}function aU($,U){return $??U}function T8$($){return{development:aU($?.development,!1),broadcastEvents:aU($?.broadcastEvents,!1)}}function b8$($){return{checkpointHistory:aU($?.checkpointHistory,10),checkpointSizeWarningThreshold:aU($?.checkpointSizeWarningThreshold,65536),maxNestingDepth:aU($?.maxNestingDepth,10)}}function E8$($){return{historyPolicy:AT($?.history,"options.history"),archiveAdapter:$?.archive??null,payloadSizePolicy:OT($?.payloadSize,"options.payloadSize")}}function S8$($){let U=aU($?.detectSecondInstance,!1),j=U?N6($?.secondInstanceHeartbeatInterval,"options.secondInstanceHeartbeatInterval")??jh:jh;return{secondInstanceDetectionEnabled:U,secondInstanceHeartbeatIntervalMs:j}}function Qh($,U,j){return{storage:$,getNow:j,resolveWorkflowServices:U?.resolveWorkflowServices??null,onLog:U?.onLog??null,...T8$(U),...b8$(U),...R8$(U),...E8$(U),...S8$(U),...tI(U)}}function x8$($){let U=g8$($?.workflowExecutionMode),j=v8$($,U);if(!j)return{mode:"inline",workerExecution:null};return y8$(j)}function g8$($){if($===void 0||$==="inline"||$==="worker")return $;throw Error('options.workflowExecutionMode must be "inline" or "worker" when provided')}function v8$($,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 y8$($){let U=Gh($.workflowTurnTimeoutMs,"options.workerExecution.workflowTurnTimeoutMs",void 0)??EI,j=Gh($.maxProtocolMessageBytes,"options.workerExecution.maxProtocolMessageBytes",void 0)??SI;if(j<zP)throw Error(`options.workerExecution.maxProtocolMessageBytes must be at least ${zP}`);return{mode:"worker",workerExecution:$,workflowTurnTimeoutMs:U,maxProtocolMessageBytes:j,requireProtocolVersion:!0,discardOnCancel:!0}}function Gh($,U,j){if($===void 0)return j;if(typeof $!=="number"||!Number.isSafeInteger($)||$<=0)throw Error(`${U} must be a positive safe integer when provided`);return $}function Zh($){let{options:U,getNow:j,maxNestingDepth:G,development:X,broadcastEvents:J,getRegistration:Q,getComposedWorkflowInterceptor:Z,resolveWorkflowType:Y,registerCancelHandler:H,recordFinalizerState:D,getWorkflowServices:L,getLogSink:B}=$,z=x8$(U);if(z.mode==="worker"){let q=new NQ({workerUrl:z.workerExecution.workerUrl,concurrency:z.workerExecution.poolSize??4,smol:z.workerExecution.smol??!1}),O=B?.(),g={broadcastEvents:J,requireProtocolVersion:z.requireProtocolVersion,discardOnCancel:z.discardOnCancel,workflowTurnTimeoutMs:z.workflowTurnTimeoutMs,maxProtocolMessageBytes:z.maxProtocolMessageBytes,getNow:j,...O!==void 0&&{onLog:O}};return{strategy:new CP(q,g),inlineStrategy:null}}let K=new VP({getRegistration:Q,getNow:j,maxNestingDepth:G,development:X,resolveWorkflowType:Y,...OI({getComposedWorkflowInterceptor:Z,registerCancelHandler:H,recordFinalizerState:D,getWorkflowServices:L,getLogSink:B})});return{strategy:K,inlineStrategy:K}}function Yh($){if(!$)return null;return new WP(new NQ({workerUrl:$.workerUrl,concurrency:$.poolSize??4,smol:$.smol??!1}))}function Hh($,U,j){return U?new FP($,U,j):null}var $h=!1,jh=15000;var _h=V(()=>{NI();PM();PG();MI();qI();CI();d4();rI();A0();eI();N$()});function Lh(){if(bP!==void 0)return bP;return Bun.env.WEFT_DEV_WARNINGS==="1"||Bun.env.NODE_ENV==="development"}function Fh($){bP=$}function Wh($){EP=$}function Vh(){let $=EP;return EP=void 0,$}function Bh(){return Dh}function zh($){return SP.has($)}function Ph($){SP.delete($)}function Kh(){return Lh()}var bP,Dh=0,EP,SP,OQ;var CQ=V(()=>{SP=new Set,OQ=new FinalizationRegistry(($)=>{if(Dh++,$.cleanupInterval!==null)clearInterval($.cleanupInterval),$.cleanupInterval=null;if($.secondInstanceDetectionInterval!==null)clearInterval($.secondInstanceDetectionInterval),$.secondInstanceDetectionInterval=null;if(!$.disposed&&Lh()){if($.testToken!==void 0)SP.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 Nh($){return typeof $==="function"&&typeof $.name==="string"&&"execute"in $&&typeof $.execute==="function"}function Mh($){let U=G4($);return{processPendingUpdatesAfterInlineAdvance:(j)=>U.processPendingUpdatesAfterInlineAdvance(j),swallowPromiseRejection:(j)=>C6(j)}}function qh($,U){return function(){let G=$.deref();if(G===void 0){U.port1.close(),U.port2.close();return}W(G).queuedInlineWorkflowStartFlushScheduled=!1,C6(h3(W(G),Mh(G)))}}async function Ah($){await Mg(W($),Mh($))}function Oh($,U){return function(){let G=$.deref();if(G===void 0){if(U.cleanupInterval!==null)clearInterval(U.cleanupInterval),U.cleanupInterval=null;return}let X=W(G);xb(X.updateCoordinator,(J,Q)=>V$(G).handleCleanupError(J,Q))()}}function Ch($){return function(){let j=$.deref();if(j===void 0)return null;let G=W(j);if(G.disposed)return null;return G.secondInstanceDetector}}function Rh($){if($.cleanupInterval!==null)clearInterval($.cleanupInterval??void 0),$.cleanupInterval=null;if($.cleanupIntervalDisposalTracker!==null)$.cleanupIntervalDisposalTracker.disposed=!0,$.cleanupIntervalDisposalTracker.cleanupInterval=null,OQ.unregister($.cleanupIntervalDisposalTracker),$.cleanupIntervalDisposalTracker=null}var xP=V(()=>{$3();cU();CQ();M0();S1();o6()});function RQ($){$.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(),qg($),$.scheduler[Symbol.dispose](),$.strategy[Symbol.dispose](),$.activityWorkerDispatcher?.[Symbol.dispose](),$.activityWorkerDispatcher=null,$.inlineStrategy=null,Rh($),$.retentionSweepInterval!==null)clearInterval($.retentionSweepInterval??void 0),$.retentionSweepInterval=null;$.nextRetentionSweepAt=null,I8$($),h8$($),$.handleCache.clear();for(let U of $.resultResolvers.values())U.reject(new z6);$.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 I8$($){if($.secondInstanceDetectionInterval!==null)clearInterval($.secondInstanceDetectionInterval??void 0),$.secondInstanceDetectionInterval=null;if($.secondInstanceDetector!==null)$.secondInstanceDetector.stop(),$.secondInstanceDetector=null}function h8$($){if($.leaseManager!==null)$.leaseManager.stop(),$.leaseManager=null}var Th=V(()=>{xP();P$();M0()});function bh($,U,j){if($.terminalizingWorkflows.has(U)){if($.options.development)console.warn(`[weft] ctx.setFinalizerState() called for workflow "${U}" after it began terminalizing; the value is ignored. Record finalizer state while the workflow is still running.`);return}y4(j,$.options.payloadSizePolicy.maxBytes,"finalizer state"),_0($,U,{conditions:[],operations:[{type:"put",key:F.finalizerState(U),value:M(j)}]})}var Eh=V(()=>{h();u();n6()});function Sh($){let{storage:U,holderId:j,getNow:G,ttlMs:X,renewIntervalMs:J,waitTimeoutMs:Q}=$,Z=$.acquirePollIntervalMs??m8$,Y=J,H=!1,D=null,L=null,B=null,z=null,K=!1,q=null,O=$.delay??((j$)=>new Promise((x$)=>setTimeout(x$,j$)));function g(j$){if(K)return;K=!0,$.onLeaseLost?.(j$)}async function k(){let j$=await U.get(F.leaseHolder()),x$=await U.get(F.leaseEpoch());return{epochRaw:x$,holderRaw:j$,epoch:x$===null?null:jJ(x$),holder:j$===null?null:GJ(j$)}}async function m(j$,x$,T$){let X4=G()+X,m1=LB({holderId:j,expiresAt:X4,epoch:T$}),VG=await z$(U,[{key:F.leaseEpoch(),expectedValue:j$},{key:F.leaseHolder(),expectedValue:x$}],[{type:"put",key:F.leaseEpoch(),value:DB(T$)},{type:"put",key:F.leaseHolder(),value:m1}]);if(VG)D=T$,L=DB(T$),B=m1;return VG}async function p(){let{epochRaw:j$,holderRaw:x$,epoch:T$,holder:X4}=await k();if(j$!==null&&T$===null)throw new N9('the "lease:epoch" high-water mark is present but does not decode to a valid epoch');if(j$===null&&x$!==null)throw new N9('a "lease:holder" record exists with no "lease:epoch" key (the lease protocol never deletes the epoch)');if(X4!==null&&G()<X4.expiresAt)return!1;let m1=(T$??0)+1;if(m1>=Number.MAX_SAFE_INTEGER)throw new N9(`the next ownership epoch (${m1}) is at or above the safe-integer ceiling and cannot be minted without bricking future boots`);return m(j$,x$,m1)}async function d(){let j$=G(),x$=j$+Q,T$=null,X4=!0;for(;;){if(H)return;if(!X4&&G()>=x$)throw new AU(G()-j$,T$);if(X4=!1,await p())return;let J4=await U.get(F.leaseHolder());if(T$=J4===null?null:GJ(J4)?.holderId??null,G()>=x$)throw new AU(G()-j$,T$);await O(Z)}}async function Q$(){if(H||K||D===null||B===null)return;let j$=G()+X,T$=LB({holderId:j,expiresAt:j$,epoch:D}),X4;try{X4=await z$(U,[{key:F.leaseHolder(),expectedValue:B}],[{type:"put",key:F.leaseHolder(),value:T$}])}catch{let J4=GJ(B)?.expiresAt??0;if(G()>=J4-Y)g("renewal-unconfirmable");return}if(X4){B=T$;return}g("deposed")}function q$(){if(q!==null)return;q=Q$().catch(()=>{}).finally(()=>{q=null})}function f4(){if(H||z!==null)return;z=setInterval(()=>{q$()},J),z.unref?.()}function Bj(){return L===null?null:L.slice()}function i(){if(z!==null)clearInterval(z),z=null}async function Z$(){if(H=!0,i(),q!==null)await q;if(B===null)return;try{if(await z$(U,[{key:F.leaseHolder(),expectedValue:B}],[{type:"delete",key:F.leaseHolder()}]))B=null}catch{}}function Y$(){H=!0,i()}return{acquire:d,startRenewal:f4,renewOnce:Q$,currentEpochBytes:Bj,release:Z$,stop:Y$}}var m8$=1000;var xh=V(()=>{h();FB();XJ()});async function gP($){let U=await $.get(uW);if(U!==null){let j=new TextDecoder().decode(U);if(!f8$.test(j))throw new N1(null,o0);let G=Number(j);if(!Number.isSafeInteger(G))throw new N1(null,o0);if(G!==o0)throw new N1(G,o0);return}for(let j of k8$)for await(let G of $.scan(j,{limit:1}))throw new N1(null,o0);await $.put(uW,new TextEncoder().encode(String(o0)))}var f8$,k8$;var gh=V(()=>{wW();f8$=/^(?:0|[1-9]\d*)$/,k8$=["wf:","op:","schedule:","ev:","sig:","upd:","idx:"]});async function vh($,U,j,G){if(j==="activityProgress")return $.heartbeatDetails.get(U);let X=$.inlineStrategy;if(!X)throw Error("Workflow queries are not supported when using the worker execution strategy.");let J=X.getContext(U)??X.getParkedContext(U);if(!J)return;let Q=J.queryHandlers.get(j);if(Q)return Q(G);let Z=J.exposedAccessors.get(j);if(!Z)return;return Z()}function c8$($){return u8$.encode(JSON.stringify($))}async function TQ($){try{await $()}catch{}}function p8$($){let{instanceId:U,heartbeatAt:j,sequence:G}=$;return typeof U==="string"&&U.length>0&&typeof j==="number"&&Number.isFinite(j)&&typeof G==="number"&&Number.isInteger(G)&&G>=0}function d8$($){let U;try{U=JSON.parse(w8$.decode($))}catch{return null}if(typeof U!=="object"||U===null)return null;let j=U;return p8$(j)?j:null}function Ih($){let{storage:U,instanceId:j,getNow:G,intervalMs:X}=$,J=$.warn??((k)=>process.emitWarning(k,l8$)),Q=X*(yh+1),Z=0,Y=!1,H=!1,D=new Map,L=new Set;async function B(){let k=[];for await(let[m,p]of U.scan(F.livenessPrefix())){let d=d8$(p);if(d!==null&&d.instanceId!==j)k.push({key:m,heartbeat:d})}return k}async function z(k,m){let p=m-Q*i8$;for(let d of k)if(d.heartbeat.heartbeatAt<p)await TQ(()=>U.delete(d.key))}function K(k){let m=new Set;for(let{key:p,heartbeat:d}of k){if(F.liveness(d.instanceId)!==p)continue;m.add(d.instanceId);let Q$=D.get(d.instanceId),f4=Q$!==void 0&&d.sequence>Q$.sequence?Q$.advances+1:0;if(D.set(d.instanceId,{sequence:d.sequence,advances:f4}),f4>=yh&&!L.has(d.instanceId))L.add(d.instanceId),J(`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(D.keys()))if(!m.has(p))D.delete(p)}let q=!1;async function O(){if(H||q)return;q=!0;let k=!1;try{let m=G(),p=await B();if(!Y)Y=!0,await z(p,m);if(K(p),H)return;Z+=1;let d={instanceId:j,heartbeatAt:m,sequence:Z};k=!0,await TQ(()=>U.put(F.liveness(j),c8$(d)))}finally{if(q=!1,k&&H)await TQ(()=>U.delete(F.liveness(j)))}}async function g(){H=!0,await TQ(()=>U.delete(F.liveness(j)))}return{tick:O,stop:g}}function hh($,U){return function(){let G=$();if(G===null){if(U.secondInstanceDetectionInterval!==null)clearInterval(U.secondInstanceDetectionInterval),U.secondInstanceDetectionInterval=null;return}G.tick().catch(()=>{})}}var u8$,w8$,l8$="WeftSecondInstanceWarning",i8$=10,yh=2;var mh=V(()=>{h();u8$=new TextEncoder,w8$=new TextDecoder});var fh,kh,uh,S9;var wh=V(()=>{h();kW();W9();a4();$3();tV();E$();d4();z9();gV();NU();e5();AJ();DQ();LI();PI();_h();Th();CQ();xP();P$();A6();Eh();fB();W0();M0();YP();S1();xh();N0();P3();jP();JP();SJ();gh();Pz();_P();dJ();cz();mh();L0();j4();o6();x1();qU();HJ();WQ();oz();NU();P$();W0();XJ();CQ();fh=Symbol("engineParkedWorkflowCountForTesting"),kh=Symbol("engineSignalWaiterCountForTesting"),uh=Symbol("engineSleepResolverCountForTesting");S9=class S9 extends EventTarget{static async create($){let U=new S9($);try{await gP(W(U).storage);for(let[G,X]of RP($.activities)){if(G!==X.name)throw new t0("activity",G,X.name);U.#P(X)}for(let[G,X]of RP($.workflows)){if(G!==X.name)throw new t0("workflow",G,X.name);U.register(X)}if(await U.#$(),$.recover!==!1)await U.recoverAll($.acknowledgeUnknownWorkflowTypes!==void 0?{acknowledgeUnknownWorkflowTypes:$.acknowledgeUnknownWorkflowTypes}:{});if($.startScheduler??$.recover!==!1)W(U).scheduler.start()}catch(j){throw await U[Symbol.asyncDispose](),j}return U}constructor($){super();bg(this),W(this).registrations=new Map,W(this).workflowTypesByHandler=new WeakMap;let U=Xh($),j=$?.getNow??Date.now,G=Qh(U,$,j),X=Zh({options:$,getNow:j,maxNestingDepth:G.maxNestingDepth,development:G.development,broadcastEvents:G.broadcastEvents,getRegistration:W(this).registrations.get.bind(W(this).registrations),getComposedWorkflowInterceptor:()=>X6(W(this)),resolveWorkflowType:this.#W.bind(this),registerCancelHandler:(H,D)=>v3(W(this),H,D),recordFinalizerState:(H,D)=>bh(W(this),H,D),getWorkflowServices:(H)=>W(this).workflowServices.get(H),getLogSink:()=>G.onLog??void 0});W(this).storage=U,W(this).abortController=new AbortController,W(this).disposed=!1,W(this).handleCache=new Map,W(this).resultResolvers=new Map,W(this).signalWaiters=new Map,W(this).signalWaitersByWorkflow=new Map,W(this).conditionWaiters=new Map,W(this).updateWaiters=new Map,W(this).updateWaitersByWorkflow=new Map,W(this).sleepResolvers=new Map,W(this).sleepResolversByWorkflow=new Map,W(this).interceptors=Jh($),W(this).composedWorkflowInterceptor=void 0,W(this).composedActivityInterceptor=void 0,W(this).updateCoordinator=new eV(U),W(this).activityRegistry=new b8,W(this).activityRegistriesByWorkflow=new Map,W(this).workflowDefinitionsByName=new Map,W(this).workflowTypeByWorkflowId=new Map,W(this).activityWorkerDispatcher=null,W(this).checkpoints=new Map,W(this).broadcastChannel=null,W(this).pendingNestingDepth=void 0,W(this).pendingParentHeaders=void 0,W(this).pendingExecutionStateOwnerId=void 0,W(this).workflowNestingDepths=new Map,W(this).workflowHeaders=new Map,W(this).workflowStateWriteChains=new Map,W(this).finalizationRegistry=new FinalizationRegistry(Sb(W(this).handleCache)),W(this).options=G,W(this).scheduler=new nX({storage:U,onTimerFired:(H)=>dB(W(this),H,this.#F()),getNow:j,commitTimerCleanup:(H)=>R$(W(this),H,[],()=>Error("Timer cleanup lost its fenced CAS race"))}),W(this).strategy=X.strategy,W(this).inlineStrategy=X.inlineStrategy,W(this).queuedInlineWorkflowStarts=[],W(this).queuedInlineWorkflowStartIds=new Set,W(this).queuedOrLaunchingInlineWorkflowStartIds=new Set,W(this).queuedInlineWorkflowStartFlushScheduled=!1;let J=new WeakRef(this),Q=X.inlineStrategy!==null?new MessageChannel:null;if(W(this).queuedInlineWorkflowStartChannel=Q,Q!==null)Q.port1.onmessage=qh(J,Q);W(this).heartbeatDetails=new Map,W(this).lastHeartbeatDetailsByStep=new Map,W(this).workflowServices=new Map,W(this).pendingAsyncActivities=new Map,W(this).pendingAsyncActivityResolutions=new Map,W(this).pendingStarts=new Set,W(this).pendingScheduleCreations=new Set,W(this).workflowsNeedingTerminalCleanup=new Set,W(this).reviewCoordinator=new aV(U,j),W(this).reviewWaiters=new Map,W(this).reviewWaitersByWorkflow=new Map,W(this).reviewEscalationHandlers=new Map,W(this).workflowReviewIds=new Map,W(this).parkedInlineWorkflows=new Set,W(this).terminalizingWorkflows=new Set,W(this).deliveredPendingUpdateIds=new Map,W(this).cancelHandlersByWorkflow=new Map,W(this).reviewTimerIds=new Map,W(this).pendingWebhooks=new Set,W(this).pendingTimelineEntries=new Map,W(this).pendingAtomicWorkflowCommitSideEffects=new Map,W(this).cleanupIntervalDisposalTracker=null;let Z={disposed:!1,cleanupInterval:null,secondInstanceDetectionInterval:null,testToken:Vh()},Y=setInterval(Oh(J,Z),60000);Z.cleanupInterval=Y,W(this).cleanupInterval=Y,W(this).cleanupIntervalDisposalTracker=Z,OQ.register(this,Z,Z),W(this).retentionSweepInterval=null,W(this).retentionSweepInFlight=null,W(this).nextRetentionSweepAt=null,W(this).secondInstanceDetectionInterval=null,W(this).secondInstanceDetector=null,W(this).leaseManager=null,W(this).inFlightLeaseAcquire=null,W(this).deposed=!1,W(this).tearDownAfterDeposition=()=>{this.#U()},W(this).eventLogHeads=new Map,W(this).workflowFeedListeners=new Map,W(this).workflowVersionTuples=new Map,W(this).workflowVisibilityWatermark=void 0,W(this).workflowVisibilityWatermarkExpiresAt=void 0,W(this).activityWorkerDispatcher=Yh($?.activityExecution),W(this).strategy.onMessage(this.#V.bind(this)),W(this).alertManager=Hh(this,$?.alerts,j),this.#J(),this.#j()}addEventListener($,U,j){super.addEventListener($,U,j)}removeEventListener($,U,j){super.removeEventListener($,U,j)}async#$(){let $=W(this);if($.options.ownershipMode!=="lease")return;if($.disposed)throw new z6;if($.inFlightLeaseAcquire!==null){await $.inFlightLeaseAcquire;return}if($.leaseManager!==null)return;O$($.storage,"conditionalBatch","ownership: 'lease'");let U=Sh({storage:$.storage,holderId:crypto.randomUUID(),getNow:$.options.getNow,ttlMs:$.options.leaseTtlMs,renewIntervalMs:$.options.leaseRenewIntervalMs,waitTimeoutMs:$.options.leaseWaitTimeoutMs,onLeaseLost:(G)=>{if(G==="deposed"){Y3($);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.",WB)}});$.leaseManager=U;let j=(async()=>{try{await U.acquire()}catch(G){if($.leaseManager===U)$.leaseManager=null;throw G}if($.disposed){if(await U.release(),$.leaseManager===U)$.leaseManager=null;throw new z6}U.startRenewal()})();$.inFlightLeaseAcquire=j;try{await j}finally{if($.inFlightLeaseAcquire===j)$.inFlightLeaseAcquire=null}}#U(){let $=W(this);if($.disposed)return;let U=$.leaseManager;RQ($),U?.release().catch(()=>{})}#j(){let $=W(this);if(!$.options.secondInstanceDetectionEnabled)return;let U=Ih({storage:$.storage,instanceId:crypto.randomUUID(),getNow:$.options.getNow,intervalMs:$.options.secondInstanceHeartbeatIntervalMs});$.secondInstanceDetector=U;let j=$.cleanupIntervalDisposalTracker;if(j===null)return;let G=new WeakRef(this),X=setInterval(hh(Ch(G),j),$.options.secondInstanceHeartbeatIntervalMs);$.secondInstanceDetectionInterval=X,j.secondInstanceDetectionInterval=X}#G(){return BQ(W(this))}#X(){zQ(W(this))}#J(){PQ(W(this),{hasConfiguredRetention:()=>this.#G(),runRetentionSweep:()=>this.#Q(),setNextRetentionSweepAt:()=>this.#X()})}async#Q(){return KQ(W(this),($,U)=>this.#Y().handleCleanupError($,U),($)=>s6(W(this),$,this.#Y()))}#Z(){return G4(this)}#Y(){return V$(this)}#H(){return oJ(this)}#D(){return t6(this)}#_(){return o3(this)}#L(){return iU(this)}#F(){return HQ(this)}#W($){return cJ(W(this),$,this.#H())}get state(){let $=W(this).storage;return{execution:(U,j,G)=>new FU($,F.stateExecution(U,j),G),workflow:(U,j,G)=>new FU($,F.stateWorkflow(U,j),G)}}async#V($){return _I(W(this),$,this.#_())}#z($){return F0(W(this),$,this.#D())}register($){if(Nh($))return this.#P($),AQ(this);return vg(W(this),$,this.#H()),AQ(this)}registerWorkflows($){for(let[U,j]of Object.entries($)){if(U!==j.name)throw new t0("workflow",U,j.name);this.register(j)}return AQ(this)}addInterceptor($){W(this).interceptors.push($),W(this).composedWorkflowInterceptor=void 0,W(this).composedActivityInterceptor=void 0}#P($){W(this).activityRegistry.register($.name,$)}resolveRegisteredActivity($){return W(this).activityRegistry.resolve($)}registerActivityFunction($,U,j){W(this).activityRegistry.register($,U,j)}unregisterRegisteredActivity($){W(this).activityRegistry.unregister($)}getWorkflowDefinition($){let U=W(this).registrations.get($);return U===void 0?void 0:TP($,U)}listWorkflowDefinitions(){return[...W(this).registrations.entries()].map(([$,U])=>TP($,U))}getActivityDefinition($){return W(this).activityRegistry.getDefinition($)}listActivityDefinitions(){return W(this).activityRegistry.listDefinitions()}async start($,U,j){if(D3(W(this)),j?.idempotencyKey!==void 0)return Xz(W(this),$,U,j,this.#Z());return U6(W(this),$,U,j,void 0,this.#Z())}async startOrSignal($,U,j,G){return D3(W(this)),Jz(W(this),$,U,j,G,this.#K())}#K(){return{...this.#Z(),signalExistingWorkflow:($,U,j,G)=>this.signal($,U,j,{signalId:G})}}getHandle($){let U=W(this).handleCache.get($);if(U){let j=U.ref.deref();if(j)return j}return OJ(W(this),$)}async list($,U){return LS(W(this),$,U)}async aggregate($,U){return oT(W(this),$,U)}getRetentionOverview(){return DI(W(this),($)=>HP(W(this),$))}async purge($){return gS(W(this),$,(U)=>s6(W(this),U,this.#Y()))}async cancelAll($,U){return vS(W(this),$,U)}async retryFailedAll($,U){return yS(W(this),$,U)}async signalAll($,U,j,G){if(G===void 0)return hB(W(this),$,U,j);return hB(W(this),$,U,j,G)}async deleteAll($,U){return IS(W(this),$,(j)=>s6(W(this),j,this.#Y()),U)}async tagAll($,U,j){return hS(W(this),$,U,j)}async untagAll($,U,j){return mS(W(this),$,U,j)}async schedule($,U,j,G){if(typeof $==="object"){let X=$,J=typeof X.workflow==="string"?X.workflow:X.workflow.name,Q=X.every!==void 0?{every:X.every}:{cron:X.cron??""};return wz(W(this),J,X.input,Q,{...X.id!==void 0&&{id:X.id},...X.overlapPolicy!==void 0&&{overlap:X.overlapPolicy},...X.backfill!==void 0&&{backfill:X.backfill},...X.jitter!==void 0&&{jitter:X.jitter}})}if(j===void 0)throw Error("A cron string or schedule spec must be provided when scheduling by workflow type.");return wz(W(this),$,U,j,G)}async getSchedule($){let U=B0($,"scheduleId"),j=await A9(W(this),U);return j?Av(j):null}async listSchedules($){return Mv(W(this),$)}async pauseSchedule($){return Ov(W(this),$)}async resumeSchedule($){return Cv(W(this),$)}async cancelSchedule($){return Rv(W(this),$)}async updateSchedule($,U){return Tv(W(this),$,U)}[L3]($){return kS(W(this),$)}[fh](){return W(this).parkedInlineWorkflows.size}[kh](){return W(this).signalWaiters.size}[uh](){return W(this).sleepResolvers.size}async signal($,U,j,G){return OE(W(this),$,g4(U),j,{loadWorkflowState:(X)=>J$(W(this),X),dispatchEvent:(X)=>this.dispatchEvent(X),broadcast:(X)=>this.#z(X),getComposedInterceptor:()=>X6(W(this)),resumeParkedInlineWorkflow:(X)=>C6(VQ(W(this),X,this.#_()))},G)}async update($,U,j,G){return EE(W(this),$,g4(U),j,G,this.#L())}async query($,U,j){return vh(W(this),$,g4(U),j)}async getStreamChunks($,U,j){return cy(W(this),$,U,j)}async getOffload($,U){return gy(W(this),$,U)}async fork($,U){return D3(W(this)),Vz(W(this),$,U,this.#Z())}async resume($){return D3(W(this)),uJ(W(this),$,this.#Z())}async recoverAll($){if(await this.#$(),W(this).disposed)throw new z6;return await fb(W(this)),await qv(W(this)),Wz(W(this),this.#Z(),$)}async completeAsyncActivity($,U){await wb(W(this),$,U,{feedOperationResult:(j,G)=>G6(W(this),j,G),finalizeTimeline:(j,G,X)=>R6(W(this),j,G,X)})}async failAsyncActivity($,U){await pb(W(this),$,U,{feedOperationResult:(j,G,X)=>G6(W(this),j,G,X),finalizeTimeline:(j,G,X)=>R6(W(this),j,G,X)})}async cancel($){await Az(W(this),$,this.#Y())}async suspend($){await gz(W(this),$,this.#Y())}async timeout($){await Oz(W(this),$,this.#Y())}async get($){let U=await J$(W(this),$);if(U?.status==="running"&&Ag(W(this),$))return{...U,status:"pending"};return U}async getCurrentCheckpointStep($){let U=W(this).checkpoints.get($);if(U!==void 0)return U.step;let j=await W(this).storage.get(F.checkpoint($));if(j===null)return null;return h$(j).step}async getAttributes($){return zS(W(this),$)}async setAttributes($,U){return PS(W(this),$,U)}async addTags($,...U){return KS(W(this),$,...U)}async removeTags($,...U){return NS(W(this),$,...U)}async getEvents($){return FI(W(this),$)}async*replayWorkflowFeed($,U,j){yield*ky(W(this),$,U,j)}async snapshotWorkflowFeedTail($,U){return uy(W(this),$,U)}subscribeWorkflowFeedCommits($,U,j){return wy(W(this),$,U,j)}async listCheckpoints($){return WI(W(this),$)}async getCheckpointAt($,U){return VI(W(this),$,U)}async getTimeline($){return BI(W(this),$)}async replayTo($,U){return zI(W(this),$,U)}async listReviews($){return cg(W(this),$)}async getReview($,U){return pg(W(this),$,U)}async submitReview($,U){return dg(W(this),$,U,{dispatchEvent:this.dispatchEvent.bind(this)})}async getUpdateResult($){return SE(W(this),$)}async submitCoordinatedUpdate($,U,j,G){return xE(W(this),$,U,j,G,this.#L())}[Symbol.dispose](){let $=W(this).leaseManager;RQ(W(this)),$?.release()}async[Symbol.asyncDispose](){if(!W(this).disposed){let $=W(this).leaseManager;try{await Ah(this)}finally{RQ(W(this)),await W(this).inFlightLeaseAcquire?.catch(()=>{}),await $?.release()}return}this[Symbol.dispose]()}get storage(){return W(this).storage}get scheduler(){return W(this).scheduler}async fireTimer($){await dB(W(this),$,this.#F())}}});var vP={};m$(vP,{shouldEmitEngineLeakWarningForTesting:()=>Kh,setNextEngineLeakWarningTokenForTesting:()=>Wh,setEngineLeakWarningOverrideForTesting:()=>Fh,hasEngineLeakWarningTokenForTesting:()=>zh,getEngineLeakCollectionCountForTesting:()=>Bh,clearEngineLeakWarningTokenForTesting:()=>Ph,assertCompatiblePersistedDataVersion:()=>gP,WorkflowTypeNotRegisteredForRecoveryError:()=>a0,WorkflowTeardownPendingError:()=>E8,WorkflowSuspendNotSupportedError:()=>e0,WorkflowNotRegisteredError:()=>v4,WorkflowNotFoundError:()=>p6,WorkflowHandle:()=>F3,WorkflowConcurrencyLimitExceededError:()=>S8,WorkflowAlreadyExistsError:()=>r$,StartOrSignalConflictError:()=>$9,ScheduleHandle:()=>d3,PersistedDataIncompatibleError:()=>N1,IdempotencyKeyPurgedError:()=>l4,HANDLE_RESULT_PROMISE:()=>L3,EngineLeaseNotHeldError:()=>H3,EngineLeaseCorruptedError:()=>N9,EngineLeaseAcquisitionTimeoutError:()=>AU,EngineDisposedError:()=>z6,EngineCreateNameMismatchError:()=>t0,Engine:()=>S9,ENGINE_SLEEP_RESOLVER_COUNT_FOR_TESTING:()=>uh,ENGINE_SIGNAL_WAITER_COUNT_FOR_TESTING:()=>kh,ENGINE_PARKED_WORKFLOW_COUNT_FOR_TESTING:()=>fh,ENGINE_LEASE_LOST_WARNING_NAME:()=>WB,BulkOperationConfirmationError:()=>F4,BulkDeleteRequiresTerminalWorkflowsError:()=>M1,AsyncActivityTokenNotFoundError:()=>KU,ActivityResolutionError:()=>x8,ActivityReconciliationIndeterminateError:()=>J6,ActivityReconciliationConflictError:()=>UQ,ActivityReconciliationCapabilityError:()=>$Q});var Q6=V(()=>{wh()});var RZ;var YN=V(()=>{RZ={fragmentationVacuumPercent:20,walSizeWarningBytes:104857600,databaseSizeWarningFraction:0.8,databaseSizeCriticalFraction:0.95,longRunningWorkflowMilliseconds:604800000,largeCheckpointBytes:524288,defaultDatabaseSizeLimitBytes:10737418240}});function c_$({database:$}){if($.integrityOk)return[];return[{severity:"critical",section:"database",message:`Database integrity check failed: ${$.integrityError}`}]}function p_$({database:$,thresholds:U}){if($.sizeLimitBytes<=0)return[];let j=$.sizeBytes/$.sizeLimitBytes,G=`Database is at ${(j*100).toFixed(1)}% capacity (${TZ($.sizeBytes)} / ${TZ($.sizeLimitBytes)}).`;if(j>U.databaseSizeCriticalFraction)return[{severity:"critical",section:"database",message:G}];if(j>U.databaseSizeWarningFraction)return[{severity:"warning",section:"database",message:G}];return[]}function d_$({database:$,thresholds:U}){if($.walSizeBytes===null||$.walSizeBytes<=U.walSizeWarningBytes)return[];return[{severity:"warning",section:"database",message:`WAL file is ${TZ($.walSizeBytes)}, which may indicate stalled checkpointing.`}]}function l_$({database:$,thresholds:U}){if($.fragmentationPercent<=U.fragmentationVacuumPercent)return[];return[{severity:"warning",section:"database",message:`Database fragmentation is ${$.fragmentationPercent.toFixed(1)}%. Running VACUUM is recommended.`}]}function i_$({workflows:$,thresholds:U}){let j=$.longestRunning;if(!j||j.elapsedMilliseconds<=U.longRunningWorkflowMilliseconds)return[];return[{severity:"warning",section:"workflows",message:`Workflow "${j.id}" has been running for ${o_$(j.elapsedMilliseconds)}. Consider setting an executionTimeout to prevent runaway workflows.`}]}function n_$({workflows:$,thresholds:U}){let j=$.largestCheckpoint;if(!j||j.sizeBytes<=U.largeCheckpointBytes)return[];return[{severity:"warning",section:"workflows",message:`Workflow "${j.workflowId}" has a ${TZ(j.sizeBytes)} checkpoint. Consider reducing state size to improve serialization performance.`}]}function r_$({queues:$}){let U=[];for(let j of $)if(j.pendingCount>0&&j.inflightCount===0)U.push({severity:"warning",section:"activities",message:`Queue "${j.name}" has ${j.pendingCount} pending operation(s) but nothing in-flight. Workers may be stopped or disconnected.`});return U}function oc($,U){let j={database:$.database,workflows:$.workflows,queues:$.queues,thresholds:{...RZ,...U}};return s_$.flatMap((G)=>G(j))}function TZ($){if($<1024)return`${$} B`;if($<1048576)return`${($/1024).toFixed(1)} KB`;if($<1073741824)return`${($/1048576).toFixed(1)} MB`;return`${($/1073741824).toFixed(1)} GB`}function o_$($){let U=Math.floor($/1000),j=Math.floor(U/60),G=Math.floor(j/60),X=Math.floor(G/24);if(X>0)return`${X}d ${G%24}h`;if(G>0)return`${G}h ${j%60}m`;if(j>0)return`${j}m ${U%60}s`;return`${U}s`}var s_$;var ac=V(()=>{YN();s_$=[c_$,p_$,d_$,l_$,i_$,n_$,r_$]});var ec={};m$(ec,{collectDiagnostics:()=>a_$});async function a_$($,U,j){let G=j?.now??Date.now(),X=j?.sizeLimitBytes??RZ.defaultDatabaseSizeLimitBytes,[J,Q,Z]=await Promise.all([$D$($,U,X),JD$($,G),QD$($)]),Y=oc({database:J,workflows:Q,queues:Z});return{timestamp:G,databasePath:U,database:J,workflows:Q,queues:Z,recommendations:Y}}function HN($,U){let j=$[0]?.[U];return typeof j==="number"?j:0}function tc($,U,j){let G=$[0]?.[U];return typeof G==="string"?G:j}async function t_$($){let[U,j,G,X,J]=await Promise.all([$("PRAGMA page_count"),$("PRAGMA page_size"),$("PRAGMA freelist_count"),$("PRAGMA integrity_check"),$("PRAGMA journal_mode")]);return{pageCount:HN(U,"page_count"),pageSize:HN(j,"page_size"),freelistCount:HN(G,"freelist_count"),integrityResult:tc(X,"integrity_check","ok"),journalMode:tc(J,"journal_mode","unknown")}}function e_$($){if($===":memory:")return{sizeBytes:0,walSizeBytes:null};let U=cZ($+"-wal");return{sizeBytes:cZ($),walSizeBytes:U>0?U:null}}async function $D$($,U,j){if(typeof $.query!=="function")return{sizeBytes:0,sizeLimitBytes:j,walSizeBytes:null,integrityOk:!0,integrityError:null,fragmentationPercent:0,journalMode:"unknown",pageCount:0,pageSize:0,freelistCount:0};let G=await t_$($.query.bind($)),{sizeBytes:X,walSizeBytes:J}=e_$(U),Q=G.integrityResult==="ok",Z=G.pageCount>0?G.freelistCount/G.pageCount*100:0;return{sizeBytes:X,sizeLimitBytes:j,walSizeBytes:J,integrityOk:Q,integrityError:Q?null:G.integrityResult,fragmentationPercent:Z,journalMode:G.journalMode,pageCount:G.pageCount,pageSize:G.pageSize,freelistCount:G.freelistCount}}function UD$($){return $==="timed-out"?"timedOut":$}async function jD$($,U){let j={pending:0,running:0,completed:0,failed:0,cancelled:0,timedOut:0,suspended:0},G=0,X=null,J=1/0;for await(let[Q,Z]of $.scan("wf:")){if(!R1(Q))continue;let Y=U$(Z);if(G++,j[UD$(Y.status)]++,Y.status==="running"&&Y.createdAt<J)J=Y.createdAt,X={id:Y.id,type:Y.type,startedAt:Y.createdAt,elapsedMilliseconds:U-Y.createdAt,currentStep:0}}return{total:G,statusCounts:j,longestRunning:X}}async function GD$($,U){let j=await $.get(F.checkpoint(U.id));if(!j)return;let G=A(j);U.currentStep=G.step}async function XD$($){let U=null,j=0;for await(let[G,X]of $.scan("wf:")){let J=G.indexOf(":ckpt");if(J===-1)continue;if(G.length>J+5)continue;if(X.byteLength>j)j=X.byteLength,U={workflowId:G.slice(3,J),sizeBytes:X.byteLength}}return U}async function JD$($,U){let{total:j,statusCounts:G,longestRunning:X}=await jD$($,U);if(X)await GD$($,X);let J=await XD$($);return{total:j,statusCounts:G,longestRunning:X,largestCheckpoint:J}}async function QD$($){let U=new Map;for await(let[j]of $.scan("op:")){if(j.startsWith("op:inflight:"))continue;if(j.startsWith("op:queued:"))continue;if(j.startsWith("op:resolved:"))continue;if(j.startsWith(F.operationResolvedByTimePrefix()))continue;let X=j.split(":")[1]??"";if(!U.has(X))U.set(X,{pending:0,inflight:0});U.get(X).pending++}for await(let[,j]of $.scan("op:inflight:")){let X=A(j).queue;if(!U.has(X))U.set(X,{pending:0,inflight:0});U.get(X).inflight++}return[...U.entries()].map(([j,G])=>({name:j,pendingCount:G.pending,inflightCount:G.inflight}))}var $p=V(()=>{u();N$();D9();L6();h();ac();YN()});var DN={};m$(DN,{formatVersionCheckReport:()=>FD$,formatDuration:()=>Up,formatDiagnosticReport:()=>LD$,formatBytes:()=>ZG});function ZG($){if($===0)return"0 B";if($<1024)return`${$} B`;if($<1048576)return`${($/1024).toFixed(1)} KB`;if($<1073741824)return`${($/1048576).toFixed(1)} MB`;return`${($/1073741824).toFixed(1)} GB`}function Up($){if($<1000)return`${$}ms`;if($<60000)return`${Math.round($/1000)} seconds`;if($<3600000)return`${Math.round($/60000)} minutes`;if($<86400000){let G=Math.floor($/3600000),X=Math.round($%3600000/60000);if(X>0)return`${G} hours ${X} minutes`;return`${G} hours`}let U=Math.floor($/86400000),j=Math.round($%86400000/3600000);if(j>0)return`${U} days ${j} hours`;return`${U} days`}function ZD$($,U){$.push(Hj.bold("Database:")),$.push(` Size: ${ZG(U.sizeBytes)} (of ${ZG(U.sizeLimitBytes)})`),$.push(` WAL size: ${U.walSizeBytes!==null?ZG(U.walSizeBytes):"N/A"}`),$.push(` Integrity: ${U.integrityOk?"OK":`FAILED: ${U.integrityError}`}`),$.push(` Fragmentation: ${U.fragmentationPercent}%`)}function YD$($,U){if($.push(""),$.push(Hj.bold("Workflows:")),U.total===0){$.push(" Total: 0 (no workflows)");return}let j=U.statusCounts,G=j.suspended>0?`, ${j.suspended} suspended`:"";if($.push(` Total: ${U.total} (${j.running} running, ${j.completed} completed, ${j.failed} failed${G})`),U.longestRunning){let X=U.longestRunning;$.push(` Longest running: ${X.id} (started ${Up(X.elapsedMilliseconds)} ago, step ${X.currentStep})`)}if(U.largestCheckpoint){let X=U.largestCheckpoint;$.push(` Largest checkpoint: ${X.workflowId} (${ZG(X.sizeBytes)})`)}}function HD$($,U){if($.push(""),$.push(Hj.bold("Activities:")),U.length===0){$.push(" No activity queues");return}for(let j of U)$.push(` Queue "${j.name}": ${j.pendingCount} pending, ${j.inflightCount} in-flight`)}function _D$($){return $==="critical"?"!!":"!"}function DD$($,U){if($.push(""),$.push(Hj.bold("Recommendations:")),U.length===0){$.push(" No issues found.");return}for(let j of U)$.push(` ${_D$(j.severity)} ${j.message}`)}function LD$($){let U=[];return ZD$(U,$.database),YD$(U,$.workflows),HD$(U,$.queues),DD$(U,$.recommendations),U.join(`
|
|
55
55
|
`)}function FD$($){let U=[];for(let j of $.workflowTypes)U.push(`${j.type} (${j.storedVersion} \u2192 ${j.registeredVersion}):`),U.push(` ${j.runningCount} running workflows`),U.push(` Compatibility: ${j.compatibility}`),U.push("");switch($.overallVerdict){case"safe":U.push(`Result: ${Hj.green("Safe to deploy.")}`);break;case"unsafe":U.push(`Result: ${Hj.red("UNSAFE: version mismatches found.")}`);break}return U.join(`
|
|
56
56
|
`)}var _N,Hj;var LN=V(()=>{_N=typeof process<"u"&&process.stdout?.isTTY&&!process.env.NO_COLOR,Hj={green:($)=>_N?`\x1B[32m${$}\x1B[0m`:$,red:($)=>_N?`\x1B[31m${$}\x1B[0m`:$,bold:($)=>_N?`\x1B[1m${$}\x1B[0m`:$}});function zD$($){return $.trim().replace(/;+\s*$/u,"").trim()}function PD$($){return VD$.test($)}function jp($){let U=zD$($);if(U.length===0)throw Error("Storage query must not be empty.");if(U.includes(";"))throw Error("Storage query must contain exactly one read-only statement.");if(BD$.test(U))return;if(WD$.test(U)&&PD$(U))return;throw Error("Storage query only supports read-only SELECT and PRAGMA statements.")}var WD$,VD$,BD$;var Gp=V(()=>{WD$=/^PRAGMA\b/iu,VD$=/^PRAGMA\s+(?:[A-Z_][A-Z0-9_]*\.)?[A-Z_][A-Z0-9_]*\s*$/iu,BD$=/^SELECT\b/iu});function bZ($){return[$,f$($)]}function Dp($,U){let{gt:j,gte:G,lt:X,lte:J}=U,Q=["key >= ? AND key < ?"],Z=bZ($);if(j!==void 0)Q.push("key > ?"),Z.push(j);if(G!==void 0)Q.push("key >= ?"),Z.push(G);if(X!==void 0)Q.push("key < ?"),Z.push(X);if(J!==void 0)Q.push("key <= ?"),Z.push(J);return{conditions:Q,parameters:Z}}function Lp($,U={}){let{limit:j,reverse:G}=U,{conditions:X,parameters:J}=Dp($,U),Q=G?"DESC":"ASC",Z=j!==void 0?" LIMIT ?":"";if(j!==void 0)J.push(j);return{parameters:J,sqlSuffix:`WHERE ${X.join(" AND ")} ORDER BY key ${Q}${Z}`}}function Fp($,U){let{conditions:j,parameters:G}=Dp($,U),X=j.join(" AND ");if(U.limit===void 0)return{parameters:G,sql:`DELETE FROM kv WHERE ${X}`};return G.push(U.limit),{parameters:G,sql:`DELETE FROM kv WHERE key IN (SELECT key FROM kv WHERE ${X} ORDER BY key ASC LIMIT ?)`}}function Wp($,U={}){let{parameters:j,sqlSuffix:G}=Lp($,U);return{parameters:j,sql:`SELECT key, value FROM kv ${G}`}}function Vp($,U={}){let{parameters:j,sqlSuffix:G}=Lp($,U);return{parameters:j,sql:`SELECT key FROM kv ${G}`}}var Xp=`CREATE TABLE IF NOT EXISTS kv (
|
|
57
57
|
key TEXT PRIMARY KEY,
|
|
58
58
|
value BLOB NOT NULL
|
|
59
59
|
) WITHOUT ROWID`,Jp="SELECT value FROM kv WHERE key = ?",Qp="INSERT INTO kv (key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value",Zp="DELETE FROM kv WHERE key = ?",Yp="SELECT 1 AS present FROM kv WHERE key = ? LIMIT 1",Hp="SELECT COUNT(*) AS count FROM kv WHERE key >= ? AND key < ?",_p="DELETE FROM kv WHERE key >= ? AND key < ?";var Bp=V(()=>{h()});var YG={};m$(YG,{SQLiteStorage:()=>zp,BunSQLiteStorage:()=>zp});import{Database as KD$}from"bun:sqlite";var zp;var HG=V(()=>{Pj();h();Gp();zG();Bp();zp=class zp{#$;#U;#j;#G;#X;#J;#Q;#Z;#Y;#H=new Map;#D=new Map;#_=new Map;get scanStatementCacheSize(){return this.#H.size}constructor($=":memory:"){this.#U=$===":memory:"?"ephemeral":"local",this.#$=new KD$($),this.#$.exec("PRAGMA journal_mode = WAL"),this.#$.exec("PRAGMA synchronous = NORMAL"),this.#$.exec("PRAGMA cache_size = -64000"),this.#$.exec("PRAGMA mmap_size = 268435456"),this.#$.exec("PRAGMA temp_store = MEMORY"),this.#$.exec("PRAGMA wal_autocheckpoint = 10000"),this.#$.exec(Xp),this.#j=this.#$.prepare(Jp),this.#G=this.#$.prepare(Qp),this.#X=this.#$.prepare(Zp),this.#J=this.#$.prepare(Yp),this.#Q=this.#$.prepare(Hp),this.#Z=this.#$.prepare(_p),this.#Y=this.#$.transaction((U)=>{for(let j of U)if(j.type==="put")this.#G.run(j.key,j.value);else this.#X.run(j.key)})}capabilities(){return{persistence:this.#U,readAfterWrite:"linearizable",scanConsistency:"snapshot",atomicBatch:!0,conditionalBatch:!0,boundedRangeDelete:!0}}async get($){let U=this.#j.get($);if(!U)return null;return new Uint8Array(U.value)}async put($,U){this.#G.run($,U)}async delete($){this.#X.run($)}async has($){return this.#J.get($)!=null}async deletePrefix($){let[U,j]=bZ($);return this.#Z.run(U,j).changes}async deleteRange($,U){let j=L1(U),{parameters:G,sql:X}=Fp($,j),J=this.#_.get(X);if(!J)J=this.#$.prepare(X),this.#_.set(X,J);return J.run(...G).changes}async*scan($,U={}){let{parameters:j,sql:G}=Wp($,U),X=this.#H.get(G);if(!X)X=this.#$.prepare(G),this.#H.set(G,X);let J=X.all(...j);for(let Q of J)yield[Q.key,new Uint8Array(Q.value)]}async*keys($,U={}){let{parameters:j,sql:G}=Vp($,U),X=this.#D.get(G);if(!X)X=this.#$.prepare(G),this.#D.set(G,X);for(let J of X.all(...j))yield J.key}async count($){let[U,j]=bZ($);return this.#Q.get(U,j)?.count??0}scoped($){return m9(this,$)}async batch($){if(g$("batch operations",$.length),$.length===0)return;this.#Y($)}async conditionalBatch($,U){return g$("conditionalBatch conditions",$.length),g$("conditionalBatch operations",U.length),this.#$.transaction((G,X)=>{for(let J of G){let Q=this.#j.get(J.key),Z=Q?new Uint8Array(Q.value):null;if(!f1(Z,J.expectedValue))return!1}for(let J of X)if(J.type==="put")this.#G.run(J.key,J.value);else this.#X.run(J.key);return!0})($,U)}async query($,U){jp($);let j=this.#$.prepare($);try{return j.all(...U??[])}finally{j.finalize()}}[Symbol.dispose](){this.#j.finalize(),this.#G.finalize(),this.#X.finalize(),this.#J.finalize(),this.#Q.finalize(),this.#Z.finalize();for(let $ of this.#H.values())$.finalize();this.#H.clear();for(let $ of this.#D.values())$.finalize();this.#D.clear();for(let $ of this.#_.values())$.finalize();this.#_.clear(),this.#$.close()}}});var xZ={};m$(xZ,{validateRegistrations:()=>ZL$,loadRegistrationsFromModule:()=>YL$,formatValidationReport:()=>DL$});import{resolve as XL$}from"path";function JL$($,U){let j=U.retry?.maxAttempts;if(j!==void 0&&!isFinite(j))return{severity:"error",code:"unbounded-retry",workflowType:$,activityName:U.name,message:`Activity "${U.name}" has retry.maxAttempts = ${j}. Unbounded retries loop indefinitely on persistent failures. Set a finite maxAttempts (e.g. 3) or handle the error explicitly.`};return null}function QL$($,U){if(!U.idempotent&&!U.compensate)return{severity:"error",code:"stateful-without-compensator",workflowType:$,activityName:U.name,message:`Activity "${U.name}" is not marked idempotent and has no compensate function. If this activity has side effects (writes, charges, emails) it cannot participate in ctx.saga() rollback. Either add a compensate function or set idempotent: true.`};return null}function ZL$($,U=[]){let j=[],G=Object.keys($);for(let J of U){let Q=JL$("(standalone)",J);if(Q)j.push(Q);let Z=QL$("(standalone)",J);if(Z)j.push(Z)}let X=j.some((J)=>J.severity==="error");return{workflowCount:G.length,issues:j,valid:!X}}function Ip($,U,j,G){for(let[X,J]of $)if(HL$(J)){if(G.allowOverwrite||!(X in U))U[X]=J}else if(_L$(J)){if(G.allowOverwrite||!j.includes(J))j.push(J)}}async function YL$($){let j=await import(XL$(process.cwd(),$)),G={},X=[],J=j.default;if(J!==null&&typeof J==="object")Ip(Object.entries(J),G,X,{allowOverwrite:!0});let Q=Object.entries(j).filter(([Z])=>Z!=="default");return Ip(Q,G,X,{allowOverwrite:!1}),{registrations:G,activities:X}}function HL$($){return typeof $==="object"&&$!==null&&"handler"in $&&typeof $.handler==="function"}function _L$($){if($===null||typeof $!=="object"&&typeof $!=="function")return!1;let U=$;return typeof U.name==="string"&&typeof U.execute==="function"}function DL$($,U){let j=[];if(j.push(`Validating: ${U}`),j.push(`Workflows scanned: ${$.workflowCount}`),$.issues.length===0)return j.push("No issues found."),j.join(`
|
|
60
60
|
`);j.push(`Issues found: ${$.issues.length}`),j.push("");for(let G of $.issues){let X=G.activityName?`${G.workflowType} / ${G.activityName}`:G.workflowType,J=G.severity==="error"?"error":"warning";j.push(` [${J}] ${X}`),j.push(` ${G.code}: ${G.message}`),j.push("")}return j.join(`
|
|
61
|
-
`).trimEnd()}var gZ=()=>{};var ip={};m$(ip,{runVersionCheck:()=>JF$});async function UF$($){let U=new Map;for await(let[j,G]of $.scan("wf:")){if(!R1(j))continue;let X=U$(G);if(X.status!=="running"&&X.status!=="pending")continue;let J=X.versionTuple.workflowVersion,Q=U.get(X.type);if(!Q)Q={count:0,versionCounts:new Map},U.set(X.type,Q);Q.count++,Q.versionCounts.set(J,(Q.versionCounts.get(J)??0)+1)}return U}function jF$($){let U="",j=0;for(let[G,X]of $)if(X>j)j=X,U=G;return U}function GF$($,U){let j=[];for(let[G,X]of $){let J=U[G];if(!J)continue;let Q=jF$(X.versionCounts),Z=J.version??L5,Y=F5(Q,Z);j.push({type:G,storedVersion:Q,registeredVersion:Z,runningCount:X.count,compatibility:Y})}return j}function XF$($){for(let U of $)if(U.compatibility==="incompatible")return"unsafe";return"safe"}async function JF$($,U){let j=await UF$($),G=GF$(j,U),X=XF$(G);return{workflowTypes:G,overallVerdict:X}}var np=V(()=>{N$();D9();W5()});var ep={};m$(ep,{toActivityCallable:()=>tp,registerModuleExports:()=>FF$});function tp($){let{name:U,execute:j,...G}=$,X=Object.assign(async function(...Q){return j(...Q)},G);return Object.defineProperty(X,"name",{value:U,configurable:!0}),Object.defineProperty(X,"execute",{value:j,enumerable:!0,configurable:!0}),X}function FF$($,U,j){let G=B6($);for(let[X,J]of Object.entries(U))RX(G,{...J,name:X});for(let X of j)if(typeof X==="function")$.register(X);else $.register(tp(X))}var $d=()=>{};function u9($){return $!==null&&typeof $==="object"&&!Array.isArray($)}function S0($){if($===null||typeof $==="string"||typeof $==="boolean"||typeof $==="number"&&Number.isFinite($))return!0;if(Array.isArray($))return $.every(S0);if(!u9($))return!1;return Object.values($).every(S0)}function k$($){return typeof $==="string"&&$.length>0}function nZ($){return Array.isArray($)&&$.every(k$)}function AM($){if(!u9($))return!1;return Object.values($).every((U)=>typeof U==="string")}function OM($){if(!u9($))return!1;return Object.values($).every(S0)}function w9($){return typeof $==="number"&&Number.isFinite($)}function e($,U,j){return{ok:!1,error:{code:$,message:U,...j!==void 0?{requestedProtocolVersion:j}:{}}}}function rZ($,U,j){let G={};for(let[X,J,Q,Z]of j){let Y=U[X];if(Y===void 0){if(J)return{ok:!1,error:e($,Z)};continue}if(!Q(Y))return{ok:!1,error:e($,Z)};G[X]=Y}return{ok:!0,values:G}}var A4=2,Nd=2,Md=2,Kj=[2];var oZ={$ref:"#/$defs/jsonValue"},CM={type:"object",additionalProperties:oZ},qd={type:"object",additionalProperties:{type:"string"}},sZ={const:A4},aZ={register:{type:"object",additionalProperties:!1,required:["type","protocolVersion","workerId","activities"],properties:{type:{const:"register"},protocolVersion:sZ,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:CM}},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:oZ,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:oZ,attempt:{type:"number",minimum:1},headers:qd,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:sZ,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:sZ},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"}}}},Ad={$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(aZ).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:CM,messages:aZ}};function tZ($){let U=$.attemptToken;if(U===void 0)return{ok:!0,message:{}};if(!k$(U))return e("invalid_message","taskResult.attemptToken must be a non-empty string when present");return{ok:!0,message:{attemptToken:U}}}function Od($,U){let j=U.value;if(!S0(j))return e("invalid_message","completed taskResult.value must be valid JSON");let G=tZ(U);if(!G.ok)return G;return{ok:!0,message:{type:"taskResult",operationId:$,status:"completed",value:j,...G.message}}}function Cd($,U){let j=U.error;if(typeof j!=="string")return e("invalid_message","failed taskResult.error must be a string");let G=tZ(U);if(!G.ok)return G;return{ok:!0,message:{type:"taskResult",operationId:$,status:"failed",error:j,...G.message}}}function Rd($,U){let j=U.error;if(typeof j!=="string")return e("invalid_message","cancelled taskResult.error must be a string");let G=U.cancelled;if(G!==void 0&&G!==!0)return e("invalid_message","taskResult.cancelled must be true when present");let X=tZ(U);if(!X.ok)return X;return{ok:!0,message:{type:"taskResult",operationId:$,status:"cancelled",error:j,...G===!0?{cancelled:G}:{},...X.message}}}var Td={completed:Od,failed:Cd,cancelled:Rd};function bd($){return $==="completed"||$==="failed"||$==="cancelled"}function RM($){let U=$.operationId;if(!k$(U))return e("invalid_message","taskResult.operationId must be a non-empty string");let j=$.status;if(!bd(j))return e("invalid_message","taskResult.status must be completed, failed, or cancelled");return Td[j](U,$)}var Ed=new Set(["register","heartbeat","taskResult"]),Sd=new Set(["registerAck","registerError","protocolError","task","cancel","shutdown"]);function xd($){if($===A4)return{ok:!0,message:$};let U=w9($)?$:void 0;return e("unsupported_protocol_version",`Unsupported RemoteWorker protocol version: ${String($)}`,U)}var gd=[["workerId",!0,k$,"register.workerId must be a non-empty string"],["activities",!0,nZ,"register.activities must be an array of non-empty strings"],["concurrency",!1,w9,"register.concurrency must be a finite number"],["queue",!1,k$,"register.queue must be a non-empty string"],["deploymentName",!1,k$,"register.deploymentName must be a non-empty string when present"],["buildId",!1,k$,"register.buildId must be a non-empty string when present"],["runtimeVersion",!1,k$,"register.runtimeVersion must be a non-empty string when present"],["gitSha",!1,k$,"register.gitSha must be a non-empty string when present"],["startedAt",!1,w9,"register.startedAt must be a finite number when present"],["capabilities",!1,OM,"register.capabilities must be a JSON object when present"]];function vd($){let U=xd($.protocolVersion);if(!U.ok)return U;let j=rZ("invalid_registration",$,gd);if(!j.ok)return j.error;return{ok:!0,message:{type:"register",protocolVersion:U.message,...j.values}}}function yd($){let U=$.workerId;if(!k$(U))return e("invalid_message","heartbeat.workerId must be a non-empty string");return{ok:!0,message:{type:"heartbeat",workerId:U}}}var Id=[["operationId",!0,k$,"task.operationId must be a non-empty string"],["activityName",!0,k$,"task.activityName must be a non-empty string"],["input",!0,S0,"task.input must be valid JSON"],["attempt",!1,w9,"task.attempt must be a finite number"],["headers",!1,AM,"task.headers must be a string map"],["attemptToken",!1,k$,"task.attemptToken must be a non-empty string"]];function hd($){let U=rZ("invalid_message",$,Id);if(!U.ok)return U.error;return{ok:!0,message:{type:"task",...U.values}}}function md($){let U=$.operationId;if(!k$(U))return e("invalid_message","cancel.operationId must be a non-empty string");return{ok:!0,message:{type:"cancel",operationId:U}}}function fd(){return{ok:!0,message:{type:"shutdown"}}}function kd($){let U=$.protocolVersion;if(U!==A4)return e("invalid_message",`registerAck.protocolVersion must be ${String(A4)}`);let{workerId:j,queue:G,activities:X,concurrency:J}=$;if(!k$(j))return e("invalid_message","registerAck.workerId must be a non-empty string");if(!k$(G))return e("invalid_message","registerAck.queue must be a non-empty string");if(!nZ(X))return e("invalid_message","registerAck.activities must be a string array");if(typeof J!=="number"||!Number.isFinite(J))return e("invalid_message","registerAck.concurrency must be a finite number");return{ok:!0,message:{type:"registerAck",protocolVersion:U,workerId:j,queue:G,activities:X,concurrency:J}}}function ud($){let{code:U,message:j,supportedProtocolVersions:G,requestedProtocolVersion:X}=$;if(U!=="invalid_registration"&&U!=="unsupported_protocol_version")return e("invalid_message","registerError.code is not recognized");if(typeof j!=="string")return e("invalid_message","registerError.message must be a string");if(!Array.isArray(G)||!G.every((Q)=>Q===A4))return e("invalid_message","registerError.supportedProtocolVersions is invalid");if(X!==void 0&&!w9(X))return e("invalid_message","registerError.requestedProtocolVersion must be a finite number");return{ok:!0,message:{type:"registerError",code:U,message:j,supportedProtocolVersions:G,...X!==void 0?{requestedProtocolVersion:X}:{}}}}function wd($){let{code:U,message:j}=$;if(U!=="invalid_json"&&U!=="invalid_message"&&U!=="unknown_message_type"&&U!=="registration_required")return e("invalid_message","protocolError.code is not recognized");if(typeof j!=="string")return e("invalid_message","protocolError.message must be a string");return{ok:!0,message:{type:"protocolError",code:U,message:j}}}function TM($){if(!u9($))return e("invalid_message","Worker protocol message must be a JSON object");let U=$.type;if(typeof U!=="string")return e("invalid_message","Worker protocol message.type must be a string");if(!Ed.has(U))return e("unknown_message_type",`Unknown worker message type: ${U}`);switch(U){case"register":return vd($);case"heartbeat":return yd($);case"taskResult":return RM($);default:return e("unknown_message_type",`Unknown worker message type: ${U}`)}}function UW$($){if(!u9($))return e("invalid_message","Server protocol message must be a JSON object");let U=$.type;if(typeof U!=="string")return e("invalid_message","Server protocol message.type must be a string");if(!Sd.has(U))return e("unknown_message_type",`Unknown server message type: ${U}`);switch(U){case"registerAck":return kd($);case"registerError":return ud($);case"protocolError":return wd($);case"task":return hd($);case"cancel":return md($);case"shutdown":return fd();default:return e("unknown_message_type",`Unknown server message type: ${U}`)}}u();H$();t();var DY=["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"],il=new Set(DY);function Hq($){return il.has($)}function _q($){let U=new Set;Yq($.scope,U),Yq($.scp,U);let j=$.permissions;if(Array.isArray(j)){for(let G of j)if(typeof G==="string"&&Hq(G))U.add(G)}return U}function Yq($,U){if(typeof $!=="string")return;if($.trim().length===0)return;for(let j of $.split(/\s+/)){if(j.length===0)continue;if(Hq(j))U.add(j)}}function Dq($){let U=_q($),j=typeof $.sub==="string"?$.sub:void 0;return{method:"jwt",scopes:U,claims:$,subject:j,hasScope(G){return U.has(G)}}}function _2($){let U=new Set($.scopes);return{method:"api-key",scopes:U,claims:void 0,subject:$.subject,hasScope(j){return U.has(j)}}}function Lq($){let U=new Set($.scopes);return{method:"mtls",scopes:U,claims:void 0,subject:$.subject,hasScope(j){return U.has(j)}}}function g0(){return nl}function pV$(){let $=new Set(DY);return{method:"stdio-local",scopes:$,claims:void 0,subject:"stdio-local",hasScope(U){return $.has(U)}}}var nl={method:"unauthenticated"};function K$($){return $.method!=="unauthenticated"}t();var $$="2.0",G$=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 D2($){if($===null)return!0;if(typeof $==="string")return!0;if(typeof $==="number"&&Number.isFinite($))return!0;return!1}var w4="0.5.0";t();class Y4 extends y{constructor($){super("McpToolExecutionError",$)}}function R4($,U,j){if(!$.authRequired)return;if(!K$($.principal))throw new Y4(`${j} requires authentication`);if(!$.principal.hasScope(U))throw new Y4(`${j} requires ${U}`)}async function IG($,U){return $.get(U)}async function Rj($,U){return $.list(U)}var v0="2025-11-25",I6="tools/list",Fq="notifications/tools/list_changed",hG="resources/list",mG="resources/templates/list",Wq=1048576;function Vq($,U){return{jsonrpc:$$,id:$,result:U}}function Tj($,U,j,G){return{jsonrpc:$$,id:$,error:G===void 0?{code:U,message:j}:{code:U,message:j,data:G}}}function fG($,U,j){return Tj($,G$.INVALID_PARAMS,U,j)}function Bq($,U){return Tj($,G$.METHOD_NOT_FOUND,`Unknown MCP method: ${U}`,{method:U})}function zq($){return Tj($,G$.INTERNAL_ERROR,"Internal error")}function LY($,U){return Tj($,-32002,"Resource not found",{uri:U})}function FY($,U){return Tj($,-32011,U,{reason:U})}function kG($){if($===null||typeof $!=="object"||Array.isArray($))return!1;let U=$;if(U.jsonrpc!==$$)return!1;return typeof U.method==="string"}function uG($){return $.id===void 0}function y0($){if($===void 0||$===null)return;return typeof $==="number"?`number:${String($)}`:`string:${$}`}function Pq($){try{return{ok:!0,value:JSON.parse($)}}catch{return{ok:!1}}}function Kq($){let[U=""]=$.trim().toLowerCase().split(";");return U.trim()==="application/json"}function WY($,U){if($===null||$.trim().length===0)return!0;return $.split(",").map((j)=>j.split(";")[0]?.trim().toLowerCase()??"").some((j)=>j==="*/*"||j===U)}var rl=["pending","running","completed","failed","cancelled","timed-out","suspended"];function VY($){if(!$i($))return{ok:!1,message:"List filter must be a JSON object"};let U=sl($.status),j=ol($.type,"type"),G=al($.tags,"tags"),X=Nq($.limit,"limit"),J=Nq($.offset,"offset"),Q=tl([U,j,G,X,J]);if(Q!==void 0)return Q;return{ok:!0,filter:el({status:bj(U),type:bj(j),tags:bj(G),limit:bj(X),offset:bj(J)})}}function qq($){let U={},j=$.getAll("status");if(j.length===1)U.status=j[0];if(j.length>1)U.status=j;let G=$.get("type");if(G!==null)U.type=G;let X=$.getAll("tag");if(X.length>0)U.tags=X;let J=$.get("limit");if(J!==null)U.limit=Number(J);let Q=$.get("offset");if(Q!==null)U.offset=Number(Q);return VY(U)}function sl($){if($===void 0)return{ok:!0};if(typeof $==="string")return Mq($)?{ok:!0,value:$}:{ok:!1,message:`Invalid workflow status: ${$}`};if(!Array.isArray($))return{ok:!1,message:"List filter status must be a workflow status or array"};let U=[];for(let j of $){if(typeof j!=="string"||!Mq(j))return{ok:!1,message:"List filter status array contains an invalid workflow status"};U.push(j)}return{ok:!0,value:U}}function ol($,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 al($,U){if($===void 0)return{ok:!0};if(!Array.isArray($))return{ok:!1,message:`List filter ${U} must be an array`};let j=[];for(let G of $){if(typeof G!=="string")return{ok:!1,message:`List filter ${U} must contain only strings`};j.push(G)}return{ok:!0,value:j}}function Nq($,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 tl($){for(let U of $)if(!U.ok)return U;return}function bj($){return $.ok?$.value:void 0}function el($){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 Mq($){return rl.some((U)=>U===$)}function $i($){return $!==null&&typeof $==="object"&&!Array.isArray($)}function Aq(){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 Oq($){return R4($,"workflows:read","Listing workflow resources"),(await Rj($.engine,{})).items.map((j)=>({uri:Ej(j.id,"state"),name:`workflow_${j.id}`,title:`${j.type} workflow ${j.id}`,description:`Current state for workflow ${j.id}.`,mimeType:"application/json"}))}async function BY($,U){R4(U,"workflows:read","Reading workflow resources");let j=Tq($);if(j===null)return null;if(j.kind==="search"){let X=await Rj(U.engine,j.filter);return wG($,X)}let G=await IG(U.engine,j.workflowId);if(G===null)return null;switch(j.kind){case"state":return wG($,G);case"events":return R4(U,"events:read","Reading workflow events"),wG($,{events:await U.engine.getEvents(j.workflowId)});case"checkpoints":return wG($,{checkpoints:await U.engine.listCheckpoints(j.workflowId)})}}async function Cq($,U,j){if(await BY($,j)===null)return!1;return U.subscriptions.add($),!0}function Rq($,U){U.subscriptions.delete($)}function wG($,U){return{contents:[{uri:$,mimeType:"application/json",text:JSON.stringify(U)}]}}function Tq($){let U=Ui($);if(U===null)return null;if(U.pathname==="/search")return ji(U.searchParams);return Gi(U.pathname)}function Ui($){let U;try{U=new URL($)}catch{return null}if(U.protocol!=="weft:"||U.hostname!=="workflows")return null;return U}function ji($){let U=qq($);return U.ok?{kind:"search",filter:U.filter}:null}function bq($){return Tq($)?.kind==="search"}function Gi($){let U=$.split("/").filter(Boolean).map(Xi);if(U.some((X)=>X===null))return null;if(U.length!==2)return null;let[j,G]=U;if(!j)return null;if(G==="state"||G==="events"||G==="checkpoints")return{kind:G,workflowId:j};return null}function Ej($,U){return`weft://workflows/${encodeURIComponent($)}/${U}`}function Xi($){try{return decodeURIComponent($)}catch{return null}}r1();t();var B8=1;class p2 extends y{entityKind;entityName;direction;constructor($,U,j,G){let X=G instanceof Error?G.message:String(G);super("RegistrySchemaConversionError",`Failed to convert ${j} for ${$} "${U}": ${X}`,{cause:G});this.entityKind=$,this.entityName=U,this.direction=j}}function CC($){let U=$.listWorkflowDefinitions(),j=$.listActivityDefinitions(),G=U.toSorted((Z,Y)=>{if(Z.type<Y.type)return-1;if(Z.type>Y.type)return 1;return 0}),X=j.toSorted((Z,Y)=>{if(Z.name<Y.name)return-1;if(Z.name>Y.name)return 1;return 0}),J=Object.create(null);for(let Z of G)J[Z.type]=tr(Z);let Q=Object.create(null);for(let Z of X)Q[Z.name]=er(Z);return{registryVersion:B8,workflows:J,activities:Q}}function tr($){let U={};if($.inputSchema!==void 0)U.inputSchema=CX("workflow",$.type,"inputSchema",$.inputSchema);if($.outputSchema!==void 0)U.outputSchema=CX("workflow",$.type,"outputSchema",$.outputSchema);if($.description!==void 0)U.description=$.description;if($.tags.length>0)U.tags=[...$.tags];return U}function er($){let U={queue:$.queue};if($.inputSchema!==void 0)U.inputSchema=CX("activity",$.name,"inputSchema",$.inputSchema);if($.outputSchema!==void 0)U.outputSchema=CX("activity",$.name,"outputSchema",$.outputSchema);if($.description!==void 0)U.description=$.description;return U}function CX($,U,j,G){try{return L4(G,j==="inputSchema"?"input":"output")}catch(X){throw new p2($,U,j,X)}}r1();var RC=new WeakMap,OW=30000,AW=2147483647;function s1($){return bC($).tools.map((U)=>U.definition)}async function TC($,U,j){let G=bC(j.engine).toolsByName.get($);if(G===void 0)return TX(`Unknown tool: ${$}`);try{let X=await G.call(U??{},j);return _s(X)}catch(X){if(X instanceof Y4)return TX(X.message);if(X instanceof Error&&X.message==="Workflow cancelled")return TX(X.message);return console.warn("MCP tool execution failed:",X),TX("Tool execution failed")}}function bC($){let U=$s($),j=RC.get($);if(j!==void 0&&Us(j.signature,U))return j;let G=js($),X={signature:U,tools:G,toolsByName:new Map(G.map((J)=>[J.definition.name,J]))};return RC.set($,X),X}function $s($){return $.listWorkflowDefinitions().toSorted((U,j)=>U.type<j.type?-1:U.type>j.type?1:0).map((U)=>[U.type,U.description,U.inputSchema])}function Us($,U){if($.length!==U.length)return!1;for(let j=0;j<$.length;j++){let G=$[j],X=U[j];if(G===void 0||X===void 0)return!1;if(G[0]!==X[0]||G[1]!==X[1]||G[2]!==X[2])return!1}return!0}function js($){let U=[...Hs()],j=new Set(U.map((G)=>G.definition.name));for(let G of $.listWorkflowDefinitions().toSorted((X,J)=>X.type<J.type?-1:X.type>J.type?1:0)){if(G.inputSchema===void 0)continue;let X=Ls(Ds(G.type),j);j.add(X),U.push({definition:{name:X,title:G.type,description:G.description??`Run Weft workflow ${G.type}.`,inputSchema:Gs(G.type,G.inputSchema)},call:async(J,Q)=>{R4(Q,"workflows:write","Calling workflow tools");let{input:Z,timeoutMs:Y}=Js(J),H=crypto.randomUUID();Q.session.trackRequest(Q.requestId,H);try{if(Q.session.isRequestCancelled(Q.requestId))throw new Y4("Workflow cancelled");let D=await B6(Q.engine).start(G.type,Z,{id:H});if(Q.session.isRequestCancelled(Q.requestId))await Q.engine.cancel(D.id);let L=await Zs(D,{timeoutMs:Y,signal:Q.session.requestSignal(Q.requestId)});if(L.status==="timed-out")return Ys(D.id,Y);return{workflowId:D.id,result:L.result}}finally{Q.session.untrackRequest(Q.requestId)}}})}return U.toSorted((G,X)=>G.definition.name<X.definition.name?-1:1)}function Gs($,U){try{return Xs(L4(U,"input"))}catch(j){throw new p2("workflow",$,"inputSchema",j)}}function Xs($){return{type:"object",additionalProperties:!1,required:["input"],properties:{input:$,timeoutMs:{type:"integer",minimum:1,maximum:AW,default:OW,description:"Maximum milliseconds to wait for the workflow result before returning a running status."}}}}function Js($){if($===null||typeof $!=="object"||Array.isArray($))return{input:$,timeoutMs:OW};let U=$,j=Qs(U.timeoutMs);return{input:U.input,timeoutMs:j}}function Qs($){if($===void 0)return OW;if(typeof $==="number"&&Number.isSafeInteger($)&&$>=1&&$<=AW)return $;throw new Y4(`Tool argument "timeoutMs" must be an integer from 1 to ${AW}`)}async function Zs($,U){if(U.signal?.aborted)throw new Y4("Workflow cancelled");let j,G,X=$.result().then((Z)=>({status:"completed",result:Z})),J=new Promise((Z)=>{j=setTimeout(()=>Z({status:"timed-out"}),U.timeoutMs)}),Q=U.signal===void 0?void 0:new Promise((Z,Y)=>{let H=()=>Y(new Y4("Workflow cancelled"));U.signal?.addEventListener("abort",H,{once:!0}),G=()=>U.signal?.removeEventListener("abort",H)});try{return await Promise.race(Q===void 0?[X,J]:[X,J,Q])}finally{if(j!==void 0)clearTimeout(j);G?.()}}function Ys($,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 Hs(){return[{definition:{name:"start_workflow",description:"Start a Weft workflow and return its workflow id.",inputSchema:l0({type:{type:"string"},input:{},id:{type:"string"}},["type"])},call:async($,U)=>{R4(U,"workflows:write","Starting workflows");let j=d0($),G=K1(j.type,"type"),X=j.input??{},J=typeof j.id==="string"?{id:j.id}:void 0;return{workflowId:(await B6(U.engine).start(G,X,J)).id}}},{definition:{name:"signal_workflow",description:"Send a signal to a Weft workflow.",inputSchema:l0({workflowId:{type:"string"},signalName:{type:"string"},payload:{}},["workflowId","signalName"])},call:async($,U)=>{R4(U,"signals:write","Signalling workflows");let j=d0($),G=K1(j.workflowId,"workflowId");return await z8(U,G),await U.engine.signal(G,K1(j.signalName,"signalName"),j.payload),{ok:!0}}},{definition:{name:"update_workflow",description:"Run an update handler on a Weft workflow.",inputSchema:l0({workflowId:{type:"string"},updateName:{type:"string"},payload:{}},["workflowId","updateName"])},call:async($,U)=>{R4(U,"updates:write","Updating workflows");let j=d0($),G=K1(j.workflowId,"workflowId");return await z8(U,G),{result:await U.engine.update(G,K1(j.updateName,"updateName"),j.payload)}}},{definition:{name:"query_workflow",description:"Run a query handler on a Weft workflow.",inputSchema:l0({workflowId:{type:"string"},queryName:{type:"string"},input:{}},["workflowId","queryName"])},call:async($,U)=>{R4(U,"queries:read","Querying workflows");let j=d0($),G=K1(j.workflowId,"workflowId");return await z8(U,G),{result:await U.engine.query(G,K1(j.queryName,"queryName"),j.input)}}},{definition:{name:"cancel_workflow",description:"Cancel a Weft workflow.",inputSchema:l0({workflowId:{type:"string"}},["workflowId"])},call:async($,U)=>{R4(U,"workflows:write","Cancelling workflows");let j=K1(d0($).workflowId,"workflowId");return await z8(U,j),await U.engine.cancel(j),{ok:!0}}},{definition:{name:"list_workflows",description:"List visible Weft workflows.",inputSchema:l0({status:{},type:{type:"string"},tags:{type:"array",items:{type:"string"}},limit:{type:"number"},offset:{type:"number"}})},call:async($,U)=>{R4(U,"workflows:read","Listing workflows");let j=VY(d0($));if(!j.ok)throw new Y4(j.message);return await Rj(U.engine,j.filter)}},{definition:{name:"get_workflow_state",description:"Read visible Weft workflow state.",inputSchema:l0({workflowId:{type:"string"}},["workflowId"])},call:async($,U)=>{R4(U,"workflows:read","Reading workflow state");let j=K1(d0($).workflowId,"workflowId");return await z8(U,j)}}]}async function z8($,U){let j=await IG($.engine,U);if(j===null)throw new Y4(`Workflow "${U}" not found`);return j}function _s($){return{isError:!1,content:[{type:"text",text:JSON.stringify($)}]}}function TX($){return{isError:!0,content:[{type:"text",text:$}]}}function d0($){if($!==null&&typeof $==="object"&&!Array.isArray($))return $;throw new Y4("Tool arguments must be a JSON object")}function K1($,U){if(typeof $==="string"&&$.length>0)return $;throw new Y4(`Tool argument "${U}" must be a non-empty string`)}function l0($,U=[]){return{type:"object",properties:$,required:[...U],additionalProperties:!1}}function Ds($){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 Ls($,U){if(!U.has($))return $;let j=2;while(U.has(`${$}_${String(j)}`))j+=1;return`${$}_${String(j)}`}async function EC($,U){if(!kG($))return{kind:"response",response:fG(null,"Invalid MCP JSON-RPC request")};if(uG($)){try{await Fs($,U)}catch(G){console.error(`[weft.mcp] Ignored MCP notification error for ${$.method}:`,G)}return{kind:"accepted"}}let j=$.id??null;try{let G=await Vs($,U);return{kind:"response",response:Vq(j,G)}}catch(G){if(G instanceof o1||G instanceof i0)return{kind:"response",response:G.toResponse(j)};if(G instanceof Y4)return{kind:"response",response:FY(j,G.message)};return console.error("[weft.mcp] Unhandled MCP dispatcher error:",G),{kind:"response",response:zq(j)}}}async function Fs($,U){if($.method==="notifications/initialized"){if(U.session.phase==="initializing")U.session.phase="ready";return}if(U.session.phase!=="ready")return;if($.method==="notifications/cancelled"){let j=bX($.params),G=U.session.cancelRequest(j.requestId);if(G!==void 0)await U.engine.cancel(G)}}var Ws={initialize:async($,U)=>Bs($.params,U.session),ping:async()=>({}),[I6]:async($,U)=>({tools:s1(U.engine)}),"tools/call":Ps,[hG]:async($,U)=>({resources:await Oq(U)}),"resources/read":Ks,"resources/subscribe":Ns,"resources/unsubscribe":Ms,[mG]:async()=>({resourceTemplates:Aq()}),"prompts/list":async()=>({prompts:[]}),"prompts/get":async()=>{throw new o1(-32002,"Prompt not found")},"logging/setLevel":async()=>({}),"completion/complete":async()=>({completion:{values:[],total:0,hasMore:!1}})};async function Vs($,U){if(U.authRequired&&!K$(U.principal)&&$.method!=="initialize")throw new o1(-32011,"MCP request requires authentication");zs($,U);let j=Ws[$.method];if(j===void 0)throw new i0(Bq($.id??null,$.method));return j($,U)}function Bs($,U){let j=bX($),G=typeof j.protocolVersion==="string"?j.protocolVersion:void 0;return U.protocolVersion=G===v0?G:v0,U.phase="initializing",{protocolVersion:U.protocolVersion,capabilities:{tools:{listChanged:!0},resources:{subscribe:!0,listChanged:!1},prompts:{},logging:{},completions:{}},serverInfo:{name:"weft",title:"Weft",version:w4}}}function zs($,U){if($.method==="initialize"){if(U.session.phase!=="new")throw new o1(-32000,"MCP session is already initialized");return}if(U.session.phase==="new")throw new o1(-32000,"MCP session must be initialized before requests");if(U.session.phase==="initializing")throw new o1(-32000,"MCP session must receive notifications/initialized before requests")}async function Ps($,U){let j=bX($.params),G=j.name;if(typeof G!=="string"||G.length===0)throw new i0(fG($.id??null,"tools/call requires name"));return TC(G,j.arguments??{},{...U,requestId:$.id})}async function Ks($,U){let j=CW($),G=await BY(j,U);if(G===null)throw new i0(LY($.id??null,j));return G}async function Ns($,U){let j=CW($);if(!await Cq(j,U.session,U))throw new i0(LY($.id??null,j));return{}}function Ms($,U){let j=CW($);return Rq(j,U.session),{}}function CW($){let j=bX($.params).uri;if(typeof j!=="string"||j.length===0)throw new i0(fG($.id??null,`${$.method} requires uri`));return j}function bX($){if($===void 0)return{};if($!==null&&typeof $==="object"&&!Array.isArray($))return $;throw new o1(G$.INVALID_PARAMS,"MCP params must be an object")}class o1 extends y{jsonRpcCode;data;constructor($,U,j){super("McpProtocolError",U);this.jsonRpcCode=$,this.data=j}toResponse($){if(this.jsonRpcCode===-32011)return FY($,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 i0 extends y{response;constructor($){super("McpResponseError",$.error?.message??"MCP response error");this.response=$}toResponse($){return this.response}}H$();t();class P8 extends y{constructor(){super("McpSessionLimitExceededError","Too many MCP sessions")}}var SC=["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 gC{id;principal;token;phase="new";protocolVersion="2025-11-25";subscriptions=new Set;createdAtMilliseconds;lastActivityMilliseconds;#$=new Map;#U=new Set;#j=new Set;constructor($,U,j=Date.now()){this.id=$,this.principal=U,this.token=crypto.randomUUID(),this.createdAtMilliseconds=j,this.lastActivityMilliseconds=j}touch($=Date.now()){this.lastActivityMilliseconds=$}isIdleExpired($,U){return $-this.lastActivityMilliseconds>U}trackRequest($,U){let j=y0(d2($));if(j===void 0)return;this.#$.set(j,{workflowId:U,abortController:new AbortController})}cancelRequest($){let U=y0(d2($));if(U===void 0)return;let j=this.#$.get(U);if(j===void 0)return;return this.#U.add(U),j.abortController.abort(),j.workflowId}isRequestCancelled($){let U=y0(d2($));return U!==void 0&&this.#U.has(U)}requestSignal($){let U=y0(d2($));if(U===void 0)return;return this.#$.get(U)?.abortController.signal}untrackRequest($){let U=y0(d2($));if(U===void 0)return;this.#$.delete(U),this.#U.delete(U)}workflowForRequest($){let U=y0(d2($));if(U===void 0)return;return this.#$.get(U)?.workflowId}addTarget($){return this.#j.add($),()=>{this.#j.delete($)}}notify($,U){let j=U===void 0?{jsonrpc:"2.0",method:$}:{jsonrpc:"2.0",method:$,params:U};for(let G of this.#j)G(j)}close(){this.#$.clear(),this.#U.clear(),this.subscriptions.clear(),this.#j.clear()}}function d2($){if($===void 0)return;if($===null||typeof $==="string")return $;if(typeof $==="number"&&Number.isFinite($))return $;return}class vC{#$;#U=new Map;#j;#G;#X;#J;#Q;#Z;constructor($,U={}){this.#$=$,this.#X=U.maximumSessions??1024,this.#J=U.sessionIdleTimeoutMilliseconds??1800000,this.#Q=U.currentTimeMilliseconds??Date.now,this.#Z=xC($),this.#j=(j)=>{let G=j.workflowId;if(typeof G!=="string")return;this.#Y(G)},this.#G=()=>{this.#H()};for(let j of SC)this.#$.addEventListener(j,this.#j);this.#$.addEventListener(x0.type,this.#G)}create($){if(this.#D(),this.#U.size>=this.#X)throw new P8;let U=this.#Q(),j=new gC(crypto.randomUUID(),$,U);return this.#U.set(j.id,j),j}add($){if(this.#D(),this.#U.size>=this.#X)throw new P8;return $.touch(this.#Q()),this.#U.set($.id,$),$}get($){return this.#D(),this.#U.get($)}touch($){if(this.#U.get($.id)!==$)return;$.touch(this.#Q())}delete($){this.#U.get($)?.close(),this.#U.delete($)}closeAll(){for(let $ of this.#U.values())$.close();this.#U.clear()}#Y($){let U=[Ej($,"state"),Ej($,"events"),Ej($,"checkpoints")],j=this.#Q();for(let G of this.#U.values()){let X=new Set;for(let Q of U){if(!G.subscriptions.has(Q))continue;X.add(Q)}let J=[...G.subscriptions].filter(bq);for(let Q of J)X.add(Q);if(X.size===0)continue;G.touch(j);for(let Q of X)G.notify("notifications/resources/updated",{uri:Q})}this.#D()}#H(){let $=xC(this.#$);if(qs(this.#Z,$))return;this.#Z=$;let U=this.#Q();for(let j of this.#U.values()){if(j.phase!=="ready")continue;j.touch(U),j.notify(Fq)}this.#D()}#D(){let $=this.#Q();for(let[U,j]of this.#U){if(!j.isIdleExpired($,this.#J))continue;j.close(),this.#U.delete(U)}}async[Symbol.asyncDispose](){for(let $ of SC)this.#$.removeEventListener($,this.#j);this.#$.removeEventListener(x0.type,this.#G),this.closeAll()}}function xC($){return s1($).map((U)=>[U.name,U.title,U.description,JSON.stringify(U.inputSchema)??""])}function qs($,U){if($.length!==U.length)return!1;for(let j=0;j<$.length;j++){let G=$[j],X=U[j];if(G===void 0||X===void 0)return!1;if(G[0]!==X[0]||G[1]!==X[1]||G[2]!==X[2]||G[3]!==X[3])return!1}return!0}function yC($,U){return new vC($,U)}class EX extends y{constructor(){super("McpBodyTooLargeError","body too large")}}async function hC($){let U=ys($.request,$.publicOrigin,$.trustedHosts);if(U!==null)return U;switch($.request.method){case"POST":return As($);case"GET":return bs($);case"DELETE":return Es($);default:return new Response("Method Not Allowed",{status:405,headers:{allow:"POST, GET, DELETE"}})}}async function As($){let U=Os($.request);if(U!==null)return U;let j=await Cs($);if(j instanceof Response)return j;if(!j.ok)return Response.json({jsonrpc:"2.0",id:null,error:{code:-32700,message:"Parse error"}},{status:200,headers:a1()});let G=Rs($,j.value);if(G instanceof Response)return G;let{session:X,createdSession:J,principal:Q}=G,Z=await EC(j.value,{engine:$.engine,session:X,principal:Q,authRequired:Ss($)});if(Z.kind==="accepted")return new Response(null,{status:202,headers:IC(X,J)});return Response.json(Z.response,{status:200,headers:IC(X,J)})}function Os($){if(!WY($.headers.get("accept"),"application/json"))return new Response("Not Acceptable",{status:406});if(!Kq($.headers.get("content-type")??""))return new Response("Unsupported Media Type",{status:415});return null}async function Cs($){let U=$.maxBodyBytes??Wq;try{let j=await vs($.request,U);return Pq(new TextDecoder().decode(j))}catch(j){return new Response(j instanceof EX?"Payload Too Large":"Bad Request",{status:j instanceof EX?413:400})}}function Rs($,U){let j=RW($.request.headers),G=mC($.request.headers);if(G!==null)return G;if(Ts(U,j)){let Q=SX($);try{return{session:$.sessionManager.create(Q),createdSession:!0,principal:Q}}catch(Z){if(Z instanceof P8)return new Response(Z.message,{status:429,headers:a1()});throw Z}}if(j===null)return new Response("Missing Mcp-Session-Id",{status:400});let X=$.sessionManager.get(j);if(X===void 0)return new Response("MCP session not found",{status:404});let J=SX($);if(!bW(X,J,TW($.request.headers)))return new Response("Forbidden",{status:403,headers:a1()});return $.sessionManager.touch(X),{session:X,createdSession:!1,principal:J}}function Ts($,U){if(U!==null)return!1;if(!kG($))return!1;return $.method==="initialize"&&!uG($)}function bs($){if(!WY($.request.headers.get("accept"),"text/event-stream"))return new Response("Not Acceptable",{status:406});let U=mC($.request.headers);if(U!==null)return U;let j=RW($.request.headers);if(j===null)return new Response("Missing Mcp-Session-Id",{status:400});let G=$.sessionManager.get(j);if(G===void 0)return new Response("MCP session not found",{status:404});let X=SX($);if(!bW(G,X,TW($.request.headers)))return new Response("Forbidden",{status:403,headers:a1()});$.sessionManager.touch(G);let J=new ReadableStream({start(Q){let Z=new TextEncoder,Y=(D)=>{Q.enqueue(Z.encode(`event: message
|
|
61
|
+
`).trimEnd()}var gZ=()=>{};var ip={};m$(ip,{runVersionCheck:()=>JF$});async function UF$($){let U=new Map;for await(let[j,G]of $.scan("wf:")){if(!R1(j))continue;let X=U$(G);if(X.status!=="running"&&X.status!=="pending")continue;let J=X.versionTuple.workflowVersion,Q=U.get(X.type);if(!Q)Q={count:0,versionCounts:new Map},U.set(X.type,Q);Q.count++,Q.versionCounts.set(J,(Q.versionCounts.get(J)??0)+1)}return U}function jF$($){let U="",j=0;for(let[G,X]of $)if(X>j)j=X,U=G;return U}function GF$($,U){let j=[];for(let[G,X]of $){let J=U[G];if(!J)continue;let Q=jF$(X.versionCounts),Z=J.version??L5,Y=F5(Q,Z);j.push({type:G,storedVersion:Q,registeredVersion:Z,runningCount:X.count,compatibility:Y})}return j}function XF$($){for(let U of $)if(U.compatibility==="incompatible")return"unsafe";return"safe"}async function JF$($,U){let j=await UF$($),G=GF$(j,U),X=XF$(G);return{workflowTypes:G,overallVerdict:X}}var np=V(()=>{N$();D9();W5()});var ep={};m$(ep,{toActivityCallable:()=>tp,registerModuleExports:()=>FF$});function tp($){let{name:U,execute:j,...G}=$,X=Object.assign(async function(...Q){return j(...Q)},G);return Object.defineProperty(X,"name",{value:U,configurable:!0}),Object.defineProperty(X,"execute",{value:j,enumerable:!0,configurable:!0}),X}function FF$($,U,j){let G=B6($);for(let[X,J]of Object.entries(U))RX(G,{...J,name:X});for(let X of j)if(typeof X==="function")$.register(X);else $.register(tp(X))}var $d=()=>{};function u9($){return $!==null&&typeof $==="object"&&!Array.isArray($)}function S0($){if($===null||typeof $==="string"||typeof $==="boolean"||typeof $==="number"&&Number.isFinite($))return!0;if(Array.isArray($))return $.every(S0);if(!u9($))return!1;return Object.values($).every(S0)}function k$($){return typeof $==="string"&&$.length>0}function nZ($){return Array.isArray($)&&$.every(k$)}function AM($){if(!u9($))return!1;return Object.values($).every((U)=>typeof U==="string")}function OM($){if(!u9($))return!1;return Object.values($).every(S0)}function w9($){return typeof $==="number"&&Number.isFinite($)}function e($,U,j){return{ok:!1,error:{code:$,message:U,...j!==void 0?{requestedProtocolVersion:j}:{}}}}function rZ($,U,j){let G={};for(let[X,J,Q,Z]of j){let Y=U[X];if(Y===void 0){if(J)return{ok:!1,error:e($,Z)};continue}if(!Q(Y))return{ok:!1,error:e($,Z)};G[X]=Y}return{ok:!0,values:G}}var A4=2,Nd=2,Md=2,Kj=[2];var oZ={$ref:"#/$defs/jsonValue"},CM={type:"object",additionalProperties:oZ},qd={type:"object",additionalProperties:{type:"string"}},sZ={const:A4},aZ={register:{type:"object",additionalProperties:!1,required:["type","protocolVersion","workerId","activities"],properties:{type:{const:"register"},protocolVersion:sZ,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:CM}},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:oZ,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:oZ,attempt:{type:"number",minimum:1},headers:qd,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:sZ,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:sZ},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"}}}},Ad={$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(aZ).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:CM,messages:aZ}};function tZ($){let U=$.attemptToken;if(U===void 0)return{ok:!0,message:{}};if(!k$(U))return e("invalid_message","taskResult.attemptToken must be a non-empty string when present");return{ok:!0,message:{attemptToken:U}}}function Od($,U){let j=U.value;if(!S0(j))return e("invalid_message","completed taskResult.value must be valid JSON");let G=tZ(U);if(!G.ok)return G;return{ok:!0,message:{type:"taskResult",operationId:$,status:"completed",value:j,...G.message}}}function Cd($,U){let j=U.error;if(typeof j!=="string")return e("invalid_message","failed taskResult.error must be a string");let G=tZ(U);if(!G.ok)return G;return{ok:!0,message:{type:"taskResult",operationId:$,status:"failed",error:j,...G.message}}}function Rd($,U){let j=U.error;if(typeof j!=="string")return e("invalid_message","cancelled taskResult.error must be a string");let G=U.cancelled;if(G!==void 0&&G!==!0)return e("invalid_message","taskResult.cancelled must be true when present");let X=tZ(U);if(!X.ok)return X;return{ok:!0,message:{type:"taskResult",operationId:$,status:"cancelled",error:j,...G===!0?{cancelled:G}:{},...X.message}}}var Td={completed:Od,failed:Cd,cancelled:Rd};function bd($){return $==="completed"||$==="failed"||$==="cancelled"}function RM($){let U=$.operationId;if(!k$(U))return e("invalid_message","taskResult.operationId must be a non-empty string");let j=$.status;if(!bd(j))return e("invalid_message","taskResult.status must be completed, failed, or cancelled");return Td[j](U,$)}var Ed=new Set(["register","heartbeat","taskResult"]),Sd=new Set(["registerAck","registerError","protocolError","task","cancel","shutdown"]);function xd($){if($===A4)return{ok:!0,message:$};let U=w9($)?$:void 0;return e("unsupported_protocol_version",`Unsupported RemoteWorker protocol version: ${String($)}`,U)}var gd=[["workerId",!0,k$,"register.workerId must be a non-empty string"],["activities",!0,nZ,"register.activities must be an array of non-empty strings"],["concurrency",!1,w9,"register.concurrency must be a finite number"],["queue",!1,k$,"register.queue must be a non-empty string"],["deploymentName",!1,k$,"register.deploymentName must be a non-empty string when present"],["buildId",!1,k$,"register.buildId must be a non-empty string when present"],["runtimeVersion",!1,k$,"register.runtimeVersion must be a non-empty string when present"],["gitSha",!1,k$,"register.gitSha must be a non-empty string when present"],["startedAt",!1,w9,"register.startedAt must be a finite number when present"],["capabilities",!1,OM,"register.capabilities must be a JSON object when present"]];function vd($){let U=xd($.protocolVersion);if(!U.ok)return U;let j=rZ("invalid_registration",$,gd);if(!j.ok)return j.error;return{ok:!0,message:{type:"register",protocolVersion:U.message,...j.values}}}function yd($){let U=$.workerId;if(!k$(U))return e("invalid_message","heartbeat.workerId must be a non-empty string");return{ok:!0,message:{type:"heartbeat",workerId:U}}}var Id=[["operationId",!0,k$,"task.operationId must be a non-empty string"],["activityName",!0,k$,"task.activityName must be a non-empty string"],["input",!0,S0,"task.input must be valid JSON"],["attempt",!1,w9,"task.attempt must be a finite number"],["headers",!1,AM,"task.headers must be a string map"],["attemptToken",!1,k$,"task.attemptToken must be a non-empty string"]];function hd($){let U=rZ("invalid_message",$,Id);if(!U.ok)return U.error;return{ok:!0,message:{type:"task",...U.values}}}function md($){let U=$.operationId;if(!k$(U))return e("invalid_message","cancel.operationId must be a non-empty string");return{ok:!0,message:{type:"cancel",operationId:U}}}function fd(){return{ok:!0,message:{type:"shutdown"}}}function kd($){let U=$.protocolVersion;if(U!==A4)return e("invalid_message",`registerAck.protocolVersion must be ${String(A4)}`);let{workerId:j,queue:G,activities:X,concurrency:J}=$;if(!k$(j))return e("invalid_message","registerAck.workerId must be a non-empty string");if(!k$(G))return e("invalid_message","registerAck.queue must be a non-empty string");if(!nZ(X))return e("invalid_message","registerAck.activities must be a string array");if(typeof J!=="number"||!Number.isFinite(J))return e("invalid_message","registerAck.concurrency must be a finite number");return{ok:!0,message:{type:"registerAck",protocolVersion:U,workerId:j,queue:G,activities:X,concurrency:J}}}function ud($){let{code:U,message:j,supportedProtocolVersions:G,requestedProtocolVersion:X}=$;if(U!=="invalid_registration"&&U!=="unsupported_protocol_version")return e("invalid_message","registerError.code is not recognized");if(typeof j!=="string")return e("invalid_message","registerError.message must be a string");if(!Array.isArray(G)||!G.every((Q)=>Q===A4))return e("invalid_message","registerError.supportedProtocolVersions is invalid");if(X!==void 0&&!w9(X))return e("invalid_message","registerError.requestedProtocolVersion must be a finite number");return{ok:!0,message:{type:"registerError",code:U,message:j,supportedProtocolVersions:G,...X!==void 0?{requestedProtocolVersion:X}:{}}}}function wd($){let{code:U,message:j}=$;if(U!=="invalid_json"&&U!=="invalid_message"&&U!=="unknown_message_type"&&U!=="registration_required")return e("invalid_message","protocolError.code is not recognized");if(typeof j!=="string")return e("invalid_message","protocolError.message must be a string");return{ok:!0,message:{type:"protocolError",code:U,message:j}}}function TM($){if(!u9($))return e("invalid_message","Worker protocol message must be a JSON object");let U=$.type;if(typeof U!=="string")return e("invalid_message","Worker protocol message.type must be a string");if(!Ed.has(U))return e("unknown_message_type",`Unknown worker message type: ${U}`);switch(U){case"register":return vd($);case"heartbeat":return yd($);case"taskResult":return RM($);default:return e("unknown_message_type",`Unknown worker message type: ${U}`)}}function UW$($){if(!u9($))return e("invalid_message","Server protocol message must be a JSON object");let U=$.type;if(typeof U!=="string")return e("invalid_message","Server protocol message.type must be a string");if(!Sd.has(U))return e("unknown_message_type",`Unknown server message type: ${U}`);switch(U){case"registerAck":return kd($);case"registerError":return ud($);case"protocolError":return wd($);case"task":return hd($);case"cancel":return md($);case"shutdown":return fd();default:return e("unknown_message_type",`Unknown server message type: ${U}`)}}u();H$();t();var DY=["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"],il=new Set(DY);function Hq($){return il.has($)}function _q($){let U=new Set;Yq($.scope,U),Yq($.scp,U);let j=$.permissions;if(Array.isArray(j)){for(let G of j)if(typeof G==="string"&&Hq(G))U.add(G)}return U}function Yq($,U){if(typeof $!=="string")return;if($.trim().length===0)return;for(let j of $.split(/\s+/)){if(j.length===0)continue;if(Hq(j))U.add(j)}}function Dq($){let U=_q($),j=typeof $.sub==="string"?$.sub:void 0;return{method:"jwt",scopes:U,claims:$,subject:j,hasScope(G){return U.has(G)}}}function _2($){let U=new Set($.scopes);return{method:"api-key",scopes:U,claims:void 0,subject:$.subject,hasScope(j){return U.has(j)}}}function Lq($){let U=new Set($.scopes);return{method:"mtls",scopes:U,claims:void 0,subject:$.subject,hasScope(j){return U.has(j)}}}function g0(){return nl}function pV$(){let $=new Set(DY);return{method:"stdio-local",scopes:$,claims:void 0,subject:"stdio-local",hasScope(U){return $.has(U)}}}var nl={method:"unauthenticated"};function K$($){return $.method!=="unauthenticated"}t();var $$="2.0",G$=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 D2($){if($===null)return!0;if(typeof $==="string")return!0;if(typeof $==="number"&&Number.isFinite($))return!0;return!1}var w4="0.6.0";t();class Y4 extends y{constructor($){super("McpToolExecutionError",$)}}function R4($,U,j){if(!$.authRequired)return;if(!K$($.principal))throw new Y4(`${j} requires authentication`);if(!$.principal.hasScope(U))throw new Y4(`${j} requires ${U}`)}async function IG($,U){return $.get(U)}async function Rj($,U){return $.list(U)}var v0="2025-11-25",I6="tools/list",Fq="notifications/tools/list_changed",hG="resources/list",mG="resources/templates/list",Wq=1048576;function Vq($,U){return{jsonrpc:$$,id:$,result:U}}function Tj($,U,j,G){return{jsonrpc:$$,id:$,error:G===void 0?{code:U,message:j}:{code:U,message:j,data:G}}}function fG($,U,j){return Tj($,G$.INVALID_PARAMS,U,j)}function Bq($,U){return Tj($,G$.METHOD_NOT_FOUND,`Unknown MCP method: ${U}`,{method:U})}function zq($){return Tj($,G$.INTERNAL_ERROR,"Internal error")}function LY($,U){return Tj($,-32002,"Resource not found",{uri:U})}function FY($,U){return Tj($,-32011,U,{reason:U})}function kG($){if($===null||typeof $!=="object"||Array.isArray($))return!1;let U=$;if(U.jsonrpc!==$$)return!1;return typeof U.method==="string"}function uG($){return $.id===void 0}function y0($){if($===void 0||$===null)return;return typeof $==="number"?`number:${String($)}`:`string:${$}`}function Pq($){try{return{ok:!0,value:JSON.parse($)}}catch{return{ok:!1}}}function Kq($){let[U=""]=$.trim().toLowerCase().split(";");return U.trim()==="application/json"}function WY($,U){if($===null||$.trim().length===0)return!0;return $.split(",").map((j)=>j.split(";")[0]?.trim().toLowerCase()??"").some((j)=>j==="*/*"||j===U)}var rl=["pending","running","completed","failed","cancelled","timed-out","suspended"];function VY($){if(!$i($))return{ok:!1,message:"List filter must be a JSON object"};let U=sl($.status),j=ol($.type,"type"),G=al($.tags,"tags"),X=Nq($.limit,"limit"),J=Nq($.offset,"offset"),Q=tl([U,j,G,X,J]);if(Q!==void 0)return Q;return{ok:!0,filter:el({status:bj(U),type:bj(j),tags:bj(G),limit:bj(X),offset:bj(J)})}}function qq($){let U={},j=$.getAll("status");if(j.length===1)U.status=j[0];if(j.length>1)U.status=j;let G=$.get("type");if(G!==null)U.type=G;let X=$.getAll("tag");if(X.length>0)U.tags=X;let J=$.get("limit");if(J!==null)U.limit=Number(J);let Q=$.get("offset");if(Q!==null)U.offset=Number(Q);return VY(U)}function sl($){if($===void 0)return{ok:!0};if(typeof $==="string")return Mq($)?{ok:!0,value:$}:{ok:!1,message:`Invalid workflow status: ${$}`};if(!Array.isArray($))return{ok:!1,message:"List filter status must be a workflow status or array"};let U=[];for(let j of $){if(typeof j!=="string"||!Mq(j))return{ok:!1,message:"List filter status array contains an invalid workflow status"};U.push(j)}return{ok:!0,value:U}}function ol($,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 al($,U){if($===void 0)return{ok:!0};if(!Array.isArray($))return{ok:!1,message:`List filter ${U} must be an array`};let j=[];for(let G of $){if(typeof G!=="string")return{ok:!1,message:`List filter ${U} must contain only strings`};j.push(G)}return{ok:!0,value:j}}function Nq($,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 tl($){for(let U of $)if(!U.ok)return U;return}function bj($){return $.ok?$.value:void 0}function el($){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 Mq($){return rl.some((U)=>U===$)}function $i($){return $!==null&&typeof $==="object"&&!Array.isArray($)}function Aq(){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 Oq($){return R4($,"workflows:read","Listing workflow resources"),(await Rj($.engine,{})).items.map((j)=>({uri:Ej(j.id,"state"),name:`workflow_${j.id}`,title:`${j.type} workflow ${j.id}`,description:`Current state for workflow ${j.id}.`,mimeType:"application/json"}))}async function BY($,U){R4(U,"workflows:read","Reading workflow resources");let j=Tq($);if(j===null)return null;if(j.kind==="search"){let X=await Rj(U.engine,j.filter);return wG($,X)}let G=await IG(U.engine,j.workflowId);if(G===null)return null;switch(j.kind){case"state":return wG($,G);case"events":return R4(U,"events:read","Reading workflow events"),wG($,{events:await U.engine.getEvents(j.workflowId)});case"checkpoints":return wG($,{checkpoints:await U.engine.listCheckpoints(j.workflowId)})}}async function Cq($,U,j){if(await BY($,j)===null)return!1;return U.subscriptions.add($),!0}function Rq($,U){U.subscriptions.delete($)}function wG($,U){return{contents:[{uri:$,mimeType:"application/json",text:JSON.stringify(U)}]}}function Tq($){let U=Ui($);if(U===null)return null;if(U.pathname==="/search")return ji(U.searchParams);return Gi(U.pathname)}function Ui($){let U;try{U=new URL($)}catch{return null}if(U.protocol!=="weft:"||U.hostname!=="workflows")return null;return U}function ji($){let U=qq($);return U.ok?{kind:"search",filter:U.filter}:null}function bq($){return Tq($)?.kind==="search"}function Gi($){let U=$.split("/").filter(Boolean).map(Xi);if(U.some((X)=>X===null))return null;if(U.length!==2)return null;let[j,G]=U;if(!j)return null;if(G==="state"||G==="events"||G==="checkpoints")return{kind:G,workflowId:j};return null}function Ej($,U){return`weft://workflows/${encodeURIComponent($)}/${U}`}function Xi($){try{return decodeURIComponent($)}catch{return null}}r1();t();var B8=1;class p2 extends y{entityKind;entityName;direction;constructor($,U,j,G){let X=G instanceof Error?G.message:String(G);super("RegistrySchemaConversionError",`Failed to convert ${j} for ${$} "${U}": ${X}`,{cause:G});this.entityKind=$,this.entityName=U,this.direction=j}}function CC($){let U=$.listWorkflowDefinitions(),j=$.listActivityDefinitions(),G=U.toSorted((Z,Y)=>{if(Z.type<Y.type)return-1;if(Z.type>Y.type)return 1;return 0}),X=j.toSorted((Z,Y)=>{if(Z.name<Y.name)return-1;if(Z.name>Y.name)return 1;return 0}),J=Object.create(null);for(let Z of G)J[Z.type]=tr(Z);let Q=Object.create(null);for(let Z of X)Q[Z.name]=er(Z);return{registryVersion:B8,workflows:J,activities:Q}}function tr($){let U={};if($.inputSchema!==void 0)U.inputSchema=CX("workflow",$.type,"inputSchema",$.inputSchema);if($.outputSchema!==void 0)U.outputSchema=CX("workflow",$.type,"outputSchema",$.outputSchema);if($.description!==void 0)U.description=$.description;if($.tags.length>0)U.tags=[...$.tags];return U}function er($){let U={queue:$.queue};if($.inputSchema!==void 0)U.inputSchema=CX("activity",$.name,"inputSchema",$.inputSchema);if($.outputSchema!==void 0)U.outputSchema=CX("activity",$.name,"outputSchema",$.outputSchema);if($.description!==void 0)U.description=$.description;return U}function CX($,U,j,G){try{return L4(G,j==="inputSchema"?"input":"output")}catch(X){throw new p2($,U,j,X)}}r1();var RC=new WeakMap,OW=30000,AW=2147483647;function s1($){return bC($).tools.map((U)=>U.definition)}async function TC($,U,j){let G=bC(j.engine).toolsByName.get($);if(G===void 0)return TX(`Unknown tool: ${$}`);try{let X=await G.call(U??{},j);return _s(X)}catch(X){if(X instanceof Y4)return TX(X.message);if(X instanceof Error&&X.message==="Workflow cancelled")return TX(X.message);return console.warn("MCP tool execution failed:",X),TX("Tool execution failed")}}function bC($){let U=$s($),j=RC.get($);if(j!==void 0&&Us(j.signature,U))return j;let G=js($),X={signature:U,tools:G,toolsByName:new Map(G.map((J)=>[J.definition.name,J]))};return RC.set($,X),X}function $s($){return $.listWorkflowDefinitions().toSorted((U,j)=>U.type<j.type?-1:U.type>j.type?1:0).map((U)=>[U.type,U.description,U.inputSchema])}function Us($,U){if($.length!==U.length)return!1;for(let j=0;j<$.length;j++){let G=$[j],X=U[j];if(G===void 0||X===void 0)return!1;if(G[0]!==X[0]||G[1]!==X[1]||G[2]!==X[2])return!1}return!0}function js($){let U=[...Hs()],j=new Set(U.map((G)=>G.definition.name));for(let G of $.listWorkflowDefinitions().toSorted((X,J)=>X.type<J.type?-1:X.type>J.type?1:0)){if(G.inputSchema===void 0)continue;let X=Ls(Ds(G.type),j);j.add(X),U.push({definition:{name:X,title:G.type,description:G.description??`Run Weft workflow ${G.type}.`,inputSchema:Gs(G.type,G.inputSchema)},call:async(J,Q)=>{R4(Q,"workflows:write","Calling workflow tools");let{input:Z,timeoutMs:Y}=Js(J),H=crypto.randomUUID();Q.session.trackRequest(Q.requestId,H);try{if(Q.session.isRequestCancelled(Q.requestId))throw new Y4("Workflow cancelled");let D=await B6(Q.engine).start(G.type,Z,{id:H});if(Q.session.isRequestCancelled(Q.requestId))await Q.engine.cancel(D.id);let L=await Zs(D,{timeoutMs:Y,signal:Q.session.requestSignal(Q.requestId)});if(L.status==="timed-out")return Ys(D.id,Y);return{workflowId:D.id,result:L.result}}finally{Q.session.untrackRequest(Q.requestId)}}})}return U.toSorted((G,X)=>G.definition.name<X.definition.name?-1:1)}function Gs($,U){try{return Xs(L4(U,"input"))}catch(j){throw new p2("workflow",$,"inputSchema",j)}}function Xs($){return{type:"object",additionalProperties:!1,required:["input"],properties:{input:$,timeoutMs:{type:"integer",minimum:1,maximum:AW,default:OW,description:"Maximum milliseconds to wait for the workflow result before returning a running status."}}}}function Js($){if($===null||typeof $!=="object"||Array.isArray($))return{input:$,timeoutMs:OW};let U=$,j=Qs(U.timeoutMs);return{input:U.input,timeoutMs:j}}function Qs($){if($===void 0)return OW;if(typeof $==="number"&&Number.isSafeInteger($)&&$>=1&&$<=AW)return $;throw new Y4(`Tool argument "timeoutMs" must be an integer from 1 to ${AW}`)}async function Zs($,U){if(U.signal?.aborted)throw new Y4("Workflow cancelled");let j,G,X=$.result().then((Z)=>({status:"completed",result:Z})),J=new Promise((Z)=>{j=setTimeout(()=>Z({status:"timed-out"}),U.timeoutMs)}),Q=U.signal===void 0?void 0:new Promise((Z,Y)=>{let H=()=>Y(new Y4("Workflow cancelled"));U.signal?.addEventListener("abort",H,{once:!0}),G=()=>U.signal?.removeEventListener("abort",H)});try{return await Promise.race(Q===void 0?[X,J]:[X,J,Q])}finally{if(j!==void 0)clearTimeout(j);G?.()}}function Ys($,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 Hs(){return[{definition:{name:"start_workflow",description:"Start a Weft workflow and return its workflow id.",inputSchema:l0({type:{type:"string"},input:{},id:{type:"string"}},["type"])},call:async($,U)=>{R4(U,"workflows:write","Starting workflows");let j=d0($),G=K1(j.type,"type"),X=j.input??{},J=typeof j.id==="string"?{id:j.id}:void 0;return{workflowId:(await B6(U.engine).start(G,X,J)).id}}},{definition:{name:"signal_workflow",description:"Send a signal to a Weft workflow.",inputSchema:l0({workflowId:{type:"string"},signalName:{type:"string"},payload:{}},["workflowId","signalName"])},call:async($,U)=>{R4(U,"signals:write","Signalling workflows");let j=d0($),G=K1(j.workflowId,"workflowId");return await z8(U,G),await U.engine.signal(G,K1(j.signalName,"signalName"),j.payload),{ok:!0}}},{definition:{name:"update_workflow",description:"Run an update handler on a Weft workflow.",inputSchema:l0({workflowId:{type:"string"},updateName:{type:"string"},payload:{}},["workflowId","updateName"])},call:async($,U)=>{R4(U,"updates:write","Updating workflows");let j=d0($),G=K1(j.workflowId,"workflowId");return await z8(U,G),{result:await U.engine.update(G,K1(j.updateName,"updateName"),j.payload)}}},{definition:{name:"query_workflow",description:"Run a query handler on a Weft workflow.",inputSchema:l0({workflowId:{type:"string"},queryName:{type:"string"},input:{}},["workflowId","queryName"])},call:async($,U)=>{R4(U,"queries:read","Querying workflows");let j=d0($),G=K1(j.workflowId,"workflowId");return await z8(U,G),{result:await U.engine.query(G,K1(j.queryName,"queryName"),j.input)}}},{definition:{name:"cancel_workflow",description:"Cancel a Weft workflow.",inputSchema:l0({workflowId:{type:"string"}},["workflowId"])},call:async($,U)=>{R4(U,"workflows:write","Cancelling workflows");let j=K1(d0($).workflowId,"workflowId");return await z8(U,j),await U.engine.cancel(j),{ok:!0}}},{definition:{name:"list_workflows",description:"List visible Weft workflows.",inputSchema:l0({status:{},type:{type:"string"},tags:{type:"array",items:{type:"string"}},limit:{type:"number"},offset:{type:"number"}})},call:async($,U)=>{R4(U,"workflows:read","Listing workflows");let j=VY(d0($));if(!j.ok)throw new Y4(j.message);return await Rj(U.engine,j.filter)}},{definition:{name:"get_workflow_state",description:"Read visible Weft workflow state.",inputSchema:l0({workflowId:{type:"string"}},["workflowId"])},call:async($,U)=>{R4(U,"workflows:read","Reading workflow state");let j=K1(d0($).workflowId,"workflowId");return await z8(U,j)}}]}async function z8($,U){let j=await IG($.engine,U);if(j===null)throw new Y4(`Workflow "${U}" not found`);return j}function _s($){return{isError:!1,content:[{type:"text",text:JSON.stringify($)}]}}function TX($){return{isError:!0,content:[{type:"text",text:$}]}}function d0($){if($!==null&&typeof $==="object"&&!Array.isArray($))return $;throw new Y4("Tool arguments must be a JSON object")}function K1($,U){if(typeof $==="string"&&$.length>0)return $;throw new Y4(`Tool argument "${U}" must be a non-empty string`)}function l0($,U=[]){return{type:"object",properties:$,required:[...U],additionalProperties:!1}}function Ds($){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 Ls($,U){if(!U.has($))return $;let j=2;while(U.has(`${$}_${String(j)}`))j+=1;return`${$}_${String(j)}`}async function EC($,U){if(!kG($))return{kind:"response",response:fG(null,"Invalid MCP JSON-RPC request")};if(uG($)){try{await Fs($,U)}catch(G){console.error(`[weft.mcp] Ignored MCP notification error for ${$.method}:`,G)}return{kind:"accepted"}}let j=$.id??null;try{let G=await Vs($,U);return{kind:"response",response:Vq(j,G)}}catch(G){if(G instanceof o1||G instanceof i0)return{kind:"response",response:G.toResponse(j)};if(G instanceof Y4)return{kind:"response",response:FY(j,G.message)};return console.error("[weft.mcp] Unhandled MCP dispatcher error:",G),{kind:"response",response:zq(j)}}}async function Fs($,U){if($.method==="notifications/initialized"){if(U.session.phase==="initializing")U.session.phase="ready";return}if(U.session.phase!=="ready")return;if($.method==="notifications/cancelled"){let j=bX($.params),G=U.session.cancelRequest(j.requestId);if(G!==void 0)await U.engine.cancel(G)}}var Ws={initialize:async($,U)=>Bs($.params,U.session),ping:async()=>({}),[I6]:async($,U)=>({tools:s1(U.engine)}),"tools/call":Ps,[hG]:async($,U)=>({resources:await Oq(U)}),"resources/read":Ks,"resources/subscribe":Ns,"resources/unsubscribe":Ms,[mG]:async()=>({resourceTemplates:Aq()}),"prompts/list":async()=>({prompts:[]}),"prompts/get":async()=>{throw new o1(-32002,"Prompt not found")},"logging/setLevel":async()=>({}),"completion/complete":async()=>({completion:{values:[],total:0,hasMore:!1}})};async function Vs($,U){if(U.authRequired&&!K$(U.principal)&&$.method!=="initialize")throw new o1(-32011,"MCP request requires authentication");zs($,U);let j=Ws[$.method];if(j===void 0)throw new i0(Bq($.id??null,$.method));return j($,U)}function Bs($,U){let j=bX($),G=typeof j.protocolVersion==="string"?j.protocolVersion:void 0;return U.protocolVersion=G===v0?G:v0,U.phase="initializing",{protocolVersion:U.protocolVersion,capabilities:{tools:{listChanged:!0},resources:{subscribe:!0,listChanged:!1},prompts:{},logging:{},completions:{}},serverInfo:{name:"weft",title:"Weft",version:w4}}}function zs($,U){if($.method==="initialize"){if(U.session.phase!=="new")throw new o1(-32000,"MCP session is already initialized");return}if(U.session.phase==="new")throw new o1(-32000,"MCP session must be initialized before requests");if(U.session.phase==="initializing")throw new o1(-32000,"MCP session must receive notifications/initialized before requests")}async function Ps($,U){let j=bX($.params),G=j.name;if(typeof G!=="string"||G.length===0)throw new i0(fG($.id??null,"tools/call requires name"));return TC(G,j.arguments??{},{...U,requestId:$.id})}async function Ks($,U){let j=CW($),G=await BY(j,U);if(G===null)throw new i0(LY($.id??null,j));return G}async function Ns($,U){let j=CW($);if(!await Cq(j,U.session,U))throw new i0(LY($.id??null,j));return{}}function Ms($,U){let j=CW($);return Rq(j,U.session),{}}function CW($){let j=bX($.params).uri;if(typeof j!=="string"||j.length===0)throw new i0(fG($.id??null,`${$.method} requires uri`));return j}function bX($){if($===void 0)return{};if($!==null&&typeof $==="object"&&!Array.isArray($))return $;throw new o1(G$.INVALID_PARAMS,"MCP params must be an object")}class o1 extends y{jsonRpcCode;data;constructor($,U,j){super("McpProtocolError",U);this.jsonRpcCode=$,this.data=j}toResponse($){if(this.jsonRpcCode===-32011)return FY($,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 i0 extends y{response;constructor($){super("McpResponseError",$.error?.message??"MCP response error");this.response=$}toResponse($){return this.response}}H$();t();class P8 extends y{constructor(){super("McpSessionLimitExceededError","Too many MCP sessions")}}var SC=["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 gC{id;principal;token;phase="new";protocolVersion="2025-11-25";subscriptions=new Set;createdAtMilliseconds;lastActivityMilliseconds;#$=new Map;#U=new Set;#j=new Set;constructor($,U,j=Date.now()){this.id=$,this.principal=U,this.token=crypto.randomUUID(),this.createdAtMilliseconds=j,this.lastActivityMilliseconds=j}touch($=Date.now()){this.lastActivityMilliseconds=$}isIdleExpired($,U){return $-this.lastActivityMilliseconds>U}trackRequest($,U){let j=y0(d2($));if(j===void 0)return;this.#$.set(j,{workflowId:U,abortController:new AbortController})}cancelRequest($){let U=y0(d2($));if(U===void 0)return;let j=this.#$.get(U);if(j===void 0)return;return this.#U.add(U),j.abortController.abort(),j.workflowId}isRequestCancelled($){let U=y0(d2($));return U!==void 0&&this.#U.has(U)}requestSignal($){let U=y0(d2($));if(U===void 0)return;return this.#$.get(U)?.abortController.signal}untrackRequest($){let U=y0(d2($));if(U===void 0)return;this.#$.delete(U),this.#U.delete(U)}workflowForRequest($){let U=y0(d2($));if(U===void 0)return;return this.#$.get(U)?.workflowId}addTarget($){return this.#j.add($),()=>{this.#j.delete($)}}notify($,U){let j=U===void 0?{jsonrpc:"2.0",method:$}:{jsonrpc:"2.0",method:$,params:U};for(let G of this.#j)G(j)}close(){this.#$.clear(),this.#U.clear(),this.subscriptions.clear(),this.#j.clear()}}function d2($){if($===void 0)return;if($===null||typeof $==="string")return $;if(typeof $==="number"&&Number.isFinite($))return $;return}class vC{#$;#U=new Map;#j;#G;#X;#J;#Q;#Z;constructor($,U={}){this.#$=$,this.#X=U.maximumSessions??1024,this.#J=U.sessionIdleTimeoutMilliseconds??1800000,this.#Q=U.currentTimeMilliseconds??Date.now,this.#Z=xC($),this.#j=(j)=>{let G=j.workflowId;if(typeof G!=="string")return;this.#Y(G)},this.#G=()=>{this.#H()};for(let j of SC)this.#$.addEventListener(j,this.#j);this.#$.addEventListener(x0.type,this.#G)}create($){if(this.#D(),this.#U.size>=this.#X)throw new P8;let U=this.#Q(),j=new gC(crypto.randomUUID(),$,U);return this.#U.set(j.id,j),j}add($){if(this.#D(),this.#U.size>=this.#X)throw new P8;return $.touch(this.#Q()),this.#U.set($.id,$),$}get($){return this.#D(),this.#U.get($)}touch($){if(this.#U.get($.id)!==$)return;$.touch(this.#Q())}delete($){this.#U.get($)?.close(),this.#U.delete($)}closeAll(){for(let $ of this.#U.values())$.close();this.#U.clear()}#Y($){let U=[Ej($,"state"),Ej($,"events"),Ej($,"checkpoints")],j=this.#Q();for(let G of this.#U.values()){let X=new Set;for(let Q of U){if(!G.subscriptions.has(Q))continue;X.add(Q)}let J=[...G.subscriptions].filter(bq);for(let Q of J)X.add(Q);if(X.size===0)continue;G.touch(j);for(let Q of X)G.notify("notifications/resources/updated",{uri:Q})}this.#D()}#H(){let $=xC(this.#$);if(qs(this.#Z,$))return;this.#Z=$;let U=this.#Q();for(let j of this.#U.values()){if(j.phase!=="ready")continue;j.touch(U),j.notify(Fq)}this.#D()}#D(){let $=this.#Q();for(let[U,j]of this.#U){if(!j.isIdleExpired($,this.#J))continue;j.close(),this.#U.delete(U)}}async[Symbol.asyncDispose](){for(let $ of SC)this.#$.removeEventListener($,this.#j);this.#$.removeEventListener(x0.type,this.#G),this.closeAll()}}function xC($){return s1($).map((U)=>[U.name,U.title,U.description,JSON.stringify(U.inputSchema)??""])}function qs($,U){if($.length!==U.length)return!1;for(let j=0;j<$.length;j++){let G=$[j],X=U[j];if(G===void 0||X===void 0)return!1;if(G[0]!==X[0]||G[1]!==X[1]||G[2]!==X[2]||G[3]!==X[3])return!1}return!0}function yC($,U){return new vC($,U)}class EX extends y{constructor(){super("McpBodyTooLargeError","body too large")}}async function hC($){let U=ys($.request,$.publicOrigin,$.trustedHosts);if(U!==null)return U;switch($.request.method){case"POST":return As($);case"GET":return bs($);case"DELETE":return Es($);default:return new Response("Method Not Allowed",{status:405,headers:{allow:"POST, GET, DELETE"}})}}async function As($){let U=Os($.request);if(U!==null)return U;let j=await Cs($);if(j instanceof Response)return j;if(!j.ok)return Response.json({jsonrpc:"2.0",id:null,error:{code:-32700,message:"Parse error"}},{status:200,headers:a1()});let G=Rs($,j.value);if(G instanceof Response)return G;let{session:X,createdSession:J,principal:Q}=G,Z=await EC(j.value,{engine:$.engine,session:X,principal:Q,authRequired:Ss($)});if(Z.kind==="accepted")return new Response(null,{status:202,headers:IC(X,J)});return Response.json(Z.response,{status:200,headers:IC(X,J)})}function Os($){if(!WY($.headers.get("accept"),"application/json"))return new Response("Not Acceptable",{status:406});if(!Kq($.headers.get("content-type")??""))return new Response("Unsupported Media Type",{status:415});return null}async function Cs($){let U=$.maxBodyBytes??Wq;try{let j=await vs($.request,U);return Pq(new TextDecoder().decode(j))}catch(j){return new Response(j instanceof EX?"Payload Too Large":"Bad Request",{status:j instanceof EX?413:400})}}function Rs($,U){let j=RW($.request.headers),G=mC($.request.headers);if(G!==null)return G;if(Ts(U,j)){let Q=SX($);try{return{session:$.sessionManager.create(Q),createdSession:!0,principal:Q}}catch(Z){if(Z instanceof P8)return new Response(Z.message,{status:429,headers:a1()});throw Z}}if(j===null)return new Response("Missing Mcp-Session-Id",{status:400});let X=$.sessionManager.get(j);if(X===void 0)return new Response("MCP session not found",{status:404});let J=SX($);if(!bW(X,J,TW($.request.headers)))return new Response("Forbidden",{status:403,headers:a1()});return $.sessionManager.touch(X),{session:X,createdSession:!1,principal:J}}function Ts($,U){if(U!==null)return!1;if(!kG($))return!1;return $.method==="initialize"&&!uG($)}function bs($){if(!WY($.request.headers.get("accept"),"text/event-stream"))return new Response("Not Acceptable",{status:406});let U=mC($.request.headers);if(U!==null)return U;let j=RW($.request.headers);if(j===null)return new Response("Missing Mcp-Session-Id",{status:400});let G=$.sessionManager.get(j);if(G===void 0)return new Response("MCP session not found",{status:404});let X=SX($);if(!bW(G,X,TW($.request.headers)))return new Response("Forbidden",{status:403,headers:a1()});$.sessionManager.touch(G);let J=new ReadableStream({start(Q){let Z=new TextEncoder,Y=(D)=>{Q.enqueue(Z.encode(`event: message
|
|
62
62
|
data: ${JSON.stringify(D)}
|
|
63
63
|
|
|
64
64
|
`))};Q.enqueue(Z.encode(`: connected
|