@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/server/handler.js
CHANGED
|
@@ -39,7 +39,7 @@ var Vx=Object.defineProperty;var Px=($)=>$;function Fx($,U){this[$]=Px.bind(null
|
|
|
39
39
|
|
|
40
40
|
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let Z of $.seen.entries()){let Y=Z[1];if(U===Z[0]){Q(Z);continue}if($.external){let H=$.external.registry.get(Z[0])?.id;if(U!==Z[0]&&H){Q(Z);continue}}if($.metadataRegistry.get(Z[0])?.id){Q(Z);continue}if(Y.cycle){Q(Z);continue}if(Y.count>1){if($.reused==="ref"){Q(Z);continue}}}}function f4($,U){let J=$.seen.get(U);if(!J)throw Error("Unprocessed schema. This is a bug in Zod.");let G=(Z)=>{let Y=$.seen.get(Z);if(Y.ref===null)return;let _=Y.def??Y.schema,H={..._},D=Y.ref;if(Y.ref=null,D){G(D);let F=$.seen.get(D),M=F.schema;if(M.$ref&&($.target==="draft-07"||$.target==="draft-04"||$.target==="openapi-3.0"))_.allOf=_.allOf??[],_.allOf.push(M);else Object.assign(_,M);if(Object.assign(_,H),Z._zod.parent===D)for(let S in _){if(S==="$ref"||S==="allOf")continue;if(!(S in H))delete _[S]}if(M.$ref&&F.def)for(let S in _){if(S==="$ref"||S==="allOf")continue;if(S in F.def&&JSON.stringify(_[S])===JSON.stringify(F.def[S]))delete _[S]}}let L=Z._zod.parent;if(L&&L!==D){G(L);let F=$.seen.get(L);if(F?.schema.$ref){if(_.$ref=F.schema.$ref,F.def)for(let M in _){if(M==="$ref"||M==="allOf")continue;if(M in F.def&&JSON.stringify(_[M])===JSON.stringify(F.def[M]))delete _[M]}}}$.override({zodSchema:Z,jsonSchema:_,path:Y.path??[]})};for(let Z of[...$.seen.entries()].reverse())G(Z[0]);let X={};if($.target==="draft-2020-12")X.$schema="https://json-schema.org/draft/2020-12/schema";else if($.target==="draft-07")X.$schema="http://json-schema.org/draft-07/schema#";else if($.target==="draft-04")X.$schema="http://json-schema.org/draft-04/schema#";else if($.target==="openapi-3.0");if($.external?.uri){let Z=$.external.registry.get(U)?.id;if(!Z)throw Error("Schema is missing an `id` property");X.$id=$.external.uri(Z)}Object.assign(X,J.def??J.schema);let Q=$.external?.defs??{};for(let Z of $.seen.entries()){let Y=Z[1];if(Y.def&&Y.defId)Q[Y.defId]=Y.def}if($.external);else if(Object.keys(Q).length>0)if($.target==="draft-2020-12")X.$defs=Q;else X.definitions=Q;try{let Z=JSON.parse(JSON.stringify(X));return Object.defineProperty(Z,"~standard",{value:{...U["~standard"],jsonSchema:{input:AU(U,"input",$.processors),output:AU(U,"output",$.processors)}},enumerable:!1,writable:!1}),Z}catch(Z){throw Error("Error converting schema to JSON.")}}function S$($,U){let J=U??{seen:new Set};if(J.seen.has($))return!1;J.seen.add($);let G=$._zod.def;if(G.type==="transform")return!0;if(G.type==="array")return S$(G.element,J);if(G.type==="set")return S$(G.valueType,J);if(G.type==="lazy")return S$(G.getter(),J);if(G.type==="promise"||G.type==="optional"||G.type==="nonoptional"||G.type==="nullable"||G.type==="readonly"||G.type==="default"||G.type==="prefault")return S$(G.innerType,J);if(G.type==="intersection")return S$(G.left,J)||S$(G.right,J);if(G.type==="record"||G.type==="map")return S$(G.keyType,J)||S$(G.valueType,J);if(G.type==="pipe")return S$(G.in,J)||S$(G.out,J);if(G.type==="object"){for(let X in G.shape)if(S$(G.shape[X],J))return!0;return!1}if(G.type==="union"){for(let X of G.options)if(S$(X,J))return!0;return!1}if(G.type==="tuple"){for(let X of G.items)if(S$(X,J))return!0;if(G.rest&&S$(G.rest,J))return!0;return!1}return!1}var rZ=($,U={})=>(J)=>{let G=m4({...J,processors:U});return d($,G),k4(G,$),f4(G,$)},AU=($,U,J={})=>(G)=>{let{libraryOptions:X,target:Q}=G??{},Z=m4({...X??{},target:Q,io:U,processors:J});return d($,Z),k4(Z,$),f4(Z,$)};var iv={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},oZ=($,U,J,G)=>{let X=J;X.type="string";let{minimum:Q,maximum:Z,format:Y,patterns:_,contentEncoding:H}=$._zod.bag;if(typeof Q==="number")X.minLength=Q;if(typeof Z==="number")X.maxLength=Z;if(Y){if(X.format=iv[Y]??Y,X.format==="")delete X.format;if(Y==="time")delete X.format}if(H)X.contentEncoding=H;if(_&&_.size>0){let D=[..._];if(D.length===1)X.pattern=D[0].source;else if(D.length>1)X.allOf=[...D.map((L)=>({...U.target==="draft-07"||U.target==="draft-04"||U.target==="openapi-3.0"?{type:"string"}:{},pattern:L.source}))]}},sZ=($,U,J,G)=>{let X=J,{minimum:Q,maximum:Z,format:Y,multipleOf:_,exclusiveMaximum:H,exclusiveMinimum:D}=$._zod.bag;if(typeof Y==="string"&&Y.includes("int"))X.type="integer";else X.type="number";if(typeof D==="number")if(U.target==="draft-04"||U.target==="openapi-3.0")X.minimum=D,X.exclusiveMinimum=!0;else X.exclusiveMinimum=D;if(typeof Q==="number"){if(X.minimum=Q,typeof D==="number"&&U.target!=="draft-04")if(D>=Q)delete X.minimum;else delete X.exclusiveMinimum}if(typeof H==="number")if(U.target==="draft-04"||U.target==="openapi-3.0")X.maximum=H,X.exclusiveMaximum=!0;else X.exclusiveMaximum=H;if(typeof Z==="number"){if(X.maximum=Z,typeof H==="number"&&U.target!=="draft-04")if(H<=Z)delete X.maximum;else delete X.exclusiveMaximum}if(typeof _==="number")X.multipleOf=_},aZ=($,U,J,G)=>{J.type="boolean"},tZ=($,U,J,G)=>{if(U.unrepresentable==="throw")throw Error("BigInt cannot be represented in JSON Schema")},eZ=($,U,J,G)=>{if(U.unrepresentable==="throw")throw Error("Symbols cannot be represented in JSON Schema")},$Y=($,U,J,G)=>{if(U.target==="openapi-3.0")J.type="string",J.nullable=!0,J.enum=[null];else J.type="null"},UY=($,U,J,G)=>{if(U.unrepresentable==="throw")throw Error("Undefined cannot be represented in JSON Schema")},JY=($,U,J,G)=>{if(U.unrepresentable==="throw")throw Error("Void cannot be represented in JSON Schema")},GY=($,U,J,G)=>{J.not={}},XY=($,U,J,G)=>{},QY=($,U,J,G)=>{},ZY=($,U,J,G)=>{if(U.unrepresentable==="throw")throw Error("Date cannot be represented in JSON Schema")},YY=($,U,J,G)=>{let X=$._zod.def,Q=X2(X.entries);if(Q.every((Z)=>typeof Z==="number"))J.type="number";if(Q.every((Z)=>typeof Z==="string"))J.type="string";J.enum=Q},_Y=($,U,J,G)=>{let X=$._zod.def,Q=[];for(let Z of X.values)if(Z===void 0){if(U.unrepresentable==="throw")throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof Z==="bigint")if(U.unrepresentable==="throw")throw Error("BigInt literals cannot be represented in JSON Schema");else Q.push(Number(Z));else Q.push(Z);if(Q.length===0);else if(Q.length===1){let Z=Q[0];if(J.type=Z===null?"null":typeof Z,U.target==="draft-04"||U.target==="openapi-3.0")J.enum=[Z];else J.const=Z}else{if(Q.every((Z)=>typeof Z==="number"))J.type="number";if(Q.every((Z)=>typeof Z==="string"))J.type="string";if(Q.every((Z)=>typeof Z==="boolean"))J.type="boolean";if(Q.every((Z)=>Z===null))J.type="null";J.enum=Q}},jY=($,U,J,G)=>{if(U.unrepresentable==="throw")throw Error("NaN cannot be represented in JSON Schema")},HY=($,U,J,G)=>{let X=J,Q=$._zod.pattern;if(!Q)throw Error("Pattern not found in template literal");X.type="string",X.pattern=Q.source},DY=($,U,J,G)=>{let X=J,Q={type:"string",format:"binary",contentEncoding:"binary"},{minimum:Z,maximum:Y,mime:_}=$._zod.bag;if(Z!==void 0)Q.minLength=Z;if(Y!==void 0)Q.maxLength=Y;if(_)if(_.length===1)Q.contentMediaType=_[0],Object.assign(X,Q);else Object.assign(X,Q),X.anyOf=_.map((H)=>({contentMediaType:H}));else Object.assign(X,Q)},LY=($,U,J,G)=>{J.type="boolean"},VY=($,U,J,G)=>{if(U.unrepresentable==="throw")throw Error("Custom types cannot be represented in JSON Schema")},PY=($,U,J,G)=>{if(U.unrepresentable==="throw")throw Error("Function types cannot be represented in JSON Schema")},FY=($,U,J,G)=>{if(U.unrepresentable==="throw")throw Error("Transforms cannot be represented in JSON Schema")},MY=($,U,J,G)=>{if(U.unrepresentable==="throw")throw Error("Map cannot be represented in JSON Schema")},zY=($,U,J,G)=>{if(U.unrepresentable==="throw")throw Error("Set cannot be represented in JSON Schema")},BY=($,U,J,G)=>{let X=J,Q=$._zod.def,{minimum:Z,maximum:Y}=$._zod.bag;if(typeof Z==="number")X.minItems=Z;if(typeof Y==="number")X.maxItems=Y;X.type="array",X.items=d(Q.element,U,{...G,path:[...G.path,"items"]})},WY=($,U,J,G)=>{let X=J,Q=$._zod.def;X.type="object",X.properties={};let Z=Q.shape;for(let H in Z)X.properties[H]=d(Z[H],U,{...G,path:[...G.path,"properties",H]});let Y=new Set(Object.keys(Z)),_=new Set([...Y].filter((H)=>{let D=Q.shape[H]._zod;if(U.io==="input")return D.optin===void 0;else return D.optout===void 0}));if(_.size>0)X.required=Array.from(_);if(Q.catchall?._zod.def.type==="never")X.additionalProperties=!1;else if(!Q.catchall){if(U.io==="output")X.additionalProperties=!1}else if(Q.catchall)X.additionalProperties=d(Q.catchall,U,{...G,path:[...G.path,"additionalProperties"]})},DG=($,U,J,G)=>{let X=$._zod.def,Q=X.inclusive===!1,Z=X.options.map((Y,_)=>d(Y,U,{...G,path:[...G.path,Q?"oneOf":"anyOf",_]}));if(Q)J.oneOf=Z;else J.anyOf=Z},KY=($,U,J,G)=>{let X=$._zod.def,Q=d(X.left,U,{...G,path:[...G.path,"allOf",0]}),Z=d(X.right,U,{...G,path:[...G.path,"allOf",1]}),Y=(H)=>("allOf"in H)&&Object.keys(H).length===1,_=[...Y(Q)?Q.allOf:[Q],...Y(Z)?Z.allOf:[Z]];J.allOf=_},qY=($,U,J,G)=>{let X=J,Q=$._zod.def;X.type="array";let Z=U.target==="draft-2020-12"?"prefixItems":"items",Y=U.target==="draft-2020-12"?"items":U.target==="openapi-3.0"?"items":"additionalItems",_=Q.items.map((F,M)=>d(F,U,{...G,path:[...G.path,Z,M]})),H=Q.rest?d(Q.rest,U,{...G,path:[...G.path,Y,...U.target==="openapi-3.0"?[Q.items.length]:[]]}):null;if(U.target==="draft-2020-12"){if(X.prefixItems=_,H)X.items=H}else if(U.target==="openapi-3.0"){if(X.items={anyOf:_},H)X.items.anyOf.push(H);if(X.minItems=_.length,!H)X.maxItems=_.length}else if(X.items=_,H)X.additionalItems=H;let{minimum:D,maximum:L}=$._zod.bag;if(typeof D==="number")X.minItems=D;if(typeof L==="number")X.maxItems=L},NY=($,U,J,G)=>{let X=J,Q=$._zod.def;X.type="object";let Z=Q.keyType,_=Z._zod.bag?.patterns;if(Q.mode==="loose"&&_&&_.size>0){let D=d(Q.valueType,U,{...G,path:[...G.path,"patternProperties","*"]});X.patternProperties={};for(let L of _)X.patternProperties[L.source]=D}else{if(U.target==="draft-07"||U.target==="draft-2020-12")X.propertyNames=d(Q.keyType,U,{...G,path:[...G.path,"propertyNames"]});X.additionalProperties=d(Q.valueType,U,{...G,path:[...G.path,"additionalProperties"]})}let H=Z._zod.values;if(H){let D=[...H].filter((L)=>typeof L==="string"||typeof L==="number");if(D.length>0)X.required=D}},OY=($,U,J,G)=>{let X=$._zod.def,Q=d(X.innerType,U,G),Z=U.seen.get($);if(U.target==="openapi-3.0")Z.ref=X.innerType,J.nullable=!0;else J.anyOf=[Q,{type:"null"}]},AY=($,U,J,G)=>{let X=$._zod.def;d(X.innerType,U,G);let Q=U.seen.get($);Q.ref=X.innerType},CY=($,U,J,G)=>{let X=$._zod.def;d(X.innerType,U,G);let Q=U.seen.get($);Q.ref=X.innerType,J.default=JSON.parse(JSON.stringify(X.defaultValue))},RY=($,U,J,G)=>{let X=$._zod.def;d(X.innerType,U,G);let Q=U.seen.get($);if(Q.ref=X.innerType,U.io==="input")J._prefault=JSON.parse(JSON.stringify(X.defaultValue))},TY=($,U,J,G)=>{let X=$._zod.def;d(X.innerType,U,G);let Q=U.seen.get($);Q.ref=X.innerType;let Z;try{Z=X.catchValue(void 0)}catch{throw Error("Dynamic catch values are not supported in JSON Schema")}J.default=Z},EY=($,U,J,G)=>{let X=$._zod.def,Q=U.io==="input"?X.in._zod.def.type==="transform"?X.out:X.in:X.out;d(Q,U,G);let Z=U.seen.get($);Z.ref=Q},xY=($,U,J,G)=>{let X=$._zod.def;d(X.innerType,U,G);let Q=U.seen.get($);Q.ref=X.innerType,J.readOnly=!0},SY=($,U,J,G)=>{let X=$._zod.def;d(X.innerType,U,G);let Q=U.seen.get($);Q.ref=X.innerType},LG=($,U,J,G)=>{let X=$._zod.def;d(X.innerType,U,G);let Q=U.seen.get($);Q.ref=X.innerType},bY=($,U,J,G)=>{let X=$._zod.innerType;d(X,U,G);let Q=U.seen.get($);Q.ref=X},HG={string:oZ,number:sZ,boolean:aZ,bigint:tZ,symbol:eZ,null:$Y,undefined:UY,void:JY,never:GY,any:XY,unknown:QY,date:ZY,enum:YY,literal:_Y,nan:jY,template_literal:HY,file:DY,success:LY,custom:VY,function:PY,transform:FY,map:MY,set:zY,array:BY,object:WY,union:DG,intersection:KY,tuple:qY,record:NY,nullable:OY,nonoptional:AY,default:CY,prefault:RY,catch:TY,pipe:EY,readonly:xY,promise:SY,optional:LG,lazy:bY};function VG($,U){if("_idmap"in $){let G=$,X=m4({...U,processors:HG}),Q={};for(let _ of G._idmap.entries()){let[H,D]=_;d(D,X)}let Z={},Y={registry:G,uri:U?.uri,defs:Q};X.external=Y;for(let _ of G._idmap.entries()){let[H,D]=_;k4(X,D),Z[H]=f4(X,D)}if(Object.keys(Q).length>0){let _=X.target==="draft-2020-12"?"$defs":"definitions";Z.__shared={[_]:Q}}return{schemas:Z}}let J=m4({...U,processors:HG});return d($,J),k4(J,$),f4(J,$)}class vY{get metadataRegistry(){return this.ctx.metadataRegistry}get target(){return this.ctx.target}get unrepresentable(){return this.ctx.unrepresentable}get override(){return this.ctx.override}get io(){return this.ctx.io}get counter(){return this.ctx.counter}set counter($){this.ctx.counter=$}get seen(){return this.ctx.seen}constructor($){let U=$?.target??"draft-2020-12";if(U==="draft-4")U="draft-04";if(U==="draft-7")U="draft-07";this.ctx=m4({processors:HG,target:U,...$?.metadata&&{metadata:$.metadata},...$?.unrepresentable&&{unrepresentable:$.unrepresentable},...$?.override&&{override:$.override},...$?.io&&{io:$.io}})}process($,U={path:[],schemaPath:[]}){return d($,this.ctx,U)}emit($,U){if(U){if(U.cycles)this.ctx.cycles=U.cycles;if(U.reused)this.ctx.reused=U.reused;if(U.external)this.ctx.external=U.external}k4(this.ctx,$);let J=f4(this.ctx,$),{"~standard":G,...X}=J;return X}}var GP={};var C2={};D4(C2,{xor:()=>oP,xid:()=>BP,void:()=>pP,uuidv7:()=>HP,uuidv6:()=>jP,uuidv4:()=>_P,uuid:()=>YP,url:()=>DP,unknown:()=>F1,union:()=>uG,undefined:()=>wP,ulid:()=>zP,uint64:()=>fP,uint32:()=>yP,tuple:()=>L_,transform:()=>cG,templateLiteral:()=>_F,symbol:()=>uP,superRefine:()=>f_,success:()=>QF,stringbool:()=>MF,stringFormat:()=>xP,string:()=>WG,strictObject:()=>nP,set:()=>$F,refine:()=>k_,record:()=>V_,readonly:()=>v_,promise:()=>jF,preprocess:()=>BF,prefault:()=>C_,pipe:()=>x2,partialRecord:()=>aP,optional:()=>T2,object:()=>iP,number:()=>sY,nullish:()=>XF,nullable:()=>E2,null:()=>U_,nonoptional:()=>R_,never:()=>fG,nativeEnum:()=>UF,nanoid:()=>PP,nan:()=>ZF,meta:()=>PF,map:()=>eP,mac:()=>qP,looseRecord:()=>tP,looseObject:()=>rP,literal:()=>JF,lazy:()=>h_,ksuid:()=>WP,keyof:()=>lP,jwt:()=>EP,json:()=>zF,ipv6:()=>NP,ipv4:()=>KP,intersection:()=>H_,int64:()=>kP,int32:()=>hP,int:()=>KG,instanceof:()=>FF,httpUrl:()=>LP,hostname:()=>SP,hex:()=>bP,hash:()=>vP,guid:()=>ZP,function:()=>HF,float64:()=>IP,float32:()=>gP,file:()=>GF,exactOptional:()=>K_,enum:()=>wG,emoji:()=>VP,email:()=>QP,e164:()=>TP,discriminatedUnion:()=>sP,describe:()=>VF,date:()=>dP,custom:()=>LF,cuid2:()=>MP,cuid:()=>FP,codec:()=>YF,cidrv6:()=>AP,cidrv4:()=>OP,check:()=>DF,catch:()=>x_,boolean:()=>aY,bigint:()=>mP,base64url:()=>RP,base64:()=>CP,array:()=>v2,any:()=>cP,_function:()=>HF,_default:()=>O_,_ZodString:()=>qG,ZodXor:()=>Y_,ZodXID:()=>EG,ZodVoid:()=>Q_,ZodUnknown:()=>G_,ZodUnion:()=>I2,ZodUndefined:()=>eY,ZodUUID:()=>w6,ZodURL:()=>S2,ZodULID:()=>TG,ZodType:()=>k,ZodTuple:()=>D_,ZodTransform:()=>B_,ZodTemplateLiteral:()=>g_,ZodSymbol:()=>tY,ZodSuccess:()=>T_,ZodStringFormat:()=>r,ZodString:()=>TU,ZodSet:()=>F_,ZodRecord:()=>h2,ZodReadonly:()=>b_,ZodPromise:()=>y_,ZodPrefault:()=>A_,ZodPipe:()=>lG,ZodOptional:()=>pG,ZodObject:()=>g2,ZodNumberFormat:()=>M1,ZodNumber:()=>xU,ZodNullable:()=>q_,ZodNull:()=>$_,ZodNonOptional:()=>dG,ZodNever:()=>X_,ZodNanoID:()=>AG,ZodNaN:()=>S_,ZodMap:()=>P_,ZodMAC:()=>oY,ZodLiteral:()=>M_,ZodLazy:()=>I_,ZodKSUID:()=>xG,ZodJWT:()=>mG,ZodIntersection:()=>j_,ZodIPv6:()=>bG,ZodIPv4:()=>SG,ZodGUID:()=>R2,ZodFunction:()=>m_,ZodFile:()=>z_,ZodExactOptional:()=>W_,ZodEnum:()=>RU,ZodEmoji:()=>OG,ZodEmail:()=>NG,ZodE164:()=>yG,ZodDiscriminatedUnion:()=>__,ZodDefault:()=>N_,ZodDate:()=>b2,ZodCustomStringFormat:()=>EU,ZodCustom:()=>y2,ZodCodec:()=>iG,ZodCatch:()=>E_,ZodCUID2:()=>RG,ZodCUID:()=>CG,ZodCIDRv6:()=>gG,ZodCIDRv4:()=>vG,ZodBoolean:()=>SU,ZodBigIntFormat:()=>kG,ZodBigInt:()=>bU,ZodBase64URL:()=>hG,ZodBase64:()=>IG,ZodArray:()=>Z_,ZodAny:()=>J_});var PG={};D4(PG,{uppercase:()=>VU,trim:()=>WU,toUpperCase:()=>qU,toLowerCase:()=>KU,startsWith:()=>FU,slugify:()=>NU,size:()=>L1,regex:()=>DU,property:()=>jG,positive:()=>QG,overwrite:()=>V6,normalize:()=>BU,nonpositive:()=>YG,nonnegative:()=>_G,negative:()=>ZG,multipleOf:()=>h4,minSize:()=>u6,minLength:()=>P4,mime:()=>zU,maxSize:()=>y4,maxLength:()=>V1,lte:()=>l$,lt:()=>k6,lowercase:()=>LU,length:()=>P1,includes:()=>PU,gte:()=>x$,gt:()=>f6,endsWith:()=>MU});var CU={};D4(CU,{time:()=>hY,duration:()=>yY,datetime:()=>gY,date:()=>IY,ZodISOTime:()=>zG,ZodISODuration:()=>BG,ZodISODateTime:()=>FG,ZodISODate:()=>MG});var FG=z("ZodISODateTime",($,U)=>{M5.init($,U),r.init($,U)});function gY($){return VZ(FG,$)}var MG=z("ZodISODate",($,U)=>{z5.init($,U),r.init($,U)});function IY($){return PZ(MG,$)}var zG=z("ZodISOTime",($,U)=>{B5.init($,U),r.init($,U)});function hY($){return FZ(zG,$)}var BG=z("ZodISODuration",($,U)=>{W5.init($,U),r.init($,U)});function yY($){return MZ(BG,$)}var XP=($,U)=>{j2.init($,U),$.name="ZodError",Object.defineProperties($,{format:{value:(J)=>D2($,J)},flatten:{value:(J)=>H2($,J)},addIssue:{value:(J)=>{$.issues.push(J),$.message=JSON.stringify($.issues,JU,2)}},addIssues:{value:(J)=>{$.issues.push(...J),$.message=JSON.stringify($.issues,JU,2)}},isEmpty:{get(){return $.issues.length===0}}})},rv=z("ZodError",XP),u$=z("ZodError",XP,{Parent:Error});var mY=QU(u$),kY=ZU(u$),fY=YU(u$),uY=_U(u$),wY=zJ(u$),cY=BJ(u$),pY=WJ(u$),dY=KJ(u$),lY=qJ(u$),iY=NJ(u$),nY=OJ(u$),rY=AJ(u$);var k=z("ZodType",($,U)=>{return y.init($,U),Object.assign($["~standard"],{jsonSchema:{input:AU($,"input"),output:AU($,"output")}}),$.toJSONSchema=rZ($,{}),$.def=U,$.type=U.type,Object.defineProperty($,"_def",{value:U}),$.check=(...J)=>{return $.clone(E.mergeDefs(U,{checks:[...U.checks??[],...J.map((G)=>typeof G==="function"?{_zod:{check:G,def:{check:"custom"},onattach:[]}}:G)]}),{parent:!0})},$.with=$.check,$.clone=(J,G)=>E$($,J,G),$.brand=()=>$,$.register=(J,G)=>{return J.add($,G),$},$.parse=(J,G)=>mY($,J,G,{callee:$.parse}),$.safeParse=(J,G)=>fY($,J,G),$.parseAsync=async(J,G)=>kY($,J,G,{callee:$.parseAsync}),$.safeParseAsync=async(J,G)=>uY($,J,G),$.spa=$.safeParseAsync,$.encode=(J,G)=>wY($,J,G),$.decode=(J,G)=>cY($,J,G),$.encodeAsync=async(J,G)=>pY($,J,G),$.decodeAsync=async(J,G)=>dY($,J,G),$.safeEncode=(J,G)=>lY($,J,G),$.safeDecode=(J,G)=>iY($,J,G),$.safeEncodeAsync=async(J,G)=>nY($,J,G),$.safeDecodeAsync=async(J,G)=>rY($,J,G),$.refine=(J,G)=>$.check(k_(J,G)),$.superRefine=(J)=>$.check(f_(J)),$.overwrite=(J)=>$.check(V6(J)),$.optional=()=>T2($),$.exactOptional=()=>K_($),$.nullable=()=>E2($),$.nullish=()=>T2(E2($)),$.nonoptional=(J)=>R_($,J),$.array=()=>v2($),$.or=(J)=>uG([$,J]),$.and=(J)=>H_($,J),$.transform=(J)=>x2($,cG(J)),$.default=(J)=>O_($,J),$.prefault=(J)=>C_($,J),$.catch=(J)=>x_($,J),$.pipe=(J)=>x2($,J),$.readonly=()=>v_($),$.describe=(J)=>{let G=$.clone();return z$.add(G,{description:J}),G},Object.defineProperty($,"description",{get(){return z$.get($)?.description},configurable:!0}),$.meta=(...J)=>{if(J.length===0)return z$.get($);let G=$.clone();return z$.add(G,J[0]),G},$.isOptional=()=>$.safeParse(void 0).success,$.isNullable=()=>$.safeParse(null).success,$.apply=(J)=>J($),$}),qG=z("_ZodString",($,U)=>{D1.init($,U),k.init($,U),$._zod.processJSONSchema=(G,X,Q)=>oZ($,G,X,Q);let J=$._zod.bag;$.format=J.format??null,$.minLength=J.minimum??null,$.maxLength=J.maximum??null,$.regex=(...G)=>$.check(DU(...G)),$.includes=(...G)=>$.check(PU(...G)),$.startsWith=(...G)=>$.check(FU(...G)),$.endsWith=(...G)=>$.check(MU(...G)),$.min=(...G)=>$.check(P4(...G)),$.max=(...G)=>$.check(V1(...G)),$.length=(...G)=>$.check(P1(...G)),$.nonempty=(...G)=>$.check(P4(1,...G)),$.lowercase=(G)=>$.check(LU(G)),$.uppercase=(G)=>$.check(VU(G)),$.trim=()=>$.check(WU()),$.normalize=(...G)=>$.check(BU(...G)),$.toLowerCase=()=>$.check(KU()),$.toUpperCase=()=>$.check(qU()),$.slugify=()=>$.check(NU())}),TU=z("ZodString",($,U)=>{D1.init($,U),qG.init($,U),$.email=(J)=>$.check(fJ(NG,J)),$.url=(J)=>$.check(A2(S2,J)),$.jwt=(J)=>$.check(XG(mG,J)),$.emoji=(J)=>$.check(dJ(OG,J)),$.guid=(J)=>$.check(O2(R2,J)),$.uuid=(J)=>$.check(uJ(w6,J)),$.uuidv4=(J)=>$.check(wJ(w6,J)),$.uuidv6=(J)=>$.check(cJ(w6,J)),$.uuidv7=(J)=>$.check(pJ(w6,J)),$.nanoid=(J)=>$.check(lJ(AG,J)),$.guid=(J)=>$.check(O2(R2,J)),$.cuid=(J)=>$.check(iJ(CG,J)),$.cuid2=(J)=>$.check(nJ(RG,J)),$.ulid=(J)=>$.check(rJ(TG,J)),$.base64=(J)=>$.check(UG(IG,J)),$.base64url=(J)=>$.check(JG(hG,J)),$.xid=(J)=>$.check(oJ(EG,J)),$.ksuid=(J)=>$.check(sJ(xG,J)),$.ipv4=(J)=>$.check(aJ(SG,J)),$.ipv6=(J)=>$.check(tJ(bG,J)),$.cidrv4=(J)=>$.check(eJ(vG,J)),$.cidrv6=(J)=>$.check($G(gG,J)),$.e164=(J)=>$.check(GG(yG,J)),$.datetime=(J)=>$.check(gY(J)),$.date=(J)=>$.check(IY(J)),$.time=(J)=>$.check(hY(J)),$.duration=(J)=>$.check(yY(J))});function WG($){return jZ(TU,$)}var r=z("ZodStringFormat",($,U)=>{n.init($,U),qG.init($,U)}),NG=z("ZodEmail",($,U)=>{Y5.init($,U),r.init($,U)});function QP($){return fJ(NG,$)}var R2=z("ZodGUID",($,U)=>{Q5.init($,U),r.init($,U)});function ZP($){return O2(R2,$)}var w6=z("ZodUUID",($,U)=>{Z5.init($,U),r.init($,U)});function YP($){return uJ(w6,$)}function _P($){return wJ(w6,$)}function jP($){return cJ(w6,$)}function HP($){return pJ(w6,$)}var S2=z("ZodURL",($,U)=>{_5.init($,U),r.init($,U)});function DP($){return A2(S2,$)}function LP($){return A2(S2,{protocol:/^https?$/,hostname:s$.domain,...E.normalizeParams($)})}var OG=z("ZodEmoji",($,U)=>{j5.init($,U),r.init($,U)});function VP($){return dJ(OG,$)}var AG=z("ZodNanoID",($,U)=>{H5.init($,U),r.init($,U)});function PP($){return lJ(AG,$)}var CG=z("ZodCUID",($,U)=>{D5.init($,U),r.init($,U)});function FP($){return iJ(CG,$)}var RG=z("ZodCUID2",($,U)=>{L5.init($,U),r.init($,U)});function MP($){return nJ(RG,$)}var TG=z("ZodULID",($,U)=>{V5.init($,U),r.init($,U)});function zP($){return rJ(TG,$)}var EG=z("ZodXID",($,U)=>{P5.init($,U),r.init($,U)});function BP($){return oJ(EG,$)}var xG=z("ZodKSUID",($,U)=>{F5.init($,U),r.init($,U)});function WP($){return sJ(xG,$)}var SG=z("ZodIPv4",($,U)=>{K5.init($,U),r.init($,U)});function KP($){return aJ(SG,$)}var oY=z("ZodMAC",($,U)=>{N5.init($,U),r.init($,U)});function qP($){return DZ(oY,$)}var bG=z("ZodIPv6",($,U)=>{q5.init($,U),r.init($,U)});function NP($){return tJ(bG,$)}var vG=z("ZodCIDRv4",($,U)=>{O5.init($,U),r.init($,U)});function OP($){return eJ(vG,$)}var gG=z("ZodCIDRv6",($,U)=>{A5.init($,U),r.init($,U)});function AP($){return $G(gG,$)}var IG=z("ZodBase64",($,U)=>{R5.init($,U),r.init($,U)});function CP($){return UG(IG,$)}var hG=z("ZodBase64URL",($,U)=>{T5.init($,U),r.init($,U)});function RP($){return JG(hG,$)}var yG=z("ZodE164",($,U)=>{E5.init($,U),r.init($,U)});function TP($){return GG(yG,$)}var mG=z("ZodJWT",($,U)=>{x5.init($,U),r.init($,U)});function EP($){return XG(mG,$)}var EU=z("ZodCustomStringFormat",($,U)=>{S5.init($,U),r.init($,U)});function xP($,U,J={}){return OU(EU,$,U,J)}function SP($){return OU(EU,"hostname",s$.hostname,$)}function bP($){return OU(EU,"hex",s$.hex,$)}function vP($,U){let J=U?.enc??"hex",G=`${$}_${J}`,X=s$[G];if(!X)throw Error(`Unrecognized hash format: ${G}`);return OU(EU,G,X,U)}var xU=z("ZodNumber",($,U)=>{IJ.init($,U),k.init($,U),$._zod.processJSONSchema=(G,X,Q)=>sZ($,G,X,Q),$.gt=(G,X)=>$.check(f6(G,X)),$.gte=(G,X)=>$.check(x$(G,X)),$.min=(G,X)=>$.check(x$(G,X)),$.lt=(G,X)=>$.check(k6(G,X)),$.lte=(G,X)=>$.check(l$(G,X)),$.max=(G,X)=>$.check(l$(G,X)),$.int=(G)=>$.check(KG(G)),$.safe=(G)=>$.check(KG(G)),$.positive=(G)=>$.check(f6(0,G)),$.nonnegative=(G)=>$.check(x$(0,G)),$.negative=(G)=>$.check(k6(0,G)),$.nonpositive=(G)=>$.check(l$(0,G)),$.multipleOf=(G,X)=>$.check(h4(G,X)),$.step=(G,X)=>$.check(h4(G,X)),$.finite=()=>$;let J=$._zod.bag;$.minValue=Math.max(J.minimum??Number.NEGATIVE_INFINITY,J.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,$.maxValue=Math.min(J.maximum??Number.POSITIVE_INFINITY,J.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,$.isInt=(J.format??"").includes("int")||Number.isSafeInteger(J.multipleOf??0.5),$.isFinite=!0,$.format=J.format??null});function sY($){return zZ(xU,$)}var M1=z("ZodNumberFormat",($,U)=>{b5.init($,U),xU.init($,U)});function KG($){return WZ(M1,$)}function gP($){return KZ(M1,$)}function IP($){return qZ(M1,$)}function hP($){return NZ(M1,$)}function yP($){return OZ(M1,$)}var SU=z("ZodBoolean",($,U)=>{F2.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>aZ($,J,G,X)});function aY($){return AZ(SU,$)}var bU=z("ZodBigInt",($,U)=>{hJ.init($,U),k.init($,U),$._zod.processJSONSchema=(G,X,Q)=>tZ($,G,X,Q),$.gte=(G,X)=>$.check(x$(G,X)),$.min=(G,X)=>$.check(x$(G,X)),$.gt=(G,X)=>$.check(f6(G,X)),$.gte=(G,X)=>$.check(x$(G,X)),$.min=(G,X)=>$.check(x$(G,X)),$.lt=(G,X)=>$.check(k6(G,X)),$.lte=(G,X)=>$.check(l$(G,X)),$.max=(G,X)=>$.check(l$(G,X)),$.positive=(G)=>$.check(f6(BigInt(0),G)),$.negative=(G)=>$.check(k6(BigInt(0),G)),$.nonpositive=(G)=>$.check(l$(BigInt(0),G)),$.nonnegative=(G)=>$.check(x$(BigInt(0),G)),$.multipleOf=(G,X)=>$.check(h4(G,X));let J=$._zod.bag;$.minValue=J.minimum??null,$.maxValue=J.maximum??null,$.format=J.format??null});function mP($){return RZ(bU,$)}var kG=z("ZodBigIntFormat",($,U)=>{v5.init($,U),bU.init($,U)});function kP($){return EZ(kG,$)}function fP($){return xZ(kG,$)}var tY=z("ZodSymbol",($,U)=>{g5.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>eZ($,J,G,X)});function uP($){return SZ(tY,$)}var eY=z("ZodUndefined",($,U)=>{I5.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>UY($,J,G,X)});function wP($){return bZ(eY,$)}var $_=z("ZodNull",($,U)=>{h5.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>$Y($,J,G,X)});function U_($){return vZ($_,$)}var J_=z("ZodAny",($,U)=>{y5.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>XY($,J,G,X)});function cP(){return gZ(J_)}var G_=z("ZodUnknown",($,U)=>{m5.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>QY($,J,G,X)});function F1(){return IZ(G_)}var X_=z("ZodNever",($,U)=>{k5.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>GY($,J,G,X)});function fG($){return hZ(X_,$)}var Q_=z("ZodVoid",($,U)=>{f5.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>JY($,J,G,X)});function pP($){return yZ(Q_,$)}var b2=z("ZodDate",($,U)=>{u5.init($,U),k.init($,U),$._zod.processJSONSchema=(G,X,Q)=>ZY($,G,X,Q),$.min=(G,X)=>$.check(x$(G,X)),$.max=(G,X)=>$.check(l$(G,X));let J=$._zod.bag;$.minDate=J.minimum?new Date(J.minimum):null,$.maxDate=J.maximum?new Date(J.maximum):null});function dP($){return mZ(b2,$)}var Z_=z("ZodArray",($,U)=>{w5.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>BY($,J,G,X),$.element=U.element,$.min=(J,G)=>$.check(P4(J,G)),$.nonempty=(J)=>$.check(P4(1,J)),$.max=(J,G)=>$.check(V1(J,G)),$.length=(J,G)=>$.check(P1(J,G)),$.unwrap=()=>$.element});function v2($,U){return uZ(Z_,$,U)}function lP($){let U=$._zod.def.shape;return wG(Object.keys(U))}var g2=z("ZodObject",($,U)=>{c5.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>WY($,J,G,X),E.defineLazy($,"shape",()=>{return U.shape}),$.keyof=()=>wG(Object.keys($._zod.def.shape)),$.catchall=(J)=>$.clone({...$._zod.def,catchall:J}),$.passthrough=()=>$.clone({...$._zod.def,catchall:F1()}),$.loose=()=>$.clone({...$._zod.def,catchall:F1()}),$.strict=()=>$.clone({...$._zod.def,catchall:fG()}),$.strip=()=>$.clone({...$._zod.def,catchall:void 0}),$.extend=(J)=>{return E.extend($,J)},$.safeExtend=(J)=>{return E.safeExtend($,J)},$.merge=(J)=>E.merge($,J),$.pick=(J)=>E.pick($,J),$.omit=(J)=>E.omit($,J),$.partial=(...J)=>E.partial(pG,$,J[0]),$.required=(...J)=>E.required(dG,$,J[0])});function iP($,U){let J={type:"object",shape:$??{},...E.normalizeParams(U)};return new g2(J)}function nP($,U){return new g2({type:"object",shape:$,catchall:fG(),...E.normalizeParams(U)})}function rP($,U){return new g2({type:"object",shape:$,catchall:F1(),...E.normalizeParams(U)})}var I2=z("ZodUnion",($,U)=>{M2.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>DG($,J,G,X),$.options=U.options});function uG($,U){return new I2({type:"union",options:$,...E.normalizeParams(U)})}var Y_=z("ZodXor",($,U)=>{I2.init($,U),p5.init($,U),$._zod.processJSONSchema=(J,G,X)=>DG($,J,G,X),$.options=U.options});function oP($,U){return new Y_({type:"union",options:$,inclusive:!1,...E.normalizeParams(U)})}var __=z("ZodDiscriminatedUnion",($,U)=>{I2.init($,U),d5.init($,U)});function sP($,U,J){return new __({type:"union",options:U,discriminator:$,...E.normalizeParams(J)})}var j_=z("ZodIntersection",($,U)=>{l5.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>KY($,J,G,X)});function H_($,U){return new j_({type:"intersection",left:$,right:U})}var D_=z("ZodTuple",($,U)=>{yJ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>qY($,J,G,X),$.rest=(J)=>$.clone({...$._zod.def,rest:J})});function L_($,U,J){let G=U instanceof y,X=G?J:U;return new D_({type:"tuple",items:$,rest:G?U:null,...E.normalizeParams(X)})}var h2=z("ZodRecord",($,U)=>{i5.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>NY($,J,G,X),$.keyType=U.keyType,$.valueType=U.valueType});function V_($,U,J){return new h2({type:"record",keyType:$,valueType:U,...E.normalizeParams(J)})}function aP($,U,J){let G=E$($);return G._zod.values=void 0,new h2({type:"record",keyType:G,valueType:U,...E.normalizeParams(J)})}function tP($,U,J){return new h2({type:"record",keyType:$,valueType:U,mode:"loose",...E.normalizeParams(J)})}var P_=z("ZodMap",($,U)=>{n5.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>MY($,J,G,X),$.keyType=U.keyType,$.valueType=U.valueType,$.min=(...J)=>$.check(u6(...J)),$.nonempty=(J)=>$.check(u6(1,J)),$.max=(...J)=>$.check(y4(...J)),$.size=(...J)=>$.check(L1(...J))});function eP($,U,J){return new P_({type:"map",keyType:$,valueType:U,...E.normalizeParams(J)})}var F_=z("ZodSet",($,U)=>{r5.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>zY($,J,G,X),$.min=(...J)=>$.check(u6(...J)),$.nonempty=(J)=>$.check(u6(1,J)),$.max=(...J)=>$.check(y4(...J)),$.size=(...J)=>$.check(L1(...J))});function $F($,U){return new F_({type:"set",valueType:$,...E.normalizeParams(U)})}var RU=z("ZodEnum",($,U)=>{o5.init($,U),k.init($,U),$._zod.processJSONSchema=(G,X,Q)=>YY($,G,X,Q),$.enum=U.entries,$.options=Object.values(U.entries);let J=new Set(Object.keys(U.entries));$.extract=(G,X)=>{let Q={};for(let Z of G)if(J.has(Z))Q[Z]=U.entries[Z];else throw Error(`Key ${Z} not found in enum`);return new RU({...U,checks:[],...E.normalizeParams(X),entries:Q})},$.exclude=(G,X)=>{let Q={...U.entries};for(let Z of G)if(J.has(Z))delete Q[Z];else throw Error(`Key ${Z} not found in enum`);return new RU({...U,checks:[],...E.normalizeParams(X),entries:Q})}});function wG($,U){let J=Array.isArray($)?Object.fromEntries($.map((G)=>[G,G])):$;return new RU({type:"enum",entries:J,...E.normalizeParams(U)})}function UF($,U){return new RU({type:"enum",entries:$,...E.normalizeParams(U)})}var M_=z("ZodLiteral",($,U)=>{s5.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>_Y($,J,G,X),$.values=new Set(U.values),Object.defineProperty($,"value",{get(){if(U.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return U.values[0]}})});function JF($,U){return new M_({type:"literal",values:Array.isArray($)?$:[$],...E.normalizeParams(U)})}var z_=z("ZodFile",($,U)=>{a5.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>DY($,J,G,X),$.min=(J,G)=>$.check(u6(J,G)),$.max=(J,G)=>$.check(y4(J,G)),$.mime=(J,G)=>$.check(zU(Array.isArray(J)?J:[J],G))});function GF($){return wZ(z_,$)}var B_=z("ZodTransform",($,U)=>{t5.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>FY($,J,G,X),$._zod.parse=(J,G)=>{if(G.direction==="backward")throw new _1($.constructor.name);J.addIssue=(Q)=>{if(typeof Q==="string")J.issues.push(E.issue(Q,J.value,U));else{let Z=Q;if(Z.fatal)Z.continue=!1;Z.code??(Z.code="custom"),Z.input??(Z.input=J.value),Z.inst??(Z.inst=$),J.issues.push(E.issue(Z))}};let X=U.transform(J.value,J);if(X instanceof Promise)return X.then((Q)=>{return J.value=Q,J});return J.value=X,J}});function cG($){return new B_({type:"transform",transform:$})}var pG=z("ZodOptional",($,U)=>{mJ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>LG($,J,G,X),$.unwrap=()=>$._zod.def.innerType});function T2($){return new pG({type:"optional",innerType:$})}var W_=z("ZodExactOptional",($,U)=>{e5.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>LG($,J,G,X),$.unwrap=()=>$._zod.def.innerType});function K_($){return new W_({type:"optional",innerType:$})}var q_=z("ZodNullable",($,U)=>{$Q.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>OY($,J,G,X),$.unwrap=()=>$._zod.def.innerType});function E2($){return new q_({type:"nullable",innerType:$})}function XF($){return T2(E2($))}var N_=z("ZodDefault",($,U)=>{UQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>CY($,J,G,X),$.unwrap=()=>$._zod.def.innerType,$.removeDefault=$.unwrap});function O_($,U){return new N_({type:"default",innerType:$,get defaultValue(){return typeof U==="function"?U():E.shallowClone(U)}})}var A_=z("ZodPrefault",($,U)=>{JQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>RY($,J,G,X),$.unwrap=()=>$._zod.def.innerType});function C_($,U){return new A_({type:"prefault",innerType:$,get defaultValue(){return typeof U==="function"?U():E.shallowClone(U)}})}var dG=z("ZodNonOptional",($,U)=>{GQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>AY($,J,G,X),$.unwrap=()=>$._zod.def.innerType});function R_($,U){return new dG({type:"nonoptional",innerType:$,...E.normalizeParams(U)})}var T_=z("ZodSuccess",($,U)=>{XQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>LY($,J,G,X),$.unwrap=()=>$._zod.def.innerType});function QF($){return new T_({type:"success",innerType:$})}var E_=z("ZodCatch",($,U)=>{QQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>TY($,J,G,X),$.unwrap=()=>$._zod.def.innerType,$.removeCatch=$.unwrap});function x_($,U){return new E_({type:"catch",innerType:$,catchValue:typeof U==="function"?U:()=>U})}var S_=z("ZodNaN",($,U)=>{ZQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>jY($,J,G,X)});function ZF($){return fZ(S_,$)}var lG=z("ZodPipe",($,U)=>{YQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>EY($,J,G,X),$.in=U.in,$.out=U.out});function x2($,U){return new lG({type:"pipe",in:$,out:U})}var iG=z("ZodCodec",($,U)=>{lG.init($,U),z2.init($,U)});function YF($,U,J){return new iG({type:"pipe",in:$,out:U,transform:J.decode,reverseTransform:J.encode})}var b_=z("ZodReadonly",($,U)=>{_Q.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>xY($,J,G,X),$.unwrap=()=>$._zod.def.innerType});function v_($){return new b_({type:"readonly",innerType:$})}var g_=z("ZodTemplateLiteral",($,U)=>{jQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>HY($,J,G,X)});function _F($,U){return new g_({type:"template_literal",parts:$,...E.normalizeParams(U)})}var I_=z("ZodLazy",($,U)=>{LQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>bY($,J,G,X),$.unwrap=()=>$._zod.def.getter()});function h_($){return new I_({type:"lazy",getter:$})}var y_=z("ZodPromise",($,U)=>{DQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>SY($,J,G,X),$.unwrap=()=>$._zod.def.innerType});function jF($){return new y_({type:"promise",innerType:$})}var m_=z("ZodFunction",($,U)=>{HQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>PY($,J,G,X)});function HF($){return new m_({type:"function",input:Array.isArray($?.input)?L_($?.input):$?.input??v2(F1()),output:$?.output??F1()})}var y2=z("ZodCustom",($,U)=>{VQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>VY($,J,G,X)});function DF($){let U=new o({check:"custom"});return U._zod.check=$,U}function LF($,U){return cZ(y2,$??(()=>!0),U)}function k_($,U={}){return pZ(y2,$,U)}function f_($){return dZ($)}var VF=lZ,PF=iZ;function FF($,U={}){let J=new y2({type:"custom",check:"custom",fn:(G)=>G instanceof $,abort:!0,...E.normalizeParams(U)});return J._zod.bag.Class=$,J._zod.check=(G)=>{if(!(G.value instanceof $))G.issues.push({code:"invalid_type",expected:$.name,input:G.value,inst:J,path:[...J._zod.def.path??[]]})},J}var MF=(...$)=>nZ({Codec:iG,Boolean:SU,String:TU},...$);function zF($){let U=h_(()=>{return uG([WG($),sY(),aY(),U_(),v2(U),V_(WG(),U)])});return U}function BF($,U){return x2(cG($),U)}var sv={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function av($){U$({customError:$})}function tv(){return U$().customError}var u_;(function($){})(u_||(u_={}));var b={...C2,...PG,iso:CU},ev=new Set(["$schema","$ref","$defs","definitions","$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor","type","enum","const","anyOf","oneOf","allOf","not","properties","required","additionalProperties","patternProperties","propertyNames","minProperties","maxProperties","items","prefixItems","additionalItems","minItems","maxItems","uniqueItems","contains","minContains","maxContains","minLength","maxLength","pattern","format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","description","default","contentEncoding","contentMediaType","contentSchema","unevaluatedItems","unevaluatedProperties","if","then","else","dependentSchemas","dependentRequired","nullable","readOnly"]);function $g($,U){let J=$.$schema;if(J==="https://json-schema.org/draft/2020-12/schema")return"draft-2020-12";if(J==="http://json-schema.org/draft-07/schema#")return"draft-7";if(J==="http://json-schema.org/draft-04/schema#")return"draft-4";return U??"draft-2020-12"}function Ug($,U){if(!$.startsWith("#"))throw Error("External $ref is not supported, only local refs (#/...) are allowed");let J=$.slice(1).split("/").filter(Boolean);if(J.length===0)return U.rootSchema;let G=U.version==="draft-2020-12"?"$defs":"definitions";if(J[0]===G){let X=J[1];if(!X||!U.defs[X])throw Error(`Reference not found: ${$}`);return U.defs[X]}throw Error(`Reference not found: ${$}`)}function WF($,U){if($.not!==void 0){if(typeof $.not==="object"&&Object.keys($.not).length===0)return b.never();throw Error("not is not supported in Zod (except { not: {} } for never)")}if($.unevaluatedItems!==void 0)throw Error("unevaluatedItems is not supported");if($.unevaluatedProperties!==void 0)throw Error("unevaluatedProperties is not supported");if($.if!==void 0||$.then!==void 0||$.else!==void 0)throw Error("Conditional schemas (if/then/else) are not supported");if($.dependentSchemas!==void 0||$.dependentRequired!==void 0)throw Error("dependentSchemas and dependentRequired are not supported");if($.$ref){let X=$.$ref;if(U.refs.has(X))return U.refs.get(X);if(U.processing.has(X))return b.lazy(()=>{if(!U.refs.has(X))throw Error(`Circular reference not resolved: ${X}`);return U.refs.get(X)});U.processing.add(X);let Q=Ug(X,U),Z=q$(Q,U);return U.refs.set(X,Z),U.processing.delete(X),Z}if($.enum!==void 0){let X=$.enum;if(U.version==="openapi-3.0"&&$.nullable===!0&&X.length===1&&X[0]===null)return b.null();if(X.length===0)return b.never();if(X.length===1)return b.literal(X[0]);if(X.every((Z)=>typeof Z==="string"))return b.enum(X);let Q=X.map((Z)=>b.literal(Z));if(Q.length<2)return Q[0];return b.union([Q[0],Q[1],...Q.slice(2)])}if($.const!==void 0)return b.literal($.const);let J=$.type;if(Array.isArray(J)){let X=J.map((Q)=>{let Z={...$,type:Q};return WF(Z,U)});if(X.length===0)return b.never();if(X.length===1)return X[0];return b.union(X)}if(!J)return b.any();let G;switch(J){case"string":{let X=b.string();if($.format){let Q=$.format;if(Q==="email")X=X.check(b.email());else if(Q==="uri"||Q==="uri-reference")X=X.check(b.url());else if(Q==="uuid"||Q==="guid")X=X.check(b.uuid());else if(Q==="date-time")X=X.check(b.iso.datetime());else if(Q==="date")X=X.check(b.iso.date());else if(Q==="time")X=X.check(b.iso.time());else if(Q==="duration")X=X.check(b.iso.duration());else if(Q==="ipv4")X=X.check(b.ipv4());else if(Q==="ipv6")X=X.check(b.ipv6());else if(Q==="mac")X=X.check(b.mac());else if(Q==="cidr")X=X.check(b.cidrv4());else if(Q==="cidr-v6")X=X.check(b.cidrv6());else if(Q==="base64")X=X.check(b.base64());else if(Q==="base64url")X=X.check(b.base64url());else if(Q==="e164")X=X.check(b.e164());else if(Q==="jwt")X=X.check(b.jwt());else if(Q==="emoji")X=X.check(b.emoji());else if(Q==="nanoid")X=X.check(b.nanoid());else if(Q==="cuid")X=X.check(b.cuid());else if(Q==="cuid2")X=X.check(b.cuid2());else if(Q==="ulid")X=X.check(b.ulid());else if(Q==="xid")X=X.check(b.xid());else if(Q==="ksuid")X=X.check(b.ksuid())}if(typeof $.minLength==="number")X=X.min($.minLength);if(typeof $.maxLength==="number")X=X.max($.maxLength);if($.pattern)X=X.regex(new RegExp($.pattern));G=X;break}case"number":case"integer":{let X=J==="integer"?b.number().int():b.number();if(typeof $.minimum==="number")X=X.min($.minimum);if(typeof $.maximum==="number")X=X.max($.maximum);if(typeof $.exclusiveMinimum==="number")X=X.gt($.exclusiveMinimum);else if($.exclusiveMinimum===!0&&typeof $.minimum==="number")X=X.gt($.minimum);if(typeof $.exclusiveMaximum==="number")X=X.lt($.exclusiveMaximum);else if($.exclusiveMaximum===!0&&typeof $.maximum==="number")X=X.lt($.maximum);if(typeof $.multipleOf==="number")X=X.multipleOf($.multipleOf);G=X;break}case"boolean":{G=b.boolean();break}case"null":{G=b.null();break}case"object":{let X={},Q=$.properties||{},Z=new Set($.required||[]);for(let[_,H]of Object.entries(Q)){let D=q$(H,U);X[_]=Z.has(_)?D:D.optional()}if($.propertyNames){let _=q$($.propertyNames,U),H=$.additionalProperties&&typeof $.additionalProperties==="object"?q$($.additionalProperties,U):b.any();if(Object.keys(X).length===0){G=b.record(_,H);break}let D=b.object(X).passthrough(),L=b.looseRecord(_,H);G=b.intersection(D,L);break}if($.patternProperties){let _=$.patternProperties,H=Object.keys(_),D=[];for(let F of H){let M=q$(_[F],U),K=b.string().regex(new RegExp(F));D.push(b.looseRecord(K,M))}let L=[];if(Object.keys(X).length>0)L.push(b.object(X).passthrough());if(L.push(...D),L.length===0)G=b.object({}).passthrough();else if(L.length===1)G=L[0];else{let F=b.intersection(L[0],L[1]);for(let M=2;M<L.length;M++)F=b.intersection(F,L[M]);G=F}break}let Y=b.object(X);if($.additionalProperties===!1)G=Y.strict();else if(typeof $.additionalProperties==="object")G=Y.catchall(q$($.additionalProperties,U));else G=Y.passthrough();break}case"array":{let{prefixItems:X,items:Q}=$;if(X&&Array.isArray(X)){let Z=X.map((_)=>q$(_,U)),Y=Q&&typeof Q==="object"&&!Array.isArray(Q)?q$(Q,U):void 0;if(Y)G=b.tuple(Z).rest(Y);else G=b.tuple(Z);if(typeof $.minItems==="number")G=G.check(b.minLength($.minItems));if(typeof $.maxItems==="number")G=G.check(b.maxLength($.maxItems))}else if(Array.isArray(Q)){let Z=Q.map((_)=>q$(_,U)),Y=$.additionalItems&&typeof $.additionalItems==="object"?q$($.additionalItems,U):void 0;if(Y)G=b.tuple(Z).rest(Y);else G=b.tuple(Z);if(typeof $.minItems==="number")G=G.check(b.minLength($.minItems));if(typeof $.maxItems==="number")G=G.check(b.maxLength($.maxItems))}else if(Q!==void 0){let Z=q$(Q,U),Y=b.array(Z);if(typeof $.minItems==="number")Y=Y.min($.minItems);if(typeof $.maxItems==="number")Y=Y.max($.maxItems);G=Y}else G=b.array(b.any());break}default:throw Error(`Unsupported type: ${J}`)}if($.description)G=G.describe($.description);if($.default!==void 0)G=G.default($.default);return G}function q$($,U){if(typeof $==="boolean")return $?b.any():b.never();let J=WF($,U),G=$.type||$.enum!==void 0||$.const!==void 0;if($.anyOf&&Array.isArray($.anyOf)){let Y=$.anyOf.map((H)=>q$(H,U)),_=b.union(Y);J=G?b.intersection(J,_):_}if($.oneOf&&Array.isArray($.oneOf)){let Y=$.oneOf.map((H)=>q$(H,U)),_=b.xor(Y);J=G?b.intersection(J,_):_}if($.allOf&&Array.isArray($.allOf))if($.allOf.length===0)J=G?J:b.any();else{let Y=G?J:q$($.allOf[0],U),_=G?0:1;for(let H=_;H<$.allOf.length;H++)Y=b.intersection(Y,q$($.allOf[H],U));J=Y}if($.nullable===!0&&U.version==="openapi-3.0")J=b.nullable(J);if($.readOnly===!0)J=b.readonly(J);let X={},Q=["$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor"];for(let Y of Q)if(Y in $)X[Y]=$[Y];let Z=["contentEncoding","contentMediaType","contentSchema"];for(let Y of Z)if(Y in $)X[Y]=$[Y];for(let Y of Object.keys($))if(!ev.has(Y))X[Y]=$[Y];if(Object.keys(X).length>0)U.registry.add(J,X);return J}function KF($,U){if(typeof $==="boolean")return $?b.any():b.never();let J=$g($,U?.defaultTarget),G=$.$defs||$.definitions||{},X={version:J,defs:G,refs:new Map,processing:new Set,rootSchema:$,registry:U?.registry??z$};return q$($,X)}var w_={};D4(w_,{string:()=>Jg,number:()=>Gg,date:()=>Zg,boolean:()=>Xg,bigint:()=>Qg});function Jg($){return HZ(TU,$)}function Gg($){return BZ(xU,$)}function Xg($){return CZ(SU,$)}function Qg($){return TZ(bU,$)}function Zg($){return kZ(b2,$)}U$(B2());var c_;function b$($,U="input"){let J=$["~standard"],G=J.vendor;if(G==="zod")return Hg($);if(G==="valibot")return Dg($);let X=J.jsonSchema;if(_g(X)){let Q=X[U];if(typeof Q==="function")return p_(d_(Q({target:jg}),`${G} structural converter`));throw Error(`definitionSchemaToJsonSchema: schema "${G}" provides \`~standard.jsonSchema\` but no \`${U}\` converter. Attach both \`input\` and \`output\` converters or convert in only one direction.`)}throw Error(`definitionSchemaToJsonSchema: no built-in adapter for vendor "${G}". Attach a \`~standard.jsonSchema\` converter to the schema, or use Zod or Valibot.`)}function _g($){return $!==null&&typeof $==="object"}var jg="draft-2020-12";function Hg($){let U=j.toJSONSchema($,{unrepresentable:"any"});return p_(d_(U,"zod"))}function Dg($){let J=Lg()($);return p_(d_(J,"valibot"))}function Lg($){let U=$===void 0,J=$??Yg(import.meta.url);if(U&&c_!==void 0)return c_;let G;try{G=J("@valibot/to-json-schema")}catch(Q){throw Error(`definitionSchemaToJsonSchema: \`@valibot/to-json-schema\` is not installed. Install it to convert Valibot schemas to JSON Schema, or attach a \`~standard.jsonSchema\` converter to your schema. Resolver error: ${String(Q)}.`,{cause:Q})}if(typeof G.toJsonSchema!=="function")throw Error("definitionSchemaToJsonSchema: the installed `@valibot/to-json-schema` does not export `toJsonSchema`.");return U?c_=G.toJsonSchema:G.toJsonSchema}function p_($){if(!("$schema"in $))return $;let U={...$};return delete U.$schema,U}function d_($,U){if($!==null&&typeof $==="object"&&!Array.isArray($))return $;throw Error(`definitionSchemaToJsonSchema: ${U} converter returned a non-object (${typeof $}). Expected a JSON Schema object.`)}var Vg=1;class vU extends v{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 qF($){let U=$.listWorkflowDefinitions(),J=$.listActivityDefinitions(),G=U.toSorted((Y,_)=>{if(Y.type<_.type)return-1;if(Y.type>_.type)return 1;return 0}),X=J.toSorted((Y,_)=>{if(Y.name<_.name)return-1;if(Y.name>_.name)return 1;return 0}),Q=Object.create(null);for(let Y of G)Q[Y.type]=Pg(Y);let Z=Object.create(null);for(let Y of X)Z[Y.name]=Fg(Y);return{registryVersion:Vg,workflows:Q,activities:Z}}function Pg($){let U={};if($.inputSchema!==void 0)U.inputSchema=nG("workflow",$.type,"inputSchema",$.inputSchema);if($.outputSchema!==void 0)U.outputSchema=nG("workflow",$.type,"outputSchema",$.outputSchema);if($.description!==void 0)U.description=$.description;if($.tags.length>0)U.tags=[...$.tags];return U}function Fg($){let U={queue:$.queue};if($.inputSchema!==void 0)U.inputSchema=nG("activity",$.name,"inputSchema",$.inputSchema);if($.outputSchema!==void 0)U.outputSchema=nG("activity",$.name,"outputSchema",$.outputSchema);if($.description!==void 0)U.description=$.description;return U}function nG($,U,J,G){try{return b$(G,J==="inputSchema"?"input":"output")}catch(X){throw new vU($,U,J,X)}}function z1($){return $}var OF=["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"],Mg=new Set(OF);function AF($){return Mg.has($)}function CF($){let U=new Set;NF($.scope,U),NF($.scp,U);let J=$.permissions;if(Array.isArray(J)){for(let G of J)if(typeof G==="string"&&AF(G))U.add(G)}return U}function NF($,U){if(typeof $!=="string")return;if($.trim().length===0)return;for(let J of $.split(/\s+/)){if(J.length===0)continue;if(AF(J))U.add(J)}}function RF($){let U=CF($),J=typeof $.sub==="string"?$.sub:void 0;return{method:"jwt",scopes:U,claims:$,subject:J,hasScope(G){return U.has(G)}}}function TF($){let U=new Set($.scopes);return{method:"api-key",scopes:U,claims:void 0,subject:$.subject,hasScope(J){return U.has(J)}}}function EF($){let U=new Set($.scopes);return{method:"mtls",scopes:U,claims:void 0,subject:$.subject,hasScope(J){return U.has(J)}}}function l_(){return zg}var zg={method:"unauthenticated"};function P6($){return $.method!=="unauthenticated"}class a$ extends v{constructor($){super("McpToolExecutionError",$)}}function M4($,U,J){if(!$.authRequired)return;if(!P6($.principal))throw new a$(`${J} requires authentication`);if(!$.principal.hasScope(U))throw new a$(`${J} requires ${U}`)}async function xF($,U){return $.get(U)}async function SF($,U){return $.list(U)}var Bg=["pending","running","completed","failed","cancelled","timed-out","suspended"];function gF($){if(!Ag($))return{ok:!1,message:"List filter must be a JSON object"};let U=Wg($.status),J=Kg($.type,"type"),G=qg($.tags,"tags"),X=bF($.limit,"limit"),Q=bF($.offset,"offset"),Z=Ng([U,J,G,X,Q]);if(Z!==void 0)return Z;return{ok:!0,filter:Og({status:m2(U),type:m2(J),tags:m2(G),limit:m2(X),offset:m2(Q)})}}function Wg($){if($===void 0)return{ok:!0};if(typeof $==="string")return vF($)?{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"||!vF(J))return{ok:!1,message:"List filter status array contains an invalid workflow status"};U.push(J)}return{ok:!0,value:U}}function Kg($,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 qg($,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 bF($,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 Ng($){for(let U of $)if(!U.ok)return U;return}function m2($){return $.ok?$.value:void 0}function Og($){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 vF($){return Bg.some((U)=>U===$)}function Ag($){return $!==null&&typeof $==="object"&&!Array.isArray($)}var IF=new WeakMap,n_=30000,i_=2147483647;function hF($){return Cg($).tools.map((U)=>U.definition)}function Cg($){let U=Rg($),J=IF.get($);if(J!==void 0&&Tg(J.signature,U))return J;let G=Eg($),X={signature:U,tools:G,toolsByName:new Map(G.map((Q)=>[Q.definition.name,Q]))};return IF.set($,X),X}function Rg($){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 Tg($,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 Eg($){let U=[...hg()],J=new Set(U.map((G)=>G.definition.name));for(let G of $.listWorkflowDefinitions().toSorted((X,Q)=>X.type<Q.type?-1:X.type>Q.type?1:0)){if(G.inputSchema===void 0)continue;let X=mg(yg(G.type),J);J.add(X),U.push({definition:{name:X,title:G.type,description:G.description??`Run Weft workflow ${G.type}.`,inputSchema:xg(G.type,G.inputSchema)},call:async(Q,Z)=>{M4(Z,"workflows:write","Calling workflow tools");let{input:Y,timeoutMs:_}=bg(Q),H=crypto.randomUUID();Z.session.trackRequest(Z.requestId,H);try{if(Z.session.isRequestCancelled(Z.requestId))throw new a$("Workflow cancelled");let D=await z1(Z.engine).start(G.type,Y,{id:H});if(Z.session.isRequestCancelled(Z.requestId))await Z.engine.cancel(D.id);let L=await gg(D,{timeoutMs:_,signal:Z.session.requestSignal(Z.requestId)});if(L.status==="timed-out")return Ig(D.id,_);return{workflowId:D.id,result:L.result}}finally{Z.session.untrackRequest(Z.requestId)}}})}return U.toSorted((G,X)=>G.definition.name<X.definition.name?-1:1)}function xg($,U){try{return Sg(b$(U,"input"))}catch(J){throw new vU("workflow",$,"inputSchema",J)}}function Sg($){return{type:"object",additionalProperties:!1,required:["input"],properties:{input:$,timeoutMs:{type:"integer",minimum:1,maximum:i_,default:n_,description:"Maximum milliseconds to wait for the workflow result before returning a running status."}}}}function bg($){if($===null||typeof $!=="object"||Array.isArray($))return{input:$,timeoutMs:n_};let U=$,J=vg(U.timeoutMs);return{input:U.input,timeoutMs:J}}function vg($){if($===void 0)return n_;if(typeof $==="number"&&Number.isSafeInteger($)&&$>=1&&$<=i_)return $;throw new a$(`Tool argument "timeoutMs" must be an integer from 1 to ${i_}`)}async function gg($,U){if(U.signal?.aborted)throw new a$("Workflow cancelled");let J,G,X=$.result().then((Y)=>({status:"completed",result:Y})),Q=new Promise((Y)=>{J=setTimeout(()=>Y({status:"timed-out"}),U.timeoutMs)}),Z=U.signal===void 0?void 0:new Promise((Y,_)=>{let H=()=>_(new a$("Workflow cancelled"));U.signal?.addEventListener("abort",H,{once:!0}),G=()=>U.signal?.removeEventListener("abort",H)});try{return await Promise.race(Z===void 0?[X,Q]:[X,Q,Z])}finally{if(J!==void 0)clearTimeout(J);G?.()}}function Ig($,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 hg(){return[{definition:{name:"start_workflow",description:"Start a Weft workflow and return its workflow id.",inputSchema:W1({type:{type:"string"},input:{},id:{type:"string"}},["type"])},call:async($,U)=>{M4(U,"workflows:write","Starting workflows");let J=B1($),G=z4(J.type,"type"),X=J.input??{},Q=typeof J.id==="string"?{id:J.id}:void 0;return{workflowId:(await z1(U.engine).start(G,X,Q)).id}}},{definition:{name:"signal_workflow",description:"Send a signal to a Weft workflow.",inputSchema:W1({workflowId:{type:"string"},signalName:{type:"string"},payload:{}},["workflowId","signalName"])},call:async($,U)=>{M4(U,"signals:write","Signalling workflows");let J=B1($),G=z4(J.workflowId,"workflowId");return await k2(U,G),await U.engine.signal(G,z4(J.signalName,"signalName"),J.payload),{ok:!0}}},{definition:{name:"update_workflow",description:"Run an update handler on a Weft workflow.",inputSchema:W1({workflowId:{type:"string"},updateName:{type:"string"},payload:{}},["workflowId","updateName"])},call:async($,U)=>{M4(U,"updates:write","Updating workflows");let J=B1($),G=z4(J.workflowId,"workflowId");return await k2(U,G),{result:await U.engine.update(G,z4(J.updateName,"updateName"),J.payload)}}},{definition:{name:"query_workflow",description:"Run a query handler on a Weft workflow.",inputSchema:W1({workflowId:{type:"string"},queryName:{type:"string"},input:{}},["workflowId","queryName"])},call:async($,U)=>{M4(U,"queries:read","Querying workflows");let J=B1($),G=z4(J.workflowId,"workflowId");return await k2(U,G),{result:await U.engine.query(G,z4(J.queryName,"queryName"),J.input)}}},{definition:{name:"cancel_workflow",description:"Cancel a Weft workflow.",inputSchema:W1({workflowId:{type:"string"}},["workflowId"])},call:async($,U)=>{M4(U,"workflows:write","Cancelling workflows");let J=z4(B1($).workflowId,"workflowId");return await k2(U,J),await U.engine.cancel(J),{ok:!0}}},{definition:{name:"list_workflows",description:"List visible Weft workflows.",inputSchema:W1({status:{},type:{type:"string"},tags:{type:"array",items:{type:"string"}},limit:{type:"number"},offset:{type:"number"}})},call:async($,U)=>{M4(U,"workflows:read","Listing workflows");let J=gF(B1($));if(!J.ok)throw new a$(J.message);return await SF(U.engine,J.filter)}},{definition:{name:"get_workflow_state",description:"Read visible Weft workflow state.",inputSchema:W1({workflowId:{type:"string"}},["workflowId"])},call:async($,U)=>{M4(U,"workflows:read","Reading workflow state");let J=z4(B1($).workflowId,"workflowId");return await k2(U,J)}}]}async function k2($,U){let J=await xF($.engine,U);if(J===null)throw new a$(`Workflow "${U}" not found`);return J}function B1($){if($!==null&&typeof $==="object"&&!Array.isArray($))return $;throw new a$("Tool arguments must be a JSON object")}function z4($,U){if(typeof $==="string"&&$.length>0)return $;throw new a$(`Tool argument "${U}" must be a non-empty string`)}function W1($,U=[]){return{type:"object",properties:$,required:[...U],additionalProperties:!1}}function yg($){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 mg($,U){if(!U.has($))return $;let J=2;while(U.has(`${$}_${String(J)}`))J+=1;return`${$}_${String(J)}`}var rG={workflowDuration:{name:"weft.workflow.duration",description:"Duration of workflow execution in milliseconds",unit:"ms",type:"histogram"},activityDuration:{name:"weft.activity.duration",description:"Duration of activity execution in milliseconds",unit:"ms",type:"histogram"},activityAttempts:{name:"weft.activity.attempts",description:"Total activity execution attempts",unit:"attempts",type:"counter"},workflowActive:{name:"weft.workflow.active",description:"Number of currently active workflows",unit:"workflows",type:"gauge"},workflowStarted:{name:"weft.workflow.started",description:"Total workflows started",unit:"workflows",type:"counter"},workflowCompleted:{name:"weft.workflow.completed",description:"Total workflows completed",unit:"workflows",type:"counter"},workflowFailed:{name:"weft.workflow.failed",description:"Total workflows failed",unit:"workflows",type:"counter"},promptCacheHits:{name:"weft.prompt_cache.hits",description:"Total prompt prefix cache hits",unit:"hits",type:"counter"},promptCacheMisses:{name:"weft.prompt_cache.misses",description:"Total prompt prefix cache misses",unit:"misses",type:"counter"},dpmoDefects:{name:"weft.dpmo.defects",description:"Total failed workflows (DPMO numerator)",unit:"workflows",type:"counter"},dpmoOperations:{name:"weft.dpmo.operations",description:"Total started workflows (DPMO denominator)",unit:"workflows",type:"counter"},taskBacklog:{name:"weft.task.backlog",description:"Number of queued tasks waiting for workers",unit:"tasks",type:"gauge"},taskQueueLatency:{name:"weft.task.queue_latency",description:"Time tasks spend queued before dispatch in milliseconds",unit:"ms",type:"histogram"},taskExecutionLatency:{name:"weft.task.execution_latency",description:"Time tasks spend executing after worker start in milliseconds",unit:"ms",type:"histogram"},taskRetries:{name:"weft.task.retries",description:"Total task retry attempts after the first dispatch attempt",unit:"retries",type:"counter"},taskRequeues:{name:"weft.task.requeues",description:"Total visibility-timeout or disconnect task requeues",unit:"requeues",type:"counter"},taskStaleHeartbeats:{name:"weft.task.stale_heartbeats",description:"Number of in-flight tasks whose heartbeat age exceeds the diagnostic threshold",unit:"tasks",type:"gauge"},workerCapacitySaturation:{name:"weft.worker.capacity_saturation",description:"Ratio of in-flight worker slots to total worker concurrency",unit:"ratio",type:"gauge"}};var kg=1e4;class yF{#$;#U=0;#J=0;constructor($){this.#$=new Float64Array($)}push($){if(this.#$[this.#U]=$,this.#U=(this.#U+1)%this.#$.length,this.#J<this.#$.length)this.#J++}toArray(){if(this.#J<this.#$.length)return Array.from(this.#$.subarray(0,this.#J));let $=Array.from({length:this.#J});for(let U=0;U<this.#J;U++)$[U]=this.#$[(this.#U+U)%this.#$.length];return $}}class fg{#$;#U;#J;constructor(){this.#$=new Map,this.#U=new Map,this.#J=new Map}increment($,U=1){this.#$.set($,(this.#$.get($)??0)+U)}record($,U){let J=this.#U.get($);if(!J)J=new yF(kg),this.#U.set($,J);J.push(U)}gauge($,U){this.#J.set($,U)}snapshot(){let $={};for(let[U,J]of this.#$)$[U]={type:"counter",value:J};for(let[U,J]of this.#U){let G=J.toArray(),X=ug(G);$[U]={type:"histogram",count:G.length,sum:wg(G),p50:X[Math.floor(X.length*0.5)]??0,p99:X[Math.floor(X.length*0.99)]??0,min:X[0]??0,max:X[X.length-1]??0}}for(let[U,J]of this.#J)$[U]={type:"gauge",value:J};return $}reset(){this.#$.clear(),this.#U.clear(),this.#J.clear()}}function ug($){let U=[...$];return U.sort((J,G)=>J-G),U}function wg($){let U=0;for(let J of $)U+=J;return U}function cg($,U){let J=U?.type==="histogram"?U.count:0,G=U?.type==="histogram"?U.sum:0;return[`# TYPE ${$} histogram`,`${$}_count ${J}`,`${$}_sum ${G}`]}function pg($,U){let J=U?.type==="counter"?U.value:0;return[`# TYPE ${$} counter`,`${$}_total ${J}`]}function dg($,U){let J=U?.type==="gauge"?U.value:0;return[`# TYPE ${$} gauge`,`${$} ${J}`]}var lg={histogram:cg,counter:pg,gauge:dg};function ig($,U){let J=$.name.replace(/\./g,"_"),G=U[$.name];return[`# HELP ${J} ${$.description}`,...lg[$.type](J,G)]}function ng($){let U=$[rG.dpmoDefects.name],J=$[rG.dpmoOperations.name],G=U?.type==="counter"?U.value:0,X=J?.type==="counter"?J.value:0,Q=X===0?0:G*1e6/X,Z="weft_dpmo";return["# HELP weft_dpmo Defects per million operations (failed workflows / started workflows * 1e6)","# TYPE weft_dpmo gauge",`weft_dpmo ${Q}`]}function rg($){let U=[];for(let J of Object.values(rG))U.push(...ig(J,$));return U.push(...ng($)),U.join(`
|
|
41
41
|
`)+`
|
|
42
|
-
`}function mF($){return{serialize(){let U=$?.snapshot()??{};return rg(U)}}}function kF($){let{origin:U}=$,J=[{href:`${U}/.well-known/mcp.json`,type:"application/json"},{href:`${U}/asyncapi.json`,type:"application/asyncapi+json"},{href:`${U}/openapi.json`,type:"application/openapi+json"},{href:`${U}/openrpc.json`,type:"application/json"}].toSorted((G,X)=>G.href<X.href?-1:G.href>X.href?1:0);return{linkset:[{anchor:U,"service-desc":J}]}}var og=new Set(["http","https"]),sg=/^(?:[A-Za-z0-9._-]+(?::\d+)?|\[[0-9A-Fa-f:.]+\](?::\d+)?)$/,ag="[weft] discovery routes (`/.well-known/api-catalog`, `/.well-known/mcp.json`): `publicOrigin` is not configured. Absolute discovery URLs will be derived from the incoming request, which is safe for direct connections but vulnerable to Host-header poisoning when running behind a reverse proxy. Set `serve({ publicOrigin: 'https://api.example.com' })` in production.";function tg(){let $=!1;return{warn(){if($)return;$=!0,console.warn(ag)},reset(){$=!1}}}var eg=tg();function fF(){eg.warn()}function uF($){try{let Q=new URL($.url);if(Q.protocol==="https:"||Q.protocol==="http:")return`${Q.protocol}//${Q.host}`}catch{}let U=$.headers.get("host"),J=$.headers.get("x-forwarded-proto"),G=J!==null&&og.has(J.toLowerCase())?J.toLowerCase():"https",X=U!==null&&sg.test(U)?U:"localhost";return`${G}://${X}`}var u4="0.5.0";function gU($){return JSON.stringify(r_($))}function r_($){if($===null||typeof $!=="object")return $;if(Array.isArray($))return $.map(r_);let U={};for(let[J,G]of Object.entries($).toSorted(([X],[Q])=>X<Q?-1:X>Q?1:0))U[J]=r_(G);return U}function L$($,U){return $<U?-1:$>U?1:0}function K1($){if(u2($))return $;return{}}function f2($){let U=JSON.parse(gU($));return K1(U)}function u2($){return $!==null&&typeof $==="object"&&!Array.isArray($)}function q1($){if(!$.startsWith("/"))throw Error(`externalApiPath requires a leading slash, received: ${$}`);if($==="/api"||$.startsWith("/api/"))throw Error(`externalApiPath received an already-prefixed path: ${$}`);return`/api${$}`}var oG=[{method:"GET",path:"/v1/health",handler:"healthCheck",paramNames:[],summary:"Health check",tags:["System"],responses:[{status:200,description:"Service health status",content:[{mediaType:"application/json",schema:"object"},{mediaType:"application/msgpack",schema:"object"}]}],access:"public"},{method:"GET",path:"/v1/metrics",handler:"getMetrics",paramNames:[],summary:"Prometheus metrics export",tags:["Observability"],responses:[{status:200,description:"Prometheus metrics exposition",content:[{mediaType:"text/plain",schema:"string"}]},{status:503,description:"Metrics exporter failure",content:[{mediaType:"application/json",schema:"object"}]}],access:"public"},{method:"GET",path:"/.well-known/api-catalog",handler:"apiCatalog",paramNames:[],summary:"RFC 9264 API catalog linkset",tags:["System"],responses:[{status:200,description:"RFC 9264 API catalog linkset",content:[{mediaType:"application/linkset+json",schema:"object"}]},{status:421,description:"Request host rejected by trustedHosts",content:[{mediaType:"application/json",schema:"object"}]},{status:503,description:"API catalog origin is not configured",content:[{mediaType:"application/json",schema:"object"}]}],access:"public"},{method:"GET",path:"/.well-known/mcp.json",handler:"mcpDiscovery",paramNames:[],summary:"MCP discovery document",tags:["System"],responses:[{status:200,description:"MCP transport discovery document",content:[{mediaType:"application/json",schema:"object"}]},{status:421,description:"Request host rejected by trustedHosts",content:[{mediaType:"application/json",schema:"object"}]},{status:503,description:"MCP discovery origin is not configured",content:[{mediaType:"application/json",schema:"object"}]}],access:"public"},{method:"GET",path:"/openapi.json",handler:"openApiDocument",paramNames:[],summary:"OpenAPI 3.1 specification",tags:["System"],responses:[{status:200,description:"OpenAPI 3.1 specification",content:[{mediaType:"application/json",schema:"object"}]}],access:"public"},{method:"GET",path:"/openrpc.json",handler:"openRpcDocument",paramNames:[],summary:"OpenRPC 1.3.2 specification",tags:["System"],responses:[{status:200,description:"OpenRPC 1.3.2 specification",content:[{mediaType:"application/json",schema:"object"}]}],access:"public"},{method:"GET",path:"/asyncapi.json",handler:"asyncApiDocument",paramNames:[],summary:"AsyncAPI 3.0 specification",tags:["System"],responses:[{status:200,description:"AsyncAPI 3.0 specification",content:[{mediaType:"application/json",schema:"object"}]}],access:"public"}];function w2($){return $.replace(/:([^/]+)/g,"{$1}")}function $I($){return $.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function wF($){let U=$.split("/").map((J)=>{if(J===":step")return"(\\d+)";if(J.startsWith(":"))return"([^/]+)";return $I(J)}).join("/");return new RegExp(`^${U}$`)}var c2="2.0",UI="weft.events.deliver",JI="weft.events.terminated",GI="weft.workflows.events",XI="weft.workflows.subscribe",QI="weft.workflows.unsubscribe",o_={oneOf:[{type:"string"},{type:"number"},{type:"null"}]},ZI={enum:["client-unsubscribed","server-closed","validation-failed"],type:"string"};function pF($){let U=s_($);return{address:q1("/jsonrpc"),bindings:{ws:{method:"GET"}},description:`JSON-RPC WebSocket subscription channel for ${$.name}.`,messages:oF(U),title:$.summary,"x-weft-operation-name":$.name,"x-weft-transport":"json-rpc-websocket"}}function dF($,U){let J=a_($);return{address:U!==void 0?q1(U):`/x-weft-unbound/${$.name.replaceAll(".","/")}`,description:`Server-Sent Events stream channel for ${$.name}. Responses use text/event-stream; charset=utf-8.`,messages:oF(J),title:$.summary,"x-weft-operation-name":$.name,"x-weft-transport":"server-sent-events"}}function lF($,U){let J=s_($),G=U($.inputSchema),X=U($.outputSchema,"output"),Q=sF($,U);return{[J.subscribeRequest]:{name:J.subscribeRequest,contentType:"application/json",payload:cF(YI($),G),summary:`Subscribe to ${$.name}.`},[J.subscribeAck]:{name:J.subscribeAck,contentType:"application/json",payload:_I(X),summary:`Subscription acknowledgement for ${$.name}.`},[J.eventDeliver]:{name:J.eventDeliver,contentType:"application/json",payload:jI(Q),summary:`Event delivery notification for ${$.name}.`},[J.unsubscribeRequest]:{name:J.unsubscribeRequest,contentType:"application/json",payload:cF(QI,{additionalProperties:!1,properties:{subscriptionId:{type:"string"}},required:["subscriptionId"],type:"object"}),summary:`Unsubscribe from ${$.name}.`},[J.terminated]:{name:J.terminated,contentType:"application/json",payload:HI(),summary:`Subscription termination notification for ${$.name}.`},[J.errorFrame]:{name:J.errorFrame,contentType:"application/json",payload:DI(),summary:`JSON-RPC error response for ${$.name}.`}}}function iF($,U){let J=a_($),G=sF($,U);return{[J.tokenEvent]:{name:J.tokenEvent,contentType:"text/event-stream",payload:{type:"string"},summary:`SSE token event for ${$.name}. The data: line carries the token text.`,bindings:{http:{event:"token"}},"x-weft-sse-frame":"event: token\\nid: <sequence>\\ndata: <token-text>\\n\\n","x-weft-event-schema":G},[J.doneEvent]:{name:J.doneEvent,contentType:"text/event-stream",payload:{additionalProperties:!1,properties:{},type:"object"},summary:`SSE completion event for ${$.name}.`,bindings:{http:{event:"done"}},"x-weft-sse-frame":"event: done\\n\\n"},[J.errorEvent]:{name:J.errorEvent,contentType:"text/event-stream",payload:{properties:{code:{type:"string"},data:{},message:{type:"string"}},required:["message"],type:"object"},summary:`SSE error event for ${$.name}.`,bindings:{http:{event:"error"}},"x-weft-sse-frame":"event: error\\ndata: <JSON Error>\\n\\n"}}}function nF($,U,J){let G=J==="subscription"?Object.values(s_($)):Object.values(a_($));return{action:"receive",channel:{$ref:`#/channels/${LI(U)}`},messages:G.map((X)=>({$ref:`#/components/messages/${X}`})),operationId:$.name.replaceAll(".","_"),summary:$.summary,tags:[...$.tags].toSorted().map((X)=>({name:X}))}}function rF($){return $.name.replaceAll(".","_")}function YI($){return $.name===GI?XI:$.name}function s_($){let U=rF($);return{subscribeRequest:`${U}_subscribeRequest`,subscribeAck:`${U}_subscribeAck`,eventDeliver:`${U}_eventDeliver`,unsubscribeRequest:`${U}_unsubscribeRequest`,terminated:`${U}_terminated`,errorFrame:`${U}_errorFrame`}}function a_($){let U=rF($);return{tokenEvent:`${U}_tokenEvent`,doneEvent:`${U}_doneEvent`,errorEvent:`${U}_errorEvent`}}function oF($){let U={};for(let[J,G]of Object.entries($).toSorted(([X],[Q])=>L$(X,Q)))U[J]={$ref:`#/components/messages/${G}`};return U}function cF($,U){return{additionalProperties:!1,properties:{id:o_,jsonrpc:{const:c2,type:"string"},method:{const:$,type:"string"},params:U},required:["jsonrpc","id","method","params"],type:"object"}}function _I($){return{additionalProperties:!1,properties:{id:o_,jsonrpc:{const:c2,type:"string"},result:$},required:["jsonrpc","id","result"],type:"object"}}function jI($){return{additionalProperties:!1,properties:{jsonrpc:{const:c2,type:"string"},method:{const:UI,type:"string"},params:{additionalProperties:!1,properties:{envelope:$,subscriptionId:{type:"string"}},required:["subscriptionId","envelope"],type:"object"}},required:["jsonrpc","method","params"],type:"object"}}function HI(){return{additionalProperties:!1,properties:{jsonrpc:{const:c2,type:"string"},method:{const:JI,type:"string"},params:{additionalProperties:!1,properties:{fault:{type:"object"},reason:ZI,subscriptionId:{type:"string"}},required:["subscriptionId","reason"],type:"object"}},required:["jsonrpc","method","params"],type:"object"}}function DI(){return{additionalProperties:!1,properties:{error:{$ref:"#/components/schemas/JsonRpcError"},id:o_,jsonrpc:{const:c2,type:"string"}},required:["jsonrpc","id","error"],type:"object"}}function sF($,U){if($.eventSchema===void 0)return{type:"object"};return U($.eventSchema,"output")}function LI($){return $.replaceAll("~","~0").replaceAll("/","~1")}function w4($){if($.access.kind==="public")return!0;return $.discoverable===!0}function IU($,U){if(U===void 0)return $;let J={...$};if(U.description!==void 0)J.description=U.description;if(U.contact!==void 0)J.contact={...U.contact};if(U.license!==void 0)J.license={...U.license};return J}var VI=/^[A-Za-z_][A-Za-z0-9_-]*$/,t_="must match /^[A-Za-z_][A-Za-z0-9_-]*$/ — start with a letter or underscore, "+"use only letters, digits, underscores, or hyphens, and contain no '.' characters. The remote worker protocol encodes activity names as `${workflowType}.${activityName}` on the wire, so a '.' inside either name would break the qualifier split. If you previously used dotted names like 'payments.charge', rename to 'payments-charge' or 'paymentsCharge' before adopting the workflow-builder API.";function hU($,U){if(typeof $!=="string"||$.length===0)throw Error(`${U} name must be a non-empty string — ${t_}`);if($.includes("."))throw Error(`${U} name "${$}" contains '.', which is reserved for qualified activity names. ${t_}`);if(!VI.test($))throw Error(`${U} name "${$}" is invalid — ${t_}`)}function aF($){let U=typeof $==="function"?{name:$.name,execute:$}:$;if(!U.name)throw Error("activity() requires a named function or an options object with name.");hU(U.name,"activity");let J=(Z,Y)=>U.execute(Z,Y),{name:G,execute:X,...Q}=U;return Object.assign(J,Q),Object.defineProperty(J,"name",{value:G,configurable:!0}),Object.defineProperty(J,"execute",{value:X,enumerable:!0,configurable:!0}),J}var N1=200,p2=256;var sG="weft-worker-operation-signature-v1",yU=2;class aG extends v{found;expected;constructor($,U){super("CheckpointSchemaVersionError",$==="pre-versioned"?`Checkpoint has no schemaVersion field (pre-versioned format); engine expects schemaVersion ${U}. Pre-1.0: in-flight workflows must be drained before upgrade.`:$>U?`Checkpoint schemaVersion ${$} is newer than engine version ${U}. The engine is too old to read this checkpoint.`:`Checkpoint schemaVersion ${$} is older than engine version ${U}. Pre-1.0: in-flight workflows must be drained before upgrade.`);this.found=$;this.expected=U}}var tF=300000,eF=1000;function PI($){let U=MI($);if(U===void 0)return!1;if(typeof U.validate==="function")return!0;return zI(U.jsonSchema)}function c4($,U){if(PI($))return $;throw TypeError(`${U} must be Standard Schema-compatible definition metadata. Pass a Zod, Valibot, ArkType (or any Standard Schema v1) validator, or attach a \`~standard.jsonSchema\` converter directly. Received: ${FI($)}.`)}function FI($){if($===null)return"null";if($===void 0)return"undefined";if(Array.isArray($))return"array";if(typeof $!=="object")return typeof $;let U=Object.keys($);if(U.length===0)return"an empty object";return`an object with keys [${U.slice(0,5).join(", ")}${U.length>5?", …":""}]`}function MI($){if($===null||typeof $!=="object")return;let U=$["~standard"];if(U===null||typeof U!=="object")return;let J=U;if(J.version!==1)return;if(typeof J.vendor!=="string"||J.vendor.length===0)return;return J}function zI($){if($===null||typeof $!=="object")return!1;return typeof $.input==="function"&&typeof $.output==="function"}var tG="history-circuit-breaker";function i$($){return typeof $==="string"?$:$.name}var $M={maxAttempts:3,initialBackoff:1000,backoffMultiplier:2,maxBackoff:30000};function N$($){return typeof $==="string"?$:$.name}function UM($){return e_($,new WeakMap)}function e_($,U){if($===null||typeof $!=="object")return $;let J=$,G=U.get(J);if(G!==void 0)return G;if(Array.isArray($)){let Z=[];U.set(J,Z);for(let Y of $)Z.push(e_(Y,U));return Z}let X=Object.getPrototypeOf($);if(X!==Object.prototype&&X!==null)return $;let Q={};U.set(J,Q);for(let Z of Object.keys($))Q[Z]=e_($[Z],U);return Q}function BI($,U){let J=U;return{...WI(J),...KI($,J),...qI(J)}}function WI($){return{...typeof $.description==="string"?{description:$.description}:{},...Array.isArray($.tags)&&$.tags.every((U)=>typeof U==="string")?{tags:[...$.tags]}:{}}}function KI($,U){return{..."inputSchema"in U?{inputSchema:c4(U.inputSchema,`activity definition "${$}".inputSchema`)}:{},..."outputSchema"in U?{outputSchema:c4(U.outputSchema,`activity definition "${$}".outputSchema`)}:{}}}function qI($){return{...typeof $.queue==="string"?{queue:$.queue}:{},...NI($.retry)?{retry:$.retry}:{},...typeof $.timeout==="string"||typeof $.timeout==="number"?{timeout:$.timeout}:{},...typeof $.idempotent==="boolean"?{idempotent:$.idempotent}:{}}}function NI($){return typeof $==="object"&&$!==null}function JM($){return{name:$.name,queue:$.queue,...$.description===void 0?{}:{description:$.description},...$.tags===void 0?{}:{tags:[...$.tags]},...$.inputSchema===void 0?{}:{inputSchema:$.inputSchema},...$.outputSchema===void 0?{}:{outputSchema:$.outputSchema},...$.retry===void 0?{}:{retry:GM($.retry)},...$.timeout===void 0?{}:{timeout:$.timeout},...$.idempotent===void 0?{}:{idempotent:$.idempotent}}}function GM($){return{...$,...$.nonRetryableErrors===void 0?{}:{nonRetryableErrors:[...$.nonRetryableErrors]}}}function OI($,U,J){let G=J?.inputSchema===void 0?U.inputSchema:c4(J.inputSchema,`activity registration "${$}".inputSchema`),X=J?.outputSchema===void 0?U.outputSchema:c4(J.outputSchema,`activity registration "${$}".outputSchema`);return{...G===void 0?{}:{inputSchema:G},...X===void 0?{}:{outputSchema:X}}}function mU($,U){return $??U}function AI($,U){if(U.description!==void 0)$.description=U.description;if(U.tags!==void 0)$.tags=[...U.tags];if(U.inputSchema!==void 0)$.inputSchema=U.inputSchema;if(U.outputSchema!==void 0)$.outputSchema=U.outputSchema;if(U.retry!==void 0)$.retry=GM(U.retry);if(U.timeout!==void 0)$.timeout=U.timeout;if(U.idempotent!==void 0)$.idempotent=U.idempotent}function d2($,U,J){if(J!==void 0)$[U]=J}function CI($,U,J){let G={...OI($,U,J)};return d2(G,"description",mU(J?.description,U.description)),d2(G,"tags",mU(J?.tags,U.tags)),d2(G,"retry",mU(J?.retry,U.retry)),d2(G,"timeout",mU(J?.timeout,U.timeout)),d2(G,"idempotent",mU(J?.idempotent,U.idempotent)),G}function RI($,U,J){let G={name:$,queue:mU(J?.queue,U.queue)??"default"};return AI(G,CI($,U,J)),G}class l2{#$;#U;#J;constructor(){this.#$=new WeakMap,this.#U=new Map,this.#J=new Map}#G($,U){let J;for(let[G,X]of this.#J)if(G!==U&&X===$)J=this.#U.get(G);if(J===void 0)this.#$.delete($);else this.#$.set($,J)}register($,U,J){hU($,"activity");let G=this.#J.get($);if(G&&G!==U)this.#G(G,$);let X=BI($,U),Q=RI($,X,J);this.#$.set(U,Q),this.#U.set($,Q),this.#J.set($,U)}has($){return this.#J.has($)}resolve($){let U=this.#J.get($);if(!U)return;return U}getMetadata($){let U=this.#$.get($);return U===void 0?void 0:JM(U)}getMetadataByName($){return this.getDefinition($)}getDefinition($){let U=this.#U.get($);return U===void 0?void 0:JM(U)}listDefinitions(){return[...this.#J.keys()].flatMap(($)=>{let U=this.getDefinition($);return U===void 0?[]:[U]})}unregister($){let U=this.#J.get($);if(this.#J.delete($),this.#U.delete($),U)this.#G(U)}*names(){yield*this.#J.keys()}}class O1 extends v{foundVersion;expectedVersion;constructor($,U){super("PersistedDataIncompatibleError",`Persisted workflow data was written by an older Weft version (schema ${$===null?"pre-versioned":`v${$}`}, current v${U}) and is incompatible with the workflow-builder refactor. Delete the database or start fresh.`);this.foundVersion=$,this.expectedVersion=U}}var A1=1,$j="weft:schema-version";class O$ extends v{workflowId;constructor($){super("WorkflowAlreadyExistsError",`Workflow with id "${$}" already exists`);this.workflowId=$}}class eG extends v{workflowId;constructor($){super("WorkflowTeardownPendingError",`Cannot restart workflow "${$}" under the same id: its prior run is tearing down a resource (finalizer in progress). Retry after the teardown completes.`);this.workflowId=$}}class p4 extends v{constructor(){super("BulkDeleteRequiresTerminalWorkflowsError","Bulk delete matches non-terminal workflows")}}class w$ extends v{constructor(){super("BulkOperationConfirmationError","Bulk confirmation token does not match the current dry-run scope")}}var XM=20,TI=10;function EI($){let U=$.slice(0,TI),J=$.length-U.length;return J>0?`${U.join(", ")} (+${J} more)`:U.join(", ")}class kU extends v{registeredTypes;missingTypes;missingWorkflowSamples;missingWorkflowCount;samplesTruncated;constructor($){let U=$.missingWorkflows.length,J=[...new Set($.missingWorkflows.map((Q)=>Q.type))].toSorted(),G=[...$.registeredTypes].toSorted(),X=EI(J);super("WorkflowTypeNotRegisteredForRecoveryError",`Cannot recover ${U} running workflow(s): workflow type(s) not registered: ${X}. Register the missing workflow types before calling \`recoverAll()\`, or pass `+"`{ acknowledgeUnknownWorkflowTypes: true }` (dangerous — see migration docs).");this.registeredTypes=G,this.missingTypes=J,this.missingWorkflowSamples=$.missingWorkflows.slice(0,XM).map((Q)=>({...Q})),this.missingWorkflowCount=U,this.samplesTruncated=U>XM}}class fU extends v{definitionKind;expectedName;actualName;constructor($,U,J){super("EngineCreateNameMismatchError",`Engine.create() ${$} definition key "${U}" does not match definition name "${J}"`);this.definitionKind=$,this.expectedName=U,this.actualName=J}}class c6 extends v{constructor(){super("EngineDisposedError","Engine was disposed before the workflow completed")}}class B4 extends v{workflowId;constructor($){super("WorkflowNotFoundError",`Workflow "${$}" not found`);this.workflowId=$}}class t$ extends v{workflowType;constructor($){super("WorkflowNotRegisteredError",`No workflow registered with name "${$}"`);this.workflowType=$}}class $9 extends v{workflowType;limit;partitionKey;constructor($){super("WorkflowConcurrencyLimitExceededError",`Workflow "${$.workflowType}" concurrency limit ${$.limit} reached for partition key "${$.partitionKey}"`);this.workflowType=$.workflowType,this.limit=$.limit,this.partitionKey=$.partitionKey}}class uU extends v{constructor($){super("WorkflowSuspendNotSupportedError",$)}}class U9 extends v{workflowType;activityName;constructor($,U){super("ActivityResolutionError",`No activity registered with name "${U}" for workflow type "${$}". Register the activity via \`workflow({ name }).activities({ ... })\` on the workflow that runs it, or via \`engine.register(activityDefinition)\` to make it available to every workflow on that engine instance.`);this.workflowType=$,this.activityName=U}}class wU extends v{workflowId;status;constructor($,U){super("StartOrSignalConflictError",`Workflow "${$}" is already in terminal state "${U}" and cannot accept a startOrSignal: a terminal run cannot be signalled and is not replaced. Use a different id or idempotency key to start a new run.`);this.workflowId=$,this.status=U}}class F6 extends v{workflowId;constructor($){super("IdempotencyKeyPurgedError",`The idempotency key maps to workflow "${$}", which no longer exists (it was purged or deleted). Use a different idempotency key to start a new run.`);this.workflowId=$}}var QM=["http-rest","jsonRpcHttp","jsonRpcWebSocket","jsonRpcStdio"],C1=new Set(["__proto__","prototype","constructor"]);function ZM($){return $==="http-rest"?"http":"jsonRpc"}function Uj($){switch($){case"http-rest":return"http";case"jsonRpcHttp":return"jsonRpcHttp";case"jsonRpcWebSocket":return"jsonRpcWebSocket";case"jsonRpcStdio":return"jsonRpcStdio"}}function YM($){if(!($ instanceof j.ZodObject))throw Error("extractTopLevelObjectKeys called with a non-object schema — the operation registry should have rejected this at construction");return new Set(Object.keys($.shape).filter((U)=>!C1.has(U)))}function _M($,U){let J=Object.create(null);for(let G of Object.keys($)){if(C1.has(G))continue;if(U.has(G))J[G]=$[G]}return J}function jM($){return $.map((U)=>({path:U.path.map((J)=>typeof J==="string"||typeof J==="number"?J:String(J)),message:U.message,code:U.code}))}var xI=new Set(["Unauthorized","Forbidden","InvalidParams","EngineFailure"]);function HM($,U){if(II($)){try{bI(U,$.code)}catch(J){if(SI(J))return{code:"EngineFailure",message:J.message,data:{}};throw J}return $}if($ instanceof O$)return{code:"Conflict",message:"conflict",data:{reason:"resource already exists"}};if($ instanceof t$)return{code:"InvalidParams",message:$.message,data:{issues:[]}};if($ instanceof B4)return{code:"NotFound",message:"not found",data:{resource:"workflow"}};if($ instanceof Error)return vI($);return{code:"EngineFailure",message:"internal error",data:{}}}class Jj extends v{operationName;faultCode;constructor($,U){super("UndeclaredFaultError",`[weft] Operation "${$}" raised undeclared fault "${U}". Add it to the operation's \`producibleFaults\` array or migrate the throw to \`raiseFault(operation, fault)\`.`);this.operationName=$,this.faultCode=U}}function SI($){return $ instanceof Jj}function bI($,U){if($===void 0)return;if(xI.has(U))return;let J=$.producibleFaults;if(J!==void 0&&J.includes(U))return;if(Bun.env.WEFT_STRICT_FAULTS==="1"||Bun.env.NODE_ENV!=="production")throw new Jj($.name,U);console.warn(`[weft] Operation "${$.name}" raised undeclared fault "${U}". Add it to the operation's \`producibleFaults\` array or migrate the throw to \`raiseFault(operation, fault)\`.`)}function vI($){let U;try{U=$.message}catch{return{code:"EngineFailure",message:"internal error",data:{}}}if(typeof U!=="string")return{code:"EngineFailure",message:"internal error",data:{}};let J=U.toLowerCase();if(J.includes("not found"))return{code:"NotFound",message:"not found",data:{resource:"unknown"}};if(J.includes("already exists"))return{code:"Conflict",message:"conflict",data:{reason:"resource already exists"}};if(J.includes("timeout")||J.includes("timed out"))return{code:"Timeout",message:"operation timed out",data:{}};return{code:"EngineFailure",message:"internal error",data:{}}}var gI={Unauthorized:!0,Forbidden:!0,NotFound:!0,Conflict:!0,Unprocessable:!0,Timeout:!0,PayloadTooLarge:!0,NotImplemented:!0,UnsupportedTransport:!0,SubscriptionOverflow:!0,InvalidParams:!0,MethodNotFound:!0,EngineFailure:!0};function II($){if(typeof $!=="object"||$===null)return!1;let U,J,G;try{U=$.code,J=$.message,G=$.data}catch{return!1}return typeof U==="string"&&typeof J==="string"&&typeof G==="object"&&G!==null&&!Array.isArray(G)&&Object.hasOwn(gI,U)}function DM($,U){switch($.kind){case"public":return{allowed:!0};case"authenticated":if(P6(U))return{allowed:!0};return{allowed:!1,classification:"unauthorized",reason:"authentication required"};case"scoped":if(!P6(U))return{allowed:!1,classification:"unauthorized",reason:"authentication required"};return Gj($.scopes,U.scopes);case"scopedAlternatives":if(!P6(U))return{allowed:!1,classification:"unauthorized",reason:"authentication required"};return hI($.alternatives,U.scopes);case"optionalAuth":if(!P6(U))return{allowed:!0};return Gj($.authenticatedScopes,U.scopes);default:return LM($)}}function LM($){throw Error(`authorization received a discriminated value with unknown kind: ${String($.kind)}`)}function Gj($,U){if(!Array.isArray($.scopes))throw Error(`authorization: ${$.kind} ScopeRequirement.scopes is not an array at runtime`);switch($.kind){case"anyOf":{if($.scopes.some((G)=>U.has(G)))return{allowed:!0};return{allowed:!1,classification:"forbidden",reason:`requires any of: ${$.scopes.join(", ")}`}}case"allOf":{if($.scopes.length===0)throw Error("authorization: allOf ScopeRequirement has an empty scopes array (the non-empty tuple invariant was violated at runtime)");let J=$.scopes.filter((G)=>!U.has(G));if(J.length===0)return{allowed:!0};return{allowed:!1,classification:"forbidden",reason:`missing required scopes: ${J.join(", ")}`}}default:return LM($)}}function hI($,U){if(!Array.isArray($))throw Error("authorization: scopedAlternatives.alternatives is not an array at runtime");if($.length===0)throw Error("authorization: scopedAlternatives has an empty alternatives array (the non-empty tuple invariant was violated at runtime)");let J=[];for(let G of $){let X=Gj(G,U);if(X.allowed)return{allowed:!0};J.push(X.reason)}return{allowed:!1,classification:"forbidden",reason:`requires one of: ${J.join("; ")}`}}function VM($,U){if($.transports[Uj(U.transport)])return null;let J=QM.filter((G)=>$.transports[Uj(G)]);return R1({code:"UnsupportedTransport",message:`operation "${$.name}" does not support transport "${U.transport}"`,data:{transport:U.transport,supported:J}})}function PM($,U){let J=DM($.access,U.principal);if(J.allowed)return null;if(J.classification==="unauthorized")return R1({code:"Unauthorized",message:J.reason,data:{reason:J.reason}});return R1({code:"Forbidden",message:J.reason,data:{reason:J.reason}})}async function FM($,U,J){if($.authorize===void 0)return null;let G;try{G=await $.authorize({input:U,principal:J.principal,engine:J.engine,transport:J.transport})}catch{return R1({code:"EngineFailure",message:"internal error",data:{}})}if(!wI(G))return R1({code:"EngineFailure",message:"internal error",data:{}});if(!G.allowed){if(G.classification==="unauthorized")return R1({code:"Unauthorized",message:G.reason,data:{reason:G.reason}});return R1({code:"Forbidden",message:G.reason,data:{reason:G.reason}})}return null}function MM($,U,J,G){let X=$.unknownKeyPolicy[J],Q=yI($);if(Q.kind==="failure")return Q;let Z=mI(U,X,Q.keys);if(Z.kind==="failure")return Z;let Y=uI($.inputSchema,Z.input);if(Y.kind==="failure")return Y;M6(G,"parsed");let _=Y.input;if(X!=="passthrough")return M6(G,"unknown-key-policy-applied"),{kind:"ok",input:_};let H=fI(_,Z.passthroughExtras);return M6(G,"unknown-key-policy-applied"),{kind:"ok",input:H}}function M6($,U){if($===void 0)return;$(U)}function yI($){try{return{kind:"ok",keys:YM($.inputSchema)}}catch{return{kind:"failure",fault:{code:"EngineFailure",message:"internal error",data:{}}}}}function mI($,U,J){if(!u2($))return{kind:"ok",input:$,passthroughExtras:[]};let G=$,X=Object.keys(G).filter((Q)=>!J.has(Q));if(X.length===0)return{kind:"ok",input:$,passthroughExtras:[]};if(U==="reject")return{kind:"failure",fault:{code:"InvalidParams",message:"unrecognized top-level keys",data:{issues:[{path:[],message:`unrecognized top-level keys: ${X.join(", ")}`,code:"unrecognized_keys"}]}}};return{kind:"ok",input:_M(G,J),passthroughExtras:kI(G,X,U)}}function kI($,U,J){if(J!=="passthrough")return[];return U.filter((G)=>!C1.has(G)).map((G)=>[G,$[G]])}function fI($,U){let J=Object.create(null);for(let[G,X]of Object.entries($)){if(C1.has(G))continue;J[G]=X}for(let[G,X]of U){if(G in J)continue;J[G]=X}return J}function uI($,U){let J;try{J=$.safeParse(U)}catch{return{kind:"failure",fault:{code:"EngineFailure",message:"internal error",data:{}}}}if(!J.success)return{kind:"failure",fault:{code:"InvalidParams",message:"invalid params",data:{issues:jM(J.error.issues)}}};return{kind:"ok",input:J.data}}function wI($){if(typeof $!=="object"||$===null)return!1;let U=Xj($,"allowed");if(!U.ok)return!1;if(U.value===!0)return!0;if(U.value!==!1)return!1;let J=Xj($,"reason");if(!J.ok||typeof J.value!=="string")return!1;let G=Xj($,"classification");if(!G.ok)return!1;return cI(G.value)}function Xj($,U){try{return{ok:!0,value:$[U]}}catch{return{ok:!1}}}function cI($){return $===void 0||$==="unauthorized"||$==="forbidden"}function R1($){return{ok:!1,fault:$}}function zM($,U){let J=U.registry.get($);if(J===void 0)return T1({code:"MethodNotFound",message:`unknown operation: ${$}`,data:{method:$}});return M6(U.pipelineTrace,"looked-up"),{ok:!0,value:J}}async function BM($,U,J){let G=J.pipelineTrace,X=VM($,J);if(X!==null)return X;M6(G,"transport-checked");let Q=PM($,J);if(Q!==null)return Q;M6(G,"access-checked");let Z=MM($,U,ZM(J.transport),G);if(Z.kind==="failure")return T1(Z.fault);let Y=await FM($,Z.input,J);if(Y!==null)return Y;return M6(G,"authorized"),{ok:!0,value:{input:Z.input}}}function WM($,U){let J;try{J=$.safeParse(U)}catch{return T1({code:"EngineFailure",message:"internal error",data:{}})}if(!J.success)return T1({code:"EngineFailure",message:"internal error",data:{}});return{ok:!0,value:J.data}}function T1($){return{ok:!1,fault:$}}async function Qj($,U,J){let G=zM($,J);if(!G.ok)return G;let X=G.value,Q=X.kind??"unary";if(Q==="subscription"||Q==="stream"&&J.transport!=="http-rest")return T1({code:"Unprocessable",message:`operation "${X.name}" is not unary`,data:{reason:`operation kind is "${Q}"`}});let Z=await BM(X,U,J);if(!Z.ok)return Z;let Y;try{Y=await X.invoke({input:Z.value.input,principal:J.principal,engine:J.engine,transport:J.transport})}catch(H){return T1(HM(H,X))}M6(J.pipelineTrace,"invoked");let _=WM(X.outputSchema,Y);if(_.ok)M6(J.pipelineTrace,"output-validated");return _}var cU=new Set(["Unauthorized","Forbidden","InvalidParams","EngineFailure"]);function z6($,U){let J=new Set([...cU,...$.producibleFaults??[]]),G=Bun.env.WEFT_STRICT_FAULTS==="1"||Bun.env.NODE_ENV!=="production";if(!J.has(U.code)){if(G)throw Error(`Operation "${$.name}" raised undeclared fault "${U.code}". Add "${U.code}" to producibleFaults or remove the fault.`);console.error(`[weft] Operation "${$.name}" raised undeclared fault "${U.code}". This will become a hard error in a future version.`)}throw U}var KM=/^weft\.[a-z][a-z0-9]*(?:\.[a-z][a-z0-9]*)+$/;function i2($){if(!KM.test($))throw Error(`invalid operation name "${$}" — must match weft.<segment>(.<segment>)+ where each segment starts with a lowercase ASCII letter and may contain lowercase ASCII letters or digits (e.g., "weft.workflows.start", "weft.workflows.list2")`)}function qM($){if($.kind==="scoped")return Object.freeze({kind:"scoped",scopes:Zj($.scopes)});if($.kind==="scopedAlternatives")return Object.freeze({kind:"scopedAlternatives",alternatives:Object.freeze($.alternatives.map(Zj))});if($.kind==="optionalAuth")return Object.freeze({kind:"optionalAuth",authenticatedScopes:Zj($.authenticatedScopes)});return Object.freeze({...$})}function Zj($){let U=Object.freeze([...$.scopes]);return Object.freeze({kind:$.kind,scopes:U})}function pI($){if($===void 0)return;return Object.freeze({discriminator:$.discriminator,...$.defaultValue===void 0?{}:{defaultValue:$.defaultValue},variants:Object.freeze($.variants.map((U)=>Object.freeze({value:U.value,access:qM(U.access)})))})}function dI($){if(!($.inputSchema instanceof j.ZodObject))throw Error(`operation "${$.name}" inputSchema must be a z.ZodObject (got ${$.inputSchema.constructor.name}); wrappers like .optional() / transforms hide the top-level shape from the unknown-key policy check`);return $.inputSchema}function lI($){let U=dI($),G=Object.keys(U.shape).filter((X)=>C1.has(X));if(G.length>0)throw Error(`operation "${$.name}" inputSchema declares unsafe top-level keys: ${G.join(", ")}. Names that match a prototype-pollution vector (__proto__, constructor, prototype) are forbidden as schema keys.`)}function iI($){let U=$.kind??"unary";if(U==="unary"){if($.eventSchema!==void 0)throw Error(`operation "${$.name}" has kind: 'unary' (or unset) but declares an eventSchema. eventSchema is reserved for kind: 'stream' or kind: 'subscription'.`);return}if($.eventSchema===void 0)throw Error(`operation "${$.name}" has kind: '${U}' but no eventSchema. Stream and subscription operations must declare an eventSchema so the dispatcher can validate each yielded element.`)}function nI($){if(typeof $.destructive!=="boolean")throw Error(`operation "${$.name}" must declare an explicit boolean "destructive" flag (got ${typeof $.destructive}). Every operation has to state whether it irreversibly mutates state — there is no implicit default. Mark cancel/purge/bulk-delete/raw-storage-write style operations true and read-only operations false.`)}function rI($){if(!$.mcpExposable)return;if($.mcpTool===void 0)throw Error(`operation "${$.name}" is mcpExposable but does not declare mcpTool.workflowType metadata`)}function oI($){return Object.freeze({...$,tags:Object.freeze([...$.tags]),...$.producibleFaults===void 0?{}:{producibleFaults:Object.freeze([...$.producibleFaults])},access:qM($.access),...$.parameterizedAccess===void 0?{}:{parameterizedAccess:pI($.parameterizedAccess)},...$.mcpTool===void 0?{}:{mcpTool:Object.freeze({workflowType:$.mcpTool.workflowType})},transports:Object.freeze({...$.transports}),unknownKeyPolicy:Object.freeze({...$.unknownKeyPolicy})})}function Yj($){let U=new Map;for(let G of $){if(U.has(G.name))throw Error(`duplicate operation name in registry: ${G.name}`);i2(G.name),lI(G),iI(G),nI(G),rI(G),U.set(G.name,oI(G))}let J=Object.freeze([...U.values()]);return{get(G){return U.get(G)},list(){return J}}}var sI=/^(\d+(?:\.\d+)?)\s*(ms|milliseconds?|s|seconds?|m|minutes?|h|hours?|d|days?)$/i,aI={ms:1,millisecond:1,milliseconds:1,s:1000,second:1000,seconds:1000,m:60000,minute:60000,minutes:60000,h:3600000,hour:3600000,hours:3600000,d:86400000,day:86400000,days:86400000};function NM($,U){if(!Number.isFinite($)||$<0)throw RangeError(`Duration must resolve to a finite, non-negative number of milliseconds, got: ${String(U)}`)}function A$($,U){if(!Number.isFinite($)||$<0)throw RangeError(`${U} must resolve to a finite, non-negative millisecond timestamp, got: ${String($)}`);let J=Math.ceil($);if(!Number.isSafeInteger(J))throw RangeError(`${U} must resolve to a safe integer millisecond timestamp, got: ${String($)}`);return J}function Q$($){if(typeof $==="number")return NM($,$),$;let U=sI.exec($.trim());if(!U)throw Error(`Invalid duration string: "${$}". Expected a number or a string like "30s", "5 minutes", "1 hour", etc.`);let J=Number.parseFloat(U[1]),G=U[2].toLowerCase(),X=aI[G];if(X===void 0)throw Error(`Unknown duration unit: "${G}"`);let Q=J*X;return NM(Q,$),Q}function J9($,U){let J=Q$(U.initialBackoff),G=Q$(U.maxBackoff),X=J*Math.pow(U.backoffMultiplier,$-1);return Math.min(X,G)}function J$($,U,J){if(!$.capabilities()[U])throw Error(`Feature "${J}" requires storage capability "${U}", but this storage backend does not provide it.`)}var OM="default";async function AM($,U){return await $.get(U)!==null}async function*n2($,U,J){for await(let[G]of $.scan(U,J))yield G}async function CM($,U){let J=0;for await(let G of n2($,U))J++;return J}async function RM($,U){let J=[];for await(let G of n2($,U))J.push({type:"delete",key:G});if(J.length===0)return 0;return await $.batch(J),J.length}async function TM($,U,J){let G=[];for await(let X of n2($,U,J))G.push({type:"delete",key:X});if(G.length===0)return 0;return await $.batch(G),G.length}var E1=1e4,xM=1e4;class SM extends Error{code="StorageBatchOperationLimitExceededError";cap=E1;count;target;constructor($,U){super(`${$} count ${U} exceeds MAX_BATCH_OPERATIONS (${E1}).`);this.name="StorageBatchOperationLimitExceededError",this.target=$,this.count=U}}function W6($,U){if(U>E1)throw new SM($,U)}function c$($){return $.length>0?$.slice(0,-1)+String.fromCharCode($.charCodeAt($.length-1)+1):"ÿ"}function G9($,U={}){if(U.gt!==void 0&&$<=U.gt)return!1;if(U.gte!==void 0&&$<U.gte)return!1;if(U.lt!==void 0&&$>=U.lt)return!1;if(U.lte!==void 0&&$>U.lte)return!1;return!0}function X9($,U){if($===null||U===null)return $===U;if($.byteLength!==U.byteLength)return!1;for(let J=0;J<$.byteLength;J++)if($[J]!==U[J])return!1;return!0}async function v$($,U){if($.has)return $.has(U);return AM($,U)}function Q9($,U,J){if($.keys)return $.keys(U,J);return n2($,U,J)}async function bM($,U){if($.count)return $.count(U);return CM($,U)}async function vM($,U){if($.deletePrefix)return $.deletePrefix(U);return RM($,U)}async function gM($,U){W6("batch operations",U.length),await $.batch(U)}async function e($,U,J){if(W6("conditionalBatch conditions",U.length),W6("conditionalBatch operations",J.length),J$($,"conditionalBatch","storageConditionalBatch"),!$.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return $.conditionalBatch(U,J)}function N($){return encodeURIComponent($)}function IM($){return decodeURIComponent($)}function p6($){try{return decodeURIComponent($)}catch{return null}}var B6=($)=>String($).padStart(16,"0"),tI="0",eI="1",EM=($,U,J,G)=>`sig:${N($)}:${N(U)}:${G}:${N(J)}`,P={workflow:($)=>`wf:${N($)}`,checkpoint:($)=>`wf:${N($)}:ckpt`,checkpointHistory:($,U)=>`wf:${N($)}:ckpt:${String(U).padStart(10,"0")}`,timelinePrefix:($)=>`wf:${N($)}:timeline:`,timeline:($,U)=>`wf:${N($)}:timeline:${String(U).padStart(10,"0")}`,schedule:($)=>`schedule:${N($)}`,scheduleTick:($,U)=>`schedule-due:${String($).padStart(16,"0")}:${N(U)}`,scheduleRun:($)=>`schedule-run:${N($)}`,operation:($,U,J)=>`op:${$}:${B6(U)}:${J}`,operationInflight:($)=>`op:inflight:${$}`,operationQueued:($)=>`op:queued:${$}`,operationResolved:($)=>`op:resolved:${$}`,operationDeadLetterPrefix:()=>"op:dead-letter:",operationDeadLetter:($)=>`op:dead-letter:${$}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:($,U,J)=>`audit:bulk:${B6($)}:${N(U)}:${N(J)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:($,U)=>`op:resolved-by-time:${B6($)}:${N(U)}`,asyncActivity:($,U)=>`async-act:v1:${N($)}:${N(U)}`,activityReconciliationPrefix:($)=>`actrec:v1:${N($)}:`,activityReconciliation:($,U,J)=>`actrec:v1:${N($)}:${N(U)}:${J}`,eventPrefix:($)=>`ev:${N($)}:`,event:($,U)=>`ev:${N($)}:${String(U).padStart(10,"0")}`,eventHead:($)=>`ev:${N($)}:head`,eventWatermark:($)=>`ev:${N($)}:watermark`,fleetEventPrefix:()=>"fleet-event:",fleetEvent:($)=>`fleet-event:${String($).padStart(10,"0")}`,fleetEventTail:()=>"fleet-event-tail",fleetEventByWorkflowPrefix:($)=>`fleet-event-by-workflow:${N($)}:`,fleetEventByWorkflow:($,U)=>`fleet-event-by-workflow:${N($)}:${String(U).padStart(10,"0")}`,signal:($,U,J)=>EM($,U,J,eI),startSignal:($,U,J)=>EM($,U,J,tI),signalSequence:($)=>`sigseq:v1:${N($)}`,signalAcceptedResponsePrefix:($)=>`sigres:v1:${N($)}:`,signalAcceptedResponse:($,U,J)=>`sigres:v1:${N($)}:${N(U)}:${N(J)}`,deadline:($,U)=>`wf-deadline:${B6($)}:${N(U)}`,terminalCleanup:($,U)=>`wf-cleanup:${B6($)}:${N(U)}`,teardownTimer:($,U)=>`wf-teardown:${B6($)}:${N(U)}`,delayedStart:($,U)=>`wf-delayed:${B6($)}:${N(U)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:($,U)=>`wf-terminal:${B6($)}:${N(U)}`,attribute:($)=>`attr:${N($)}`,attributeIndex:($,U,J)=>`idx:${$}:${U}:${N(J)}`,tagIndex:($,U)=>`tag:${N($)}:${N(U)}`,updatePrefix:($)=>`upd:${N($)}:`,update:($,U)=>`upd:${N($)}:${U}`,updateResponse:($)=>`upr:${$}`,updateIdempotency:($,U)=>`upk:${N($)}:${U}`,startIdempotency:($)=>`start-idem:${N($)}`,startIdempotencySignalId:($)=>`start-idem:${$}`,livenessPrefix:()=>"liveness:",liveness:($)=>`liveness:${N($)}`,leasePrefix:()=>"lease:",leaseEpoch:()=>"lease:epoch",leaseHolder:()=>"lease:holder",budget:($,U,J)=>`budget:${$}:${U}:${J}`,review:($,U)=>`review:${N($)}:${U}`,workflowHeaders:($)=>`wf-headers:${N($)}`,childCancellationPrefix:($)=>`child-cancel:${N($)}:`,childCancellation:($,U)=>`child-cancel:${N($)}:${N(U)}`,terminalCleanupNeeded:($)=>`wf-cleanup-needed:${N($)}`,workflowConcurrency:($,U)=>`wf-concurrency:${N($)}:${N(U)}`,workflowConcurrencyHolder:($)=>`wf-concurrency-holder:${N($)}`,workflowHasServices:($)=>`wf-has-services:${N($)}`,finalizerState:($)=>`wf-finalizer-state:${N($)}`,teardownOwed:($)=>`wf-teardown-needed:${N($)}`,teardownDeadLetter:($)=>`wf-teardown-deadletter:${N($)}`,offload:($,U)=>`offload:${N($)}:${U}`,archive:($,U)=>`archive:${N($)}:${U}`,stateExecution:($,U)=>`state:execution:${N($)}:${N(U)}`,stateWorkflow:($,U)=>`state:workflow-scope:${OM}:${N($)}:${N(U)}`,streamChunkPrefix:($,U)=>`blob:${N($)}:${U}:chunk:`,streamChunk:($,U,J)=>`blob:${N($)}:${U}:chunk:${String(J).padStart(10,"0")}`,streamTail:($,U)=>`blob:${N($)}:${U}:tail`,streamMetadata:($,U)=>`blob:${N($)}:${U}:meta`,budgetCharged:($)=>`budget-charged:${$}`,toolEffect:($,U,J)=>`tool-effect:${N($)}:${U}:${J}`,workflowVisibilityStatus:($,U)=>`wf-idx-status:${N($)}:${N(U)}`,workflowVisibilityType:($,U)=>`wf-idx-type:${N($)}:${N(U)}`,workflowVisibilityCreated:($,U)=>`wf-idx-created:${B6($)}:${N(U)}`,workflowVisibilityUpdated:($,U)=>`wf-idx-updated:${B6($)}:${N(U)}`,workflowVisibilityDeadline:($,U)=>`wf-idx-deadline:${B6($)}:${N(U)}`,workflowVisibilityManifest:($)=>`wf-idx-manifest:${N($)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"};function $h($){return $==="sleep"||$==="visibility-timeout"||$==="execution-deadline"||$==="delayed-start"||$==="schedule"||$==="terminal-cleanup"||$==="teardown"||$==="wait-condition"}function Uh($){return typeof $==="object"&&$!==null}function hM($,U){return typeof $[U]==="string"}function Jh($,U){let J=$[U];return typeof J==="number"&&Number.isFinite(J)}function _j($){return Uh($)&&hM($,"id")&&hM($,"workflowId")&&Jh($,"fireAt")&&$h($.kind)}function _$($){let U={...$,fireAt:A$($.fireAt,"Timer fireAt")};if(U.kind==="terminal-cleanup")return[{type:"put",key:P.terminalCleanup(U.fireAt,U.id),value:W(U.workflowId)}];if(U.kind==="teardown")return[{type:"put",key:P.teardownTimer(U.fireAt,U.id),value:W(U.workflowId)}];let J=U.kind==="delayed-start"?P.delayedStart(U.fireAt,U.workflowId):U.kind==="schedule"?P.scheduleTick(U.fireAt,U.workflowId):P.deadline(U.fireAt,U.id),G=[{type:"put",key:J,value:W(U)}];return G.push({type:"put",key:`timer-idx:${U.id}`,value:W(J)}),G}function Gh($,U){if($.entry.fireAt!==U.entry.fireAt)return $.entry.fireAt-U.entry.fireAt;return $.key.localeCompare(U.key)}async function Z9($,U){while(!0){let J=await $.next();if(J.done)return null;let[G,X]=J.value,Q=A(X);if(!_j(Q)){console.error(`Corrupted timer entry at ${G}: removing`),await U.delete(G);continue}return{key:G,entry:Q}}}async function yM($,U,J){let{diagnosticName:G,prefix:X}=J==="terminal-cleanup"?{diagnosticName:"terminal cleanup",prefix:"wf-cleanup:"}:{diagnosticName:"teardown timer",prefix:"wf-teardown:"};while(!0){let Q=await $.next();if(Q.done)return null;let[Z,Y]=Q.value,_=Z.indexOf(":",X.length),H=_===-1?Number.NaN:Number(Z.slice(X.length,_)),D=_===-1?null:p6(Z.slice(_+1)),L=A(Y);if(!Number.isSafeInteger(H)||H<0||D===null||typeof L!=="string"){console.error(`Corrupted ${G} entry at ${Z}: removing`),await U.delete(Z);continue}return{key:Z,entry:{id:D,workflowId:L,fireAt:H,kind:J}}}}async function mM($,U){return yM($,U,"terminal-cleanup")}async function kM($,U){return yM($,U,"teardown")}async function Y9($,U){$.next=await $.readNext($.iterator,U)}function fM($){let U;for(let J of $){if(J.next===null)continue;if(U===void 0||Gh(J.next,U.next)<0)U=J}return U}function uM($){return $.kind!=="schedule"&&$.kind!=="terminal-cleanup"&&$.kind!=="teardown"}var r2=1000;class _9{#$;#U;#J;#G;#X;#Q=null;#Z=!1;constructor($){this.#$=$.storage,this.#U=$.onTimerFired,this.#J=$.pollIntervalMs??1000,this.#G=$.getNow??Date.now,this.#X=$.commitTimerCleanup??((U)=>this.#$.batch(U))}start(){if(this.#Q!==null)return;this.#Z=!1,this.#Q=setInterval(()=>{this.tick()},this.#J)}stop(){if(this.#Z=!0,this.#Q!==null)clearInterval(this.#Q),this.#Q=null}async schedule($){await this.#$.batch(_$($))}async cancel($,U){let J=`timer-idx:${$}`,G=await this.#$.get(J);if(G===null)return;let X=A(G);if(typeof X!=="string"){console.error(`Corrupted timer index for ${$}: expected string, got ${typeof X}`),await this.#$.delete(J);return}let Q=X;await this.#$.batch([{type:"delete",key:Q},{type:"delete",key:J}])}async tick($){if(this.#Z)return;await this.#Y($,{respectStopped:!0})}async flush($){await this.#Y($,{respectStopped:!1}),this.stop()}async#Y($,{respectStopped:U}){let J=$??this.#G(),G=this.#V(this.#_(J)),X=[];for(let Q of G)await Y9(Q,this.#$);while(this.#L(G)){let Q=fM(G),Z=Q?.next;if(!Z||!Q)break;if(U&&this.#Z)break;if(await this.#H(Z,X)==="retry"){await Y9(Q,this.#$);continue}await Y9(Q,this.#$)}await this.#D(X)}#_($){return{deadline:this.#$.scan("wf-deadline:",{lt:c$(P.deadline($,"")),limit:r2}),delayedStart:this.#$.scan("wf-delayed:",{lt:c$(P.delayedStart($,"")),limit:r2}),schedule:this.#$.scan("schedule-due:",{lt:c$(P.scheduleTick($,"")),limit:r2}),terminalCleanup:this.#$.scan("wf-cleanup:",{lt:c$(P.terminalCleanup($,"")),limit:r2}),teardown:this.#$.scan("wf-teardown:",{lt:c$(P.teardownTimer($,"")),limit:r2})}}#V($){return[{iterator:$.deadline[Symbol.asyncIterator](),next:null,readNext:Z9},{iterator:$.delayedStart[Symbol.asyncIterator](),next:null,readNext:Z9},{iterator:$.schedule[Symbol.asyncIterator](),next:null,readNext:Z9},{iterator:$.terminalCleanup[Symbol.asyncIterator](),next:null,readNext:mM},{iterator:$.teardown[Symbol.asyncIterator](),next:null,readNext:kM}]}#L($){return $.some((U)=>U.next!==null)}async#H($,U){try{await this.#U($.entry)}catch(J){return console.error(`Timer callback failed for timer ${$.entry.id}:`,J),"retry"}return await this.#j($,U),"processed"}async#j($,U){try{U.push(...await this.#P($))}catch(J){console.error(`Failed to delete timer keys for ${$.entry.id}:`,J)}}async#D($){if($.length===0)return;try{await this.#X($)}catch(U){console.error("Failed to delete timer keys for processed scheduler tick:",U)}}async#P($){let U=[{type:"delete",key:$.key}],J=await this.#F($);if(J)U.push(J);return U}async#F($){let U=`timer-idx:${$.entry.id}`;if($.entry.kind==="schedule")return this.#z($,U);return uM($.entry)?{type:"delete",key:U}:null}async#z($,U){let J=await this.#$.get(U);if(J===null)return null;let G=A(J);return typeof G!=="string"||G===$.key?{type:"delete",key:U}:null}[Symbol.dispose](){this.stop()}}function Xh($){for(let U of $){let J=U.codePointAt(0);if(J===void 0)continue;if(J>=0&&J<=31||J===127)return!0}return!1}function wM($,U="options.id"){if($.length===0)throw Error(`${U} must not be an empty string`);if($.length>128)throw Error(`${U} must be at most 128 characters`);if(Xh($))throw Error(`${U} must not contain control characters`)}var cM=32,pM=128,dM=117,lM=new TextEncoder,Qh="Provide only one of startAt or startAfter";class f extends v{constructor($){super("StartWorkflowValidationError",$)}}var j9=($,U)=>{if($!==void 0&&U!==void 0)throw new f(Qh)},W4=($,U)=>{if(typeof $!=="string")throw new f(`${U} must be a string`);try{return wM($,U),$}catch(J){let G=J instanceof Error?J.message:String(J);throw new f(G)}},iM=($,U)=>{if(typeof $!=="string")throw new f(`${U} must be a string`);return H9($,U)},H9=($,U)=>{if($.length===0)throw new f(`${U} must not be empty`);if(lM.encode($).byteLength>dM)throw new f(`${U} must be at most ${dM} UTF-8 bytes`);return $};function D9($){let U=$?.onTerminalConflict;if(U===void 0||U==="error")return;if(U!=="start-new")throw new f("options.onTerminalConflict must be 'error' or 'start-new'");if($?.idempotencyKey!==void 0)throw new f("options.onTerminalConflict: 'start-new' is mutually exclusive with options.idempotencyKey: idempotency is a permanent at-most-once mapping and cannot restart a terminal run");if($?.id===void 0)throw new f("options.onTerminalConflict: 'start-new' requires an explicit options.id; a generated id is never a meaningful restart target")}function jj($){if($.id!==void 0&&$.idempotencyKey!==void 0)throw new f("options.id and options.idempotencyKey are mutually exclusive: idempotency assigns its own workflow id and dedups through the idempotency key. Provide one or the other.")}function L9($,U){if($!==void 0&&"onTerminalConflict"in $&&$.onTerminalConflict!==void 0)throw new f(`${U} does not support options.onTerminalConflict; it is available on engine.start only`)}function V9($,U){if(typeof $!=="number"||!Number.isSafeInteger($)||$<0)throw new f(`${U} must be a non-negative integer millisecond timestamp`);return $}function o2($,U){try{return Q$($)}catch{throw new f(`${U} must be a finite, non-negative number or a valid duration string`)}}function Hj($,U){if(typeof $!=="number"&&typeof $!=="string")throw new f(`${U} must be a finite, non-negative number or valid duration string`);return o2($,U),$}function Dj($,U){if($.length>cM)throw new f(`${U} must contain at most ${cM} tags`)}function j$($,U){if(!Array.isArray($))throw new f(`${U} must be an array of strings`);Dj($,U);let J=[];for(let G of $){if(typeof G!=="string")throw new f(`${U} must contain only strings`);if(G.trim().length===0)throw new f(`${U} must not contain empty tags`);if(lM.encode(G).byteLength>pM)throw new f(`${U} tags must be at most ${pM} UTF-8 bytes each`);J.push(G)}return J}var g$=Object.freeze({Unauthorized:401,Forbidden:403,NotFound:404,Conflict:409,Unprocessable:422,Timeout:408,PayloadTooLarge:413,NotImplemented:501,UnsupportedTransport:501,SubscriptionOverflow:500,InvalidParams:400,MethodNotFound:404,EngineFailure:500});function Zh($){return $.data.issues.map((U)=>{let J=U.path.join(".");return J.length>0?`${J}: ${U.message}`:U.message}).join("; ")}function K6($){if($.code==="InvalidParams")return new Response(JSON.stringify({error:Zh($)}),{status:400,headers:{"Content-Type":"application/json"}});if($.code==="EngineFailure")return new Response(JSON.stringify({error:"Internal server error"}),{status:500,headers:{"Content-Type":"application/json"}});return new Response(JSON.stringify({error:$.message}),{status:g$[$.code],headers:{"Content-Type":"application/json"}})}var nM=Object.freeze({Unauthorized:-32010,Forbidden:-32011,NotFound:-32020,Conflict:-32021,Unprocessable:-32022,Timeout:-32023,PayloadTooLarge:-32024,NotImplemented:-32025,UnsupportedTransport:-32030,SubscriptionOverflow:-32031,EngineFailure:-32099,InvalidParams:-32602,MethodNotFound:-32601});function t($){return typeof $==="object"&&$!==null&&"code"in $&&"message"in $&&"data"in $}function Z$($,U){return new Response(JSON.stringify({error:$}),{status:U,headers:{"Content-Type":"application/json"}})}function C($,U){return{code:"InvalidParams",message:$,data:U===void 0?{issues:[]}:{issues:[],weftCode:U}}}function R($){if($.code==="EngineFailure")return Z$("Internal server error",500);let U=g$[$.code],J=Yh($.data);if(J===void 0)return Z$($.message,U);return new Response(JSON.stringify({error:$.message,weftCode:J}),{status:U,headers:{"Content-Type":"application/json"}})}function Yh($){if(typeof $!=="object"||$===null||!("weftCode"in $))return;return JV($.weftCode)?$.weftCode:void 0}function q($){i2($.name);let U={name:$.name,mcpExposable:$.mcpExposable,...$.mcpTool===void 0?{}:{mcpTool:{workflowType:$.mcpTool.workflowType}},summary:$.summary,...$.description===void 0?{}:{description:$.description},tags:[...$.tags??[]],destructive:$.destructive,inputSchema:$.inputSchema,outputSchema:$.outputSchema,...$.parameterizedAccess===void 0?{}:{parameterizedAccess:_h($.parameterizedAccess)},...$.producibleFaults===void 0?{}:{producibleFaults:[...$.producibleFaults]},...$.discoverable===void 0?{}:{discoverable:$.discoverable},access:rM($.access),transports:{...$.transports},unknownKeyPolicy:{...$.unknownKeyPolicy},...$.authorize===void 0?{}:{authorize:$.authorize},invoke:$.invoke};if($.kind==="stream")return{...U,kind:"stream",eventSchema:$.eventSchema};if($.kind==="subscription")return{...U,kind:"subscription",eventSchema:$.eventSchema};return{...U}}function _h($){return{discriminator:$.discriminator,...$.defaultValue===void 0?{}:{defaultValue:$.defaultValue},variants:$.variants.map((U)=>({value:U.value,access:rM(U.access)}))}}function rM($){if($.kind==="scoped")return{kind:"scoped",scopes:Lj($.scopes)};if($.kind==="scopedAlternatives")return{kind:"scopedAlternatives",alternatives:$.alternatives.map(Lj)};if($.kind==="optionalAuth")return{kind:"optionalAuth",authenticatedScopes:Lj($.authenticatedScopes)};return{...$}}function Lj($){return{kind:$.kind,scopes:[...$.scopes]}}var jh=/^(0|[1-9]\d*)$/;function sM($){return{code:"PayloadTooLarge",message:"Payload Too Large",data:{maxBytes:$}}}function oM(){return{code:"InvalidParams",message:"Invalid Content-Length header",data:{issues:[]}}}function Hh($){let U=$?.maxBodyBytes??1048576;if(!Number.isSafeInteger(U)||U<0)throw Error("REST body size limit must be a non-negative safe integer");return U}function Dh($,U){let J=$.headers.get("content-length");if(J===null)return;if(!jh.test(J))throw oM();let G=Number(J);if(!Number.isSafeInteger(G)||G<0)throw oM();if(G>U)throw sM(U)}async function Lh($){try{await $.cancel()}catch{}}async function Vj($,U){let J=Hh(U);Dh($,J);let G=$.body;if(G===null)return new Uint8Array;let X=G.getReader(),Q=[],Z=0;try{while(!0){let{done:H,value:D}=await X.read();if(H)break;if(Z+=D.byteLength,Z>J)throw await Lh(X),sM(J);Q.push(D)}}finally{X.releaseLock()}let Y=new Uint8Array(Z),_=0;for(let H of Q)Y.set(H,_),_+=H.byteLength;return Y}async function K4($,U){return new TextDecoder("utf-8").decode(await Vj($,U))}async function Y$($,U){return JSON.parse(await K4($,U))}var Vh=j.object({workflowId:j.string().min(1),tags:j.unknown().optional()}),Ph=j.object({ok:j.literal(!0)});function P9($){return q({name:$.name,mcpExposable:!1,summary:$.summary,tags:["Tags"],destructive:$.destructive,inputSchema:Vh,outputSchema:Ph,access:{kind:"public"},producibleFaults:["Unprocessable","NotFound"],transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:U,engine:J})=>{let G;try{G=j$(U.tags,'Field "tags"')}catch(X){throw aM(tM(X))}try{return await $.mutateTags(J,U.workflowId,G),{ok:!0}}catch(X){throw zh(X,U.workflowId)}}})}function F9($){return{method:$.method,path:"/v1/workflows/:id/tags",pathParamNames:["id"],operationName:$.operationName,inputSources:{workflowId:{kind:"path",pathParam:"id"},tags:{kind:"body-field",bodyField:"tags"}},extractInput:async(U,J,G)=>{let X=await Y$(U,G).catch((Q)=>{if(t(Q))throw Q;throw Error("Invalid JSON body")});if(!Bh(X))throw Error("Invalid JSON body");return{workflowId:J.id??"",tags:X.tags}},success:{kind:"json",status:200},shapeSuccess:Fh,shapeFault:Mh}}function Fh($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}function Mh($){if($.code==="Unprocessable")return Z$($.message,400);return R($)}function zh($,U){let J=tM($);if($ instanceof B4)return{code:"NotFound",message:J,data:{resource:"workflow",identifier:U,weftCode:$.code}};if(J.includes("not found"))return{code:"NotFound",message:J,data:{resource:"workflow",identifier:U}};if($ instanceof f)return aM(J);return{code:"EngineFailure",message:J,data:{}}}function aM($){return{code:"Unprocessable",message:$,data:{reason:$}}}function tM($){return $ instanceof Error?$.message:String($)}function Bh($){return typeof $==="object"&&$!==null&&!Array.isArray($)}var Pj=P9({name:"weft.workflows.tags.add",summary:"Add workflow tags",destructive:!1,mutateTags:($,U,J)=>$.addTags(U,...J)}),eM=F9({method:"POST",operationName:Pj.name});var Wh=j.object({attribute:j.string().min(1)}).strict(),Kh=j.union([j.literal("status"),j.literal("type"),j.literal("failureCategory"),Wh]),$z=1000,qh=1e4,Uz=1e5,Fj=j.object({groupBy:Kh,limit:j.number().int().min(1).max(qh).optional()}).strict();function Nh($){let U=[];for(let J of $.path)if(typeof J==="string"||typeof J==="number")U.push(J);else U.push(String(J));return{path:U,message:$.message,code:$.code}}class M9 extends v{issues;constructor($){let U=$.map((J)=>{let G=J.path.join(".");return G.length>0?`${G}: ${J.message}`:J.message}).join("; ");super("AggregateOptionsValidationError",U.length>0?U:"Invalid aggregate options");this.issues=$}}class s2 extends v{cap;constructor($){super("AggregateDistinctKeyCapExceededError",`Aggregate query would exceed the distinct-key cap of ${$}. Narrow the filter or choose a lower-cardinality groupBy.`);this.cap=$}}function Jz($){let U=Fj.safeParse($??{});if(!U.success)throw new M9(U.error.issues.map(Nh));let{groupBy:J,limit:G}=U.data;return{groupBy:J,...G!==void 0&&{limit:G}}}var a2=["application","timeout","cancellation","resource","system"],Oh=new Set(a2),Ah=new Set(["ActivityScheduleToCloseTimeoutError","ActivityPerAttemptTimeoutError","MCPToolTimeoutError","ReviewTimeoutError","UpdateTimeoutError","WorkflowTimeoutError","TimeoutError"]),Ch=Symbol.for("weft.failure-category.timeout"),Rh=new Set(["AbortError","CancelledError","CancellationError","WorkflowCancelledError"]),Th=new Set(["QuotaExceededError","ResourceExhaustedError","OutOfMemoryError","StorageQuotaExceededError"]);function d6($){return Oh.has($)}function z9($){if(d6($))return $;return}function Gz($){return[$]}function t2($,U={}){if(!($ instanceof Error))return"system";if(Ah.has($.name))return"timeout";if(Object.prototype.hasOwnProperty.call($,Ch))return"timeout";if(Rh.has($.name))return"cancellation";if(Th.has($.name))return"resource";return U.defaultErrorCategory??"system"}function B9($){let U=Error($.error);if($.errorName!==void 0)U.name=$.errorName;return U}var Eh=["pending","running","completed","failed","cancelled","timed-out","suspended"],xh=/^[A-Za-z0-9_-]+$/,Xz=j.enum(Eh),Qz=j.enum(a2),Mj=j.object({gte:j.number().optional(),lte:j.number().optional(),gt:j.number().optional(),lt:j.number().optional()}).strict().refine(($)=>$.gte!==void 0||$.gt!==void 0||$.lte!==void 0||$.lt!==void 0,{message:"TimeRange must specify at least one of gte, gt, lte, lt"}).refine(($)=>!($.gte!==void 0&&$.gt!==void 0),{message:"TimeRange may not set both gte and gt"}).refine(($)=>!($.lte!==void 0&&$.lt!==void 0),{message:"TimeRange may not set both lte and lt"}),e2=j.union([j.string(),j.number(),j.boolean(),j.date(),j.array(j.string())]),Sh=j.object({key:j.union([j.string().min(1),j.any()]),value:e2.optional(),gt:e2.optional(),lt:e2.optional(),gte:e2.optional(),lte:e2.optional()}),zj=j.object({status:j.union([Xz,j.array(Xz)]).optional(),type:j.string().min(1).optional(),tags:j.array(j.string()).optional(),attributes:j.array(Sh).optional(),limit:j.number().int().min(1).max(1000).optional(),offset:j.number().int().min(0).optional(),idPrefix:j.string().min(1).regex(xh,"idPrefix must match [A-Za-z0-9_-]+").optional(),createdAt:Mj.optional(),updatedAt:Mj.optional(),executionDeadline:Mj.optional(),failureCategory:j.union([Qz,j.array(Qz).min(1)]).optional()}).strict();function bh($){let U=[];for(let J of $.path)if(typeof J==="string"||typeof J==="number")U.push(J);else U.push(String(J));return{path:U,message:$.message,code:$.code}}class pU extends v{issues;constructor($){let U=$.map((J)=>{let G=J.path.join(".");return G.length>0?`${G}: ${J.message}`:J.message}).join("; ");super("ListFilterValidationError",U.length>0?U:"Invalid list filter");this.issues=$}}function dU($){let U=zj.safeParse($??{});if(!U.success)throw new pU(U.error.issues.map(bh));return U.data}var vh=new Uint8Array(0);function V$($){if(!$||$.length===0)return;let U=[...new Set($.map((J)=>J.trim()).filter((J)=>J.length>0))];return U.sort((J,G)=>J.localeCompare(G)),U.length>0?U:void 0}function Zz($){return Array.isArray($)&&$.every((U)=>typeof U==="string")}function lU($,U,J){let G=[],X=new Set(U??[]),Q=new Set(J??[]);for(let Z of X)if(!Q.has(Z))G.push({type:"delete",key:P.tagIndex(Z,$)});for(let Z of Q)if(!X.has(Z))G.push({type:"put",key:P.tagIndex(Z,$),value:vh});return G}function Yz($,U){if(!U||U.length===0)return!0;if(!$||$.length===0)return!1;let J=new Set($);return U.every((G)=>J.has(G))}var e$=64;var gh=/(?:access[-_]?token|api[-_]?key|auth(?:orization)?|card(?:number)?|cookie|credential|cvc|cvv|pass(?:word|phrase)?|private[-_]?key|refresh[-_]?token|secret|session|ssn|token)/i;function _z($){return gh.test($)}function Ih($){if(!/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/.test($))return!1;return $.split(".").every((U)=>U.length>=6)}function hh($){let U=0,J=!1;for(let G=$.length-1;G>=0;G--){let Q=Number($[G]);if(J){if(Q*=2,Q>9)Q-=9}U+=Q,J=!J}return U%10===0}function yh($){let U=$.replaceAll(/[\s-]/g,"");return/^\d{13,19}$/.test(U)&&hh(U)}function jz($){let U=$.trim();if(/^(?:Bearer|Basic)\s+\S+/i.test(U))return"[REDACTED]";if(Ih(U)||yh(U))return"[REDACTED]";return $}function l6($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function x1(){return{supported:!1}}function S1($){return{supported:!0,value:$}}function mh($){let U=Object.getPrototypeOf($);return U===Object.prototype||U===null}function kh($,U){let J={};for(let[G,X]of $){let Q=String(G);J[Q]=_z(Q)?"[REDACTED]":$8(X,U)}return J}function fh($,U){let J={};for(let[G,X]of Object.entries($))J[G]=_z(G)?"[REDACTED]":$8(X,U);return J}var uh=[($)=>$ instanceof Date?S1($.toISOString()):x1(),($)=>$ instanceof Error?S1({name:$.name,message:jz($.message)}):x1(),($)=>$ instanceof Uint8Array?S1(`[Uint8Array(${$.byteLength})]`):x1(),($,U)=>Array.isArray($)?S1($.map((J)=>$8(J,U))):x1(),($,U)=>$ instanceof Set?S1([...$].map((J)=>$8(J,U))):x1(),($,U)=>$ instanceof Map?S1(kh($,U)):x1(),($,U)=>mh($)?S1(fh($,U)):x1()];function wh($,U){if(U.has($))return"[Circular]";U.add($);try{for(let J of uh){let G=J($,U);if(G.supported)return G.value}return Object.prototype.toString.call($)}finally{U.delete($)}}function $8($,U){if(typeof $==="string")return jz($);if($===null||$===void 0||typeof $==="boolean"||typeof $==="number")return $;if(typeof $==="bigint"||typeof $==="symbol")return String($);if(typeof $==="function")return`[Function ${$.name||"anonymous"}]`;return wh($,U)}function b1($){return $8($,new WeakSet)}function Hz($,U){if($===void 0)return"undefined";let J=b1($);if(typeof J==="string")return JSON.stringify(J);try{return JSON.stringify(J,null,U)??Object.prototype.toString.call(J)}catch{return"[unserializable]"}}var Dz=1n<<63n,ch=(1n<<64n)-1n,Lz=1024;function ph($){let U=new ArrayBuffer(8),J=new DataView(U);J.setFloat64(0,$);let G=J.getBigUint64(0);if(G&Dz)G=G^ch;else G=G^Dz;return G.toString(16).padStart(16,"0")}function B$($){let U;if(typeof $==="string")U=`s:${$}`;else if(typeof $==="number")U=`n:${ph($)}`;else if(typeof $==="boolean")U=`b:${$?"1":"0"}`;else if($ instanceof Date)U=`d:${$.toISOString()}`;else throw Error("Cannot encode a keyword list as a single value; encode elements individually.");return U}function Bj($,U){let J=new TextEncoder().encode($).byteLength;if(J>Lz)throw Error(`Encoded search attribute "${U}" exceeds the ${Lz}-byte limit (got ${J} bytes). Reduce the value size before setting the attribute.`)}function d4($,U,J){let{type:G}=J;switch(G){case"string":dh($,U,J);break;case"integer":lh($,U);break;case"number":ih($,U);break;case"boolean":nh($,U);break;case"array":rh($,U);break;default:throw Error(`Unknown search attribute type declaration: ${String(G)}`)}}function dh($,U,J){if(J.format==="date-time"){if(!(U instanceof Date))throw Error(`Search attribute "${$}" is declared as "string" with format "date-time" but received ${typeof U}.`);return}if(typeof U!=="string")throw Error(`Search attribute "${$}" is declared as "string" but received ${typeof U}.`)}function lh($,U){if(typeof U!=="number"||!Number.isInteger(U))throw Error(`Search attribute "${$}" is declared as "integer" but received ${typeof U}.`)}function ih($,U){if(typeof U!=="number")throw Error(`Search attribute "${$}" is declared as "number" but received ${typeof U}.`)}function nh($,U){if(typeof U!=="boolean")throw Error(`Search attribute "${$}" is declared as "boolean" but received ${typeof U}.`)}function rh($,U){if(!Array.isArray(U))throw Error(`Search attribute "${$}" is declared as "array" but received ${typeof U}.`);if(!U.every((J)=>typeof J==="string"))throw Error(`Search attribute "${$}" is declared as "array" but array contains non-string elements.`)}function oh($,U){if($ instanceof Date&&U instanceof Date)return $.getTime()===U.getTime();return $===U}var sh=new Uint8Array(0);function W$($,U,J){let G=[],X=new Set([...Object.keys(U),...Object.keys(J)]);for(let Q of X)G.push(...ah(Q,$,U,J));return G}function ah($,U,J,G){let X=J[$],Q=G[$],Z=$ in J,Y=$ in G;if(Array.isArray(X)||Array.isArray(Q))return eh({attributeName:$,workflowId:U,oldValue:X,newValue:Q,hadOld:Z,hasNew:Y});return th({attributeName:$,workflowId:U,oldValue:X,newValue:Q,hadOld:Z,hasNew:Y})}function th($){let{attributeName:U,workflowId:J,oldValue:G,newValue:X,hadOld:Q,hasNew:Z}=$;if(Q&&!Z)return[K9(U,G,J)];if(!Q&&Z)return[W9(U,X,J)];if(Q&&Z&&!oh(G,X))return[K9(U,G,J),W9(U,X,J)];return[]}function W9($,U,J){return{type:"put",key:P.attributeIndex($,B$(U),J),value:sh}}function K9($,U,J){return{type:"delete",key:P.attributeIndex($,B$(U),J)}}function eh($){let{oldValue:U,newValue:J}=$;if(Array.isArray(U)&&Array.isArray(J))return $y($.attributeName,U,J,$.workflowId);return[...Uy($.attributeName,$.hadOld?U:void 0,$.workflowId),...Jy($.attributeName,$.hasNew?J:void 0,$.workflowId)]}function $y($,U,J,G){let X=[],Q=new Set(U),Z=new Set(J);for(let Y of Q)if(!Z.has(Y))X.push(K9($,Y,G));for(let Y of Z)if(!Q.has(Y))X.push(W9($,Y,G));return X}function Uy($,U,J){return Vz(U).map((G)=>K9($,G,J))}function Jy($,U,J){return Vz(U).map((G)=>W9($,G,J))}function Vz($){if($===void 0)return[];return Array.isArray($)?$:[$]}var iU;function Wj(){return typeof(iU&&"bun"in iU?iU.bun:globalThis.Bun)<"u"}function Gy(){if(iU&&"process"in iU)return iU.process;return globalThis.process}function q4($){if(Wj())return Bun.sleep($);return new Promise((U)=>setTimeout(U,$))}var Xy=0xcbf29ce484222325n,Qy=0x00000100000001b3n,Zy=0xffffffffffffffffn;function Pz($){let U=Xy;for(let J=0;J<$.length;J++)U^=BigInt($[J]),U=U*Qy&Zy;return U.toString(16).padStart(16,"0")}var Yy=new TextEncoder;function q9($){return Pz($)}function N9($){return Pz(Yy.encode($))}function Fz($){let J=Gy()?.getBuiltinModule;if(typeof J!=="function")return;return J($)}function Mz(){let $=Fz("node:zlib");if(!$)throw Error("gzip/gunzip require Bun or Node 22.5+ (process.getBuiltinModule). "+"Not available in browser or edge runtimes — use CompressionStream directly.");return $}function zz($){if(Wj())return new Uint8Array(Bun.gzipSync(new Uint8Array($)));return new Uint8Array(Mz().gzipSync($))}function Bz($){if(Wj())return new Uint8Array(Bun.gunzipSync(new Uint8Array($)));return new Uint8Array(Mz().gunzipSync($))}function Wz(){return Fz("node:zlib")}var U8="0000000000000000",v1=Object.freeze({sequence:-1,lastHash:U8});function O9($){return q9($)}function N4($){if(typeof $!=="object"||$===null)return!1;let U=$;return typeof U.type==="string"&&typeof U.workflowId==="string"&&typeof U.sequence==="number"&&typeof U.prevHash==="string"&&typeof U.timestamp==="number"&&"payload"in U}function _y($){if(typeof $!=="object"||$===null)return!1;let U=$;return typeof U.sequence==="number"&&typeof U.lastHash==="string"}async function J8($,U){let J=await $.get(P.eventHead(U));if(J===null)return{sequence:-1,lastHash:U8};let G=A(J);if(_y(G))return G;return{sequence:-1,lastHash:U8}}var G8="__weftCheckpointReplay",Kj=-1;function Cj($,U){let J=Nz($),G=J.accumulatedResultReplayWatermark??Kj,X=qj(J.accumulatedResults,U),Q=qj(J.workerReplaySignatures??[],U),Z=qj(J.workerReplayFailures??[],U),Y=Tj({accumulatedResults:Oj(X,G),workerReplaySignatures:Oj(Q,G),workerReplayFailures:Oj(Z,G)}),_=Hy(G,Y),H=Nj(J.workerReplaySignatures??[],U),D=Nj(J.workerReplayFailures??[],U),L={...J,accumulatedResults:Nj(J.accumulatedResults,U),..._===Kj?{}:{accumulatedResultReplayWatermark:_},...A9("workerReplaySignatures",H),...A9("workerReplayFailures",D)};if(_===Kj)delete L.accumulatedResultReplayWatermark;if(H.length===0)delete L.workerReplaySignatures;if(D.length===0)delete L.workerReplayFailures;return{checkpoint:L,replayPayload:Y}}async function I1($,U,J){let G=[],X=rU(J);if(X!==void 0)G.push(X);let Q=await Vy($,U);if(Q!==void 0)G.push(Q);for await(let[,Z]of $.scan(P.eventPrefix(U))){let Y=A(Z);if(!N4(Y))continue;let _=Y,H=Ly(_.payload);if(H===void 0)continue;if(H>J.step)break;let D=rU(_.payload);if(D===void 0)continue;G.push(D)}return jy(Nz(J),G)}function jy($,U){let J=new Map,G=new Map,X=new Map;for(let Q of U)Dy({accumulatedResults:J,workerReplaySignatures:G,workerReplayFailures:X},Q);return nU(J,$.accumulatedResults),nU(G,$.workerReplaySignatures??[]),nU(X,$.workerReplayFailures??[]),{...$,accumulatedResults:Aj(J),...A9("workerReplaySignatures",Aj(G)),...A9("workerReplayFailures",Aj(X))}}function Rj($,U){if(U===void 0)return $;return{...$,[G8]:U}}function Kz($,U){return U===void 0?{step:$}:{step:$,[G8]:U}}function C9($,U){if($===void 0)return U;if(U===void 0)return $;return Tj({accumulatedResults:[...$.accumulatedResults??[],...U.accumulatedResults??[]],workerReplaySignatures:[...$.workerReplaySignatures??[],...U.workerReplaySignatures??[]],workerReplayFailures:[...$.workerReplayFailures??[],...U.workerReplayFailures??[]]})}function rU($){if(!g1($))return;let U=$[G8];if(!g1(U))return;return Oz(U)}function qz($){let{[G8]:U,...J}=$;return J}function Tj($){let U={},J=$.accumulatedResults,G=$.workerReplaySignatures,X=$.workerReplayFailures;if(J!==void 0&&J.length>0)U.accumulatedResults=J;if(G!==void 0&&G.length>0)U.workerReplaySignatures=G;if(X!==void 0&&X.length>0)U.workerReplayFailures=X;return Object.keys(U).length===0?void 0:U}function Hy($,U){if(U===void 0)return $;let J=$;for(let G of[U.accumulatedResults??[],U.workerReplaySignatures??[],U.workerReplayFailures??[]])for(let[X]of G)J=Math.max(J,X);return J}function qj($,U){return $.filter(([J])=>J<U)}function Nj($,U){return $.filter(([J])=>J>=U)}function Oj($,U){return $.filter(([J])=>J>U)}function A9($,U){return U.length===0?{}:{[$]:U}}function Nz($){let U=$,{[G8]:J,...G}=U;return G}function Aj($){return[...$.entries()].toSorted(([U],[J])=>U-J)}function nU($,U){for(let[J,G]of U)$.set(J,G)}function Dy($,U){nU($.accumulatedResults,U.accumulatedResults??[]),nU($.workerReplaySignatures,U.workerReplaySignatures??[]),nU($.workerReplayFailures,U.workerReplayFailures??[])}function Ly($){if(!g1($))return;let U=$.step;return typeof U==="number"&&Number.isSafeInteger(U)&&U>=0?U:void 0}function Oz($){let U=Py($.accumulatedResults),J=Fy($.workerReplaySignatures),G=My($.workerReplayFailures);return Tj({...U===void 0?{}:{accumulatedResults:U},...J===void 0?{}:{workerReplaySignatures:J},...G===void 0?{}:{workerReplayFailures:G}})}async function Vy($,U){let J=await $.get(P.eventWatermark(U));if(J===null)return;let G=A(J);if(!g1(G))return;let X=G.checkpointReplay;return g1(X)?Oz(X):void 0}function Py($){if(!Array.isArray($))return;let U=[];for(let J of $){if(!Array.isArray(J)||J.length!==2||!R9(J[0]))continue;U.push([J[0],J[1]])}return U}function Fy($){if(!Array.isArray($))return;let U=[];for(let J of $){if(!Array.isArray(J)||J.length!==2||!R9(J[0]))continue;if(!zy(J[1]))continue;U.push([J[0],J[1]])}return U}function My($){if(!Array.isArray($))return;let U=[];for(let J of $){if(!Array.isArray(J)||J.length!==2||!R9(J[0]))continue;if(!By(J[1]))continue;U.push([J[0],J[1]])}return U}function g1($){return typeof $==="object"&&$!==null}function R9($){return typeof $==="number"&&Number.isSafeInteger($)&&$>=0}function zy($){if(!g1($))return!1;return $.format===sG&&typeof $.operationType==="string"&&typeof $.stableFieldsDigest==="string"&&R9($.stableFieldsByteLength)}function By($){if(!g1($))return!1;let U=$.failureCategory;return $.status==="failed"&&typeof $.error==="string"&&($.errorName===void 0||typeof $.errorName==="string")&&(U===void 0||U==="application"||U==="cancellation"||U==="resource"||U==="system"||U==="timeout")}function Cz($,U){let J={};if($.workflowVersion!==U.workflowVersion)J.workflowVersion=[$.workflowVersion,U.workflowVersion];let G=$.agentVersion??"0.0.0",X=U.agentVersion??"0.0.0";if(G!==X)J.agentVersion=[G,X];let Q=Wy($.toolVersions??[],U.toolVersions??[]);if(Q.length>0)J.toolVersions=Q;return J}function Rz($){let U=[];if($.workflowVersion){let[J,G]=$.workflowVersion;U.push(` - workflow version: ${J} → ${G}`)}if($.agentVersion){let[J,G]=$.agentVersion;U.push(` - agent version: ${J} → ${G}`)}if($.toolVersions)for(let J of $.toolVersions)switch(J.change){case"added":U.push(` - tool \`${J.tool}\` added (version: ${J.to})`);break;case"removed":U.push(` - tool \`${J.tool}\` removed (was: ${J.from})`);break;case"changed":U.push(` - tool \`${J.tool}\` version: ${J.from} → ${J.to}`);break}if(U.length===0)return"";return`
|
|
42
|
+
`}function mF($){return{serialize(){let U=$?.snapshot()??{};return rg(U)}}}function kF($){let{origin:U}=$,J=[{href:`${U}/.well-known/mcp.json`,type:"application/json"},{href:`${U}/asyncapi.json`,type:"application/asyncapi+json"},{href:`${U}/openapi.json`,type:"application/openapi+json"},{href:`${U}/openrpc.json`,type:"application/json"}].toSorted((G,X)=>G.href<X.href?-1:G.href>X.href?1:0);return{linkset:[{anchor:U,"service-desc":J}]}}var og=new Set(["http","https"]),sg=/^(?:[A-Za-z0-9._-]+(?::\d+)?|\[[0-9A-Fa-f:.]+\](?::\d+)?)$/,ag="[weft] discovery routes (`/.well-known/api-catalog`, `/.well-known/mcp.json`): `publicOrigin` is not configured. Absolute discovery URLs will be derived from the incoming request, which is safe for direct connections but vulnerable to Host-header poisoning when running behind a reverse proxy. Set `serve({ publicOrigin: 'https://api.example.com' })` in production.";function tg(){let $=!1;return{warn(){if($)return;$=!0,console.warn(ag)},reset(){$=!1}}}var eg=tg();function fF(){eg.warn()}function uF($){try{let Q=new URL($.url);if(Q.protocol==="https:"||Q.protocol==="http:")return`${Q.protocol}//${Q.host}`}catch{}let U=$.headers.get("host"),J=$.headers.get("x-forwarded-proto"),G=J!==null&&og.has(J.toLowerCase())?J.toLowerCase():"https",X=U!==null&&sg.test(U)?U:"localhost";return`${G}://${X}`}var u4="0.6.0";function gU($){return JSON.stringify(r_($))}function r_($){if($===null||typeof $!=="object")return $;if(Array.isArray($))return $.map(r_);let U={};for(let[J,G]of Object.entries($).toSorted(([X],[Q])=>X<Q?-1:X>Q?1:0))U[J]=r_(G);return U}function L$($,U){return $<U?-1:$>U?1:0}function K1($){if(u2($))return $;return{}}function f2($){let U=JSON.parse(gU($));return K1(U)}function u2($){return $!==null&&typeof $==="object"&&!Array.isArray($)}function q1($){if(!$.startsWith("/"))throw Error(`externalApiPath requires a leading slash, received: ${$}`);if($==="/api"||$.startsWith("/api/"))throw Error(`externalApiPath received an already-prefixed path: ${$}`);return`/api${$}`}var oG=[{method:"GET",path:"/v1/health",handler:"healthCheck",paramNames:[],summary:"Health check",tags:["System"],responses:[{status:200,description:"Service health status",content:[{mediaType:"application/json",schema:"object"},{mediaType:"application/msgpack",schema:"object"}]}],access:"public"},{method:"GET",path:"/v1/metrics",handler:"getMetrics",paramNames:[],summary:"Prometheus metrics export",tags:["Observability"],responses:[{status:200,description:"Prometheus metrics exposition",content:[{mediaType:"text/plain",schema:"string"}]},{status:503,description:"Metrics exporter failure",content:[{mediaType:"application/json",schema:"object"}]}],access:"public"},{method:"GET",path:"/.well-known/api-catalog",handler:"apiCatalog",paramNames:[],summary:"RFC 9264 API catalog linkset",tags:["System"],responses:[{status:200,description:"RFC 9264 API catalog linkset",content:[{mediaType:"application/linkset+json",schema:"object"}]},{status:421,description:"Request host rejected by trustedHosts",content:[{mediaType:"application/json",schema:"object"}]},{status:503,description:"API catalog origin is not configured",content:[{mediaType:"application/json",schema:"object"}]}],access:"public"},{method:"GET",path:"/.well-known/mcp.json",handler:"mcpDiscovery",paramNames:[],summary:"MCP discovery document",tags:["System"],responses:[{status:200,description:"MCP transport discovery document",content:[{mediaType:"application/json",schema:"object"}]},{status:421,description:"Request host rejected by trustedHosts",content:[{mediaType:"application/json",schema:"object"}]},{status:503,description:"MCP discovery origin is not configured",content:[{mediaType:"application/json",schema:"object"}]}],access:"public"},{method:"GET",path:"/openapi.json",handler:"openApiDocument",paramNames:[],summary:"OpenAPI 3.1 specification",tags:["System"],responses:[{status:200,description:"OpenAPI 3.1 specification",content:[{mediaType:"application/json",schema:"object"}]}],access:"public"},{method:"GET",path:"/openrpc.json",handler:"openRpcDocument",paramNames:[],summary:"OpenRPC 1.3.2 specification",tags:["System"],responses:[{status:200,description:"OpenRPC 1.3.2 specification",content:[{mediaType:"application/json",schema:"object"}]}],access:"public"},{method:"GET",path:"/asyncapi.json",handler:"asyncApiDocument",paramNames:[],summary:"AsyncAPI 3.0 specification",tags:["System"],responses:[{status:200,description:"AsyncAPI 3.0 specification",content:[{mediaType:"application/json",schema:"object"}]}],access:"public"}];function w2($){return $.replace(/:([^/]+)/g,"{$1}")}function $I($){return $.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function wF($){let U=$.split("/").map((J)=>{if(J===":step")return"(\\d+)";if(J.startsWith(":"))return"([^/]+)";return $I(J)}).join("/");return new RegExp(`^${U}$`)}var c2="2.0",UI="weft.events.deliver",JI="weft.events.terminated",GI="weft.workflows.events",XI="weft.workflows.subscribe",QI="weft.workflows.unsubscribe",o_={oneOf:[{type:"string"},{type:"number"},{type:"null"}]},ZI={enum:["client-unsubscribed","server-closed","validation-failed"],type:"string"};function pF($){let U=s_($);return{address:q1("/jsonrpc"),bindings:{ws:{method:"GET"}},description:`JSON-RPC WebSocket subscription channel for ${$.name}.`,messages:oF(U),title:$.summary,"x-weft-operation-name":$.name,"x-weft-transport":"json-rpc-websocket"}}function dF($,U){let J=a_($);return{address:U!==void 0?q1(U):`/x-weft-unbound/${$.name.replaceAll(".","/")}`,description:`Server-Sent Events stream channel for ${$.name}. Responses use text/event-stream; charset=utf-8.`,messages:oF(J),title:$.summary,"x-weft-operation-name":$.name,"x-weft-transport":"server-sent-events"}}function lF($,U){let J=s_($),G=U($.inputSchema),X=U($.outputSchema,"output"),Q=sF($,U);return{[J.subscribeRequest]:{name:J.subscribeRequest,contentType:"application/json",payload:cF(YI($),G),summary:`Subscribe to ${$.name}.`},[J.subscribeAck]:{name:J.subscribeAck,contentType:"application/json",payload:_I(X),summary:`Subscription acknowledgement for ${$.name}.`},[J.eventDeliver]:{name:J.eventDeliver,contentType:"application/json",payload:jI(Q),summary:`Event delivery notification for ${$.name}.`},[J.unsubscribeRequest]:{name:J.unsubscribeRequest,contentType:"application/json",payload:cF(QI,{additionalProperties:!1,properties:{subscriptionId:{type:"string"}},required:["subscriptionId"],type:"object"}),summary:`Unsubscribe from ${$.name}.`},[J.terminated]:{name:J.terminated,contentType:"application/json",payload:HI(),summary:`Subscription termination notification for ${$.name}.`},[J.errorFrame]:{name:J.errorFrame,contentType:"application/json",payload:DI(),summary:`JSON-RPC error response for ${$.name}.`}}}function iF($,U){let J=a_($),G=sF($,U);return{[J.tokenEvent]:{name:J.tokenEvent,contentType:"text/event-stream",payload:{type:"string"},summary:`SSE token event for ${$.name}. The data: line carries the token text.`,bindings:{http:{event:"token"}},"x-weft-sse-frame":"event: token\\nid: <sequence>\\ndata: <token-text>\\n\\n","x-weft-event-schema":G},[J.doneEvent]:{name:J.doneEvent,contentType:"text/event-stream",payload:{additionalProperties:!1,properties:{},type:"object"},summary:`SSE completion event for ${$.name}.`,bindings:{http:{event:"done"}},"x-weft-sse-frame":"event: done\\n\\n"},[J.errorEvent]:{name:J.errorEvent,contentType:"text/event-stream",payload:{properties:{code:{type:"string"},data:{},message:{type:"string"}},required:["message"],type:"object"},summary:`SSE error event for ${$.name}.`,bindings:{http:{event:"error"}},"x-weft-sse-frame":"event: error\\ndata: <JSON Error>\\n\\n"}}}function nF($,U,J){let G=J==="subscription"?Object.values(s_($)):Object.values(a_($));return{action:"receive",channel:{$ref:`#/channels/${LI(U)}`},messages:G.map((X)=>({$ref:`#/components/messages/${X}`})),operationId:$.name.replaceAll(".","_"),summary:$.summary,tags:[...$.tags].toSorted().map((X)=>({name:X}))}}function rF($){return $.name.replaceAll(".","_")}function YI($){return $.name===GI?XI:$.name}function s_($){let U=rF($);return{subscribeRequest:`${U}_subscribeRequest`,subscribeAck:`${U}_subscribeAck`,eventDeliver:`${U}_eventDeliver`,unsubscribeRequest:`${U}_unsubscribeRequest`,terminated:`${U}_terminated`,errorFrame:`${U}_errorFrame`}}function a_($){let U=rF($);return{tokenEvent:`${U}_tokenEvent`,doneEvent:`${U}_doneEvent`,errorEvent:`${U}_errorEvent`}}function oF($){let U={};for(let[J,G]of Object.entries($).toSorted(([X],[Q])=>L$(X,Q)))U[J]={$ref:`#/components/messages/${G}`};return U}function cF($,U){return{additionalProperties:!1,properties:{id:o_,jsonrpc:{const:c2,type:"string"},method:{const:$,type:"string"},params:U},required:["jsonrpc","id","method","params"],type:"object"}}function _I($){return{additionalProperties:!1,properties:{id:o_,jsonrpc:{const:c2,type:"string"},result:$},required:["jsonrpc","id","result"],type:"object"}}function jI($){return{additionalProperties:!1,properties:{jsonrpc:{const:c2,type:"string"},method:{const:UI,type:"string"},params:{additionalProperties:!1,properties:{envelope:$,subscriptionId:{type:"string"}},required:["subscriptionId","envelope"],type:"object"}},required:["jsonrpc","method","params"],type:"object"}}function HI(){return{additionalProperties:!1,properties:{jsonrpc:{const:c2,type:"string"},method:{const:JI,type:"string"},params:{additionalProperties:!1,properties:{fault:{type:"object"},reason:ZI,subscriptionId:{type:"string"}},required:["subscriptionId","reason"],type:"object"}},required:["jsonrpc","method","params"],type:"object"}}function DI(){return{additionalProperties:!1,properties:{error:{$ref:"#/components/schemas/JsonRpcError"},id:o_,jsonrpc:{const:c2,type:"string"}},required:["jsonrpc","id","error"],type:"object"}}function sF($,U){if($.eventSchema===void 0)return{type:"object"};return U($.eventSchema,"output")}function LI($){return $.replaceAll("~","~0").replaceAll("/","~1")}function w4($){if($.access.kind==="public")return!0;return $.discoverable===!0}function IU($,U){if(U===void 0)return $;let J={...$};if(U.description!==void 0)J.description=U.description;if(U.contact!==void 0)J.contact={...U.contact};if(U.license!==void 0)J.license={...U.license};return J}var VI=/^[A-Za-z_][A-Za-z0-9_-]*$/,t_="must match /^[A-Za-z_][A-Za-z0-9_-]*$/ — start with a letter or underscore, "+"use only letters, digits, underscores, or hyphens, and contain no '.' characters. The remote worker protocol encodes activity names as `${workflowType}.${activityName}` on the wire, so a '.' inside either name would break the qualifier split. If you previously used dotted names like 'payments.charge', rename to 'payments-charge' or 'paymentsCharge' before adopting the workflow-builder API.";function hU($,U){if(typeof $!=="string"||$.length===0)throw Error(`${U} name must be a non-empty string — ${t_}`);if($.includes("."))throw Error(`${U} name "${$}" contains '.', which is reserved for qualified activity names. ${t_}`);if(!VI.test($))throw Error(`${U} name "${$}" is invalid — ${t_}`)}function aF($){let U=typeof $==="function"?{name:$.name,execute:$}:$;if(!U.name)throw Error("activity() requires a named function or an options object with name.");hU(U.name,"activity");let J=(Z,Y)=>U.execute(Z,Y),{name:G,execute:X,...Q}=U;return Object.assign(J,Q),Object.defineProperty(J,"name",{value:G,configurable:!0}),Object.defineProperty(J,"execute",{value:X,enumerable:!0,configurable:!0}),J}var N1=200,p2=256;var sG="weft-worker-operation-signature-v1",yU=2;class aG extends v{found;expected;constructor($,U){super("CheckpointSchemaVersionError",$==="pre-versioned"?`Checkpoint has no schemaVersion field (pre-versioned format); engine expects schemaVersion ${U}. Pre-1.0: in-flight workflows must be drained before upgrade.`:$>U?`Checkpoint schemaVersion ${$} is newer than engine version ${U}. The engine is too old to read this checkpoint.`:`Checkpoint schemaVersion ${$} is older than engine version ${U}. Pre-1.0: in-flight workflows must be drained before upgrade.`);this.found=$;this.expected=U}}var tF=300000,eF=1000;function PI($){let U=MI($);if(U===void 0)return!1;if(typeof U.validate==="function")return!0;return zI(U.jsonSchema)}function c4($,U){if(PI($))return $;throw TypeError(`${U} must be Standard Schema-compatible definition metadata. Pass a Zod, Valibot, ArkType (or any Standard Schema v1) validator, or attach a \`~standard.jsonSchema\` converter directly. Received: ${FI($)}.`)}function FI($){if($===null)return"null";if($===void 0)return"undefined";if(Array.isArray($))return"array";if(typeof $!=="object")return typeof $;let U=Object.keys($);if(U.length===0)return"an empty object";return`an object with keys [${U.slice(0,5).join(", ")}${U.length>5?", …":""}]`}function MI($){if($===null||typeof $!=="object")return;let U=$["~standard"];if(U===null||typeof U!=="object")return;let J=U;if(J.version!==1)return;if(typeof J.vendor!=="string"||J.vendor.length===0)return;return J}function zI($){if($===null||typeof $!=="object")return!1;return typeof $.input==="function"&&typeof $.output==="function"}var tG="history-circuit-breaker";function i$($){return typeof $==="string"?$:$.name}var $M={maxAttempts:3,initialBackoff:1000,backoffMultiplier:2,maxBackoff:30000};function N$($){return typeof $==="string"?$:$.name}function UM($){return e_($,new WeakMap)}function e_($,U){if($===null||typeof $!=="object")return $;let J=$,G=U.get(J);if(G!==void 0)return G;if(Array.isArray($)){let Z=[];U.set(J,Z);for(let Y of $)Z.push(e_(Y,U));return Z}let X=Object.getPrototypeOf($);if(X!==Object.prototype&&X!==null)return $;let Q={};U.set(J,Q);for(let Z of Object.keys($))Q[Z]=e_($[Z],U);return Q}function BI($,U){let J=U;return{...WI(J),...KI($,J),...qI(J)}}function WI($){return{...typeof $.description==="string"?{description:$.description}:{},...Array.isArray($.tags)&&$.tags.every((U)=>typeof U==="string")?{tags:[...$.tags]}:{}}}function KI($,U){return{..."inputSchema"in U?{inputSchema:c4(U.inputSchema,`activity definition "${$}".inputSchema`)}:{},..."outputSchema"in U?{outputSchema:c4(U.outputSchema,`activity definition "${$}".outputSchema`)}:{}}}function qI($){return{...typeof $.queue==="string"?{queue:$.queue}:{},...NI($.retry)?{retry:$.retry}:{},...typeof $.timeout==="string"||typeof $.timeout==="number"?{timeout:$.timeout}:{},...typeof $.idempotent==="boolean"?{idempotent:$.idempotent}:{}}}function NI($){return typeof $==="object"&&$!==null}function JM($){return{name:$.name,queue:$.queue,...$.description===void 0?{}:{description:$.description},...$.tags===void 0?{}:{tags:[...$.tags]},...$.inputSchema===void 0?{}:{inputSchema:$.inputSchema},...$.outputSchema===void 0?{}:{outputSchema:$.outputSchema},...$.retry===void 0?{}:{retry:GM($.retry)},...$.timeout===void 0?{}:{timeout:$.timeout},...$.idempotent===void 0?{}:{idempotent:$.idempotent}}}function GM($){return{...$,...$.nonRetryableErrors===void 0?{}:{nonRetryableErrors:[...$.nonRetryableErrors]}}}function OI($,U,J){let G=J?.inputSchema===void 0?U.inputSchema:c4(J.inputSchema,`activity registration "${$}".inputSchema`),X=J?.outputSchema===void 0?U.outputSchema:c4(J.outputSchema,`activity registration "${$}".outputSchema`);return{...G===void 0?{}:{inputSchema:G},...X===void 0?{}:{outputSchema:X}}}function mU($,U){return $??U}function AI($,U){if(U.description!==void 0)$.description=U.description;if(U.tags!==void 0)$.tags=[...U.tags];if(U.inputSchema!==void 0)$.inputSchema=U.inputSchema;if(U.outputSchema!==void 0)$.outputSchema=U.outputSchema;if(U.retry!==void 0)$.retry=GM(U.retry);if(U.timeout!==void 0)$.timeout=U.timeout;if(U.idempotent!==void 0)$.idempotent=U.idempotent}function d2($,U,J){if(J!==void 0)$[U]=J}function CI($,U,J){let G={...OI($,U,J)};return d2(G,"description",mU(J?.description,U.description)),d2(G,"tags",mU(J?.tags,U.tags)),d2(G,"retry",mU(J?.retry,U.retry)),d2(G,"timeout",mU(J?.timeout,U.timeout)),d2(G,"idempotent",mU(J?.idempotent,U.idempotent)),G}function RI($,U,J){let G={name:$,queue:mU(J?.queue,U.queue)??"default"};return AI(G,CI($,U,J)),G}class l2{#$;#U;#J;constructor(){this.#$=new WeakMap,this.#U=new Map,this.#J=new Map}#G($,U){let J;for(let[G,X]of this.#J)if(G!==U&&X===$)J=this.#U.get(G);if(J===void 0)this.#$.delete($);else this.#$.set($,J)}register($,U,J){hU($,"activity");let G=this.#J.get($);if(G&&G!==U)this.#G(G,$);let X=BI($,U),Q=RI($,X,J);this.#$.set(U,Q),this.#U.set($,Q),this.#J.set($,U)}has($){return this.#J.has($)}resolve($){let U=this.#J.get($);if(!U)return;return U}getMetadata($){let U=this.#$.get($);return U===void 0?void 0:JM(U)}getMetadataByName($){return this.getDefinition($)}getDefinition($){let U=this.#U.get($);return U===void 0?void 0:JM(U)}listDefinitions(){return[...this.#J.keys()].flatMap(($)=>{let U=this.getDefinition($);return U===void 0?[]:[U]})}unregister($){let U=this.#J.get($);if(this.#J.delete($),this.#U.delete($),U)this.#G(U)}*names(){yield*this.#J.keys()}}class O1 extends v{foundVersion;expectedVersion;constructor($,U){super("PersistedDataIncompatibleError",`Persisted workflow data was written by an older Weft version (schema ${$===null?"pre-versioned":`v${$}`}, current v${U}) and is incompatible with the workflow-builder refactor. Delete the database or start fresh.`);this.foundVersion=$,this.expectedVersion=U}}var A1=1,$j="weft:schema-version";class O$ extends v{workflowId;constructor($){super("WorkflowAlreadyExistsError",`Workflow with id "${$}" already exists`);this.workflowId=$}}class eG extends v{workflowId;constructor($){super("WorkflowTeardownPendingError",`Cannot restart workflow "${$}" under the same id: its prior run is tearing down a resource (finalizer in progress). Retry after the teardown completes.`);this.workflowId=$}}class p4 extends v{constructor(){super("BulkDeleteRequiresTerminalWorkflowsError","Bulk delete matches non-terminal workflows")}}class w$ extends v{constructor(){super("BulkOperationConfirmationError","Bulk confirmation token does not match the current dry-run scope")}}var XM=20,TI=10;function EI($){let U=$.slice(0,TI),J=$.length-U.length;return J>0?`${U.join(", ")} (+${J} more)`:U.join(", ")}class kU extends v{registeredTypes;missingTypes;missingWorkflowSamples;missingWorkflowCount;samplesTruncated;constructor($){let U=$.missingWorkflows.length,J=[...new Set($.missingWorkflows.map((Q)=>Q.type))].toSorted(),G=[...$.registeredTypes].toSorted(),X=EI(J);super("WorkflowTypeNotRegisteredForRecoveryError",`Cannot recover ${U} running workflow(s): workflow type(s) not registered: ${X}. Register the missing workflow types before calling \`recoverAll()\`, or pass `+"`{ acknowledgeUnknownWorkflowTypes: true }` (dangerous — see migration docs).");this.registeredTypes=G,this.missingTypes=J,this.missingWorkflowSamples=$.missingWorkflows.slice(0,XM).map((Q)=>({...Q})),this.missingWorkflowCount=U,this.samplesTruncated=U>XM}}class fU extends v{definitionKind;expectedName;actualName;constructor($,U,J){super("EngineCreateNameMismatchError",`Engine.create() ${$} definition key "${U}" does not match definition name "${J}"`);this.definitionKind=$,this.expectedName=U,this.actualName=J}}class c6 extends v{constructor(){super("EngineDisposedError","Engine was disposed before the workflow completed")}}class B4 extends v{workflowId;constructor($){super("WorkflowNotFoundError",`Workflow "${$}" not found`);this.workflowId=$}}class t$ extends v{workflowType;constructor($){super("WorkflowNotRegisteredError",`No workflow registered with name "${$}"`);this.workflowType=$}}class $9 extends v{workflowType;limit;partitionKey;constructor($){super("WorkflowConcurrencyLimitExceededError",`Workflow "${$.workflowType}" concurrency limit ${$.limit} reached for partition key "${$.partitionKey}"`);this.workflowType=$.workflowType,this.limit=$.limit,this.partitionKey=$.partitionKey}}class uU extends v{constructor($){super("WorkflowSuspendNotSupportedError",$)}}class U9 extends v{workflowType;activityName;constructor($,U){super("ActivityResolutionError",`No activity registered with name "${U}" for workflow type "${$}". Register the activity via \`workflow({ name }).activities({ ... })\` on the workflow that runs it, or via \`engine.register(activityDefinition)\` to make it available to every workflow on that engine instance.`);this.workflowType=$,this.activityName=U}}class wU extends v{workflowId;status;constructor($,U){super("StartOrSignalConflictError",`Workflow "${$}" is already in terminal state "${U}" and cannot accept a startOrSignal: a terminal run cannot be signalled and is not replaced. Use a different id or idempotency key to start a new run.`);this.workflowId=$,this.status=U}}class F6 extends v{workflowId;constructor($){super("IdempotencyKeyPurgedError",`The idempotency key maps to workflow "${$}", which no longer exists (it was purged or deleted). Use a different idempotency key to start a new run.`);this.workflowId=$}}var QM=["http-rest","jsonRpcHttp","jsonRpcWebSocket","jsonRpcStdio"],C1=new Set(["__proto__","prototype","constructor"]);function ZM($){return $==="http-rest"?"http":"jsonRpc"}function Uj($){switch($){case"http-rest":return"http";case"jsonRpcHttp":return"jsonRpcHttp";case"jsonRpcWebSocket":return"jsonRpcWebSocket";case"jsonRpcStdio":return"jsonRpcStdio"}}function YM($){if(!($ instanceof j.ZodObject))throw Error("extractTopLevelObjectKeys called with a non-object schema — the operation registry should have rejected this at construction");return new Set(Object.keys($.shape).filter((U)=>!C1.has(U)))}function _M($,U){let J=Object.create(null);for(let G of Object.keys($)){if(C1.has(G))continue;if(U.has(G))J[G]=$[G]}return J}function jM($){return $.map((U)=>({path:U.path.map((J)=>typeof J==="string"||typeof J==="number"?J:String(J)),message:U.message,code:U.code}))}var xI=new Set(["Unauthorized","Forbidden","InvalidParams","EngineFailure"]);function HM($,U){if(II($)){try{bI(U,$.code)}catch(J){if(SI(J))return{code:"EngineFailure",message:J.message,data:{}};throw J}return $}if($ instanceof O$)return{code:"Conflict",message:"conflict",data:{reason:"resource already exists"}};if($ instanceof t$)return{code:"InvalidParams",message:$.message,data:{issues:[]}};if($ instanceof B4)return{code:"NotFound",message:"not found",data:{resource:"workflow"}};if($ instanceof Error)return vI($);return{code:"EngineFailure",message:"internal error",data:{}}}class Jj extends v{operationName;faultCode;constructor($,U){super("UndeclaredFaultError",`[weft] Operation "${$}" raised undeclared fault "${U}". Add it to the operation's \`producibleFaults\` array or migrate the throw to \`raiseFault(operation, fault)\`.`);this.operationName=$,this.faultCode=U}}function SI($){return $ instanceof Jj}function bI($,U){if($===void 0)return;if(xI.has(U))return;let J=$.producibleFaults;if(J!==void 0&&J.includes(U))return;if(Bun.env.WEFT_STRICT_FAULTS==="1"||Bun.env.NODE_ENV!=="production")throw new Jj($.name,U);console.warn(`[weft] Operation "${$.name}" raised undeclared fault "${U}". Add it to the operation's \`producibleFaults\` array or migrate the throw to \`raiseFault(operation, fault)\`.`)}function vI($){let U;try{U=$.message}catch{return{code:"EngineFailure",message:"internal error",data:{}}}if(typeof U!=="string")return{code:"EngineFailure",message:"internal error",data:{}};let J=U.toLowerCase();if(J.includes("not found"))return{code:"NotFound",message:"not found",data:{resource:"unknown"}};if(J.includes("already exists"))return{code:"Conflict",message:"conflict",data:{reason:"resource already exists"}};if(J.includes("timeout")||J.includes("timed out"))return{code:"Timeout",message:"operation timed out",data:{}};return{code:"EngineFailure",message:"internal error",data:{}}}var gI={Unauthorized:!0,Forbidden:!0,NotFound:!0,Conflict:!0,Unprocessable:!0,Timeout:!0,PayloadTooLarge:!0,NotImplemented:!0,UnsupportedTransport:!0,SubscriptionOverflow:!0,InvalidParams:!0,MethodNotFound:!0,EngineFailure:!0};function II($){if(typeof $!=="object"||$===null)return!1;let U,J,G;try{U=$.code,J=$.message,G=$.data}catch{return!1}return typeof U==="string"&&typeof J==="string"&&typeof G==="object"&&G!==null&&!Array.isArray(G)&&Object.hasOwn(gI,U)}function DM($,U){switch($.kind){case"public":return{allowed:!0};case"authenticated":if(P6(U))return{allowed:!0};return{allowed:!1,classification:"unauthorized",reason:"authentication required"};case"scoped":if(!P6(U))return{allowed:!1,classification:"unauthorized",reason:"authentication required"};return Gj($.scopes,U.scopes);case"scopedAlternatives":if(!P6(U))return{allowed:!1,classification:"unauthorized",reason:"authentication required"};return hI($.alternatives,U.scopes);case"optionalAuth":if(!P6(U))return{allowed:!0};return Gj($.authenticatedScopes,U.scopes);default:return LM($)}}function LM($){throw Error(`authorization received a discriminated value with unknown kind: ${String($.kind)}`)}function Gj($,U){if(!Array.isArray($.scopes))throw Error(`authorization: ${$.kind} ScopeRequirement.scopes is not an array at runtime`);switch($.kind){case"anyOf":{if($.scopes.some((G)=>U.has(G)))return{allowed:!0};return{allowed:!1,classification:"forbidden",reason:`requires any of: ${$.scopes.join(", ")}`}}case"allOf":{if($.scopes.length===0)throw Error("authorization: allOf ScopeRequirement has an empty scopes array (the non-empty tuple invariant was violated at runtime)");let J=$.scopes.filter((G)=>!U.has(G));if(J.length===0)return{allowed:!0};return{allowed:!1,classification:"forbidden",reason:`missing required scopes: ${J.join(", ")}`}}default:return LM($)}}function hI($,U){if(!Array.isArray($))throw Error("authorization: scopedAlternatives.alternatives is not an array at runtime");if($.length===0)throw Error("authorization: scopedAlternatives has an empty alternatives array (the non-empty tuple invariant was violated at runtime)");let J=[];for(let G of $){let X=Gj(G,U);if(X.allowed)return{allowed:!0};J.push(X.reason)}return{allowed:!1,classification:"forbidden",reason:`requires one of: ${J.join("; ")}`}}function VM($,U){if($.transports[Uj(U.transport)])return null;let J=QM.filter((G)=>$.transports[Uj(G)]);return R1({code:"UnsupportedTransport",message:`operation "${$.name}" does not support transport "${U.transport}"`,data:{transport:U.transport,supported:J}})}function PM($,U){let J=DM($.access,U.principal);if(J.allowed)return null;if(J.classification==="unauthorized")return R1({code:"Unauthorized",message:J.reason,data:{reason:J.reason}});return R1({code:"Forbidden",message:J.reason,data:{reason:J.reason}})}async function FM($,U,J){if($.authorize===void 0)return null;let G;try{G=await $.authorize({input:U,principal:J.principal,engine:J.engine,transport:J.transport})}catch{return R1({code:"EngineFailure",message:"internal error",data:{}})}if(!wI(G))return R1({code:"EngineFailure",message:"internal error",data:{}});if(!G.allowed){if(G.classification==="unauthorized")return R1({code:"Unauthorized",message:G.reason,data:{reason:G.reason}});return R1({code:"Forbidden",message:G.reason,data:{reason:G.reason}})}return null}function MM($,U,J,G){let X=$.unknownKeyPolicy[J],Q=yI($);if(Q.kind==="failure")return Q;let Z=mI(U,X,Q.keys);if(Z.kind==="failure")return Z;let Y=uI($.inputSchema,Z.input);if(Y.kind==="failure")return Y;M6(G,"parsed");let _=Y.input;if(X!=="passthrough")return M6(G,"unknown-key-policy-applied"),{kind:"ok",input:_};let H=fI(_,Z.passthroughExtras);return M6(G,"unknown-key-policy-applied"),{kind:"ok",input:H}}function M6($,U){if($===void 0)return;$(U)}function yI($){try{return{kind:"ok",keys:YM($.inputSchema)}}catch{return{kind:"failure",fault:{code:"EngineFailure",message:"internal error",data:{}}}}}function mI($,U,J){if(!u2($))return{kind:"ok",input:$,passthroughExtras:[]};let G=$,X=Object.keys(G).filter((Q)=>!J.has(Q));if(X.length===0)return{kind:"ok",input:$,passthroughExtras:[]};if(U==="reject")return{kind:"failure",fault:{code:"InvalidParams",message:"unrecognized top-level keys",data:{issues:[{path:[],message:`unrecognized top-level keys: ${X.join(", ")}`,code:"unrecognized_keys"}]}}};return{kind:"ok",input:_M(G,J),passthroughExtras:kI(G,X,U)}}function kI($,U,J){if(J!=="passthrough")return[];return U.filter((G)=>!C1.has(G)).map((G)=>[G,$[G]])}function fI($,U){let J=Object.create(null);for(let[G,X]of Object.entries($)){if(C1.has(G))continue;J[G]=X}for(let[G,X]of U){if(G in J)continue;J[G]=X}return J}function uI($,U){let J;try{J=$.safeParse(U)}catch{return{kind:"failure",fault:{code:"EngineFailure",message:"internal error",data:{}}}}if(!J.success)return{kind:"failure",fault:{code:"InvalidParams",message:"invalid params",data:{issues:jM(J.error.issues)}}};return{kind:"ok",input:J.data}}function wI($){if(typeof $!=="object"||$===null)return!1;let U=Xj($,"allowed");if(!U.ok)return!1;if(U.value===!0)return!0;if(U.value!==!1)return!1;let J=Xj($,"reason");if(!J.ok||typeof J.value!=="string")return!1;let G=Xj($,"classification");if(!G.ok)return!1;return cI(G.value)}function Xj($,U){try{return{ok:!0,value:$[U]}}catch{return{ok:!1}}}function cI($){return $===void 0||$==="unauthorized"||$==="forbidden"}function R1($){return{ok:!1,fault:$}}function zM($,U){let J=U.registry.get($);if(J===void 0)return T1({code:"MethodNotFound",message:`unknown operation: ${$}`,data:{method:$}});return M6(U.pipelineTrace,"looked-up"),{ok:!0,value:J}}async function BM($,U,J){let G=J.pipelineTrace,X=VM($,J);if(X!==null)return X;M6(G,"transport-checked");let Q=PM($,J);if(Q!==null)return Q;M6(G,"access-checked");let Z=MM($,U,ZM(J.transport),G);if(Z.kind==="failure")return T1(Z.fault);let Y=await FM($,Z.input,J);if(Y!==null)return Y;return M6(G,"authorized"),{ok:!0,value:{input:Z.input}}}function WM($,U){let J;try{J=$.safeParse(U)}catch{return T1({code:"EngineFailure",message:"internal error",data:{}})}if(!J.success)return T1({code:"EngineFailure",message:"internal error",data:{}});return{ok:!0,value:J.data}}function T1($){return{ok:!1,fault:$}}async function Qj($,U,J){let G=zM($,J);if(!G.ok)return G;let X=G.value,Q=X.kind??"unary";if(Q==="subscription"||Q==="stream"&&J.transport!=="http-rest")return T1({code:"Unprocessable",message:`operation "${X.name}" is not unary`,data:{reason:`operation kind is "${Q}"`}});let Z=await BM(X,U,J);if(!Z.ok)return Z;let Y;try{Y=await X.invoke({input:Z.value.input,principal:J.principal,engine:J.engine,transport:J.transport})}catch(H){return T1(HM(H,X))}M6(J.pipelineTrace,"invoked");let _=WM(X.outputSchema,Y);if(_.ok)M6(J.pipelineTrace,"output-validated");return _}var cU=new Set(["Unauthorized","Forbidden","InvalidParams","EngineFailure"]);function z6($,U){let J=new Set([...cU,...$.producibleFaults??[]]),G=Bun.env.WEFT_STRICT_FAULTS==="1"||Bun.env.NODE_ENV!=="production";if(!J.has(U.code)){if(G)throw Error(`Operation "${$.name}" raised undeclared fault "${U.code}". Add "${U.code}" to producibleFaults or remove the fault.`);console.error(`[weft] Operation "${$.name}" raised undeclared fault "${U.code}". This will become a hard error in a future version.`)}throw U}var KM=/^weft\.[a-z][a-z0-9]*(?:\.[a-z][a-z0-9]*)+$/;function i2($){if(!KM.test($))throw Error(`invalid operation name "${$}" — must match weft.<segment>(.<segment>)+ where each segment starts with a lowercase ASCII letter and may contain lowercase ASCII letters or digits (e.g., "weft.workflows.start", "weft.workflows.list2")`)}function qM($){if($.kind==="scoped")return Object.freeze({kind:"scoped",scopes:Zj($.scopes)});if($.kind==="scopedAlternatives")return Object.freeze({kind:"scopedAlternatives",alternatives:Object.freeze($.alternatives.map(Zj))});if($.kind==="optionalAuth")return Object.freeze({kind:"optionalAuth",authenticatedScopes:Zj($.authenticatedScopes)});return Object.freeze({...$})}function Zj($){let U=Object.freeze([...$.scopes]);return Object.freeze({kind:$.kind,scopes:U})}function pI($){if($===void 0)return;return Object.freeze({discriminator:$.discriminator,...$.defaultValue===void 0?{}:{defaultValue:$.defaultValue},variants:Object.freeze($.variants.map((U)=>Object.freeze({value:U.value,access:qM(U.access)})))})}function dI($){if(!($.inputSchema instanceof j.ZodObject))throw Error(`operation "${$.name}" inputSchema must be a z.ZodObject (got ${$.inputSchema.constructor.name}); wrappers like .optional() / transforms hide the top-level shape from the unknown-key policy check`);return $.inputSchema}function lI($){let U=dI($),G=Object.keys(U.shape).filter((X)=>C1.has(X));if(G.length>0)throw Error(`operation "${$.name}" inputSchema declares unsafe top-level keys: ${G.join(", ")}. Names that match a prototype-pollution vector (__proto__, constructor, prototype) are forbidden as schema keys.`)}function iI($){let U=$.kind??"unary";if(U==="unary"){if($.eventSchema!==void 0)throw Error(`operation "${$.name}" has kind: 'unary' (or unset) but declares an eventSchema. eventSchema is reserved for kind: 'stream' or kind: 'subscription'.`);return}if($.eventSchema===void 0)throw Error(`operation "${$.name}" has kind: '${U}' but no eventSchema. Stream and subscription operations must declare an eventSchema so the dispatcher can validate each yielded element.`)}function nI($){if(typeof $.destructive!=="boolean")throw Error(`operation "${$.name}" must declare an explicit boolean "destructive" flag (got ${typeof $.destructive}). Every operation has to state whether it irreversibly mutates state — there is no implicit default. Mark cancel/purge/bulk-delete/raw-storage-write style operations true and read-only operations false.`)}function rI($){if(!$.mcpExposable)return;if($.mcpTool===void 0)throw Error(`operation "${$.name}" is mcpExposable but does not declare mcpTool.workflowType metadata`)}function oI($){return Object.freeze({...$,tags:Object.freeze([...$.tags]),...$.producibleFaults===void 0?{}:{producibleFaults:Object.freeze([...$.producibleFaults])},access:qM($.access),...$.parameterizedAccess===void 0?{}:{parameterizedAccess:pI($.parameterizedAccess)},...$.mcpTool===void 0?{}:{mcpTool:Object.freeze({workflowType:$.mcpTool.workflowType})},transports:Object.freeze({...$.transports}),unknownKeyPolicy:Object.freeze({...$.unknownKeyPolicy})})}function Yj($){let U=new Map;for(let G of $){if(U.has(G.name))throw Error(`duplicate operation name in registry: ${G.name}`);i2(G.name),lI(G),iI(G),nI(G),rI(G),U.set(G.name,oI(G))}let J=Object.freeze([...U.values()]);return{get(G){return U.get(G)},list(){return J}}}var sI=/^(\d+(?:\.\d+)?)\s*(ms|milliseconds?|s|seconds?|m|minutes?|h|hours?|d|days?)$/i,aI={ms:1,millisecond:1,milliseconds:1,s:1000,second:1000,seconds:1000,m:60000,minute:60000,minutes:60000,h:3600000,hour:3600000,hours:3600000,d:86400000,day:86400000,days:86400000};function NM($,U){if(!Number.isFinite($)||$<0)throw RangeError(`Duration must resolve to a finite, non-negative number of milliseconds, got: ${String(U)}`)}function A$($,U){if(!Number.isFinite($)||$<0)throw RangeError(`${U} must resolve to a finite, non-negative millisecond timestamp, got: ${String($)}`);let J=Math.ceil($);if(!Number.isSafeInteger(J))throw RangeError(`${U} must resolve to a safe integer millisecond timestamp, got: ${String($)}`);return J}function Q$($){if(typeof $==="number")return NM($,$),$;let U=sI.exec($.trim());if(!U)throw Error(`Invalid duration string: "${$}". Expected a number or a string like "30s", "5 minutes", "1 hour", etc.`);let J=Number.parseFloat(U[1]),G=U[2].toLowerCase(),X=aI[G];if(X===void 0)throw Error(`Unknown duration unit: "${G}"`);let Q=J*X;return NM(Q,$),Q}function J9($,U){let J=Q$(U.initialBackoff),G=Q$(U.maxBackoff),X=J*Math.pow(U.backoffMultiplier,$-1);return Math.min(X,G)}function J$($,U,J){if(!$.capabilities()[U])throw Error(`Feature "${J}" requires storage capability "${U}", but this storage backend does not provide it.`)}var OM="default";async function AM($,U){return await $.get(U)!==null}async function*n2($,U,J){for await(let[G]of $.scan(U,J))yield G}async function CM($,U){let J=0;for await(let G of n2($,U))J++;return J}async function RM($,U){let J=[];for await(let G of n2($,U))J.push({type:"delete",key:G});if(J.length===0)return 0;return await $.batch(J),J.length}async function TM($,U,J){let G=[];for await(let X of n2($,U,J))G.push({type:"delete",key:X});if(G.length===0)return 0;return await $.batch(G),G.length}var E1=1e4,xM=1e4;class SM extends Error{code="StorageBatchOperationLimitExceededError";cap=E1;count;target;constructor($,U){super(`${$} count ${U} exceeds MAX_BATCH_OPERATIONS (${E1}).`);this.name="StorageBatchOperationLimitExceededError",this.target=$,this.count=U}}function W6($,U){if(U>E1)throw new SM($,U)}function c$($){return $.length>0?$.slice(0,-1)+String.fromCharCode($.charCodeAt($.length-1)+1):"ÿ"}function G9($,U={}){if(U.gt!==void 0&&$<=U.gt)return!1;if(U.gte!==void 0&&$<U.gte)return!1;if(U.lt!==void 0&&$>=U.lt)return!1;if(U.lte!==void 0&&$>U.lte)return!1;return!0}function X9($,U){if($===null||U===null)return $===U;if($.byteLength!==U.byteLength)return!1;for(let J=0;J<$.byteLength;J++)if($[J]!==U[J])return!1;return!0}async function v$($,U){if($.has)return $.has(U);return AM($,U)}function Q9($,U,J){if($.keys)return $.keys(U,J);return n2($,U,J)}async function bM($,U){if($.count)return $.count(U);return CM($,U)}async function vM($,U){if($.deletePrefix)return $.deletePrefix(U);return RM($,U)}async function gM($,U){W6("batch operations",U.length),await $.batch(U)}async function e($,U,J){if(W6("conditionalBatch conditions",U.length),W6("conditionalBatch operations",J.length),J$($,"conditionalBatch","storageConditionalBatch"),!$.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return $.conditionalBatch(U,J)}function N($){return encodeURIComponent($)}function IM($){return decodeURIComponent($)}function p6($){try{return decodeURIComponent($)}catch{return null}}var B6=($)=>String($).padStart(16,"0"),tI="0",eI="1",EM=($,U,J,G)=>`sig:${N($)}:${N(U)}:${G}:${N(J)}`,P={workflow:($)=>`wf:${N($)}`,checkpoint:($)=>`wf:${N($)}:ckpt`,checkpointHistory:($,U)=>`wf:${N($)}:ckpt:${String(U).padStart(10,"0")}`,timelinePrefix:($)=>`wf:${N($)}:timeline:`,timeline:($,U)=>`wf:${N($)}:timeline:${String(U).padStart(10,"0")}`,schedule:($)=>`schedule:${N($)}`,scheduleTick:($,U)=>`schedule-due:${String($).padStart(16,"0")}:${N(U)}`,scheduleRun:($)=>`schedule-run:${N($)}`,operation:($,U,J)=>`op:${$}:${B6(U)}:${J}`,operationInflight:($)=>`op:inflight:${$}`,operationQueued:($)=>`op:queued:${$}`,operationResolved:($)=>`op:resolved:${$}`,operationDeadLetterPrefix:()=>"op:dead-letter:",operationDeadLetter:($)=>`op:dead-letter:${$}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:($,U,J)=>`audit:bulk:${B6($)}:${N(U)}:${N(J)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:($,U)=>`op:resolved-by-time:${B6($)}:${N(U)}`,asyncActivity:($,U)=>`async-act:v1:${N($)}:${N(U)}`,activityReconciliationPrefix:($)=>`actrec:v1:${N($)}:`,activityReconciliation:($,U,J)=>`actrec:v1:${N($)}:${N(U)}:${J}`,eventPrefix:($)=>`ev:${N($)}:`,event:($,U)=>`ev:${N($)}:${String(U).padStart(10,"0")}`,eventHead:($)=>`ev:${N($)}:head`,eventWatermark:($)=>`ev:${N($)}:watermark`,fleetEventPrefix:()=>"fleet-event:",fleetEvent:($)=>`fleet-event:${String($).padStart(10,"0")}`,fleetEventTail:()=>"fleet-event-tail",fleetEventByWorkflowPrefix:($)=>`fleet-event-by-workflow:${N($)}:`,fleetEventByWorkflow:($,U)=>`fleet-event-by-workflow:${N($)}:${String(U).padStart(10,"0")}`,signal:($,U,J)=>EM($,U,J,eI),startSignal:($,U,J)=>EM($,U,J,tI),signalSequence:($)=>`sigseq:v1:${N($)}`,signalAcceptedResponsePrefix:($)=>`sigres:v1:${N($)}:`,signalAcceptedResponse:($,U,J)=>`sigres:v1:${N($)}:${N(U)}:${N(J)}`,deadline:($,U)=>`wf-deadline:${B6($)}:${N(U)}`,terminalCleanup:($,U)=>`wf-cleanup:${B6($)}:${N(U)}`,teardownTimer:($,U)=>`wf-teardown:${B6($)}:${N(U)}`,delayedStart:($,U)=>`wf-delayed:${B6($)}:${N(U)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:($,U)=>`wf-terminal:${B6($)}:${N(U)}`,attribute:($)=>`attr:${N($)}`,attributeIndex:($,U,J)=>`idx:${$}:${U}:${N(J)}`,tagIndex:($,U)=>`tag:${N($)}:${N(U)}`,updatePrefix:($)=>`upd:${N($)}:`,update:($,U)=>`upd:${N($)}:${U}`,updateResponse:($)=>`upr:${$}`,updateIdempotency:($,U)=>`upk:${N($)}:${U}`,startIdempotency:($)=>`start-idem:${N($)}`,startIdempotencySignalId:($)=>`start-idem:${$}`,livenessPrefix:()=>"liveness:",liveness:($)=>`liveness:${N($)}`,leasePrefix:()=>"lease:",leaseEpoch:()=>"lease:epoch",leaseHolder:()=>"lease:holder",budget:($,U,J)=>`budget:${$}:${U}:${J}`,review:($,U)=>`review:${N($)}:${U}`,workflowHeaders:($)=>`wf-headers:${N($)}`,childCancellationPrefix:($)=>`child-cancel:${N($)}:`,childCancellation:($,U)=>`child-cancel:${N($)}:${N(U)}`,terminalCleanupNeeded:($)=>`wf-cleanup-needed:${N($)}`,workflowConcurrency:($,U)=>`wf-concurrency:${N($)}:${N(U)}`,workflowConcurrencyHolder:($)=>`wf-concurrency-holder:${N($)}`,workflowHasServices:($)=>`wf-has-services:${N($)}`,finalizerState:($)=>`wf-finalizer-state:${N($)}`,teardownOwed:($)=>`wf-teardown-needed:${N($)}`,teardownDeadLetter:($)=>`wf-teardown-deadletter:${N($)}`,offload:($,U)=>`offload:${N($)}:${U}`,archive:($,U)=>`archive:${N($)}:${U}`,stateExecution:($,U)=>`state:execution:${N($)}:${N(U)}`,stateWorkflow:($,U)=>`state:workflow-scope:${OM}:${N($)}:${N(U)}`,streamChunkPrefix:($,U)=>`blob:${N($)}:${U}:chunk:`,streamChunk:($,U,J)=>`blob:${N($)}:${U}:chunk:${String(J).padStart(10,"0")}`,streamTail:($,U)=>`blob:${N($)}:${U}:tail`,streamMetadata:($,U)=>`blob:${N($)}:${U}:meta`,budgetCharged:($)=>`budget-charged:${$}`,toolEffect:($,U,J)=>`tool-effect:${N($)}:${U}:${J}`,workflowVisibilityStatus:($,U)=>`wf-idx-status:${N($)}:${N(U)}`,workflowVisibilityType:($,U)=>`wf-idx-type:${N($)}:${N(U)}`,workflowVisibilityCreated:($,U)=>`wf-idx-created:${B6($)}:${N(U)}`,workflowVisibilityUpdated:($,U)=>`wf-idx-updated:${B6($)}:${N(U)}`,workflowVisibilityDeadline:($,U)=>`wf-idx-deadline:${B6($)}:${N(U)}`,workflowVisibilityManifest:($)=>`wf-idx-manifest:${N($)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"};function $h($){return $==="sleep"||$==="visibility-timeout"||$==="execution-deadline"||$==="delayed-start"||$==="schedule"||$==="terminal-cleanup"||$==="teardown"||$==="wait-condition"}function Uh($){return typeof $==="object"&&$!==null}function hM($,U){return typeof $[U]==="string"}function Jh($,U){let J=$[U];return typeof J==="number"&&Number.isFinite(J)}function _j($){return Uh($)&&hM($,"id")&&hM($,"workflowId")&&Jh($,"fireAt")&&$h($.kind)}function _$($){let U={...$,fireAt:A$($.fireAt,"Timer fireAt")};if(U.kind==="terminal-cleanup")return[{type:"put",key:P.terminalCleanup(U.fireAt,U.id),value:W(U.workflowId)}];if(U.kind==="teardown")return[{type:"put",key:P.teardownTimer(U.fireAt,U.id),value:W(U.workflowId)}];let J=U.kind==="delayed-start"?P.delayedStart(U.fireAt,U.workflowId):U.kind==="schedule"?P.scheduleTick(U.fireAt,U.workflowId):P.deadline(U.fireAt,U.id),G=[{type:"put",key:J,value:W(U)}];return G.push({type:"put",key:`timer-idx:${U.id}`,value:W(J)}),G}function Gh($,U){if($.entry.fireAt!==U.entry.fireAt)return $.entry.fireAt-U.entry.fireAt;return $.key.localeCompare(U.key)}async function Z9($,U){while(!0){let J=await $.next();if(J.done)return null;let[G,X]=J.value,Q=A(X);if(!_j(Q)){console.error(`Corrupted timer entry at ${G}: removing`),await U.delete(G);continue}return{key:G,entry:Q}}}async function yM($,U,J){let{diagnosticName:G,prefix:X}=J==="terminal-cleanup"?{diagnosticName:"terminal cleanup",prefix:"wf-cleanup:"}:{diagnosticName:"teardown timer",prefix:"wf-teardown:"};while(!0){let Q=await $.next();if(Q.done)return null;let[Z,Y]=Q.value,_=Z.indexOf(":",X.length),H=_===-1?Number.NaN:Number(Z.slice(X.length,_)),D=_===-1?null:p6(Z.slice(_+1)),L=A(Y);if(!Number.isSafeInteger(H)||H<0||D===null||typeof L!=="string"){console.error(`Corrupted ${G} entry at ${Z}: removing`),await U.delete(Z);continue}return{key:Z,entry:{id:D,workflowId:L,fireAt:H,kind:J}}}}async function mM($,U){return yM($,U,"terminal-cleanup")}async function kM($,U){return yM($,U,"teardown")}async function Y9($,U){$.next=await $.readNext($.iterator,U)}function fM($){let U;for(let J of $){if(J.next===null)continue;if(U===void 0||Gh(J.next,U.next)<0)U=J}return U}function uM($){return $.kind!=="schedule"&&$.kind!=="terminal-cleanup"&&$.kind!=="teardown"}var r2=1000;class _9{#$;#U;#J;#G;#X;#Q=null;#Z=!1;constructor($){this.#$=$.storage,this.#U=$.onTimerFired,this.#J=$.pollIntervalMs??1000,this.#G=$.getNow??Date.now,this.#X=$.commitTimerCleanup??((U)=>this.#$.batch(U))}start(){if(this.#Q!==null)return;this.#Z=!1,this.#Q=setInterval(()=>{this.tick()},this.#J)}stop(){if(this.#Z=!0,this.#Q!==null)clearInterval(this.#Q),this.#Q=null}async schedule($){await this.#$.batch(_$($))}async cancel($,U){let J=`timer-idx:${$}`,G=await this.#$.get(J);if(G===null)return;let X=A(G);if(typeof X!=="string"){console.error(`Corrupted timer index for ${$}: expected string, got ${typeof X}`),await this.#$.delete(J);return}let Q=X;await this.#$.batch([{type:"delete",key:Q},{type:"delete",key:J}])}async tick($){if(this.#Z)return;await this.#Y($,{respectStopped:!0})}async flush($){await this.#Y($,{respectStopped:!1}),this.stop()}async#Y($,{respectStopped:U}){let J=$??this.#G(),G=this.#V(this.#_(J)),X=[];for(let Q of G)await Y9(Q,this.#$);while(this.#L(G)){let Q=fM(G),Z=Q?.next;if(!Z||!Q)break;if(U&&this.#Z)break;if(await this.#H(Z,X)==="retry"){await Y9(Q,this.#$);continue}await Y9(Q,this.#$)}await this.#D(X)}#_($){return{deadline:this.#$.scan("wf-deadline:",{lt:c$(P.deadline($,"")),limit:r2}),delayedStart:this.#$.scan("wf-delayed:",{lt:c$(P.delayedStart($,"")),limit:r2}),schedule:this.#$.scan("schedule-due:",{lt:c$(P.scheduleTick($,"")),limit:r2}),terminalCleanup:this.#$.scan("wf-cleanup:",{lt:c$(P.terminalCleanup($,"")),limit:r2}),teardown:this.#$.scan("wf-teardown:",{lt:c$(P.teardownTimer($,"")),limit:r2})}}#V($){return[{iterator:$.deadline[Symbol.asyncIterator](),next:null,readNext:Z9},{iterator:$.delayedStart[Symbol.asyncIterator](),next:null,readNext:Z9},{iterator:$.schedule[Symbol.asyncIterator](),next:null,readNext:Z9},{iterator:$.terminalCleanup[Symbol.asyncIterator](),next:null,readNext:mM},{iterator:$.teardown[Symbol.asyncIterator](),next:null,readNext:kM}]}#L($){return $.some((U)=>U.next!==null)}async#H($,U){try{await this.#U($.entry)}catch(J){return console.error(`Timer callback failed for timer ${$.entry.id}:`,J),"retry"}return await this.#j($,U),"processed"}async#j($,U){try{U.push(...await this.#P($))}catch(J){console.error(`Failed to delete timer keys for ${$.entry.id}:`,J)}}async#D($){if($.length===0)return;try{await this.#X($)}catch(U){console.error("Failed to delete timer keys for processed scheduler tick:",U)}}async#P($){let U=[{type:"delete",key:$.key}],J=await this.#F($);if(J)U.push(J);return U}async#F($){let U=`timer-idx:${$.entry.id}`;if($.entry.kind==="schedule")return this.#z($,U);return uM($.entry)?{type:"delete",key:U}:null}async#z($,U){let J=await this.#$.get(U);if(J===null)return null;let G=A(J);return typeof G!=="string"||G===$.key?{type:"delete",key:U}:null}[Symbol.dispose](){this.stop()}}function Xh($){for(let U of $){let J=U.codePointAt(0);if(J===void 0)continue;if(J>=0&&J<=31||J===127)return!0}return!1}function wM($,U="options.id"){if($.length===0)throw Error(`${U} must not be an empty string`);if($.length>128)throw Error(`${U} must be at most 128 characters`);if(Xh($))throw Error(`${U} must not contain control characters`)}var cM=32,pM=128,dM=117,lM=new TextEncoder,Qh="Provide only one of startAt or startAfter";class f extends v{constructor($){super("StartWorkflowValidationError",$)}}var j9=($,U)=>{if($!==void 0&&U!==void 0)throw new f(Qh)},W4=($,U)=>{if(typeof $!=="string")throw new f(`${U} must be a string`);try{return wM($,U),$}catch(J){let G=J instanceof Error?J.message:String(J);throw new f(G)}},iM=($,U)=>{if(typeof $!=="string")throw new f(`${U} must be a string`);return H9($,U)},H9=($,U)=>{if($.length===0)throw new f(`${U} must not be empty`);if(lM.encode($).byteLength>dM)throw new f(`${U} must be at most ${dM} UTF-8 bytes`);return $};function D9($){let U=$?.onTerminalConflict;if(U===void 0||U==="error")return;if(U!=="start-new")throw new f("options.onTerminalConflict must be 'error' or 'start-new'");if($?.idempotencyKey!==void 0)throw new f("options.onTerminalConflict: 'start-new' is mutually exclusive with options.idempotencyKey: idempotency is a permanent at-most-once mapping and cannot restart a terminal run");if($?.id===void 0)throw new f("options.onTerminalConflict: 'start-new' requires an explicit options.id; a generated id is never a meaningful restart target")}function jj($){if($.id!==void 0&&$.idempotencyKey!==void 0)throw new f("options.id and options.idempotencyKey are mutually exclusive: idempotency assigns its own workflow id and dedups through the idempotency key. Provide one or the other.")}function L9($,U){if($!==void 0&&"onTerminalConflict"in $&&$.onTerminalConflict!==void 0)throw new f(`${U} does not support options.onTerminalConflict; it is available on engine.start only`)}function V9($,U){if(typeof $!=="number"||!Number.isSafeInteger($)||$<0)throw new f(`${U} must be a non-negative integer millisecond timestamp`);return $}function o2($,U){try{return Q$($)}catch{throw new f(`${U} must be a finite, non-negative number or a valid duration string`)}}function Hj($,U){if(typeof $!=="number"&&typeof $!=="string")throw new f(`${U} must be a finite, non-negative number or valid duration string`);return o2($,U),$}function Dj($,U){if($.length>cM)throw new f(`${U} must contain at most ${cM} tags`)}function j$($,U){if(!Array.isArray($))throw new f(`${U} must be an array of strings`);Dj($,U);let J=[];for(let G of $){if(typeof G!=="string")throw new f(`${U} must contain only strings`);if(G.trim().length===0)throw new f(`${U} must not contain empty tags`);if(lM.encode(G).byteLength>pM)throw new f(`${U} tags must be at most ${pM} UTF-8 bytes each`);J.push(G)}return J}var g$=Object.freeze({Unauthorized:401,Forbidden:403,NotFound:404,Conflict:409,Unprocessable:422,Timeout:408,PayloadTooLarge:413,NotImplemented:501,UnsupportedTransport:501,SubscriptionOverflow:500,InvalidParams:400,MethodNotFound:404,EngineFailure:500});function Zh($){return $.data.issues.map((U)=>{let J=U.path.join(".");return J.length>0?`${J}: ${U.message}`:U.message}).join("; ")}function K6($){if($.code==="InvalidParams")return new Response(JSON.stringify({error:Zh($)}),{status:400,headers:{"Content-Type":"application/json"}});if($.code==="EngineFailure")return new Response(JSON.stringify({error:"Internal server error"}),{status:500,headers:{"Content-Type":"application/json"}});return new Response(JSON.stringify({error:$.message}),{status:g$[$.code],headers:{"Content-Type":"application/json"}})}var nM=Object.freeze({Unauthorized:-32010,Forbidden:-32011,NotFound:-32020,Conflict:-32021,Unprocessable:-32022,Timeout:-32023,PayloadTooLarge:-32024,NotImplemented:-32025,UnsupportedTransport:-32030,SubscriptionOverflow:-32031,EngineFailure:-32099,InvalidParams:-32602,MethodNotFound:-32601});function t($){return typeof $==="object"&&$!==null&&"code"in $&&"message"in $&&"data"in $}function Z$($,U){return new Response(JSON.stringify({error:$}),{status:U,headers:{"Content-Type":"application/json"}})}function C($,U){return{code:"InvalidParams",message:$,data:U===void 0?{issues:[]}:{issues:[],weftCode:U}}}function R($){if($.code==="EngineFailure")return Z$("Internal server error",500);let U=g$[$.code],J=Yh($.data);if(J===void 0)return Z$($.message,U);return new Response(JSON.stringify({error:$.message,weftCode:J}),{status:U,headers:{"Content-Type":"application/json"}})}function Yh($){if(typeof $!=="object"||$===null||!("weftCode"in $))return;return JV($.weftCode)?$.weftCode:void 0}function q($){i2($.name);let U={name:$.name,mcpExposable:$.mcpExposable,...$.mcpTool===void 0?{}:{mcpTool:{workflowType:$.mcpTool.workflowType}},summary:$.summary,...$.description===void 0?{}:{description:$.description},tags:[...$.tags??[]],destructive:$.destructive,inputSchema:$.inputSchema,outputSchema:$.outputSchema,...$.parameterizedAccess===void 0?{}:{parameterizedAccess:_h($.parameterizedAccess)},...$.producibleFaults===void 0?{}:{producibleFaults:[...$.producibleFaults]},...$.discoverable===void 0?{}:{discoverable:$.discoverable},access:rM($.access),transports:{...$.transports},unknownKeyPolicy:{...$.unknownKeyPolicy},...$.authorize===void 0?{}:{authorize:$.authorize},invoke:$.invoke};if($.kind==="stream")return{...U,kind:"stream",eventSchema:$.eventSchema};if($.kind==="subscription")return{...U,kind:"subscription",eventSchema:$.eventSchema};return{...U}}function _h($){return{discriminator:$.discriminator,...$.defaultValue===void 0?{}:{defaultValue:$.defaultValue},variants:$.variants.map((U)=>({value:U.value,access:rM(U.access)}))}}function rM($){if($.kind==="scoped")return{kind:"scoped",scopes:Lj($.scopes)};if($.kind==="scopedAlternatives")return{kind:"scopedAlternatives",alternatives:$.alternatives.map(Lj)};if($.kind==="optionalAuth")return{kind:"optionalAuth",authenticatedScopes:Lj($.authenticatedScopes)};return{...$}}function Lj($){return{kind:$.kind,scopes:[...$.scopes]}}var jh=/^(0|[1-9]\d*)$/;function sM($){return{code:"PayloadTooLarge",message:"Payload Too Large",data:{maxBytes:$}}}function oM(){return{code:"InvalidParams",message:"Invalid Content-Length header",data:{issues:[]}}}function Hh($){let U=$?.maxBodyBytes??1048576;if(!Number.isSafeInteger(U)||U<0)throw Error("REST body size limit must be a non-negative safe integer");return U}function Dh($,U){let J=$.headers.get("content-length");if(J===null)return;if(!jh.test(J))throw oM();let G=Number(J);if(!Number.isSafeInteger(G)||G<0)throw oM();if(G>U)throw sM(U)}async function Lh($){try{await $.cancel()}catch{}}async function Vj($,U){let J=Hh(U);Dh($,J);let G=$.body;if(G===null)return new Uint8Array;let X=G.getReader(),Q=[],Z=0;try{while(!0){let{done:H,value:D}=await X.read();if(H)break;if(Z+=D.byteLength,Z>J)throw await Lh(X),sM(J);Q.push(D)}}finally{X.releaseLock()}let Y=new Uint8Array(Z),_=0;for(let H of Q)Y.set(H,_),_+=H.byteLength;return Y}async function K4($,U){return new TextDecoder("utf-8").decode(await Vj($,U))}async function Y$($,U){return JSON.parse(await K4($,U))}var Vh=j.object({workflowId:j.string().min(1),tags:j.unknown().optional()}),Ph=j.object({ok:j.literal(!0)});function P9($){return q({name:$.name,mcpExposable:!1,summary:$.summary,tags:["Tags"],destructive:$.destructive,inputSchema:Vh,outputSchema:Ph,access:{kind:"public"},producibleFaults:["Unprocessable","NotFound"],transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:U,engine:J})=>{let G;try{G=j$(U.tags,'Field "tags"')}catch(X){throw aM(tM(X))}try{return await $.mutateTags(J,U.workflowId,G),{ok:!0}}catch(X){throw zh(X,U.workflowId)}}})}function F9($){return{method:$.method,path:"/v1/workflows/:id/tags",pathParamNames:["id"],operationName:$.operationName,inputSources:{workflowId:{kind:"path",pathParam:"id"},tags:{kind:"body-field",bodyField:"tags"}},extractInput:async(U,J,G)=>{let X=await Y$(U,G).catch((Q)=>{if(t(Q))throw Q;throw Error("Invalid JSON body")});if(!Bh(X))throw Error("Invalid JSON body");return{workflowId:J.id??"",tags:X.tags}},success:{kind:"json",status:200},shapeSuccess:Fh,shapeFault:Mh}}function Fh($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}function Mh($){if($.code==="Unprocessable")return Z$($.message,400);return R($)}function zh($,U){let J=tM($);if($ instanceof B4)return{code:"NotFound",message:J,data:{resource:"workflow",identifier:U,weftCode:$.code}};if(J.includes("not found"))return{code:"NotFound",message:J,data:{resource:"workflow",identifier:U}};if($ instanceof f)return aM(J);return{code:"EngineFailure",message:J,data:{}}}function aM($){return{code:"Unprocessable",message:$,data:{reason:$}}}function tM($){return $ instanceof Error?$.message:String($)}function Bh($){return typeof $==="object"&&$!==null&&!Array.isArray($)}var Pj=P9({name:"weft.workflows.tags.add",summary:"Add workflow tags",destructive:!1,mutateTags:($,U,J)=>$.addTags(U,...J)}),eM=F9({method:"POST",operationName:Pj.name});var Wh=j.object({attribute:j.string().min(1)}).strict(),Kh=j.union([j.literal("status"),j.literal("type"),j.literal("failureCategory"),Wh]),$z=1000,qh=1e4,Uz=1e5,Fj=j.object({groupBy:Kh,limit:j.number().int().min(1).max(qh).optional()}).strict();function Nh($){let U=[];for(let J of $.path)if(typeof J==="string"||typeof J==="number")U.push(J);else U.push(String(J));return{path:U,message:$.message,code:$.code}}class M9 extends v{issues;constructor($){let U=$.map((J)=>{let G=J.path.join(".");return G.length>0?`${G}: ${J.message}`:J.message}).join("; ");super("AggregateOptionsValidationError",U.length>0?U:"Invalid aggregate options");this.issues=$}}class s2 extends v{cap;constructor($){super("AggregateDistinctKeyCapExceededError",`Aggregate query would exceed the distinct-key cap of ${$}. Narrow the filter or choose a lower-cardinality groupBy.`);this.cap=$}}function Jz($){let U=Fj.safeParse($??{});if(!U.success)throw new M9(U.error.issues.map(Nh));let{groupBy:J,limit:G}=U.data;return{groupBy:J,...G!==void 0&&{limit:G}}}var a2=["application","timeout","cancellation","resource","system"],Oh=new Set(a2),Ah=new Set(["ActivityScheduleToCloseTimeoutError","ActivityPerAttemptTimeoutError","MCPToolTimeoutError","ReviewTimeoutError","UpdateTimeoutError","WorkflowTimeoutError","TimeoutError"]),Ch=Symbol.for("weft.failure-category.timeout"),Rh=new Set(["AbortError","CancelledError","CancellationError","WorkflowCancelledError"]),Th=new Set(["QuotaExceededError","ResourceExhaustedError","OutOfMemoryError","StorageQuotaExceededError"]);function d6($){return Oh.has($)}function z9($){if(d6($))return $;return}function Gz($){return[$]}function t2($,U={}){if(!($ instanceof Error))return"system";if(Ah.has($.name))return"timeout";if(Object.prototype.hasOwnProperty.call($,Ch))return"timeout";if(Rh.has($.name))return"cancellation";if(Th.has($.name))return"resource";return U.defaultErrorCategory??"system"}function B9($){let U=Error($.error);if($.errorName!==void 0)U.name=$.errorName;return U}var Eh=["pending","running","completed","failed","cancelled","timed-out","suspended"],xh=/^[A-Za-z0-9_-]+$/,Xz=j.enum(Eh),Qz=j.enum(a2),Mj=j.object({gte:j.number().optional(),lte:j.number().optional(),gt:j.number().optional(),lt:j.number().optional()}).strict().refine(($)=>$.gte!==void 0||$.gt!==void 0||$.lte!==void 0||$.lt!==void 0,{message:"TimeRange must specify at least one of gte, gt, lte, lt"}).refine(($)=>!($.gte!==void 0&&$.gt!==void 0),{message:"TimeRange may not set both gte and gt"}).refine(($)=>!($.lte!==void 0&&$.lt!==void 0),{message:"TimeRange may not set both lte and lt"}),e2=j.union([j.string(),j.number(),j.boolean(),j.date(),j.array(j.string())]),Sh=j.object({key:j.union([j.string().min(1),j.any()]),value:e2.optional(),gt:e2.optional(),lt:e2.optional(),gte:e2.optional(),lte:e2.optional()}),zj=j.object({status:j.union([Xz,j.array(Xz)]).optional(),type:j.string().min(1).optional(),tags:j.array(j.string()).optional(),attributes:j.array(Sh).optional(),limit:j.number().int().min(1).max(1000).optional(),offset:j.number().int().min(0).optional(),idPrefix:j.string().min(1).regex(xh,"idPrefix must match [A-Za-z0-9_-]+").optional(),createdAt:Mj.optional(),updatedAt:Mj.optional(),executionDeadline:Mj.optional(),failureCategory:j.union([Qz,j.array(Qz).min(1)]).optional()}).strict();function bh($){let U=[];for(let J of $.path)if(typeof J==="string"||typeof J==="number")U.push(J);else U.push(String(J));return{path:U,message:$.message,code:$.code}}class pU extends v{issues;constructor($){let U=$.map((J)=>{let G=J.path.join(".");return G.length>0?`${G}: ${J.message}`:J.message}).join("; ");super("ListFilterValidationError",U.length>0?U:"Invalid list filter");this.issues=$}}function dU($){let U=zj.safeParse($??{});if(!U.success)throw new pU(U.error.issues.map(bh));return U.data}var vh=new Uint8Array(0);function V$($){if(!$||$.length===0)return;let U=[...new Set($.map((J)=>J.trim()).filter((J)=>J.length>0))];return U.sort((J,G)=>J.localeCompare(G)),U.length>0?U:void 0}function Zz($){return Array.isArray($)&&$.every((U)=>typeof U==="string")}function lU($,U,J){let G=[],X=new Set(U??[]),Q=new Set(J??[]);for(let Z of X)if(!Q.has(Z))G.push({type:"delete",key:P.tagIndex(Z,$)});for(let Z of Q)if(!X.has(Z))G.push({type:"put",key:P.tagIndex(Z,$),value:vh});return G}function Yz($,U){if(!U||U.length===0)return!0;if(!$||$.length===0)return!1;let J=new Set($);return U.every((G)=>J.has(G))}var e$=64;var gh=/(?:access[-_]?token|api[-_]?key|auth(?:orization)?|card(?:number)?|cookie|credential|cvc|cvv|pass(?:word|phrase)?|private[-_]?key|refresh[-_]?token|secret|session|ssn|token)/i;function _z($){return gh.test($)}function Ih($){if(!/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/.test($))return!1;return $.split(".").every((U)=>U.length>=6)}function hh($){let U=0,J=!1;for(let G=$.length-1;G>=0;G--){let Q=Number($[G]);if(J){if(Q*=2,Q>9)Q-=9}U+=Q,J=!J}return U%10===0}function yh($){let U=$.replaceAll(/[\s-]/g,"");return/^\d{13,19}$/.test(U)&&hh(U)}function jz($){let U=$.trim();if(/^(?:Bearer|Basic)\s+\S+/i.test(U))return"[REDACTED]";if(Ih(U)||yh(U))return"[REDACTED]";return $}function l6($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function x1(){return{supported:!1}}function S1($){return{supported:!0,value:$}}function mh($){let U=Object.getPrototypeOf($);return U===Object.prototype||U===null}function kh($,U){let J={};for(let[G,X]of $){let Q=String(G);J[Q]=_z(Q)?"[REDACTED]":$8(X,U)}return J}function fh($,U){let J={};for(let[G,X]of Object.entries($))J[G]=_z(G)?"[REDACTED]":$8(X,U);return J}var uh=[($)=>$ instanceof Date?S1($.toISOString()):x1(),($)=>$ instanceof Error?S1({name:$.name,message:jz($.message)}):x1(),($)=>$ instanceof Uint8Array?S1(`[Uint8Array(${$.byteLength})]`):x1(),($,U)=>Array.isArray($)?S1($.map((J)=>$8(J,U))):x1(),($,U)=>$ instanceof Set?S1([...$].map((J)=>$8(J,U))):x1(),($,U)=>$ instanceof Map?S1(kh($,U)):x1(),($,U)=>mh($)?S1(fh($,U)):x1()];function wh($,U){if(U.has($))return"[Circular]";U.add($);try{for(let J of uh){let G=J($,U);if(G.supported)return G.value}return Object.prototype.toString.call($)}finally{U.delete($)}}function $8($,U){if(typeof $==="string")return jz($);if($===null||$===void 0||typeof $==="boolean"||typeof $==="number")return $;if(typeof $==="bigint"||typeof $==="symbol")return String($);if(typeof $==="function")return`[Function ${$.name||"anonymous"}]`;return wh($,U)}function b1($){return $8($,new WeakSet)}function Hz($,U){if($===void 0)return"undefined";let J=b1($);if(typeof J==="string")return JSON.stringify(J);try{return JSON.stringify(J,null,U)??Object.prototype.toString.call(J)}catch{return"[unserializable]"}}var Dz=1n<<63n,ch=(1n<<64n)-1n,Lz=1024;function ph($){let U=new ArrayBuffer(8),J=new DataView(U);J.setFloat64(0,$);let G=J.getBigUint64(0);if(G&Dz)G=G^ch;else G=G^Dz;return G.toString(16).padStart(16,"0")}function B$($){let U;if(typeof $==="string")U=`s:${$}`;else if(typeof $==="number")U=`n:${ph($)}`;else if(typeof $==="boolean")U=`b:${$?"1":"0"}`;else if($ instanceof Date)U=`d:${$.toISOString()}`;else throw Error("Cannot encode a keyword list as a single value; encode elements individually.");return U}function Bj($,U){let J=new TextEncoder().encode($).byteLength;if(J>Lz)throw Error(`Encoded search attribute "${U}" exceeds the ${Lz}-byte limit (got ${J} bytes). Reduce the value size before setting the attribute.`)}function d4($,U,J){let{type:G}=J;switch(G){case"string":dh($,U,J);break;case"integer":lh($,U);break;case"number":ih($,U);break;case"boolean":nh($,U);break;case"array":rh($,U);break;default:throw Error(`Unknown search attribute type declaration: ${String(G)}`)}}function dh($,U,J){if(J.format==="date-time"){if(!(U instanceof Date))throw Error(`Search attribute "${$}" is declared as "string" with format "date-time" but received ${typeof U}.`);return}if(typeof U!=="string")throw Error(`Search attribute "${$}" is declared as "string" but received ${typeof U}.`)}function lh($,U){if(typeof U!=="number"||!Number.isInteger(U))throw Error(`Search attribute "${$}" is declared as "integer" but received ${typeof U}.`)}function ih($,U){if(typeof U!=="number")throw Error(`Search attribute "${$}" is declared as "number" but received ${typeof U}.`)}function nh($,U){if(typeof U!=="boolean")throw Error(`Search attribute "${$}" is declared as "boolean" but received ${typeof U}.`)}function rh($,U){if(!Array.isArray(U))throw Error(`Search attribute "${$}" is declared as "array" but received ${typeof U}.`);if(!U.every((J)=>typeof J==="string"))throw Error(`Search attribute "${$}" is declared as "array" but array contains non-string elements.`)}function oh($,U){if($ instanceof Date&&U instanceof Date)return $.getTime()===U.getTime();return $===U}var sh=new Uint8Array(0);function W$($,U,J){let G=[],X=new Set([...Object.keys(U),...Object.keys(J)]);for(let Q of X)G.push(...ah(Q,$,U,J));return G}function ah($,U,J,G){let X=J[$],Q=G[$],Z=$ in J,Y=$ in G;if(Array.isArray(X)||Array.isArray(Q))return eh({attributeName:$,workflowId:U,oldValue:X,newValue:Q,hadOld:Z,hasNew:Y});return th({attributeName:$,workflowId:U,oldValue:X,newValue:Q,hadOld:Z,hasNew:Y})}function th($){let{attributeName:U,workflowId:J,oldValue:G,newValue:X,hadOld:Q,hasNew:Z}=$;if(Q&&!Z)return[K9(U,G,J)];if(!Q&&Z)return[W9(U,X,J)];if(Q&&Z&&!oh(G,X))return[K9(U,G,J),W9(U,X,J)];return[]}function W9($,U,J){return{type:"put",key:P.attributeIndex($,B$(U),J),value:sh}}function K9($,U,J){return{type:"delete",key:P.attributeIndex($,B$(U),J)}}function eh($){let{oldValue:U,newValue:J}=$;if(Array.isArray(U)&&Array.isArray(J))return $y($.attributeName,U,J,$.workflowId);return[...Uy($.attributeName,$.hadOld?U:void 0,$.workflowId),...Jy($.attributeName,$.hasNew?J:void 0,$.workflowId)]}function $y($,U,J,G){let X=[],Q=new Set(U),Z=new Set(J);for(let Y of Q)if(!Z.has(Y))X.push(K9($,Y,G));for(let Y of Z)if(!Q.has(Y))X.push(W9($,Y,G));return X}function Uy($,U,J){return Vz(U).map((G)=>K9($,G,J))}function Jy($,U,J){return Vz(U).map((G)=>W9($,G,J))}function Vz($){if($===void 0)return[];return Array.isArray($)?$:[$]}var iU;function Wj(){return typeof(iU&&"bun"in iU?iU.bun:globalThis.Bun)<"u"}function Gy(){if(iU&&"process"in iU)return iU.process;return globalThis.process}function q4($){if(Wj())return Bun.sleep($);return new Promise((U)=>setTimeout(U,$))}var Xy=0xcbf29ce484222325n,Qy=0x00000100000001b3n,Zy=0xffffffffffffffffn;function Pz($){let U=Xy;for(let J=0;J<$.length;J++)U^=BigInt($[J]),U=U*Qy&Zy;return U.toString(16).padStart(16,"0")}var Yy=new TextEncoder;function q9($){return Pz($)}function N9($){return Pz(Yy.encode($))}function Fz($){let J=Gy()?.getBuiltinModule;if(typeof J!=="function")return;return J($)}function Mz(){let $=Fz("node:zlib");if(!$)throw Error("gzip/gunzip require Bun or Node 22.5+ (process.getBuiltinModule). "+"Not available in browser or edge runtimes — use CompressionStream directly.");return $}function zz($){if(Wj())return new Uint8Array(Bun.gzipSync(new Uint8Array($)));return new Uint8Array(Mz().gzipSync($))}function Bz($){if(Wj())return new Uint8Array(Bun.gunzipSync(new Uint8Array($)));return new Uint8Array(Mz().gunzipSync($))}function Wz(){return Fz("node:zlib")}var U8="0000000000000000",v1=Object.freeze({sequence:-1,lastHash:U8});function O9($){return q9($)}function N4($){if(typeof $!=="object"||$===null)return!1;let U=$;return typeof U.type==="string"&&typeof U.workflowId==="string"&&typeof U.sequence==="number"&&typeof U.prevHash==="string"&&typeof U.timestamp==="number"&&"payload"in U}function _y($){if(typeof $!=="object"||$===null)return!1;let U=$;return typeof U.sequence==="number"&&typeof U.lastHash==="string"}async function J8($,U){let J=await $.get(P.eventHead(U));if(J===null)return{sequence:-1,lastHash:U8};let G=A(J);if(_y(G))return G;return{sequence:-1,lastHash:U8}}var G8="__weftCheckpointReplay",Kj=-1;function Cj($,U){let J=Nz($),G=J.accumulatedResultReplayWatermark??Kj,X=qj(J.accumulatedResults,U),Q=qj(J.workerReplaySignatures??[],U),Z=qj(J.workerReplayFailures??[],U),Y=Tj({accumulatedResults:Oj(X,G),workerReplaySignatures:Oj(Q,G),workerReplayFailures:Oj(Z,G)}),_=Hy(G,Y),H=Nj(J.workerReplaySignatures??[],U),D=Nj(J.workerReplayFailures??[],U),L={...J,accumulatedResults:Nj(J.accumulatedResults,U),..._===Kj?{}:{accumulatedResultReplayWatermark:_},...A9("workerReplaySignatures",H),...A9("workerReplayFailures",D)};if(_===Kj)delete L.accumulatedResultReplayWatermark;if(H.length===0)delete L.workerReplaySignatures;if(D.length===0)delete L.workerReplayFailures;return{checkpoint:L,replayPayload:Y}}async function I1($,U,J){let G=[],X=rU(J);if(X!==void 0)G.push(X);let Q=await Vy($,U);if(Q!==void 0)G.push(Q);for await(let[,Z]of $.scan(P.eventPrefix(U))){let Y=A(Z);if(!N4(Y))continue;let _=Y,H=Ly(_.payload);if(H===void 0)continue;if(H>J.step)break;let D=rU(_.payload);if(D===void 0)continue;G.push(D)}return jy(Nz(J),G)}function jy($,U){let J=new Map,G=new Map,X=new Map;for(let Q of U)Dy({accumulatedResults:J,workerReplaySignatures:G,workerReplayFailures:X},Q);return nU(J,$.accumulatedResults),nU(G,$.workerReplaySignatures??[]),nU(X,$.workerReplayFailures??[]),{...$,accumulatedResults:Aj(J),...A9("workerReplaySignatures",Aj(G)),...A9("workerReplayFailures",Aj(X))}}function Rj($,U){if(U===void 0)return $;return{...$,[G8]:U}}function Kz($,U){return U===void 0?{step:$}:{step:$,[G8]:U}}function C9($,U){if($===void 0)return U;if(U===void 0)return $;return Tj({accumulatedResults:[...$.accumulatedResults??[],...U.accumulatedResults??[]],workerReplaySignatures:[...$.workerReplaySignatures??[],...U.workerReplaySignatures??[]],workerReplayFailures:[...$.workerReplayFailures??[],...U.workerReplayFailures??[]]})}function rU($){if(!g1($))return;let U=$[G8];if(!g1(U))return;return Oz(U)}function qz($){let{[G8]:U,...J}=$;return J}function Tj($){let U={},J=$.accumulatedResults,G=$.workerReplaySignatures,X=$.workerReplayFailures;if(J!==void 0&&J.length>0)U.accumulatedResults=J;if(G!==void 0&&G.length>0)U.workerReplaySignatures=G;if(X!==void 0&&X.length>0)U.workerReplayFailures=X;return Object.keys(U).length===0?void 0:U}function Hy($,U){if(U===void 0)return $;let J=$;for(let G of[U.accumulatedResults??[],U.workerReplaySignatures??[],U.workerReplayFailures??[]])for(let[X]of G)J=Math.max(J,X);return J}function qj($,U){return $.filter(([J])=>J<U)}function Nj($,U){return $.filter(([J])=>J>=U)}function Oj($,U){return $.filter(([J])=>J>U)}function A9($,U){return U.length===0?{}:{[$]:U}}function Nz($){let U=$,{[G8]:J,...G}=U;return G}function Aj($){return[...$.entries()].toSorted(([U],[J])=>U-J)}function nU($,U){for(let[J,G]of U)$.set(J,G)}function Dy($,U){nU($.accumulatedResults,U.accumulatedResults??[]),nU($.workerReplaySignatures,U.workerReplaySignatures??[]),nU($.workerReplayFailures,U.workerReplayFailures??[])}function Ly($){if(!g1($))return;let U=$.step;return typeof U==="number"&&Number.isSafeInteger(U)&&U>=0?U:void 0}function Oz($){let U=Py($.accumulatedResults),J=Fy($.workerReplaySignatures),G=My($.workerReplayFailures);return Tj({...U===void 0?{}:{accumulatedResults:U},...J===void 0?{}:{workerReplaySignatures:J},...G===void 0?{}:{workerReplayFailures:G}})}async function Vy($,U){let J=await $.get(P.eventWatermark(U));if(J===null)return;let G=A(J);if(!g1(G))return;let X=G.checkpointReplay;return g1(X)?Oz(X):void 0}function Py($){if(!Array.isArray($))return;let U=[];for(let J of $){if(!Array.isArray(J)||J.length!==2||!R9(J[0]))continue;U.push([J[0],J[1]])}return U}function Fy($){if(!Array.isArray($))return;let U=[];for(let J of $){if(!Array.isArray(J)||J.length!==2||!R9(J[0]))continue;if(!zy(J[1]))continue;U.push([J[0],J[1]])}return U}function My($){if(!Array.isArray($))return;let U=[];for(let J of $){if(!Array.isArray(J)||J.length!==2||!R9(J[0]))continue;if(!By(J[1]))continue;U.push([J[0],J[1]])}return U}function g1($){return typeof $==="object"&&$!==null}function R9($){return typeof $==="number"&&Number.isSafeInteger($)&&$>=0}function zy($){if(!g1($))return!1;return $.format===sG&&typeof $.operationType==="string"&&typeof $.stableFieldsDigest==="string"&&R9($.stableFieldsByteLength)}function By($){if(!g1($))return!1;let U=$.failureCategory;return $.status==="failed"&&typeof $.error==="string"&&($.errorName===void 0||typeof $.errorName==="string")&&(U===void 0||U==="application"||U==="cancellation"||U==="resource"||U==="system"||U==="timeout")}function Cz($,U){let J={};if($.workflowVersion!==U.workflowVersion)J.workflowVersion=[$.workflowVersion,U.workflowVersion];let G=$.agentVersion??"0.0.0",X=U.agentVersion??"0.0.0";if(G!==X)J.agentVersion=[G,X];let Q=Wy($.toolVersions??[],U.toolVersions??[]);if(Q.length>0)J.toolVersions=Q;return J}function Rz($){let U=[];if($.workflowVersion){let[J,G]=$.workflowVersion;U.push(` - workflow version: ${J} → ${G}`)}if($.agentVersion){let[J,G]=$.agentVersion;U.push(` - agent version: ${J} → ${G}`)}if($.toolVersions)for(let J of $.toolVersions)switch(J.change){case"added":U.push(` - tool \`${J.tool}\` added (version: ${J.to})`);break;case"removed":U.push(` - tool \`${J.tool}\` removed (was: ${J.from})`);break;case"changed":U.push(` - tool \`${J.tool}\` version: ${J.from} → ${J.to}`);break}if(U.length===0)return"";return`
|
|
43
43
|
Version tuple changes:
|
|
44
44
|
${U.join(`
|
|
45
45
|
`)}`}function Az($){let U=new Map;for(let J of $){let G=J.lastIndexOf("@");if(G>0)U.set(J.slice(0,G),J.slice(G+1))}return U}function Wy($,U){let J=Az($),G=Az(U),X=new Set([...J.keys(),...G.keys()]),Q=[];for(let Z of X){let Y=Ky(Z,J.get(Z),G.get(Z));if(Y!==void 0)Q.push(Y)}return Q}function Ky($,U,J){if(U===void 0&&J!==void 0)return{tool:$,change:"added",to:J};if(U!==void 0&&J===void 0)return{tool:$,change:"removed",from:U};if(U!==void 0&&J!==void 0&&U!==J)return{tool:$,change:"changed",from:U,to:J};return}var Tz="0.0.0";function Ez($,U){if($===U)return"compatible";return"incompatible"}function qy($,U){let J=[],G=new Set([...Object.keys($),...Object.keys(U)]);for(let X of G){let Q=Object.hasOwn($,X),Z=Object.hasOwn(U,X);if(Q&&!Z)J.push({field:X,change:"removed",oldType:$[X]});else if(!Q&&Z)J.push({field:X,change:"added",newType:U[X]});else if(Q&&Z&&$[X]!==U[X])J.push({field:X,change:"type-changed",oldType:$[X],newType:U[X]})}return J}function Ny($){if($.length===0)return"";return`
|
|
@@ -49,7 +49,7 @@ ${$.map((J)=>{switch(J.change){case"added":return` - field \`${J.field}\` was a
|
|
|
49
49
|
`);if(U.length<=4)return $;return U.slice(0,4).join(`
|
|
50
50
|
`)}function Ik($,U){if(typeof U==="object"&&U!==null&&"type"in U)return{workflowType:r9($,U.type),options:U.options};return{workflowType:r9($,U),options:void 0}}function r9($,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 hk($,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 aj($,U){return`${U}:${$.stepIndex}`}function o9($,U,J,G=void 0){if(NB(G),G?.id!==void 0)return G;return{...G,id:`${$.context.workflowId}:${U}:${J}`}}function yk($,U,J,G){if(G===void 0)return o9($,U,J);let{idPrefix:X,...Q}=G;return NB(Q),o9($,U,J,X!==void 0?{...Q,id:`${X}:${J}`}:Q)}function NB($){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 s9($){let U=[];for(let J of $){let G=J.next();if(!G.done)U.push(G.value)}return U}function*OB($,U,J,G,X){let Q=U.stepIndex++;if(U.accumulatedResults?.has(Q)){if(U.explainMode)console.log(`[weft] ctx.startChild("${J}") → Returning cached result from step ${Q}`);return qB(U.accumulatedResults.get(Q),X)}if(U.explainMode)console.log(`[weft] ctx.startChild("${J}", ${JSON.stringify(G)})`),console.log(` → Creating checkpoint at step ${Q}`),console.log(` → Starting child workflow of type "${J}"`);let Z=crypto.randomUUID(),Y=s(),H=yield{type:"child-workflow",operationId:Z,workflowType:J,input:G,callerStack:Y,...X!==void 0?{options:X}:{}};return $.accumulatedResults.set(Q,H),qB(H,X)}function qB($,U){return(U?.parentClosePolicy??"await")==="await"?$:$}function*AB($,U,J,G){let X=aj(U,"pipe"),Q=G;for(let[Z,Y]of J.entries()){let _=Ik(U,Y);Q=yield*$.startChild(_.workflowType,Q,o9(U,X,Z,_.options))}return Q}function*CB($,U,J,G,X){if(J.length===0)return[];let Q=aj(U,"map"),Z=hk(J.length,X?.concurrency),Y=r9(U,G),_=[];for(let H=0;H<J.length;H+=Z){let D=J.slice(H,H+Z),L=yield*$.all(D.map((F,M)=>$.startChild(Y,F,o9(U,Q,H+M))));for(let F=0;F<L.length;F++)_[H+F]=L[F]}return _}function*RB($,U,J,G,X,Q){if(J.length===0)return X;let Z=aj(U,"reduce"),Y=r9(U,G),_=X;for(let[H,D]of J.entries())_=yield*$.startChild(Y,{accumulator:_,item:D,index:H},yk(U,Z,H,Q));return _}class O6 extends v{constructor($){super("BranchTopologyChangedError",$)}}function kk($){return $==="all"||$==="race"||$==="run-all"}function fk($){return $==="pending"||$==="fulfilled"||$==="rejected"||$==="aborted"}function uk($){if($===null||typeof $!=="object")return!1;let U=$;return typeof U.name==="string"&&typeof U.message==="string"}function wk($){if($===null||typeof $!=="object")return!1;let U=$;if(!fk(U.status))return!1;if(typeof U.operationId!=="string")return!1;if(U.status==="rejected"&&!uk(U.reason))return!1;return!0}function ck($){if($===void 0)return!0;return Array.isArray($)&&$.every((U)=>typeof U==="string")}function pk($){return typeof $==="number"&&Number.isSafeInteger($)&&$>=0}function dk($){return $!==null&&typeof $==="object"&&$.__weftParallelOperationCache===!0}function lk($,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 f1($){if($===null||typeof $!=="object")return!1;let U=$;if(U.__weftParallelOperationCache!==!0)return!1;if(U.formatVersion!==2)return!1;if(!kk(U.variant))return!1;if(!Array.isArray(U.branches))return!1;if(!pk(U.subOperationCount))return!1;if(!ck(U.branchNames))return!1;let J=U.subOperationCount;if(!lk(U.variant,U.branches,J,U.branchNames))return!1;return U.branches.every(wk)}function a9($){if(dk($)&&!f1($))throw new O6("Parallel operation cache entry is malformed or incompatible with this engine version.")}function D8($,U,J,G){return{__weftParallelOperationCache:!0,formatVersion:2,variant:$,branches:U,...G!==void 0?{branchNames:G}:{},subOperationCount:J}}function ik($){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 nk($){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 TB($){return $.branches.every((U)=>U.status==="fulfilled")}function*EB($,U,J){let G=U.stepIndex++;if(U.accumulatedResults?.has(G)){let H=U.accumulatedResults.get(G);if(a9(H),f1(H)){if(H.variant!=="all")throw new O6(`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 O6(`ctx.all branch count changed across retry: expected ${H.subOperationCount}, got ${J.length}. Branch count must be deterministic.`);if(TB(H))return U.stepIndex+=H.subOperationCount,ik(H);let D=s9(J);tj(D,`parallel:${G}`);let L=s();return yield{type:"parallel",operationId:`parallel:${G}`,operations:D,step:G,resumedCacheEntry:H,callerStack:L}}return H}let X=s9(J),Q=`parallel:${G}`;tj(X,Q);let Z=s(),_=yield{type:"parallel",operationId:Q,operations:X,step:G,callerStack:Z};return $.accumulatedResults.set(G,rk(_,Q,X.length)),_}function rk($,U,J){return D8("all",$.map((G,X)=>({status:"fulfilled",value:G,operationId:`${U}:${X}`})),J)}function*xB($,U,J){let G=U.stepIndex++;if(U.accumulatedResults?.has(G)){let _=U.accumulatedResults.get(G);if(a9(_),f1(_)){if(_.variant!=="race")throw new O6(`ctx.race step ${G} found a cached entry of variant '${_.variant}'. The same step must use the same parallel primitive across retries.`);if(J.length!==_.subOperationCount)throw new O6(`ctx.race branch count changed across retry: expected ${_.subOperationCount}, got ${J.length}. Branch count must be deterministic.`);let H=_.branches[0];if(H?.status!=="fulfilled")throw new O6(`ctx.race step ${G} cached entry has no fulfilled winner slot — entry is malformed.`);return U.stepIndex+=_.subOperationCount,H.value}return _}let X=s9(J),Q=`race:${G}`;tj(X,Q);let Z=s(),Y=yield{type:"race",operationId:Q,operations:X,callerStack:Z};return $.accumulatedResults.set(G,{__weftParallelOperationCache:!0,formatVersion:2,variant:"race",branches:[{status:"fulfilled",value:Y,operationId:`${Q}:winner`}],subOperationCount:X.length}),Y}function tj($,U){for(let J=0;J<$.length;J++){let G=$[J];if(G!==void 0)G.operationId=`${U}:${J}`}}function*SB($,U,J,G){let X=U.stepIndex++;if(U.memoCache?.has(J))return U.memoCache.get(J);if(U.accumulatedResults?.has(X)){let _=U.accumulatedResults.get(X);return U.memoCache??=new Map,U.memoCache.set(J,_),_}let Q=crypto.randomUUID(),Z=s(),Y=yield{type:"memo",operationId:Q,key:J,fn:G,callerStack:Z};return U.memoCache??=new Map,U.memoCache.set(J,Y),$.accumulatedResults.set(X,Y),Y}function ok($,U,J){if($.variant!=="run-all")throw new O6(`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 O6(`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 O6(`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*bB($,U,J){let G=U.stepIndex++,X=Object.keys(J);if(U.accumulatedResults?.has(G)){let H=U.accumulatedResults.get(G);if(a9(H),f1(H)){if(ok(H,X,G),TB(H))return nk(H);let D=`run-all:${G}`,L=s();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(` → Creating checkpoint at step ${G}`),console.log(` → Running ${X.length} named branches in parallel`);let Q=`run-all:${G}`,Z=s(),Y=yield{type:"run-all",operationId:Q,branches:J,step:G,callerStack:Z},_=Y;return $.accumulatedResults.set(G,sk(_,X,Q)),Y}function sk($,U,J){return D8("run-all",U.map((G)=>({status:"fulfilled",value:$[G],operationId:`${J}:${G}`})),U.length,U)}function ej(){return{hasFirstError:!1,firstError:void 0}}function $H($,U){if(!$.hasFirstError)$.hasFirstError=!0,$.firstError=U}async function vB($,U,J){let G=$.map((Q,Z)=>{let Y=U?.[Z];if(Y?.status==="fulfilled")return Y;return{status:"pending",operationId:Q}}),X=ej();return await Promise.all($.map(async(Q,Z)=>{if(G[Z]?.status==="fulfilled")return;try{let Y=await J(Z);G[Z]={status:"fulfilled",value:Y,operationId:Q}}catch(Y){let _=Y instanceof Error?Y:Error(String(Y));G[Z]={status:"rejected",reason:{name:_.name,message:_.message},operationId:Q},$H(X,Y)}})),{slots:G,hasFirstError:X.hasFirstError,firstError:X.firstError}}function UH($,U,J){return D8($,U,U.length,J)}function gB($){return $.map((U,J)=>{if(U.status!=="fulfilled")throw Error(`Branch slot ${J} is ${U.status}, not fulfilled`);return U.value})}function IB($,U){return(J,G)=>{$(J,G,U)}}function hB($){return(U)=>{let J=$.get(U);if(!J||J.ref.deref()!==void 0)return;$.delete(U)}}function yB($,U){return()=>{$.cleanupExpiredResponses().catch((J)=>{U("cleanupExpiredResponses",J)})}}async function mB($,U,J,G,X){if(G.length===0)return;let Q=[...G.map((Z)=>({type:"delete",key:Z})),{type:"delete",key:P.streamTail(U,J)},{type:"delete",key:P.streamMetadata(U,J)}];await $.batch(Q).catch((Z)=>{X("cleanupPartialStreamChunks",Z,U)})}async function kB($,U){let J=Object.entries($),G=ej();return{outcomes:await Promise.all(J.map(async([Q,[Z,Y]])=>{try{let _=await U(Z,Y);return{status:"fulfilled",name:Q,value:_}}catch(_){return $H(G,_),{status:"rejected",name:Q,reason:_}}})),hasFirstError:G.hasFirstError,firstError:G.firstError}}async function fB($,U){let J={},G=Object.entries($);return await Promise.all(G.map(async([X,[Q,Z]])=>{J[X]=await U(Q,Z)})),J}class a4 extends Event{static type="human-review:requested";workflowId;reviewId;reviewType;reviewers;constructor($,U,J,G){super(a4.type);this.workflowId=$,this.reviewId=U,this.reviewType=J,this.reviewers=G}}class X0 extends Event{static type="human-review:completed";workflowId;reviewId;decision;reviewer;duration;constructor($,U,J,G,X){super(X0.type);this.workflowId=$,this.reviewId=U,this.decision=J,this.reviewer=G,this.duration=X}}class JH extends v{reviewId;elapsed;constructor($,U){super("ReviewTimeoutError",`Review ${$} timed out after ${U}ms`);this.reviewId=$,this.elapsed=U}}class GH{#$;#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=P.review($,J);if(await this.#$.put(X,W(G)),this.#J)this.#J.dispatchEvent(new a4($,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=P.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:P.review($,U)}]}checkEscalations($,U,J){let G=J-$.createdAt;for(let X=U.length-1;X>=0;X--){let Q=U[X];if(G<Q.after)continue;if(Q.action!==void 0){let Z=Q.action==="auto-approve"?"approved":"rejected";return{type:"auto-decide",decision:Z,auditReason:Q.auditReason??`Auto-${Z} after ${Q.after}ms`}}if(Q.to!==void 0)return{type:"escalate",to:Q.to}}return null}}class Q0 extends v{updateId;constructor($,U){super("UpdateTimeoutError",`Update ${$} timed out after ${U}ms`);this.updateId=$}}class A4 extends v{updateName;issues;constructor($,U){let J=U.map((G)=>G.message).join("; ");super("UpdateValidationError",`Update "${$}" rejected by validator: ${J}`);this.updateName=$,this.issues=U}}class Z0 extends v{workflowId;status;constructor($,U){super("WorkflowTerminalError",`Cannot send update to workflow "${$}": workflow is in terminal state "${U}"`);this.workflowId=$,this.status=U}}var tk=50,ek=300000;class XH{#$;constructor($){this.#$=$}async createRequest($,U,J,G){let X=crypto.randomUUID(),Q={updateId:X,workflowId:$,name:U,payload:J,createdAt:Date.now()};if(G?.idempotencyKey!==void 0)Q.idempotencyKey=G.idempotencyKey;let Z=P.update($,X);return await this.#$.put(Z,W(Q)),X}async checkIdempotency($,U){let J=P.updateIdempotency($,U),G=await this.#$.get(J);if(!G)return null;let X=A(G);return this.getResponse(X.updateId)}async getPendingUpdates($){let U=P.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 Q={updateId:$,result:J,createdAt:Date.now()};if(G!==void 0)Q.error=G;let Z=[{type:"delete",key:P.update(U,$)},{type:"put",key:P.updateResponse($),value:W(Q)}];if(X!==void 0)Z.push({type:"put",key:P.updateIdempotency(U,X),value:W({updateId:$})});return Z}async deleteRequest($,U){await this.#$.delete(P.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=P.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 q4(Math.min(tk,X))}throw new Q0($,U)}async cleanupExpiredResponses($){let U=$??ek,J=Date.now()-U,G=[],X=new Set;for await(let[Y,_]of this.#$.scan("upr:")){let H=A(_);if(H.createdAt<J)G.push(Y),X.add(H.updateId)}if(G.length===0)return 0;let Q=[];for await(let[Y,_]of this.#$.scan("upk:")){let H=A(_);if(X.has(H.updateId))Q.push(Y)}let Z=[...G.map((Y)=>({type:"delete",key:Y})),...Q.map((Y)=>({type:"delete",key:Y}))];return await this.#$.batch(Z),G.length}}class t9 extends Event{static type="activity:started";operationId;workflowId;activityName;attempt;constructor($,U,J,G){super(t9.type);this.operationId=$,this.workflowId=U,this.activityName=J,this.attempt=G}}class Y0 extends Event{static type="activity:completed";operationId;workflowId;activityName;duration;constructor($,U,J,G){super(Y0.type);this.operationId=$,this.workflowId=U,this.activityName=J,this.duration=G}}class _0 extends Event{static type="activity:async-pending";token;operationId;workflowId;activityName;attempt;constructor($,U,J,G,X){super(_0.type);this.token=$,this.operationId=U,this.workflowId=J,this.activityName=G,this.attempt=X}}class e9 extends Event{static type="activity:failed";operationId;workflowId;activityName;error;attempt;constructor($,U,J,G,X){super(e9.type);this.operationId=$,this.workflowId=U,this.activityName=J,this.error=G,this.attempt=X}}class $X extends Event{static type="task:dead-lettered";operationId;workflowId;activityName;queue;workerId;reason;errorMessage;constructor({operationId:$,workflowId:U,activityName:J,queue:G,workerId:X,errorMessage:Q}){super($X.type);this.operationId=$,this.workflowId=U,this.activityName=J,this.queue=G,this.workerId=X,this.reason="result-resolution-storage-exhausted",this.errorMessage=Q}}class j0 extends Event{static type="attributes:changed";workflowId;changes;constructor($,U){super(j0.type);this.workflowId=$,this.changes=U}}class H0 extends Event{static type="schedule:fired";scheduleId;workflowId;firedAt;occurrence;constructor($,U,J,G){super(H0.type);this.scheduleId=$,this.workflowId=U,this.firedAt=J,this.occurrence=G}}class D0 extends Event{static type="schedule:missed-fire";scheduleId;missedCount;windowStart;windowEnd;constructor($,U,J,G){super(D0.type);this.scheduleId=$,this.missedCount=U,this.windowStart=J,this.windowEnd=G}}class L0 extends Event{static type="signal:received";workflowId;signalName;payload;constructor($,U,J){super(L0.type);this.workflowId=$,this.signalName=U,this.payload=J}}class UX extends Event{static type="signal:delivered";workflowId;signalName;constructor($,U){super(UX.type);this.workflowId=$,this.signalName=U}}class V0 extends Event{static type="checkpoint:size-warning";workflowId;sizeBytes;step;constructor($,U,J){super(V0.type);this.workflowId=$,this.sizeBytes=U,this.step=J}}class n6 extends Event{static type="development:warning";workflowId;message;fieldPaths;constructor($,U,J){super(n6.type);this.workflowId=$,this.message=U,this.fieldPaths=J}}class P0 extends Event{static type="cleanup:warning";source;error;workflowId;constructor($,U,J){super(P0.type);this.source=$,this.error=U,this.workflowId=J}}class F0 extends Event{static type="storage:size-reported";sizeBytes;constructor($){super(F0.type);this.sizeBytes=$}}class JX extends Event{static type="worker:connected";workerId;queue;activities;concurrency;constructor($,U,J,G){super(JX.type);this.workerId=$,this.queue=U,this.activities=J,this.concurrency=G}}class GX extends Event{static type="worker:disconnected";workerId;inFlightTaskCount;constructor($,U){super(GX.type);this.workerId=$,this.inFlightTaskCount=U}}class M0 extends Event{static type="alert:fired";metric;threshold;currentValue;window;constructor($,U,J,G){super(M0.type);this.metric=$,this.threshold=U,this.currentValue=J,this.window=G}}class z0 extends Event{static type="alert:resolved";metric;threshold;currentValue;window;constructor($,U,J,G){super(z0.type);this.metric=$,this.threshold=U,this.currentValue=J,this.window=G}}class B0 extends Event{static type="constraint:violated";workflowId;constraintName;scope;onViolation;constructor($,U,J,G){super(B0.type);this.workflowId=$,this.constraintName=U,this.scope=J,this.onViolation=G}}class A6 extends Event{static type="update:received";updateId;workflowId;name;payload;constructor($,U,J,G){super(A6.type);this.updateId=$,this.workflowId=U,this.name=J,this.payload=G}}class U6 extends Event{static type="update:completed";updateId;workflowId;name;result;error;constructor($,U,J,G,X){super(U6.type);this.updateId=$,this.workflowId=U,this.name=J,this.result=G,this.error=X}}class XX extends Event{static type="workflow:definition-registered";workflowType;constructor($){super(XX.type);this.workflowType=$}}class r6 extends Event{static type="workflow:started";workflowId;workflowType;input;constructor($,U,J){super(r6.type);this.workflowId=$,this.workflowType=U,this.input=J}}class C4 extends Event{static type="workflow:completed";workflowId;result;duration;constructor($,U,J){super(C4.type);this.workflowId=$,this.result=U,this.duration=J}}class C6 extends Event{static type="workflow:failed";workflowId;error;constructor($,U){super(C6.type);this.workflowId=$,this.error=U}}class R4 extends Event{static type="workflow:cancelled";workflowId;constructor($){super(R4.type);this.workflowId=$}}class R6 extends Event{static type="workflow:timed-out";workflowId;timeoutType;elapsed;reason;constructor($,U,J,G){super(R6.type);if(this.workflowId=$,this.timeoutType=U,this.elapsed=J,G!==void 0)this.reason=G}}var uB=new Set([C4.type,C6.type,R4.type,R6.type]);class W0 extends Event{static type="workflow:resumed";workflowId;fromStep;constructor($,U){super(W0.type);this.workflowId=$,this.fromStep=U}}class K0 extends Event{static type="workflow:suspended";workflowId;constructor($){super(K0.type);this.workflowId=$}}class QX extends Event{static type="workflow:recovery-skipped";workflowId;workflowType;reason;constructor($,U,J){super(QX.type);this.workflowId=$,this.workflowType=U,this.reason=J}}class T4 extends Event{static type="workflow:teardown";workflowId;workflowType;status;attempts;error;constructor($,U,J,G,X){super(T4.type);this.workflowId=$,this.workflowType=U,this.status=J,this.attempts=G,this.error=X}}class L8 extends v{payloadKind;serializedBytes;maxBytes;constructor($,U,J){super("PayloadSizeExceededError",`${$} exceeds the configured maximum serialized size: ${String(U)} bytes > ${String(J)} byte limit.`);this.payloadKind=$,this.serializedBytes=U,this.maxBytes=J}}function T6($,U,J){if(U===null)return;let G=W($).byteLength;if(G>U)throw new L8(J,G,U)}function V8($,U,J){let G=W($);if(U!==null&&G.byteLength>U)throw new L8(J,G.byteLength,U);return G}var $f="async-act:v1",wB="async-act:v1:";function ZX($){return`${wB}${N($)}:`}class YX 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=$}}class P8 extends v{token;constructor($){super("AsyncActivityTokenNotFoundError",`No pending async activity found for token "${$}". The token may be unknown, already completed, or already failed (tokens are single-use).`);this.token=$}}function Uf($){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 cB($,U,J){return`${$f}:${$}:${U}:${J}`}function Jf($,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(P.asyncActivity(U.workflowId,U.token),W(J))}async function Gf($,U){let J=$.pendingAsyncActivities.has(U.token);if($.pendingAsyncActivities.set(U.token,U),await Jf($.storage,U),!J)$.engine.dispatchEvent(new _0(U.token,U.operationId,U.workflowId,U.activityName,U.attempt))}async function pB($,U,J,G){let X=Yf($,J.workflowId,U.token);if(X!==void 0)return lB(J.workflowId,X,G),new Promise(()=>{});return await Gf($,{token:U.token,createdAt:$.options.getNow(),...J}),new Promise(()=>{})}async function dB($){for await(let[,U]of $.storage.scan(wB)){let J=A(U);if(!Uf(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 Xf($,U){let J=$.pendingAsyncActivities.get(U);if(!J)throw new P8(U);$.pendingAsyncActivities.delete(U);try{await $.storage.delete(P.asyncActivity(J.workflowId,U))}catch(G){throw $.pendingAsyncActivities.set(U,J),G}return J}function Qf($,U){return $.inlineStrategy!==null&&!$.inlineStrategy.hasGenerator(U)}function Zf($,U,J){$.pendingAsyncActivityResolutions??=new Map;let G=$.pendingAsyncActivityResolutions.get(U)??[];G.push(J),$.pendingAsyncActivityResolutions.set(U,G)}function Yf($,U,J){$.pendingAsyncActivityResolutions??=new Map;let G=$.pendingAsyncActivityResolutions.get(U);if(G===void 0)return;let X=G.findIndex((Z)=>Z.token===J);if(X===-1)return;let Q=G[X];if(Q===void 0)return;if(G.splice(X,1),G.length===0)$.pendingAsyncActivityResolutions.delete(U);return Q}function lB($,U,J){J.finalizeTimeline($,U.timelineStatus,U.timelineOutput),J.feedOperationResult($,U.outcome,U.originalReason)}async function iB($,U,J,G,X){let Q=await Xf($,U),Z=J.status==="completed"?J.value:J.error,Y={token:U,outcome:J,timelineStatus:J.status,timelineOutput:Z,...X!==void 0?{originalReason:X}:{}};if(Qf($,Q.workflowId)){Zf($,Q.workflowId,Y);return}lB(Q.workflowId,Y,G)}async function nB($,U,J,G){T6(J,$.options.payloadSizePolicy.maxBytes,"activity result"),await iB($,U,{status:"completed",value:J},G)}async function rB($){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 oB($,U,J,G){let X=J instanceof Error?J.message:String(J),Q=J instanceof Error?J.name:void 0;T6({message:X,name:Q},$.options.payloadSizePolicy.maxBytes,"activity result"),await iB($,U,{status:"failed",error:X,...J instanceof Error?{errorName:J.name}:{},failureCategory:"application"},G,{value:J})}function _X($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function QH($){return _X($)&&$.version===1&&_X($.attempts)&&($.completedRetrySleeps===void 0||_X($.completedRetrySleeps))&&($.dispatchedAt===void 0||_X($.dispatchedAt))}function sB($,U){if(!Number.isInteger($)||$<=1||$>1e4)throw Error(`Invalid checkpointed activity retry attempt ${String($)} for step ${String(U)}`)}function aB($,U){let J=$.checkpointLocals.__weftActivityRetryState;if(!QH(J))return;let G=J.attempts[String(U)];if(G===void 0)return;return sB(G,U),G}function tB($,U){let J=$.checkpointLocals.__weftActivityRetryState;if(!QH(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 jX($){let U=$.checkpointLocals.__weftActivityRetryState;return QH(U)?U:void 0}function HX($,U,J,G){let{["__weftActivityRetryState"]:X,...Q}=$.checkpointLocals,Z=Object.keys(U).length>0,Y=J!==void 0&&Object.keys(J).length>0,_=G!==void 0&&Object.keys(G).length>0;if(!Z&&!Y&&!_){$.checkpointLocals=Q;return}$.checkpointLocals={...Q,["__weftActivityRetryState"]:{version:1,attempts:U,...Y?{completedRetrySleeps:J}:{},..._?{dispatchedAt:G}:{}}}}function eB($,U,J){sB(J,U);let G=jX($),X=G?{...G.attempts}:{};X[String(U)]=J,HX($,X,G?.completedRetrySleeps,G?.dispatchedAt)}function _f($,U){let J=jX($);if(!J)return;let G={...J.attempts};delete G[String(U)],HX($,G,J.completedRetrySleeps,J.dispatchedAt)}function $W($,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(_f($,U),J===0)return;let G=jX($),X=G?{...G.attempts}:{},Q=G?{...G.completedRetrySleeps}:{};Q[String(U)]=J,HX($,X,Q,G?.dispatchedAt)}function UW($,U,J){let G=jX($),X=G?.dispatchedAt?.[String(U)];if(typeof X==="number"&&Number.isFinite(X))return X;if(X!==void 0)throw Error(`Invalid checkpointed activity dispatch anchor ${String(X)} for step ${String(U)}`);let Q=G?{...G.attempts}:{},Z=G?.dispatchedAt?{...G.dispatchedAt}:{};return Z[String(U)]=J,HX($,Q,G?.completedRetrySleeps,Z),J}class GW extends v{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}}class ZH extends v{activityName;attempt;timeoutMs;constructor($,U,J){super("ActivityPerAttemptTimeoutError",`Activity "${$}" attempt ${U} exceeded its per-attempt timeout of ${J}ms`);this.activityName=$,this.attempt=U,this.timeoutMs=J}}var JW=2147483647;function XW($){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=Q$($);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>JW)throw Error(`Activity timeout of ${U}ms exceeds the maximum supported per-attempt cap of ${JW}ms (~24.8 days).`);return U}function QW($){return $===void 0?void 0:Q$($)}function ZW($,U){if(U?.scheduleToCloseTimeout!==void 0)return U.scheduleToCloseTimeout;if(typeof $==="string")return;return $.scheduleToCloseTimeout}function YW($,U){if(U?.timeout!==void 0)return U.timeout;if(typeof $==="string")return;return $.timeout}function jf($,U){return U-$.dispatchedAt>=$.budgetMs}function YH($,U,J,G){if($===void 0)return;if(!jf($,G??J))return;throw new GW(U,J-$.dispatchedAt,$.budgetMs,G!==void 0&&J-$.dispatchedAt<$.budgetMs?G-$.dispatchedAt:void 0)}var Hf=Object.freeze({}),Df="sessionState",Lf=new Set(["timeout","queue","retry","idempotencyKey","sticky","visibilityTimeout","scheduleToCloseTimeout"]),Vf=new Set(["queue","retry","idempotencyKey","sticky","visibilityTimeout","scheduleToCloseTimeout"]);function LX($){if($===null||typeof $!=="object"||Array.isArray($))return!1;let U=Object.keys($);if(U.length===0)return!1;for(let J of U)if(!Lf.has(J))return!1;for(let J of U)if(Vf.has(J))return!0;return!1}function F8($,U){let J=U===void 0?[]:Object.entries(U).filter(([G])=>G!==n9&&G!==Df);if($===void 0){if(J.length===0)return Hf;return Object.fromEntries(J)}return{...Object.fromEntries(J),[n9]:$}}function _W($,U){$.stateSession=U,$.checkpointLocals=F8(U,$.checkpointLocals)}function jW($,U,J){if(J0(U),$.stateSession&&lj($.stateSession,U))return s4($.stateSession[U]);return J===void 0?void 0:s4(J)}function HW($,U,J){J0(U);let G=H8($.stateSession)??j8();return G[U]=s4(J),nj(G),_W($,G),s4(G[U])}function Pf($,U,J,G){return HW($,U,G(jW($,U,J)))}function Ff($,U){if(J0(U),!$.stateSession||!lj($.stateSession,U))return;let J=H8($.stateSession)??j8();delete J[U],_W($,Object.keys(J).length===0?void 0:J)}function Mf($){if($.length>2)throw Error("sessionState.run() accepts one activity input value plus optional ActivityCallOptions.");if($.length===0)return{hasInput:!1,options:{sticky:!0}};if($.length===1&&LX($[0]))return{hasInput:!1,options:{...$[0],sticky:!0}};if($.length===1)return{hasInput:!0,input:$[0],options:{sticky:!0}};let U=$[1];if(!LX(U))throw Error("sessionState.run() options must be ActivityCallOptions.");return{hasInput:!0,input:$[0],options:{...U,sticky:!0}}}function DX($,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 DW($,U,J,G){let X=G!==void 0&&"initial"in G,Q=X?s4(G.initial):void 0;return{get:()=>DX(U,()=>jW(U,J,X?Q:void 0)),set:(L)=>DX(U,()=>HW(U,J,L)),update:(L)=>DX(U,()=>Pf(U,J,X?Q:void 0,L)),delete:()=>{DX(U,()=>{Ff(U,J);return})},increment(L=1){return this.update((F)=>(F??0)+L)},decrement(L=1){return this.update((F)=>(F??0)-L)},merge(L){return this.update((F)=>({...F??{},...L}))},append(L){return this.update((F)=>[...F??[],L])},removeFirst(){let L;return this.update((F)=>{let M=[...F??[]];return L=M.shift(),M}),L},removeLast(){let L;return this.update((F)=>{let M=[...F??[]];return L=M.pop(),M}),L},run:(L,...F)=>{let M=Mf(F);if(!M.hasInput)return $.run(L,M.options);return $.run(L,M.input,M.options)}}}var LW=new WeakMap;function VW($,U,J){let G={context:$,abortController:U.abortController,stepIndex:U.initialStep??0,accumulatedResults:U.accumulatedResults,stateSession:J,checkpointLocals:F8(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};LW.set($,G)}function g($){let U=LW.get($);if(!U)throw Error("Context internals not initialized");return U}function Bf($){if(typeof $!=="function")return!1;if($.length===0)return!0;let U=$.execute;return typeof U==="function"&&U.length===0}function Wf($,U){let J=U.at(-1);return U.length>0&&LX(J)&&(U.length>1||typeof $!=="string"&&Bf($))}function Kf($,U){let J=[...U],G=Wf($,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 qf($,U,J){let G=QW(J);if(G===void 0)return;return{budgetMs:G,dispatchedAt:UW($,U,$.getNow())}}function Nf($,U){if(U!==void 0)return U;return typeof $==="string"?$:$.name||"anonymous"}function Of($){return typeof $==="function"?$:void 0}function Af($,U,J,G){let X=$.accumulatedResults?.has(U)??!1;if(X){let Z=$.accumulatedResults?.get(U);if($.stepIndex+=tB($,U),$.explainMode)console.log(`[weft] ctx.run(${J}) → Returning cached result from step ${U}`);return{request:{type:"activity",operationId:"",activityName:J,input:G},step:U,hasCachedResult:X,cachedResult:Z,retryAttempt:1}}let Q=aB($,U);if(Q!==void 0)return $.stepIndex+=Q-2,{request:{type:"activity",operationId:"",activityName:J,input:G},step:U,hasCachedResult:!1,retryAttempt:Q};return{request:{type:"activity",operationId:"",activityName:J,input:G},step:U,hasCachedResult:X,retryAttempt:1}}function Cf($,U,J,G,X,Q){let Z=Q?.queue??"default";if($.explainMode)console.log(`[weft] ctx.run(${J}, ${JSON.stringify(X)})`),console.log(` → Creating checkpoint at step ${U}`),console.log(` → Dispatching activity "${J}" to queue "${Z}"`);return{type:"activity",operationId:crypto.randomUUID(),activityName:J,step:U,...G!==void 0?{fn:G}:{},input:X,callerStack:s(),...Q!==void 0?{options:Q}:{}}}function Rf($,U){let J=typeof $==="string"?void 0:$.retry,G=U?.retry;if(J===void 0&&G===void 0)return;return{...$M,...J,...G}}function Tf($,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 Ef($,U,J){return U!==void 0&&J<U.maxAttempts&&!Tf($,U)}function xf($,U){if(U===1)return $;return{...$,operationId:crypto.randomUUID(),attempt:U}}function Sf($,U,J,G){let{input:X,options:Q}=Kf(U,J),Z=Nf(U,G),Y=Of(U),_=g($),H=_.stepIndex++,D=Af(_,H,Z,X);if(D.hasCachedResult)return D;let L=Rf(U,Q),F=ZW(U,Q),M=YW(U,Q),K=M===void 0?Q:{...Q,timeout:M};return{request:Cf(_,H,Z,Y,X,K),step:H,hasCachedResult:!1,retryAttempt:D.retryAttempt,...L===void 0?{}:{retryPolicy:L},...F===void 0?{}:{scheduleToCloseTimeout:F}}}function*PW($,U,J,G){let{request:X,step:Q,hasCachedResult:Z,cachedResult:Y,retryAttempt:_,retryPolicy:H,scheduleToCloseTimeout:D}=Sf($,U,J,G);if(Z)return Y;let L=g($),F=H===void 0?void 0:qf(L,Q,D),M=_;if(M>1){if(H===void 0)throw Error(`Missing activity retry policy for checkpointed retry attempt ${M}`);yield*$.sleep(J9(M-1,H))}while(!0){if(M>1)YH(F,X.activityName,L.getNow());try{let K=yield xf(X,M);return $.accumulatedResults.set(Q,K),$W(L,Q,M-1),K}catch(K){if(!Ef(K,H,M))throw K;let S=J9(M,H),h=L.getNow();YH(F,X.activityName,h,h+S);let p=M+1;eB(L,Q,p),yield*$.sleep(S),M=p}}}class bf{workflowId;signal;#$=[];#U;#J=!1;constructor($,U){this.workflowId=$,this.signal=U}async step($,U){let{promise:J,resolve:G,reject:X}=Promise.withResolvers();return this.#$.push({name:$,fn:U,resolve:G,reject:X}),this.#U?.(),J}async dequeue(){if(this.#$.length>0)return this.#$.shift();if(this.#J)return null;let{promise:$,resolve:U}=Promise.withResolvers();if(this.#U=U,await $,this.#U=void 0,this.#J&&this.#$.length===0)return null;return this.#$.shift()??null}signalDone(){this.#J=!0,this.#U?.()}}function*_H(){yield void 0}async function*jH(){yield void 0}function vf(){return _H().next(),jH().next(),{syncGeneratorFunctionPrototype:Object.getPrototypeOf(_H),asyncGeneratorFunctionPrototype:Object.getPrototypeOf(jH),syncGeneratorPrototype:Object.getPrototypeOf(_H.prototype),asyncGeneratorPrototype:Object.getPrototypeOf(jH.prototype)}}var{syncGeneratorFunctionPrototype:gf,asyncGeneratorFunctionPrototype:If,syncGeneratorPrototype:hf,asyncGeneratorPrototype:yf}=vf();function FW($){return Object.getPrototypeOf($)===gf}function MW($){return Object.getPrototypeOf($)===If}function zW($){if($===null||typeof $!=="object")return!1;let U=Object.getPrototypeOf($);if(U===null)return!1;let J=Object.getPrototypeOf(U);return J===hf||J===yf}function M8($,U){let J=$.conditionWaiters.get(U);if(J)J()}var mf=new TextEncoder;function z8($){return mf.encode($).byteLength<=128}function VX($){if($.length===0)throw Error("signalId must be non-empty");if(!z8($))throw Error(`signalId must be at most ${String(128)} bytes`)}var BW=5,WW=new WeakMap;async function NW($,U,J,G,X){let Q=P.signalSequence(U);if(!$.storage.capabilities().conditionalBatch){await kf($.storage,U,async()=>{let Z=await $.storage.get(Q),Y=await qW($,U,Z),_=KW($,U,J,Y,Q);G(_),await $.storage.batch(_),X()});return}J$($.storage,"conditionalBatch","anonymous signal ordering");for(let Z=0;Z<BW;Z+=1){let Y=await $.storage.get(Q),_=await qW($,U,Y),H=KW($,U,J,_,Q);if(G(H),await e($.storage,[{key:Q,expectedValue:Y}],H)){X();return}}throw Error(`Could not allocate anonymous signal sequence for workflow "${U}" after ${BW} attempts`)}async function kf($,U,J){let G=WW.get($);if(!G)G=new Map,WW.set($,G);let X=G.get(U)??Promise.resolve(),Q,Z=new Promise((_)=>{Q=_}),Y=X.then(()=>Z,()=>Z);G.set(U,Y);try{await X.catch(()=>{}),await J()}finally{if(Q(),G.get(U)===Y)G.delete(U)}}function KW($,U,J,G,X){let Q=J.map(({signalName:Z,payload:Y},_)=>({type:"put",key:P.signal(U,Z,ff(G+_)),value:V8(Y,$.options.payloadSizePolicy.maxBytes,"signal payload")}));return Q.push({type:"put",key:X,value:W(G+J.length)}),Q}function ff($){return`anonymous:${String($).padStart(16,"0")}:${crypto.randomUUID()}`}async function qW($,U,J){if(J!==null)return cf(J);return uf($,U)}async function uf($,U){let J=`sig:${N(U)}:`,G=0;for await(let[X]of $.storage.scan(J)){let Q=wf(X);if(Q!==null&&Q>=G)G=Q+1}return G}function wf($){let J=$.lastIndexOf(":anonymous%3A");if(J===-1)return null;let G=J+13,X=$.indexOf("%3A",G);if(X===-1)return null;let Q=Number($.slice(G,X));return Number.isSafeInteger(Q)&&Q>=0?Q:null}function cf($){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}function t4($,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 PX($,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 FX($,U){$.pendingAtomicWorkflowCommitSideEffects.delete(U)}function OW($,U,J){let G=$.pendingAtomicWorkflowCommitSideEffects.get(U);if(G===void 0)return!1;return G.operations.some((X)=>X.type==="put"&&X.key===J)}var pf=new Uint8Array(0),TW={ok:!0},df=5;async function EW($,U,J,G,X,Q={}){let Z=async(_,H,D)=>{await lf($,_,[{signalName:H,payload:D}],X,Q)},Y=X.getComposedInterceptor();if(Y){let _,H=!1;try{Y.signalReceived({workflowId:U,signalName:J,payload:G,headers:new Map},(D)=>{if(H)throw Error("signalReceived interceptor called next() more than once");H=!0,_=Z(D.workflowId,D.signalName,D.payload)})}catch(D){if(_)await _;throw D}if(!_)return;await _}else await Z(U,J,G)}function B8($,U,J,G){let X=$.signalWaiters.get(J);if(!X)return;if(G&&X!==G)return;$.signalWaiters.delete(J),J6($.signalWaitersByWorkflow,U,J)}async function lf($,U,J,G,X={}){if(J.length===0)return;let Q=await G.loadWorkflowState(U);if(Q&&P$(Q.status))return;let Z=af(J,X);if(tf(J,X,Z),Z!==void 0)J$($.storage,"conditionalBatch","signal idempotency");if(Z!==void 0){let Y=nf($,U,J,Z);AW($,U,Y);let _=J[0],H=P.signalAcceptedResponse(U,_.signalName,Z),D=W(TW);if(await $.storage.get(H)!==null)return;if(!await e($.storage,[{key:H,expectedValue:null}],[...Y,{type:"put",key:H,value:D}]))return;CW($,U),RW($,U,J,G);return}await NW($,U,J,(Y)=>AW($,U,Y),()=>CW($,U)),RW($,U,J,G)}function nf($,U,J,G){return J.map(({signalName:X,payload:Q})=>({type:"put",key:P.signal(U,X,G),value:V8(Q,$.options.payloadSizePolicy.maxBytes,"signal payload")}))}function xW($,U,J,G,X){VX(X);let Q=P.startSignal(U,J,X),Z=P.signalAcceptedResponse(U,J,X);return{operations:[{type:"put",key:Q,value:V8(G,$.options.payloadSizePolicy.maxBytes,"signal payload")},{type:"put",key:Z,value:W(TW)}],condition:{key:Z,expectedValue:null}}}function AW($,U,J){if($.workflowsNeedingTerminalCleanup.has(U))return;J.push({type:"put",key:P.terminalCleanupNeeded(U),value:pf})}function CW($,U){$.workflowsNeedingTerminalCleanup.add(U)}function RW($,U,J,G){let X=!1;for(let{signalName:Q,payload:Z,options:Y}of J){if(Y?.emitPublicEvent!==!1)G.dispatchEvent(new L0(U,Q,Z)),G.broadcast({type:"signal:received",workflowId:U,signalName:Q});let _=`${U}:${Q}`,H=$.signalWaiters.get(_);if(H){B8($,U,_,H),H();continue}if($.parkedInlineWorkflows.has(U))X=!0}if(X)G.resumeParkedInlineWorkflow(U)}async function SW($,U,J){return await DH($,U,J)!==null}async function W8($,U,J){let G=await DH($,U,J);if(G===null)return{found:!1};return t4($,U,{conditions:[{key:G.key,expectedValue:new Uint8Array(G.value)}],operations:[{type:"delete",key:G.key}]}),{found:!0,payload:A(G.value)}}async function HH($,U,J){let G=await DH($,U,J);return G===null?{found:!1}:{found:!0,payload:A(G.value)}}async function DH($,U,J){let G=N(U),X=N(J),Q=of(G,X);return await rf($,Q,G,X)}async function rf($,U,J,G){for await(let[X,Q]of $.storage.scan(U,{limit:1}))if(sf(X,J,G))return{key:X,value:Q};return null}function of($,U){return`sig:${$}:${U}:`}function sf($,U,J){let G=$.split(":");return G.length===df&&G[0]==="sig"&&G[1]===U&&G[2]===J&&(G[3]==="0"||G[3]==="1")&&G[4]!==""}function af($,U){if($.length!==1)return;return $[0]?.options?.signalId??U.signalId}function tf($,U,J){if(J!==void 0){VX(J);return}for(let G of $){let X=G.options?.signalId??U.signalId;if(X!==void 0)VX(X)}}function e4($,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 J6($,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)}}async function bW($,U,J,G){let{promise:X,resolve:Q}=Promise.withResolvers(),Z=!1;G({payload:U,respond:(H)=>{if(Z)return;Z=!0,Q(H)}});let _;try{return await Promise.race([X,new Promise((H,D)=>{_=setTimeout(()=>D(new Q0($,J)),J)})])}finally{clearTimeout(_)}}async function vW($,U,J,G,X,Q){let Z=X?.timeout??30000;await uW($,U,J,G),await Q.guardTerminalWorkflow(U);let Y=await ef($,U,J,G,Q);if(Y.handled)return Y.value;let _=await $u($,U,J,G,Z,Q);if(_.handled)return _.value;return await Uu($,U,J,G,Z,Q)}async function ef($,U,J,G,X){let Q=$.inlineStrategy?.getContext(U)?.updateHandlers.get(J);if(!Q)return{handled:!1};let Z=crypto.randomUUID();X.dispatchEvent(new A6(Z,U,J,G));try{let Y=await LH($,J,Q,G);return X.dispatchEvent(new U6(Z,U,J,Y)),X.broadcast({type:"update:completed",workflowId:U,updateId:Z}),M8($,U),{handled:!0,value:Y}}catch(Y){let _=Y instanceof Error?Y.message:String(Y);throw X.dispatchEvent(new U6(Z,U,J,void 0,_)),X.broadcast({type:"update:completed",workflowId:U,updateId:Z}),M8($,U),Y}}async function $u($,U,J,G,X,Q){let Z=`${U}:${J}`,Y=$.updateWaiters.get(Z);if(!Y)return{handled:!1};let _=await Q.findPendingUpdateByName(U,J);if($.updateWaiters.get(Z)!==Y||_)return{handled:!1};$.updateWaiters.delete(Z),J6($.updateWaitersByWorkflow,U,Z);let H=crypto.randomUUID();Q.dispatchEvent(new A6(H,U,J,G));let D=await bW(H,G,X,Y);return Q.dispatchEvent(new U6(H,U,J,D)),Q.broadcast({type:"update:completed",workflowId:U,updateId:H}),{handled:!0,value:D}}async function Uu($,U,J,G,X,Q){let Z=await $.updateCoordinator.createRequest(U,J,G);Q.schedulePendingInlineUpdateDrain(U),await Q.guardTerminalWorkflowAfterCoordinatedRequest(U,Z),Q.dispatchEvent(new A6(Z,U,J,G)),await Q.deliverCoordinatedUpdateToWaiterIfAvailable(U,{updateId:Z,workflowId:U,name:J,payload:G,createdAt:Date.now()});let Y=await $.updateCoordinator.waitForResponse(Z,X);if(Y.error)throw Error(Y.error);return Y.result}async function gW($,U){return $.updateCoordinator.getResponse(U)}async function IW($,U,J,G,X,Q){let Z=X?.timeout??30000,Y=X?.idempotencyKey;if(Y!==void 0){let F=await $.updateCoordinator.checkIdempotency(U,Y);if(F!==null)return{updateId:F.updateId,result:F.result}}await uW($,U,J,G),await Q.guardTerminalWorkflow(U);let _={timeout:Z};if(Y!==void 0)_.idempotencyKey=Y;let H=await $.updateCoordinator.createRequest(U,J,G,_);Q.schedulePendingInlineUpdateDrain(U),await Q.guardTerminalWorkflowAfterCoordinatedRequest(U,H),await Q.deliverCoordinatedUpdateToWaiterIfAvailable(U,{updateId:H,workflowId:U,name:J,payload:G,createdAt:Date.now(),idempotencyKey:Y},!0);let D=await $.updateCoordinator.waitForResponse(H,Z),L={updateId:D.updateId,result:D.result};if(D.error!==void 0)L.error=D.error;return L}async function hW($,U,J,G){let X=`${U}:${J.updateName}`,Q=await G.findPendingUpdateByName(U,J.updateName);if(Q){await $.updateCoordinator.deleteRequest(U,Q.updateId),G.dispatchPendingUpdateReceived(U,J.updateName,Q),G.completeOperation(U,{payload:Q.payload,respond:G.createCoordinatedUpdateResponder(U,J.updateName,Q)});return}let{promise:Z,resolve:Y}=Promise.withResolvers();$.updateWaiters.set(X,Y),e4($.updateWaitersByWorkflow,U,X);let _=await G.findPendingUpdateByName(U,J.updateName);if(_){if($.updateWaiters.get(X)===Y)$.updateWaiters.delete(X),J6($.updateWaitersByWorkflow,U,X);await $.updateCoordinator.deleteRequest(U,_.updateId),G.dispatchPendingUpdateReceived(U,J.updateName,_),G.completeOperation(U,{payload:_.payload,respond:G.createCoordinatedUpdateResponder(U,J.updateName,_)});return}G.completeOperation(U,await Z)}function yW($,U,J,G,X){X.dispatchEvent(new A6(G.updateId,U,J,G.payload))}function mW($,U,J,G,X){let Q=!1;return(Z)=>{if(Q)return;Q=!0,X.persistCoordinatedUpdateResponse(U,J,G.updateId,G.idempotencyKey,Z)}}async function kW($,U,J,G=!1,X){let Q=`${U}:${J.name}`,Z=$.updateWaiters.get(Q);if(!Z)return!1;let Y=await X.findPendingUpdateByName(U,J.name);if(!Y||Y.updateId!==J.updateId)return!1;if(await $.updateCoordinator.deleteRequest(U,J.updateId),$.updateWaiters.delete(Q),J6($.updateWaitersByWorkflow,U,Q),G)X.dispatchPendingUpdateReceived(U,J.name,J);return Z({payload:J.payload,respond:X.createCoordinatedUpdateResponder(U,J.name,J)}),!0}async function fW($,U,J){return(await $.updateCoordinator.getPendingUpdates(U)).find((X)=>X.name===J)}async function LH($,U,J,G){let X=J(G);if(zW(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 uW($,U,J,G){let X=$.inlineStrategy?.getContext(U)?.updateValidators.get(J);if(X===void 0)return;let Q;try{Q=await X(G)}catch(Y){let _=Y instanceof Error?Y.message:String(Y);throw new A4(J,[{message:_}])}let Z=VH(Q);if(Z!==null&&Z.length>0)throw new A4(J,Z)}function VH($){if($===null||typeof $!=="object"||!("issues"in $))return null;let{issues:U}=$;if(!Array.isArray(U))return null;return U.flatMap((J)=>{if(J===null||typeof J!=="object")return[];let G=J;if(typeof G.message!=="string")return[];let X={message:G.message};if(Array.isArray(G.path)&&G.path.length>0)X.path=G.path.reduce((Q,Z)=>{let Y=Z!==null&&typeof Z==="object"&&"key"in Z?String(Z.key):String(Z);return Q+"/"+Y.replace(/~/g,"~0").replace(/\//g,"~1")},"");return[X]})}function wW($,U,J,G){let X=$.handleCache.get(U);if(!X)return;let Q=X.ref.deref();if(!Q)return;Q.dispatchEvent(J)}function cW($,U,J,G,X){yW($,U,J,G,{dispatchEvent:X.dispatchEvent})}function $1($,U,J){if(!$.options.broadcastEvents)return;if($.broadcastChannel===null)try{$.broadcastChannel=new BroadcastChannel("weft:events")}catch{return}$.broadcastChannel.postMessage(U)}var Ju=3,Gu='Field "filter" must include at least one of status, type, tags, attributes, idPrefix (≥3 chars), or failureCategory paired with status';function Xu($){if($.status===void 0)return!1;if(Array.isArray($.status))return $.status.length>0;return $.status.length>0}function Qu($){return $.type!==void 0&&$.type.trim().length>0}function Zu($){return(V$($.tags)?.length??0)>0}function Yu($){return $.attributes?.some((U)=>N$(U.key).trim().length>0)??!1}function _u($){return $.idPrefix!==void 0&&$.idPrefix.length>=Ju}var ju={status:Xu,type:Qu,tags:Zu,attributes:Yu,idPrefix:_u};function Hu($){return Object.values(ju).some((U)=>U($))}function o6($){if(!Hu($))throw Error(Gu);return $}class u1 extends v{workflowId;timeoutType;elapsed;constructor($,U,J){super("WorkflowTimeoutError",`Workflow "${$}" exceeded ${U} timeout after ${J}ms`);this.workflowId=$,this.timeoutType=U,this.elapsed=J}}var Du=new TextEncoder,Lu=new TextDecoder;function PH($){let U=new Uint8Array(8);return new DataView(U.buffer).setBigUint64(0,BigInt($),!1),U}function MX($){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 FH($){return Du.encode(JSON.stringify($))}function Vu($){return typeof $==="object"&&$!==null}function zX($){let U;try{U=JSON.parse(Lu.decode($))}catch{return null}if(!Vu(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 pW="WeftEngineLeaseLostWarning";function K8($){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(()=>{})}class BX extends v{waitedMs;heldBy;constructor($,U){let J=U===null?"":` (currently held by "${U}")`;super("EngineLeaseAcquisitionTimeoutError",`Could not acquire the storage ownership lease within ${$}ms${J}. Another engine instance still holds it. Increase leaseWaitTimeout above the outgoing instance's drain time and the lease TTL, or ensure the previous instance releases the lease on shutdown.`);this.waitedMs=$,this.heldBy=U}}class q8 extends v{constructor($){super("EngineLeaseCorruptedError",`The ownership lease state in storage is corrupt and cannot be used safely: ${$}. Resolve by operator repair (delete both "lease:" keys only if no other instance is running, or reset "lease:epoch" above its last known value).`)}}class MH extends v{constructor(){super("EngineLeaseNotHeldError","ownership: 'lease' requires the engine to hold the lease before starting work. Use `Engine.create({ ownership: \"lease\" })` (which acquires the lease and recovers), or call `await engine.recoverAll()` on a directly-constructed engine before `start()`.")}}class N8 extends v{constructor(){super("EngineDeposedError","Engine was deposed: a fenced durable write lost its CAS race because another instance now holds the ownership lease at a newer epoch. This engine is halting.")}}function O8($){if($.options.ownershipMode!=="lease")return;if(!(!$.deposed&&$.leaseManager!==null&&$.leaseManager.currentEpochBytes()!==null))throw new MH}async function dW($,U,J){let G=Pu($);if(G===null){if(J.length===0)return await $.storage.batch(U),"committed";return await e($.storage,J,U)?"committed":"lost-race"}let X=[...J,{key:P.leaseEpoch(),expectedValue:G}];if(await e($.storage,X,U))return"committed";if(await Mu($,G))throw K8($),new N8;return"lost-race"}function Pu($){if($.deposed)throw new N8;if($.options.ownershipMode!=="lease")return null;let U=$.leaseManager?.currentEpochBytes()??null;if(U===null)throw K8($),new N8;return U}async function G$($,U,J,G){if(await dW($,U,J)==="lost-race")throw G()}async function q0($,U,J){return await dW($,U,J)==="committed"}function Fu($,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 Mu($,U){let J;try{J=await $.storage.get(P.leaseEpoch())}catch{return!0}if(J===null)return!0;if(MX(J)===null)return!0;return!Fu(U,J)}var lW=["activity:started","activity:completed","signal:received"],iW=uB;async function*nW($,U,J){let G={events:[],resolver:void 0},X={done:!1},Q=zu($,G,X);try{if(!X.done)Wu(G,X,await U(),J);while(!X.done||G.events.length>0){if(G.events.length===0)await Ku(G);while(G.events.length>0)yield G.events.shift()}}finally{Q()}}function zu($,U,J){let G=rW.bind(void 0,U),X=Bu.bind(void 0,J,U);for(let Q of lW)$.addEventListener(Q,G);for(let Q of iW)$.addEventListener(Q,X);return()=>{for(let Q of lW)$.removeEventListener(Q,G);for(let Q of iW)$.removeEventListener(Q,X)}}function rW($,U){$.events.push(U),$.resolver?.()}function Bu($,U,J){if($.done)return;$.done=!0,rW(U,J)}function Wu($,U,J,G){if(!J||U.done)return;let X=G(J);if(!X)return;$.events.push(X),U.done=!0}async function Ku($){let{promise:U,resolve:J}=Promise.withResolvers();$.resolver=J,await U,$.resolver=void 0}function E6($){return $.startedAt??$.createdAt}function oW($){switch($.status){case"completed":{let U=$.updatedAt-E6($);return new C4($.id,$.result,U)}case"failed":{let U=Error($.error??"Workflow failed");if($.errorStack)U.stack=$.errorStack;return new C6($.id,U)}case"cancelled":return new R4($.id);case"timed-out":{let U=$.updatedAt-E6($);return new R6($.id,"execution",U,$.terminationReason)}default:return null}}var zH=Symbol("handleResultPromise");class BH extends EventTarget{id;#$;#U;constructor($,U){super();this.id=$,this.#$=U,this.#U=void 0}async result(){return this.#U??=this.#$[zH](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,i$($),U,J)}async update($,U,J){return this.#$.update(this.id,i$($),U,J)}async query($,U){return this.#$.query(this.id,i$($),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*nW(this,()=>this.#$.get(this.id),oW)}[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 _=(H)=>{if(X)return;J(H)};for(let H of G)this.addEventListener(H,_,{signal:U.signal})}let Q=(_)=>{if(X)return;if(_ instanceof C6)X=!0,$.error?.(_.error);else if(_ instanceof R6)X=!0,$.error?.(new u1(_.workflowId,_.timeoutType,_.elapsed))};this.addEventListener("workflow:failed",Q,{signal:U.signal}),this.addEventListener("workflow:timed-out",Q,{signal:U.signal});let Z=$.complete?.bind($),Y=()=>{if(X)return;X=!0,Z?.()};return this.addEventListener("workflow:completed",Y,{signal:U.signal}),this.addEventListener("workflow:cancelled",Y,{signal:U.signal}),(async()=>{let _=await this.#$.get(this.id);if(U.signal.aborted||X||!_)return;let H=oW(_);if(!H)return;if(J?.(H),H instanceof C6)Q(H);else if(H instanceof R6)Q(H);else Y()})(),{unsubscribe:U.abort.bind(U)}}}}async[Symbol.asyncDispose](){}}function qu($,U,J){if(J===void 0||J<=0)return 0;let G=BigInt(`0x${N9(`${$}\x00${U}`)}`);return Number(G%BigInt(J))}function N0($,U){return U+qu($.id,U,$.jitterMs)}var Nu=new Map([["Sun",0],["Mon",1],["Tue",2],["Wed",3],["Thu",4],["Fri",5],["Sat",6]]),sW=new Map;function aW(){return"UTC"}function tW($){let U=sW.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 sW.set($,J),J}function Ou($,U){let G=tW(U).formatToParts(new Date($)).find((_)=>_.type==="timeZoneName")?.value,X=/^GMT([+-])(\d{1,2})(?::(\d{2}))?$/.exec(G??"");if(!X)return 0;let Q=X[1]==="-"?-1:1,Z=Number.parseInt(X[2],10),Y=Number.parseInt(X[3]??"0",10);return Q*(Z*60+Y)*60000}function WH($,U){let J=tW(U).formatToParts(new Date($)),G=new Map(J.map((Z)=>[Z.type,Z.value])),X=G.get("weekday"),Q=X?Nu.get(X):void 0;if(Q===void 0)throw Error(`Unable to resolve weekday for time zone "${U}"`);return{year:Number.parseInt(G.get("year")??"",10),month:Number.parseInt(G.get("month")??"",10),day:Number.parseInt(G.get("day")??"",10),hour:Number.parseInt(G.get("hour")??"",10),minute:Number.parseInt(G.get("minute")??"",10),second:Number.parseInt(G.get("second")??"",10),dayOfWeek:Q}}function Au($,U){return $.year===U.year&&$.month===U.month&&$.day===U.day&&$.hour===U.hour&&$.minute===U.minute&&$.second===U.second}function U1($,U,J){let G=Date.UTC($.year,$.month-1,$.day,$.hour,$.minute,$.second),X=G;for(let Y=0;Y<6;Y+=1){let _=Ou(X,U),H=G-_;if(H===X)break;X=H}let Q=new Set;for(let Y=-120;Y<=120;Y+=15)Q.add(X+Y*60000);return[...Q].filter((Y)=>Y>=J).filter((Y)=>Au($,WH(Y,U))).toSorted((Y,_)=>Y-_)[0]??null}function WX($,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 A8($,U){for(let J of $)if(J>U)return{value:J,wrapped:!1};return{value:$[0],wrapped:!0}}function eW($,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 Cu=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]]),Ru=new Map([["SUN",0],["MON",1],["TUE",2],["WED",3],["THU",4],["FRI",5],["SAT",6]]);function $K($,U,J,G){let X=$.toUpperCase();if(U?.has(X))return U.get(X);let Q=Number.parseInt($,10);if(!Number.isInteger(Q))throw Error(`Invalid cron token "${$}"`);let Z=G===6&&Q===7?0:Q;if(Z<J||Z>G)throw Error(`Cron token "${$}" is outside the allowed range ${J}-${G}`);return Z}function Tu($,U){return{values:Array.from({length:U-$+1},(J,G)=>$+G),wildcard:!0}}function Eu($,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 UK($,U,J,G){for(let X=U;X<=J;X+=G)$.add(X)}function xu($,U,J,G,X){let[Q="",Z]=U.split("/"),Y=Eu(U,Z);if(Q==="*"||Q==="?"){UK($,J,G,Y);return}let[_,H]=Q.split("-"),D=$K(_,X,J,G),L=H===void 0?D:$K(H,X,J,G);if(D>L)throw Error(`Invalid cron range "${U}"`);UK($,D,L,Y)}function O0($,U,J,G){let X=$.trim();if(X==="*"||X==="?")return Tu(U,J);let Q=new Set,Z=X.split(",");for(let Y of Z){let _=Y.trim();if(_.length===0)throw Error(`Invalid cron field "${$}"`);xu(Q,_,U,J,G)}return{values:[...Q].toSorted((Y,_)=>Y-_),wildcard:!1}}function w1($){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,Q,Z,Y,_]=J?U:["0",...U];return{expression:$,hasSeconds:J,seconds:O0(G,0,59),minutes:O0(X,0,59),hours:O0(Q,0,23),daysOfMonth:O0(Z,1,31),months:O0(Y,1,12,Cu),daysOfWeek:O0(_,0,6,Ru)}}function c1($){return $+1000}function Su($){return{year:$.year,month:$.month,day:$.day,hour:0,minute:0,second:0}}function bu($,U,J,G){let X=A8(J.months.values,U.month);return U1({year:U.year+(X.wrapped?1:0),month:X.value,day:1,hour:0,minute:0,second:0},G,c1($))??$+86400000}function JK($,U,J){return U1(WX(Su(U),{days:1}),J,c1($))??$+86400000}function vu($,U,J,G){let X=A8(J.hours.values,U.hour);return U1({year:U.year,month:U.month,day:U.day,hour:X.value,minute:0,second:0},G,c1($))??JK($,U,G)}function gu($,U,J,G){let X=A8(J.minutes.values,U.minute),Q=U1({year:U.year,month:U.month,day:U.day,hour:U.hour,minute:X.value,second:0},G,c1($));if(Q!==null)return Q;return U1(WX({year:U.year,month:U.month,day:U.day,hour:U.hour,minute:0,second:0},{hours:1}),G,c1($))??$+3600000}function Iu($,U,J,G){let X=A8(J.seconds.values,U.second),Q=U1({year:U.year,month:U.month,day:U.day,hour:U.hour,minute:U.minute,second:X.value},G,c1($));if(Q!==null)return Q;return U1(WX({year:U.year,month:U.month,day:U.day,hour:U.hour,minute:U.minute,second:0},{minutes:1}),G,c1($))??$+60000}function KX($,U,J){let G=typeof $==="string"?w1($):$,X=J?.timeZone??aW(),Q=A$(Math.floor(U/1000)*1000+1000,"Cron occurrence candidate");for(let Z=0;Z<1e5;Z+=1){let Y=WH(Q,X);if(!G.months.values.includes(Y.month)){Q=bu(Q,Y,G,X);continue}if(!eW(Y,G)){Q=JK(Q,Y,X);continue}if(!G.hours.values.includes(Y.hour)){Q=vu(Q,Y,G,X);continue}if(!G.minutes.values.includes(Y.minute)){Q=gu(Q,Y,G,X);continue}if(!G.seconds.values.includes(Y.second)){Q=Iu(Q,Y,G,X);continue}return Q}throw Error(`Could not find the next cron occurrence for "${G.expression}"`)}function KH($,U,J,G){let X=typeof $==="string"?w1($):$,Q=[],Z=G?.maxOccurrences;if(Z!==void 0&&(!Number.isSafeInteger(Z)||Z<=0))throw Error("Cron occurrence maxOccurrences must be a positive safe integer");let Y=Z??Number.POSITIVE_INFINITY,_=U;while(_<=J&&Q.length<Y)Q.push(_),_=KX(X,_,G);return Q}var qH=new Set(["active","paused","cancelled"]),NH=new Set(["skip","queue","cancel-running","allow"]);function C8($){return typeof $==="number"&&Number.isSafeInteger($)&&$>=0}function hu($){return typeof $==="string"&&qH.has($)}function yu($){return typeof $==="string"&&NH.has($)}function qX($){if(typeof $!=="string")return!1;try{return W4($,"schedule id"),!0}catch{return!1}}function J1($,U){return W4($,U)}function QK($){if($===void 0)return{overlap:"skip",backfill:!1};if(typeof $!=="object"||$===null)throw Error("options must be an object when provided");let{id:U,overlap:J,backfill:G,jitter:X}=$,Q={overlap:"skip",backfill:!1};if(U!==void 0)Q.id=J1(U,"options.id");if(J!==void 0){if(!NH.has(J))throw Error(`options.overlap must be one of ${[...NH].join(", ")}`);Q.overlap=J}if(G!==void 0){if(typeof G!=="boolean")throw Error("options.backfill must be a boolean when provided");Q.backfill=G}if(X!==void 0)Q.jitterMs=mu(X,"options.jitter");return Q}function mu($,U){if(typeof $!=="string"&&typeof $!=="number")throw Error(`${U} must be a duration string or a number of milliseconds`);let J;try{J=Q$($)}catch(X){let Q=X instanceof Error?X.message:String(X);throw Error(`Invalid ${U}: ${Q}`,{cause:X})}let G=Math.ceil(J);if(!Number.isSafeInteger(G)||G<=0)throw Error(`${U} must resolve to a positive number of milliseconds`);return G}function ku($){if(typeof $!=="string"&&typeof $!=="number")throw Error('Schedule interval "every" must be a duration string or a number of milliseconds');let U;try{U=Q$($)}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 GK($){if(typeof $!=="string")throw Error('Schedule "cron" must be a string');return w1($),{kind:"cron",cronExpression:$}}function OH($){if(typeof $==="string")return GK($);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?ku($.every):GK($.cron)}function fu($){if($===void 0)return;let U=Array.isArray($)?$:[$];for(let J of U)if(!qH.has(J))throw Error(`filter.status must be one of ${[...qH].join(", ")}`)}function uu($){if($===void 0)return;if(typeof $!=="string"||$.length===0)throw Error("filter.workflowType must be a non-empty string when provided")}function XK($,U){if($===void 0)return;if(!Number.isSafeInteger($)||$<0)throw Error(`filter.${U} must be a non-negative safe integer when provided`)}function ZK($){if($===void 0)return;if(typeof $!=="object"||$===null)throw Error("filter must be an object when provided");return fu($.status),uu($.workflowType),XK($.limit,"limit"),XK($.offset,"offset"),$}function M$($,U){let J=$===void 0?"[weft] Ignoring malformed schedule record":`[weft] Ignoring malformed schedule "${$}"`;return console.warn(`${J} ${U}.`),null}function wu($,U){let{cronExpression:J,intervalMs:G}=$,X=J!==void 0,Q=G!==void 0;if(X===Q)return M$(U,"with conflicting or missing cadence (expected exactly one of cronExpression or intervalMs)");if(Q){if(typeof G!=="number"||!Number.isSafeInteger(G)||G<=0)return M$(U,"with invalid intervalMs");return{intervalMs:G}}if(typeof J!=="string")return M$(U,"with invalid cronExpression");try{w1(J)}catch{return M$(U,"with invalid cronExpression")}return{cronExpression:J}}function cu($){let U=$.id;if(!qX(U))return M$(void 0,"with invalid id");let J=$.workflowType;if(typeof J!=="string"||J.length===0)return M$(U,"with invalid workflowType");let G=wu($,U);if(!G)return null;let X=$.status;if(!hu(X))return M$(U,"with invalid status");let Q=$.overlap;if(!yu(Q))return M$(U,"with invalid overlap policy");return{id:U,workflowType:J,status:X,overlap:Q,...G}}function pu($,U){let J=$.backfill;if(typeof J!=="boolean")return M$(U,"with invalid backfill flag"),null;return J}function du($,U){let J=$.jitterMs;if(J===void 0)return;if(typeof J!=="number"||!Number.isSafeInteger(J)||J<=0)return M$(U,"with invalid jitterMs"),null;return J}function lu($,U){let{createdAt:J,updatedAt:G}=$;if(!C8(J)||!C8(G))return M$(U,"with invalid timestamps");let X=$.lastFireAt;if(X!==void 0&&!C8(X))return M$(U,"with invalid lastFireAt");let Q=$.lastMissedFireAt;if(Q!==void 0&&!C8(Q))return M$(U,"with invalid lastMissedFireAt");return{createdAt:J,updatedAt:G,...X!==void 0&&{lastFireAt:X},...Q!==void 0&&{lastMissedFireAt:Q}}}function iu($,U){let J=$.nextFireAt;if(J===void 0)return M$(U,"with invalid nextFireAt"),{ok:!1};if(J!==null&&!C8(J))return M$(U,"with invalid nextFireAt"),{ok:!1};return{ok:!0,value:J}}function nu($,U){let J=$.currentWorkflowId;if(J===void 0)return{ok:!0};if(!qX(J))return M$(U,"with invalid currentWorkflowId"),{ok:!1};return{ok:!0,value:J}}function ru($,U){let J=$.queuedRuns;if(typeof J!=="number"||!Number.isSafeInteger(J)||J<0)return M$(U,"with invalid queuedRuns"),null;return J}function ou($,U){let J=$.missedFireCount;if(J===void 0)return 0;if(typeof J!=="number"||!Number.isSafeInteger(J)||J<0)return M$(U,"with invalid missedFireCount"),null;return J}function su($,U){let J=pu($,U);if(J===null)return null;let G=du($,U);if(G===null)return null;let X=lu($,U);if(X===null)return null;let Q=iu($,U);if(!Q.ok)return null;let Z=nu($,U);if(!Z.ok)return null;let Y=ru($,U);if(Y===null)return null;let _=ou($,U);if(_===null)return null;return{backfill:J,...G!==void 0&&{jitterMs:G},...X,nextFireAt:Q.value,...Z.value!==void 0&&{currentWorkflowId:Z.value},missedFireCount:_,queuedRuns:Y}}function R8($){let U=A($);if(!l6(U))return console.warn("[weft] Ignoring malformed schedule record with non-object payload."),null;let J=cu(U);if(!J)return null;let G=su(U,J.id);if(!G)return null;return{...J,input:U.input,...G}}async function G6($,U,J){let X=($.workflowStateWriteChains.get(U)??Promise.resolve()).catch(()=>{return}).then(J),Q=X.then(()=>{return},()=>{return});$.workflowStateWriteChains.set(U,Q);try{return await X}finally{if($.workflowStateWriteChains.get(U)===Q)$.workflowStateWriteChains.delete(U)}}async function l($,U){let J=await $.storage.get(P.workflow(U));if(!J)return null;return i(J)}async function YK($,U){let J=await l($,U);if(!J)throw Error(`Workflow "${U}" not found`);if(J.status==="completed")return J.result;if(J.status==="failed"){let 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-E6(J):0;throw new u1(U,"execution",G)}throw Error(`Workflow "${U}" is still ${J.status}`)}function au($,U,J,G){let X=G.includePendingAtomicSideEffects?PX($,U):void 0,Q=X===void 0?J:[...J,...X.operations],Y=$.storage.capabilities().conditionalBatch?X?.conditions??[]:[];return{operations:Q,conditions:Y,hasPendingSideEffects:X!==void 0}}async function NX($,U,J,G={}){let X=au($,U.id,J,G);if(await G$($,X.operations,X.conditions,()=>Error(`Workflow state commit for workflow "${U.id}" lost its atomic side-effect precondition.`)),X.hasPendingSideEffects)FX($,U.id)}async function p1($,U){let J=await $.storage.get(P.schedule(U));return J?R8(J):null}async function T8($,U){let J=await p1($,U);if(!J)throw Error(`Schedule "${U}" not found`);return J}async function X6($,U,J){let G=[{type:"put",key:P.schedule(U.id),value:W(U)}];if((J?.includeTimer??U.status==="active")&&U.status==="active"&&U.nextFireAt!==null){let Q=N0(U,U.nextFireAt);G.push(..._$({id:tU(U.id),workflowId:U.id,fireAt:Q,kind:"schedule"}))}await $.storage.batch(G)}async function _K($,U){let J=await $.storage.get(P.workflowHeaders(U));if(!J)return;return cz(J)}var tu=new Uint8Array(0);async function AH($,U,J){if(J===void 0){let X=await $.storage.get(P.attribute(U));if(!X)return;J=A(X)}let G=W$(U,J,{});if(G.push({type:"delete",key:P.attribute(U)}),G.length>0)await $.storage.batch(G)}function OX($,U){return{...Object.fromEntries(Object.entries($).filter(([G])=>G.startsWith("weft:"))),...U}}async function CH($,U,J){if(Object.keys(J).length===0)return;let G=W$(U,{},J);await $.storage.batch([{type:"put",key:P.attribute(U),value:W(J)},...G])}function A0($,U){let J=[];if(P$($.status))J.push({type:"delete",key:P.terminalWorkflow($.updatedAt,$.id)});if(P$(U.status))J.push({type:"put",key:P.terminalWorkflow(U.updatedAt,U.id),value:tu});return J}async function RH($,U,J,G={}){return await G6($,U,async()=>{let X=await $.storage.get(P.workflow(U));if(!X)return null;let Q=i(X);if(G.allowedStatuses&&!G.allowedStatuses.includes(Q.status))return null;let Z=$.options.getNow(),Y={...Q,...J,updatedAt:Z},_=G.buildAdditionalOperations?.(Q,Z)??[];return await NX($,Q,[...A0(Q,Y),{type:"put",key:P.workflow(U),value:W(Y)},...I$(U,Q,Y).batchOps,..._],{includePendingAtomicSideEffects:P$(Y.status)}),{previousState:Q,updatedAt:Z}})}async function AX($,U,J,G){return await G6($,U,async()=>{let X=await $.storage.get(P.workflow(U));if(!X)throw new B4(U);let Q=i(X),Z=V$(Q.tags)??[],Y=Uw(J,"Workflow tags")??[];if(Y.length===0)return!1;let _=eu(Z,Y,G);if($w(Z,_))return!1;let H={...Q,updatedAt:$.options.getNow()};if(_!==void 0)H.tags=_;else delete H.tags;return await $.storage.batch([...A0(Q,H),{type:"put",key:P.workflow(U),value:W(H)},...I$(U,Q,H).batchOps,...lU(U,Z,_)]),!0})}function eu($,U,J){let G=new Set($);for(let Q of U)if(J==="add")G.add(Q);else G.delete(Q);let X=V$([...G]);if(J==="add"&&X!==void 0)Dj(X,"Workflow tags");return X}function $w($,U){return $.length===(U?.length??0)&&$.every((J,G)=>J===U?.[G])}async function jK($,U,J,G,X){o6(U);let Q=X??await Jw($,U),Z=0;for(let Y of Q){let _=!1;try{_=await AX($,Y,J,G)}catch(H){if(!(H instanceof B4))throw H}if(_)Z+=1}return{modified:Z}}function C0($){for(let[U,J]of Object.entries($))if(Array.isArray(J))for(let G of J)Bj(B$(G),U);else Bj(B$(J),U)}function Uw($,U="options.tags"){if($===void 0)return;return V$(j$($,U))}async function Jw($,U){let J=[],G=oU(U?.offset,"offset")??0,X=oU(U?.limit,"limit");if(X===0)return J;for await(let Q of y9($,U)){if(G>0){G-=1;continue}if(J.push(Q.id),X!==void 0)X-=1;if(X===0)return J}return J}var CX=new WeakMap;function RX($,U,J){let G=CX.get($);if(!G)G=new Map,CX.set($,G);G.set(U,new Uint8Array(J))}function HK($,U){let J=CX.get($)?.get(U);return J?new Uint8Array(J):void 0}function G1($,U){CX.get($)?.delete(U)}var TX=1000;async function LK($,U,J){let G=U===void 0?void 0:dU(U),X=V$(G?.tags),Q=await u9($,G,X),Z=Q!==null?await Gw($,Q,G,X,J):await Xw($,G,X,J);return dz(Zw(Z),G)}async function Gw($,U,J,G,X){let Q=[...U];if(Q.length>i6)throw new N6(i6);let Z=[];for(let Y=0;Y<Q.length;Y+=e$){let _=Q.slice(Y,Y+e$),H=await Promise.all(_.map((F)=>$.storage.get(P.workflow(F)))),D=await w9($,H,J),L=[];for(let F of H){if(!F)continue;let M=i(F);if(!O4(M,J,U,G,D.get(M.id)??null))continue;L.push(M)}Z.push(...await Qw($,L,X))}return Z}async function Xw($,U,J,G){let X=[],Q=0;for await(let[Z,Y]of $.storage.scan("wf:")){if(!Q8(Z))continue;if(Q+=1,Q>i6)throw new N6(i6);let _=i(Y),H=await c9($,_.id,U);if(!O4(_,U,null,J,H))continue;let D=VK(_,G)?await $.storage.get(P.attribute(_.id)):null;X.push(MK(_,PK(D)))}return X}async function Qw($,U,J){let G=new Map;return await Promise.all(U.map(async(X)=>{if(!VK(X,J))return;G.set(X.id,await $.storage.get(P.attribute(X.id)))})),U.map((X)=>MK(X,PK(G.get(X.id)??null)))}function VK($,U){return U?.includeFailureCategory===!0&&$.status==="failed"&&($.failureCategory===void 0||$.failureCategory===null)}function PK($){if($===null)return;let U=A($);if(!FK(U))return;let J=U.failureCategory;if(d6(J))return J;return z9(J)}function FK($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function MK($,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 Zw($){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*TH($,U){yield*y9($,U)}async function*EH($,U){let J=Yw(U);if(DK(J))return;let G=[];for await(let X of TH($,U)){if(_w(J))continue;if(G.push(X),jw(J),G.length===TX)yield G,G=[];if(DK(J))break}if(G.length>0)yield G}function Yw($){return{remainingOffset:oU($?.offset,"offset")??0,remainingLimit:oU($?.limit,"limit")}}function _w($){if($.remainingOffset<=0)return!1;return $.remainingOffset-=1,!0}function jw($){if($.remainingLimit===void 0)return;$.remainingLimit-=1}function DK($){return $.remainingLimit===0}async function zK($,U){let J=await $.storage.get(P.attribute(U));if(!J)return null;let G=A(J);if(!FK(G))return null;return G}async function BK($,U,J){let G=await $.storage.get(P.workflow(U));if(G){let H=i(G),D=$.registrations.get(H.type);if(D?.searchAttributes){let L=D.searchAttributes;for(let[F,M]of Object.entries(J)){if(!(F in L))throw Error(`Unknown search attribute "${F}". Registered attributes: ${Object.keys(L).join(", ")}`);d4(F,M,L[F])}}}C0(J);let X=await $.storage.get(P.attribute(U)),Q=X?A(X):{},Z={...Q,...J},Y=W$(U,Q,Z),_=[{type:"put",key:P.attribute(U),value:W(Z)},...Y];await $.storage.batch(_)}async function WK($,U,...J){await AX($,U,J,"add")}async function KK($,U,...J){await AX($,U,J,"remove")}var EX=60000;async function E8($,U,J,G){let{effectiveLimit:X,manualOffset:Q}=Lw($,U,J.limit);if(X===0)return{deleted:0};let Z=Q,Y=0,_=J.expiredOnly&&U===void 0?Dw($,J.now):TH($,U);for await(let H of _){if(!await Mw($,H,J.expiredOnly,J.now))continue;if(Z>0){Z-=1;continue}if(await xH($,H,G),Y+=1,X!==void 0&&Y>=X)break}return{deleted:Y}}function Hw($){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*Dw($,U){let J=Hw($);if(J===null)return;let G=P.terminalWorkflowPrefix(),X=U-J,Q=`${G}${String(X).padStart(16,"0")}:ÿ`;for await(let[Z]of $.storage.scan(G,{lte:Q})){let Y=Z.slice(Z.lastIndexOf(":")+1),_=p6(Y);if(_===null)continue;let H=await $.storage.get(P.workflow(_));if(!H){await $.storage.delete(Z);continue}let D=i(H);if(!P$(D.status))continue;yield D}}function Lw($,U,J){return{manualOffset:Vw(U?.offset),effectiveLimit:Fw(Pw(U?.limit),J)}}function Vw($){if($===void 0)return 0;if(!Number.isFinite($))return 0;if($<=0)return 0;return Math.floor($)}function Pw($){if($===void 0)return;if(!Number.isFinite($))return;if($<0)return;return Math.floor($)}function Fw($,U){if($===void 0)return U;if(U===void 0)return $;return Math.min($,U)}async function Mw($,U,J,G){if(!P$(U.status))return!1;if(await v$($.storage,P.teardownOwed(U.id)))return!1;if(!J)return!0;let X=zw($,U);return X!==null&&X<=G}function zw($,U){if(!P$(U.status))return null;let J=$.registrations.get(U.type)?.retention??$.options.retention,G=yz(J,U.status);if(G===void 0)return null;return U.updatedAt+G}async function xH($,U,J){let G=await SH($,U);await $.storage.batch(G),bH($,U.id,J)}async function SH($,U){let J=U.id,G=await $.storage.get(P.attribute(J)),X=Bw(U,G),Q=await qw($,U);return vw(X,Q),X.push(...I$(J,U,null).batchOps),X}function bH($,U,J){G1($,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 Bw($,U){return[...Ww($.id,U),...Kw($)]}function Ww($,U){if(!U)return[];let J=A(U);return W$($,J,{}).filter(qK)}function Kw($){return lU($.id,V$($.tags),void 0).filter(qK)}function qK($){return $.type==="delete"}async function qw($,U){let J=U.id,G=Nw(U);return Ow(G,U),Aw(G,U),await Rw($.storage,G,J),await Ew($.storage,G,J),G}function Nw($){return new Set([P.workflow($.id),P.checkpoint($.id),P.workflowHeaders($.id),P.terminalCleanupNeeded($.id),P.workflowConcurrencyHolder($.id),P.workflowHasServices($.id),P.finalizerState($.id),P.teardownOwed($.id),P.attribute($.id),P.terminalWorkflow($.updatedAt,$.id)])}function Ow($,U){if(U.executionDeadline===void 0)return;$.add(P.deadline(U.executionDeadline,U.id)),$.add(`timer-idx:deadline:${U.id}`)}function Aw($,U){if(U.terminalCleanupToken===void 0)return;let J=eU(Cw(U),U.terminalCleanupToken);$.add(P.terminalCleanup(U.updatedAt+EX,J))}function Cw($){return $.status==="cancelled"||$.status==="timed-out"}async function Rw($,U,J){let G=P.updatePrefix(J),X=await NK($,G);for(let Q of X)U.add(Q),Tw(U,G,Q)}function Tw($,U,J){let G=J.slice(U.length);if(G.length>0)$.add(P.updateResponse(G))}async function Ew($,U,J){for(let G of bw(J)){let X=await NK($,G);for(let Q of X)U.add(Q)}await xw($,U,J)}async function xw($,U,J){let G=P.fleetEventByWorkflowPrefix(J);for await(let[X]of $.scan(G)){U.add(X);let Q=Sw(G,X);if(Q!==null)U.add(P.fleetEvent(Q))}}function Sw($,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 bw($){let U=N($);return[`wf:${U}:ckpt:`,`wf:${U}:timeline:`,`ev:${U}:`,`sig:${U}:`,`review:${U}:`,`offload:${U}:`,`archive:${U}:`,`blob:${U}:`,`state:execution:${U}:`,`tool-effect:${U}:`,`upk:${U}:`,`actrec:v1:${U}:`,ZX($),`sigres:v1:${U}:`]}function vw($,U){for(let J of U)$.push({type:"delete",key:J})}async function NK($,U){let J=[];for await(let G of Q9($,U))J.push(G);return J}function xX($){let U=new WeakSet,J=(G)=>{if(gw(G))return!0;if(Iw(G))return!1;if(Array.isArray(G))return hw(G,U,J);if(typeof G==="object")return yw(G,U,J);return!1};return J($)}function OK($){if($===void 0)return null;if($ instanceof Error)return{name:$.name,message:$.message};if(xX($))return $;try{let U=JSON.stringify($);if(U===void 0)return vH($);let J=JSON.parse(U);return xX(J)?J:vH($)}catch{return vH($)}}function gw($){if($===null)return!0;if(typeof $==="number")return Number.isFinite($);return typeof $==="string"||typeof $==="boolean"}function Iw($){let U=typeof $;return U==="undefined"||U==="bigint"||U==="function"||U==="symbol"}function hw($,U,J){if(U.has($))return!1;U.add($);for(let G of $)if(!J(G))return!1;return U.delete($),!0}function yw($,U,J){if(!mw($))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 vH($){if(typeof $==="bigint")return $.toString();if(typeof $==="symbol")return $.description??null;return null}function mw($){if(!$||typeof $!=="object")return!1;let U=Reflect.getPrototypeOf($);return U===Object.prototype||U===null}function x8($){let U=gH($);return N9(U)}var kw="\x00undefined";function gH($){if($===null)return"null";if($===void 0)return kw;if(typeof $!=="object")return JSON.stringify($);if(Array.isArray($))return"["+$.map(gH).join(",")+"]";let U=$;return"{"+Object.keys(U).toSorted().filter((G)=>U[G]!==void 0).map((G)=>`${JSON.stringify(G)}:${gH(U[G])}`).join(",")+"}"}function fw($){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 xX(U.output)&&typeof U.completedAt==="number";if(J==="aborted")return typeof U.reason==="string"&&typeof U.completedAt==="number";return!1}class uw{#$;#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=P.toolEffect(this.#U,this.#J,$),J=await this.#$.get(U);if(!J)return null;let G=A(J);if(!fw(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:OK(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=P.toolEffect(this.#U,this.#J,$);await this.#$.put(J,W(U))}}var AK=20,ww=1,cw={method:"in-process"};function bX($,U,J){let X=(U.status===void 0?J:Array.isArray(U.status)?U.status:[U.status]).filter((Z)=>J.includes(Z));if(X.length===0)return{...U,status:[]};if(X.length!==1)return{...U,status:X};let[Q]=X;return{...U,status:Q??[]}}async function S8($,U,J,G,X,Q){let Z=await rw($,J);return hH(U,G,X,Z,Q)}function hH($,U,J,G,X){let Q=dw(U),Z=pw(Q,G),Y=lw($,Q,J,Z,X),_=iw($,Q,J,G),H=Z.sampleWorkflowIds;return{workflowIds:G.map((D)=>D.id),confirmationToken:_,scope:Z,preview:{dryRun:!0,action:$,matched:G.length,requestId:Y,scope:Z,sampleWorkflowIds:H,confirmationToken:_,confirmationTokenVersion:1}}}function pw($,U){let J=U.slice(0,AK).map((G)=>G.id);return{matched:U.length,filter:$,statuses:IH(U.map((G)=>G.status)),workflowTypes:IH(U.map((G)=>G.type)),sampleWorkflowIds:J,sampleLimit:AK}}function dw($){let U={};if($.status!==void 0)U.status=Array.isArray($.status)?IH($.status):$.status;if($.type!==void 0)U.type=$.type;let J=V$($.tags);if(J!==void 0)U.tags=J;if($.attributes!==void 0)U.attributes=$.attributes.map((G)=>({key:N$(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)=>x8(G).localeCompare(x8(X)));if($.limit!==void 0)U.limit=$.limit;if($.offset!==void 0)U.offset=$.offset;return U}function lw($,U,J,G,X){let Q=X.requestId?.trim();if(Q!==void 0&&Q.length>0)return Q;return`bulk:${x8({action:$,actionParameters:SX(J),filterSummary:U,matched:G.matched,sampleWorkflowIds:G.sampleWorkflowIds})}`}function iw($,U,J,G){return`bulk:${x8({version:1,action:$,actionParameters:SX(J),filterSummary:U,workflows:G.map((X)=>({id:X.id,status:X.status}))})}`}function R0($,U){if($.confirmationToken===void 0)return;if($.confirmationToken===U.confirmationToken)return;throw new w$}function T0($){return $.confirmationToken!==void 0||$.requestId!==void 0||$.principal!==void 0}async function E0($,U,J,G,X){let Q=await nw($,U,J,X);return{...G,auditEvent:Q}}async function nw($,U,J,G){let X=$.options.getNow(),Q=J.requestId?.trim(),Z=Q!==void 0&&Q.length>0?Q:U.preview.requestId,Y={type:"bulk-operation:audit",action:U.preview.action,requestId:Z,timestamp:X,principal:J.principal??cw,filterSummary:U.scope.filter,scope:U.scope,affectedCount:G,sampleWorkflowIds:U.scope.sampleWorkflowIds,confirmationToken:U.confirmationToken};return await $.storage.put(P.bulkOperationAudit(X,Z,U.confirmationToken),W(Y)),Y}function x0($){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>p2)throw Error(`Field "confirmationToken" must be at most ${String(p2)} characters`);if($.requestId!==void 0&&$.requestId.length>N1)throw Error(`Field "requestId" must be at most ${String(N1)} characters`);return $}function b8($){return $.bulkConcurrency??ww}function v8($,U,J){return{id:U,error:J instanceof Error?J.message:String(J)}}async function rw($,U){let J=[];for await(let G of EH($,U))for(let X of G)J.push(CK(X));return J}function CK($){return{id:$.id,type:$.type,status:$.status,updatedAt:$.updatedAt}}function IH($){return[...new Set($)].toSorted((U,J)=>U.localeCompare(J))}function SX($){if(ow($))return $;if(typeof $==="bigint")return $.toString();if(typeof $==="symbol")return String($);if(typeof $==="function")return"[function]";if(Array.isArray($))return $.map(SX);let U=$,J={};for(let G of Object.keys(U).toSorted())J[G]=SX(U[G]);return J}function ow($){return $===null||$===void 0||typeof $==="string"||typeof $==="number"||typeof $==="boolean"}async function RK($,U){let J=[];for await(let G of EH($,U))for(let X of G){if(!P$(X.status))throw new p4;J.push(CK(X))}return J}function S0(){return{holders:[],waiters:[]}}function sw($){if($===void 0)return S0();return{holders:Array.isArray($.holders)?$.holders:[],waiters:Array.isArray($.waiters)?$.waiters:[]}}function aw($,U){return $.filter((J)=>J.leaseExpiresAt>U)}function yH($,U){let{holderId:J,now:G}=U,X=sw($);return{holders:aw(X.holders,G).filter((Q)=>Q.holderId!==J),waiters:X.waiters.filter((Q)=>Q!==J)}}var mH=1,TK=Number.MAX_SAFE_INTEGER;function tw($,U){return{key:y1($),expectedValue:U===0?null:W(U)}}function ew($){if($===void 0)return S0();return{holders:Array.isArray($.holders)?$.holders:[],waiters:Array.isArray($.waiters)?$.waiters:[]}}function $c($,U){return $.filter((J)=>J.leaseExpiresAt>U)}function Uc($,U){let J=ew($),G=$c(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:TK}:X),waiters:[]}};if(G.length>=U.limit)return{acquired:!1,record:{holders:G,waiters:[]}};return{acquired:!0,record:{holders:[...G,{holderId:U.workflowId,leaseExpiresAt:TK}],waiters:[]}}}function Jc($,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 Gc($,U){return{version:mH,workflowType:$,partitionKey:U}}function Xc($){let U=A($);if(typeof U!=="object"||U===null)return null;let J=U;if(J.version!==mH||typeof J.workflowType!=="string"||typeof J.partitionKey!=="string")return null;return{version:mH,workflowType:J.workflowType,partitionKey:J.partitionKey}}async function vX($,U,J,G,X){let Q=Jc(U,G,X),Z=P.workflowConcurrency(U,Q),Y=await m1($.storage,Z,{initial:S0()}),_=Uc(Y.value,{workflowId:J,now:$.options.getNow(),limit:X.max});if(!_.acquired)throw new $9({workflowType:U,limit:X.max,partitionKey:Q});return{stateKey:Z,conditions:[tw(Z,Y.version)],operations:[{type:"put",key:Z,value:W(_.record)},{type:"put",key:y1(Z),value:W(Y.version+1)},{type:"put",key:P.workflowConcurrencyHolder(J),value:W(Gc(U,Q))},{type:"put",key:P.terminalCleanupNeeded(J),value:new Uint8Array(0)}]}}async function b0($,U){let J=P.workflowConcurrencyHolder(U),G=await $.storage.get(J);if(G===null)return;let X=Xc(G);if(X===null){await $.storage.delete(J);return}let Q=P.workflowConcurrency(X.workflowType,X.partitionKey);await new U0($.storage,Q,{initial:S0()}).update((Y)=>yH(Y,{holderId:U,now:$.options.getNow()})),await $.storage.delete(J)}var EK=["pending","running","suspended"],Qc=["failed"],Zc=5;async function gX($,U,J){let G=[];for(let X=0;X<$.length;X+=U){let Q=$.slice(X,X+U);G.push(...await Promise.all(Q.map(async(Z)=>{try{return{item:Z,status:"fulfilled",value:await J(Z)}}catch(Y){return{item:Z,status:"rejected",reason:Y}}})))}return G}async function xK($,U,J){return E8($,U,{expiredOnly:!1,now:$.options.getNow()},J)}async function Yc($,U,J={}){J=x0(J),o6(U);let G=bX($,U,EK),X=await S8($,"cancel",G,U,{},J);if(J.dryRun===!0)return X.preview;R0(J,X);let Q=X.workflowIds,Z=b8(J),Y=0,_=[],H=await gX(Q,Z,async(L)=>{try{if(await $.engine.cancel(L),(await l($,L))?.status==="cancelled")return{status:"cancelled"};return{status:"failed",error:{id:L,error:"Workflow no longer cancellable"}}}catch(F){return{status:"failed",error:v8($,L,F)}}});for(let L of H){if(L.status==="rejected"){_.push(v8($,L.item,L.reason));continue}let{value:F}=L;if(F.status==="cancelled"){Y+=1;continue}_.push(F.error)}let D={cancelled:Y,failed:_.length,errors:_};if(!T0(J))return D;return E0($,X,J,D,Y)}async function SK($,U,J={}){return Yc($,U,J)}async function _c($,U,J={}){J=x0(J),o6(U);let G=bX($,U,Qc),X=await S8($,"retry-failed",G,U,{},J);if(J.dryRun===!0)return X.preview;R0(J,X);let Q=b8(J),Z=0,Y=[],_=await gX(X.workflowIds,Q,async(D)=>{try{return await jc($,D),{status:"retried"}}catch(L){return{status:"failed",error:v8($,D,L)}}});for(let D of _){if(D.status==="rejected"){Y.push(v8($,D.item,D.reason));continue}let{value:L}=D;if(L.status==="retried"){Z+=1;continue}Y.push(L.error)}let H={retried:Z,failed:Y.length,errors:Y};if(!T0(J))return H;return E0($,X,J,H,Z)}async function bK($,U,J={}){return _c($,U,J)}async function jc($,U){let J=await l($,U);if(J===null)throw Error("Workflow no longer exists");if(J.status!=="failed")throw Error(`Workflow is ${J.status}, not failed`);if(await $.storage.get(P.checkpoint(U))!==null){await Hc($,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 Hc($,U){let J=await G6($,U.id,async()=>Dc($,U.id));if(J.terminalCleanupTimerId!==void 0)await $.scheduler.cancel(J.terminalCleanupTimerId,U.id)}async function Dc($,U){let J;for(let G=0;G<Zc;G+=1){let X=await $.storage.get(P.workflow(U));if(X===null)throw Error("Workflow no longer exists");let Q=i(X);if(Q.status!=="failed")throw Error(`Workflow is ${Q.status}, not failed`);let Z=await $.storage.get(P.checkpoint(U));if(Z===null)throw Error("Checkpoint no longer exists");let Y=D$(Z),_=$.registrations.get(Q.type);if(_===void 0)throw Error(`No workflow registered with name "${Q.type}" (needed to retry "${U}")`);let H=_.concurrency===void 0?void 0:await vX($,Q.type,U,Q.input,_.concurrency);J=H?.stateKey??J;let D=Vc($,Q),L=await Pc($,U),F=[...A0(Q,D),{type:"put",key:P.workflow(U),value:W(D)},...I$(U,Q,D).batchOps,...Fc(U,L,Y.searchAttributes),...D.executionDeadline===void 0?[]:_$({id:`deadline:${U}`,workflowId:U,fireAt:D.executionDeadline,kind:"execution-deadline"}),...H?.operations??[]],M=H?.conditions??[];if(await Lc($,F,M))return{terminalCleanupTimerId:Q.terminalCleanupToken===void 0?void 0:eU(!1,Q.terminalCleanupToken)}}throw Error(`Workflow concurrency admission for "${J??U}" changed too many times while retrying failed workflow "${U}"`)}async function Lc($,U,J){if(J.length===0)return await $.storage.batch(U),!0;return J$($.storage,"conditionalBatch","retry failed workflow"),e($.storage,J,U)}function Vc($,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 Pc($,U){let J=await $.storage.get(P.attribute(U));if(J===null)return{};return A(J)}function Fc($,U,J){let G=W$($,U,J);if(Object.keys(J).length===0)G.push({type:"delete",key:P.attribute($)});else G.push({type:"put",key:P.attribute($),value:W(J)});return G}async function kH($,U,J,G,X){let Q=x0(X??{});if(o6(U),J.length===0)throw Error('Field "name" must be a non-empty string');let Z=bX($,U,EK),Y=await S8($,"signal",Z,U,{name:J,payload:G},Q);if(Q.dryRun===!0)return Y.preview;R0(Q,Y);let _=Y.workflowIds,H=b8(Q),D=0,L=0,F=await gX(_,H,async(K)=>{try{return await $.engine.signal(K,J,G),{status:"signalled"}}catch{return{status:"failed"}}});for(let K of F)if(K.status==="fulfilled"&&K.value.status==="signalled")D+=1;else L+=1;let M={signalled:D,failed:L};if(!T0(Q))return M;return E0($,Y,Q,M,D)}async function Mc($,U,J,G={}){G=x0(G),o6(U);let X=await RK($,U),Q=hH("delete",U,{},X,G);if(G.dryRun===!0){let D=[];for(let L of Q.workflowIds)if(await v$($.storage,P.teardownOwed(L)))D.push(L);return D.length>0?{...Q.preview,skippedTeardownPending:D}:Q.preview}R0(G,Q);let Z=b8(G),Y=0,_=[];for(let D=0;D<Q.workflowIds.length;D+=TX){let L=Q.workflowIds.slice(D,D+TX),F=await zc($,L),M=[];for(let h of F)if(await v$($.storage,P.teardownOwed(h.id)))_.push(h.id);else M.push(h);let K=await gX(M,Z,async(h)=>{return await xH($,h,J),h.id}),S=[];for(let h of K)if(h.status==="fulfilled")Y+=1;else S.push(h.reason);if(S.length>0)throw AggregateError(S,`Bulk delete failed for ${S.length} workflow(s) after deleting ${Y} workflow(s)`)}let H={deleted:Y,..._.length>0?{skippedTeardownPending:_}:{}};if(!T0(G))return H;return E0($,Q,G,H,Y)}async function vK($,U,J,G={}){return Mc($,U,J,G)}async function zc($,U){let J=[];for(let G of U){let X=await l($,G);if(X===null)continue;if(!P$(X.status))throw new p4;J.push(X)}return J}async function gK($,U,J,G={}){return hK($,U,J,"add",G)}async function IK($,U,J,G={}){return hK($,U,J,"remove",G)}async function hK($,U,J,G,X){X=x0(X),o6(U);let Z=await S8($,G==="add"?"tag:add":"tag:remove",U,U,{tags:J},X);if(X.dryRun===!0)return Z.preview;R0(X,Z);let Y=await jK($,U,J,G,Z.workflowIds);if(!T0(X))return Y;return E0($,Z,X,Y,Y.modified)}function IX($,U){let J=new BH(U,$.engine);return qc($,U,J),J}function Bc($,U){let{promise:J,resolve:G,reject:X}=Promise.withResolvers(),Q={promise:J,resolve:G,reject:X};return $.resultResolvers.set(U,Q),J.catch(()=>{}),Q}function yK($,U){let J=$.resultResolvers.get(U);if(J)return J.promise;if($.disposed){let X=Promise.reject(new c6);return X.catch(()=>{}),X}let G=Bc($,U);return Wc($,U,G),G.promise}async function Wc($,U,J){try{let G=await l($,U);if(Kc($,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 YK($,U);fH($,U,J),J.resolve(X)}catch(X){fH($,U,J),J.reject(X)}}catch(G){fH($,U,J),J.reject(G)}}function Kc($,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 fH($,U,J){if($.resultResolvers.get(U)===J)$.resultResolvers.delete(U)}function qc($,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 Nc=1000;function Oc($){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 Ac(U.sequence,U.deletedThrough)}function Ac($,U){return typeof $==="number"&&Number.isSafeInteger($)&&$>0&&U===$-1}async function X1($,U){let J=await $.get(P.eventWatermark(U));if(J===null)return null;let G=A(J);return Oc(G)?G:null}async function mK($,U,J,G,X){if(G===null)return null;let Q=Math.max(0,J-G+1),Z=await X1($,U),Y=Z?.sequence??0,_=Math.min(Q,Y+Nc);if(_<=Y)return null;let H=await Tc($,U,Y,_);if(H===null)return null;let D=q9(H.lastDeletedBytes),L={type:"event-log-watermark",version:1,sequence:_,prevHash:D,deletedThrough:_-1,...Cc(Rc(Z?.checkpointReplay,H.deletedEntries))};for(let F=Y;F<_;F+=1)X.push({type:"delete",key:P.event(U,F)});return X.push({type:"put",key:P.eventWatermark(U),value:W(L)}),{watermark:L,deletedEntries:H.deletedEntries,deletedRange:{from:Y,to:_-1}}}function Cc($){return $===void 0?{}:{checkpointReplay:$}}function Rc($,U){let J=$;for(let G of U){let X=A(G);if(!N4(X))continue;J=C9(J,rU(X.payload))}return J}async function Tc($,U,J,G){let X=[],Q=J,Z=P.eventPrefix(U),Y=P.event(U,J),_=P.event(U,G);for await(let[,D]of $.scan(Z,{gte:Y,lt:_})){let L=A(D);if(!N4(L)||L.sequence!==Q)return null;X.push(D),Q+=1}if(Q!==G||X.length===0)return null;let H=X[X.length-1];if(H===void 0)return null;return{deletedEntries:X,lastDeletedBytes:H}}function kK($){return W($)}async function fK($,U){for(let G=0;G<5;G+=1){let X=await X1($,U),Q=await J8($,U),Z=await Ec($,U,X,Q);if(Z.outcome==="ok")return{valid:!0};let Y=await X1($,U),_=await J8($,U),H=(Y?.sequence??-1)>(X?.sequence??-1),D=_.sequence!==Q.sequence||_.lastHash!==Q.lastHash;if(H||D)continue;return{valid:!1,firstInvalidSequence:Z.firstInvalidSequence}}return{valid:!1,indeterminate:!0,reason:"concurrent-compaction"}}async function Ec($,U,J,G){let X=J?.prevHash??U8,Q=J?.sequence??0,Z=P.eventPrefix(U),Y=J?{gte:P.event(U,J.sequence)}:void 0,_=await Sc($,Z,Y,X,Q);if(_.outcome==="invalid")return _;if(_.entriesSeen===0&&J!==null)return{outcome:"invalid",firstInvalidSequence:J.sequence};return xc(_,G)}function xc($,U){if(U.sequence===v1.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 Sc($,U,J,G,X){let Q=G,Z=0,Y=-1;for await(let[,_]of $.scan(U,J)){let H=A(_);if(!N4(H))continue;let D=bc(H,Q,Z===0,X);if(D.outcome==="invalid")return D;Z+=1,Y=H.sequence,Q=O9(_)}return{outcome:"scanned",entriesSeen:Z,lastSequence:Y,lastHash:Q}}function bc($,U,J,G){if(J&&$.sequence!==G)return{outcome:"invalid",firstInvalidSequence:G};if($.prevHash!==U)return{outcome:"invalid",firstInvalidSequence:$.sequence};return{outcome:"ok"}}class n${#$;#U;constructor($,U){this.#$=$,this.#U=U}appendToBatch($,U,J,G){let{entry:X,encoded:Q,newHead:Z}=this.#J($,J,G);return U.push({type:"put",key:P.event(this.#U,Z.sequence),value:Q},{type:"put",key:P.eventHead(this.#U),value:W(Z)}),{newHead:Z,timestamp:X.timestamp}}async append($,U,J){let G=await this.#G(),{encoded:X,hash:Q,newHead:Z}=this.#J($,G,J),Y={type:"put",key:P.event(this.#U,Z.sequence),value:X},_={type:"put",key:P.eventHead(this.#U),value:W(Z)};if(U)U.push(Y,_);else await this.#$.batch([Y,_]);return{sequence:Z.sequence,hash:Q,newHead:Z}}async*scan($){let U=$?.fromSequence??0,J=P.eventPrefix(this.#U),G=P.event(this.#U,U);for await(let[,X]of this.#$.scan(J,{gte:G})){let Q=A(X);if(N4(Q))yield Q}}async replay($){let U=[];for await(let J of this.scan()){if(J.sequence>$)break;U.push(J)}return U}async verify(){return fK(this.#$,this.#U)}async loadHead(){return this.#G()}#J($,U,J){let G=U.sequence+1,X=U.lastHash,Q={type:$.type,workflowId:this.#U,sequence:G,prevHash:X,payload:$.payload,timestamp:Date.now()};if(J!==void 0)Q.versionTuple=J;let Z=W(Q),Y=O9(Z);return{entry:Q,encoded:Z,hash:Y,newHead:{sequence:G,lastHash:Y}}}async#G(){return J8(this.#$,this.#U)}}var uK="weft:forkedFrom",p$=new Uint8Array(0);async function uH($,U,J,G){let X=$.options.historyPolicy.maxEvents;if(X===null||J.sequence+1<=X)return!1;return await G.enforceHistoryCircuitBreaker(U),!0}async function wK($,U,J){if($.options.historyPolicy.maxEvents===null)return!1;let G=$.eventLogHeads.get(U)??await new n$($.storage,U).loadHead();return uH($,U,G,J)}function g8($,U,J){return J.createWorkflowHandleWithResultPromise(U)}function E4($,U,J,G){if(!J||J.size===0){$.workflowHeaders.delete(U);return}$.workflowHeaders.set(U,new Map(J)),$.workflowsNeedingTerminalCleanup.add(U)}async function d1($,U,J){return _K($,U)}async function wH($,U,J){if(await v$($.storage,P.terminalCleanupNeeded(U)))$.workflowsNeedingTerminalCleanup.add(U)}function cH($,U,J,G){if(U===void 0)return;return V$(j$(U,J??"options.tags"))}async function pH($,U,J){try{await J.processPendingUpdatesForHandlers(U)}catch(G){J.handleCleanupError("processPendingUpdates",G,U)}}function v0($,U,J){return{workflowVersion:U.version}}function hX($,U,J){return U.versionTuple}function yX($,U,J,G,X,Q){let Z=Ez(G.version,X.version),Y=v0($,X,Q),_=Cz(hX($,J,Q),Y),H=_.workflowVersion!==void 0||_.agentVersion!==void 0||_.toolVersions!==void 0;if(Z==="incompatible"||H)cK($,U,J,X,_,Q);return{state:J,checkpoint:G,versionTuple:Y,shouldPersistPreparedState:!1}}async function dH($,U,J,G,X,Q,Z){let Y=yX($,U,J,G,Q,Z),_=await I1($.storage,U,Y.checkpoint);return{state:Y.state,checkpoint:_,serializedCheckpoint:X,versionTuple:Y.versionTuple}}function cK($,U,J,G,X,Q){throw new Ej(U,J.type,J.versionTuple.workflowVersion,G.version,void 0,X)}var vc="EngineOptions.resolveWorkflowServices";async function kX($,U,J,G,X=()=>{}){let Q=$.options.resolveWorkflowServices;if($.inlineStrategy===null)return!1;if($.workflowServices.has(U.id))return!1;if(await $.storage.get(P.workflowHasServices(U.id))===null)return!1;if(!Q){let Y=gc(U.id);X(new n6(U.id,Y,[vc]));try{await J(U.id,mX(U.id,Y))}catch(_){G("reprovideRecoveredServices",_,U.id)}return!0}let Z;try{let Y=await Q({workflowId:U.id,workflowType:U.type,input:U.input});if(Y.status==="available")return $.workflowServices.set(U.id,Y.services),!1;Z=Y.reason}catch(Y){Z=Y instanceof Error?Y.message:String(Y)}try{await J(U.id,mX(U.id,Z))}catch(Y){G("reprovideRecoveredServices",Y,U.id)}return!0}function mX($,U){return Error(`Workflow "${$}" services unavailable: ${U}`)}function gc($){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.`}function dK($,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 lK($,U,J,G){if(J.scheduledFireAt<=$.options.getNow()){G.completeOperation(U,void 0);return}let{promise:X,resolve:Q}=Promise.withResolvers();if(await $.scheduler.schedule({id:`sleep:${J.operationId}`,workflowId:U,fireAt:J.scheduledFireAt,kind:"sleep"}),Ic($,U,J.operationId,Q),await X,(await G.loadWorkflowState(U))?.status==="running")G.completeOperation(U,void 0)}function Ic($,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 hc($,U,J){let G=await J.loadWorkflowState(U.workflowId);if(!G||G.status!=="pending")return;let X=await yc($,U,J);if(!X)return;let Q=$.registrations.get(G.type);if(!Q){await J.failWorkflow(U.workflowId,Error(`No workflow registered with name "${G.type}"`));return}let Z=$.options.getNow(),Y=await mc(U,Z,J);if(Y==="invalid")return;let _=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:Z,updatedAt:Z,...Y!==void 0&&{executionDeadline:Y}},F=[{type:"put",key:P.workflow(U.workflowId),value:W(L)},...I$(U.workflowId,D,L).batchOps];if(Y!==void 0)F.push(..._$({id:`deadline:${U.workflowId}`,workflowId:U.workflowId,fireAt:Y,kind:"execution-deadline"}));return await G$($,F,[],()=>Error(`Delayed-start transition for workflow "${U.workflowId}" lost its CAS race.`)),L});if(!_)return;if(await kX($,_,(D,L)=>J.failWorkflow(D,L),J.handleCleanupError,J.dispatchEvent))return;if(await v$($.storage,P.terminalCleanupNeeded(U.workflowId)))$.workflowsNeedingTerminalCleanup.add(U.workflowId);$.checkpoints.set(U.workflowId,X),$.workflowVersionTuples.set(U.workflowId,J.workflowVersionTupleFromState(_)),J.setWorkflowStartHeaders(U.workflowId,await J.loadWorkflowStartHeaders(U.workflowId)),J.beginWorkflowExecution(U.workflowId,_.type,_.input,X,Y,_.executionStateOwnerId??U.workflowId,Q)}async function yc($,U,J){let G=await $.storage.get(P.checkpoint(U.workflowId));if(!G)return await J.failWorkflow(U.workflowId,Error(`Checkpoint not found for delayed workflow "${U.workflowId}"`)),null;return D$(G)}async function mc($,U,J){if($.executionTimeoutMs===void 0)return;if(!Number.isFinite($.executionTimeoutMs)||$.executionTimeoutMs<0)return await pK($,J),"invalid";try{return A$(U+$.executionTimeoutMs,`Delayed execution timeout for workflow "${$.workflowId}"`)}catch{return await pK($,J),"invalid"}}async function pK($,U){await U.failWorkflow($.workflowId,Error(`Invalid delayed execution timeout for workflow "${$.workflowId}"`))}async function lH($,U,J){if(U.id.startsWith("review-escalation:")||U.id.startsWith("review-timeout:")){await fc($,U,J);return}if(U.kind==="delayed-start"){await hc($,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")uc($,U);else if(U.kind==="wait-condition")kc($,U);else if(U.kind==="execution-deadline")await J.timeout(U.workflowId)}function kc($,U){let J=$.conditionWaiters.get(U.workflowId);if(J)J()}async function fc($,U,J){let G=U.id.split(":")[1];if(!G)return;let X=$.reviewEscalationHandlers.get(G);if(!X)return;let Q=await J.loadWorkflowState(U.workflowId);if(!Q||Q.status!=="running")return;await X(U)}function uc($,U){let J=U.id.replace("sleep:",""),G=`${U.workflowId}:${J}`,X=$.sleepResolvers.get(G);if(!X)return;$.sleepResolvers.delete(G),wc($,U.workflowId,J),X()}function wc($,U,J){let G=$.sleepResolversByWorkflow.get(U);if(!G)return;if(G.delete(J),G.size===0)$.sleepResolversByWorkflow.delete(U)}function iK($,U,J,G,X,Q,Z,Y,_,H,D,L){let F=h9(U,null,J).batchOps,M=[...L??[],{type:"put",key:P.workflow(U),value:W(J)},{type:"put",key:P.checkpoint(U),value:F$(G)},...F,...lU(U,void 0,J.tags),...pc($,U,X,Q?.searchAttributes,D),...cc(U,Q,_),...H??[]];if(Z!==void 0)M.push(..._$({id:`deadline:${U}`,workflowId:U,fireAt:Z,kind:"execution-deadline"}));if(Y)M.push(..._$(Y));return M}function cc($,U,J){let G=J!==void 0&&J.size>0,X=U?.services!==void 0,Q=[];if(G)Q.push({type:"put",key:P.workflowHeaders($),value:b9(J)});if(X)Q.push({type:"put",key:P.workflowHasServices($),value:p$});if(G||X)Q.push({type:"put",key:P.terminalCleanupNeeded($),value:p$});return Q}function pc($,U,J,G,X){if(!G||Object.keys(G).length===0)return[];return dc($,J,G,X),C0(G),[{type:"put",key:P.attribute(U),value:W(G)},...W$(U,{},G)]}function dc($,U,J,G){if(!U.searchAttributes)return;let X=U.searchAttributes;for(let[Q,Z]of Object.entries(J)){if(!(Q in X))throw Error(`Unknown search attribute "${Q}". Registered attributes: ${Object.keys(X).join(", ")}`);d4(Q,Z,X[Q])}}class l1 extends Error{constructor(){super("start idempotency compare-and-swap lost to a concurrent caller");this.name="StartIdempotencyRaceLostError"}}var nK=5;async function lc($,U,J){if(J.length===0)return await G$($,U,[],()=>Error("Workflow start lost its CAS race.")),!0;return J$($.storage,"conditionalBatch","start preconditions"),q0($,U,J.map((G)=>G.condition))}async function ic($,U){for(let J of U){if(J.source!=="start-precondition")continue;let G=await $.storage.get(J.condition.key);if(!X9(G,J.condition.expectedValue))return!0}return!1}function nc($){return($??[]).map((U)=>({source:"start-precondition",condition:U}))}function rc($){return $.map((U)=>({source:"workflow-concurrency",condition:U}))}function rK($,U){if(U===void 0||U.length===0)return $;return[...$??[],...U]}async function oK($,U){let{internals:J,workflowId:G,state:X,checkpoint:Q,registration:Z,options:Y}=$,_=$.buildWorkflowConcurrencyStartOperations===void 0?1:nK,H;for(let D=0;D<_;D+=1){let L=U?.(G),F=await $.buildWorkflowConcurrencyStartOperations?.();H=F?.stateKey??H;let M=iK(J,G,X,Q,Z,Y,X.executionDeadline,$.delayedStartTimer,$.persistedWorkflowStartHeaders,rK($.additionalStartOperations,rK(L?.operations,F?.operations)),$.callbacks,$.purgeDeleteOperations),K=[...nc(L?.conditions),...rc(F?.conditions??[])];if(await lc(J,M,K))return;if(await ic(J,K))throw new l1;if(F===void 0)throw new l1}throw new r4(H??"workflow concurrency admission",nK)}function iH($,U,J,G,X,Q){let Z=Q.getComposedWorkflowInterceptor();if(!Z)return;let Y=new Map;if(X)for(let[H,D]of X)Y.set(H,D);let _;return Z.workflowStart({workflowId:U,workflowType:J,input:G,headers:Y},(H)=>{_=new Map(H.headers)}),_}function fX($,U,J,G,X,Q,Z,Y,_){if(Q!==0)$.workflowNestingDepths.set(U,Q);$.workflowTypeByWorkflowId.set(U,J),$.strategy.startWorkflow({workflowId:U,workflowType:J,input:G,checkpoint:F$(X),nestingDepth:Q,executionStateOwnerId:Y,startedAt:X.createdAt,sleepReferenceTime:X.createdAt,...Z!==void 0&&{deadline:Z},...$.workflowHeaders.has(U)&&{headers:[...$.workflowHeaders.get(U)]}})}function uX($,U,J,G,X,Q,Z,Y,_,H){let D=$.pendingNestingDepth??0;if($.pendingNestingDepth=void 0,$.inlineStrategy!==null){_.queueInlineWorkflowExecutionStart({workflowId:U,workflowType:J,input:G,checkpoint:X,nestingDepth:D,executionDeadline:Q,executionStateOwnerId:Z,...H!==void 0&&{onStarted:H}});return}_.dispatchEvent(new r6(U,J,G)),fX($,U,J,G,X,D,Q,Z,_),H?.()}function sK($,U,J){if(U?.defer!==!1)return;if($.inlineStrategy===null)throw new f('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 f("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 aK($,U,J,G){if(U.isDelayed)return;let X=U.options?.defer===!1?Promise.withResolvers():void 0;if(uX($,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 tK=new Set(["completed","failed","cancelled","timed-out"]),nH=["running","pending","suspended"];function oc($,U){return{signal:()=>({waiters:$.signalWaiters,byWorkflow:$.signalWaitersByWorkflow}),update:()=>({waiters:$.updateWaiters,byWorkflow:$.updateWaitersByWorkflow}),review:()=>({waiters:$.reviewWaiters,byWorkflow:$.reviewWaitersByWorkflow})}[U]()}function eK($,U,J){let{waiters:G,byWorkflow:X}=oc($,J),Q=X.get(U);if(!Q)return;if(typeof Q==="string")G.delete(Q);else for(let Z of Q)G.delete(Z);X.delete(U)}function sc($,U){let J=$.sleepResolversByWorkflow.get(U);if(!J)return;for(let G of J){let X=`${U}:${G}`,Q=$.sleepResolvers.get(X);if(Q)Q();$.sleepResolvers.delete(X)}$.sleepResolversByWorkflow.delete(U)}function ac($,U){let J=$.sleepResolversByWorkflow.get(U);if(!J)return;for(let G of J)$.sleepResolvers.delete(`${U}:${G}`);$.sleepResolversByWorkflow.delete(U)}function tc($,U){let J=$.conditionWaiters.get(U);if(!J)return;J(),$.conditionWaiters.delete(U)}function ec($,U){$.conditionWaiters.delete(U)}function $q($,U,J){let G=$.workflowReviewIds.get(U);if(!G)return;for(let X of G){$.reviewEscalationHandlers.delete(X);let Q=$.reviewTimerIds.get(X);if(Q){for(let Z of Q)J.swallowPromiseRejection($.scheduler.cancel(Z,U));$.reviewTimerIds.delete(X)}}$.workflowReviewIds.delete(U)}var Uq=["signal","update","review"];function s6($,U,J){for(let G of Uq)eK($,U,G);sc($,U),tc($,U),$q($,U,J),$.deliveredPendingUpdateIds.delete(U),$.workflowNestingDepths.delete(U),$.workflowHeaders.delete(U),$.workflowServices.delete(U),$.workflowTypeByWorkflowId.delete(U)}function rH($,U,J){for(let G of Uq)eK($,U,G);ac($,U),ec($,U),$q($,U,J)}async function Jq($,U,J){let G=N(U),X=[P.activityReconciliationPrefix(U),P.childCancellationPrefix(U),ZX(U),P.signalAcceptedResponsePrefix(U),`sig:${G}:`,`state:execution:${G}:`,`tool-effect:${G}:`];if(J)X.push(`offload:${G}:`,`blob:${G}:`);if(await $.storage.delete(P.workflowHeaders(U)),await $.storage.delete(P.signalSequence(U)),await b0($,U),await $.storage.delete(P.workflowHasServices(U)),!await v$($.storage,P.teardownOwed(U)))await $.storage.delete(P.finalizerState(U));if($.storage.deletePrefix){for(let _ of X)await $.storage.deletePrefix(_);return}let Q=500,Z=[],Y=async()=>{if(Z.length===0)return;await $.storage.batch(Z),Z=[]};for(let _ of X)for await(let[H]of $.storage.scan(_))if(Z.push({type:"delete",key:H}),Z.length>=Q)await Y();await Y()}function oH($,U,J){$.workflowsNeedingTerminalCleanup.delete(U),G1($,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(sU(U,"events")),$.workflowFeedListeners.delete(sU(U,"tokens")),s6($,U,J)}function sH($,U,J){oH($,U,J)}async function wX($,U,J,G){oH($,U,G),await aH($,U,J,G)}async function aH($,U,J,G){await G.cleanupReviews(U),await Jq($,U,J),await $.storage.delete(P.terminalCleanupNeeded(U))}async function tH($,U,J,G){let X=oz(J);if(!X){G.handleCleanupError("cleanupTerminalWorkflowDurableState",Error(`Ignoring malformed terminal cleanup timer id "${J}"`),U);return}let Q=await G.loadWorkflowState(U);if(!Q||!tK.has(Q.status))return;if(Q.terminalCleanupToken!==X.terminalCleanupToken)return;try{await aH($,U,X.includeOutputArtifacts,G)}catch(Z){throw G.handleCleanupError("cleanupTerminalWorkflowDurableState",Z,U),Z}}function I8($,U,J,G,X){let Q=J instanceof Error?J:Error(String(J));X.dispatchEvent(new P0(U,Q,G))}async function h8($,U,J){try{await J.handleScheduledWorkflowTerminal(U)}catch(G){J.handleCleanupError("handleScheduledWorkflowTerminal",G,U)}}async function Gq($,U,J){let G=await $.storage.get(P.workflow(U));if(G===null)return null;if(J?.onTerminalConflict!=="start-new")throw new O$(U);let X=i(G);if(!P$(X.status))throw new O$(U);if(await v$($.storage,P.teardownOwed(U)))throw new eG(U);return X}async function Xq($,U,J){let G=(Q)=>s6($,Q,{swallowPromiseRejection:J.swallowPromiseRejection}),X=await SH($,U);return bH($,U.id,G),X}function $p($,U,J){let G=U?.id!==void 0,X=U?.id!==void 0?W4(U.id,"options.id"):crypto.randomUUID(),Q=$.pendingParentHeaders;$.pendingParentHeaders=void 0;let Z=$.pendingExecutionStateOwnerId,Y=Z===null?void 0:Z??X;$.pendingExecutionStateOwnerId=void 0;let _=$.options.getNow(),H=Qq($,U,_,J),D=cH($,U?.tags,void 0,J),L=H!==void 0&&H>_?dK($,X,H,U,{parseStartOptionDuration:(F,M)=>g0($,F,M,J)}):void 0;return{workflowId:X,callerProvidedId:G,parentHeaders:Q,executionStateOwnerId:Y,submissionTime:_,delayedStartTimer:L,normalizedTags:D}}function Up($,U){G1($,U),$.checkpoints.delete(U),$.workflowHeaders.delete(U),$.workflowVersionTuples.delete(U),$.workflowServices.delete(U),$.workflowsNeedingTerminalCleanup.delete(U)}function Jp($,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 Q6($,U,J,G,X,Q,Z){let Y=$.registrations.get(U);if(!Y)throw new t$(U);let _=Y.concurrency;Jp($,G),D9(G);let H=$p($,G,Q),{workflowId:D,callerProvidedId:L,parentHeaders:F,executionStateOwnerId:M,delayedStartTimer:K}=H;if(sK($,G,Boolean(K)),$.pendingStarts.has(D))throw new O$(D);$.pendingStarts.add(D);let S=!1;try{let h=L?await Gq($,D,G):null;T6(J,$.options.payloadSizePolicy.maxBytes,"workflow input");let p=v0($,Y,Q),c=Zq($,D,U,J,p,G,H.normalizedTags,M,K,Q),I=Yq($,D,p.workflowVersion,G,Q),m=iH($,D,U,J,F,Q),u=v9(m),R$=h!==null?await Xq($,h,Q):void 0;if($.checkpoints.set(D,I),E4($,D,m,Q),$.workflowVersionTuples.set(D,p),await oK({internals:$,workflowId:D,state:c,checkpoint:I,registration:Y,options:G,delayedStartTimer:K,persistedWorkflowStartHeaders:u,additionalStartOperations:X,buildWorkflowConcurrencyStartOperations:_===void 0?void 0:()=>vX($,U,D,J,_),callbacks:Q,purgeDeleteOperations:R$},Z),G?.services!==void 0)$.workflowServices.set(D,G.services),$.workflowsNeedingTerminalCleanup.add(D);if(_!==void 0)$.workflowsNeedingTerminalCleanup.add(D);let b6=g8($,D,Q);return await aK($,{type:U,input:J,checkpoint:I,state:c,registration:Y,options:G,isDelayed:Boolean(K)},D,Q),S=!0,b6}finally{if($.pendingStarts.delete(D),!S)Up($,D)}}function Qq($,U,J,G){if(j9(U?.startAt,U?.startAfter),U?.startAt!==void 0)return V9(U.startAt,"options.startAt");if(U?.startAfter!==void 0){let X=g0($,U.startAfter,"options.startAfter",G);try{return A$(J+X,"options.startAfter")}catch{throw new f("options.startAfter must resolve to a finite, non-negative start time")}}return}function g0($,U,J,G){return o2(U,J)}function Gp($,U,J,G,X,Q,Z,Y){return{id:$,type:U,status:Q?"pending":"running",input:J,versionTuple:G,...X!==void 0&&{executionStateOwnerId:X},createdAt:Z,...!Q&&{startedAt:Z},updatedAt:Z,...Y!==void 0&&{tags:Y}}}function Xp($,U,J,G,X){if(U?.executionTimeout===void 0||J)return;let Q=g0($,U.executionTimeout,"options.executionTimeout",X);try{return A$(G+Q,"options.executionTimeout")}catch{throw new f("options.executionTimeout must resolve to a finite, non-negative deadline")}}function Zq($,U,J,G,X,Q,Z,Y,_,H){let D=$.options.getNow(),L=Gp(U,J,G,X,Y,_,D,Z),F=Xp($,Q,_,D,H);if(F!==void 0)L.executionDeadline=F;return L}function Yq($,U,J,G,X){let Q=rj(U,J,$.options.getNow());if(G?.searchAttributes)Q.searchAttributes={...G.searchAttributes};return Q}async function m8($,U){let J=await $.storage.get(P.startIdempotency(U));if(J===null)return;return A(J).workflowId}async function $D($,U){if(await l($,U)===null)throw new F6(U);return U}var Qp=5,Zp=5;async function Yp($,U){for(let J=0;J<Qp;J+=1){if(!$.pendingStarts.has(U))return;await q4(Zp)}}async function UD($,U,J,G,X){let Q=await y8($,U,J,G,X);if(Q!==void 0)return Q;return await Yp($,U),y8($,U,J,G,X)}async function y8($,U,J,G,X){let Q=await l($,U);if(Q===null)return;if(P$(Q.status))throw new wU(U,Q.status);return await X.signalExistingWorkflow(U,J.name,J.payload,G),X.getHandle(U)}var eH=5,_p=5;async function _q($,U,J,G,X,Q){for(let Y=0;Y<eH;Y+=1){let _=await y8($,U,J,G,X);if(_!==void 0)return _;if(Y<eH-1)await q4(_p)}if(await m8($,Q)===U)throw new F6(U);throw Error(`startOrSignal resolved winning workflow "${U}" but its record never became readable after ${eH} attempts.`)}async function cX($,U){let J=await m8($,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}function JD($,U,J){return(G)=>{let X=[],Q=[];if(U!==void 0){let Z=P.startIdempotency(U);X.push({type:"put",key:Z,value:W({workflowId:G})}),Q.push({key:Z,expectedValue:null})}if(J!==void 0){let Z=xW($,G,J.name,J.payload,J.signalId);X.push(...Z.operations),Q.push(Z.condition)}return{operations:X,conditions:Q}}}var jq=5;async function Hq($,U,J,G,X,Q,Z){let Y=Q?.idempotencyKey;for(let _=0;_<jq;_+=1){let H=await Hp($,Q,async()=>{return Q6($,U,J,Q,void 0,Z,JD($,Y,{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 _q($,H.id,G,X,Z,H.idempotencyKey),outcome:"signalled"};if(H.kind==="lost-caller-id"){let D=await UD($,H.id,G,X,Z);if(D!==void 0)return{handle:D,outcome:"signalled"}}else{let D=await jp($,U,J,G,X,Q,Z);if(D!==void 0)return D}}throw Error(`startOrSignal could not create workflow "${Q?.id??"<generated>"}" after ${jq} attempts: each concurrent same-id winner aborted before its durable commit.`)}async function jp($,U,J,G,X,Q,Z){try{return{handle:await Q6($,U,J,Q,void 0,Z),outcome:"started"}}catch(Y){if(!(Y instanceof O$))throw Y;let _=await UD($,Y.workflowId,G,X,Z);return _===void 0?void 0:{handle:_,outcome:"signalled"}}}async function Hp($,U,J){try{return{kind:"created",handle:await J()}}catch(G){if(G instanceof O$)return{kind:"lost-caller-id",id:G.workflowId};if(G instanceof l1){let X=U?.idempotencyKey;if(X!==void 0)return{kind:"lost-keyed",id:await cX($,X),idempotencyKey:X};return{kind:"signal-already-buffered"}}throw G}}function Dp($,U){if(U!==void 0)return P.startIdempotencySignalId(U);if($.signalId!==void 0)return $.signalId;throw new f("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 GD($,U,J,G,X){J$($.storage,"conditionalBatch","start idempotency");let{idempotencyKey:Q}=G;if(Q===void 0)throw new f("startWithIdempotency requires options.idempotencyKey");H9(Q,"options.idempotencyKey"),jj(G),D9(G);let Z=await m8($,Q);if(Z!==void 0)return X.getHandle(await $D($,Z));try{return await Q6($,U,J,G,void 0,X,JD($,Q,void 0))}catch(Y){if(!(Y instanceof l1))throw Y}return X.getHandle(await $D($,await cX($,Q)))}function Lp($,U){let J=U?.idempotencyKey;if(J===void 0)return;if(H9(J,"options.idempotencyKey"),jj(U??{}),$.signalId!==void 0)throw new f("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 XD($,U,J,G,X,Q){J$($.storage,"conditionalBatch","startOrSignal"),L9(X,"startOrSignal");let Z=X?.idempotencyKey;Lp(G,X);let Y=Dp(G,Z),_=Z!==void 0?await m8($,Z):void 0,H=_??X?.id;if(H!==void 0){let D=await y8($,H,G,Y,Q);if(D!==void 0)return{handle:D,outcome:"signalled"};if(_!==void 0)throw new F6(_)}return Hq($,U,J,G,Y,X,Q)}function Dq($,U,J){if($.searchAttributeSchema){if(!(U in $.searchAttributeSchema))throw Error(`Unknown search attribute "${U}". Registered attributes: ${Object.keys($.searchAttributeSchema).join(", ")}`);d4(U,J,$.searchAttributeSchema[U])}}function Lq($,U,J){Dq($,U,J),$.searchAttributes[U]=J,$.pendingAttributeChanges??={},$.pendingAttributeChanges[U]=J}function Vq($,U){for(let[J,G]of Object.entries(U))Dq($,J,G);for(let[J,G]of Object.entries(U))$.searchAttributes[J]=G,$.pendingAttributeChanges??={},$.pendingAttributeChanges[J]=G}function Pq($,U){return $.searchAttributes[U]}function Fq($){return{...$.searchAttributes}}function zq($,U,J,G){Pp(U,J,G);let X=`version:${U}`,Q=$[X];if(Q===void 0)return{localKey:X,version:G,newlyPinned:!0,checkpointLocals:{...$,[X]:G}};if(typeof Q!=="number"||!Number.isSafeInteger(Q))throw Error(`Invalid checkpointed workflow version patch "${U}" value ${JSON.stringify(Q)}`);let Z=Q;return Fp(U,Z,J,G),{localKey:X,version:Z,newlyPinned:!1,checkpointLocals:$}}function Pp($,U,J){if(typeof $!=="string"||$.length===0)throw Error("ctx.getVersion() requires a non-empty changeId");if(Mq("minSupported",U),Mq("maxSupported",J),U>J)throw Error("ctx.getVersion() minSupported must be less than or equal to maxSupported")}function Mq($,U){if(!Number.isSafeInteger(U))throw Error(`ctx.getVersion() ${$} must be a safe integer`)}function Fp($,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 Bq($,U){let J=$.stepIndex++;if($.accumulatedResults?.has(J))return{cached:!0};let G=Q$(U);if($.explainMode)console.log(`[weft] ctx.sleep(${JSON.stringify(U)})`),console.log(` → Creating checkpoint at step ${J}`),console.log(` → Scheduling timer for ${G}ms`);let X=crypto.randomUUID(),Q=s(),Z=$.sleepReferenceTime??$.getNow();return $.sleepReferenceTime=void 0,{cached:!1,milliseconds:G,request:{type:"sleep",operationId:X,duration:G,scheduledFireAt:Z+G,callerStack:Q},step:J}}function*Wq($,U){yield U.request,$.accumulatedResults.set(U.step,void 0)}function*Kq($,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(` → Creating checkpoint at step ${G}`),console.log(` → Waiting for signal "${J}"`);let X=crypto.randomUUID(),Q=s(),Z=yield{type:"wait-signal",operationId:X,signalName:J,callerStack:Q};return $.accumulatedResults.set(G,Z),Z}var Mp="__weftConditionDeadline:";function zp($,U,J){if(J===void 0)return;let G=`${Mp}${U}`,X=$.checkpointLocals[G];if(typeof X==="number"&&Number.isFinite(X))return X;if(X!==void 0)throw Error(`Invalid checkpointed wait-condition deadline ${JSON.stringify(X)} for step ${U}`);let Q=Q$(J),Z=$.sleepReferenceTime??$.getNow();$.sleepReferenceTime=void 0;let Y=Z+Q;return $.checkpointLocals={...$.checkpointLocals,[G]:Y},Y}function*qq($,U,J,G){let X=U.stepIndex++;if(U.accumulatedResults?.has(X))return U.accumulatedResults.get(X);let Q=zp(U,X,G);if(U.explainMode)console.log("[weft] ctx.waitUntil(predicate)"),console.log(` → Creating checkpoint at step ${X}`),console.log(Q===void 0?" → Waiting indefinitely":` → Deadline at ${Q}`);let Z=crypto.randomUUID(),Y=s(),_=yield{type:"wait-condition",operationId:Z,step:X,predicate:J,...Q!==void 0&&{deadline:Q},callerStack:Y};return $.accumulatedResults.set(X,_),_}function*Nq($,U,J,G,X){let Q=U.stepIndex++,Z=zq(U.checkpointLocals,J,G,X);if(U.checkpointLocals=Z.checkpointLocals,!Z.newlyPinned)return Z.version;if(U.accumulatedResults?.has(Q)){let D=U.accumulatedResults.get(Q);if(D!==Z.version)throw Error(`ctx.getVersion("${J}") replay result ${String(D)} does not match pinned version ${String(Z.version)}`);return Z.version}if(U.explainMode)console.log(`[weft] ctx.getVersion("${J}", ${G}, ${X})`),console.log(` → Creating checkpoint at step ${Q}`),console.log(` → Pinning workflow patch "${J}" to version ${Z.version}`);let Y=crypto.randomUUID(),_=s();return yield{type:"get-version",operationId:Y,changeId:J,minSupported:G,maxSupported:X,version:Z.version,callerStack:_}}function*Oq($,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(` → Creating checkpoint at step ${G}`),console.log(` → Waiting for update "${J}"`);let X=crypto.randomUUID(),Q=s(),Y=yield{type:"wait-update",operationId:X,updateName:J,callerStack:Q};return $.accumulatedResults.set(G,{payload:Y.payload}),Y}function*Aq($,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(` → Creating checkpoint at step ${G}`),console.log(" → Pausing for human review");let X=crypto.randomUUID(),Q=s(),Z=yield{type:"wait-review",operationId:X,reviewOptions:J,callerStack:Q};return $.accumulatedResults.set(G,Z),Z}function*Cq($,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(` → Creating checkpoint at step ${X}`),console.log(` → Offloading data for key "${J}" to external storage`);let Q=crypto.randomUUID(),Z=s(),Y=yield{type:"offload",operationId:Q,key:J,fn:G,callerStack:Z};return $.accumulatedResults.set(X,Y),Y}function*Rq($,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(` → Creating checkpoint at step ${X}`),console.log(` → Streaming data for key "${J}" to external storage`);let Q=crypto.randomUUID(),Z=s(),Y=yield{type:"stream",operationId:Q,key:J,fn:G,callerStack:Z};return $.accumulatedResults.set(X,Y),Y}function*Tq($,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(` → Creating checkpoint at step ${G}`),console.log(` → Loading offloaded data for key "${J.key}"`);let X=crypto.randomUUID(),Q=s(),Z=yield{type:"load",operationId:X,reference:J,callerStack:Q};return $.accumulatedResults.set(G,Z),Z}function*Eq($,U,J,G){let X=U.stepIndex++;if(U.accumulatedResults?.has(X))return;if(U.explainMode)console.log(`[weft] ctx.archive("${J}")`),console.log(` → Creating checkpoint at step ${X}`),console.log(` → Archiving data for key "${J}"`);let Q=crypto.randomUUID(),Z=s();yield{type:"archive",operationId:Q,key:J,data:G,callerStack:Z},$.accumulatedResults.set(X,void 0)}function*xq($,U){let J=[],G,X=!1,Q=!0,Z=g($).registerCancelHandler?.(async()=>{if(!Q||X)return;X=!0;try{await Wp(J)}finally{Q=!1,J.length=0,Z?.()}});for(let _ of U){let H=_.definition;try{let D=(F,M)=>H.execute(F,M);Object.defineProperty(D,"name",{value:H.name,configurable:!0});let L=yield*$.run(D,_.input);J.push({definition:H,input:_.input,output:L}),G=L}catch(D){if(!X){X=!0;for(let L=J.length-1;L>=0;L--){let F=J[L];if(F.definition.compensate!==void 0){let{input:M,output:K,definition:S}=F,h=async()=>S.compensate?.(M,K);Object.defineProperty(h,"name",{value:`compensate:${F.definition.name}`,configurable:!0});try{yield*$.run(h)}catch{}}}}throw Y(),D}}return Y(),G;function Y(){Q=!1,J.length=0,Z?.()}}async function Wp($){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{}}}function*Sq($,U,J){let G=U.stepIndex++;if(U.accumulatedResults?.has(G))return U.accumulatedResults.get(G);let X=crypto.randomUUID(),Q=s(),Z=yield{type:"speculate",operationId:X,execute:J,callerStack:Q};return $.accumulatedResults.set(G,Z),Z}function Z6($){return $===void 0?void 0:new Map($)}function bq($){return $===void 0?void 0:{...$}}function Np($,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 Op($,U){let J={workflowId:$.workflowId,workflowType:$.workflowType,startedAt:$.startedAt,abortController:U.abortController,getNow:U.getNow,initialStep:U.stepIndex,locals:U.checkpointLocals,searchAttributes:U.searchAttributes,nestingDepth:U.nestingDepth,executionStateOwnerId:U.executionStateOwnerId},G=Z6(U.accumulatedResults);if(G!==void 0)J.accumulatedResults=G;return Np(J,U),J}function Ap($,U){$.pendingAttributeChanges=bq(U.pendingAttributeChanges),$.updateHandlers=Z6(U.updateHandlers),$.updateValidators=Z6(U.updateValidators),$.queryHandlers=Z6(U.queryHandlers),$.exposedValues=Z6(U.exposedValues),$.memoCache=Z6(U.memoCache),$.explainMode=U.explainMode,$.workflowInterceptor=U.workflowInterceptor}function vq($,U){let J=g($),G=U(Op($,J));return Ap(g(G),J),G}function gq($,U){let J=g($),G=g(U);J.stepIndex=G.stepIndex,J.accumulatedResults=Z6(G.accumulatedResults),J.stateSession=H8(G.stateSession),J.checkpointLocals=F8(J.stateSession,G.checkpointLocals),J.searchAttributes={...G.searchAttributes},J.pendingAttributeChanges=bq(G.pendingAttributeChanges),J.updateHandlers=Z6(G.updateHandlers),J.updateValidators=Z6(G.updateValidators),J.queryHandlers=Z6(G.queryHandlers),J.exposedValues=Z6(G.exposedValues),J.memoCache=Z6(G.memoCache),J.sleepReferenceTime=G.sleepReferenceTime}function Iq($,U){let J=Cp($,U);return{session:(G,X)=>DW($,U,G,X),execution:(G,X)=>new QD({type:"execution",ownerWorkflowId:U.executionStateOwnerId},G,X,J),workflow:(G,X)=>new QD({type:"workflow",workflowType:$.workflowType},G,X,J)}}function Cp($,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)}}}class QD extends EventTarget{#$;#U;#J;#G;#X;#Q;constructor($,U,J,G){super();this.#$=$,this.#U=U,this.#J=o4($,U),this.#G=J?.maxRetries??10,this.#X=J&&"initial"in J?{initial:J.initial}:void 0,this.#Q=G}*get(){return(yield*this.#Z()).value}*set($){return yield*this.update(()=>$)}*update($){for(let U=0;U<this.#G;U++){let J=yield*this.#Z(),G=$(J.value),X=yield*this.#Y(J.version,"set",G);if(X.applied)return this.dispatchEvent(new l4(G,J.value,X.version)),G;this.dispatchEvent(new i4(this.#J,U+1))}throw this.dispatchEvent(new n4(this.#J,this.#G)),new r4(this.#J,this.#G)}*delete(){for(let $=0;$<this.#G;$++){let U=yield*this.#Z(),J=yield*this.#Y(U.version,"delete");if(J.applied){this.dispatchEvent(new l4(void 0,U.value,J.version));return}this.dispatchEvent(new i4(this.#J,$+1))}throw this.dispatchEvent(new n4(this.#J,this.#G)),new r4(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}),$}*#Z(){return yield*this.#_({type:"state-read",operationId:crypto.randomUUID(),scope:this.#$,key:this.#U,...this.#X!==void 0?{initial:this.#X.initial}:{},callerStack:s()})}*#Y($,U,J){return yield*this.#_({type:"state-commit",operationId:crypto.randomUUID(),scope:this.#$,key:this.#U,expectedVersion:$,mode:U,...U==="set"?{value:J}:{},callerStack:s()})}*#_($){let U=this.#Q;if(U===void 0)return yield $;let J=U.nextStep();if(U.has(J))return U.get(J);let G=yield $;return U.set(J,G),G}}function hq($,U,J,G){if(FW(J)||MW(J))throw TypeError(`Update handler "${U}" cannot be a generator function. `+"Use a plain function — 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 yq($,U,J){$.queryHandlers??=new Map,$.queryHandlers.set(U,J)}function mq($,U){$.exposedValues??=new Map;for(let[J,G]of Object.entries(U))$.exposedValues.set(J,G)}var Ep={debug:"debug",info:"info",warn:"warn",error:"error"};function pX($){console[Ep[$.level]]($)}function xp($,U,J,G){return{level:U,message:J,workflowId:$.workflowId,workflowType:$.workflowType,timestamp:$.now(),...G!==void 0&&{attributes:G}}}function Sp($){let U=(J,G,X)=>{if($.isReplaying())return;let Q=xp($,J,G,X);if($.sink!==void 0){try{$.sink(Q)}catch{pX(Q)}return}pX(Q)};return{debug:(J,G)=>U("debug",J,G),info:(J,G)=>U("info",J,G),warn:(J,G)=>U("warn",J,G),error:(J,G)=>U("error",J,G)}}function kq($,U,J,G){return Sp({workflowId:$,workflowType:U,isReplaying:()=>{let X=J();return X.accumulatedResults?.has(X.stepIndex)??!1},now:()=>J().getNow(),...G!==void 0&&{sink:G}})}function I0($,U){g($).workflowInterceptor=U}class Q1{workflowId;workflowType;startedAt;signal;#$;constructor($){this.workflowId=$.workflowId,this.workflowType=$.workflowType,this.startedAt=$.startedAt,this.signal=$.abortController.signal;let U=ij($.locals);VW(this,$,U)}get executionTimeRemaining(){let $=g(this);if($.deadline===void 0)return 1/0;return Math.max(0,$.deadline-$.getNow())}get services(){return g(this).services}get log(){return this.#$??=kq(this.workflowId,this.workflowType,()=>g(this),g(this).logSink)}get stepIndex(){return g(this).stepIndex}get nestingDepth(){return g(this).nestingDepth}get accumulatedResults(){let $=g(this);return $.accumulatedResults??=new Map,$.accumulatedResults}get checkpointLocals(){return g(this).checkpointLocals}get pendingAttributeChanges(){let $=g(this);return $.pendingAttributeChanges??={},$.pendingAttributeChanges}get exposedAccessors(){let $=g(this);return $.exposedValues??=new Map,$.exposedValues}get updateHandlers(){let $=g(this);return $.updateHandlers??=new Map,$.updateHandlers}get updateValidators(){let $=g(this);return $.updateValidators??=new Map,$.updateValidators}get queryHandlers(){let $=g(this);return $.queryHandlers??=new Map,$.queryHandlers}get explainEnabled(){return g(this).explainMode}get checkpointAccumulatedResults(){let $=g(this).accumulatedResults;return $?Array.from($.entries()):[]}get checkpointPendingAttributeChanges(){let $=g(this).pendingAttributeChanges;return $?{...$}:void 0}createSpeculativeChild(){return vq(this,($)=>new Q1($))}commitSpeculativeChild($){gq(this,$)}get state(){return Iq(this,g(this))}*run($,...U){return yield*PW(this,$,U)}*sleep($){let U=g(this),J=Bq(U,$);if(J.cached)return;let G=()=>Wq(this,J);if(!U.workflowInterceptor)return yield*G();return yield*U.workflowInterceptor.sleep({workflowId:this.workflowId,duration:J.milliseconds,headers:new Map},G)}*suspendUntil($){return yield*this.waitForSignal($)}*waitForSignal($){let U=g(this),J=i$($),G=()=>Kq(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*Oq(this,g(this),i$($))}*waitUntil($,U){return yield*qq(this,g(this),$,U)}*getVersion($,U,J){return yield*Nq(this,g(this),$,U,J)}*review($){return yield*Aq(this,g(this),$)}*all($){return yield*EB(this,g(this),[...$])}*race($){return yield*xB(this,g(this),[...$])}*memo($,U){return yield*SB(this,g(this),$,U)}*offload($,U){return yield*Cq(this,g(this),$,U)}*stream($,U){return yield*Rq(this,g(this),$,U)}*load($){return yield*Tq(this,g(this),$)}*archive($,U){return yield*Eq(this,g(this),$,U)}*runAll($){return yield*bB(this,g(this),$)}*saga($){return yield*xq(this,$)}*startChild($,U,J){return yield*OB(this,g(this),$,U,J)}*pipe($,U){return yield*AB(this,g(this),$,U)}*map($,U,J){return yield*CB(this,g(this),$,U,J)}*reduce($,U,J,G){return yield*RB(this,g(this),$,U,J,G)}explain($=!0){g(this).explainMode=$}*speculate($){return yield*Sq(this,g(this),$)}setAttribute($,U){Lq(g(this),N$($),U)}setAttributes($){Vq(g(this),$)}getAttribute($){return Pq(g(this),N$($))}getAttributes(){return Fq(g(this))}onUpdate($,U,J){hq(g(this),i$($),U,J)}onQuery($,U){yq(g(this),i$($),U)}expose($){mq(g(this),$)}onCancel($){let U=g(this);if(U.registerCancelHandler===void 0)throw Error("ctx.onCancel() is only supported for inline workflow execution");U.registerCancelHandler($)}setFinalizerState($){let U=g(this);if(U.recordFinalizerState===void 0)throw Error("ctx.setFinalizerState() is only supported for inline workflow execution; it is unavailable in worker execution mode and inside ctx.speculate() branches.");U.recordFinalizerState($)}streamUrl($){return`/v1/workflows/${encodeURIComponent($.workflowId)}/streams/${encodeURIComponent($.key)}`}}function k8($,U,J){$.cancelHandlersByWorkflow??=new Map;let G=$.cancelHandlersByWorkflow.get(U);if(G===void 0)G=[],$.cancelHandlersByWorkflow.set(U,G);return G.push(J),()=>{let X=$.cancelHandlersByWorkflow.get(U);if(X===void 0)return;let Q=X.indexOf(J);if(Q!==-1)X.splice(Q,1);if(X.length===0)$.cancelHandlersByWorkflow.delete(U)}}function dX($,U){return(J)=>k8($,U,J)}function f8($,U){$.cancelHandlersByWorkflow??=new Map,$.cancelHandlersByWorkflow.delete(U)}function fq($,U){$.cancelHandlersByWorkflow??=new Map;let J=$.cancelHandlersByWorkflow.get(U)??[];return $.cancelHandlersByWorkflow.delete(U),J}function uq($){return{async execute(U,J){let G=J;for(let X=$.length-1;X>=0;X--){let Q=$[X];if(Q.execute){let Z=G,Y=Q.execute.bind(Q);G=(_)=>{return Y(_,Z)}}}return G(U)}}}var wq=Object.freeze(["activity","sleep","waitForSignal","workflowStart","childWorkflow","query","signalReceived"]);function ZD($){let U=[],J=[];for(let G of $){if(wq.some((X)=>cq(G,X)))U.push(G);if(cq(G,"execute"))J.push(G)}return{workflow:U,activity:J}}function cq($,U){return typeof $[U]==="function"}function bp($){return function*(J,G){let X=G;for(let Q=$.length-1;Q>=0;Q--){let Z=$[Q];if(Z.activity){let Y=X,_=Z.activity.bind(Z);X=function*(H){return yield*_(H,Y)}}}return yield*X(J)}}function vp($){return function*(J,G){let X=G;for(let Q=$.length-1;Q>=0;Q--){let Z=$[Q];if(Z.sleep){let Y=X,_=Z.sleep.bind(Z);X=function*(H){yield*_(H,Y)}}}yield*X(J)}}function gp($){return function*(J,G){let X=G;for(let Q=$.length-1;Q>=0;Q--){let Z=$[Q];if(Z.waitForSignal){let Y=X,_=Z.waitForSignal.bind(Z);X=function*(H){return yield*_(H,Y)}}}return yield*X(J)}}function Ip($){return function(J,G){let X=G;for(let Q=$.length-1;Q>=0;Q--){let Z=$[Q];if(Z.workflowStart){let Y=X,_=Z.workflowStart.bind(Z);X=(H)=>{_(H,Y)}}}X(J)}}function hp($){return async function(J,G){let X=G;for(let Q=$.length-1;Q>=0;Q--){let Z=$[Q];if(Z.childWorkflow){let Y=X,_=Z.childWorkflow.bind(Z);X=(H)=>{return _(H,Y)}}}return X(J)}}function yp($){return function*(J,G){let X=G;for(let Q=$.length-1;Q>=0;Q--){let Z=$[Q];if(Z.query){let Y=X,_=Z.query.bind(Z);X=function*(H){return yield*_(H,Y)}}}return yield*X(J)}}function mp($){return function(J,G){let X=G;for(let Q=$.length-1;Q>=0;Q--){let Z=$[Q];if(Z.signalReceived){let Y=X,_=Z.signalReceived.bind(Z);X=(H)=>{_(H,Y)}}}X(J)}}function pq($){return{activity:bp($),sleep:vp($),waitForSignal:gp($),workflowStart:Ip($),childWorkflow:hp($),query:yp($),signalReceived:mp($)}}function Y6($,U,J,G){if($.inlineStrategy){if(J.status==="completed")$.inlineStrategy.continueWorkflow(U,J.value);else $.inlineStrategy.throwIntoWorkflow(U,G!==void 0?G.value:B9(J),J.failureCategory);return}let X=$.checkpoints.get(U),Q=X?F$(X):new ArrayBuffer(0);$.strategy.resumeWorkflow({workflowId:U,checkpoint:Q,operationResult:J})}async function x6($){if(!$)return;try{await $}catch{}}function _6($){if($.interceptors.length===0)return null;if($.composedWorkflowInterceptor!==void 0)return $.composedWorkflowInterceptor;let U=ZD($.interceptors).workflow;return $.composedWorkflowInterceptor=U.length===0?null:pq(U),$.composedWorkflowInterceptor}function dq($){if($.interceptors.length===0)return null;if($.composedActivityInterceptor!==void 0)return $.composedActivityInterceptor;let U=ZD($.interceptors).activity;return $.composedActivityInterceptor=U.length===0?null:uq(U),$.composedActivityInterceptor}function lq($,U,J,G){return{workflowId:U,step:J.step}}function iq($,U,J,G){return{...U.searchAttributes,[uK]:J.workflowId}}function nq($,U,J,G,X,Q,Z){return{id:U,type:J.type,status:"running",input:J.input,versionTuple:G,executionStateOwnerId:U,createdAt:Q,startedAt:Q,updatedAt:Q,forkedFrom:X}}function rq($,U,J,G,X,Q,Z){let Y=[{type:"put",key:P.workflow(U),value:W(J)},{type:"put",key:P.checkpoint(U),value:X},...h9(U,null,J).batchOps];if(Object.keys(G.searchAttributes).length>0)Y.push({type:"put",key:P.attribute(U),value:W(G.searchAttributes)},...W$(U,{},G.searchAttributes));if(Q&&Q.size>0)Y.push({type:"put",key:P.workflowHeaders(U),value:b9(Q)},{type:"put",key:P.terminalCleanupNeeded(U),value:p$});return Y}function oq($,U,J){let G=[{type:"put",key:P.childCancellation(U,J),value:p$}],X=!$.workflowsNeedingTerminalCleanup.has(U);if($.workflowsNeedingTerminalCleanup.add(U),X)G.push({type:"put",key:P.terminalCleanupNeeded(U),value:p$});return G}function YD($,U,J,G){k8($,U,()=>G.getHandle(J).cancel())}async function _D($,U,J){for await(let[G]of $.storage.scan(P.childCancellationPrefix(U))){let X=kp(U,G);if(X===null)continue;YD($,U,X,J)}}function kp($,U){let J=P.childCancellationPrefix($);if(!U.startsWith(J))return null;let G=U.slice(J.length);if(G.length===0||G.includes(":"))return null;return IM(G)}async function fp($,U,J){return kX($,U,J.failWorkflowForUnavailableServices,J.handleCleanupError,J.dispatchEvent)}function sq($,U){if($.terminalizingWorkflows.has(U))throw Error(`Cannot resume workflow "${U}": termination is in progress`)}function up($,U){let{workflowId:J,resumeCheckpoint:G,serializedCheckpoint:X,registeredVersionTuple:Q,restoredHead:Z,callbacks:Y}=U;$.checkpoints.set(J,G),RX($,J,X),$.workflowVersionTuples.set(J,Q),$.eventLogHeads.set(J,Z),E4($,J,U.workflowStartHeaders,Y),$.parkedInlineWorkflows.delete(J)}async function wp($,U,J){let{workflowId:G,resumeCheckpoint:X,registration:Q,callbacks:Z}=J,Y=new Map(X.accumulatedResults),_=new AbortController;f8($,G),await _D($,G,Z);let H=new Q1({workflowId:G,workflowType:U.type,startedAt:E6(U),abortController:_,getNow:$.options.getNow,resolveWorkflowType:Z.resolveWorkflowTypeTarget,executionStateOwnerId:U.executionStateOwnerId??G,accumulatedResults:Y,locals:X.locals,searchAttributes:X.searchAttributes,registerCancelHandler:dX($,G),...Q.searchAttributes&&{searchAttributeSchema:Q.searchAttributes},sleepReferenceTime:X.createdAt,...U.executionDeadline!==void 0&&{deadline:U.executionDeadline},services:$.workflowServices.get(G),...$.options.onLog!=null&&{logSink:$.options.onLog}});if(I0(H,_6($)),$.options.development)H.explain(!0);let D=Q.handler(H,U.input),L=$.inlineStrategy;L.adoptWorkflow(G,D,H,_),L.continueWorkflow(G,void 0)}async function cp($,U,J){let{workflowId:G,resumeCheckpoint:X,workflowStartHeaders:Q,callbacks:Z}=J;f8($,G),await _D($,G,Z);let Y=F$(X);$.strategy.startWorkflow({workflowId:G,workflowType:U.type,input:U.input,checkpoint:Y,nestingDepth:$.workflowNestingDepths.get(G)??0,executionStateOwnerId:U.executionStateOwnerId??G,...U.executionDeadline!==void 0&&{deadline:U.executionDeadline},...Q!==void 0&&Q.size>0&&{headers:[...Q]}})}async function pp($,U){let{workflowId:J}=U;sq($,J);let G=await l($,J);if(sq($,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 dp($,G),up($,U),$.inlineStrategy){await wp($,G,U);return}await cp($,G,U)}async function dp($,U){if(U.status!=="suspended")return;let J={...U};U.status="running",U.updatedAt=$.options.getNow(),await G$($,[{type:"put",key:P.workflow(U.id),value:W(U)},...I$(U.id,J,U).batchOps,...U.executionDeadline!==void 0?_$({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 u8($,U,J,G){let X=await $.storage.get(P.workflow(U));if(!X)throw Error(`Workflow "${U}" not found in storage`);let Q=i(X);if(Q.status!=="running"&&Q.status!=="suspended")throw Error(`Cannot resume workflow "${U}": status is "${Q.status}", expected "running" or "suspended"`);let Z=await $.storage.get(P.checkpoint(U));if(!Z)throw Error(`Checkpoint not found for workflow "${U}"`);let Y=D$(Z),_=$.registrations.get(Q.type);if(!_)throw Error(`No workflow registered with name "${Q.type}" (needed to resume "${U}")`);let H=await dH($,U,Q,Y,Z,_,G),D=H.checkpoint,L=H.versionTuple,M=await new n$($.storage,U).loadHead();if(await uH($,U,M,G))return G.getHandle(U);let K=await d1($,U,G);if(await wH($,U,G),await fp($,Q,G))return G.getHandle(U);let S=G.getHandle(U);if(await G.runSerializedWorkflowStateWrite(U,()=>pp($,{workflowId:U,resumeCheckpoint:D,serializedCheckpoint:H.serializedCheckpoint,registeredVersionTuple:L,restoredHead:M,workflowStartHeaders:K,registration:_,callbacks:G})),J)G.dispatchEvent(new W0(U,D.step));if($.inlineStrategy)G.swallowPromiseRejection(G.processPendingUpdatesAfterInlineAdvance(U));return S}function lp($){return $.includes(":ckpt")||$.includes(":offload")||$.includes(":archive")||$.includes(":timeline:")}function ip($,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 np($,U){if(U.kind==="ignored")return;if($.entries.push(U),U.kind==="missing")$.missingWorkflows.push(U.workflow)}async function rp($,U){let J={entries:[],missingWorkflows:[]};for await(let[G,X]of $.storage.scan("wf:")){if(lp(G))continue;np(J,ip($,U,i(X)))}return J}async function jD($,U,J){let G=await rp($,U),X=[];if(G.missingWorkflows.length>0&&J?.acknowledgeUnknownWorkflowTypes!==!0)throw new kU({registeredTypes:$.registrations.keys(),missingWorkflows:G.missingWorkflows});for(let Q of G.entries){if(Q.kind==="local"){X.push(U.getHandle(Q.workflowId));continue}if(Q.kind==="missing"){U.dispatchEvent(new QX(Q.workflow.workflowId,Q.workflow.type,"type-not-registered"));continue}try{X.push(await lX($,Q.workflowId,U))}catch(Z){if(Z instanceof e0){await U.failWorkflowForCheckpointDecodeError(Q.workflowId,Z);continue}throw Z}}return X}async function lX($,U,J){let G=await l($,U);if(G!==null){if(J.isInlineWorkflowLocallyOwned(U,G.status)||J.hasLocalCheckpointOwnership(U,G.status))return await wK($,U,J),J.getHandle(U)}return u8($,U,!0,J)}async function HD($,U,J,G){let X=await l($,U);if(!X)throw Error(`Workflow "${U}" not found`);let Q=$.registrations.get(X.type);if(!Q)throw Error(`No workflow registered with name "${X.type}" (needed to fork "${U}")`);let Z=J?.fromStep!==void 0?wz(J.fromStep):void 0,Y=Z!==void 0?P.checkpointHistory(U,Z):P.checkpoint(U),_=await $.storage.get(Y);if(!_){if(Z!==void 0)throw Error(`Checkpoint not found at step ${String(Z)} for workflow "${U}"`);throw Error(`Checkpoint not found for workflow "${U}"`)}let H=D$(_),D=await I1($.storage,U,H),L=yX($,U,X,D,Q,G),F=$.workflowHeaders.get(U)??await d1($,U,G),M=v9(F),K=crypto.randomUUID(),S=$.options.getNow(),h=lq($,U,D,G),{accumulatedResultReplayWatermark:p,...c}=L.checkpoint,I={...c,createdAt:S,workflowId:K,searchAttributes:iq($,L.checkpoint,h,G)},m=nq($,K,L.state,L.versionTuple,h,S,G),u=!1;try{let R$=F$(I);await G$($,rq($,K,m,I,R$,M,G),[],()=>Error(`Fork of workflow "${K}" lost its CAS race.`)),$.eventLogHeads.set(K,v1),E4($,K,M,G);let b6=aq($,K,m,I,Q,G);return u=!0,b6}finally{if(!u)G1($,K),$.checkpoints.delete(K),$.workflowVersionTuples.delete(K),$.eventLogHeads.delete(K),$.workflowHeaders.delete(K)}}function op($,U,J,G,X,Q){let Z=$.inlineStrategy;if(!Z)throw Error("Inline workflow launch requested without an inline strategy.");let Y=new Map(G.accumulatedResults),_=new AbortController;f8($,U);let H=new Q1({workflowId:U,workflowType:J.type,startedAt:E6(J),abortController:_,getNow:$.options.getNow,resolveWorkflowType:Q.resolveWorkflowTypeTarget,executionStateOwnerId:J.executionStateOwnerId??U,accumulatedResults:Y,searchAttributes:G.searchAttributes,registerCancelHandler:dX($,U),...X.searchAttributes&&{searchAttributeSchema:X.searchAttributes},sleepReferenceTime:G.createdAt,...J.executionDeadline!==void 0&&{deadline:J.executionDeadline},...$.options.onLog!=null&&{logSink:$.options.onLog}});if(I0(H,_6($)),$.options.development)H.explain(!0);let D=X.handler(H,J.input);Z.adoptWorkflow(U,D,H,_),Z.continueWorkflow(U,void 0),Q.swallowPromiseRejection(Q.processPendingUpdatesAfterInlineAdvance(U))}function sp($,U,J,G){let X=F$(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 aq($,U,J,G,X,Q){$.checkpoints.set(U,G),$.workflowVersionTuples.set(U,v0($,X,Q));let Z=g8($,U,Q);if(Q.dispatchEvent(new r6(U,J.type,J.input)),$.inlineStrategy)op($,U,J,G,X,Q);else sp($,U,J,G);return Z}function tq($,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(w8($,J))},0)}function DD($,U){for(let J of U)$.queuedInlineWorkflowStartIds.delete(J.workflowId),$.queuedOrLaunchingInlineWorkflowStartIds.delete(J.workflowId),J.onStarted?.()}async function w8($,U){if($.abortController.signal.aborted){let G=$.queuedInlineWorkflowStarts;$.queuedInlineWorkflowStarts=[],DD($,G);return}if($.queuedInlineWorkflowStarts.length===0)return;let J=$.queuedInlineWorkflowStarts;$.queuedInlineWorkflowStarts=[];for(let G of J)await U.swallowPromiseRejection(ap($,G,U))}async function eq($,U){$.queuedInlineWorkflowStartFlushScheduled=!1,await w8($,U)}async function $N($,U){$.queuedInlineWorkflowStartFlushScheduled=!1;let J=0,G=1000;while($.queuedInlineWorkflowStarts.length>0&&!$.abortController.signal.aborted&&J<G)J+=1,await U.swallowPromiseRejection(w8($,U))}async function ap($,U,J){try{let G=await l($,U.workflowId);if(!G||G.status!=="running")return;$.queuedInlineWorkflowStartIds.delete(U.workflowId),$.engine.dispatchEvent(new r6(U.workflowId,U.workflowType,U.input)),fX($,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 iX($,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)DD($,G);return $.queuedInlineWorkflowStarts.length!==J}function UN($){$.queuedInlineWorkflowStartFlushScheduled=!1;let U=$.queuedInlineWorkflowStarts;$.queuedInlineWorkflowStarts=[],DD($,U),$.queuedInlineWorkflowStartIds.clear(),$.queuedOrLaunchingInlineWorkflowStartIds.clear();let J=$.queuedInlineWorkflowStartChannel;if(J!==null)J.port1.close(),J.port2.close(),$.queuedInlineWorkflowStartChannel=null}function JN($,U){return $.queuedInlineWorkflowStartIds.has(U)}function tp($,U){return $.queuedOrLaunchingInlineWorkflowStartIds.has(U)}function GN($){return $==="running"||$==="pending"}function XN($,U,J){if(!GN(J))return!1;if(tp($,U))return!0;if($.inlineStrategy===null)return!1;return $.inlineStrategy.getContext(U)!==void 0||$.inlineStrategy.waitForWorkflowTurn(U)!==void 0||$.parkedInlineWorkflows.has(U)}function QN($,U,J){return $.checkpoints.has(U)&&GN(J)}var ZN=new WeakMap;function YN($){let U={engine:$};ZN.set($,U)}function V($){let U=ZN.get($);if(!U)throw Error("Engine internals not initialized — initializeInternals(this) was not called in the Engine constructor");return U}async function ep(){await new Promise(($)=>{setTimeout($,0)})}async function $d($,U){let J=$.inlineStrategy;if(J===null)return!1;let G=J.getContext(U);if(G&&G.updateHandlers.size>0)return!0;let X=J.waitForWorkflowAdvance(U);if(X){if(await X,G=J.getContext(U),G&&G.updateHandlers.size>0)return!0}for(let Q=0;Q<5;Q++)if(await ep(),G=J.getContext(U),G&&G.updateHandlers.size>0)return!0;return!1}async function Ud($,U,J,G){return LH($,U,J,G)}async function _N($,U,J){if((await $.updateCoordinator.getPendingUpdates(U)).length===0)return;if(!await $d($,U))return;await c8($,U,J)}function jN($,U,J){if($.inlineStrategy===null)return;setTimeout(()=>{c8($,U,J).catch(()=>{})},0)}async function Jd($,U,J){let G;try{G=await $(J)}catch(Q){let Z=Q instanceof Error?Q.message:String(Q);return new A4(U,[{message:Z}]).message}let X=VH(G);if(X!==null&&X.length>0)return new A4(U,X).message;return null}async function c8($,U,J){let G=$.inlineStrategy?.getContext(U);if(!G)return;let X=G.updateHandlers;if(X.size===0)return;let Q=await $.updateCoordinator.getPendingUpdates(U);if(Q.length===0)return;let Z=!1;try{for(let Y of Q){let _=X.get(Y.name);if(!_)continue;if(!Gd($,U,Y.updateId))continue;let H=await Xd(G,Y);if(H!==null){await Qd($,U,Y,H,J);continue}Z=!0,await Zd($,U,Y,_,J)}}finally{if(Z)M8($,U)}}function Gd($,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 Xd($,U){let J=$.updateValidators?.get(U.name);if(J===void 0)return null;return Jd(J,U.name,U.payload)}async function Qd($,U,J,G,X){let Q=$.updateCoordinator.buildResponseOperations(J.updateId,U,void 0,G,J.idempotencyKey);await G$($,Q,[],()=>Error(`Update rejection for workflow "${U}" lost its CAS race.`)),X.broadcast({type:"update:completed",workflowId:U,updateId:J.updateId})}async function Zd($,U,J,G,X){X.dispatchEvent(new A6(J.updateId,U,J.name,J.payload));let Q,Z;try{Q=await Ud($,J.name,G,J.payload)}catch(_){Z=_ instanceof Error?_.message:String(_)}let Y=$.updateCoordinator.buildResponseOperations(J.updateId,U,Q,Z,J.idempotencyKey);await G$($,Y,[],()=>Error(`Update response for workflow "${U}" lost its CAS race.`)),X.dispatchEvent(new U6(J.updateId,U,J.name,Q,Z)),X.broadcast({type:"update:completed",workflowId:U,updateId:J.updateId})}function Yd($){return $===void 0?void 0:[...$]}function DN($){return typeof $==="object"&&$!==null&&"name"in $&&"handler"in $}function _d($,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 jd($,U){let J=Yd(U.tags),G=T9(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:c4(U.inputSchema,`registration("${$}").inputSchema`)},...U.outputSchema===void 0?{}:{outputSchema:c4(U.outputSchema,`registration("${$}").outputSchema`)},...G!==null&&{retention:G},...U.concurrency!==void 0?{concurrency:Hd(U.concurrency,`registration("${$}").concurrency`)}:{}}}function Hd($,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 Dd($,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 Ld($,U){let J=jd($,U);return Dd(J,U),J}function HN($,U,J){let G=U.name;hU(G,"workflow"),_d($,G,U);let X=Ld(G,U);$.registrations.set(G,X),J.ensureRetentionSweepInterval(),$.workflowTypesByHandler.set(U.handler,G),J.dispatchEvent(new XX(G))}function p8($,U){if(!(U in $))return!1;let J=$[U];return typeof J==="object"&&J!==null}function Vd($){if(!DN($))return!1;return p8($,"activities")&&p8($,"signals")&&p8($,"updates")&&p8($,"queries")&&p8($,"searchAttributes")}function Pd($){let U=new l2;for(let J of Object.values($)){let G=UM(J),X=aF(G);U.register(X.name,X)}return U}function Fd($,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 LN($,U,J){if(!DN(U))throw TypeError("engine.register() expects a WorkflowDefinition (produced by `workflow({ name }).execute(fn)`) or an ActivityDefinition.");if(Vd(U)){if(Fd($,U.name,U).kind==="idempotent")return;let X=Pd(U.activities);HN($,U,J),$.workflowDefinitionsByName.set(U.name,U),$.activityRegistriesByWorkflow.set(U.name,X);return}HN($,U,J)}function nX($,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 Md=j.object({reviewId:j.string(),workflowId:j.string(),artifact:j.unknown().nonoptional(),reviewType:j.string(),reviewers:j.array(j.string()),allowPartial:j.boolean(),timeout:j.number().optional(),webhookUrl:j.string().optional(),createdAt:j.number()}),zd=j.object({status:j.literal("completed"),reviewId:j.string(),workflowId:j.string(),artifact:j.unknown().nonoptional(),reviewType:j.string(),reviewers:j.array(j.string()),allowPartial:j.boolean(),timeout:j.number().optional(),webhookUrl:j.string().optional(),createdAt:j.number(),decision:j.enum(["approved","rejected","needs-changes"]),reviewer:j.string(),feedback:j.string().optional(),sectionDecisions:j.record(j.string(),j.enum(["approved","rejected"])).optional(),timestamp:j.number()});function a6($,U,J){if(J!==void 0)$[U]=J}function VN($){return{status:"pending",...$}}function Bd($){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 rX($){let U;try{U=A($)}catch{return null}let J=Md.safeParse(U);if(!J.success)return null;return Bd(J.data)}function PN($,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 Wd($){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 LD($){let U;try{U=A($)}catch{return null}let J=zd.safeParse(U);if(!J.success)return null;return Wd(J.data)}function VD($,U){if(U.workflowId!==void 0&&$.workflowId!==U.workflowId)return!1;if(U.reviewType!==void 0&&$.reviewType!==U.reviewType)return!1;return!0}function PD($){if($===void 0)return"review-decision:";return`review-decision:${N($)}:`}function Kd($,U){return`${PD($)}${N(U)}`}async function FN($,U,J,G=()=>!0){for await(let[X,Q]of U){if(!G(X))continue;let Z=LD(Q);if(Z!==null&&VD(Z,J))$.push(Z)}}async function MN($,U){let J=[],G=U.workflowId===void 0?null:PD(U.workflowId);if(G!==null)await FN(J,$.scan(G),U);return await FN(J,$.scan("review-decision:"),U,(X)=>G===null||!X.startsWith(G)),J}async function zN($,U,J,G){let X=PN(J,G);await $.batch([{type:"put",key:Kd(J.workflowId,J.reviewId),value:W(X)},{type:"delete",key:U}])}async function BN($,U){let J=PD(U),G=[];if($.deletePrefix)await $.deletePrefix(J);else for await(let[X]of $.scan(J))G.push({type:"delete",key:X});for await(let[X,Q]of $.scan("review-decision:")){if(X.startsWith(J))continue;if(LD(Q)?.workflowId===U)G.push({type:"delete",key:X})}if(G.length>0)await $.batch(G)}function qd($){if($.workflowId===void 0)return"review:";return`review:${N($.workflowId)}:`}async function Nd($,U){let J=[];for await(let[,G]of $.storage.scan(qd(U))){let X=rX(G);if(X!==null&&VD(X,U))J.push(VN(X))}return J}async function WN($,U,J,G,X){await zN($.storage,U,J,G),X(new X0(J.workflowId,J.reviewId,G.decision,G.reviewer,G.timestamp-J.createdAt))}async function KN($,U={}){if(U.status==="completed")return MN($.storage,U);return Nd($,U)}async function qN($,U,J){return $.reviewCoordinator.getReview(U,J)}async function Od($,U){for await(let[J,G]of $.storage.scan("review:")){let X=rX(G);if(X!==null&&X.reviewId===U)return{reviewKey:J,reviewData:X,workflowId:X.workflowId}}return null}async function Ad($,U,J){if(J!==void 0){let G=P.review(J,U),X=await $.storage.get(G);return X===null?null:{reviewKey:G,reviewData:rX(X),workflowId:J}}return Od($,U)}function Cd($,U,J){let{decision:G,reviewer:X,feedback:Q,sectionDecisions:Z}=U,Y={reviewId:$,decision:G,reviewer:X,timestamp:J};if(Q!==void 0)Y.feedback=Q;if(Z!==void 0)Y.sectionDecisions=Z;return Y}function Rd($,U,J,G){let X=`${U}:${J}`,Q=$.reviewWaiters.get(X);if(!Q)return;$.reviewWaiters.delete(X),J6($.reviewWaitersByWorkflow,U,X),Q(G)}async function NN($,U,J,G){let X=await Ad($,U,J.workflowId);if(X===null)throw Error(`Review "${U}" not found`);if(X.reviewData===null)throw Error(`Review "${U}" could not be loaded`);let Q=Cd(U,J,$.options.getNow());await WN($,X.reviewKey,X.reviewData,Q,G.dispatchEvent),Rd($,X.workflowId,U,Q)}function Td($,U){$({ok:!0,value:U})}async function Ed($,U,J,G,X,Q,Z,Y,_){if(!Y.id.startsWith(`review-escalation:${J}:`)&&Y.id!==`review-timeout:${J}`)return!1;if(Y.id===`review-timeout:${J}`){$.reviewWaiters.delete(G),J6($.reviewWaitersByWorkflow,U,G);let L=$.options.getNow()-X.createdAt;await $.storage.delete(P.review(U,J));let F=new JH(J,L);return await _.failWorkflow(U,F),Z({ok:!1,error:F}),!0}if(!Q.escalation)return!1;let H=$.reviewCoordinator.checkEscalations(X,Q.escalation,$.options.getNow());if(!H)return!1;if(H.type==="escalate")return Q.onEscalation?.(H),!1;$.reviewWaiters.delete(G),J6($.reviewWaitersByWorkflow,U,G);let D={reviewId:J,decision:H.decision,reviewer:"system",feedback:H.auditReason,timestamp:$.options.getNow()};return await WN($,P.review(U,J),X,D,_.dispatchEvent),Z({ok:!0,value:D}),!0}async function xd($,U,J,G,X){try{await fetch(G,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workflowId:U,reviewId:J.reviewId,reviewType:J.reviewType,reviewers:J.reviewers,artifact:J.artifact}),signal:X.signal})}catch(Q){if(!(Q instanceof DOMException&&Q.name==="AbortError"))console.warn(`[weft] Failed to send review webhook for ${J.reviewId}`,Q)}finally{$.pendingWebhooks.delete(X)}}async function ON($,U){let J=`review:${N(U)}:`,G=[];if($.storage.deletePrefix)await $.storage.deletePrefix(J);else for await(let[X]of $.storage.scan(J))G.push({type:"delete",key:X});if(G.length>0)await $.storage.batch(G);await BN($.storage,U)}function h0($,U,J){if(J!==void 0)$[U]=J}function Sd($){let U={artifact:$.artifact};return h0(U,"reviewType",$.reviewType),h0(U,"reviewers",$.reviewers),h0(U,"allowPartial",$.allowPartial),h0(U,"timeout",$.timeout),h0(U,"escalation",$.escalation),h0(U,"webhookUrl",$.webhookUrl),U}async function bd($,U,J,G,X){let Q=[];for(let Z of G.escalation??[]){let Y=`review-escalation:${J}:${Z.after}`;Q.push(Y),await $.scheduler.schedule({id:Y,workflowId:U,fireAt:X+Z.after,kind:"sleep"})}if(G.timeout!==void 0){let Z=`review-timeout:${J}`;Q.push(Z),await $.scheduler.schedule({id:Z,workflowId:U,fireAt:X+G.timeout,kind:"sleep"})}return Q}function vd($,U,J){let{promise:G,resolve:X}=Promise.withResolvers(),Q=`${U}:${J}`;return $.reviewWaiters.set(Q,(Z)=>Td(X,Z)),e4($.reviewWaitersByWorkflow,U,Q),{promise:G,resolve:X,waiterKey:Q}}function gd($,U,J,G,X){let Q=$.workflowReviewIds.get(U);if($.reviewEscalationHandlers.set(J,X),G.length>0)$.reviewTimerIds.set(J,G);if(!Q)Q=new Set,$.workflowReviewIds.set(U,Q);Q.add(J)}function Id($,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 AN($,U,J,G){let X=$.options.getNow();await G.ensureTerminalCleanupTracked(U);let Q=await $.reviewCoordinator.createReview(U,Sd(J)),Z=Q.reviewId;if(G.dispatchEvent(new a4(U,Z,Q.reviewType,Q.reviewers)),J.webhookUrl!==void 0){let F=new AbortController;$.pendingWebhooks.add(F),xd($,U,Q,J.webhookUrl,F)}let Y=await bd($,U,Z,J,X),{promise:_,resolve:H,waiterKey:D}=vd($,U,Z);gd($,U,Z,Y,(F)=>Ed($,U,Z,D,Q,J,H,F,G));let L=await _;Id($,U,Z);for(let F of Y)await $.scheduler.cancel(F,U);if(!L.ok)return;G.feedOperationResult(U,{status:"completed",value:L.value})}async function hd($,U,J){for(let G of $)try{await G()}catch(X){U.handleCleanupError("cancel-handler",X,J)}}async function yd($,U,J,G){if(J!=="cancelled")return;let X=fq($,U);await hd(X,G,U)}async function FD($,U,J){await i1($,U,"cancelled",J)}async function MD($,U,J){await i1($,U,"timed-out",J)}async function i1($,U,J,G,X){$.terminalizingWorkflows.add(U),iX($,U),$.strategy.cancelWorkflow(U);try{let Q=$.workflowsNeedingTerminalCleanup.has(U)?crypto.randomUUID():void 0,Z=await $.storage.get(P.attribute(U)),Y=Z?A(Z):{},_=await $.storage.get(P.finalizerState(U))!==null||OW($,U,P.finalizerState(U)),H=OX(Y),D=J==="timed-out"?"Workflow timed out":"Workflow cancelled",L=await RH($,U,{status:J,...X!==void 0?{terminationReason:X}:{},...Q!==void 0?{terminalCleanupToken:Q}:{}},{allowedStatuses:nH,buildAdditionalOperations:(p,c)=>{S6($,U,J,D,c);let I=y0($,U);return[...I?[I]:[],...Q!==void 0?oX($,U,!0,c,Q):[],...pd(U,_,c)]}});if(!L)return;await yd($,U,J,G),await b0($,U);let{previousState:F,updatedAt:M}=L,K=M-E6(F);if(await AH($,U,Y),await CH($,U,H),G.swallowPromiseRejection($.scheduler.cancel(`deadline:${U}`,U)),F.status==="pending")G.swallowPromiseRejection($.scheduler.cancel(`delayed-start:${U}`,U));let S=$.resultResolvers.get(U),h=md(U,J,K);try{await wX($,U,!0,G);let p=kd(U,J,K,X);if(G.dispatchEvent(p),G.forwardEventToHandle(U,p),S)S.reject(h);h8($,U,G)}catch(p){if(S)S.reject(h);throw p}finally{$.resultResolvers.delete(U)}}finally{$.terminalizingWorkflows.delete(U)}}function md($,U,J){return U==="timed-out"?new u1($,"execution",J):Error("Workflow cancelled")}function kd($,U,J,G){return U==="timed-out"?new R6($,"execution",J,G):new R4($)}function fd($,U,J,G){return{...$,status:"completed",result:U,updatedAt:J,...G!==void 0?{terminalCleanupToken:G}:{}}}function ud($,U,J){if(J===void 0||Object.keys(J).length===0)return;let G=OX(J);if($.push(...W$(U,J,G)),Object.keys(G).length>0)$.push({type:"put",key:P.attribute(U),value:W(G)});else $.push({type:"delete",key:P.attribute(U)})}function wd($,U,J,G){let X=I$(U,J,G).batchOps,Q=[...A0(J,G),{type:"put",key:P.workflow(U),value:W(G)},...X],Z=y0($,U);if(Z)Q.push(Z);return Q}function cd($,U,J,G,X){X.swallowPromiseRejection($.scheduler.cancel(`deadline:${U}`,U));let Q=$.resultResolvers.get(U);try{sH($,U,X);let Z=new C4(U,J,G);if(X.dispatchEvent(Z),X.forwardEventToHandle(U,Z),X.broadcast({type:"workflow:completed",workflowId:U}),Q)Q.resolve(J);h8($,U,X)}catch(Z){if(Q)Q.resolve(J);throw Z}finally{$.resultResolvers.delete(U)}}async function zD($,U,J,G){let X=await G.runSerializedWorkflowStateWrite(U,async()=>{let Q=await G.loadWorkflowState(U);if(!Q||Q.status!=="running")return null;let Z=A$($.options.getNow(),"Workflow completion timestamp"),Y=Z-E6(Q),_=$.workflowsNeedingTerminalCleanup.has(U)?crypto.randomUUID():void 0,H=fd(Q,J,Z,_),D=wd($,U,Q,H),L=$.checkpoints.get(U)?.searchAttributes;if(L===void 0){let F=await $.storage.get(P.attribute(U));if(F)L=A(F)}if(ud(D,U,L),_!==void 0)D.push(...oX($,U,!1,Z,_));return await G.commitWorkflowStateOperations(Q,D,{includePendingAtomicSideEffects:!0}),{duration:Y}});if(!X)return;await b0($,U),cd($,U,J,X.duration,G)}async function r$($,U,J,G,X="system"){let Q=await $.storage.get(P.attribute(U)),Z=Q?A(Q):{},Y=OX(Z,{failureCategory:X}),_={status:"failed",error:J.message,failureCategory:X},H=$.workflowsNeedingTerminalCleanup.has(U)?crypto.randomUUID():void 0;if(J.stack!==void 0)_.errorStack=J.stack;if(H!==void 0)_.terminalCleanupToken=H;if(!await RH($,U,_,{allowedStatuses:nH,buildAdditionalOperations:(F,M)=>{S6($,U,"failed",J.message,M);let K=y0($,U);return[...K?[K]:[],...H!==void 0?oX($,U,!1,M,H):[]]}}))return;await b0($,U),await AH($,U,Z),G.swallowPromiseRejection($.scheduler.cancel(`deadline:${U}`,U)),await CH($,U,Y);let L=$.resultResolvers.get(U);try{await wX($,U,!1,G);let F=new C6(U,J);if(G.dispatchEvent(F),G.forwardEventToHandle(U,F),L)L.reject(J);h8($,U,G)}catch(F){if(L)L.reject(J);throw F}finally{$.resultResolvers.delete(U)}}function oX($,U,J,G,X){return _$({id:eU(J,X),workflowId:U,fireAt:G+EX,kind:"terminal-cleanup"})}function pd($,U,J){if(!U)return[];let G=crypto.randomUUID(),X={status:"owed",attempts:0,token:G};return[{type:"put",key:P.teardownOwed($),value:W(X)},..._$({id:x9(G),workflowId:$,fireAt:J,kind:"teardown"})]}async function d8($,U){if($.workflowsNeedingTerminalCleanup.has(U))return;$.workflowsNeedingTerminalCleanup.add(U),await $.storage.put(P.terminalCleanupNeeded(U),p$)}function S6($,U,J,G,X=$.options.getNow()){let Q=$.pendingTimelineEntries.get(U);if(!Q)return;let Z=Q.entry.status;if(Z===J)return;if(Z!=="running"&&!(Z==="completed"&&(J==="failed"||J==="cancelled"||J==="timed-out")))return;Q.entry.status=J,Q.entry.outputSummary=H$(G),Q.entry.duration=X-Q.startedAt}function y0($,U){let J=$.pendingTimelineEntries.get(U);if(!J)return null;return{type:"put",key:P.timeline(U,J.entry.step),value:W(J.entry)}}function CN($,U,J,G){let X=$.inlineStrategy?.getAbortController(U),Q=$.activityWorkerDispatcher?void 0:XW(J.options?.timeout),Z=Q===void 0?void 0:new AbortController,Y=dd(X?.signal,Z?.signal,G);return{perAttemptTimeoutMs:Q,attemptAbortController:Z,activitySignal:Y}}function dd($,U,J){let G=[$,U,J].filter((Q)=>Q!==void 0),[X]=G;if(X===void 0)return new AbortController().signal;if(G.length===1)return X;return AbortSignal.any(G)}async function sX($,U,J,G,X){if(U===void 0)return $;let Q=Promise.resolve($);Q.catch(()=>{});let Z,Y=new Promise((_,H)=>{Z=setTimeout(()=>{let D=new ZH(J,G,U);H(D),X?.abort(D)},U)});try{return await Promise.race([Q,Y])}finally{if(Z!==void 0)clearTimeout(Z)}}async function RN($,U,J,G){let X=$.timeout===void 0?void 0:Q$($.timeout),Q=new AbortController,Z=()=>Q.abort(G.reason);if(G.aborted)Q.abort(G.reason);else G.addEventListener("abort",Z,{once:!0});let Y={signal:Q.signal,heartbeat:()=>{},completeAsync:()=>{throw Error(`Finalizer "${$.name}" called ctx.completeAsync(), which is not supported in a workflow finalizer: the finalizer runs after the workflow is already terminal, so there is no durable step to complete out of band. Run the teardown synchronously instead.`)}};try{if(await sX($.execute(U,Y),X,$.name,J,Q),G.aborted)return{ok:!1,error:Error(`Finalizer "${$.name}" resolved while the engine was shutting down; treating attempt ${J} as shutdown-aborted so the teardown re-runs after restart.`,{cause:G.reason}),abortedByShutdown:!0};return{ok:!0}}catch(_){return{ok:!1,error:_,abortedByShutdown:G.aborted}}finally{G.removeEventListener("abort",Z)}}var TN=8,BD=[60000,300000,900000,3600000],ld=300000,id=30000,m0=30000;function EN($){let U=$-1;return BD[U]??BD[BD.length-1]}function xN($){return($.timeout===void 0?ld:Q$($.timeout))+id}function SN($,U,J){if(U.status!=="running")return!0;if(U.claimedAt===void 0)return!0;return $.options.getNow()-U.claimedAt>=xN(J)}function aX($,U,J){return _$({id:x9($),workflowId:U,fireAt:J,kind:"teardown"})}function WD($,U){return W({status:"owed",attempts:$,token:U})}function nd($,U,J){return W({status:"running",attempts:$,token:U,claimedAt:J})}async function l8($,U,J,G){let X=$.options.getNow()+G;try{await G$($,aX(J,U,X),[],()=>Error("teardown self-heal re-arm lost the lease fence"))}catch{}}async function bN($,U,J){try{return await q0($,[{type:"delete",key:P.teardownOwed(U)}],[{key:P.teardownOwed(U),expectedValue:J}])}catch{return!1}}async function vN($,U,J,G,X){let Q=nd(G,X,$.options.getNow());return await q0($,[{type:"put",key:P.teardownOwed(U),value:Q}],[{key:P.teardownOwed(U),expectedValue:J}])?Q:null}async function i8($,U,J,G){return q0($,G,[{key:P.teardownOwed(U),expectedValue:J}])}async function KD($,U,J,G,X,Q){let Z={type:J,lastError:Q.lastError,attempts:G,deadLetteredAt:$.options.getNow(),...Q.finalizerInput===void 0?{}:{finalizerInput:Q.finalizerInput}};return i8($,U,X,[{type:"delete",key:P.teardownOwed(U)},{type:"delete",key:P.finalizerState(U)},{type:"put",key:P.teardownDeadLetter(U),value:W(Z)}])}var rd=new Set(["cancelled","timed-out"]);function od($){return $ instanceof Error?$.message:String($)}async function tX($,U,J){await l8($,U,J,m0)}async function qD($,U,J,G){return await bN($,U,G)?{kind:"cleared"}:{kind:"rearm",token:J}}async function sd($,U,J,G){let X;try{X=A(G)}catch{return qD($,U,J,G)}if(!kz(X))return qD($,U,J,G);return{kind:"claim",claim:X}}async function ad($,U,J,G){let X=await $.storage.get(P.teardownOwed(U));if(X===null)return{kind:"cleared"};let Q=await sd($,U,J,X);if(Q.kind!=="claim")return Q;let Z=Q.claim;if(Z.token!==J)return{kind:"cleared"};let Y=await G.loadWorkflowState(U);if(Y===null||!rd.has(Y.status))return qD($,U,J,X);let _=$.registrations.get(Y.type)?.finalizer;if(_===void 0)return{kind:"rearm",token:J};let H=_;if(!SN($,Z,H))return{kind:"rearm",token:J};let D=await $.storage.get(P.finalizerState(U));if(D===null)return await td($,U,Y.type,Z.attempts,X,G),{kind:"cleared"};return{kind:"run",drive:{state:Y,claim:Z,markerBytes:X,finalizer:H,finalizerInput:A(D)}}}async function td($,U,J,G,X,Q){if(await KD($,U,J,G,X,{lastError:"finalizer state missing — recorded resource cannot be torn down",finalizerInput:void 0}))Q.dispatchEvent(new T4(U,J,"dead-lettered",G,"finalizer state missing — recorded resource cannot be torn down"))}async function ND($,U,J,G){let X=mz(J);if(X===null)return;try{let Q=await ad($,U,X,G);if(Q.kind==="cleared")return;if(Q.kind==="rearm"){await l8($,U,Q.token,m0);return}await ed($,U,X,Q.drive,G)}catch(Q){await l8($,U,X,m0),G.handleCleanupError("runWorkflowFinalizer",Q,U)}}async function ed($,U,J,G,X){let{state:Q,claim:Z,markerBytes:Y,finalizer:_,finalizerInput:H}=G,D=Z.attempts+1,L=await vN($,U,Y,Z.attempts,J);if(L===null){await l8($,U,J,m0);return}let F=await RN(_,H,D,$.abortController.signal);if(F.ok){await $l($,U,Q.type,J,D,L,X);return}if(F.abortedByShutdown){let M=$.options.getNow()+m0;if(!await i8($,U,L,[{type:"put",key:P.teardownOwed(U),value:WD(Z.attempts,J)},...aX(J,U,M)]))await tX($,U,J);return}await Ul($,U,Q,D,J,L,F.error,X)}async function $l($,U,J,G,X,Q,Z){if(!await i8($,U,Q,[{type:"delete",key:P.teardownOwed(U)},{type:"delete",key:P.finalizerState(U)}])){await tX($,U,G);return}Z.dispatchEvent(new T4(U,J,"completed",X))}async function Ul($,U,J,G,X,Q,Z,Y){let _=od(Z);if(G>=TN){let L=await $.storage.get(P.finalizerState(U));if(!await KD($,U,J.type,G,Q,{lastError:_,finalizerInput:L===null?void 0:A(L)})){await tX($,U,X);return}Y.dispatchEvent(new T4(U,J.type,"dead-lettered",G,_));return}let H=$.options.getNow()+EN(G);if(!await i8($,U,Q,[{type:"put",key:P.teardownOwed(U),value:WD(G,X)},...aX(X,U,H)])){await tX($,U,X);return}Y.dispatchEvent(new T4(U,J.type,"failed",G,_))}async function OD($,U,J){if(!await J.runSerializedWorkflowStateWrite(U,async()=>{let Q=await J.loadWorkflowState(U);if(!Q||Q.status!=="running")return!1;if($.inlineStrategy===null)throw new uU("suspend is only supported in inline execution mode; a worker run cannot be paused without cancelling it.");$.inlineStrategy.parkWorkflow(U),iX($,U),$.checkpoints.delete(U),$.parkedInlineWorkflows.delete(U),rH($,U,J);let Z=$.options.getNow(),Y={...Q,status:"suspended",updatedAt:Z};return await J.commitWorkflowStateOperations(Q,[{type:"put",key:P.workflow(U),value:W(Y)},...I$(U,Q,Y).batchOps,...Jl(U,Q.executionDeadline)]),!0}))return;let X=new K0(U);J.dispatchEvent(X),J.forwardEventToHandle(U,X)}function Jl($,U){if(U===void 0)return[];let J=`deadline:${$}`;return[{type:"delete",key:P.deadline(U,J)},{type:"delete",key:`timer-idx:${J}`}]}function n8($){return{dispatchEvent:(U)=>$.dispatchEvent(U),broadcast:(U)=>$1(V($),U,t6($))}}function eX($){return{processPendingUpdatesAfterInlineAdvance:(U)=>gN($,U),swallowPromiseRejection:(U)=>x6(U)}}async function gN($,U){try{await _N(V($),U,n8($))}catch(J){a($).handleCleanupError("processPendingUpdates",J,U)}}function C$($){return{dispatchEvent:(U)=>{$.dispatchEvent(U)},getHandle:(U)=>$.getHandle(U),createWorkflowHandleWithResultPromise:(U)=>IX(V($),U),runSerializedWorkflowStateWrite:(U,J)=>G6(V($),U,J),getComposedWorkflowInterceptor:()=>_6(V($)),resolveWorkflowTypeTarget:(U)=>nX(V($),U,$3($)),processPendingUpdatesAfterReplay:(U)=>{pH(V($),U,{processPendingUpdatesForHandlers:(J)=>c8(V($),J,n8($)),handleCleanupError:(J,G,X)=>a($).handleCleanupError(J,G,X)})},processPendingUpdatesAfterInlineAdvance:(U)=>gN($,U),processPendingUpdatesForHandlers:(U)=>c8(V($),U,n8($)),queueInlineWorkflowExecutionStart:(U)=>tq(V($),U,eX($)),isInlineWorkflowLocallyOwned:(U,J)=>XN(V($),U,J),hasLocalCheckpointOwnership:(U,J)=>QN(V($),U,J),handleCleanupError:(U,J,G)=>a($).handleCleanupError(U,J,G),swallowPromiseRejection:(U)=>x6(U),enforceHistoryCircuitBreaker:(U)=>i1(V($),U,"timed-out",a($),tG),failWorkflowForUnavailableServices:(U,J)=>r$(V($),U,J,a($),"system"),failWorkflowForCheckpointDecodeError:(U,J)=>r$(V($),U,J,a($),"system")}}function Gl($,U){let J=(G)=>{$.dispatchEvent(G)};return{dispatchEvent:J,forwardEventToHandle:(G,X)=>wW(V($),G,X,t6($)),broadcast:(G)=>$1(V($),G,t6($)),swallowPromiseRejection:(G)=>x6(G),handleCleanupError:(G,X,Q)=>I8(V($),G,X,Q,{dispatchEvent:J}),handleScheduledWorkflowTerminal:U,loadWorkflowState:(G)=>l(V($),G),runSerializedWorkflowStateWrite:(G,X)=>G6(V($),G,X),commitWorkflowStateOperations:(G,X,Q)=>NX(V($),G,X,Q),cleanupReviews:(G)=>ON(V($),G)}}var IN=async()=>{return};function hN($){IN=$}function a($){return Gl($,(U)=>IN($,U))}function $3($){return{ensureRetentionSweepInterval:()=>Xl($),dispatchEvent:(U)=>$.dispatchEvent(U)}}var yN=()=>{return};function mN($){yN=$}function Xl($){yN($)}function t6($){return{dispatchEvent:(U)=>$.dispatchEvent(U)}}function U3($){return{deleteRequestIfUnconsumed:(U,J)=>V($).updateCoordinator.deleteRequestIfUnconsumed(U,J),getUpdateResponse:(U)=>V($).updateCoordinator.getResponse(U)}}function kN($){return{cancelWorkflowInStrategy:(U)=>V($).strategy.cancelWorkflow(U),dispatchEvent:(U)=>$.dispatchEvent(U),failWorkflow:(U,J)=>r$(V($),U,J,a($)),feedOperationResult:(U,J,G)=>Y6(V($),U,J,G)}}var AD;function fN($){AD=$}function r8($){if(AD===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 AD($)}class CD{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 uN($){if(!Number.isSafeInteger($)||$<=0)throw Error("Interval schedule period must be a positive safe integer of milliseconds")}function RD($,U,J){uN(U);let G=A$($,"Interval anchor"),X=A$(J,"Interval occurrence candidate");if(X<G)return G+U;let Q=X-G,Z=Math.floor(Q/U),Y=G+(Z+1)*U;return A$(Y,"Interval occurrence")}function wN($,U,J,G,X){uN(U);let Q=X?.maxOccurrences;if(Q!==void 0&&(!Number.isSafeInteger(Q)||Q<=0))throw Error("Interval occurrence maxOccurrences must be a positive safe integer");let Z=Q??Number.POSITIVE_INFINITY,Y=[],_=J;while(_<=G&&Y.length<Z)Y.push(_),_=RD($,U,_);return Y}function cN($){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=cN($);if(J.kind==="interval")return RD(J.anchor,J.intervalMs,U);return KX(J.cronExpression,U)}function pN($,U,J,G){let X=cN($);if(X.kind==="interval")return wN(X.anchor,X.intervalMs,U,J,{maxOccurrences:G});return KH(X.cronExpression,U,J,{maxOccurrences:G})}async function TD($,U,J,G){let X=crypto.randomUUID(),Q=U.overlap==="allow"?[]:[{type:"put",key:P.scheduleRun(X),value:W(U.id)}],Z=await Ql($,X,U);if(Z!==null){if(Q.push({type:"put",key:P.workflowHasServices(X),value:p$},{type:"put",key:P.terminalCleanupNeeded(X),value:p$}),$.workflowsNeedingTerminalCleanup.add(X),Z.status==="available")$.workflowServices.set(X,Z.services)}if(await J.startWorkflow(U.workflowType,U.input,{id:X},Q),$.engine.dispatchEvent(new H0(U.id,X,$.options.getNow(),G)),Z!==null&&Z.status==="unavailable"){let Y=mX(X,Z.reason);try{await J.failWorkflow(X,Y)}catch(_){J.handleCleanupError("startScheduledRun",_,X)}}return X}async function Ql($,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 Zl=1000,dN=256,Yl=dN;class SD extends Error{scheduleId;constructor($,U){super(`Failed to persist schedule "${$}" while processing its timer`,{cause:U});this.scheduleId=$}}async function bD($,U,J){let G=await p1($,U.workflowId);if(!_l(G,U))return;let X=G;try{let Q=$.options.getNow(),Z=jl(G,U,Q);if(!Z)return;if(Z.occurrencesToProcess.length===0){if(X={...X,updatedAt:Q,nextFireAt:ED(X,Z,Q),...Z.missedOccurrences&&{lastMissedFireAt:Z.missedOccurrences.lastMissedFireAt,missedFireCount:X.missedFireCount+Z.missedOccurrences.count}},await xD($,X),Z.missedOccurrences)$.engine.dispatchEvent(new D0(X.id,Z.missedOccurrences.count,Z.missedOccurrences.windowStart,Z.missedOccurrences.windowEnd));return}X=await Dl($,G,Z,Q,J,{onProcessedState:(Y)=>{X=Y}})}catch(Q){if(Q instanceof SD)throw Q;await Ll($,X,Q)}}function _l($,U){return $?.status==="active"&&$.nextFireAt!==null&&N0($,$.nextFireAt)===U.fireAt}function jl($,U,J){let G=pN($,$.nextFireAt,Math.max(J,U.fireAt),$.backfill?dN:2);if(G.length===0)return null;if(!$.backfill&&J-U.fireAt>Zl)return{dueOccurrences:G,missedOccurrences:Hl($,$.nextFireAt,J),occurrencesToProcess:[],skipMissedOccurrences:!0};let X=$.backfill?G:G.slice(0,1);return{dueOccurrences:G,occurrencesToProcess:X,skipMissedOccurrences:!1}}function Hl($,U,J){let G=0,X=U,Q=U;while(X<=J&&G<Yl){G+=1,Q=X;let Y=e6($,X);if(Y<=X)throw Error(`Schedule "${$.id}" produced a non-advancing occurrence`);X=Y}let Z=X<=J;return{count:G,lastMissedFireAt:Q,windowStart:U,windowEnd:Z?Q:J}}function ED($,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 Dl($,U,J,G,X,Q){let Z=U;for(let[Y,_]of J.occurrencesToProcess.entries()){let H=Y===J.occurrencesToProcess.length-1;if(Z={...await X.applyScheduleOccurrence(Z,_),lastFireAt:_,updatedAt:G},H)Z={...Z,nextFireAt:ED(Z,J,G)};if(Q.onProcessedState(Z),await xD($,Z,{includeTimer:H}),U.backfill&&Z.currentWorkflowId!==void 0){if(Z=await X.settleBackfillScheduleState(Z),H)Z={...Z,updatedAt:G,nextFireAt:ED(Z,J,G)},await xD($,Z);Q.onProcessedState(Z)}}return Z}async function xD($,U,J){try{await X6($,U,J)}catch(G){throw new SD(U.id,G)}}async function Ll($,U,J){let G=$.options.getNow(),X={...U,status:"paused",updatedAt:G,nextFireAt:e6(U,G)};await X6($,X,{includeTimer:!1}),console.error(`[weft] Paused schedule "${X.id}" after timer processing failed:`,J)}async function vD($,U,J,G,X){if(!$.registrations.has(U))throw new t$(U);let Q=OH(G),Z=QK(X),Y=Z.id??crypto.randomUUID();if($.pendingScheduleCreations.has(Y))throw Error(`Schedule with id "${Y}" already exists`);$.pendingScheduleCreations.add(Y);try{if(await $.storage.get(P.schedule(Y)))throw Error(`Schedule with id "${Y}" already exists`);let _=$.options.getNow(),H=Q.kind==="interval"?{intervalMs:Q.intervalMs}:{cronExpression:Q.cronExpression},D={id:Y,workflowType:U,input:J,...H,status:"active",overlap:Z.overlap,backfill:Z.backfill,...Z.jitterMs!==void 0&&{jitterMs:Z.jitterMs},createdAt:_,updatedAt:_,nextFireAt:e6({...H,createdAt:_},_),missedFireCount:0,queuedRuns:0};return await X6($,D),new CD(Y,$.engine)}finally{$.pendingScheduleCreations.delete(Y)}}async function lN($,U){let J=ZK(U),G=[];for await(let[X,Q]of $.storage.scan("schedule:")){if(X.slice(9).includes(":"))continue;let Y=R8(Q);if(!Y||!nz(Y,J))continue;let{input:_,...H}=Y;G.push(H)}return rz(G,J)}async function iN($){for await(let[U,J]of $.storage.scan("schedule:")){if(U.slice(9).includes(":"))continue;let X=R8(J);if(!Vl(X))continue;if(await Pl($,X))continue;await X6($,X)}}function Vl($){return $?.status==="active"&&$.nextFireAt!==null}async function Pl($,U){let J=P.scheduleTick(N0(U,U.nextFireAt),U.id);if(await $.storage.get(J)===null)return!1;let X=await $.storage.get(`timer-idx:${tU(U.id)}`);return X!==null&&A(X)===J}function nN($){let{input:U,...J}=$;return J}async function rN($,U){let J=J1(U,"scheduleId"),G=await T8($,J);if(G.status!=="active")return;await $.scheduler.cancel(tU(J),J);let X=$.options.getNow(),Q={...G,status:"paused",updatedAt:X,nextFireAt:e6(G,X),queuedRuns:0};await X6($,Q,{includeTimer:!1})}async function oN($,U){let J=J1(U,"scheduleId"),G=await T8($,J);if(G.status==="cancelled")throw Error(`Schedule "${J}" has been cancelled and cannot be resumed`);if(G.status==="active")return;let X=$.options.getNow(),Q={...G,status:"active",updatedAt:X,nextFireAt:e6(G,X)};await X6($,Q)}async function sN($,U){let J=J1(U,"scheduleId"),G=await T8($,J);if(G.status==="active")await $.scheduler.cancel(tU(J),J);let X={...G,status:"cancelled",updatedAt:$.options.getNow(),nextFireAt:null,queuedRuns:0};await X6($,X,{includeTimer:!1})}async function aN($,U,J){let G=J1(U,"scheduleId"),X=OH(J),Q=await T8($,G),Z=$.options.getNow(),{cronExpression:Y,intervalMs:_,...H}=Q,D=X.kind==="interval"?{intervalMs:X.intervalMs}:{cronExpression:X.cronExpression},L=X.kind==="interval"?{createdAt:Z}:{},F={...H,...D,...L,updatedAt:Z,nextFireAt:Q.status==="cancelled"?null:e6({...D,createdAt:Z},Z)};await X6($,F,{includeTimer:Q.status==="active"})}function tN($){let U=$?.status;return U==="running"||U==="pending"||U==="suspended"}async function eN($,U,J){if(!U.currentWorkflowId)return{state:U,currentWorkflowState:null};let G=await J.loadWorkflowState(U.currentWorkflowId);if(tN(G))return{state:U,currentWorkflowState:G};return await $.storage.delete(P.scheduleRun(U.currentWorkflowId)),{state:I9(U),currentWorkflowState:G??null}}function Fl($){return tN($)}async function Ml($,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=I9($);return{...$,currentWorkflowId:await J.startScheduledRun(X,G)}}if($.overlap==="queue")return{...$,queuedRuns:$.queuedRuns+1};return $}async function $O($,U,J,G){let{state:X,currentWorkflowState:Q}=await J.refreshScheduledWorkflowState(U),Z=Fl(Q);if(X.overlap==="allow")return await J.startScheduledRun(X,G),X;return Ml(X,Z,J,G)}async function UO($,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 JO($,U,J){let G=await $.storage.get(P.scheduleRun(U));if(!G)return;await $.storage.delete(P.scheduleRun(U));let X=A(G);if(!qX(X))return;let Z=await p1($,X);if(!Z||Z.currentWorkflowId!==U)return;let Y=$.options.getNow(),_={...I9(Z),updatedAt:Y};if(_.status==="active"&&_.overlap==="queue"&&_.queuedRuns>0){let H=await J.startScheduledRun(_);await X6($,{..._,currentWorkflowId:H,queuedRuns:_.queuedRuns-1,updatedAt:Y},{includeTimer:!1});return}await X6($,_,{includeTimer:!1})}function k0($){return{startWorkflow:async(U,J,G,X)=>{await Q6(V($),U,J,G,X,C$($))},loadWorkflowState:(U)=>l(V($),U),cancelWorkflow:(U)=>$.cancel(U),getWorkflowResult:(U)=>$.getHandle(U).result(),refreshScheduledWorkflowState:(U)=>zl($,U),startScheduledRun:(U,J)=>Bl($,U,J),applyScheduleOccurrence:(U,J)=>Wl($,U,J),settleBackfillScheduleState:(U)=>Kl($,U),flushQueuedInlineWorkflowStartsDirectly:()=>eq(V($),eX($)),failWorkflow:(U,J)=>r$(V($),U,J,a($)),handleCleanupError:(U,J,G)=>I8(V($),U,J,G,{dispatchEvent:(X)=>$.dispatchEvent(X)})}}function GO($){return{dispatchEvent:$.dispatchEvent.bind($),failWorkflow:(U,J)=>r$(V($),U,J,a($)),feedOperationResult:(U,J)=>Y6(V($),U,J),ensureTerminalCleanupTracked:(U)=>d8(V($),U)}}async function zl($,U){return eN(V($),U,k0($))}async function Bl($,U,J){return TD(V($),U,k0($),J)}async function Wl($,U,J){return $O(V($),U,k0($),J)}async function Kl($,U){return UO(V($),U,k0($))}async function XO($,U){return bD(V($),U,k0($))}async function ql($,U){return JO(V($),U,k0($))}hN(($,U)=>ql($,U));var QO=5,Nl=5,Ol=new Set(["completed","failed","cancelled","timed-out"]);async function gD($,U,J){let G=await $.storage.get(P.workflow(U));if(!G)return;let X=i(G);if(Ol.has(X.status))throw new Z0(U,X.status)}async function Al($,U,J,G){for(let X=0;X<QO;X++){if(await G.getUpdateResponse(J)!==null)return!0;if(await $.storage.get(P.update(U,J))===null)return!0;if(X<QO-1)await q4(Nl)}return!1}async function ZO($,U,J,G){try{await gD($,U,G)}catch(X){if(X instanceof Z0){if(await Al($,U,J,G))return;if(await G.deleteRequestIfUnconsumed(U,J)!==null)return}throw X}}function YO($,U){let J=U;if(J==null||typeof J!=="object")throw Error("Invalid operation request received from execution strategy");if("type"in J&&typeof J.type==="string")return J;if("kind"in J&&typeof J.kind==="string"){let G=J.kind,Q={activity:"activity",timer:"sleep","signal-wait":"wait-signal","child-workflow":"child-workflow"}[G]??G;return{...J,type:Q,operationId:J.id??crypto.randomUUID(),activityName:J.activityName??"",input:J.input}}throw Error("Unsupported operation request shape received from execution strategy")}async function _O($,U,J,G){let X=Rl(J,G);if(X)return X(U,J);let Q=String(J.type);s8($,U,J,Error(`Unsupported operation type: ${Q}`),G)}function Cl($){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 Rl($,U){return Cl(U)[$.type]}function o8($,U,J,G){G.finalizePendingTimelineEntry(U,"completed",J),G.feedOperationResult(U,{status:"completed",value:J})}function s8($,U,J,G,X){if(G instanceof Error&&J.callerStack)G.stack=`${G.stack}
|
|
51
51
|
--- workflow call site ---
|
|
52
|
-
${J.callerStack}`;let Q=G instanceof Error?G.message:String(G);X.finalizePendingTimelineEntry(U,"failed",Q),X.feedOperationResult(U,{status:"failed",error:Q,...G instanceof Error?{errorName:G.name}:{},failureCategory:t2(G,{defaultErrorCategory:"application"})},{value:G})}async function jO($,U,J,G,X){try{let Q=await G();o8($,U,Q,X)}catch(Q){s8($,U,J,Q,X)}}async function HO($,U,J,G,X){try{await G()}catch(Q){s8($,U,J,Q,X)}}async function LO($,U,J,G){return G.runOperationWithResult(U,J,()=>hD($,U,J,ID($,U),G))}function ID($,U){let J=Tl($,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 Tl($,U){return $.inlineStrategy?.getContext(U)?.nestingDepth??$.workflowNestingDepths.get(U)??0}function El($,U){$.pendingNestingDepth=U.pendingNestingDepth,$.pendingParentHeaders=U.pendingParentHeaders,$.pendingExecutionStateOwnerId=U.pendingExecutionStateOwnerId}function xl($,U){if($.pendingNestingDepth===U.pendingNestingDepth)$.pendingNestingDepth=void 0;if($.pendingParentHeaders===U.pendingParentHeaders)$.pendingParentHeaders=void 0;if($.pendingExecutionStateOwnerId===U.pendingExecutionStateOwnerId)$.pendingExecutionStateOwnerId=void 0}function Sl($,U,J){return $.type===U.workflowType&&iz($.input,U.input)&&$.executionStateOwnerId===J}async function bl($,U,J,G,X){let Q=await X.loadWorkflowState($);if(!Q)throw G;if(!Sl(Q,U,J))throw Error(`Child workflow id collision for "${$}" does not match the requested child workflow`,{cause:G});return X.getHandle($)}async function vl($,U,J,G,X){L9(J.options,"ctx.startChild"),El($,G);try{return await X.start(J.workflowType,J.input,{id:U})}catch(Q){if(!(Q instanceof O$))throw Q;return bl(U,J,G.pendingExecutionStateOwnerId??void 0,Q,X)}finally{xl($,G)}}async function hD($,U,J,G,X){let Q=J.options?.id,Z=typeof Q==="string"?Q:crypto.randomUUID(),Y=$.workflowHeaders.get(U)??new Map,_=await X.loadWorkflowState(U),H=gl(J),D=H==="abandon"?null:_?.executionStateOwnerId??U,L=async()=>{let M={pendingNestingDepth:G+1,pendingParentHeaders:$.workflowHeaders.get(U),pendingExecutionStateOwnerId:D},K=await vl($,Z,J,M,X);if(H==="abandon")return DO(K.id);if(H==="request-cancel")return t4($,U,{conditions:[],operations:oq($,U,K.id)}),YD($,U,K.id,X),DO(K.id);return K.result()},F=X.getComposedWorkflowInterceptor();if(!F)return L();return F.childWorkflow({workflowId:U,childWorkflowId:Z,workflowType:J.workflowType,input:J.input,headers:new Map,parentHeaders:Y},L)}function gl($){return $.options?.parentClosePolicy??"await"}function DO($){return{id:$}}var VO=Symbol("weft.deferredConsume");function PO($){return{[VO]:!0,finalize:$}}function Il($){return typeof $==="object"&&$!==null&&$[VO]===!0}async function f0($){if(Il($))return $.finalize();if(Array.isArray($))return Promise.all($.map((U)=>f0(U)));return $}var hl=2147483647;function FO($,U){return Math.min(Math.max(0,$-U),hl)}function MO($,U,J){J?.throwIfAborted();let G=$.abortController.signal;if(G.aborted)return Promise.reject(G.reason??Error("aborted"));if(FO(U.scheduledFireAt,$.options.getNow())===0)return Promise.resolve();return new Promise((X,Q)=>{let Z,Y=()=>{J?.removeEventListener("abort",_),G.removeEventListener("abort",_)},_=()=>{clearTimeout(Z),Y(),Q(J?.reason??G.reason??Error("aborted"))},H=()=>{let D=FO(U.scheduledFireAt,$.options.getNow());if(D===0){Y(),X();return}Z=setTimeout(H,D)};J?.addEventListener("abort",_,{once:!0}),G.addEventListener("abort",_,{once:!0}),H()})}function zO($,U,J,G){G?.throwIfAborted();let{signalName:X}=J,Q=`${U}:${X}`,Z=$.abortController.signal;return new Promise((Y,_)=>{let H=!1,D=!1,{promise:L,resolve:F}=Promise.withResolvers(),M=()=>{G?.removeEventListener("abort",S),Z.removeEventListener("abort",S)},K=async()=>{let c=await W8($,U,X);return c.found?c.payload:void 0},S=()=>{if(H)return;if(H=!0,M(),D)B8($,U,Q,F);_(G?.reason??Z.reason??Error("aborted"))},h=()=>{if(H)return;H=!0,M(),Y(PO(K))},p=(c)=>{if(H)return;if(H=!0,M(),D)B8($,U,Q,F);_(c)};if(G?.addEventListener("abort",S,{once:!0}),Z.addEventListener("abort",S,{once:!0}),Z.aborted){S();return}(async()=>{let c=await HH($,U,X);if(H)return;if(c.found){h();return}$.signalWaiters.set(Q,F),e4($.signalWaitersByWorkflow,U,Q),D=!0;let I=await HH($,U,X);if(H)return;if(I.found){B8($,U,Q,F),h();return}if(await L,H)return;h()})().catch(p)})}function yl($,U,J,G){let X=$.lastHeartbeatDetailsByStep.get(U);if(X===void 0)X=new Map,$.lastHeartbeatDetailsByStep.set(U,X);X.set(J,G)}function BO($,U,J){return $.lastHeartbeatDetailsByStep.get(U)?.get(J)}function yD($,U,J){let G=$.lastHeartbeatDetailsByStep.get(U);if(G===void 0)return;if(G.delete(J),G.size===0)$.lastHeartbeatDetailsByStep.delete(U)}function WO($,U,J,G){if(!$.options.development)return;if($.activityWorkerDispatcher)return;if(G<=1)return;if(BO($,U,J)!==void 0)return;$.engine.dispatchEvent(new n6(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 KO($,U,J,G,X){return{signal:G,lastHeartbeatDetails:BO($,U,J),heartbeat:(Q)=>{$.heartbeatDetails.set(U,Q),yl($,U,J,Q)},completeAsync:X}}class NO extends v{constructor(){super("ActivityReconciliationCapabilityError",'Activity result reconciliation requires storage capability "conditionalBatch".')}}class OO extends v{constructor($){super("ActivityReconciliationConflictError",$)}}class $4 extends v{constructor($){super("ActivityReconciliationIndeterminateError",$)}}async function AO($,U,J){let G=await ul(J);return{idempotencyKeyDigest:G,key:P.activityReconciliation($,U,G)}}function CO($,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 RO($,U){let J=await $.get(U);if(J===null)return null;return fl(A(J))}function J3($,U){return T6($,U,"activity result"),W($)}async function ml($,U,J){if(!$.capabilities().conditionalBatch)throw new NO;return J$($,"conditionalBatch","activity result reconciliation"),e($,[{key:U.key,expectedValue:null}],[{type:"put",key:U.key,value:W(J)}])}function mD($,U,J){return{...$,status:"completed",result:U,updatedAt:J}}async function TO($,U,J,G,X,Q,Z){let Y=await RO($.storage,G.key);if(Y===null){let D=await cl($,U,J,G,Z);if(D.didClaim)return D.record;Y=D.record}if(Y.status==="completed")return{completedResult:Y.result};if(!X?.verify)throw new $4(`Activity "${J.activityName}" has a prior dispatch marker but no Tier-0 verifier.`);let _=kl(await pl(X,U,J,Q,Y));if(_==="not-completed"){let D={...Y,attempt:Y.attempt+1,ownerId:crypto.randomUUID(),updatedAt:$.options.getNow()};return await qO($.storage,G,Y,D),D}if(_==="completed-result-unavailable")throw new $4(`Activity "${J.activityName}" completed externally but its result is unavailable.`);if(_==="indeterminate")throw new $4(`Activity "${J.activityName}" reconciliation is indeterminate.`);J3(_.result,$.options.payloadSizePolicy.maxBytes);let H=mD(Y,_.result,$.options.getNow());return await qO($.storage,G,Y,H),{completedResult:_.result}}async function qO($,U,J,G){let X=xO(U,J,G);if(!await e($,X.conditions,X.operations))throw new OO("Activity reconciliation completion lost compare-and-set ownership.")}function EO($,U,J,G,X){t4($,U,xO(J,G,X))}function xO($,U,J){return{conditions:[{key:$.key,expectedValue:W(U)}],operations:[{type:"put",key:$.key,value:W(J)}]}}function kl($){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 $4("Activity verifier did not return a Tier-0 pre-dispatch reconciliation state.")}function kD($,U,J,G,X,Q,Z){return{phase:$,workflowId:U,operationId:J,activityName:G,input:X,...Q===void 0?{}:{idempotencyKey:Q},attempt:Z}}function fl($){if(typeof $!=="object"||$===null)throw new $4("Activity reconciliation record is not an object.");let U=$;if(!dl(U))throw new $4("Activity reconciliation record has an invalid shape.");if(U.status==="started")return U;if(U.status==="completed"&&"result"in U)return U;throw new $4("Activity reconciliation record has an unsupported status.")}async function ul($){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 wl($,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 cl($,U,J,G,X){let Q=wl(U,J,G,X,$.options.getNow());if(await ml($.storage,G,Q))return{didClaim:!0,record:Q};let Y=await RO($.storage,G.key);if(Y===null)throw new $4("Activity reconciliation claim conflicted but no record could be read.");return{didClaim:!1,record:Y}}async function pl($,U,J,G,X){try{return await $.verify(void 0,kD("pre-dispatch-reconciliation",U,J.operationId,J.activityName,J.input,G,X.attempt))}catch(Q){let Z=Q instanceof Error?Q.message:String(Q);throw new $4(`Activity "${J.activityName}" verifier threw during pre-dispatch reconciliation: ${Z}`)}}function dl($){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")}function SO($,U,J){let G=$.workflowTypeByWorkflowId.get(U);if(G!==void 0){let Q=$.activityRegistriesByWorkflow.get(G);if(Q!==void 0){let Y=Q.resolve(J);if(Y)return{fn:Y,workflowType:G}}let Z=$.activityRegistry.resolve(J);if(Z)return{fn:Z,workflowType:G};return}let X=$.activityRegistry.resolve(J);if(X)return{fn:X,workflowType:"<unknown>"};return}function fD($,U,J){let G=SO($,U,J.activityName);if(G)return G.fn;if(typeof J.fn==="function")return J.fn;return}function bO($,U,J){let G=SO($,U,J.activityName);if(G)return G.fn;if(J.fn)return J.fn;let X=$.workflowTypeByWorkflowId.get(U)??"<unknown>";throw new U9(X,J.activityName)}function ll($,U,J,G,X){return(async()=>{let Q=await J?.(X,G);if(typeof Q!=="boolean")throw Error(`Verification failed for activity "${U}"`);if(!Q)throw Error(`Verification failed for activity "${U}"`)})()}function il($,U,J,G){let X=fD($,U,J);if(!X?.compensate)return;return async()=>{await X.compensate?.(J.input,G)}}async function nl($,U,J,G,X){let Q=$.activityWorkerDispatcher;if(!Q)throw Error(`No activity worker dispatcher available for "${J}"`);let Z=await Q.execute({operationId:U,activityName:J,input:G,attempt:X});if(Z.status==="failed"){let Y=Error(Z.error);if(Z.errorName!==void 0)Y.name=Z.errorName;throw Y}return Z.value}function rl($,U,J,G,X,Q){let Z=bO($,U,J);return X8(Z,Q,G)}function vO($,U){if(U.size>0)$.headers=[...U.entries()]}function uD($){let U=$.attempt;return typeof U==="number"&&Number.isInteger(U)&&U>0?U:1}async function gO($,U,J,G,X=uD(J),Q){let Z=J.input,Y=J.step??0;WO($,U,Y,X);let _=cB(U,Y,X),{perAttemptTimeoutMs:H,attemptAbortController:D,activitySignal:L}=CN($,U,J,Q),F=KO($,U,Y,L,()=>{throw new YX(_)}),M=$.activityWorkerDispatcher?(I,m)=>nl($,J.operationId,I,m,X):(I,m)=>sX(rl($,U,J,F,I,m),H,I,X,D),K=G.getComposedActivityInterceptor(),S=async(I,m,u)=>{if(!K)return M(I,m);let R$={workflowId:U,activityName:I,input:m,attempt:X,headers:u};return await K.execute(R$,async(r1)=>{return M(I,r1.input)})},h=G.getComposedWorkflowInterceptor();if(h){let I={workflowId:U,activityName:J.activityName,input:Z,attempt:X,headers:new Map};function*m(){return yield S(J.activityName,I.input,I.headers)}let u=h.activity(I,m),R$=await rB(u);return vO(J,I.headers),R$}let p=new Map,c=await S(J.activityName,Z,p);return vO(J,p),c}async function a8($,U,J,G,X,Q){let Z=fD($,U,J),Y=CO(Z,J),_=uD(J);if(Y!==void 0){let D=await AO(U,J.activityName,Y),L=await TO($,U,J,D,Z,Y,_);if("completedResult"in L)return J3(L.completedResult,$.options.payloadSizePolicy.maxBytes),L.completedResult;let F=await gO($,U,J,G,L.attempt,X);J3(F,$.options.payloadSizePolicy.maxBytes),await IO($,U,J,F,Z,Y,L.attempt,Q,!0);let M=mD(L,F,$.options.getNow());if(EO($,U,D,L,M),!Q)yD($,U,J.step??0);return F}let H=await gO($,U,J,G,_,X);if(T6(H,$.options.payloadSizePolicy.maxBytes,"activity result"),await IO($,U,J,H,Z,Y,_,Q),!Q)yD($,U,J.step??0);return H}async function IO($,U,J,G,X,Q,Z,Y,_=!1){let H=Y?il($,U,J,G):void 0;if(H)Y?.recordCompensation(H);if(X?.verify){let D=kD("post-execution-validation",U,J.operationId,J.activityName,J.input,Q,Z),L=ll($,J.activityName,X.verify,D,G);if(Y){if(Y.recordVerification(L),_)await L}else await L}}async function hO($,U,J,G){return G.runOperationWithResult(U,J,async()=>{try{return await a8($,U,J,G)}catch(X){if(X instanceof YX)return pB($,X,{workflowId:U,activityName:J.activityName,operationId:J.operationId,step:J.step??0,attempt:uD(J)},{feedOperationResult:G.feedOperationResult,finalizeTimeline:G.finalizePendingTimelineEntry});throw X}})}function G3($){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 yO($,U,J,G){let X=$.abortController.signal,Q=`${U}:${J.signalName}`;while(!0){if(X.aborted)return;let Z=await W8($,U,J.signalName);if(Z.found){G.completeOperation(U,Z.payload);return}let{promise:Y,resolve:_}=Promise.withResolvers();if($.signalWaiters.set(Q,_),e4($.signalWaitersByWorkflow,U,Q),X.aborted){$.signalWaiters.delete(Q),J6($.signalWaitersByWorkflow,U,Q);return}let H=await W8($,U,J.signalName);if(H.found){if($.signalWaiters.get(Q)===_)$.signalWaiters.delete(Q),J6($.signalWaitersByWorkflow,U,Q);G.completeOperation(U,H.payload);return}if(await Y,X.aborted)return}}async function mO($,U,J,G){return G.runOperationWithResult(U,J,async()=>{G3(J.operations);let X=kO(J.resumedCacheEntry),Q=J.operations.map((D,L)=>typeof D.operationId==="string"?D.operationId:`parallel:${J.step}:${L}`),{slots:Z,hasFirstError:Y,firstError:_}=await vB(Q,X,(D)=>G.executeSubOperation(U,J.operations[D]));if(Y)uO(sl($,U),Z,"ctx.all","worker execution mode");await ol(Z);let H=UH("all",Z);if(fO($,U,J.step,H),Y)throw _;return gB(Z)})}async function ol($){let J=(await Promise.allSettled($.map(async(G)=>{if(G.status==="fulfilled")G.value=await f0(G.value)}))).find((G)=>G.status==="rejected");if(J)throw J.reason}function kO($){if(!f1($))return;return $.branches}function sl($,U){return $.inlineStrategy?.getContext(U)!==void 0}function fO($,U,J,G){let X=$.inlineStrategy?.getContext(U);if(X===void 0)return!1;return X.accumulatedResults.set(J,G),!0}function uO($,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 wO($,U,J,G){return G.runOperationWithResult(U,J,async()=>{G3(J.operations);let X=new AbortController,Q=J.operations.map((Y)=>G.executeSubOperation(U,Y,X.signal));Promise.allSettled(Q);let Z;try{Z=await Promise.race(Q)}finally{X.abort()}return f0(Z)})}async function cO($,U,J,G){return G.runOperationWithResult(U,J,async()=>{let X=Object.keys(J.branches),Q=X.map((S)=>`run-all:${J.step}:${S}`),Z=kO(J.resumedCacheEntry),Y=$i(Z,X),_=al(J.branches,X,Y),{outcomes:H,hasFirstError:D,firstError:L}=await kB(_,(S,h)=>X8(S,h)),F=tl(X,Q,Y,H),M=UH("run-all",F,X),K=fO($,U,J.step,M);if(D)throw uO(K,F,"ctx.runAll","worker execution mode"),L;return el(X,F)})}function al($,U,J){let G={};for(let X of U)if(J?.get(X)?.status!=="fulfilled"){let Q=$[X];if(Q!==void 0)G[X]=Q}return G}function tl($,U,J,G){let X=new Map;for(let Q of G)X.set(Q.name,Q);return $.map((Q,Z)=>{let Y=U[Z],_=J?.get(Q);if(_?.status==="fulfilled")return _;let H=X.get(Q);if(H.status==="fulfilled")return{status:"fulfilled",value:H.value,operationId:Y};let D=H.reason instanceof Error?H.reason:Error(String(H.reason));return{status:"rejected",reason:{name:D.name,message:D.message},operationId:Y}})}function el($,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 $i($,U){if($===void 0)return;let J=new Map;for(let G=0;G<U.length;G++){let X=U[G],Q=$[G];if(X!==void 0&&Q!==void 0)J.set(X,Q)}return J}function Ui($){return typeof $.execute==="function"}async function pO($,U,J,G,X){return fB(J.branches,(Q,Z)=>{if(!X||!Ui(Q))return X8(Q,Z);return a8($,U,{type:"activity",operationId:crypto.randomUUID(),activityName:Q.name,fn:Q,input:Z},G.getActivityOperationCallbacks(),void 0,X)})}async function dO($,U,J,G){return G.runOperationWithoutResult(U,J,()=>G.processReviewOperation(U,J.reviewOptions))}async function X3($,U,J,G,X,Q){X?.throwIfAborted();let Z=Ji[J.type];if(!Z)throw Error(`Unsupported sub-operation type: ${J.type}`);return Z({internals:$,workflowId:U,callbacks:G,signal:X,speculativeState:Q},J)}var Ji={activity:($,U)=>Gi($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),"child-workflow":($,U)=>Xi($.internals,$.workflowId,U,$.callbacks),memo:($,U)=>Promise.resolve(S9(U.fn)),"state-read":($,U)=>Qi($.internals,U),"state-commit":($,U)=>Zi($.internals,U,$.callbacks),parallel:($,U)=>Yi($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),race:($,U)=>_i($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),"run-all":($,U)=>pO($.internals,$.workflowId,U,$.callbacks.createCoordinationOperationCallbacks(),$.speculativeState),sleep:($,U)=>MO($.internals,U,$.signal),"wait-signal":($,U)=>zO($.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.")}};async function Gi($,U,J,G,X,Q){return a8($,U,J,G.createActivityOperationCallbacks(),X,Q)}async function Xi($,U,J,G){return hD($,U,J,ID($,U),G.createChildWorkflowOperationCallbacks())}async function Qi($,U){return m1($.storage,o4(U.scope,U.key),U)}async function Zi($,U,J){let G=o4(U.scope,U.key),X=U.mode==="delete"?await _8($.storage,G,U.expectedVersion):await Y8($.storage,G,U.expectedVersion,U.value);if(X.applied&&U.scope.type==="execution")await J.createStateOperationCallbacks().ensureTerminalCleanupTracked(U.scope.ownerWorkflowId);return X}async function Yi($,U,J,G,X,Q){X?.throwIfAborted();let Z=new AbortController,Y=()=>{Z.abort(X?.reason)};X?.addEventListener("abort",Y,{once:!0});let _=J.operations.map((H)=>X3($,U,H,G,Z.signal,Q));Promise.allSettled(_);try{return await Promise.all(_)}finally{X?.removeEventListener("abort",Y),Z.abort()}}async function _i($,U,J,G,X,Q){X?.throwIfAborted();let Z=new AbortController,Y=()=>{Z.abort(X?.reason)};X?.addEventListener("abort",Y,{once:!0});let _=J.operations.map((H)=>X3($,U,H,G,Z.signal,Q));Promise.allSettled(_);try{return await Promise.race(_)}finally{X?.removeEventListener("abort",Y),Z.abort()}}function wD($){return{runOperationWithResult:(U,J,G)=>Z1($,U,J,G),start:(U,J,G)=>Q6(V($),U,J,G,void 0,C$($)),loadWorkflowState:(U)=>l(V($),U),getHandle:(U)=>$.getHandle(U),getComposedWorkflowInterceptor:()=>_6(V($))}}function Q3($){return{runOperationWithResult:(U,J,G)=>Z1($,U,J,G),finalizePendingTimelineEntry:(U,J,G)=>S6(V($),U,J,G),feedOperationResult:(U,J,G)=>Y6(V($),U,J,G),getComposedActivityInterceptor:()=>dq(V($)),getComposedWorkflowInterceptor:()=>_6(V($))}}function u0($){return{completeOperation:(U,J)=>_3($,U,J),runOperationWithResult:(U,J,G)=>Z1($,U,J,G),executeSubOperation:(U,J,G,X)=>cD($,U,J,G,X),getActivityOperationCallbacks:()=>Q3($)}}function iO($){return{completeOperation:(U,J)=>_3($,U,J),failOperation:(U,J,G)=>ji($,U,J,G),isWorkflowRunning:async(U)=>{return(await l(V($),U))?.status==="running"},scheduleConditionDeadline:(U,J,G)=>V($).scheduler.schedule({id:`cond:${U}:${J}`,workflowId:U,fireAt:G,kind:"wait-condition"}),cancelConditionDeadline:(U,J)=>V($).scheduler.cancel(`cond:${U}:${J}`,U)}}function t8($){return{runOperationWithResult:(U,J,G)=>Z1($,U,J,G)}}function Z3($){return{runOperationWithResult:(U,J,G)=>Z1($,U,J,G),ensureTerminalCleanupTracked:(U)=>d8(V($),U)}}function nO($){return{runOperationWithResult:(U,J,G)=>Z1($,U,J,G),handleCleanupError:(U,J,G)=>a($).handleCleanupError(U,J,G)}}function Y3($){return{completeOperation:(U,J)=>_3($,U,J),dispatchEvent:(U)=>$.dispatchEvent(U),loadWorkflowState:(U)=>l(V($),U),failWorkflow:(U,J)=>r$(V($),U,J,a($)),runSerializedWorkflowStateWrite:(U,J)=>G6(V($),U,J),beginWorkflowExecution:(U,J,G,X,Q,Z,Y)=>uX(V($),U,J,G,X,Q,Z,Y,C$($)),workflowVersionTupleFromState:(U)=>hX(V($),U,C$($)),setWorkflowStartHeaders:(U,J)=>E4(V($),U,J,C$($)),loadWorkflowStartHeaders:(U)=>d1(V($),U,C$($)),parseStartOptionDuration:(U,J)=>g0(V($),U,J,C$($)),runDeferredTerminalCleanup:(U,J)=>tH(V($),U,J,a($)),runWorkflowFinalizer:(U,J)=>ND(V($),U,J,a($)),handleScheduleTimer:(U)=>XO($,U),timeout:(U)=>$.timeout(U),handleCleanupError:(U,J,G)=>a($).handleCleanupError(U,J,G)}}function w0($){return{dispatchEvent:(U)=>$.dispatchEvent(U),broadcast:(U)=>$1(V($),U,t6($)),completeOperation:(U,J)=>_3($,U,J),guardTerminalWorkflow:(U)=>gD(V($),U,U3($)),guardTerminalWorkflowAfterCoordinatedRequest:(U,J)=>ZO(V($),U,J,U3($)),persistCoordinatedUpdateResponse:(U,J,G,X,Q)=>lO($,U,J,G,X,Q),deliverCoordinatedUpdateToWaiterIfAvailable:(U,J,G)=>kW(V($),U,J,G,w0($)),dispatchPendingUpdateReceived:(U,J,G)=>cW(V($),U,J,G,t6($)),createCoordinatedUpdateResponder:(U,J,G)=>mW(V($),U,J,G,{persistCoordinatedUpdateResponse:(X,Q,Z,Y,_)=>lO($,X,Q,Z,Y,_)}),findPendingUpdateByName:(U,J)=>fW(V($),U,J),schedulePendingInlineUpdateDrain:(U)=>jN(V($),U,n8($))}}async function lO($,U,J,G,X,Q){let Z=V($),Y=Z.updateCoordinator.buildResponseOperations(G,U,Q,void 0,X);try{await G$(Z,Y,[],()=>Error(`Coordinated update response for workflow "${U}" lost its CAS race.`)),$.dispatchEvent(new U6(G,U,J,Q)),$1(Z,{type:"update:completed",workflowId:U,updateId:G},t6($))}catch(_){a($).handleCleanupError("writeCoordinatedUpdateResponse",_,U)}}function _3($,U,J){return o8(V($),U,J,r8($))}function ji($,U,J,G){return s8(V($),U,J,G,r8($))}async function Z1($,U,J,G){return jO(V($),U,J,G,r8($))}async function rO($,U,J,G){return HO(V($),U,J,G,r8($))}async function cD($,U,J,G,X){return X3(V($),U,J,{createActivityOperationCallbacks:()=>Q3($),createChildWorkflowOperationCallbacks:()=>wD($),createCoordinationOperationCallbacks:()=>u0($),createStateOperationCallbacks:()=>Z3($)},G,X)}async function oO($,U,J){return AN(V($),U,J,GO($))}async function sO($,U,J,G){return G.runOperationWithResult(U,J,async()=>S9(J.fn))}async function aO($,U,J,G){return G.runOperationWithResult(U,J,async()=>{let X=await J.fn(),Q=W(X);return await $.storage.put(P.offload(U,J.key),Q),{key:J.key,workflowId:U,sizeBytes:Q.byteLength}})}async function tO($,U,J,G){return G.runOperationWithResult(U,J,async()=>{let{workflowId:X,key:Q,sizeBytes:Z}=J.reference;if(typeof X!=="string"||X!==U)throw Error("ctx.load() can only read offloaded data from the current workflow");if(typeof Q!=="string"||Q.length===0)throw Error("ctx.load() requires a non-empty offload reference key");if(typeof Z!=="number"||!Number.isFinite(Z)||Z<0)throw Error("ctx.load() requires a valid offload reference size");let Y=await $.storage.get(P.offload(X,Q));if(Y===null)throw Error(`Offloaded data not found for key "${Q}" in workflow "${X}"`);return A(Y)})}async function eO($,U,J){let G=await $.storage.get(P.offload(U,J));if(G===null)return null;return A(G)}async function $A($,U,J,G){return G.runOperationWithResult(U,J,async()=>{await $.storage.put(P.archive(U,J.key),W(J.data));return})}class pD{#$;#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 UA($,U,J,G){return G.runOperationWithResult(U,J,()=>Hi($,U,J,G))}async function Hi($,U,J,G){let X=$.inlineStrategy;if(!X)throw Error("ctx.speculate() requires inline execution mode");let Q=X.getContext(U);if(!Q)throw Error(`No active inline context for workflow "${U}"`);let Z=Q.createSpeculativeChild(),Y=new pD,_=Di(J,Z);try{let H=await Li(U,_,Y,G);return await Y.drainVerifications(),Q.commitSpeculativeChild(Z),H}catch(H){throw await Y.rollback(),H}}function Di($,U){return $.execute(U)}async function Li($,U,J,G){let X=async(Q,Z)=>{let Y=Z===void 0?await U.next(Q):await U.throw(Z);if(Y.done)return Y.value;let _=Y.value;try{if(_.type==="race"||_.type==="parallel")G3(_.operations);let H=await G.executeSubOperation($,_,void 0,J),D=await f0(H);return X(D,void 0)}catch(H){return X(Q,H instanceof Error?H:Error(String(H)))}};return X(void 0,void 0)}async function JA($,U,J,G){return G.runOperationWithResult(U,J,async()=>{let X=o4(J.scope,J.key);return m1($.storage,X,J)})}async function GA($,U,J,G){return G.runOperationWithResult(U,J,async()=>{let X=o4(J.scope,J.key);if(J.mode==="delete"){let Z=await _8($.storage,X,J.expectedVersion);if(Z.applied&&J.scope.type==="execution")await G.ensureTerminalCleanupTracked(J.scope.ownerWorkflowId);return Z}let Q=await Y8($.storage,X,J.expectedVersion,J.value);if(Q.applied&&J.scope.type==="execution")await G.ensureTerminalCleanupTracked(J.scope.ownerWorkflowId);return Q})}var Vi=/^\d+$/;function Pi($){if(!Vi.test($))return;let U=Number.parseInt($,10);return Number.isSafeInteger(U)?U:void 0}async function c0($,U,J,G){let X=G?.after,Q=P.streamChunkPrefix(U,J),Z=[],Y=X!==void 0&&X>=0?{gt:P.streamChunk(U,J,X)}:void 0;for await(let[_,H]of $.scan(Q,Y)){let D=_.slice(Q.length),L=Pi(D);if(L===void 0)continue;Z.push({sequence:L,value:A(H)})}return Z}function XA($){return W({sequence:$})}function Fi($){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 QA($,U,J){let G=await $.get(P.streamTail(U,J));if(G===null)return null;try{return Fi(A(G))}catch{return null}}var n1="tokens",dD="stream:chunk",Mi="workflow:compaction-boundary";async function*ZA($,U,J,G){if(J==="events"){yield*zi($,U,G);return}yield*Bi($,U,G)}async function YA($,U,J){if(J==="events"){let Z=$.eventLogHeads.get(U);if(Z)return Z.sequence;return(await new n$($.storage,U).loadHead()).sequence}let G=await QA($.storage,U,n1);if(G!==null)return G;let X=await c0($.storage,U,n1);if(X.length===0)return-1;let Q=-1;for(let Z of X)if(Z.sequence>Q)Q=Z.sequence;return Q}function _A($,U,J,G){let X=sU(U,J),Q=$.workflowFeedListeners.get(X);if(!Q)Q=new Set,$.workflowFeedListeners.set(X,Q);return Q.add(G),()=>{let Z=$.workflowFeedListeners.get(X);if(!Z)return;if(Z.delete(G),Z.size===0)$.workflowFeedListeners.delete(X)}}async function*zi($,U,J){let G=new n$($.storage,U),X=J<0?0:J+1,Q=await X1($.storage,U);if(Q!==null&&X<Q.sequence)yield{workflowId:U,selector:"events",kind:Mi,sequence:Q.sequence-1,timestamp:0,payload:{compactedBefore:Q.sequence,requestedFrom:X}},X=Q.sequence;for await(let Z of G.scan({fromSequence:X}))yield{workflowId:U,selector:"events",kind:Z.type,sequence:Z.sequence,timestamp:Z.timestamp,payload:Z.payload}}async function*Bi($,U,J){let G=J>=0?await c0($.storage,U,n1,{after:J}):await c0($.storage,U,n1),X=Date.now();for(let Q of G)yield{workflowId:U,selector:"tokens",kind:dD,sequence:Q.sequence,timestamp:X,payload:Q.value}}function j3($,U,J,G){let X=$.workflowFeedListeners.get(sU(U,J));if(!X||X.size===0)return;let Q=[...X];for(let Z of Q)try{let Y=Z(G);if(Y&&typeof Y.then==="function")Y.catch(()=>{})}catch{}}async function jA($,U,J,G){return c0($.storage,U,J,G)}async function HA($,U,J,G){return G.runOperationWithResult(U,J,()=>Wi($,U,J,G))}async function Wi($,U,J,G){let X={heartbeat:(Z)=>{$.heartbeatDetails.set(U,Z)}},Q=[];try{let Z=await Ki($,U,J,J.fn(X),Q),Y={key:J.key,workflowId:U,chunkCount:Z.chunkCount,totalSizeBytes:Z.totalSizeBytes};return await $.storage.put(P.streamMetadata(U,J.key),W(Y)),Y}catch(Z){throw await qi($,U,J.key,Q,G),Z}}async function Ki($,U,J,G,X){let Q=0,Z=0;for await(let Y of G){let _=W(Y),H=Q,D=P.streamChunk(U,J.key,H);if(J.key===n1)await $.storage.batch([{type:"put",key:D,value:_},{type:"put",key:P.streamTail(U,J.key),value:XA(H)}]);else await $.storage.put(D,_);if(X.push(D),Z+=_.byteLength,Q++,J.key===n1)j3($,U,"tokens",{workflowId:U,selector:"tokens",kind:dD,sequence:H,timestamp:Date.now(),payload:Y})}return{chunkCount:Q,totalSizeBytes:Z}}async function qi($,U,J,G,X){await mB($.storage,U,J,G,IB(X.handleCleanupError,U))}function LA($,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 VA($,U,J,G){let X=$.abortController.signal,{predicate:Q,deadline:Z}=J,Y=!1,_=(H)=>{if(Y)return;Y=!0,G.completeOperation(U,H)};if(X.aborted)return;try{let H=LA($,Q,Z);if(H.done){_(H.value);return}if(Z!==void 0)await G.scheduleConditionDeadline(U,J.step,Z);try{let D=await DA($,U,Q,Z,G);while(D.status==="continue")D=await DA($,U,Q,Z,G);if(D.status==="complete")_(D.value)}finally{if(PA($,U),Z!==void 0)await G.cancelConditionDeadline(U,J.step)}}catch(H){G.failOperation(U,J,H)}}async function DA($,U,J,G,X){let Q=$.abortController.signal;if(Q.aborted)return{status:"stop"};let{promise:Z,resolve:Y}=Promise.withResolvers();$.conditionWaiters.set(U,Y);let _=Q.aborted?{done:!0,value:void 0,aborted:!0}:{...LA($,J,G),aborted:!1};if(_.done)return PA($,U),_.aborted?{status:"stop"}:{status:"complete",value:_.value};if(await Z,Q.aborted)return{status:"stop"};if(!await X.isWorkflowRunning(U))return{status:"stop"};return{status:"continue"}}function PA($,U){$.conditionWaiters.delete(U)}function lD($){return{processActivityOperation:(U,J)=>hO(V($),U,J,Q3($)),processSleepOperation:(U,J)=>lK(V($),U,J,Y3($)),processWaitSignalOperation:(U,J)=>yO(V($),U,J,u0($)),processWaitUpdateOperation:(U,J)=>hW(V($),U,J,w0($)),processWaitConditionOperation:(U,J)=>VA(V($),U,J,iO($)),processGetVersionOperation:async(U,J)=>{o8(V($),U,J.version,{finalizePendingTimelineEntry:(G,X,Q)=>S6(V($),G,X,Q),feedOperationResult:(G,X,Q)=>Y6(V($),G,X,Q)})},processParallelOperation:(U,J)=>mO(V($),U,J,u0($)),processRaceOperation:(U,J)=>wO(V($),U,J,u0($)),processMemoOperation:(U,J)=>sO(V($),U,J,t8($)),processChildWorkflowOperation:(U,J)=>LO(V($),U,J,wD($)),processOffloadOperation:(U,J)=>aO(V($),U,J,t8($)),processLoadOperation:(U,J)=>tO(V($),U,J,t8($)),processArchiveOperation:(U,J)=>$A(V($),U,J,t8($)),processStateReadOperation:(U,J)=>JA(V($),U,J,Z3($)),processStateCommitOperation:(U,J)=>GA(V($),U,J,Z3($)),processRunAllOperation:(U,J)=>cO(V($),U,J,u0($)),processSpeculateOperation:(U,J)=>UA(V($),U,J,{runOperationWithResult:(G,X,Q)=>Z1($,G,X,Q),executeSubOperation:(G,X,Q,Z)=>cD($,G,X,Q,Z)}),processStreamOperation:(U,J)=>HA(V($),U,J,nO($)),processWaitReviewOperation:(U,J)=>dO(V($),U,J,{runOperationWithoutResult:(G,X,Q)=>rO($,G,X,Q),processReviewOperation:(G,X)=>oO($,G,X)}),finalizePendingTimelineEntry:(U,J,G)=>S6(V($),U,J,G),feedOperationResult:(U,J,G)=>Y6(V($),U,J,G)}}fN(($)=>lD($));function FA($){let U=g($).pendingAttributeChanges;return U!==void 0&&Object.keys(U).length>0}function MA($){let U=g($).updateHandlers;return U!==void 0&&U.size>0}function zA($){let U=g($).exposedValues;return U!==void 0&&U.size>0}function BA($,U,J,G,X,Q){let Z=y0($,U),Y=$.workflowVersionTuples.get(U);if(Z)Q.push(Z);let _={step:G,operationType:J.type,operationLabel:fz(J),inputSummary:uz(J),timestamp:X,status:"running",...Y?{versionTuple:Y}:{}};return Q.push({type:"put",key:P.timeline(U,G),value:W(_)}),{startedAt:X,entry:_}}async function WA($,U,J,G,X){if($.inlineStrategy?.getContext(U))await Ni($,U,J,X);else if(G&&G.byteLength>0)await Oi($,U,J,G,X)}async function Ni($,U,J,G){let X=$.checkpoints.get(U),Q=$.inlineStrategy?.getContext(U);if(!X||!Q)return;let Z={...X.searchAttributes},Y=Q.checkpointPendingAttributeChanges,_=FA(Q),H=oj(X,Q.checkpointLocals,{accumulatedResults:Q.checkpointAccumulatedResults,now:$.options.getNow(),...Y!==void 0?{searchAttributes:Y}:{}}),D=Cj(H,NA(J,Q.stepIndex)),L=KA($,U,D.checkpoint,F$(Rj(D.checkpoint,D.replayPayload)),D.replayPayload);if(Ai(U,L,Z,Y,_,G),await qA($,U,J,L,G),_)G.dispatchEvent(new j0(U,{...Y}))}async function Oi($,U,J,G,X){let Q=new Uint8Array(G),Z=D$(Q),Y=rU(Z),_=Cj(Z,NA(J,Z.step)),H=C9(Y,_.replayPayload),D=F$(Rj(_.checkpoint,H));await qA($,U,J,KA($,U,_.checkpoint,D,H),X)}function KA($,U,J,G,X){let Q=[{type:"put",key:P.checkpoint(U),value:G}];if($.options.checkpointHistory>0)Q.push({type:"put",key:P.checkpointHistory(U,J.step),value:G});let Z=HK($,U);return{checkpoint:J,serialized:G,...X===void 0?{}:{replayPayload:X},...Z!==void 0?{expectedSerialized:Z}:{},step:J.step,timestamp:J.createdAt,operations:Q}}function Ai($,U,J,G,X,Q){if(!X)return;Q.validateAttributeValueSizes(G??{}),U.operations.push({type:"put",key:P.attribute($),value:W(U.checkpoint.searchAttributes)}),U.operations.push(...W$($,J,U.checkpoint.searchAttributes))}async function qA($,U,J,G,X){xi($,U,G,X);let Q=X.appendTimelineBatchOperations(U,J,G.step,G.timestamp,G.operations),{newHead:Z,timestamp:Y}=Si($,U,G),_=$.options.historyPolicy.retentionWindow,H=_===null?null:await mK($.storage,U,Z.sequence,_,G.operations),D=PX($,U);if(D!==void 0)G.operations.push(...D.operations);let L=$.storage.capabilities().conditionalBatch,F=Ci(D,L),M=Ri(U,G,L,F);if(await G$($,G.operations,M,()=>{return Error(`Checkpoint commit for workflow "${U}" lost its CAS race against a newer checkpoint.`)}),D!==void 0)FX($,U);if(G.expectedSerialized!==void 0)RX($,U,G.serialized);if($.pendingTimelineEntries.set(U,Q),$.checkpoints.set(U,G.checkpoint),$.eventLogHeads.set(U,Z),H!==null)Ei($,U,H,X);if(j3($,U,"events",{workflowId:U,selector:"events",kind:"workflow:checkpoint",sequence:Z.sequence,timestamp:Y,payload:{step:G.step}}),X.swallowPromiseRejection(X.pruneCheckpointHistory(U,G.step)),Ti($,Z.sequence))await X.enforceHistoryCircuitBreaker(U)}function Ci($,U){if(!U)return[];return $?.conditions??[]}function Ri($,U,J,G){let X=[];if(J&&U.expectedSerialized!==void 0)X.push({key:P.checkpoint($),expectedValue:U.expectedSerialized});return X.push(...G),X}function Ti($,U){let J=$.options.historyPolicy.maxEvents;return J!==null&&U+1>J}function Ei($,U,J,G){let X=$.options.archiveAdapter;if(X===null||J.deletedEntries.length===0)return;let{from:Q,to:Z}=J.deletedRange,Y=`events:${Q}-${Z}`,_=kK(J.deletedEntries);G.swallowPromiseRejection(Promise.resolve().then(()=>X.store(U,Y,_)))}function xi($,U,J,G){if(J.serialized.byteLength>=$.options.checkpointSizeWarningThreshold)G.dispatchEvent(new V0(U,J.serialized.byteLength,J.step))}function Si($,U,J){return new n$($.storage,U).appendToBatch({type:"workflow:checkpoint",payload:Kz(J.step,J.replayPayload)},J.operations,$.eventLogHeads.get(U)??v1,$.workflowVersionTuples.get(U))}function NA($,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 OA($,U,J){let G=$.options.checkpointHistory;if(G<=0)return;let X=J-G;if(X<1)return;let Q=P.checkpointHistory(U,X);await $.storage.delete(Q)}function AA($,U,J){if(!$.options.development)return;let G=$.inlineStrategy?.getContext(U);if(!G)return;let X=G.stepIndex,Q=$.checkpoints.get(U);if(!Q)return;let Z=sj({...Q,locals:G.checkpointLocals,accumulatedResults:G.checkpointAccumulatedResults});if(!Z.valid){let Y=Z.divergences.map((H)=>H.path),_=`Checkpoint at step ${X} has ${Z.divergences.length} non-serializable field(s)`;J.dispatchEvent(new n6(U,_,Y))}}async function CA($,U,J){let G=$.inlineStrategy?.getContext(U);if(!G)return!1;let Q=$.registrations.get(G.workflowType)?.constraints;if(!Q||Q.length===0)return!1;let Z={id:U,type:G.workflowType,status:"running"};for(let Y of Q){if(!await bi(Y,Z))continue;if(vi(J,U,Y),Y.onViolation==="warn"){gi(U,Y);continue}let H=Error(`Constraint violated: ${Y.name} (scope: ${Y.scope})`);if(Y.onViolation==="fail")await Ii(J,U,H);else hi(J,U,H);return!0}return!1}async function bi($,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 vi($,U,J){$.dispatchEvent(new B0(U,J.name,J.scope,J.onViolation))}function gi($,U){console.warn(`[weft] Constraint "${U.name}" (scope: ${U.scope}) violated on workflow "${$}" — continuing (onViolation: 'warn')`)}async function Ii($,U,J){$.cancelWorkflowInStrategy(U),await $.failWorkflow(U,J)}function hi($,U,J){$.feedOperationResult(U,{status:"failed",error:J.message,errorName:J.name,failureCategory:"application"},{value:J})}async function RA($,U,J,G){if(J.type!=="wait-signal"||$.inlineStrategy===null)return!1;let X=$.inlineStrategy,Q=X.getContext(U);if(Q&&(MA(Q)||zA(Q)))return!1;if(await G.hasBufferedSignal(U,J.signalName))return!1;if(!await G.runSerializedWorkflowStateWrite(U,async()=>{let Y=await G.loadWorkflowState(U);if($.terminalizingWorkflows.has(U)||!Y||Y.status!=="running")return!1;return X.parkWorkflow(U,{retainContext:!0}),$.parkedInlineWorkflows.add(U),!0}))return!1;if(await G.hasBufferedSignal(U,J.signalName))await G.resumeParkedInlineWorkflow(U);return!0}async function H3($,U,J){if(!$.parkedInlineWorkflows.has(U))return;$.parkedInlineWorkflows.delete(U);try{await u8($,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 TA($,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 EA($,U,J){switch(U.type){case"completed":await zD($,U.workflowId,U.result,J.createTerminationCallbacks());break;case"failed":{let G=Error(U.error);if(U.errorStack)G.stack=U.errorStack;await r$($,U.workflowId,G,J.createTerminationCallbacks(),U.failureCategory??"system");break}case"checkpoint":{let G=J.translateOperationRequest(U.operationRequest);if(await J.persistCheckpoint(U.workflowId,G,U.checkpoint),J.validateDevelopmentCheckpoint(U.workflowId),await J.evaluateConstraints(U.workflowId))break;if(await J.parkInlineWorkflowAfterCheckpoint(U.workflowId,G))break;if(G.type==="wait-signal"&&$.inlineStrategy===null){J.processOperation(U.workflowId,G).catch((Q)=>{let Z=Q instanceof Error?Q:Error(String(Q));return r$($,U.workflowId,Z,J.createTerminationCallbacks(),"system")});break}await J.processOperation(U.workflowId,G);break}}}function D3($){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 L3($){$.nextRetentionSweepAt=$.options.getNow()+$.options.retentionSweepIntervalMs}function V3($,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 P3($,U,J){try{await E8($,void 0,{expiredOnly:!0,limit:$.options.retentionSweepBatchSize,now:$.options.getNow()},J)}catch(G){U("retentionSweep",G)}}function iD($,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 xA($,U=(J)=>iD($,J)){let J=[...$.registrations.keys()].toSorted().map((G)=>U(G));return{defaultRetention:$.options.retention,sweepIntervalMs:$.options.retentionSweepIntervalMs,sweepBatchSize:$.options.retentionSweepBatchSize,nextSweepAt:$.nextRetentionSweepAt,workflowTypes:J}}function e8($){return{createLifecycleCallbacks:()=>C$($),createTerminationCallbacks:()=>a($),evaluateConstraints:(U)=>CA(V($),U,kN($)),getParkedWorkflowResumeDisposition:(U)=>TA(V($),U,e8($)),hasBufferedSignal:(U,J)=>SW(V($),U,J),loadWorkflowState:(U)=>l(V($),U),parkInlineWorkflowAfterCheckpoint:(U,J)=>RA(V($),U,J,e8($)),persistCheckpoint:(U,J,G)=>yi($,U,J,G),processOperation:(U,J)=>_O(V($),U,J,lD($)),readCheckpointBytes:(U)=>V($).storage.get(P.checkpoint(U)),resumeParkedInlineWorkflow:(U)=>H3(V($),U,e8($)),runSerializedWorkflowStateWrite:(U,J)=>G6(V($),U,J),translateOperationRequest:(U)=>YO(V($),U),validateDevelopmentCheckpoint:(U)=>AA(V($),U,{dispatchEvent:(J)=>{$.dispatchEvent(J)}})}}function yi($,U,J,G){return WA(V($),U,J,G,{appendTimelineBatchOperations:(X,Q,Z,Y,_)=>BA(V($),X,Q,Z,Y,_),swallowPromiseRejection:(X)=>{x6(X)},validateAttributeValueSizes:C0,pruneCheckpointHistory:(X,Q)=>OA(V($),X,Q),dispatchEvent:(X)=>{$.dispatchEvent(X)},enforceHistoryCircuitBreaker:(X)=>i1(V($),X,"timed-out",a($),tG)})}function mi($){V3(V($),{hasConfiguredRetention:()=>D3(V($)),runRetentionSweep:()=>P3(V($),(U,J)=>a($).handleCleanupError(U,J),(U)=>s6(V($),U,a($))),setNextRetentionSweepAt:()=>L3(V($))})}mN(($)=>mi($));async function SA($,U){let J=[],G=new n$($.storage,U);for await(let X of G.scan())J.push({type:X.type,timestamp:X.timestamp,data:hj(X.payload)});return J}async function bA($,U){if($.options.checkpointHistory<=0)return[];let J=`${P.checkpoint(U)}:`,G=[];for await(let[,X]of $.storage.scan(J,{reverse:!0,limit:$.options.checkpointHistory})){let Q=D$(X);G.push({step:Q.step,timestamp:Q.createdAt,sizeBytes:X.byteLength})}return G}async function vA($,U,J){let G=await $.storage.get(P.checkpointHistory(U,J));if(!G)return null;let X=await I1($.storage,U,D$(G));return Ij({step:X.step,locals:X.locals,searchAttributes:X.searchAttributes,version:X.version,createdAt:X.createdAt})}async function gA($,U){let J=[];for await(let[,G]of $.storage.scan(P.timelinePrefix(U))){let X;try{X=A(G)}catch{continue}if(gz(X))J.push({...X,inputSummary:yj(X.inputSummary)??X.inputSummary,...X.outputSummary!==void 0?{outputSummary:yj(X.outputSummary)??X.outputSummary}:{}})}return J.sort((G,X)=>G.step-X.step),J}async function IA($,U,J){let G=await $.storage.get(P.checkpointHistory(U,J));if(!G)return null;let Q=await new n$($.storage,U).replay(Math.max(J-1,-1)),Z=await I1($.storage,U,D$(G)),Y=await X1($.storage,U);return{checkpoint:Ij({step:Z.step,locals:Z.locals,searchAttributes:Z.searchAttributes,version:Z.version,createdAt:Z.createdAt}),accumulatedResults:Z.accumulatedResults.map(([_,H])=>[_,b1(H)]),events:Q.map((_)=>({type:_.type,timestamp:_.timestamp,data:hj(_.payload)})),...Y!==null?{compactedBefore:Y.sequence}:{}}}function hA($,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 nD{#$;#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=hA(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 rD{#$;#U;#J;constructor($){this.#$=$,this.#U=[],this.#J=[]}record($,U){this.#U.push({timestamp:$,value:U}),this.#G(U),this.#Q($)}percentile($,U){if(this.#Q(U),this.#J.length===0)return 0;let J=Math.ceil($/100*this.#J.length)-1;return this.#J[Math.max(0,J)]??0}#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)}#Q($){let U=$-this.#$,J=hA(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 ki=1e4;class oD{#$;#U;#J;#G;#X;#Q;#Z;#Y;#_;constructor($,U,J=Date.now){this.#$=$,this.#U=U,this.#Y=J,this.#Q=0,this.#Z=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],Q=X.window?Q$(X.window):60000;if(X.metric==="workflow.failure_rate")this.#G.set(G,new nD(Q));else if(X.metric==="activity.p99_duration")this.#G.set(G,new rD(Q))}this.#L(),this.#_=setInterval(this.#V.bind(this),ki)}#V(){for(let $=0;$<this.#U.rules.length;$++)this.#j($)}#L(){let $=this.#U.rules.some((G)=>G.metric==="workflow.failure_rate"),U=this.#U.rules.some((G)=>G.metric==="activity.p99_duration");if($){let G=(X)=>{let Q=this.#Y();for(let Z=0;Z<this.#U.rules.length;Z++){if(this.#U.rules[Z].metric!=="workflow.failure_rate")continue;this.#G.get(Z).record(Q,X),this.#j(Z)}};this.#H("workflow:completed",()=>G(!1));for(let X of["workflow:failed","workflow:timed-out","workflow:cancelled"])this.#H(X,()=>G(!0))}if(U)this.#H("activity:completed",(G)=>{if(!(G instanceof Y0))return;let X=this.#Y();for(let Q=0;Q<this.#U.rules.length;Q++){if(this.#U.rules[Q].metric!=="activity.p99_duration")continue;this.#G.get(Q).record(X,G.duration),this.#j(Q)}});if(this.#U.rules.some((G)=>G.metric==="storage.size"))this.#H("storage:size-reported",(G)=>{if(!(G instanceof F0))return;this.#Q=G.sizeBytes;for(let X=0;X<this.#U.rules.length;X++){if(this.#U.rules[X].metric!=="storage.size")continue;this.#j(X)}})}#H($,U){this.#X.push({type:$,handler:U}),this.#$.addEventListener($,U)}#j($){let U=this.#U.rules[$],J=this.#J[$],G=this.#Y(),X=0,Q=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.#Q;if(J.currentValue=X,X>=Q&&J.status==="idle")J.status="firing",J.lastFiredAt=G,this.#$.dispatchEvent(new M0(U.metric,Q,X,U.window)),this.#D(U,"alert:fired",X);else if(X<Q&&J.status==="firing")J.status="idle",J.lastResolvedAt=G,this.#$.dispatchEvent(new z0(U.metric,Q,X,U.window)),this.#D(U,"alert:resolved",X)}#D($,U,J){if($.action==="log")console.warn(`[weft:alert] ${U}: ${$.metric} = ${J} (threshold: ${$.threshold})`);if($.action==="webhook")this.#P($,U,J)}#P($,U,J){let G=this.#U.webhooks??[];for(let X of G){if(!X.events.includes(U))continue;let Q=new AbortController;this.#Z.add(Q);let Z={event:U,alert:{metric:$.metric,threshold:$.threshold,currentValue:J,window:$.window,timestamp:this.#Y()}};fetch(X.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Z),signal:AbortSignal.any([Q.signal,AbortSignal.timeout(30000)])}).catch(()=>{}).finally(this.#Z.delete.bind(this.#Z,Q))}}get states(){return this.#J}[Symbol.dispose](){if(this.#_!==null)clearInterval(this.#_),this.#_=null;for(let{type:$,handler:U}of this.#X)this.#$.removeEventListener($,U);this.#X=[];for(let $ of this.#Z)$.abort();this.#Z.clear()}}function yA(){let $=Wz();if(!$)throw Error("Brotli compression requires Bun or Node 22.5+ with process.getBuiltinModule support. Use gzip compression for browser/edge runtimes.");return $}function fi($){return new Uint8Array(yA().brotliCompressSync($))}function ui($){return new Uint8Array(yA().brotliDecompressSync($))}var F3=193,sD=0,mA=1,kA=2,U4=2;function fA($){return wi($)}function wi($){switch($){case"gzip":return{algorithm:"gzip",compress(U){return zz(U)}};case"brotli":return{algorithm:"brotli",compress(U){return fi(U)}};case"none":return{algorithm:"none",compress(U){return U}}}}async function aD($,U,J){if($.length<J||U.algorithm==="none"){let Z=new Uint8Array($.length+U4);return Z[0]=F3,Z[1]=sD,Z.set($,U4),Z}let G=await U.compress($);if(G.length+U4>=$.length+U4){let Z=new Uint8Array($.length+U4);return Z[0]=F3,Z[1]=sD,Z.set($,U4),Z}let X=U.algorithm==="gzip"?mA:kA,Q=new Uint8Array(G.length+U4);return Q[0]=F3,Q[1]=X,Q.set(G,U4),Q}async function tD($){if($.length<U4)throw Error("Compression payload missing 2-byte header.");if($[0]!==F3)throw Error("Compression payload missing magic byte 0xC1.");let U=$[1],J=$.slice(U4);switch(U){case sD:return J;case mA:return Bz(J);case kA:return ui(J);default:throw Error(`Compression payload uses unsupported algorithm byte 0x${U.toString(16).padStart(2,"0")}.`)}}var ci=4096,pi="gzip";function uA($){return{threshold:$?.threshold??ci,algorithm:$?.algorithm??pi}}class eD{#$;#U;#J;constructor($,U){this.#$=$;let J=uA(U);if(this.#U=fA(J.algorithm),this.#J=J.threshold,$.query){let G=$.query.bind($);Object.defineProperty(this,"query",{value:G,enumerable:!0,configurable:!0})}}capabilities(){let $=this.#$.capabilities();return{...$.persistence===void 0?{}:{persistence:$.persistence},readAfterWrite:$.readAfterWrite,scanConsistency:$.scanConsistency,atomicBatch:$.atomicBatch,conditionalBatch:!1,boundedRangeDelete:!1}}async get($){let U=await this.#$.get($);if(!U)return null;return tD(U)}async put($,U){let J=await aD(U,this.#U,this.#J);return this.#$.put($,J)}async delete($){return this.#$.delete($)}async*scan($,U){for await(let[J,G]of this.#$.scan($,U))yield[J,await tD(G)]}async batch($){W6("batch operations",$.length);let U=await Promise.all($.map(async(J)=>{if(J.type==="put")return{type:"put",key:J.key,value:await aD(J.value,this.#U,this.#J)};return J}));return this.#$.batch(U)}[Symbol.dispose](){this.#$[Symbol.dispose]()}}function di($){if($===void 0)return;if(typeof $!=="number"||!Number.isInteger($)||$<0)throw Error("deleteRange limit must be a finite non-negative integer");return $===0?0:$}function $J($){let U={},J=!1;for(let X of["gt","gte","lt","lte"]){let Q=$[X];if(Q===void 0)continue;if(typeof Q!=="string")throw Error("deleteRange bounds must be strings");U[X]=Q,J=!0}if(!J)throw Error("deleteRange requires at least one of gt/gte/lt/lte; use deletePrefix to delete a whole prefix");let G=di($.limit);if(G!==void 0)U.limit=G;return U}async function wA($,U,J){let G=$J(J);if($.deleteRange)return $.deleteRange(U,G);return TM($,U,G)}function li($,U){let J={key:$,open:!1};if(U.gte!==void 0&&U.gte>J.key)J.key=U.gte,J.open=!1;if(U.gt!==void 0&&U.gt>=J.key)J.key=U.gt,J.open=!0;return J}function ii($,U){let J={key:c$($),open:!0};if(U.lt!==void 0&&U.lt<=J.key)J.key=U.lt,J.open=!0;if(U.lte!==void 0&&U.lte<J.key)J.key=U.lte,J.open=!1;return J}function GV$($,U){let J=li($,U),G=ii($,U);if(J.key>G.key||J.key===G.key&&(J.open||G.open))return null;return{lower:J,upper:G}}function $L($){return $.replaceAll(/:+$/g,"")}function ni($,U){let J=$L($),G=$L(U);if(J.length===0)return G;if(G.length===0)return J;return`${J}:${G}`}class UL{#$;#U;constructor($,U){this.#$=$,this.#U=$L(U)}#J($){if(this.#U.length===0)return $;return $.length===0?`${this.#U}:`:`${this.#U}:${$}`}#G($){if(this.#U.length===0)return $;return $.slice(this.#U.length+1)}#X($={}){let U={};if($.limit!==void 0)U.limit=$.limit;if($.reverse!==void 0)U.reverse=$.reverse;if($.gt!==void 0)U.gt=this.#J($.gt);if($.gte!==void 0)U.gte=this.#J($.gte);if($.lt!==void 0)U.lt=this.#J($.lt);if($.lte!==void 0)U.lte=this.#J($.lte);return U}#Q($){let U={};if($.limit!==void 0)U.limit=$.limit;if($.gt!==void 0)U.gt=this.#J($.gt);if($.gte!==void 0)U.gte=this.#J($.gte);if($.lt!==void 0)U.lt=this.#J($.lt);if($.lte!==void 0)U.lte=this.#J($.lte);return U}capabilities(){return this.#$.capabilities()}scoped($){return new UL(this.#$,ni(this.#U,$))}async get($){return this.#$.get(this.#J($))}async put($,U){await this.#$.put(this.#J($),U)}async delete($){await this.#$.delete(this.#J($))}async*scan($,U){for await(let[J,G]of this.#$.scan(this.#J($),this.#X(U)))yield[this.#G(J),G]}async batch($){W6("batch operations",$.length),await this.#$.batch($.map((U)=>{if(U.type==="put")return{type:"put",key:this.#J(U.key),value:U.value};return{type:"delete",key:this.#J(U.key)}}))}async conditionalBatch($,U){return e(this.#$,$.map((J)=>({key:this.#J(J.key),expectedValue:J.expectedValue})),U.map((J)=>{if(J.type==="put")return{type:"put",key:this.#J(J.key),value:J.value};return{type:"delete",key:this.#J(J.key)}}))}async has($){return v$(this.#$,this.#J($))}async deletePrefix($){return vM(this.#$,this.#J($))}async deleteRange($,U){let J=this.#Q($J(U));return wA(this.#$,this.#J($),J)}async*keys($,U){for await(let J of Q9(this.#$,this.#J($),this.#X(U)))yield this.#G(J)}async count($){return bM(this.#$,this.#J($))}[Symbol.dispose](){this.#$[Symbol.dispose]()}}function cA($,U){return new UL($,U)}class JL{#$;constructor(){this.#$=new Map}capabilities(){return{persistence:"ephemeral",readAfterWrite:"linearizable",scanConsistency:"snapshot",atomicBatch:!0,conditionalBatch:!0,boundedRangeDelete:!0}}#U($,U,J){return $>=U&&$<J}#J($,U){let J=[];for(let G of this.#$.keys())if(this.#U(G,$,U))J.push(G);return J.toSorted()}async get($){return this.#$.get($)??null}async put($,U){this.#$.set($,U)}async delete($){this.#$.delete($)}async*scan($,U={}){let{limit:J,reverse:G}=U,X=c$($),Q=this.#J($,X);if(Q=Q.filter((Y)=>G9(Y,U)),G)Q.reverse();let Z=0;for(let Y of Q){if(J!==void 0&&Z>=J)break;let _=this.#$.get(Y);if(_!==void 0)yield[Y,_],Z++}}async batch($){W6("batch operations",$.length),this.#G($)}#G($){for(let U of $)if(U.type==="put")this.#$.set(U.key,U.value);else this.#$.delete(U.key)}async conditionalBatch($,U){W6("conditionalBatch conditions",$.length),W6("conditionalBatch operations",U.length);for(let J of $){let G=this.#$.get(J.key)??null;if(!X9(G,J.expectedValue))return!1}return this.#G(U),!0}async has($){return this.#$.has($)}async deletePrefix($){let U=c$($),J=this.#J($,U);for(let G of J)this.#$.delete(G);return J.length}async deleteRange($,U){let J=$J(U),G=c$($),X=this.#J($,G).filter((Z)=>G9(Z,J)),Q=J.limit===void 0?X:X.slice(0,J.limit);for(let Z of Q)this.#$.delete(Z);return Q.length}async*keys($,U={}){let{limit:J,reverse:G}=U,X=c$($),Q=this.#J($,X);if(Q=Q.filter((Y)=>G9(Y,U)),G)Q.reverse();let Z=0;for(let Y of Q){if(J!==void 0&&Z>=J)break;yield Y,Z++}}async count($){let U=c$($);return this.#J($,U).length}scoped($){return cA(this,$)}get size(){return this.#$.size}clear(){this.#$.clear()}snapshot(){let $=new Map;for(let[U,J]of this.#$)$.set(U,new Uint8Array(J));return $}[Symbol.dispose](){this.#$.clear()}}class GL{#$;#U;constructor($,U){this.#$=$,this.#U=U?.timeoutMilliseconds??30000}async execute($){let U=await this.#$.acquire(),J=!1;try{return await new Promise((G)=>{let X=!1,Q=(D)=>{if(X)return;X=!0,H(),G(D)},Z=(D)=>{if(D.data.operationId===$.operationId)Q(D.data)},Y=(D)=>{Q({operationId:$.operationId,status:"failed",error:`Activity worker crashed: ${D.message??"unknown error"}`})},_=setTimeout(()=>{Q({operationId:$.operationId,status:"failed",error:`Activity "${$.activityName}" timed out after ${this.#U}ms (operationId: ${$.operationId})`}),J=!0,U.terminate()},this.#U),H=()=>{clearTimeout(_),U.removeEventListener("message",Z),U.removeEventListener("error",Y)};U.addEventListener("message",Z),U.addEventListener("error",Y),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]()}}class M3{#$;#U;#J;#G;#X;#Q;#Z;#Y;#_;constructor($){this.#$=new Set,this.#U=[],this.#J=[],this.#G=new Map,this.#X=$.concurrency,this.#Q=$.workerUrl,this.#Z=$.smol??!1,this.#Y=!1,this.#_=null}async acquire(){if(this.#Y)throw Error("WorkerPool has been disposed");let $=this.#U.pop();if($)return $;if(this.#$.size<this.#X)return this.#V();return new Promise((U,J)=>{this.#J.push({resolve:U,reject:J})})}async acquireSpecificWorker($){if(this.#Y)throw Error("WorkerPool has been disposed");if(!this.#$.has($))throw Error("Worker does not belong to this WorkerPool");let U=this.#U.indexOf($);if(U>=0)return this.#U.splice(U,1),$;return new Promise((J,G)=>{let X=this.#G.get($)??[];X.push({resolve:J,reject:G}),this.#G.set($,X)})}discard($){if(!this.#$.has($))return;this.#$.delete($),this.#H($),this.#j($,Error("Worker was discarded from this WorkerPool")),$.terminate(),this.#P(),this.#F()}release($){if(this.#Y&&!this.#_)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.#F()}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.#Y)return;this.#Y=!0,this.#L()}async[Symbol.asyncDispose](){if(this.#Y)return;if(this.#Y=!0,this.#D(Error("WorkerPool has been disposed")),this.#U.length===this.#$.size){this.#L();return}return new Promise(($)=>{this.#_=()=>{this.#L(),$()}})}#V(){let $={};if(this.#Z)$.smol=!0;let U=new Worker(this.#Q,$);return this.#$.add(U),U}#L(){this.#D(Error("WorkerPool has been disposed"));for(let $ of this.#$)$.terminate();this.#$.clear(),this.#U.length=0,this.#J.length=0,this.#G.clear()}#H($){let U=this.#U.indexOf($);if(U>=0)this.#U.splice(U,1)}#j($,U){let J=this.#G.get($);if(!J)return;this.#G.delete($);for(let G of J)G.reject(U)}#D($){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()}#P(){if(this.#Y)return;while(this.#J.length>0){let $=this.#U.shift();if($){this.#J.shift()?.resolve($);continue}if(this.#$.size<this.#X){this.#J.shift()?.resolve(this.#V());continue}return}}#F(){if(this.#_&&this.#U.length===this.#$.size)this.#_(),this.#_=null}}function pA($,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},...ri($,J.workflowId),services:$.getWorkflowServices?.(J.workflowId),...oi($)}}function ri($,U){let{registerCancelHandler:J,recordFinalizerState:G}=$;return{...J!==void 0&&{registerCancelHandler:(X)=>J(U,X)},...G!==void 0&&{recordFinalizerState:(X)=>G(U,X)}}}function oi($){let U=$.getLogSink?.();return U===void 0?{}:{logSink:U}}function dA($){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}}}class XL{#$;#U;#J;#G;#X;#Q;#Z;#Y;constructor($){this.#$=$,this.#U=new Map,this.#J=new Map,this.#G=new Map,this.#X=new Map,this.#Q=new Map,this.#Z=new Map,this.#Y=null}onMessage($){this.#Y=$}startWorkflow($){let U=this.#$.getRegistration($.workflowType);if(!U){this.#j({type:"failed",workflowId:$.workflowId,error:`No workflow registered with name "${$.workflowType}"`});return}let J=new AbortController;this.#J.set($.workflowId,J);let G=new Q1(pA(this.#$,U,$,J)),X=this.#$.getComposedWorkflowInterceptor?.()??null;if(I0(G,X),this.#$.development)G.explain(!0);this.#G.set($.workflowId,G);let Q=U.handler(G,$.input);this.#U.set($.workflowId,Q),this.#_($.workflowId,Q,void 0)}resumeWorkflow($){let U=this.#U.get($.workflowId);if(!U){this.#j({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"?B9($.operationResult):void 0;if(X)this.#V($.workflowId,U,X,G);else this.#_($.workflowId,U,J)}cancelWorkflow($){let U=this.#J.get($);if(U)U.abort();this.#D($)}parkWorkflow($,U){let J=U?.retainContext?this.#G.get($)??this.#X.get($):void 0;if(this.#D($),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.#Z.get($)}waitForWorkflowAdvance($){return this.#Q.get($)}hasGenerator($){return this.#U.has($)}continueWorkflow($,U){let J=this.#U.get($);if(!J)return;this.#_($,J,U)}throwIntoWorkflow($,U,J){let G=this.#U.get($);if(!G)return;this.#V($,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.#Q.clear(),this.#Z.clear(),this.#Y=null}async[Symbol.asyncDispose](){this[Symbol.dispose]()}#_($,U,J){return this.#L($,(async()=>{try{if(this.#J.get($)?.signal.aborted)return;let X=await U.next(J);if(X.done){this.#D($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0}),this.#j({type:"completed",workflowId:$,result:X.value});return}let Q=X.value;this.#j({type:"checkpoint",workflowId:$,checkpoint:new ArrayBuffer(0),operationRequest:Q})}catch(G){this.#D($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0});let X={type:"failed",workflowId:$,error:G instanceof Error?G.message:String(G),failureCategory:t2(G,{defaultErrorCategory:"application"})};if(G instanceof Error&&G.stack!==void 0)X.errorStack=G.stack;this.#j(X)}})())}#V($,U,J,G){return this.#L($,(async()=>{try{if(this.#J.get($)?.signal.aborted)return;let Q=await U.throw(J);if(Q.done){this.#D($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0}),this.#j({type:"completed",workflowId:$,result:Q.value});return}let Z=Q.value;this.#j({type:"checkpoint",workflowId:$,checkpoint:new ArrayBuffer(0),operationRequest:Z})}catch(X){this.#D($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0});let Q={type:"failed",workflowId:$,error:X instanceof Error?X.message:String(X),failureCategory:G??t2(X,{defaultErrorCategory:"application"})};if(X instanceof Error&&X.stack!==void 0)Q.errorStack=X.stack;this.#j(Q)}})())}#L($,U){let J=U.finally(()=>{if(this.#Q.get($)===J)this.#Q.delete($)});return J.catch(()=>{}),this.#Q.set($,J),J}#H($,U){let J=U.finally(()=>{if(this.#Z.get($)===J)this.#Z.delete($)});return J.catch(()=>{}),this.#Z.set($,J),J}#j($){let U=this.#Y?.($);if(U instanceof Promise){this.#H($.workflowId,U);return}this.#Z.delete($.workflowId)}#D($,U){if(this.#U.delete($),this.#J.delete($),this.#G.delete($),this.#X.delete($),!U?.preserveTrackedAdvance)this.#Q.delete($);if(!U?.preserveTrackedTurn)this.#Z.delete($)}}class QL{#$=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($)}}var si=new Set(["debug","info","warn","error"]);function ai($){if($===void 0)return!0;if(typeof $!=="object"||$===null)return!1;let U=Object.getPrototypeOf($);return U===Object.prototype||U===null}function z3($){if(typeof $!=="object"||$===null)return!1;let U=$;return si.has(U.level)&&typeof U.message==="string"&&typeof U.workflowId==="string"&&typeof U.workflowType==="string"&&typeof U.timestamp==="number"&&Number.isFinite(U.timestamp)&&ai(U.attributes)}function lA($){return typeof $==="object"&&$!==null&&$.type==="log"}var x4=1,rA=1000,oA=1048576,ZL=4096,sA=60000,aA=5000,tA=5,iA="__weftBinaryBytes",ti="__weftDate",ei="__weftError",$n="__weftMap",Un="__weftSet";class K$ extends Error{constructor($){super($);this.name="WorkerProtocolError"}}class d0 extends K${actualBytes;maxBytes;constructor($,U){super(`Worker protocol message is ${$} bytes, exceeding limit ${U}`);this.actualBytes=$;this.maxBytes=U}}function Jn($){let U=0;return W(p0($,[],(G)=>{U+=G})).byteLength+U}function UJ($,U){let J=Jn($);if(U!==void 0&&J>U)throw new d0(J,U);return J}function eA($){let U=Gn($);Xn(U),Qn(U)}function Gn($){if(typeof $!=="object"||$===null)throw new K$("Worker outbound message must be an object");return $}function Xn($){if(typeof $.workflowId!=="string")throw new K$("Worker outbound message must include workflowId");nA($,"protocolVersion"),nA($,"turnId")}function nA($,U){if($[U]!==void 0&&!Number.isSafeInteger($[U]))throw new K$(`Worker outbound message ${U} must be an integer`)}function Qn($){switch($.type){case"checkpoint":Zn($);return;case"completed":return;case"failed":Yn($);return;case"log":_n($);return;default:throw new K$("Worker outbound message has an unsupported type")}}function Zn($){if(!($.checkpoint instanceof ArrayBuffer))throw new K$("Worker checkpoint message must include checkpoint bytes");if(typeof $.operationRequest!=="object"||$.operationRequest===null)throw new K$("Worker checkpoint message must include operationRequest")}function Yn($){if(typeof $.error!=="string")throw new K$("Worker failed message must include an error string")}function _n($){if(!z3($.record))throw new K$("Worker log message must include a valid log record")}function p0($,U,J){let G=jn($,U,J);if(G.handled)return G.value;if(U.includes($))throw new K$("Worker protocol message cannot include cyclic values");if(!$2($).valid)throw new K$("Worker protocol message contains non-cloneable values");return Ln($,U,J)}function jn($,U,J){if(typeof $==="function"||typeof $==="symbol")throw new K$("Worker protocol message cannot include functions or symbols");let G=Hn($,J);if(G.handled)return G;let X=Dn($,U,J);if(X.handled)return X;if(Array.isArray($))return{handled:!0,value:$.map((Q)=>p0(Q,U,J))};if(typeof $!=="object"||$===null)return{handled:!0,value:$};return{handled:!1}}function Hn($,U){if($ instanceof ArrayBuffer)return U($.byteLength),{handled:!0,value:{[iA]:$.byteLength}};if(ArrayBuffer.isView($))return U($.byteLength),{handled:!0,value:{[iA]:$.byteLength}};return{handled:!1}}function Dn($,U,J){if($ instanceof Date)return{handled:!0,value:{[ti]:$.toISOString()}};if($ instanceof Error)return{handled:!0,value:{[ei]:{name:$.name,message:$.message}}};if($ instanceof Map)return{handled:!0,value:{[$n]:[...$.entries()].map(([G,X])=>[p0(G,U,J),p0(X,U,J)])}};if($ instanceof Set)return{handled:!0,value:{[Un]:[...$.values()].map((G)=>p0(G,U,J))}};return{handled:!1}}function Ln($,U,J){U.push($);try{let G={};for(let X of Object.keys($).toSorted())G[X]=p0($[X],U,J);return G}finally{U.pop()}}class YL{#$;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=x4;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,[Vn(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 Vn($){if($ instanceof ArrayBuffer)return $;if($.buffer instanceof ArrayBuffer)return $.buffer;throw Error("Worker checkpoint must use an ArrayBuffer-backed view")}class _L{#$=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 $C($,U){let J={type:"run",protocolVersion:x4,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 jL($,U){let J={type:"resume",protocolVersion:x4,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}class HL{#$=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 UC($,U){try{let J=$?.(U);if(J instanceof Promise)return J.then(()=>!1,()=>!0);return!1}catch{return!0}}function JC($){let U=$.operationRequest;return U.type==="wait-signal"||U.kind==="signal-wait"}function GC($,U,J){if(J!==void 0)try{UJ($,J)}catch(X){return X instanceof d0?"dropped-oversize":"dropped-invalid"}if(!z3($.record))return"dropped-invalid";let G=$.record;if(G.workflowId!==$.workflowId)return"dropped-invalid";if(U!==void 0)try{U(G)}catch{pX(G)}return"accepted-valid"}class QC{#$;#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.#Q($),G=U-J.windowStartedAt;if(G>=this.#$||G<0)J.windowStartedAt=U,J.arrivalsInWindow=0;return J.arrivalsInWindow+=1,J.arrivalsInWindow>this.#U?"discard":"tolerate"}recordOutcome($,U){switch(U){case"accepted-valid":return"tolerate";case"dropped-oversize":case"dropped-invalid":{let J=this.#Q($);return J.lifetimeStrikes+=1,J.lifetimeStrikes>=this.#J?"discard":"tolerate"}default:throw Error(`Unknown forwarded-log outcome: ${String(U)}`)}}forget($){this.#X.delete($)}#Q($){let U=this.#X.get($);if(!U)U={windowStartedAt:this.#G(),arrivalsInWindow:0,lifetimeStrikes:0},this.#X.set($,U);return U}}class ZC{#$;#U;#J;constructor($){this.#U=$.onLog,this.#J=$.maxProtocolMessageBytes,this.#$=new QC({floodWindowMs:$.floodWindowMs??sA,floodThreshold:$.floodThreshold??aA,strikeThreshold:$.strikeThreshold??tA,getNow:$.getNow??Date.now})}get hasSink(){return this.#U!==void 0}handle($,U,J){if(this.#$.recordArrival($)==="discard")return XC("forwarded-log flooding");if(typeof U.workflowId!=="string"||!J(U.workflowId))return null;let G=GC(U,this.#U,this.#J);if(this.#$.recordOutcome($,G)==="discard")return XC("repeated oversize/invalid forwarded logs");return null}forget($){this.#$.forget($)}}function XC($){let U=`Worker discarded for log abuse: ${$}`;return{targetCategory:"system",targetError:U,otherCategory:"system",otherError:U}}function YC($,U){return new ZC({onLog:$?.onLog,maxProtocolMessageBytes:U,getNow:$?.getNow,floodWindowMs:$?.forwardedLogFloodWindowMs,floodThreshold:$?.forwardedLogFloodThreshold,strikeThreshold:$?.forwardedLogStrikeThreshold})}class DL{#$;#U;#J;constructor($,U,J){this.#$=$,this.#U=U,this.#J=J}validateHostToWorkerMessage($){try{return UJ($,this.#$),null}catch(U){return _C(U,{otherError:"Worker protocol send failed"})}}acceptWorkerMessage($,U){try{if(eA(U),UJ(U,this.#$),this.#U)this.#G($,U);return{accepted:!0,message:U}}catch(J){let G=Pn(U);return{accepted:!1,failure:_C(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!==x4)throw new K$("Worker protocol version mismatch");let J=this.#J.get($);if(!J)throw new K$("Worker message arrived outside an active turn");if((U.type==="log"?void 0:U.turnId)!==J.turnId||U.workflowId!==J.workflowId)throw new K$("Worker message did not match the active turn")}}function _C($,U){return{...U.targetWorkflowId===void 0?{}:{targetWorkflowId:U.targetWorkflowId},failureCategory:$ instanceof d0?"resource":"system",error:$ instanceof Error?$.message:String($),otherError:U.otherError}}function Pn($){if(typeof $!=="object"||$===null)return;let U=$.workflowId;return typeof U==="string"?U:void 0}class LL{#$=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($)}}class VL{#$;#U;#J;#G;#X;#Q;#Z;#Y;#_;#V;#L;#H;#j;#D;#P;#F;#z;constructor($,U){let{workflowTurnTimeoutMs:J,maxProtocolMessageBytes:G,requireProtocolVersion:X=!1,discardOnCancel:Q=!1,broadcastEvents:Z=!1}=U??{};if(this.#$=$,this.#U=new _L,this.#J=new HL,this.#Q=new QL,this.#Z=J,this.#Y=G,this.#_=X,this.#V=Q,this.#L=YC(U,G),this.#H=new LL(this.#Z,(Y)=>{this.#S(Y)}),this.#j=new DL(this.#Y,this.#_,this.#H),this.#D=new YL({pool:this.#$,ownership:this.#U,isDisposed:()=>this.#F,requireProtocolVersion:()=>this.#_,validateHostToWorkerMessage:(Y,_,H)=>this.#O(Y,_,H),attachWorkerListeners:(Y)=>{this.#E(Y)},detachWorkerListenersIfIdle:(Y)=>{this.#N(Y)},beginTurn:(Y,_,H,D)=>{this.#H.begin(Y,_,H,D)},clearTurn:(Y)=>{this.#H.clear(Y)},discardWorkerAndFailWorkflows:(Y,_)=>{this.#M(Y,_)},emit:(Y)=>{this.#K(Y)}}),this.#P=null,this.#G=null,this.#X=null,this.#F=!1,this.#z=1,Z)try{this.#G=new BroadcastChannel("weft:events"),this.#X=(Y)=>{this.#b(Y.data)},this.#G.addEventListener("message",this.#X)}catch{}}onMessage($){this.#P=$}startWorkflow($){this.#U.resetWorkflow($.workflowId),this.#Q.resetWorkflow($.workflowId);let U=$C($,this.#B());if(!this.#O($.workflowId,U))return;this.#D.acquireAndSend($.workflowId,U)}resumeWorkflow($){let U=this.#U.getActiveWorker($.workflowId);if(U){this.#Q.recordResume($.workflowId);let G=jL($,this.#B());this.#D.postResumeMessage(U,$,G);return}let J=this.#U.getParkedWorker($.workflowId);if(J){let G=jL($,this.#B());this.#D.resumeParkedWorkflow($,J,G);return}if(this.#U.consumeCancelled($.workflowId))return;if(!this.#F)this.#K({type:"failed",workflowId:$.workflowId,error:`No worker assigned for workflow: ${$.workflowId}`})}#B(){return{turnId:this.#z++,maxProtocolMessageBytes:this.#Y,hasLogSink:this.#L.hasSink}}cancelWorkflow($){let U=this.#U.getActiveWorker($);if(U){if(this.#U.markCancelled($),this.#V){this.#M(U,{targetWorkflowId:$,skipTarget:!0,otherCategory:"system",otherError:`Worker discarded during cancellation of workflow: ${$}`});return}let G={type:"cancel",workflowId:$};if(this.#_)G.protocolVersion=x4;U.postMessage(G),this.#q($);return}let J=this.#U.getParkedWorker($);if(!J)return;if(this.#U.markCancelled($),this.#U.deleteParked($),this.#V){this.#M(J,{targetWorkflowId:$,skipTarget:!0,otherCategory:"system",otherError:`Worker discarded during cancellation of parked workflow: ${$}`});return}this.#D.cancelParkedWorkflow($,J)}[Symbol.dispose](){this.#W(),this.#$[Symbol.dispose]()}async[Symbol.asyncDispose](){this.#W(),await this.#$[Symbol.asyncDispose]()}#W(){if(this.#F=!0,this.#G){if(this.#X)this.#G.removeEventListener("message",this.#X);this.#G.close()}this.#H.clearAll();let $=this.#U.activeWorkflowIds();for(let U of $)this.#q(U);this.#J.detachAll(),this.#U.clear(),this.#Q.clear(),this.#P=null}async#A($,U){if(lA(U)){let Q=(Y)=>this.#U.getTargetWorker(Y)===$,Z=this.#L.handle($,U,Q);if(Z)this.#M($,Z);return}if(!this.#x($,U))return;this.#H.clear($);let J=this.#Q.beginCheckpointHandling(U),G=UC(this.#P,U),X=G instanceof Promise?await G:G;try{if(this.#C($,U))return;if(X)return;this.#R($,U,J)}finally{this.#Q.finishCheckpointHandling(U.workflowId,J,this.#U.isWorkflowClosed(U.workflowId))}}#C($,U){if(U.type!=="completed"&&U.type!=="failed")return!1;return this.#U.consumeCancelled(U.workflowId),this.#U.deleteParked(U.workflowId),this.#q(U.workflowId),this.#N($),this.#Q.forgetWorkflowIfClosed(U.workflowId,this.#U.isWorkflowClosed(U.workflowId)),!0}#R($,U,J){if(U.type!=="checkpoint"||!JC(U))return;if(this.#Q.wasResumedDuringCheckpointHandling(U.workflowId,J))return;if(this.#U.parkActive(U.workflowId,$))this.#$.release($)}#T($,U){this.#M($,{targetCategory:"system",targetError:`Worker crashed: ${U.message??"unknown error"}`,otherCategory:"system",otherError:`Worker crashed: ${U.message??"unknown error"}`})}#q($){let U=this.#U.releaseActive($);if(U)this.#H.clear(U),this.#N(U),this.#$.release(U)}#E($){this.#J.attach($,{message:(U)=>{this.#A($,U).catch(()=>{})},error:(U)=>{this.#T($,U)},messageerror:()=>{this.#M($,{targetCategory:"system",targetError:"Worker messageerror event",otherCategory:"system",otherError:"Worker messageerror event"})}})}#N($){this.#J.detachIfIdle($,(U)=>this.#U.workerIsIdle(U))}#O($,U,J){let G=this.#j.validateHostToWorkerMessage(U);if(!G)return!0;if(J)return this.#M(J,{targetWorkflowId:$,targetCategory:G.failureCategory,targetError:G.error,otherCategory:"system",otherError:`Worker discarded after protocol send failure for workflow: ${$}`}),!1;return this.#K({type:"failed",workflowId:$,error:G.error,failureCategory:G.failureCategory}),!1}#x($,U){let J=this.#j.acceptWorkerMessage($,U);if(J.accepted)return!0;return this.#M($,{...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.#M($.worker,{targetWorkflowId:$.workflowId,targetCategory:"timeout",targetError:`Worker workflow turn timed out after ${this.#Z}ms`,otherCategory:"timeout",otherError:`Worker discarded after workflow turn timed out: ${$.workflowId}`})}#M($,U){let J=this.#U.workflowIdsForWorker($);if(J.length===0){this.#H.clear($),this.#L.forget($);return}for(let G of J){let X=G===U.targetWorkflowId;if(this.#U.forgetWorkflow(G),this.#Q.forgetWorkflowIfClosed(G,!0),X&&U.skipTarget)continue;this.#K({type:"failed",workflowId:G,error:X?U.targetError??U.otherError:U.otherError,failureCategory:X?U.targetCategory??U.otherCategory:U.otherCategory})}this.#H.clear($),this.#L.forget($),this.#J.detach($),this.#$.discard($)}#b($){if($.type==="signal:received"&&typeof $.workflowId==="string"){let U=this.#U.getTargetWorker($.workflowId);if(U)U.postMessage($)}}#K($){let U=this.#P?.($);if(U instanceof Promise)U.catch(()=>{})}}var jC=30000,HC=5000,DC=60000;function LC($){let U=Fn($?.ownership??"none");if(U!=="lease")return{ownershipMode:U,leaseTtlMs:jC,leaseRenewIntervalMs:HC,leaseWaitTimeoutMs:DC};let J=q6($?.leaseTtl,"options.leaseTtl")??jC,G=q6($?.leaseRenewInterval,"options.leaseRenewInterval")??HC,X=q6($?.leaseWaitTimeout,"options.leaseWaitTimeout")??DC;return Mn(J,G,X),{ownershipMode:U,leaseTtlMs:J,leaseRenewIntervalMs:G,leaseWaitTimeoutMs:X}}function Fn($){if($!=="none"&&$!=="lease")throw Error(`Unknown ownership posture "${String($)}". Expected 'none' or 'lease'.`);return $}function Mn($,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.`)}function PL($){return Object.entries($??{})}function B3($,U){return $}var VC=!1;function PC($){return zn($,{bunEnv:typeof Bun<"u"?Bun.env:void 0,processEnv:typeof process<"u"?process.env:void 0})}function zn($,U){if(U.bunEnv!==void 0)return U.bunEnv[$];if(U.processEnv!==void 0)return U.processEnv[$];return}function Bn($){return $?.development===!0||PC("WEFT_DEV_WARNINGS")==="1"||PC("NODE_ENV")==="development"}function zC($){let J=$?.storage??void 0;if(J===void 0){if(!VC&&Bn($))VC=!0,console.warn("[weft] Engine started with no `storage` configured — 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 JL}if(!$?.compression)return J;return new eD(J,$.compression)}function BC($){return $?.interceptors?[...$.interceptors]:[]}function FL($,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 Wn($){return{retention:T9($?.retention,"options.retention"),retentionSweepIntervalMs:q6($?.retentionSweepInterval,"options.retentionSweepInterval")??tF,retentionSweepBatchSize:$?.retentionSweepBatchSize!==void 0?Math.max(1,Math.floor($.retentionSweepBatchSize)):eF}}function l0($,U){return $??U}function Kn($){return{development:l0($?.development,!1),broadcastEvents:l0($?.broadcastEvents,!1)}}function qn($){return{checkpointHistory:l0($?.checkpointHistory,10),checkpointSizeWarningThreshold:l0($?.checkpointSizeWarningThreshold,65536),maxNestingDepth:l0($?.maxNestingDepth,10)}}function Nn($){return{historyPolicy:Iz($?.history,"options.history"),archiveAdapter:$?.archive??null,payloadSizePolicy:hz($?.payloadSize,"options.payloadSize")}}var FC=15000;function On($){let U=l0($?.detectSecondInstance,!1),J=U?q6($?.secondInstanceHeartbeatInterval,"options.secondInstanceHeartbeatInterval")??FC:FC;return{secondInstanceDetectionEnabled:U,secondInstanceHeartbeatIntervalMs:J}}function WC($,U,J){return{storage:$,getNow:J,resolveWorkflowServices:U?.resolveWorkflowServices??null,onLog:U?.onLog??null,...Kn(U),...qn(U),...Wn(U),...Nn(U),...On(U),...LC(U)}}function An($){let U=Cn($?.workflowExecutionMode),J=Rn($,U);if(!J)return{mode:"inline",workerExecution:null};return Tn(J)}function Cn($){if($===void 0||$==="inline"||$==="worker")return $;throw Error('options.workflowExecutionMode must be "inline" or "worker" when provided')}function Rn($,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 Tn($){let U=MC($.workflowTurnTimeoutMs,"options.workerExecution.workflowTurnTimeoutMs",void 0)??rA,J=MC($.maxProtocolMessageBytes,"options.workerExecution.maxProtocolMessageBytes",void 0)??oA;if(J<ZL)throw Error(`options.workerExecution.maxProtocolMessageBytes must be at least ${ZL}`);return{mode:"worker",workerExecution:$,workflowTurnTimeoutMs:U,maxProtocolMessageBytes:J,requireProtocolVersion:!0,discardOnCancel:!0}}function MC($,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 KC($){let{options:U,getNow:J,maxNestingDepth:G,development:X,broadcastEvents:Q,getRegistration:Z,getComposedWorkflowInterceptor:Y,resolveWorkflowType:_,registerCancelHandler:H,recordFinalizerState:D,getWorkflowServices:L,getLogSink:F}=$,M=An(U);if(M.mode==="worker"){let S=new M3({workerUrl:M.workerExecution.workerUrl,concurrency:M.workerExecution.poolSize??4,smol:M.workerExecution.smol??!1}),h=F?.(),p={broadcastEvents:Q,requireProtocolVersion:M.requireProtocolVersion,discardOnCancel:M.discardOnCancel,workflowTurnTimeoutMs:M.workflowTurnTimeoutMs,maxProtocolMessageBytes:M.maxProtocolMessageBytes,getNow:J,...h!==void 0&&{onLog:h}};return{strategy:new VL(S,p),inlineStrategy:null}}let K=new XL({getRegistration:Z,getNow:J,maxNestingDepth:G,development:X,resolveWorkflowType:_,...dA({getComposedWorkflowInterceptor:Y,registerCancelHandler:H,recordFinalizerState:D,getWorkflowServices:L,getLogSink:F})});return{strategy:K,inlineStrategy:K}}function qC($){if(!$)return null;return new GL(new M3({workerUrl:$.workerUrl,concurrency:$.poolSize??4,smol:$.smol??!1}))}function NC($,U,J){return U?new oD($,U,J):null}var OC,En=0,AC,xn=new Set,W3=new FinalizationRegistry(($)=>{if(En++,$.cleanupInterval!==null)clearInterval($.cleanupInterval),$.cleanupInterval=null;if($.secondInstanceDetectionInterval!==null)clearInterval($.secondInstanceDetectionInterval),$.secondInstanceDetectionInterval=null;if(!$.disposed&&Sn()){if($.testToken!==void 0)xn.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 Sn(){if(OC!==void 0)return OC;return Bun.env.WEFT_DEV_WARNINGS==="1"||Bun.env.NODE_ENV==="development"}function CC(){let $=AC;return AC=void 0,$}function RC($){return typeof $==="function"&&typeof $.name==="string"&&"execute"in $&&typeof $.execute==="function"}function TC($){let U=C$($);return{processPendingUpdatesAfterInlineAdvance:(J)=>U.processPendingUpdatesAfterInlineAdvance(J),swallowPromiseRejection:(J)=>x6(J)}}function EC($,U){return function(){let G=$.deref();if(G===void 0){U.port1.close(),U.port2.close();return}V(G).queuedInlineWorkflowStartFlushScheduled=!1,x6(w8(V(G),TC(G)))}}async function xC($){await $N(V($),TC($))}function SC($,U){return function(){let G=$.deref();if(G===void 0){if(U.cleanupInterval!==null)clearInterval(U.cleanupInterval),U.cleanupInterval=null;return}let X=V(G);yB(X.updateCoordinator,(Q,Z)=>a(G).handleCleanupError(Q,Z))()}}function bC($){return function(){let J=$.deref();if(J===void 0)return null;let G=V(J);if(G.disposed)return null;return G.secondInstanceDetector}}function vC($){if($.cleanupInterval!==null)clearInterval($.cleanupInterval??void 0),$.cleanupInterval=null;if($.cleanupIntervalDisposalTracker!==null)$.cleanupIntervalDisposalTracker.disposed=!0,$.cleanupIntervalDisposalTracker.cleanupInterval=null,W3.unregister($.cleanupIntervalDisposalTracker),$.cleanupIntervalDisposalTracker=null}function K3($){$.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(),UN($),$.scheduler[Symbol.dispose](),$.strategy[Symbol.dispose](),$.activityWorkerDispatcher?.[Symbol.dispose](),$.activityWorkerDispatcher=null,$.inlineStrategy=null,vC($),$.retentionSweepInterval!==null)clearInterval($.retentionSweepInterval??void 0),$.retentionSweepInterval=null;$.nextRetentionSweepAt=null,bn($),vn($),$.handleCache.clear();for(let U of $.resultResolvers.values())U.reject(new c6);$.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 bn($){if($.secondInstanceDetectionInterval!==null)clearInterval($.secondInstanceDetectionInterval??void 0),$.secondInstanceDetectionInterval=null;if($.secondInstanceDetector!==null)$.secondInstanceDetector.stop(),$.secondInstanceDetector=null}function vn($){if($.leaseManager!==null)$.leaseManager.stop(),$.leaseManager=null}function gC($,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}T6(J,$.options.payloadSizePolicy.maxBytes,"finalizer state"),t4($,U,{conditions:[],operations:[{type:"put",key:P.finalizerState(U),value:W(J)}]})}var gn=1000;function IC($){let{storage:U,holderId:J,getNow:G,ttlMs:X,renewIntervalMs:Q,waitTimeoutMs:Z}=$,Y=$.acquirePollIntervalMs??gn,_=Q,H=!1,D=null,L=null,F=null,M=null,K=!1,S=null,h=$.delay??((X$)=>new Promise((h$)=>setTimeout(h$,X$)));function p(X$){if(K)return;K=!0,$.onLeaseLost?.(X$)}async function c(){let X$=await U.get(P.leaseHolder()),h$=await U.get(P.leaseEpoch());return{epochRaw:h$,holderRaw:X$,epoch:h$===null?null:MX(h$),holder:X$===null?null:zX(X$)}}async function I(X$,h$,y$){let v6=G()+X,s1=FH({holderId:J,expiresAt:v6,epoch:y$}),UV=await e(U,[{key:P.leaseEpoch(),expectedValue:X$},{key:P.leaseHolder(),expectedValue:h$}],[{type:"put",key:P.leaseEpoch(),value:PH(y$)},{type:"put",key:P.leaseHolder(),value:s1}]);if(UV)D=y$,L=PH(y$),F=s1;return UV}async function m(){let{epochRaw:X$,holderRaw:h$,epoch:y$,holder:v6}=await c();if(X$!==null&&y$===null)throw new q8('the "lease:epoch" high-water mark is present but does not decode to a valid epoch');if(X$===null&&h$!==null)throw new q8('a "lease:holder" record exists with no "lease:epoch" key (the lease protocol never deletes the epoch)');if(v6!==null&&G()<v6.expiresAt)return!1;let s1=(y$??0)+1;if(s1>=Number.MAX_SAFE_INTEGER)throw new q8(`the next ownership epoch (${s1}) is at or above the safe-integer ceiling and cannot be minted without bricking future boots`);return I(X$,h$,s1)}async function u(){let X$=G(),h$=X$+Z,y$=null,v6=!0;for(;;){if(H)return;if(!v6&&G()>=h$)throw new BX(G()-X$,y$);if(v6=!1,await m())return;let o1=await U.get(P.leaseHolder());if(y$=o1===null?null:zX(o1)?.holderId??null,G()>=h$)throw new BX(G()-X$,y$);await h(Y)}}async function R$(){if(H||K||D===null||F===null)return;let X$=G()+X,y$=FH({holderId:J,expiresAt:X$,epoch:D}),v6;try{v6=await e(U,[{key:P.leaseHolder(),expectedValue:F}],[{type:"put",key:P.leaseHolder(),value:y$}])}catch{let o1=zX(F)?.expiresAt??0;if(G()>=o1-_)p("renewal-unconfirmable");return}if(v6){F=y$;return}p("deposed")}function b6(){if(S!==null)return;S=R$().catch(()=>{}).finally(()=>{S=null})}function r1(){if(H||M!==null)return;M=setInterval(()=>{b6()},Q),M.unref?.()}function Hx(){return L===null?null:L.slice()}function $V(){if(M!==null)clearInterval(M),M=null}async function Dx(){if(H=!0,$V(),S!==null)await S;if(F===null)return;try{if(await e(U,[{key:P.leaseHolder(),expectedValue:F}],[{type:"delete",key:P.leaseHolder()}]))F=null}catch{}}function Lx(){H=!0,$V()}return{acquire:u,startRenewal:r1,renewOnce:R$,currentEpochBytes:Hx,release:Dx,stop:Lx}}var In=/^(?:0|[1-9]\d*)$/,hn=["wf:","op:","schedule:","ev:","sig:","upd:","idx:"];async function hC($){let U=await $.get($j);if(U!==null){let J=new TextDecoder().decode(U);if(!In.test(J))throw new O1(null,A1);let G=Number(J);if(!Number.isSafeInteger(G))throw new O1(null,A1);if(G!==A1)throw new O1(G,A1);return}for(let J of hn)for await(let G of $.scan(J,{limit:1}))throw new O1(null,A1);await $.put($j,new TextEncoder().encode(String(A1)))}async function yC($,U,J,G){if(J==="activityProgress")return $.heartbeatDetails.get(U);let X=$.inlineStrategy;if(!X)throw Error("Workflow queries are not supported when using the worker execution strategy.");let Q=X.getContext(U)??X.getParkedContext(U);if(!Q)return;let Z=Q.queryHandlers.get(J);if(Z)return Z(G);let Y=Q.exposedAccessors.get(J);if(!Y)return;return Y()}var yn=new TextEncoder,mn=new TextDecoder;function kn($){return yn.encode(JSON.stringify($))}async function q3($){try{await $()}catch{}}function fn($){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 un($){let U;try{U=JSON.parse(mn.decode($))}catch{return null}if(typeof U!=="object"||U===null)return null;let J=U;return fn(J)?J:null}var wn="WeftSecondInstanceWarning",cn=10,mC=2;function kC($){let{storage:U,instanceId:J,getNow:G,intervalMs:X}=$,Q=$.warn??((c)=>process.emitWarning(c,wn)),Z=X*(mC+1),Y=0,_=!1,H=!1,D=new Map,L=new Set;async function F(){let c=[];for await(let[I,m]of U.scan(P.livenessPrefix())){let u=un(m);if(u!==null&&u.instanceId!==J)c.push({key:I,heartbeat:u})}return c}async function M(c,I){let m=I-Z*cn;for(let u of c)if(u.heartbeat.heartbeatAt<m)await q3(()=>U.delete(u.key))}function K(c){let I=new Set;for(let{key:m,heartbeat:u}of c){if(P.liveness(u.instanceId)!==m)continue;I.add(u.instanceId);let R$=D.get(u.instanceId),r1=R$!==void 0&&u.sequence>R$.sequence?R$.advances+1:0;if(D.set(u.instanceId,{sequence:u.sequence,advances:r1}),r1>=mC&&!L.has(u.instanceId))L.add(u.instanceId),Q(`another engine instance (${u.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 m of Array.from(D.keys()))if(!I.has(m))D.delete(m)}let S=!1;async function h(){if(H||S)return;S=!0;let c=!1;try{let I=G(),m=await F();if(!_)_=!0,await M(m,I);if(K(m),H)return;Y+=1;let u={instanceId:J,heartbeatAt:I,sequence:Y};c=!0,await q3(()=>U.put(P.liveness(J),kn(u)))}finally{if(S=!1,c&&H)await q3(()=>U.delete(P.liveness(J)))}}async function p(){H=!0,await q3(()=>U.delete(P.liveness(J)))}return{tick:h,stop:p}}function fC($,U){return function(){let G=$();if(G===null){if(U.secondInstanceDetectionInterval!==null)clearInterval(U.secondInstanceDetectionInterval),U.secondInstanceDetectionInterval=null;return}G.tick().catch(()=>{})}}var pn=Symbol("engineParkedWorkflowCountForTesting"),dn=Symbol("engineSignalWaiterCountForTesting"),ln=Symbol("engineSleepResolverCountForTesting");class uC extends EventTarget{static async create($){let U=new uC($);try{await hC(V(U).storage);for(let[J,G]of PL($.activities)){if(J!==G.name)throw new fU("activity",J,G.name);U.#B(G)}for(let[J,G]of PL($.workflows)){if(J!==G.name)throw new fU("workflow",J,G.name);U.register(G)}if(await U.#$(),$.recover!==!1)await U.recoverAll($.acknowledgeUnknownWorkflowTypes!==void 0?{acknowledgeUnknownWorkflowTypes:$.acknowledgeUnknownWorkflowTypes}:{}),V(U).scheduler.start()}catch(J){throw await U[Symbol.asyncDispose](),J}return U}constructor($){super();YN(this),V(this).registrations=new Map,V(this).workflowTypesByHandler=new WeakMap;let U=zC($),J=$?.getNow??Date.now,G=WC(U,$,J),X=KC({options:$,getNow:J,maxNestingDepth:G.maxNestingDepth,development:G.development,broadcastEvents:G.broadcastEvents,getRegistration:V(this).registrations.get.bind(V(this).registrations),getComposedWorkflowInterceptor:()=>_6(V(this)),resolveWorkflowType:this.#P.bind(this),registerCancelHandler:(H,D)=>k8(V(this),H,D),recordFinalizerState:(H,D)=>gC(V(this),H,D),getWorkflowServices:(H)=>V(this).workflowServices.get(H),getLogSink:()=>G.onLog??void 0});V(this).storage=U,V(this).abortController=new AbortController,V(this).disposed=!1,V(this).handleCache=new Map,V(this).resultResolvers=new Map,V(this).signalWaiters=new Map,V(this).signalWaitersByWorkflow=new Map,V(this).conditionWaiters=new Map,V(this).updateWaiters=new Map,V(this).updateWaitersByWorkflow=new Map,V(this).sleepResolvers=new Map,V(this).sleepResolversByWorkflow=new Map,V(this).interceptors=BC($),V(this).composedWorkflowInterceptor=void 0,V(this).composedActivityInterceptor=void 0,V(this).updateCoordinator=new XH(U),V(this).activityRegistry=new l2,V(this).activityRegistriesByWorkflow=new Map,V(this).workflowDefinitionsByName=new Map,V(this).workflowTypeByWorkflowId=new Map,V(this).activityWorkerDispatcher=null,V(this).checkpoints=new Map,V(this).broadcastChannel=null,V(this).pendingNestingDepth=void 0,V(this).pendingParentHeaders=void 0,V(this).pendingExecutionStateOwnerId=void 0,V(this).workflowNestingDepths=new Map,V(this).workflowHeaders=new Map,V(this).workflowStateWriteChains=new Map,V(this).finalizationRegistry=new FinalizationRegistry(hB(V(this).handleCache)),V(this).options=G,V(this).scheduler=new _9({storage:U,onTimerFired:(H)=>lH(V(this),H,this.#D()),getNow:J,commitTimerCleanup:(H)=>G$(V(this),H,[],()=>Error("Timer cleanup lost its fenced CAS race"))}),V(this).strategy=X.strategy,V(this).inlineStrategy=X.inlineStrategy,V(this).queuedInlineWorkflowStarts=[],V(this).queuedInlineWorkflowStartIds=new Set,V(this).queuedOrLaunchingInlineWorkflowStartIds=new Set,V(this).queuedInlineWorkflowStartFlushScheduled=!1;let Q=new WeakRef(this),Z=X.inlineStrategy!==null?new MessageChannel:null;if(V(this).queuedInlineWorkflowStartChannel=Z,Z!==null)Z.port1.onmessage=EC(Q,Z);V(this).heartbeatDetails=new Map,V(this).lastHeartbeatDetailsByStep=new Map,V(this).workflowServices=new Map,V(this).pendingAsyncActivities=new Map,V(this).pendingAsyncActivityResolutions=new Map,V(this).pendingStarts=new Set,V(this).pendingScheduleCreations=new Set,V(this).workflowsNeedingTerminalCleanup=new Set,V(this).reviewCoordinator=new GH(U,J),V(this).reviewWaiters=new Map,V(this).reviewWaitersByWorkflow=new Map,V(this).reviewEscalationHandlers=new Map,V(this).workflowReviewIds=new Map,V(this).parkedInlineWorkflows=new Set,V(this).terminalizingWorkflows=new Set,V(this).deliveredPendingUpdateIds=new Map,V(this).cancelHandlersByWorkflow=new Map,V(this).reviewTimerIds=new Map,V(this).pendingWebhooks=new Set,V(this).pendingTimelineEntries=new Map,V(this).pendingAtomicWorkflowCommitSideEffects=new Map,V(this).cleanupIntervalDisposalTracker=null;let Y={disposed:!1,cleanupInterval:null,secondInstanceDetectionInterval:null,testToken:CC()},_=setInterval(SC(Q,Y),60000);Y.cleanupInterval=_,V(this).cleanupInterval=_,V(this).cleanupIntervalDisposalTracker=Y,W3.register(this,Y,Y),V(this).retentionSweepInterval=null,V(this).retentionSweepInFlight=null,V(this).nextRetentionSweepAt=null,V(this).secondInstanceDetectionInterval=null,V(this).secondInstanceDetector=null,V(this).leaseManager=null,V(this).inFlightLeaseAcquire=null,V(this).deposed=!1,V(this).tearDownAfterDeposition=()=>{this.#U()},V(this).eventLogHeads=new Map,V(this).workflowFeedListeners=new Map,V(this).workflowVersionTuples=new Map,V(this).workflowVisibilityWatermark=void 0,V(this).workflowVisibilityWatermarkExpiresAt=void 0,V(this).activityWorkerDispatcher=qC($?.activityExecution),V(this).strategy.onMessage(this.#F.bind(this)),V(this).alertManager=NC(this,$?.alerts,J),this.#Q(),this.#J()}addEventListener($,U,J){super.addEventListener($,U,J)}removeEventListener($,U,J){super.removeEventListener($,U,J)}async#$(){let $=V(this);if($.options.ownershipMode!=="lease")return;if($.disposed)throw new c6;if($.inFlightLeaseAcquire!==null){await $.inFlightLeaseAcquire;return}if($.leaseManager!==null)return;J$($.storage,"conditionalBatch","ownership: 'lease'");let U=IC({storage:$.storage,holderId:crypto.randomUUID(),getNow:$.options.getNow,ttlMs:$.options.leaseTtlMs,renewIntervalMs:$.options.leaseRenewIntervalMs,waitTimeoutMs:$.options.leaseWaitTimeoutMs,onLeaseLost:(G)=>{if(G==="deposed"){K8($);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 — keep infrastructure-level single-instance enforcement in place.",pW)}});$.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 c6}U.startRenewal()})();$.inFlightLeaseAcquire=J;try{await J}finally{if($.inFlightLeaseAcquire===J)$.inFlightLeaseAcquire=null}}#U(){let $=V(this);if($.disposed)return;let U=$.leaseManager;K3($),U?.release().catch(()=>{})}#J(){let $=V(this);if(!$.options.secondInstanceDetectionEnabled)return;let U=kC({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(fC(bC(G),J),$.options.secondInstanceHeartbeatIntervalMs);$.secondInstanceDetectionInterval=X,J.secondInstanceDetectionInterval=X}#G(){return D3(V(this))}#X(){L3(V(this))}#Q(){V3(V(this),{hasConfiguredRetention:()=>this.#G(),runRetentionSweep:()=>this.#Z(),setNextRetentionSweepAt:()=>this.#X()})}async#Z(){return P3(V(this),($,U)=>this.#_().handleCleanupError($,U),($)=>s6(V(this),$,this.#_()))}#Y(){return C$(this)}#_(){return a(this)}#V(){return $3(this)}#L(){return t6(this)}#H(){return e8(this)}#j(){return w0(this)}#D(){return Y3(this)}#P($){return nX(V(this),$,this.#V())}get state(){let $=V(this).storage;return{execution:(U,J,G)=>new U0($,P.stateExecution(U,J),G),workflow:(U,J,G)=>new U0($,P.stateWorkflow(U,J),G)}}async#F($){return EA(V(this),$,this.#H())}#z($){return $1(V(this),$,this.#L())}register($){if(RC($))return this.#B($),B3(this);return LN(V(this),$,this.#V()),B3(this)}registerWorkflows($){for(let[U,J]of Object.entries($)){if(U!==J.name)throw new fU("workflow",U,J.name);this.register(J)}return B3(this)}addInterceptor($){V(this).interceptors.push($),V(this).composedWorkflowInterceptor=void 0,V(this).composedActivityInterceptor=void 0}#B($){V(this).activityRegistry.register($.name,$)}resolveRegisteredActivity($){return V(this).activityRegistry.resolve($)}registerActivityFunction($,U,J){V(this).activityRegistry.register($,U,J)}unregisterRegisteredActivity($){V(this).activityRegistry.unregister($)}getWorkflowDefinition($){let U=V(this).registrations.get($);return U===void 0?void 0:FL($,U)}listWorkflowDefinitions(){return[...V(this).registrations.entries()].map(([$,U])=>FL($,U))}getActivityDefinition($){return V(this).activityRegistry.getDefinition($)}listActivityDefinitions(){return V(this).activityRegistry.listDefinitions()}async start($,U,J){if(O8(V(this)),J?.idempotencyKey!==void 0)return GD(V(this),$,U,J,this.#Y());return Q6(V(this),$,U,J,void 0,this.#Y())}async startOrSignal($,U,J,G){return O8(V(this)),XD(V(this),$,U,J,G,this.#W())}#W(){return{...this.#Y(),signalExistingWorkflow:($,U,J,G)=>this.signal($,U,J,{signalId:G})}}getHandle($){let U=V(this).handleCache.get($);if(U){let J=U.ref.deref();if(J)return J}return IX(V(this),$)}async list($,U){return LK(V(this),$,U)}async aggregate($,U){return ZB(V(this),$,U)}getRetentionOverview(){return xA(V(this),($)=>iD(V(this),$))}async purge($){return xK(V(this),$,(U)=>s6(V(this),U,this.#_()))}async cancelAll($,U){return SK(V(this),$,U)}async retryFailedAll($,U){return bK(V(this),$,U)}async signalAll($,U,J,G){if(G===void 0)return kH(V(this),$,U,J);return kH(V(this),$,U,J,G)}async deleteAll($,U){return vK(V(this),$,(J)=>s6(V(this),J,this.#_()),U)}async tagAll($,U,J){return gK(V(this),$,U,J)}async untagAll($,U,J){return IK(V(this),$,U,J)}async schedule($,U,J,G){if(typeof $==="object"){let X=$,Q=typeof X.workflow==="string"?X.workflow:X.workflow.name,Z=X.every!==void 0?{every:X.every}:{cron:X.cron??""};return vD(V(this),Q,X.input,Z,{...X.id!==void 0&&{id:X.id},...X.overlapPolicy!==void 0&&{overlap:X.overlapPolicy},...X.backfill!==void 0&&{backfill:X.backfill},...X.jitter!==void 0&&{jitter:X.jitter}})}if(J===void 0)throw Error("A cron string or schedule spec must be provided when scheduling by workflow type.");return vD(V(this),$,U,J,G)}async getSchedule($){let U=J1($,"scheduleId"),J=await p1(V(this),U);return J?nN(J):null}async listSchedules($){return lN(V(this),$)}async pauseSchedule($){return rN(V(this),$)}async resumeSchedule($){return oN(V(this),$)}async cancelSchedule($){return sN(V(this),$)}async updateSchedule($,U){return aN(V(this),$,U)}[zH]($){return yK(V(this),$)}[pn](){return V(this).parkedInlineWorkflows.size}[dn](){return V(this).signalWaiters.size}[ln](){return V(this).sleepResolvers.size}async signal($,U,J,G){return EW(V(this),$,i$(U),J,{loadWorkflowState:(X)=>l(V(this),X),dispatchEvent:(X)=>this.dispatchEvent(X),broadcast:(X)=>this.#z(X),getComposedInterceptor:()=>_6(V(this)),resumeParkedInlineWorkflow:(X)=>x6(H3(V(this),X,this.#H()))},G)}async update($,U,J,G){return vW(V(this),$,i$(U),J,G,this.#j())}async query($,U,J){return yC(V(this),$,i$(U),J)}async getStreamChunks($,U,J){return jA(V(this),$,U,J)}async getOffload($,U){return eO(V(this),$,U)}async fork($,U){return O8(V(this)),HD(V(this),$,U,this.#Y())}async resume($){return O8(V(this)),lX(V(this),$,this.#Y())}async recoverAll($){if(await this.#$(),V(this).disposed)throw new c6;return await dB(V(this)),await iN(V(this)),jD(V(this),this.#Y(),$)}async completeAsyncActivity($,U){await nB(V(this),$,U,{feedOperationResult:(J,G)=>Y6(V(this),J,G),finalizeTimeline:(J,G,X)=>S6(V(this),J,G,X)})}async failAsyncActivity($,U){await oB(V(this),$,U,{feedOperationResult:(J,G,X)=>Y6(V(this),J,G,X),finalizeTimeline:(J,G,X)=>S6(V(this),J,G,X)})}async cancel($){await FD(V(this),$,this.#_())}async suspend($){await OD(V(this),$,this.#_())}async timeout($){await MD(V(this),$,this.#_())}async get($){let U=await l(V(this),$);if(U?.status==="running"&&JN(V(this),$))return{...U,status:"pending"};return U}async getCurrentCheckpointStep($){let U=V(this).checkpoints.get($);if(U!==void 0)return U.step;let J=await V(this).storage.get(P.checkpoint($));if(J===null)return null;return D$(J).step}async getAttributes($){return zK(V(this),$)}async setAttributes($,U){return BK(V(this),$,U)}async addTags($,...U){return WK(V(this),$,...U)}async removeTags($,...U){return KK(V(this),$,...U)}async getEvents($){return SA(V(this),$)}async*replayWorkflowFeed($,U,J){yield*ZA(V(this),$,U,J)}async snapshotWorkflowFeedTail($,U){return YA(V(this),$,U)}subscribeWorkflowFeedCommits($,U,J){return _A(V(this),$,U,J)}async listCheckpoints($){return bA(V(this),$)}async getCheckpointAt($,U){return vA(V(this),$,U)}async getTimeline($){return gA(V(this),$)}async replayTo($,U){return IA(V(this),$,U)}async listReviews($){return KN(V(this),$)}async getReview($,U){return qN(V(this),$,U)}async submitReview($,U){return NN(V(this),$,U,{dispatchEvent:this.dispatchEvent.bind(this)})}async getUpdateResult($){return gW(V(this),$)}async submitCoordinatedUpdate($,U,J,G){return IW(V(this),$,U,J,G,this.#j())}[Symbol.dispose](){let $=V(this).leaseManager;K3(V(this)),$?.release()}async[Symbol.asyncDispose](){if(!V(this).disposed){let $=V(this).leaseManager;try{await xC(this)}finally{K3(V(this)),await V(this).inFlightLeaseAcquire?.catch(()=>{}),await $?.release()}return}this[Symbol.dispose]()}get storage(){return V(this).storage}get scheduler(){return V(this).scheduler}async fireTimer($){await lH(V(this),$,this.#D())}}var wC={kind:"public"},cC={http:!0,jsonRpcHttp:!0,jsonRpcStdio:!0,jsonRpcWebSocket:!0},nn=j.object({token:j.string().min(1),result:j.unknown().optional()}),rn=j.object({token:j.string().min(1),error:j.object({message:j.string(),name:j.string().optional()})}),pC=j.object({ok:j.literal(!0)});function on($){let U=Error($.error.message);if($.error.name!==void 0)U.name=$.error.name;return U}function dC($,U,J){if(J instanceof P8)z6($,{code:"NotFound",message:J.message,data:{resource:"async-activity",identifier:U}});if(J instanceof L8)z6($,C(J.message));throw J}var ML=q({name:"weft.activities.complete",mcpExposable:!1,summary:"Complete a deferred activity by task token",description:'Resolve an out-of-band ("async") activity with a result, resuming its parked workflow as though the activity had returned that result inline. Requires the durable task token announced through the `activity:async-pending` event. Faults with NotFound when the token is unknown or already completed/failed (tokens are single-use), and InvalidParams when the result exceeds the payload size limit.',destructive:!0,tags:["Activities"],inputSchema:nn,outputSchema:pC,access:wC,producibleFaults:["NotFound","InvalidParams"],transports:cC,unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let J=U;try{await J.completeAsyncActivity($.token,$.result)}catch(G){dC(ML,$.token,G)}return{ok:!0}}}),zL=q({name:"weft.activities.fail",mcpExposable:!1,summary:"Fail a deferred activity by task token",description:'Fail an out-of-band ("async") activity, throwing the supplied error into its '+"parked workflow at the deferred step — identical to an inline activity that threw, "+"so the workflow’s own try/catch and retry policy apply unchanged. Requires the "+"durable task token from the `activity:async-pending` event. Faults with NotFound when the token is unknown or already completed/failed (tokens are single-use), and InvalidParams when the failure message exceeds the payload size limit.",destructive:!0,tags:["Activities"],inputSchema:rn,outputSchema:pC,access:wC,producibleFaults:["NotFound","InvalidParams"],transports:cC,unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let J=U;try{await J.failAsyncActivity($.token,on($))}catch(G){dC(zL,$.token,G)}return{ok:!0}}});function lC($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}async function iC($,U){let J=await Y$($,U).catch((G)=>{if(t(G))throw G;return null});if(typeof J!=="object"||J===null||Array.isArray(J))throw C("Request body must be a JSON object.");return J}var nC={method:"POST",path:"/v1/activities/complete",pathParamNames:[],operationName:"weft.activities.complete",inputSources:{token:{kind:"body-field",bodyField:"token"},result:{kind:"body-field",bodyField:"result"}},extractInput:async($,U,J)=>{let G=await iC($,J);return{token:G.token,..."result"in G?{result:G.result}:{}}},success:{kind:"json",status:200},shapeSuccess:($)=>lC($),shapeFault:R},rC={method:"POST",path:"/v1/activities/fail",pathParamNames:[],operationName:"weft.activities.fail",inputSources:{token:{kind:"body-field",bodyField:"token"},error:{kind:"body-field",bodyField:"error"}},extractInput:async($,U,J)=>{let G=await iC($,J);return{token:G.token,error:G.error}},success:{kind:"json",status:200},shapeSuccess:($)=>lC($),shapeFault:R};var sn=`Field "filter.failureCategory" must be one of ${a2.join(", ")}`,oC='Field "filter.failureCategory" must be a string or an array of strings';function aC($){if($===void 0)return;if(typeof $==="string")return sC($);if(Array.isArray($)){if(!$.every((U)=>typeof U==="string"))throw Error(oC);return $.map(sC)}throw Error(oC)}function sC($){if(d6($))return $;throw Error(sn)}var tC=j.custom(($)=>typeof $==="string"),an=j.custom(($)=>{if(typeof $==="string"||typeof $==="number"||typeof $==="boolean")return!0;return Array.isArray($)&&$.every((U)=>typeof U==="string"||typeof U==="number"||typeof U==="boolean")}),N3=j.custom(($)=>typeof $==="string"||typeof $==="number"||typeof $==="boolean"),tn=j.object({key:j.string().min(1),value:an.optional(),gt:N3.optional(),lt:N3.optional(),gte:N3.optional(),lte:N3.optional()}),eC=j.custom(d6),BL=j.object({gte:j.number().optional(),gt:j.number().optional(),lte:j.number().optional(),lt:j.number().optional()}),j6=j.object({status:j.union([tC,j.array(tC)]).optional(),type:j.string().optional(),tags:j.array(j.string()).optional(),attributes:j.array(tn).optional(),limit:j.number().int().min(0).optional(),offset:j.number().int().min(0).optional(),idPrefix:j.string().optional(),failureCategory:j.union([eC,j.array(eC)]).optional(),createdAt:BL.optional(),updatedAt:BL.optional(),executionDeadline:BL.optional()}),J4=j.object({dryRun:j.boolean().optional(),confirmationToken:j.string().min(1).max(p2).optional(),requestId:j.string().min(1).max(N1).optional(),bulkConcurrency:j.number().int().min(1).optional()}),G4={kind:"scoped",scopes:{kind:"anyOf",scopes:["workflows:admin"]}};function $$($){return $ instanceof Error?$.message:String($)}function UR($){return{code:"Unprocessable",message:$,data:{reason:$}}}function X4($){return{code:"EngineFailure",message:$,data:{}}}async function H6($,U){try{let J=await K4($,U);return J.trim()===""?void 0:JSON.parse(J)}catch(J){if(t(J))throw J;throw C("Invalid JSON body")}}function en($){if(typeof $==="string"||typeof $==="boolean")return!0;if(typeof $==="number")return Number.isFinite($);return Array.isArray($)&&$.every((U)=>typeof U==="string")}function $r($){if(!Array.isArray($))throw Error('Field "filter.attributes" must be an array');return $.map((U,J)=>{if(typeof U!=="object"||U===null)throw Error(`Field "filter.attributes[${J}]" must be an object`);let G=U,X=G.key;if(typeof X!=="string"||X.length===0)throw Error(`Field "filter.attributes[${J}].key" must be a non-empty string`);let Q={key:X};for(let Z of["value","gt","lt","gte","lte"]){let Y=G[Z];if(Y===void 0)continue;if(!en(Y))throw Error(`Field "filter.attributes[${J}].${Z}" must be a string, number, boolean, or scalar array`);if(Z==="value"){Q.value=Y;continue}if(Array.isArray(Y))throw Error(`Field "filter.attributes[${J}].${Z}" must be a string, number, or boolean`);Q[Z]=Y}return Q})}function Ur($){if($===void 0)return;if(typeof $==="string")return $;if(Array.isArray($)&&$.every((U)=>typeof U==="string"))return $;throw Error('Field "filter.status" must be a string or an array of strings')}function Jr($){if($===void 0)return;if(typeof $==="string")return $;throw Error('Field "filter.type" must be a string')}function Gr($){if($===void 0)return;return j$($,'Field "filter.tags"')}function $R($,U){if($===void 0)return;if(typeof $!=="number"||!Number.isFinite($)||$<0)throw Error(`Field "filter.${U}" must be a non-negative number`);return Math.floor($)}var Xr=[($,U)=>{let J=Ur(U.status);if(J!==void 0)$.status=J},($,U)=>{let J=Jr(U.type);if(J!==void 0)$.type=J},($,U)=>{let J=Gr(U.tags);if(J!==void 0)$.tags=J},($,U)=>{if(U.attributes!==void 0)$.attributes=$r(U.attributes)},($,U)=>{let J=$R(U.limit,"limit");if(J!==void 0)$.limit=J},($,U)=>{let J=$R(U.offset,"offset");if(J!==void 0)$.offset=J},($,U)=>{let J=U.idPrefix;if(typeof J==="string")$.idPrefix=J},($,U)=>{let J=aC(U.failureCategory);if(J!==void 0)$.failureCategory=J},($,U)=>{let J=i0(U.createdAt);if(J!==void 0)$.createdAt=J},($,U)=>{let J=i0(U.updatedAt);if(J!==void 0)$.updatedAt=J},($,U)=>{let J=i0(U.executionDeadline);if(J!==void 0)$.executionDeadline=J}];function D6($){if($===void 0)return{};if(typeof $!=="object"||$===null)throw Error("Request body must be a JSON object");let J=$.filter;if(J===void 0)return{};if(typeof J!=="object"||J===null)throw Error('Field "filter" must be an object');let G=J,X={};for(let Q of Xr)Q(X,G);return X}var Qr=["gte","gt","lte","lt"];function i0($){if($===void 0)return;if(typeof $!=="object"||$===null)throw Error("Time-range filter must be an object with gte/gt/lte/lt numeric bounds");let U=$,J={};for(let G of Qr){let X=U[G];if(X===void 0)continue;if(typeof X!=="number"||!Number.isFinite(X))throw Error(`Time-range bound "${G}" must be a finite number`);J[G]=X}return Object.keys(J).length>0?J:void 0}function A3($){let U={};return Zr(U,$),_r(U,$),jr(U,$),U}function Zr($,U){if(U.status!==void 0)$.status=U.status;if(U.type!==void 0)$.type=U.type;if(U.tags!==void 0)$.tags=U.tags;if(U.attributes!==void 0)$.attributes=U.attributes.map(Yr);if(U.limit!==void 0)$.limit=U.limit;if(U.offset!==void 0)$.offset=U.offset}function Yr($){let U={key:$.key};if($.value!==void 0)U.value=$.value;if($.gt!==void 0)U.gt=O3($.gt,"gt");if($.lt!==void 0)U.lt=O3($.lt,"lt");if($.gte!==void 0)U.gte=O3($.gte,"gte");if($.lte!==void 0)U.lte=O3($.lte,"lte");return U}function O3($,U){if(Array.isArray($))throw Error(`Field "filter.attributes[].${U}" must be a string, number, or boolean`);return $}function _r($,U){if(U.idPrefix!==void 0)$.idPrefix=U.idPrefix;if(U.failureCategory!==void 0)$.failureCategory=U.failureCategory}function jr($,U){let J=i0(U.createdAt);if(J!==void 0)$.createdAt=J;let G=i0(U.updatedAt);if(G!==void 0)$.updatedAt=G;let X=i0(U.executionDeadline);if(X!==void 0)$.executionDeadline=X}function Q4($){if($===void 0)return{};let U=Dr($),J=Lr(U,"dryRun"),G=JR(U,"confirmationToken"),X=Pr(U),Q=Vr(U,"bulkConcurrency");return{...J===void 0?{}:{dryRun:J},...G===void 0?{}:{confirmationToken:G},...X===void 0?{}:{requestId:X},...Q===void 0?{}:{bulkConcurrency:Q}}}function Z4($,U){let J=Hr(U);if($.dryRun===!0)return{dryRun:!0,principal:J,...$.requestId===void 0?{}:{requestId:$.requestId},...$.bulkConcurrency===void 0?{}:{bulkConcurrency:$.bulkConcurrency}};if($.confirmationToken===void 0)throw C('Field "confirmationToken" is required after a dry run');return{confirmationToken:$.confirmationToken,principal:J,...$.requestId===void 0?{}:{requestId:$.requestId},...$.bulkConcurrency===void 0?{}:{bulkConcurrency:$.bulkConcurrency}}}function Hr($){if($.method==="unauthenticated")return{method:"unauthenticated"};return{method:$.method,...$.subject===void 0?{}:{subject:$.subject}}}function Dr($){if(typeof $!=="object"||$===null||Array.isArray($))throw Error("Request body must be a JSON object");return $}function Lr($,U){let J=$[U];if(J===void 0)return;if(typeof J==="boolean")return J;throw Error(`Field "${U}" must be a boolean`)}function Vr($,U){let J=$[U];if(J===void 0)return;if(typeof J==="number"&&Number.isSafeInteger(J)&&J>=1)return J;throw Error(`Field "${U}" must be a positive integer`)}function JR($,U){let J=$[U];if(J===void 0)return;if(typeof J==="string"&&J.length>0)return J;throw Error(`Field "${U}" must be a non-empty string`)}function Pr($){let U=JR($,"requestId");if(U===void 0)return;if(U.length<=N1)return U;throw Error(`Field "requestId" must be at most ${N1} characters`)}function Y4($){let U;if($.tags!==void 0)try{U=j$($.tags,'Field "filter.tags"')}catch(G){throw C($$(G))}let J=A3(U===void 0?$:{...$,tags:U});try{o6(J)}catch(G){throw C($$(G))}return J}function L6($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}var Fr=j6.merge(J4),Mr=j.unknown(),GR=q({name:"weft.workflows.bulk.cancel",mcpExposable:!1,summary:"Cancel workflows in bulk",destructive:!0,tags:["Workflows"],inputSchema:Fr,outputSchema:Mr,access:G4,transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U,principal:J})=>{let G=U,X=Y4($),Q=Z4($,J);try{if(Q.dryRun===!0)return await G.cancelAll(X,Q);return await G.cancelAll(X,Q)}catch(Z){if(Z instanceof w$)throw C(Z.message);throw X4($$(Z))}}}),XR={method:"POST",path:"/v1/workflows/bulk/cancel",pathParamNames:[],operationName:"weft.workflows.bulk.cancel",inputSources:{},extractInput:async($,U,J)=>{let G=await H6($,J);try{return{...D6(G),...Q4(G)}}catch(X){throw C($$(X))}},success:{kind:"json",status:200},shapeSuccess:($)=>L6($),shapeFault:R};var zr=j6.merge(J4),Br=j.unknown(),QR=q({name:"weft.workflows.bulk.delete",mcpExposable:!1,summary:"Delete terminal workflows in bulk",destructive:!0,tags:["Workflows"],inputSchema:zr,outputSchema:Br,access:G4,producibleFaults:["Unprocessable"],transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U,principal:J})=>{let G=U,X=Y4($),Q=Z4($,J);try{if(Q.dryRun===!0)return await G.deleteAll(X,Q);return await G.deleteAll(X,Q)}catch(Z){if(Z instanceof w$)throw C(Z.message);if(Z instanceof p4)throw UR(Z.message);throw X4($$(Z))}}}),ZR={method:"DELETE",path:"/v1/workflows/bulk",pathParamNames:[],operationName:"weft.workflows.bulk.delete",inputSources:{},extractInput:async($,U,J)=>{let G=await H6($,J);try{return{...D6(G),...Q4(G)}}catch(X){throw C($$(X))}},success:{kind:"json",status:200},shapeSuccess:($)=>L6($),shapeFault:R};var Wr=j.object({filter:j6.optional(),tags:j.array(j.string()),operation:j.enum(["add","remove"])}).merge(J4),Kr=j.unknown(),YR=q({name:"weft.workflows.bulk.tags",mcpExposable:!1,summary:"Add or remove workflow tags in bulk",destructive:!0,tags:["Workflows"],inputSchema:Wr,outputSchema:Kr,access:G4,transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U,principal:J})=>{let G=U,X=Y4($.filter??{}),Q;try{Q=j$($.tags,'Field "tags"')}catch(Y){throw C($$(Y))}let Z=Z4($,J);try{return await qr(G,X,Q,$.operation,Z)}catch(Y){if(Y instanceof w$)throw C(Y.message);throw X4($$(Y))}}});async function qr($,U,J,G,X){if(X.dryRun===!0)return G==="add"?await $.tagAll(U,J,X):await $.untagAll(U,J,X);return G==="add"?await $.tagAll(U,J,X):await $.untagAll(U,J,X)}var _R={method:"PATCH",path:"/v1/workflows/bulk/tags",pathParamNames:[],operationName:"weft.workflows.bulk.tags",inputSources:{filter:{kind:"body-field",bodyField:"filter"},tags:{kind:"body-field",bodyField:"tags"},operation:{kind:"body-field",bodyField:"operation"}},extractInput:async($,U,J)=>{let G=await H6($,J);if(G===void 0||typeof G!=="object"||G===null||Array.isArray(G))throw C("Request body must be a JSON object");let X=G,Q;try{Q={...D6(X)}}catch(_){throw C($$(_))}let Z;try{Z=j$(X.tags,'Field "tags"')}catch(_){throw C($$(_))}let Y=X.operation;if(Y!=="add"&&Y!=="remove")throw C('Field "operation" must be "add" or "remove"');return{filter:Q,tags:Z,operation:Y,...Q4(X)}},success:{kind:"json",status:200},shapeSuccess:($)=>L6($),shapeFault:R};var Nr=j6.merge(J4),Or=j.unknown(),jR=q({name:"weft.workflows.bulk.retryfailed",mcpExposable:!1,summary:"Retry failed workflows in bulk",destructive:!0,tags:["Workflows"],inputSchema:Nr,outputSchema:Or,access:G4,transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U,principal:J})=>{let G=U,X=Y4($),Q=Z4($,J);try{if(Q.dryRun===!0)return await G.retryFailedAll(X,Q);return await G.retryFailedAll(X,Q)}catch(Z){if(Z instanceof w$)throw C(Z.message);throw X4($$(Z))}}}),HR={method:"POST",path:"/v1/workflows/bulk/retry-failed",pathParamNames:[],operationName:"weft.workflows.bulk.retryfailed",inputSources:{},extractInput:async($,U,J)=>{let G=await H6($,J);try{return{...D6(G),...Q4(G)}}catch(X){throw C($$(X))}},success:{kind:"json",status:200},shapeSuccess:($)=>L6($),shapeFault:R};var Ar=j6.extend({name:j.string().min(1),payload:j.unknown().optional()}).merge(J4),Cr=j.unknown(),DR=q({name:"weft.workflows.bulk.signal",mcpExposable:!1,summary:"Signal workflows in bulk",destructive:!0,tags:["Workflows"],inputSchema:Ar,outputSchema:Cr,access:G4,transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U,principal:J})=>{let G=U,X=Y4($),Q=Z4($,J);try{if(Q.dryRun===!0)return await G.signalAll(X,$.name,$.payload,Q);return await G.signalAll(X,$.name,$.payload,Q)}catch(Z){if(Z instanceof w$)throw C(Z.message);throw X4($$(Z))}}}),LR={method:"POST",path:"/v1/workflows/bulk/signal",pathParamNames:[],operationName:"weft.workflows.bulk.signal",inputSources:{name:{kind:"body-field",bodyField:"name"},payload:{kind:"body-field",bodyField:"payload"}},extractInput:async($,U,J)=>{let G=await H6($,J);if(G===void 0||typeof G!=="object"||G===null||Array.isArray(G))throw C("Request body must be a JSON object");let X=G,Q;try{Q={...D6(X)}}catch(Y){throw C($$(Y))}let Z=X.name;if(typeof Z!=="string"||Z.length===0)throw C('Field "name" must be a non-empty string');return{...Q,name:Z,...X.payload===void 0?{}:{payload:X.payload},...Q4(X)}},success:{kind:"json",status:200},shapeSuccess:($)=>L6($),shapeFault:R};function _4($,U){let J=U instanceof Error?U.message:String(U),G=J.toLowerCase();if(G.includes("not found"))return{code:"NotFound",message:J,data:{resource:"schedule",identifier:$}};if(G.includes("already exists")||G.includes("cannot be resumed"))return{code:"Conflict",message:J,data:{reason:J}};if(J.includes("Missing required field")||G.includes("must be")||G.includes("no workflow registered")||G.includes("cron")||G.includes("interval"))return{code:"InvalidParams",message:J,data:{issues:[]}};return{code:"EngineFailure",message:J,data:{}}}function C3($){let U=$.cronExpression!==void 0,J=$.every!==void 0;if(U&&J)throw C("Provide exactly one of cronExpression or every, not both");if(J){if(typeof $.every!=="string"&&typeof $.every!=="number")throw C('Field "every" must be a duration string or a number of milliseconds');return{every:$.every}}if(typeof $.cronExpression!=="string"||$.cronExpression.length===0)throw C("Missing required field: cronExpression or every");return{cron:$.cronExpression}}var Rr=j.object({scheduleId:j.string().min(1)}),Tr=j.undefined(),VR=q({name:"weft.schedules.cancel",mcpExposable:!1,summary:"Cancel a recurring schedule",description:"Permanently cancel a recurring schedule by `scheduleId` so it stops launching new "+"workflows. Irreversible — recreate the schedule to resume the cadence. Already-started "+"workflows are unaffected. Faults with NotFound when no schedule with the given id exists.",destructive:!0,tags:["Schedules"],inputSchema:Rr,outputSchema:Tr,access:{kind:"public"},producibleFaults:["NotFound","Conflict"],transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let J=U;try{await J.cancelSchedule($.scheduleId);return}catch(G){throw _4($.scheduleId,G)}}}),PR={method:"DELETE",path:"/v1/schedules/:id",pathParamNames:["id"],operationName:"weft.schedules.cancel",inputSources:{scheduleId:{kind:"path",pathParam:"id"}},extractInput:async($,U)=>({scheduleId:U.id??""}),success:{kind:"empty",status:204},shapeFault:R};function j4($){return q({name:$.name,mcpExposable:!1,summary:$.summary,...$.description===void 0?{}:{description:$.description},tags:$.tags,destructive:$.destructive,inputSchema:$.inputSchema,outputSchema:$.outputSchema,access:{kind:"public"},producibleFaults:$.producibleFaults,transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:U,engine:J})=>{try{return await $.invoke({engine:J,input:U})}catch(G){throw Er(G,U.workflowId,$.mapErrorToFault)}}})}function H4($){return{workflowId:$.id??""}}function Er($,U,J){let G=$ instanceof Error?$.message:String($);if(G.includes("not found"))return{code:"NotFound",message:G,data:{resource:"workflow",identifier:U}};let X=J?.({error:$,message:G,workflowId:U});if(X!==void 0)return X;return{code:"EngineFailure",message:G,data:{}}}var xr=j.object({workflowId:j.string().min(1)}),Sr=j.undefined(),FR=j4({name:"weft.workflows.cancel",summary:"Cancel a running workflow",description:"Request cancellation of a running workflow by `id`. Cancellation is cooperative: the workflow observes a cancellation signal and unwinds via its own cleanup logic, so this is irreversible from the caller perspective. Faults with NotFound when the workflow is not visible.",destructive:!0,tags:["Workflows"],inputSchema:xr,outputSchema:Sr,producibleFaults:["NotFound"],invoke:async({input:$,engine:U})=>{await U.cancel($.workflowId);return}}),MR={method:"DELETE",path:"/v1/workflows/:id",pathParamNames:["id"],operationName:"weft.workflows.cancel",inputSources:{workflowId:{kind:"path",pathParam:"id"}},extractInput:async($,U)=>H4(U),success:{kind:"empty",status:204},shapeFault:R};var br=new Set(["skip","queue","cancel-running","allow"]),vr=j.object({type:j.unknown().describe("Workflow type name. Runtime validation requires a non-empty string."),cronExpression:j.unknown().optional().describe("Cron expression. Supply exactly one of cronExpression or every; runtime validation requires a non-empty string."),every:j.unknown().optional().describe("Interval period (duration string or milliseconds). Supply exactly one of cronExpression or every."),input:j.unknown().optional(),id:j.unknown().optional(),overlap:j.unknown().optional(),backfill:j.unknown().optional(),jitter:j.unknown().optional()}),gr=j.object({id:j.string()});function Ir($){if(typeof $.type!=="string"||$.type.length===0)throw C("Missing required field: type");return{type:$.type,spec:C3($)}}function hr($){let U;if($.id!==void 0){if(typeof $.id!=="string"||$.id.length===0)throw C('Field "id" must be a non-empty string');U=$.id}let J;if($.overlap!==void 0){if(typeof $.overlap!=="string"||!mr($.overlap))throw C('Field "overlap" must be one of skip, queue, cancel-running, allow');J=$.overlap}let G;if($.backfill!==void 0){if(typeof $.backfill!=="boolean")throw C('Field "backfill" must be a boolean');G=$.backfill}let X;if($.jitter!==void 0){if(typeof $.jitter!=="string"&&typeof $.jitter!=="number")throw C('Field "jitter" must be a duration string or a number of milliseconds');X=$.jitter}return{id:U,overlap:J,backfill:G,jitter:X}}function yr($){let{type:U,spec:J}=Ir($),{id:G,overlap:X,backfill:Q,jitter:Z}=hr($);return{type:U,spec:J,id:G,overlap:X,backfill:Q,jitter:Z}}var zR=q({name:"weft.schedules.create",mcpExposable:!1,summary:"Create a recurring schedule",description:"Create a schedule that starts a workflow on a recurring cadence. Requires a schedule `id`, the target workflow `type`, and a recurrence specification (cron expression or interval); accepts the workflow `input` and start options. Returns the created schedule id. Faults with Conflict when a schedule with the same id already exists and InvalidParams for a malformed recurrence specification.",destructive:!1,tags:["Schedules"],inputSchema:vr,outputSchema:gr,access:{kind:"public"},producibleFaults:["NotFound","Conflict"],transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let J=U,G=yr($),X={...G.id!==void 0?{id:G.id}:{},...G.overlap!==void 0?{overlap:G.overlap}:{},...G.backfill!==void 0?{backfill:G.backfill}:{},...G.jitter!==void 0?{jitter:G.jitter}:{}};try{return{id:(await J.schedule(G.type,$.input,G.spec,X)).id}}catch(Q){throw _4(G.id??"",Q)}}});function mr($){return br.has($)}var BR={method:"POST",path:"/v1/schedules",pathParamNames:[],operationName:"weft.schedules.create",inputSources:{type:{kind:"body-field",bodyField:"type"},cronExpression:{kind:"body-field",bodyField:"cronExpression"},every:{kind:"body-field",bodyField:"every"},input:{kind:"body-field",bodyField:"input"},id:{kind:"body-field",bodyField:"id"},overlap:{kind:"body-field",bodyField:"overlap"},backfill:{kind:"body-field",bodyField:"backfill"},jitter:{kind:"body-field",bodyField:"jitter"}},extractInput:async($,U,J)=>{let G;try{G=await Y$($,J)}catch(Q){if(t(Q))throw Q;throw C("Invalid JSON body")}if(typeof G!=="object"||G===null)throw C("Request body must be a JSON object");let X=G;return{type:X.type,cronExpression:Object.hasOwn(X,"cronExpression")?X.cronExpression:void 0,every:Object.hasOwn(X,"every")?X.every:void 0,input:X.input,id:X.id,overlap:X.overlap,backfill:X.backfill,jitter:X.jitter}},success:{kind:"json",status:201},shapeFault:R};var kr="stream:token",WL=[r6.type,C4.type,C6.type,R4.type,R6.type,W0.type,K0.type,T4.type,t9.type,Y0.type,e9.type,_0.type,$X.type,L0.type,UX.type,j0.type,A6.type,U6.type,H0.type,D0.type,V0.type,n6.type,P0.type,F0.type,a4.type,X0.type,M0.type,z0.type,B0.type,JX.type,GX.type],Dz$=[...WL,kr];var fr=/^(?:-1|\d+)$/;function JJ($){if(!fr.test($))return null;let U=Number($);if(!Number.isSafeInteger(U)||U<-1)return null;return U}var ur="-1",wr=1000,cr=j.enum(WL),pr=j.string().regex(/^(?:-1|\d+)$/,"Invalid cursor").refine(($)=>JJ($)!==null,{message:"Invalid cursor"}),dr=j.object({workflowId:j.string().min(1).optional(),kind:cr.optional(),fromCursor:pr.optional()}),lr=j.object({subscriptionId:j.string(),cursor:j.string()}),ir=j.object({kind:j.string(),workflowId:j.string().optional(),sequence:j.number(),cursor:j.string(),emittedAtMs:j.number(),payload:j.unknown()}),R3=q({name:"weft.events.subscribe",mcpExposable:!1,kind:"subscription",summary:"Subscribe to fleet-wide events with replay-from-cursor",description:"Subscribes to the server-level event feed across workflows. Optional filters narrow delivery by workflow id or event kind after the single fleet cursor has been applied. Historical replay is capped at 1,000 matching retained events per subscription; use a recent fromCursor for older feeds.",destructive:!1,tags:["Events"],inputSchema:dr,outputSchema:lr,producibleFaults:["UnsupportedTransport","InvalidParams"],eventSchema:ir,access:{kind:"scoped",scopes:{kind:"anyOf",scopes:["events:read"]}},discoverable:!0,transports:{http:!1,jsonRpcHttp:!1,jsonRpcWebSocket:!0,jsonRpcStdio:!1},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U,transport:J})=>{let G=$.fromCursor??ur;if(JJ(G)===null)z6(R3,C("Invalid cursor"));let X=ar(U,J),Q=new AbortController,Z=X.subscribe({...$.fromCursor===void 0?{}:{fromCursor:$.fromCursor},signal:Q.signal,replayLimit:wr,filterEnvelope:(Y)=>rr(Y,$),createReplayLimitError:(Y,_)=>nr(Y,_)});return{envelope:{subscriptionId:`sub_${crypto.randomUUID()}`,cursor:G},iterable:Z,close:async()=>{Q.abort()}}}});function nr($,U){return C(`Fleet event replay window is ${$} matching events; maximum is ${U}. Supply a more recent fromCursor.`)}function rr($,U){if(!or($,U.workflowId))return!1;if(!sr($,U.kind))return!1;return!0}function or($,U){if(U===void 0)return!0;return $.workflowId===U}function sr($,U){if(U===void 0)return!0;return $.kind===U}function ar($,U){if(typeof $==="object"&&$!==null&&"fleetFeed"in $){let J=$.fleetFeed;if(tr(J))return J}z6(R3,{code:"UnsupportedTransport",message:"Fleet event subscription requires a WebSocket fleet event feed",data:{transport:U,supported:["jsonRpcWebSocket"]}})}function tr($){if(typeof $!=="object"||$===null)return!1;return typeof $.subscribe==="function"}var er=j.object({workflowId:j.string().min(1),fromStep:j.unknown().optional()}),$o=j.object({id:j.string()});function Uo($){if($.fromStep===void 0)return;if(typeof $.fromStep!=="number"||!Number.isSafeInteger($.fromStep)||$.fromStep<0)throw C('Field "fromStep" must be a non-negative safe integer');return{fromStep:$.fromStep}}function Jo($){let U=$ instanceof Error?$.message:String($);if(U.includes("fromStep")||U.includes("Checkpoint not found at step"))throw C(U);if(U.includes("Checkpoint not found"))throw{code:"NotFound",message:U,data:{resource:"checkpoint"}};if(U.includes("not found"))throw{code:"NotFound",message:U,data:{resource:"workflow"}};throw{code:"EngineFailure",message:U,data:{}}}var WR=q({name:"weft.workflows.fork",mcpExposable:!1,summary:"Fork a workflow from a checkpoint",destructive:!1,tags:["Workflows"],inputSchema:er,outputSchema:$o,access:{kind:"public"},producibleFaults:["NotFound"],transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let J=U,G=Uo($);try{return{id:(await J.fork($.workflowId,G)).id}}catch(X){Jo(X)}}}),KR={method:"POST",path:"/v1/workflows/:id/fork",pathParamNames:["id"],operationName:"weft.workflows.fork",inputSources:{workflowId:{kind:"path",pathParam:"id"},fromStep:{kind:"body-field",bodyField:"fromStep"}},extractInput:async($,U,J)=>{let G=await K4($,J);if(G.trim().length===0)return{workflowId:U.id??""};let X;try{X=JSON.parse(G)}catch{throw C("Invalid JSON body")}if(typeof X!=="object"||X===null||Array.isArray(X))throw C("Request body must be a JSON object");let Q=X;return{workflowId:U.id??"",fromStep:Q.fromStep}},success:{kind:"json",status:201},shapeFault:R};var Go=j.object({workflowId:j.string().min(1),step:j.number().int().nonnegative()}),Xo=j.unknown(),qR=q({name:"weft.workflows.checkpoints.get",mcpExposable:!1,summary:"Get a specific checkpoint by step number",destructive:!1,tags:["Checkpoints"],inputSchema:Go,outputSchema:Xo,access:{kind:"public"},producibleFaults:["NotFound"],transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let G=await U.getCheckpointAt($.workflowId,$.step);if(G===null)throw{code:"NotFound",message:`Checkpoint not found at step ${$.step} for workflow ${$.workflowId}`,data:{resource:"checkpoint",identifier:`${$.workflowId}:${$.step}`}};return G}});function Qo($,U){return h6(U,$,200)}function Zo($){return R($)}var NR={method:"GET",path:"/v1/workflows/:id/checkpoints/:step",pathParamNames:["id","step"],operationName:"weft.workflows.checkpoints.get",inputSources:{workflowId:{kind:"path",pathParam:"id"},step:{kind:"path",pathParam:"step"}},extractInput:async($,U)=>{let J=U.step??"";if(!/^\d+$/.test(J))throw{code:"InvalidParams",message:`Invalid step: ${J}`,data:{issues:[{path:["step"],message:`Invalid step: ${J}`,code:"custom"}]}};let G=Number(J);if(!Number.isSafeInteger(G)||G<0)throw{code:"InvalidParams",message:`Invalid step: ${J}`,data:{issues:[{path:["step"],message:`Invalid step: ${J}`,code:"custom"}]}};return{workflowId:U.id??"",step:G}},success:{kind:"json",status:200},shapeSuccess:($,U)=>Qo($,U),shapeFault:Zo};var Yo=j.object({}),OR=j.unknown().refine(($)=>typeof $==="object"&&$!==null&&!Array.isArray($),{message:"expected an object"}),_o=j.object({registryVersion:j.literal(1),workflows:OR,activities:OR}).strict(),AR=q({name:"weft.system.registry",mcpExposable:!1,summary:"Get a snapshot of registered workflows and activities with their JSON Schemas",destructive:!1,tags:["System"],inputSchema:Yo,outputSchema:_o,access:{kind:"scoped",scopes:{kind:"anyOf",scopes:["system:read"]}},discoverable:!0,transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({engine:$})=>{try{return qF($)}catch(U){if(U instanceof vU)console.error(`[weft.system.registry] ${U.message}`,{entityKind:U.entityKind,entityName:U.entityName,direction:U.direction});throw U}}}),CR={method:"GET",path:"/v1/registry",pathParamNames:[],operationName:"weft.system.registry",inputSources:{},extractInput:async()=>({}),success:{kind:"json",status:200},shapeSuccess:($)=>new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}}),shapeFault:R};var jo=j.object({}),Ho=j.unknown(),RR=q({name:"weft.retention.get",mcpExposable:!1,summary:"Get retention policy overview",destructive:!1,tags:["System"],inputSchema:jo,outputSchema:Ho,access:{kind:"public"},transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({engine:$})=>{return $.getRetentionOverview()}});function Do($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}function Lo($){return R($)}var TR={method:"GET",path:"/v1/retention",pathParamNames:[],operationName:"weft.retention.get",inputSources:{},extractInput:async()=>({}),success:{kind:"json",status:200},shapeSuccess:($)=>Do($),shapeFault:Lo};var Vo=j.object({workflowId:j.string().min(1),reviewId:j.string().min(1)}),Po=j.unknown(),ER=q({name:"weft.reviews.get",mcpExposable:!1,summary:"Get a specific review for a workflow",description:"Read a single human review request for a workflow by its identifiers, including the review prompt, available options, and current decision state. Read-only. Faults with NotFound when the review is not visible.",destructive:!1,tags:["Reviews"],inputSchema:Vo,outputSchema:Po,access:{kind:"public"},producibleFaults:["NotFound"],transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let G=await U.getReview($.workflowId,$.reviewId);if(G===null)throw{code:"NotFound",message:`Review "${$.reviewId}" not found for workflow "${$.workflowId}"`,data:{resource:"review",identifier:$.reviewId}};return G}});function Fo($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}function Mo($){return R($)}var xR={method:"GET",path:"/v1/workflows/:id/review/:reviewId",pathParamNames:["id","reviewId"],operationName:"weft.reviews.get",inputSources:{workflowId:{kind:"path",pathParam:"id"},reviewId:{kind:"path",pathParam:"reviewId"}},extractInput:async($,U)=>({workflowId:U.id??"",reviewId:U.reviewId??""}),success:{kind:"json",status:200},shapeSuccess:($)=>Fo($),shapeFault:Mo};var zo=j.object({scheduleId:j.string().min(1)}),Bo=j.unknown(),SR=q({name:"weft.schedules.get",mcpExposable:!1,summary:"Get a recurring schedule by id",description:"Read a single recurring schedule by `id`, including its recurrence specification, target workflow type, paused state, and next-run information. Read-only. Faults with NotFound when no schedule with the given id exists.",destructive:!1,tags:["Schedules"],inputSchema:zo,outputSchema:Bo,access:{kind:"authenticated"},producibleFaults:["NotFound","Conflict"],discoverable:!0,transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let G=await U.getSchedule($.scheduleId);if(G===null)throw{code:"NotFound",message:`Schedule "${$.scheduleId}" not found`,data:{resource:"schedule",identifier:$.scheduleId}};return G}});function Wo($){return R($)}var bR={method:"GET",path:"/v1/schedules/:id",pathParamNames:["id"],operationName:"weft.schedules.get",inputSources:{scheduleId:{kind:"path",pathParam:"id"}},extractInput:async($,U)=>({scheduleId:U.id??""}),success:{kind:"json",status:200},shapeFault:Wo};var Ko=/^-?\d+$/;function T3($,U){if($===null||$===void 0)return{};if($.trim().length===0)return{error:`Invalid ${U}: ${$}`};if(!Ko.test($))return{error:`Invalid ${U}: ${$}`};let J=Number($);if(!Number.isSafeInteger(J)||J<-1)return{error:`Invalid ${U}: ${$}`};return{value:J}}var vR=new TextEncoder;function gR($){let U=[];if($.id!==void 0)U.push(`id: ${$.id}`);if($.event!==void 0)U.push(`event: ${$.event}`);let J=$.data.split(`
|
|
52
|
+
${J.callerStack}`;let Q=G instanceof Error?G.message:String(G);X.finalizePendingTimelineEntry(U,"failed",Q),X.feedOperationResult(U,{status:"failed",error:Q,...G instanceof Error?{errorName:G.name}:{},failureCategory:t2(G,{defaultErrorCategory:"application"})},{value:G})}async function jO($,U,J,G,X){try{let Q=await G();o8($,U,Q,X)}catch(Q){s8($,U,J,Q,X)}}async function HO($,U,J,G,X){try{await G()}catch(Q){s8($,U,J,Q,X)}}async function LO($,U,J,G){return G.runOperationWithResult(U,J,()=>hD($,U,J,ID($,U),G))}function ID($,U){let J=Tl($,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 Tl($,U){return $.inlineStrategy?.getContext(U)?.nestingDepth??$.workflowNestingDepths.get(U)??0}function El($,U){$.pendingNestingDepth=U.pendingNestingDepth,$.pendingParentHeaders=U.pendingParentHeaders,$.pendingExecutionStateOwnerId=U.pendingExecutionStateOwnerId}function xl($,U){if($.pendingNestingDepth===U.pendingNestingDepth)$.pendingNestingDepth=void 0;if($.pendingParentHeaders===U.pendingParentHeaders)$.pendingParentHeaders=void 0;if($.pendingExecutionStateOwnerId===U.pendingExecutionStateOwnerId)$.pendingExecutionStateOwnerId=void 0}function Sl($,U,J){return $.type===U.workflowType&&iz($.input,U.input)&&$.executionStateOwnerId===J}async function bl($,U,J,G,X){let Q=await X.loadWorkflowState($);if(!Q)throw G;if(!Sl(Q,U,J))throw Error(`Child workflow id collision for "${$}" does not match the requested child workflow`,{cause:G});return X.getHandle($)}async function vl($,U,J,G,X){L9(J.options,"ctx.startChild"),El($,G);try{return await X.start(J.workflowType,J.input,{id:U})}catch(Q){if(!(Q instanceof O$))throw Q;return bl(U,J,G.pendingExecutionStateOwnerId??void 0,Q,X)}finally{xl($,G)}}async function hD($,U,J,G,X){let Q=J.options?.id,Z=typeof Q==="string"?Q:crypto.randomUUID(),Y=$.workflowHeaders.get(U)??new Map,_=await X.loadWorkflowState(U),H=gl(J),D=H==="abandon"?null:_?.executionStateOwnerId??U,L=async()=>{let M={pendingNestingDepth:G+1,pendingParentHeaders:$.workflowHeaders.get(U),pendingExecutionStateOwnerId:D},K=await vl($,Z,J,M,X);if(H==="abandon")return DO(K.id);if(H==="request-cancel")return t4($,U,{conditions:[],operations:oq($,U,K.id)}),YD($,U,K.id,X),DO(K.id);return K.result()},F=X.getComposedWorkflowInterceptor();if(!F)return L();return F.childWorkflow({workflowId:U,childWorkflowId:Z,workflowType:J.workflowType,input:J.input,headers:new Map,parentHeaders:Y},L)}function gl($){return $.options?.parentClosePolicy??"await"}function DO($){return{id:$}}var VO=Symbol("weft.deferredConsume");function PO($){return{[VO]:!0,finalize:$}}function Il($){return typeof $==="object"&&$!==null&&$[VO]===!0}async function f0($){if(Il($))return $.finalize();if(Array.isArray($))return Promise.all($.map((U)=>f0(U)));return $}var hl=2147483647;function FO($,U){return Math.min(Math.max(0,$-U),hl)}function MO($,U,J){J?.throwIfAborted();let G=$.abortController.signal;if(G.aborted)return Promise.reject(G.reason??Error("aborted"));if(FO(U.scheduledFireAt,$.options.getNow())===0)return Promise.resolve();return new Promise((X,Q)=>{let Z,Y=()=>{J?.removeEventListener("abort",_),G.removeEventListener("abort",_)},_=()=>{clearTimeout(Z),Y(),Q(J?.reason??G.reason??Error("aborted"))},H=()=>{let D=FO(U.scheduledFireAt,$.options.getNow());if(D===0){Y(),X();return}Z=setTimeout(H,D)};J?.addEventListener("abort",_,{once:!0}),G.addEventListener("abort",_,{once:!0}),H()})}function zO($,U,J,G){G?.throwIfAborted();let{signalName:X}=J,Q=`${U}:${X}`,Z=$.abortController.signal;return new Promise((Y,_)=>{let H=!1,D=!1,{promise:L,resolve:F}=Promise.withResolvers(),M=()=>{G?.removeEventListener("abort",S),Z.removeEventListener("abort",S)},K=async()=>{let c=await W8($,U,X);return c.found?c.payload:void 0},S=()=>{if(H)return;if(H=!0,M(),D)B8($,U,Q,F);_(G?.reason??Z.reason??Error("aborted"))},h=()=>{if(H)return;H=!0,M(),Y(PO(K))},p=(c)=>{if(H)return;if(H=!0,M(),D)B8($,U,Q,F);_(c)};if(G?.addEventListener("abort",S,{once:!0}),Z.addEventListener("abort",S,{once:!0}),Z.aborted){S();return}(async()=>{let c=await HH($,U,X);if(H)return;if(c.found){h();return}$.signalWaiters.set(Q,F),e4($.signalWaitersByWorkflow,U,Q),D=!0;let I=await HH($,U,X);if(H)return;if(I.found){B8($,U,Q,F),h();return}if(await L,H)return;h()})().catch(p)})}function yl($,U,J,G){let X=$.lastHeartbeatDetailsByStep.get(U);if(X===void 0)X=new Map,$.lastHeartbeatDetailsByStep.set(U,X);X.set(J,G)}function BO($,U,J){return $.lastHeartbeatDetailsByStep.get(U)?.get(J)}function yD($,U,J){let G=$.lastHeartbeatDetailsByStep.get(U);if(G===void 0)return;if(G.delete(J),G.size===0)$.lastHeartbeatDetailsByStep.delete(U)}function WO($,U,J,G){if(!$.options.development)return;if($.activityWorkerDispatcher)return;if(G<=1)return;if(BO($,U,J)!==void 0)return;$.engine.dispatchEvent(new n6(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 KO($,U,J,G,X){return{signal:G,lastHeartbeatDetails:BO($,U,J),heartbeat:(Q)=>{$.heartbeatDetails.set(U,Q),yl($,U,J,Q)},completeAsync:X}}class NO extends v{constructor(){super("ActivityReconciliationCapabilityError",'Activity result reconciliation requires storage capability "conditionalBatch".')}}class OO extends v{constructor($){super("ActivityReconciliationConflictError",$)}}class $4 extends v{constructor($){super("ActivityReconciliationIndeterminateError",$)}}async function AO($,U,J){let G=await ul(J);return{idempotencyKeyDigest:G,key:P.activityReconciliation($,U,G)}}function CO($,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 RO($,U){let J=await $.get(U);if(J===null)return null;return fl(A(J))}function J3($,U){return T6($,U,"activity result"),W($)}async function ml($,U,J){if(!$.capabilities().conditionalBatch)throw new NO;return J$($,"conditionalBatch","activity result reconciliation"),e($,[{key:U.key,expectedValue:null}],[{type:"put",key:U.key,value:W(J)}])}function mD($,U,J){return{...$,status:"completed",result:U,updatedAt:J}}async function TO($,U,J,G,X,Q,Z){let Y=await RO($.storage,G.key);if(Y===null){let D=await cl($,U,J,G,Z);if(D.didClaim)return D.record;Y=D.record}if(Y.status==="completed")return{completedResult:Y.result};if(!X?.verify)throw new $4(`Activity "${J.activityName}" has a prior dispatch marker but no Tier-0 verifier.`);let _=kl(await pl(X,U,J,Q,Y));if(_==="not-completed"){let D={...Y,attempt:Y.attempt+1,ownerId:crypto.randomUUID(),updatedAt:$.options.getNow()};return await qO($.storage,G,Y,D),D}if(_==="completed-result-unavailable")throw new $4(`Activity "${J.activityName}" completed externally but its result is unavailable.`);if(_==="indeterminate")throw new $4(`Activity "${J.activityName}" reconciliation is indeterminate.`);J3(_.result,$.options.payloadSizePolicy.maxBytes);let H=mD(Y,_.result,$.options.getNow());return await qO($.storage,G,Y,H),{completedResult:_.result}}async function qO($,U,J,G){let X=xO(U,J,G);if(!await e($,X.conditions,X.operations))throw new OO("Activity reconciliation completion lost compare-and-set ownership.")}function EO($,U,J,G,X){t4($,U,xO(J,G,X))}function xO($,U,J){return{conditions:[{key:$.key,expectedValue:W(U)}],operations:[{type:"put",key:$.key,value:W(J)}]}}function kl($){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 $4("Activity verifier did not return a Tier-0 pre-dispatch reconciliation state.")}function kD($,U,J,G,X,Q,Z){return{phase:$,workflowId:U,operationId:J,activityName:G,input:X,...Q===void 0?{}:{idempotencyKey:Q},attempt:Z}}function fl($){if(typeof $!=="object"||$===null)throw new $4("Activity reconciliation record is not an object.");let U=$;if(!dl(U))throw new $4("Activity reconciliation record has an invalid shape.");if(U.status==="started")return U;if(U.status==="completed"&&"result"in U)return U;throw new $4("Activity reconciliation record has an unsupported status.")}async function ul($){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 wl($,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 cl($,U,J,G,X){let Q=wl(U,J,G,X,$.options.getNow());if(await ml($.storage,G,Q))return{didClaim:!0,record:Q};let Y=await RO($.storage,G.key);if(Y===null)throw new $4("Activity reconciliation claim conflicted but no record could be read.");return{didClaim:!1,record:Y}}async function pl($,U,J,G,X){try{return await $.verify(void 0,kD("pre-dispatch-reconciliation",U,J.operationId,J.activityName,J.input,G,X.attempt))}catch(Q){let Z=Q instanceof Error?Q.message:String(Q);throw new $4(`Activity "${J.activityName}" verifier threw during pre-dispatch reconciliation: ${Z}`)}}function dl($){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")}function SO($,U,J){let G=$.workflowTypeByWorkflowId.get(U);if(G!==void 0){let Q=$.activityRegistriesByWorkflow.get(G);if(Q!==void 0){let Y=Q.resolve(J);if(Y)return{fn:Y,workflowType:G}}let Z=$.activityRegistry.resolve(J);if(Z)return{fn:Z,workflowType:G};return}let X=$.activityRegistry.resolve(J);if(X)return{fn:X,workflowType:"<unknown>"};return}function fD($,U,J){let G=SO($,U,J.activityName);if(G)return G.fn;if(typeof J.fn==="function")return J.fn;return}function bO($,U,J){let G=SO($,U,J.activityName);if(G)return G.fn;if(J.fn)return J.fn;let X=$.workflowTypeByWorkflowId.get(U)??"<unknown>";throw new U9(X,J.activityName)}function ll($,U,J,G,X){return(async()=>{let Q=await J?.(X,G);if(typeof Q!=="boolean")throw Error(`Verification failed for activity "${U}"`);if(!Q)throw Error(`Verification failed for activity "${U}"`)})()}function il($,U,J,G){let X=fD($,U,J);if(!X?.compensate)return;return async()=>{await X.compensate?.(J.input,G)}}async function nl($,U,J,G,X){let Q=$.activityWorkerDispatcher;if(!Q)throw Error(`No activity worker dispatcher available for "${J}"`);let Z=await Q.execute({operationId:U,activityName:J,input:G,attempt:X});if(Z.status==="failed"){let Y=Error(Z.error);if(Z.errorName!==void 0)Y.name=Z.errorName;throw Y}return Z.value}function rl($,U,J,G,X,Q){let Z=bO($,U,J);return X8(Z,Q,G)}function vO($,U){if(U.size>0)$.headers=[...U.entries()]}function uD($){let U=$.attempt;return typeof U==="number"&&Number.isInteger(U)&&U>0?U:1}async function gO($,U,J,G,X=uD(J),Q){let Z=J.input,Y=J.step??0;WO($,U,Y,X);let _=cB(U,Y,X),{perAttemptTimeoutMs:H,attemptAbortController:D,activitySignal:L}=CN($,U,J,Q),F=KO($,U,Y,L,()=>{throw new YX(_)}),M=$.activityWorkerDispatcher?(I,m)=>nl($,J.operationId,I,m,X):(I,m)=>sX(rl($,U,J,F,I,m),H,I,X,D),K=G.getComposedActivityInterceptor(),S=async(I,m,u)=>{if(!K)return M(I,m);let R$={workflowId:U,activityName:I,input:m,attempt:X,headers:u};return await K.execute(R$,async(r1)=>{return M(I,r1.input)})},h=G.getComposedWorkflowInterceptor();if(h){let I={workflowId:U,activityName:J.activityName,input:Z,attempt:X,headers:new Map};function*m(){return yield S(J.activityName,I.input,I.headers)}let u=h.activity(I,m),R$=await rB(u);return vO(J,I.headers),R$}let p=new Map,c=await S(J.activityName,Z,p);return vO(J,p),c}async function a8($,U,J,G,X,Q){let Z=fD($,U,J),Y=CO(Z,J),_=uD(J);if(Y!==void 0){let D=await AO(U,J.activityName,Y),L=await TO($,U,J,D,Z,Y,_);if("completedResult"in L)return J3(L.completedResult,$.options.payloadSizePolicy.maxBytes),L.completedResult;let F=await gO($,U,J,G,L.attempt,X);J3(F,$.options.payloadSizePolicy.maxBytes),await IO($,U,J,F,Z,Y,L.attempt,Q,!0);let M=mD(L,F,$.options.getNow());if(EO($,U,D,L,M),!Q)yD($,U,J.step??0);return F}let H=await gO($,U,J,G,_,X);if(T6(H,$.options.payloadSizePolicy.maxBytes,"activity result"),await IO($,U,J,H,Z,Y,_,Q),!Q)yD($,U,J.step??0);return H}async function IO($,U,J,G,X,Q,Z,Y,_=!1){let H=Y?il($,U,J,G):void 0;if(H)Y?.recordCompensation(H);if(X?.verify){let D=kD("post-execution-validation",U,J.operationId,J.activityName,J.input,Q,Z),L=ll($,J.activityName,X.verify,D,G);if(Y){if(Y.recordVerification(L),_)await L}else await L}}async function hO($,U,J,G){return G.runOperationWithResult(U,J,async()=>{try{return await a8($,U,J,G)}catch(X){if(X instanceof YX)return pB($,X,{workflowId:U,activityName:J.activityName,operationId:J.operationId,step:J.step??0,attempt:uD(J)},{feedOperationResult:G.feedOperationResult,finalizeTimeline:G.finalizePendingTimelineEntry});throw X}})}function G3($){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 yO($,U,J,G){let X=$.abortController.signal,Q=`${U}:${J.signalName}`;while(!0){if(X.aborted)return;let Z=await W8($,U,J.signalName);if(Z.found){G.completeOperation(U,Z.payload);return}let{promise:Y,resolve:_}=Promise.withResolvers();if($.signalWaiters.set(Q,_),e4($.signalWaitersByWorkflow,U,Q),X.aborted){$.signalWaiters.delete(Q),J6($.signalWaitersByWorkflow,U,Q);return}let H=await W8($,U,J.signalName);if(H.found){if($.signalWaiters.get(Q)===_)$.signalWaiters.delete(Q),J6($.signalWaitersByWorkflow,U,Q);G.completeOperation(U,H.payload);return}if(await Y,X.aborted)return}}async function mO($,U,J,G){return G.runOperationWithResult(U,J,async()=>{G3(J.operations);let X=kO(J.resumedCacheEntry),Q=J.operations.map((D,L)=>typeof D.operationId==="string"?D.operationId:`parallel:${J.step}:${L}`),{slots:Z,hasFirstError:Y,firstError:_}=await vB(Q,X,(D)=>G.executeSubOperation(U,J.operations[D]));if(Y)uO(sl($,U),Z,"ctx.all","worker execution mode");await ol(Z);let H=UH("all",Z);if(fO($,U,J.step,H),Y)throw _;return gB(Z)})}async function ol($){let J=(await Promise.allSettled($.map(async(G)=>{if(G.status==="fulfilled")G.value=await f0(G.value)}))).find((G)=>G.status==="rejected");if(J)throw J.reason}function kO($){if(!f1($))return;return $.branches}function sl($,U){return $.inlineStrategy?.getContext(U)!==void 0}function fO($,U,J,G){let X=$.inlineStrategy?.getContext(U);if(X===void 0)return!1;return X.accumulatedResults.set(J,G),!0}function uO($,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 wO($,U,J,G){return G.runOperationWithResult(U,J,async()=>{G3(J.operations);let X=new AbortController,Q=J.operations.map((Y)=>G.executeSubOperation(U,Y,X.signal));Promise.allSettled(Q);let Z;try{Z=await Promise.race(Q)}finally{X.abort()}return f0(Z)})}async function cO($,U,J,G){return G.runOperationWithResult(U,J,async()=>{let X=Object.keys(J.branches),Q=X.map((S)=>`run-all:${J.step}:${S}`),Z=kO(J.resumedCacheEntry),Y=$i(Z,X),_=al(J.branches,X,Y),{outcomes:H,hasFirstError:D,firstError:L}=await kB(_,(S,h)=>X8(S,h)),F=tl(X,Q,Y,H),M=UH("run-all",F,X),K=fO($,U,J.step,M);if(D)throw uO(K,F,"ctx.runAll","worker execution mode"),L;return el(X,F)})}function al($,U,J){let G={};for(let X of U)if(J?.get(X)?.status!=="fulfilled"){let Q=$[X];if(Q!==void 0)G[X]=Q}return G}function tl($,U,J,G){let X=new Map;for(let Q of G)X.set(Q.name,Q);return $.map((Q,Z)=>{let Y=U[Z],_=J?.get(Q);if(_?.status==="fulfilled")return _;let H=X.get(Q);if(H.status==="fulfilled")return{status:"fulfilled",value:H.value,operationId:Y};let D=H.reason instanceof Error?H.reason:Error(String(H.reason));return{status:"rejected",reason:{name:D.name,message:D.message},operationId:Y}})}function el($,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 $i($,U){if($===void 0)return;let J=new Map;for(let G=0;G<U.length;G++){let X=U[G],Q=$[G];if(X!==void 0&&Q!==void 0)J.set(X,Q)}return J}function Ui($){return typeof $.execute==="function"}async function pO($,U,J,G,X){return fB(J.branches,(Q,Z)=>{if(!X||!Ui(Q))return X8(Q,Z);return a8($,U,{type:"activity",operationId:crypto.randomUUID(),activityName:Q.name,fn:Q,input:Z},G.getActivityOperationCallbacks(),void 0,X)})}async function dO($,U,J,G){return G.runOperationWithoutResult(U,J,()=>G.processReviewOperation(U,J.reviewOptions))}async function X3($,U,J,G,X,Q){X?.throwIfAborted();let Z=Ji[J.type];if(!Z)throw Error(`Unsupported sub-operation type: ${J.type}`);return Z({internals:$,workflowId:U,callbacks:G,signal:X,speculativeState:Q},J)}var Ji={activity:($,U)=>Gi($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),"child-workflow":($,U)=>Xi($.internals,$.workflowId,U,$.callbacks),memo:($,U)=>Promise.resolve(S9(U.fn)),"state-read":($,U)=>Qi($.internals,U),"state-commit":($,U)=>Zi($.internals,U,$.callbacks),parallel:($,U)=>Yi($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),race:($,U)=>_i($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),"run-all":($,U)=>pO($.internals,$.workflowId,U,$.callbacks.createCoordinationOperationCallbacks(),$.speculativeState),sleep:($,U)=>MO($.internals,U,$.signal),"wait-signal":($,U)=>zO($.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.")}};async function Gi($,U,J,G,X,Q){return a8($,U,J,G.createActivityOperationCallbacks(),X,Q)}async function Xi($,U,J,G){return hD($,U,J,ID($,U),G.createChildWorkflowOperationCallbacks())}async function Qi($,U){return m1($.storage,o4(U.scope,U.key),U)}async function Zi($,U,J){let G=o4(U.scope,U.key),X=U.mode==="delete"?await _8($.storage,G,U.expectedVersion):await Y8($.storage,G,U.expectedVersion,U.value);if(X.applied&&U.scope.type==="execution")await J.createStateOperationCallbacks().ensureTerminalCleanupTracked(U.scope.ownerWorkflowId);return X}async function Yi($,U,J,G,X,Q){X?.throwIfAborted();let Z=new AbortController,Y=()=>{Z.abort(X?.reason)};X?.addEventListener("abort",Y,{once:!0});let _=J.operations.map((H)=>X3($,U,H,G,Z.signal,Q));Promise.allSettled(_);try{return await Promise.all(_)}finally{X?.removeEventListener("abort",Y),Z.abort()}}async function _i($,U,J,G,X,Q){X?.throwIfAborted();let Z=new AbortController,Y=()=>{Z.abort(X?.reason)};X?.addEventListener("abort",Y,{once:!0});let _=J.operations.map((H)=>X3($,U,H,G,Z.signal,Q));Promise.allSettled(_);try{return await Promise.race(_)}finally{X?.removeEventListener("abort",Y),Z.abort()}}function wD($){return{runOperationWithResult:(U,J,G)=>Z1($,U,J,G),start:(U,J,G)=>Q6(V($),U,J,G,void 0,C$($)),loadWorkflowState:(U)=>l(V($),U),getHandle:(U)=>$.getHandle(U),getComposedWorkflowInterceptor:()=>_6(V($))}}function Q3($){return{runOperationWithResult:(U,J,G)=>Z1($,U,J,G),finalizePendingTimelineEntry:(U,J,G)=>S6(V($),U,J,G),feedOperationResult:(U,J,G)=>Y6(V($),U,J,G),getComposedActivityInterceptor:()=>dq(V($)),getComposedWorkflowInterceptor:()=>_6(V($))}}function u0($){return{completeOperation:(U,J)=>_3($,U,J),runOperationWithResult:(U,J,G)=>Z1($,U,J,G),executeSubOperation:(U,J,G,X)=>cD($,U,J,G,X),getActivityOperationCallbacks:()=>Q3($)}}function iO($){return{completeOperation:(U,J)=>_3($,U,J),failOperation:(U,J,G)=>ji($,U,J,G),isWorkflowRunning:async(U)=>{return(await l(V($),U))?.status==="running"},scheduleConditionDeadline:(U,J,G)=>V($).scheduler.schedule({id:`cond:${U}:${J}`,workflowId:U,fireAt:G,kind:"wait-condition"}),cancelConditionDeadline:(U,J)=>V($).scheduler.cancel(`cond:${U}:${J}`,U)}}function t8($){return{runOperationWithResult:(U,J,G)=>Z1($,U,J,G)}}function Z3($){return{runOperationWithResult:(U,J,G)=>Z1($,U,J,G),ensureTerminalCleanupTracked:(U)=>d8(V($),U)}}function nO($){return{runOperationWithResult:(U,J,G)=>Z1($,U,J,G),handleCleanupError:(U,J,G)=>a($).handleCleanupError(U,J,G)}}function Y3($){return{completeOperation:(U,J)=>_3($,U,J),dispatchEvent:(U)=>$.dispatchEvent(U),loadWorkflowState:(U)=>l(V($),U),failWorkflow:(U,J)=>r$(V($),U,J,a($)),runSerializedWorkflowStateWrite:(U,J)=>G6(V($),U,J),beginWorkflowExecution:(U,J,G,X,Q,Z,Y)=>uX(V($),U,J,G,X,Q,Z,Y,C$($)),workflowVersionTupleFromState:(U)=>hX(V($),U,C$($)),setWorkflowStartHeaders:(U,J)=>E4(V($),U,J,C$($)),loadWorkflowStartHeaders:(U)=>d1(V($),U,C$($)),parseStartOptionDuration:(U,J)=>g0(V($),U,J,C$($)),runDeferredTerminalCleanup:(U,J)=>tH(V($),U,J,a($)),runWorkflowFinalizer:(U,J)=>ND(V($),U,J,a($)),handleScheduleTimer:(U)=>XO($,U),timeout:(U)=>$.timeout(U),handleCleanupError:(U,J,G)=>a($).handleCleanupError(U,J,G)}}function w0($){return{dispatchEvent:(U)=>$.dispatchEvent(U),broadcast:(U)=>$1(V($),U,t6($)),completeOperation:(U,J)=>_3($,U,J),guardTerminalWorkflow:(U)=>gD(V($),U,U3($)),guardTerminalWorkflowAfterCoordinatedRequest:(U,J)=>ZO(V($),U,J,U3($)),persistCoordinatedUpdateResponse:(U,J,G,X,Q)=>lO($,U,J,G,X,Q),deliverCoordinatedUpdateToWaiterIfAvailable:(U,J,G)=>kW(V($),U,J,G,w0($)),dispatchPendingUpdateReceived:(U,J,G)=>cW(V($),U,J,G,t6($)),createCoordinatedUpdateResponder:(U,J,G)=>mW(V($),U,J,G,{persistCoordinatedUpdateResponse:(X,Q,Z,Y,_)=>lO($,X,Q,Z,Y,_)}),findPendingUpdateByName:(U,J)=>fW(V($),U,J),schedulePendingInlineUpdateDrain:(U)=>jN(V($),U,n8($))}}async function lO($,U,J,G,X,Q){let Z=V($),Y=Z.updateCoordinator.buildResponseOperations(G,U,Q,void 0,X);try{await G$(Z,Y,[],()=>Error(`Coordinated update response for workflow "${U}" lost its CAS race.`)),$.dispatchEvent(new U6(G,U,J,Q)),$1(Z,{type:"update:completed",workflowId:U,updateId:G},t6($))}catch(_){a($).handleCleanupError("writeCoordinatedUpdateResponse",_,U)}}function _3($,U,J){return o8(V($),U,J,r8($))}function ji($,U,J,G){return s8(V($),U,J,G,r8($))}async function Z1($,U,J,G){return jO(V($),U,J,G,r8($))}async function rO($,U,J,G){return HO(V($),U,J,G,r8($))}async function cD($,U,J,G,X){return X3(V($),U,J,{createActivityOperationCallbacks:()=>Q3($),createChildWorkflowOperationCallbacks:()=>wD($),createCoordinationOperationCallbacks:()=>u0($),createStateOperationCallbacks:()=>Z3($)},G,X)}async function oO($,U,J){return AN(V($),U,J,GO($))}async function sO($,U,J,G){return G.runOperationWithResult(U,J,async()=>S9(J.fn))}async function aO($,U,J,G){return G.runOperationWithResult(U,J,async()=>{let X=await J.fn(),Q=W(X);return await $.storage.put(P.offload(U,J.key),Q),{key:J.key,workflowId:U,sizeBytes:Q.byteLength}})}async function tO($,U,J,G){return G.runOperationWithResult(U,J,async()=>{let{workflowId:X,key:Q,sizeBytes:Z}=J.reference;if(typeof X!=="string"||X!==U)throw Error("ctx.load() can only read offloaded data from the current workflow");if(typeof Q!=="string"||Q.length===0)throw Error("ctx.load() requires a non-empty offload reference key");if(typeof Z!=="number"||!Number.isFinite(Z)||Z<0)throw Error("ctx.load() requires a valid offload reference size");let Y=await $.storage.get(P.offload(X,Q));if(Y===null)throw Error(`Offloaded data not found for key "${Q}" in workflow "${X}"`);return A(Y)})}async function eO($,U,J){let G=await $.storage.get(P.offload(U,J));if(G===null)return null;return A(G)}async function $A($,U,J,G){return G.runOperationWithResult(U,J,async()=>{await $.storage.put(P.archive(U,J.key),W(J.data));return})}class pD{#$;#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 UA($,U,J,G){return G.runOperationWithResult(U,J,()=>Hi($,U,J,G))}async function Hi($,U,J,G){let X=$.inlineStrategy;if(!X)throw Error("ctx.speculate() requires inline execution mode");let Q=X.getContext(U);if(!Q)throw Error(`No active inline context for workflow "${U}"`);let Z=Q.createSpeculativeChild(),Y=new pD,_=Di(J,Z);try{let H=await Li(U,_,Y,G);return await Y.drainVerifications(),Q.commitSpeculativeChild(Z),H}catch(H){throw await Y.rollback(),H}}function Di($,U){return $.execute(U)}async function Li($,U,J,G){let X=async(Q,Z)=>{let Y=Z===void 0?await U.next(Q):await U.throw(Z);if(Y.done)return Y.value;let _=Y.value;try{if(_.type==="race"||_.type==="parallel")G3(_.operations);let H=await G.executeSubOperation($,_,void 0,J),D=await f0(H);return X(D,void 0)}catch(H){return X(Q,H instanceof Error?H:Error(String(H)))}};return X(void 0,void 0)}async function JA($,U,J,G){return G.runOperationWithResult(U,J,async()=>{let X=o4(J.scope,J.key);return m1($.storage,X,J)})}async function GA($,U,J,G){return G.runOperationWithResult(U,J,async()=>{let X=o4(J.scope,J.key);if(J.mode==="delete"){let Z=await _8($.storage,X,J.expectedVersion);if(Z.applied&&J.scope.type==="execution")await G.ensureTerminalCleanupTracked(J.scope.ownerWorkflowId);return Z}let Q=await Y8($.storage,X,J.expectedVersion,J.value);if(Q.applied&&J.scope.type==="execution")await G.ensureTerminalCleanupTracked(J.scope.ownerWorkflowId);return Q})}var Vi=/^\d+$/;function Pi($){if(!Vi.test($))return;let U=Number.parseInt($,10);return Number.isSafeInteger(U)?U:void 0}async function c0($,U,J,G){let X=G?.after,Q=P.streamChunkPrefix(U,J),Z=[],Y=X!==void 0&&X>=0?{gt:P.streamChunk(U,J,X)}:void 0;for await(let[_,H]of $.scan(Q,Y)){let D=_.slice(Q.length),L=Pi(D);if(L===void 0)continue;Z.push({sequence:L,value:A(H)})}return Z}function XA($){return W({sequence:$})}function Fi($){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 QA($,U,J){let G=await $.get(P.streamTail(U,J));if(G===null)return null;try{return Fi(A(G))}catch{return null}}var n1="tokens",dD="stream:chunk",Mi="workflow:compaction-boundary";async function*ZA($,U,J,G){if(J==="events"){yield*zi($,U,G);return}yield*Bi($,U,G)}async function YA($,U,J){if(J==="events"){let Z=$.eventLogHeads.get(U);if(Z)return Z.sequence;return(await new n$($.storage,U).loadHead()).sequence}let G=await QA($.storage,U,n1);if(G!==null)return G;let X=await c0($.storage,U,n1);if(X.length===0)return-1;let Q=-1;for(let Z of X)if(Z.sequence>Q)Q=Z.sequence;return Q}function _A($,U,J,G){let X=sU(U,J),Q=$.workflowFeedListeners.get(X);if(!Q)Q=new Set,$.workflowFeedListeners.set(X,Q);return Q.add(G),()=>{let Z=$.workflowFeedListeners.get(X);if(!Z)return;if(Z.delete(G),Z.size===0)$.workflowFeedListeners.delete(X)}}async function*zi($,U,J){let G=new n$($.storage,U),X=J<0?0:J+1,Q=await X1($.storage,U);if(Q!==null&&X<Q.sequence)yield{workflowId:U,selector:"events",kind:Mi,sequence:Q.sequence-1,timestamp:0,payload:{compactedBefore:Q.sequence,requestedFrom:X}},X=Q.sequence;for await(let Z of G.scan({fromSequence:X}))yield{workflowId:U,selector:"events",kind:Z.type,sequence:Z.sequence,timestamp:Z.timestamp,payload:Z.payload}}async function*Bi($,U,J){let G=J>=0?await c0($.storage,U,n1,{after:J}):await c0($.storage,U,n1),X=Date.now();for(let Q of G)yield{workflowId:U,selector:"tokens",kind:dD,sequence:Q.sequence,timestamp:X,payload:Q.value}}function j3($,U,J,G){let X=$.workflowFeedListeners.get(sU(U,J));if(!X||X.size===0)return;let Q=[...X];for(let Z of Q)try{let Y=Z(G);if(Y&&typeof Y.then==="function")Y.catch(()=>{})}catch{}}async function jA($,U,J,G){return c0($.storage,U,J,G)}async function HA($,U,J,G){return G.runOperationWithResult(U,J,()=>Wi($,U,J,G))}async function Wi($,U,J,G){let X={heartbeat:(Z)=>{$.heartbeatDetails.set(U,Z)}},Q=[];try{let Z=await Ki($,U,J,J.fn(X),Q),Y={key:J.key,workflowId:U,chunkCount:Z.chunkCount,totalSizeBytes:Z.totalSizeBytes};return await $.storage.put(P.streamMetadata(U,J.key),W(Y)),Y}catch(Z){throw await qi($,U,J.key,Q,G),Z}}async function Ki($,U,J,G,X){let Q=0,Z=0;for await(let Y of G){let _=W(Y),H=Q,D=P.streamChunk(U,J.key,H);if(J.key===n1)await $.storage.batch([{type:"put",key:D,value:_},{type:"put",key:P.streamTail(U,J.key),value:XA(H)}]);else await $.storage.put(D,_);if(X.push(D),Z+=_.byteLength,Q++,J.key===n1)j3($,U,"tokens",{workflowId:U,selector:"tokens",kind:dD,sequence:H,timestamp:Date.now(),payload:Y})}return{chunkCount:Q,totalSizeBytes:Z}}async function qi($,U,J,G,X){await mB($.storage,U,J,G,IB(X.handleCleanupError,U))}function LA($,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 VA($,U,J,G){let X=$.abortController.signal,{predicate:Q,deadline:Z}=J,Y=!1,_=(H)=>{if(Y)return;Y=!0,G.completeOperation(U,H)};if(X.aborted)return;try{let H=LA($,Q,Z);if(H.done){_(H.value);return}if(Z!==void 0)await G.scheduleConditionDeadline(U,J.step,Z);try{let D=await DA($,U,Q,Z,G);while(D.status==="continue")D=await DA($,U,Q,Z,G);if(D.status==="complete")_(D.value)}finally{if(PA($,U),Z!==void 0)await G.cancelConditionDeadline(U,J.step)}}catch(H){G.failOperation(U,J,H)}}async function DA($,U,J,G,X){let Q=$.abortController.signal;if(Q.aborted)return{status:"stop"};let{promise:Z,resolve:Y}=Promise.withResolvers();$.conditionWaiters.set(U,Y);let _=Q.aborted?{done:!0,value:void 0,aborted:!0}:{...LA($,J,G),aborted:!1};if(_.done)return PA($,U),_.aborted?{status:"stop"}:{status:"complete",value:_.value};if(await Z,Q.aborted)return{status:"stop"};if(!await X.isWorkflowRunning(U))return{status:"stop"};return{status:"continue"}}function PA($,U){$.conditionWaiters.delete(U)}function lD($){return{processActivityOperation:(U,J)=>hO(V($),U,J,Q3($)),processSleepOperation:(U,J)=>lK(V($),U,J,Y3($)),processWaitSignalOperation:(U,J)=>yO(V($),U,J,u0($)),processWaitUpdateOperation:(U,J)=>hW(V($),U,J,w0($)),processWaitConditionOperation:(U,J)=>VA(V($),U,J,iO($)),processGetVersionOperation:async(U,J)=>{o8(V($),U,J.version,{finalizePendingTimelineEntry:(G,X,Q)=>S6(V($),G,X,Q),feedOperationResult:(G,X,Q)=>Y6(V($),G,X,Q)})},processParallelOperation:(U,J)=>mO(V($),U,J,u0($)),processRaceOperation:(U,J)=>wO(V($),U,J,u0($)),processMemoOperation:(U,J)=>sO(V($),U,J,t8($)),processChildWorkflowOperation:(U,J)=>LO(V($),U,J,wD($)),processOffloadOperation:(U,J)=>aO(V($),U,J,t8($)),processLoadOperation:(U,J)=>tO(V($),U,J,t8($)),processArchiveOperation:(U,J)=>$A(V($),U,J,t8($)),processStateReadOperation:(U,J)=>JA(V($),U,J,Z3($)),processStateCommitOperation:(U,J)=>GA(V($),U,J,Z3($)),processRunAllOperation:(U,J)=>cO(V($),U,J,u0($)),processSpeculateOperation:(U,J)=>UA(V($),U,J,{runOperationWithResult:(G,X,Q)=>Z1($,G,X,Q),executeSubOperation:(G,X,Q,Z)=>cD($,G,X,Q,Z)}),processStreamOperation:(U,J)=>HA(V($),U,J,nO($)),processWaitReviewOperation:(U,J)=>dO(V($),U,J,{runOperationWithoutResult:(G,X,Q)=>rO($,G,X,Q),processReviewOperation:(G,X)=>oO($,G,X)}),finalizePendingTimelineEntry:(U,J,G)=>S6(V($),U,J,G),feedOperationResult:(U,J,G)=>Y6(V($),U,J,G)}}fN(($)=>lD($));function FA($){let U=g($).pendingAttributeChanges;return U!==void 0&&Object.keys(U).length>0}function MA($){let U=g($).updateHandlers;return U!==void 0&&U.size>0}function zA($){let U=g($).exposedValues;return U!==void 0&&U.size>0}function BA($,U,J,G,X,Q){let Z=y0($,U),Y=$.workflowVersionTuples.get(U);if(Z)Q.push(Z);let _={step:G,operationType:J.type,operationLabel:fz(J),inputSummary:uz(J),timestamp:X,status:"running",...Y?{versionTuple:Y}:{}};return Q.push({type:"put",key:P.timeline(U,G),value:W(_)}),{startedAt:X,entry:_}}async function WA($,U,J,G,X){if($.inlineStrategy?.getContext(U))await Ni($,U,J,X);else if(G&&G.byteLength>0)await Oi($,U,J,G,X)}async function Ni($,U,J,G){let X=$.checkpoints.get(U),Q=$.inlineStrategy?.getContext(U);if(!X||!Q)return;let Z={...X.searchAttributes},Y=Q.checkpointPendingAttributeChanges,_=FA(Q),H=oj(X,Q.checkpointLocals,{accumulatedResults:Q.checkpointAccumulatedResults,now:$.options.getNow(),...Y!==void 0?{searchAttributes:Y}:{}}),D=Cj(H,NA(J,Q.stepIndex)),L=KA($,U,D.checkpoint,F$(Rj(D.checkpoint,D.replayPayload)),D.replayPayload);if(Ai(U,L,Z,Y,_,G),await qA($,U,J,L,G),_)G.dispatchEvent(new j0(U,{...Y}))}async function Oi($,U,J,G,X){let Q=new Uint8Array(G),Z=D$(Q),Y=rU(Z),_=Cj(Z,NA(J,Z.step)),H=C9(Y,_.replayPayload),D=F$(Rj(_.checkpoint,H));await qA($,U,J,KA($,U,_.checkpoint,D,H),X)}function KA($,U,J,G,X){let Q=[{type:"put",key:P.checkpoint(U),value:G}];if($.options.checkpointHistory>0)Q.push({type:"put",key:P.checkpointHistory(U,J.step),value:G});let Z=HK($,U);return{checkpoint:J,serialized:G,...X===void 0?{}:{replayPayload:X},...Z!==void 0?{expectedSerialized:Z}:{},step:J.step,timestamp:J.createdAt,operations:Q}}function Ai($,U,J,G,X,Q){if(!X)return;Q.validateAttributeValueSizes(G??{}),U.operations.push({type:"put",key:P.attribute($),value:W(U.checkpoint.searchAttributes)}),U.operations.push(...W$($,J,U.checkpoint.searchAttributes))}async function qA($,U,J,G,X){xi($,U,G,X);let Q=X.appendTimelineBatchOperations(U,J,G.step,G.timestamp,G.operations),{newHead:Z,timestamp:Y}=Si($,U,G),_=$.options.historyPolicy.retentionWindow,H=_===null?null:await mK($.storage,U,Z.sequence,_,G.operations),D=PX($,U);if(D!==void 0)G.operations.push(...D.operations);let L=$.storage.capabilities().conditionalBatch,F=Ci(D,L),M=Ri(U,G,L,F);if(await G$($,G.operations,M,()=>{return Error(`Checkpoint commit for workflow "${U}" lost its CAS race against a newer checkpoint.`)}),D!==void 0)FX($,U);if(G.expectedSerialized!==void 0)RX($,U,G.serialized);if($.pendingTimelineEntries.set(U,Q),$.checkpoints.set(U,G.checkpoint),$.eventLogHeads.set(U,Z),H!==null)Ei($,U,H,X);if(j3($,U,"events",{workflowId:U,selector:"events",kind:"workflow:checkpoint",sequence:Z.sequence,timestamp:Y,payload:{step:G.step}}),X.swallowPromiseRejection(X.pruneCheckpointHistory(U,G.step)),Ti($,Z.sequence))await X.enforceHistoryCircuitBreaker(U)}function Ci($,U){if(!U)return[];return $?.conditions??[]}function Ri($,U,J,G){let X=[];if(J&&U.expectedSerialized!==void 0)X.push({key:P.checkpoint($),expectedValue:U.expectedSerialized});return X.push(...G),X}function Ti($,U){let J=$.options.historyPolicy.maxEvents;return J!==null&&U+1>J}function Ei($,U,J,G){let X=$.options.archiveAdapter;if(X===null||J.deletedEntries.length===0)return;let{from:Q,to:Z}=J.deletedRange,Y=`events:${Q}-${Z}`,_=kK(J.deletedEntries);G.swallowPromiseRejection(Promise.resolve().then(()=>X.store(U,Y,_)))}function xi($,U,J,G){if(J.serialized.byteLength>=$.options.checkpointSizeWarningThreshold)G.dispatchEvent(new V0(U,J.serialized.byteLength,J.step))}function Si($,U,J){return new n$($.storage,U).appendToBatch({type:"workflow:checkpoint",payload:Kz(J.step,J.replayPayload)},J.operations,$.eventLogHeads.get(U)??v1,$.workflowVersionTuples.get(U))}function NA($,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 OA($,U,J){let G=$.options.checkpointHistory;if(G<=0)return;let X=J-G;if(X<1)return;let Q=P.checkpointHistory(U,X);await $.storage.delete(Q)}function AA($,U,J){if(!$.options.development)return;let G=$.inlineStrategy?.getContext(U);if(!G)return;let X=G.stepIndex,Q=$.checkpoints.get(U);if(!Q)return;let Z=sj({...Q,locals:G.checkpointLocals,accumulatedResults:G.checkpointAccumulatedResults});if(!Z.valid){let Y=Z.divergences.map((H)=>H.path),_=`Checkpoint at step ${X} has ${Z.divergences.length} non-serializable field(s)`;J.dispatchEvent(new n6(U,_,Y))}}async function CA($,U,J){let G=$.inlineStrategy?.getContext(U);if(!G)return!1;let Q=$.registrations.get(G.workflowType)?.constraints;if(!Q||Q.length===0)return!1;let Z={id:U,type:G.workflowType,status:"running"};for(let Y of Q){if(!await bi(Y,Z))continue;if(vi(J,U,Y),Y.onViolation==="warn"){gi(U,Y);continue}let H=Error(`Constraint violated: ${Y.name} (scope: ${Y.scope})`);if(Y.onViolation==="fail")await Ii(J,U,H);else hi(J,U,H);return!0}return!1}async function bi($,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 vi($,U,J){$.dispatchEvent(new B0(U,J.name,J.scope,J.onViolation))}function gi($,U){console.warn(`[weft] Constraint "${U.name}" (scope: ${U.scope}) violated on workflow "${$}" — continuing (onViolation: 'warn')`)}async function Ii($,U,J){$.cancelWorkflowInStrategy(U),await $.failWorkflow(U,J)}function hi($,U,J){$.feedOperationResult(U,{status:"failed",error:J.message,errorName:J.name,failureCategory:"application"},{value:J})}async function RA($,U,J,G){if(J.type!=="wait-signal"||$.inlineStrategy===null)return!1;let X=$.inlineStrategy,Q=X.getContext(U);if(Q&&(MA(Q)||zA(Q)))return!1;if(await G.hasBufferedSignal(U,J.signalName))return!1;if(!await G.runSerializedWorkflowStateWrite(U,async()=>{let Y=await G.loadWorkflowState(U);if($.terminalizingWorkflows.has(U)||!Y||Y.status!=="running")return!1;return X.parkWorkflow(U,{retainContext:!0}),$.parkedInlineWorkflows.add(U),!0}))return!1;if(await G.hasBufferedSignal(U,J.signalName))await G.resumeParkedInlineWorkflow(U);return!0}async function H3($,U,J){if(!$.parkedInlineWorkflows.has(U))return;$.parkedInlineWorkflows.delete(U);try{await u8($,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 TA($,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 EA($,U,J){switch(U.type){case"completed":await zD($,U.workflowId,U.result,J.createTerminationCallbacks());break;case"failed":{let G=Error(U.error);if(U.errorStack)G.stack=U.errorStack;await r$($,U.workflowId,G,J.createTerminationCallbacks(),U.failureCategory??"system");break}case"checkpoint":{let G=J.translateOperationRequest(U.operationRequest);if(await J.persistCheckpoint(U.workflowId,G,U.checkpoint),J.validateDevelopmentCheckpoint(U.workflowId),await J.evaluateConstraints(U.workflowId))break;if(await J.parkInlineWorkflowAfterCheckpoint(U.workflowId,G))break;if(G.type==="wait-signal"&&$.inlineStrategy===null){J.processOperation(U.workflowId,G).catch((Q)=>{let Z=Q instanceof Error?Q:Error(String(Q));return r$($,U.workflowId,Z,J.createTerminationCallbacks(),"system")});break}await J.processOperation(U.workflowId,G);break}}}function D3($){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 L3($){$.nextRetentionSweepAt=$.options.getNow()+$.options.retentionSweepIntervalMs}function V3($,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 P3($,U,J){try{await E8($,void 0,{expiredOnly:!0,limit:$.options.retentionSweepBatchSize,now:$.options.getNow()},J)}catch(G){U("retentionSweep",G)}}function iD($,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 xA($,U=(J)=>iD($,J)){let J=[...$.registrations.keys()].toSorted().map((G)=>U(G));return{defaultRetention:$.options.retention,sweepIntervalMs:$.options.retentionSweepIntervalMs,sweepBatchSize:$.options.retentionSweepBatchSize,nextSweepAt:$.nextRetentionSweepAt,workflowTypes:J}}function e8($){return{createLifecycleCallbacks:()=>C$($),createTerminationCallbacks:()=>a($),evaluateConstraints:(U)=>CA(V($),U,kN($)),getParkedWorkflowResumeDisposition:(U)=>TA(V($),U,e8($)),hasBufferedSignal:(U,J)=>SW(V($),U,J),loadWorkflowState:(U)=>l(V($),U),parkInlineWorkflowAfterCheckpoint:(U,J)=>RA(V($),U,J,e8($)),persistCheckpoint:(U,J,G)=>yi($,U,J,G),processOperation:(U,J)=>_O(V($),U,J,lD($)),readCheckpointBytes:(U)=>V($).storage.get(P.checkpoint(U)),resumeParkedInlineWorkflow:(U)=>H3(V($),U,e8($)),runSerializedWorkflowStateWrite:(U,J)=>G6(V($),U,J),translateOperationRequest:(U)=>YO(V($),U),validateDevelopmentCheckpoint:(U)=>AA(V($),U,{dispatchEvent:(J)=>{$.dispatchEvent(J)}})}}function yi($,U,J,G){return WA(V($),U,J,G,{appendTimelineBatchOperations:(X,Q,Z,Y,_)=>BA(V($),X,Q,Z,Y,_),swallowPromiseRejection:(X)=>{x6(X)},validateAttributeValueSizes:C0,pruneCheckpointHistory:(X,Q)=>OA(V($),X,Q),dispatchEvent:(X)=>{$.dispatchEvent(X)},enforceHistoryCircuitBreaker:(X)=>i1(V($),X,"timed-out",a($),tG)})}function mi($){V3(V($),{hasConfiguredRetention:()=>D3(V($)),runRetentionSweep:()=>P3(V($),(U,J)=>a($).handleCleanupError(U,J),(U)=>s6(V($),U,a($))),setNextRetentionSweepAt:()=>L3(V($))})}mN(($)=>mi($));async function SA($,U){let J=[],G=new n$($.storage,U);for await(let X of G.scan())J.push({type:X.type,timestamp:X.timestamp,data:hj(X.payload)});return J}async function bA($,U){if($.options.checkpointHistory<=0)return[];let J=`${P.checkpoint(U)}:`,G=[];for await(let[,X]of $.storage.scan(J,{reverse:!0,limit:$.options.checkpointHistory})){let Q=D$(X);G.push({step:Q.step,timestamp:Q.createdAt,sizeBytes:X.byteLength})}return G}async function vA($,U,J){let G=await $.storage.get(P.checkpointHistory(U,J));if(!G)return null;let X=await I1($.storage,U,D$(G));return Ij({step:X.step,locals:X.locals,searchAttributes:X.searchAttributes,version:X.version,createdAt:X.createdAt})}async function gA($,U){let J=[];for await(let[,G]of $.storage.scan(P.timelinePrefix(U))){let X;try{X=A(G)}catch{continue}if(gz(X))J.push({...X,inputSummary:yj(X.inputSummary)??X.inputSummary,...X.outputSummary!==void 0?{outputSummary:yj(X.outputSummary)??X.outputSummary}:{}})}return J.sort((G,X)=>G.step-X.step),J}async function IA($,U,J){let G=await $.storage.get(P.checkpointHistory(U,J));if(!G)return null;let Q=await new n$($.storage,U).replay(Math.max(J-1,-1)),Z=await I1($.storage,U,D$(G)),Y=await X1($.storage,U);return{checkpoint:Ij({step:Z.step,locals:Z.locals,searchAttributes:Z.searchAttributes,version:Z.version,createdAt:Z.createdAt}),accumulatedResults:Z.accumulatedResults.map(([_,H])=>[_,b1(H)]),events:Q.map((_)=>({type:_.type,timestamp:_.timestamp,data:hj(_.payload)})),...Y!==null?{compactedBefore:Y.sequence}:{}}}function hA($,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 nD{#$;#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=hA(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 rD{#$;#U;#J;constructor($){this.#$=$,this.#U=[],this.#J=[]}record($,U){this.#U.push({timestamp:$,value:U}),this.#G(U),this.#Q($)}percentile($,U){if(this.#Q(U),this.#J.length===0)return 0;let J=Math.ceil($/100*this.#J.length)-1;return this.#J[Math.max(0,J)]??0}#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)}#Q($){let U=$-this.#$,J=hA(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 ki=1e4;class oD{#$;#U;#J;#G;#X;#Q;#Z;#Y;#_;constructor($,U,J=Date.now){this.#$=$,this.#U=U,this.#Y=J,this.#Q=0,this.#Z=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],Q=X.window?Q$(X.window):60000;if(X.metric==="workflow.failure_rate")this.#G.set(G,new nD(Q));else if(X.metric==="activity.p99_duration")this.#G.set(G,new rD(Q))}this.#L(),this.#_=setInterval(this.#V.bind(this),ki)}#V(){for(let $=0;$<this.#U.rules.length;$++)this.#j($)}#L(){let $=this.#U.rules.some((G)=>G.metric==="workflow.failure_rate"),U=this.#U.rules.some((G)=>G.metric==="activity.p99_duration");if($){let G=(X)=>{let Q=this.#Y();for(let Z=0;Z<this.#U.rules.length;Z++){if(this.#U.rules[Z].metric!=="workflow.failure_rate")continue;this.#G.get(Z).record(Q,X),this.#j(Z)}};this.#H("workflow:completed",()=>G(!1));for(let X of["workflow:failed","workflow:timed-out","workflow:cancelled"])this.#H(X,()=>G(!0))}if(U)this.#H("activity:completed",(G)=>{if(!(G instanceof Y0))return;let X=this.#Y();for(let Q=0;Q<this.#U.rules.length;Q++){if(this.#U.rules[Q].metric!=="activity.p99_duration")continue;this.#G.get(Q).record(X,G.duration),this.#j(Q)}});if(this.#U.rules.some((G)=>G.metric==="storage.size"))this.#H("storage:size-reported",(G)=>{if(!(G instanceof F0))return;this.#Q=G.sizeBytes;for(let X=0;X<this.#U.rules.length;X++){if(this.#U.rules[X].metric!=="storage.size")continue;this.#j(X)}})}#H($,U){this.#X.push({type:$,handler:U}),this.#$.addEventListener($,U)}#j($){let U=this.#U.rules[$],J=this.#J[$],G=this.#Y(),X=0,Q=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.#Q;if(J.currentValue=X,X>=Q&&J.status==="idle")J.status="firing",J.lastFiredAt=G,this.#$.dispatchEvent(new M0(U.metric,Q,X,U.window)),this.#D(U,"alert:fired",X);else if(X<Q&&J.status==="firing")J.status="idle",J.lastResolvedAt=G,this.#$.dispatchEvent(new z0(U.metric,Q,X,U.window)),this.#D(U,"alert:resolved",X)}#D($,U,J){if($.action==="log")console.warn(`[weft:alert] ${U}: ${$.metric} = ${J} (threshold: ${$.threshold})`);if($.action==="webhook")this.#P($,U,J)}#P($,U,J){let G=this.#U.webhooks??[];for(let X of G){if(!X.events.includes(U))continue;let Q=new AbortController;this.#Z.add(Q);let Z={event:U,alert:{metric:$.metric,threshold:$.threshold,currentValue:J,window:$.window,timestamp:this.#Y()}};fetch(X.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Z),signal:AbortSignal.any([Q.signal,AbortSignal.timeout(30000)])}).catch(()=>{}).finally(this.#Z.delete.bind(this.#Z,Q))}}get states(){return this.#J}[Symbol.dispose](){if(this.#_!==null)clearInterval(this.#_),this.#_=null;for(let{type:$,handler:U}of this.#X)this.#$.removeEventListener($,U);this.#X=[];for(let $ of this.#Z)$.abort();this.#Z.clear()}}function yA(){let $=Wz();if(!$)throw Error("Brotli compression requires Bun or Node 22.5+ with process.getBuiltinModule support. Use gzip compression for browser/edge runtimes.");return $}function fi($){return new Uint8Array(yA().brotliCompressSync($))}function ui($){return new Uint8Array(yA().brotliDecompressSync($))}var F3=193,sD=0,mA=1,kA=2,U4=2;function fA($){return wi($)}function wi($){switch($){case"gzip":return{algorithm:"gzip",compress(U){return zz(U)}};case"brotli":return{algorithm:"brotli",compress(U){return fi(U)}};case"none":return{algorithm:"none",compress(U){return U}}}}async function aD($,U,J){if($.length<J||U.algorithm==="none"){let Z=new Uint8Array($.length+U4);return Z[0]=F3,Z[1]=sD,Z.set($,U4),Z}let G=await U.compress($);if(G.length+U4>=$.length+U4){let Z=new Uint8Array($.length+U4);return Z[0]=F3,Z[1]=sD,Z.set($,U4),Z}let X=U.algorithm==="gzip"?mA:kA,Q=new Uint8Array(G.length+U4);return Q[0]=F3,Q[1]=X,Q.set(G,U4),Q}async function tD($){if($.length<U4)throw Error("Compression payload missing 2-byte header.");if($[0]!==F3)throw Error("Compression payload missing magic byte 0xC1.");let U=$[1],J=$.slice(U4);switch(U){case sD:return J;case mA:return Bz(J);case kA:return ui(J);default:throw Error(`Compression payload uses unsupported algorithm byte 0x${U.toString(16).padStart(2,"0")}.`)}}var ci=4096,pi="gzip";function uA($){return{threshold:$?.threshold??ci,algorithm:$?.algorithm??pi}}class eD{#$;#U;#J;constructor($,U){this.#$=$;let J=uA(U);if(this.#U=fA(J.algorithm),this.#J=J.threshold,$.query){let G=$.query.bind($);Object.defineProperty(this,"query",{value:G,enumerable:!0,configurable:!0})}}capabilities(){let $=this.#$.capabilities();return{...$.persistence===void 0?{}:{persistence:$.persistence},readAfterWrite:$.readAfterWrite,scanConsistency:$.scanConsistency,atomicBatch:$.atomicBatch,conditionalBatch:!1,boundedRangeDelete:!1}}async get($){let U=await this.#$.get($);if(!U)return null;return tD(U)}async put($,U){let J=await aD(U,this.#U,this.#J);return this.#$.put($,J)}async delete($){return this.#$.delete($)}async*scan($,U){for await(let[J,G]of this.#$.scan($,U))yield[J,await tD(G)]}async batch($){W6("batch operations",$.length);let U=await Promise.all($.map(async(J)=>{if(J.type==="put")return{type:"put",key:J.key,value:await aD(J.value,this.#U,this.#J)};return J}));return this.#$.batch(U)}[Symbol.dispose](){this.#$[Symbol.dispose]()}}function di($){if($===void 0)return;if(typeof $!=="number"||!Number.isInteger($)||$<0)throw Error("deleteRange limit must be a finite non-negative integer");return $===0?0:$}function $J($){let U={},J=!1;for(let X of["gt","gte","lt","lte"]){let Q=$[X];if(Q===void 0)continue;if(typeof Q!=="string")throw Error("deleteRange bounds must be strings");U[X]=Q,J=!0}if(!J)throw Error("deleteRange requires at least one of gt/gte/lt/lte; use deletePrefix to delete a whole prefix");let G=di($.limit);if(G!==void 0)U.limit=G;return U}async function wA($,U,J){let G=$J(J);if($.deleteRange)return $.deleteRange(U,G);return TM($,U,G)}function li($,U){let J={key:$,open:!1};if(U.gte!==void 0&&U.gte>J.key)J.key=U.gte,J.open=!1;if(U.gt!==void 0&&U.gt>=J.key)J.key=U.gt,J.open=!0;return J}function ii($,U){let J={key:c$($),open:!0};if(U.lt!==void 0&&U.lt<=J.key)J.key=U.lt,J.open=!0;if(U.lte!==void 0&&U.lte<J.key)J.key=U.lte,J.open=!1;return J}function GV$($,U){let J=li($,U),G=ii($,U);if(J.key>G.key||J.key===G.key&&(J.open||G.open))return null;return{lower:J,upper:G}}function $L($){return $.replaceAll(/:+$/g,"")}function ni($,U){let J=$L($),G=$L(U);if(J.length===0)return G;if(G.length===0)return J;return`${J}:${G}`}class UL{#$;#U;constructor($,U){this.#$=$,this.#U=$L(U)}#J($){if(this.#U.length===0)return $;return $.length===0?`${this.#U}:`:`${this.#U}:${$}`}#G($){if(this.#U.length===0)return $;return $.slice(this.#U.length+1)}#X($={}){let U={};if($.limit!==void 0)U.limit=$.limit;if($.reverse!==void 0)U.reverse=$.reverse;if($.gt!==void 0)U.gt=this.#J($.gt);if($.gte!==void 0)U.gte=this.#J($.gte);if($.lt!==void 0)U.lt=this.#J($.lt);if($.lte!==void 0)U.lte=this.#J($.lte);return U}#Q($){let U={};if($.limit!==void 0)U.limit=$.limit;if($.gt!==void 0)U.gt=this.#J($.gt);if($.gte!==void 0)U.gte=this.#J($.gte);if($.lt!==void 0)U.lt=this.#J($.lt);if($.lte!==void 0)U.lte=this.#J($.lte);return U}capabilities(){return this.#$.capabilities()}scoped($){return new UL(this.#$,ni(this.#U,$))}async get($){return this.#$.get(this.#J($))}async put($,U){await this.#$.put(this.#J($),U)}async delete($){await this.#$.delete(this.#J($))}async*scan($,U){for await(let[J,G]of this.#$.scan(this.#J($),this.#X(U)))yield[this.#G(J),G]}async batch($){W6("batch operations",$.length),await this.#$.batch($.map((U)=>{if(U.type==="put")return{type:"put",key:this.#J(U.key),value:U.value};return{type:"delete",key:this.#J(U.key)}}))}async conditionalBatch($,U){return e(this.#$,$.map((J)=>({key:this.#J(J.key),expectedValue:J.expectedValue})),U.map((J)=>{if(J.type==="put")return{type:"put",key:this.#J(J.key),value:J.value};return{type:"delete",key:this.#J(J.key)}}))}async has($){return v$(this.#$,this.#J($))}async deletePrefix($){return vM(this.#$,this.#J($))}async deleteRange($,U){let J=this.#Q($J(U));return wA(this.#$,this.#J($),J)}async*keys($,U){for await(let J of Q9(this.#$,this.#J($),this.#X(U)))yield this.#G(J)}async count($){return bM(this.#$,this.#J($))}[Symbol.dispose](){this.#$[Symbol.dispose]()}}function cA($,U){return new UL($,U)}class JL{#$;constructor(){this.#$=new Map}capabilities(){return{persistence:"ephemeral",readAfterWrite:"linearizable",scanConsistency:"snapshot",atomicBatch:!0,conditionalBatch:!0,boundedRangeDelete:!0}}#U($,U,J){return $>=U&&$<J}#J($,U){let J=[];for(let G of this.#$.keys())if(this.#U(G,$,U))J.push(G);return J.toSorted()}async get($){return this.#$.get($)??null}async put($,U){this.#$.set($,U)}async delete($){this.#$.delete($)}async*scan($,U={}){let{limit:J,reverse:G}=U,X=c$($),Q=this.#J($,X);if(Q=Q.filter((Y)=>G9(Y,U)),G)Q.reverse();let Z=0;for(let Y of Q){if(J!==void 0&&Z>=J)break;let _=this.#$.get(Y);if(_!==void 0)yield[Y,_],Z++}}async batch($){W6("batch operations",$.length),this.#G($)}#G($){for(let U of $)if(U.type==="put")this.#$.set(U.key,U.value);else this.#$.delete(U.key)}async conditionalBatch($,U){W6("conditionalBatch conditions",$.length),W6("conditionalBatch operations",U.length);for(let J of $){let G=this.#$.get(J.key)??null;if(!X9(G,J.expectedValue))return!1}return this.#G(U),!0}async has($){return this.#$.has($)}async deletePrefix($){let U=c$($),J=this.#J($,U);for(let G of J)this.#$.delete(G);return J.length}async deleteRange($,U){let J=$J(U),G=c$($),X=this.#J($,G).filter((Z)=>G9(Z,J)),Q=J.limit===void 0?X:X.slice(0,J.limit);for(let Z of Q)this.#$.delete(Z);return Q.length}async*keys($,U={}){let{limit:J,reverse:G}=U,X=c$($),Q=this.#J($,X);if(Q=Q.filter((Y)=>G9(Y,U)),G)Q.reverse();let Z=0;for(let Y of Q){if(J!==void 0&&Z>=J)break;yield Y,Z++}}async count($){let U=c$($);return this.#J($,U).length}scoped($){return cA(this,$)}get size(){return this.#$.size}clear(){this.#$.clear()}snapshot(){let $=new Map;for(let[U,J]of this.#$)$.set(U,new Uint8Array(J));return $}[Symbol.dispose](){this.#$.clear()}}class GL{#$;#U;constructor($,U){this.#$=$,this.#U=U?.timeoutMilliseconds??30000}async execute($){let U=await this.#$.acquire(),J=!1;try{return await new Promise((G)=>{let X=!1,Q=(D)=>{if(X)return;X=!0,H(),G(D)},Z=(D)=>{if(D.data.operationId===$.operationId)Q(D.data)},Y=(D)=>{Q({operationId:$.operationId,status:"failed",error:`Activity worker crashed: ${D.message??"unknown error"}`})},_=setTimeout(()=>{Q({operationId:$.operationId,status:"failed",error:`Activity "${$.activityName}" timed out after ${this.#U}ms (operationId: ${$.operationId})`}),J=!0,U.terminate()},this.#U),H=()=>{clearTimeout(_),U.removeEventListener("message",Z),U.removeEventListener("error",Y)};U.addEventListener("message",Z),U.addEventListener("error",Y),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]()}}class M3{#$;#U;#J;#G;#X;#Q;#Z;#Y;#_;constructor($){this.#$=new Set,this.#U=[],this.#J=[],this.#G=new Map,this.#X=$.concurrency,this.#Q=$.workerUrl,this.#Z=$.smol??!1,this.#Y=!1,this.#_=null}async acquire(){if(this.#Y)throw Error("WorkerPool has been disposed");let $=this.#U.pop();if($)return $;if(this.#$.size<this.#X)return this.#V();return new Promise((U,J)=>{this.#J.push({resolve:U,reject:J})})}async acquireSpecificWorker($){if(this.#Y)throw Error("WorkerPool has been disposed");if(!this.#$.has($))throw Error("Worker does not belong to this WorkerPool");let U=this.#U.indexOf($);if(U>=0)return this.#U.splice(U,1),$;return new Promise((J,G)=>{let X=this.#G.get($)??[];X.push({resolve:J,reject:G}),this.#G.set($,X)})}discard($){if(!this.#$.has($))return;this.#$.delete($),this.#H($),this.#j($,Error("Worker was discarded from this WorkerPool")),$.terminate(),this.#P(),this.#F()}release($){if(this.#Y&&!this.#_)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.#F()}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.#Y)return;this.#Y=!0,this.#L()}async[Symbol.asyncDispose](){if(this.#Y)return;if(this.#Y=!0,this.#D(Error("WorkerPool has been disposed")),this.#U.length===this.#$.size){this.#L();return}return new Promise(($)=>{this.#_=()=>{this.#L(),$()}})}#V(){let $={};if(this.#Z)$.smol=!0;let U=new Worker(this.#Q,$);return this.#$.add(U),U}#L(){this.#D(Error("WorkerPool has been disposed"));for(let $ of this.#$)$.terminate();this.#$.clear(),this.#U.length=0,this.#J.length=0,this.#G.clear()}#H($){let U=this.#U.indexOf($);if(U>=0)this.#U.splice(U,1)}#j($,U){let J=this.#G.get($);if(!J)return;this.#G.delete($);for(let G of J)G.reject(U)}#D($){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()}#P(){if(this.#Y)return;while(this.#J.length>0){let $=this.#U.shift();if($){this.#J.shift()?.resolve($);continue}if(this.#$.size<this.#X){this.#J.shift()?.resolve(this.#V());continue}return}}#F(){if(this.#_&&this.#U.length===this.#$.size)this.#_(),this.#_=null}}function pA($,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},...ri($,J.workflowId),services:$.getWorkflowServices?.(J.workflowId),...oi($)}}function ri($,U){let{registerCancelHandler:J,recordFinalizerState:G}=$;return{...J!==void 0&&{registerCancelHandler:(X)=>J(U,X)},...G!==void 0&&{recordFinalizerState:(X)=>G(U,X)}}}function oi($){let U=$.getLogSink?.();return U===void 0?{}:{logSink:U}}function dA($){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}}}class XL{#$;#U;#J;#G;#X;#Q;#Z;#Y;constructor($){this.#$=$,this.#U=new Map,this.#J=new Map,this.#G=new Map,this.#X=new Map,this.#Q=new Map,this.#Z=new Map,this.#Y=null}onMessage($){this.#Y=$}startWorkflow($){let U=this.#$.getRegistration($.workflowType);if(!U){this.#j({type:"failed",workflowId:$.workflowId,error:`No workflow registered with name "${$.workflowType}"`});return}let J=new AbortController;this.#J.set($.workflowId,J);let G=new Q1(pA(this.#$,U,$,J)),X=this.#$.getComposedWorkflowInterceptor?.()??null;if(I0(G,X),this.#$.development)G.explain(!0);this.#G.set($.workflowId,G);let Q=U.handler(G,$.input);this.#U.set($.workflowId,Q),this.#_($.workflowId,Q,void 0)}resumeWorkflow($){let U=this.#U.get($.workflowId);if(!U){this.#j({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"?B9($.operationResult):void 0;if(X)this.#V($.workflowId,U,X,G);else this.#_($.workflowId,U,J)}cancelWorkflow($){let U=this.#J.get($);if(U)U.abort();this.#D($)}parkWorkflow($,U){let J=U?.retainContext?this.#G.get($)??this.#X.get($):void 0;if(this.#D($),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.#Z.get($)}waitForWorkflowAdvance($){return this.#Q.get($)}hasGenerator($){return this.#U.has($)}continueWorkflow($,U){let J=this.#U.get($);if(!J)return;this.#_($,J,U)}throwIntoWorkflow($,U,J){let G=this.#U.get($);if(!G)return;this.#V($,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.#Q.clear(),this.#Z.clear(),this.#Y=null}async[Symbol.asyncDispose](){this[Symbol.dispose]()}#_($,U,J){return this.#L($,(async()=>{try{if(this.#J.get($)?.signal.aborted)return;let X=await U.next(J);if(X.done){this.#D($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0}),this.#j({type:"completed",workflowId:$,result:X.value});return}let Q=X.value;this.#j({type:"checkpoint",workflowId:$,checkpoint:new ArrayBuffer(0),operationRequest:Q})}catch(G){this.#D($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0});let X={type:"failed",workflowId:$,error:G instanceof Error?G.message:String(G),failureCategory:t2(G,{defaultErrorCategory:"application"})};if(G instanceof Error&&G.stack!==void 0)X.errorStack=G.stack;this.#j(X)}})())}#V($,U,J,G){return this.#L($,(async()=>{try{if(this.#J.get($)?.signal.aborted)return;let Q=await U.throw(J);if(Q.done){this.#D($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0}),this.#j({type:"completed",workflowId:$,result:Q.value});return}let Z=Q.value;this.#j({type:"checkpoint",workflowId:$,checkpoint:new ArrayBuffer(0),operationRequest:Z})}catch(X){this.#D($,{preserveTrackedAdvance:!0,preserveTrackedTurn:!0});let Q={type:"failed",workflowId:$,error:X instanceof Error?X.message:String(X),failureCategory:G??t2(X,{defaultErrorCategory:"application"})};if(X instanceof Error&&X.stack!==void 0)Q.errorStack=X.stack;this.#j(Q)}})())}#L($,U){let J=U.finally(()=>{if(this.#Q.get($)===J)this.#Q.delete($)});return J.catch(()=>{}),this.#Q.set($,J),J}#H($,U){let J=U.finally(()=>{if(this.#Z.get($)===J)this.#Z.delete($)});return J.catch(()=>{}),this.#Z.set($,J),J}#j($){let U=this.#Y?.($);if(U instanceof Promise){this.#H($.workflowId,U);return}this.#Z.delete($.workflowId)}#D($,U){if(this.#U.delete($),this.#J.delete($),this.#G.delete($),this.#X.delete($),!U?.preserveTrackedAdvance)this.#Q.delete($);if(!U?.preserveTrackedTurn)this.#Z.delete($)}}class QL{#$=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($)}}var si=new Set(["debug","info","warn","error"]);function ai($){if($===void 0)return!0;if(typeof $!=="object"||$===null)return!1;let U=Object.getPrototypeOf($);return U===Object.prototype||U===null}function z3($){if(typeof $!=="object"||$===null)return!1;let U=$;return si.has(U.level)&&typeof U.message==="string"&&typeof U.workflowId==="string"&&typeof U.workflowType==="string"&&typeof U.timestamp==="number"&&Number.isFinite(U.timestamp)&&ai(U.attributes)}function lA($){return typeof $==="object"&&$!==null&&$.type==="log"}var x4=1,rA=1000,oA=1048576,ZL=4096,sA=60000,aA=5000,tA=5,iA="__weftBinaryBytes",ti="__weftDate",ei="__weftError",$n="__weftMap",Un="__weftSet";class K$ extends Error{constructor($){super($);this.name="WorkerProtocolError"}}class d0 extends K${actualBytes;maxBytes;constructor($,U){super(`Worker protocol message is ${$} bytes, exceeding limit ${U}`);this.actualBytes=$;this.maxBytes=U}}function Jn($){let U=0;return W(p0($,[],(G)=>{U+=G})).byteLength+U}function UJ($,U){let J=Jn($);if(U!==void 0&&J>U)throw new d0(J,U);return J}function eA($){let U=Gn($);Xn(U),Qn(U)}function Gn($){if(typeof $!=="object"||$===null)throw new K$("Worker outbound message must be an object");return $}function Xn($){if(typeof $.workflowId!=="string")throw new K$("Worker outbound message must include workflowId");nA($,"protocolVersion"),nA($,"turnId")}function nA($,U){if($[U]!==void 0&&!Number.isSafeInteger($[U]))throw new K$(`Worker outbound message ${U} must be an integer`)}function Qn($){switch($.type){case"checkpoint":Zn($);return;case"completed":return;case"failed":Yn($);return;case"log":_n($);return;default:throw new K$("Worker outbound message has an unsupported type")}}function Zn($){if(!($.checkpoint instanceof ArrayBuffer))throw new K$("Worker checkpoint message must include checkpoint bytes");if(typeof $.operationRequest!=="object"||$.operationRequest===null)throw new K$("Worker checkpoint message must include operationRequest")}function Yn($){if(typeof $.error!=="string")throw new K$("Worker failed message must include an error string")}function _n($){if(!z3($.record))throw new K$("Worker log message must include a valid log record")}function p0($,U,J){let G=jn($,U,J);if(G.handled)return G.value;if(U.includes($))throw new K$("Worker protocol message cannot include cyclic values");if(!$2($).valid)throw new K$("Worker protocol message contains non-cloneable values");return Ln($,U,J)}function jn($,U,J){if(typeof $==="function"||typeof $==="symbol")throw new K$("Worker protocol message cannot include functions or symbols");let G=Hn($,J);if(G.handled)return G;let X=Dn($,U,J);if(X.handled)return X;if(Array.isArray($))return{handled:!0,value:$.map((Q)=>p0(Q,U,J))};if(typeof $!=="object"||$===null)return{handled:!0,value:$};return{handled:!1}}function Hn($,U){if($ instanceof ArrayBuffer)return U($.byteLength),{handled:!0,value:{[iA]:$.byteLength}};if(ArrayBuffer.isView($))return U($.byteLength),{handled:!0,value:{[iA]:$.byteLength}};return{handled:!1}}function Dn($,U,J){if($ instanceof Date)return{handled:!0,value:{[ti]:$.toISOString()}};if($ instanceof Error)return{handled:!0,value:{[ei]:{name:$.name,message:$.message}}};if($ instanceof Map)return{handled:!0,value:{[$n]:[...$.entries()].map(([G,X])=>[p0(G,U,J),p0(X,U,J)])}};if($ instanceof Set)return{handled:!0,value:{[Un]:[...$.values()].map((G)=>p0(G,U,J))}};return{handled:!1}}function Ln($,U,J){U.push($);try{let G={};for(let X of Object.keys($).toSorted())G[X]=p0($[X],U,J);return G}finally{U.pop()}}class YL{#$;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=x4;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,[Vn(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 Vn($){if($ instanceof ArrayBuffer)return $;if($.buffer instanceof ArrayBuffer)return $.buffer;throw Error("Worker checkpoint must use an ArrayBuffer-backed view")}class _L{#$=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 $C($,U){let J={type:"run",protocolVersion:x4,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 jL($,U){let J={type:"resume",protocolVersion:x4,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}class HL{#$=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 UC($,U){try{let J=$?.(U);if(J instanceof Promise)return J.then(()=>!1,()=>!0);return!1}catch{return!0}}function JC($){let U=$.operationRequest;return U.type==="wait-signal"||U.kind==="signal-wait"}function GC($,U,J){if(J!==void 0)try{UJ($,J)}catch(X){return X instanceof d0?"dropped-oversize":"dropped-invalid"}if(!z3($.record))return"dropped-invalid";let G=$.record;if(G.workflowId!==$.workflowId)return"dropped-invalid";if(U!==void 0)try{U(G)}catch{pX(G)}return"accepted-valid"}class QC{#$;#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.#Q($),G=U-J.windowStartedAt;if(G>=this.#$||G<0)J.windowStartedAt=U,J.arrivalsInWindow=0;return J.arrivalsInWindow+=1,J.arrivalsInWindow>this.#U?"discard":"tolerate"}recordOutcome($,U){switch(U){case"accepted-valid":return"tolerate";case"dropped-oversize":case"dropped-invalid":{let J=this.#Q($);return J.lifetimeStrikes+=1,J.lifetimeStrikes>=this.#J?"discard":"tolerate"}default:throw Error(`Unknown forwarded-log outcome: ${String(U)}`)}}forget($){this.#X.delete($)}#Q($){let U=this.#X.get($);if(!U)U={windowStartedAt:this.#G(),arrivalsInWindow:0,lifetimeStrikes:0},this.#X.set($,U);return U}}class ZC{#$;#U;#J;constructor($){this.#U=$.onLog,this.#J=$.maxProtocolMessageBytes,this.#$=new QC({floodWindowMs:$.floodWindowMs??sA,floodThreshold:$.floodThreshold??aA,strikeThreshold:$.strikeThreshold??tA,getNow:$.getNow??Date.now})}get hasSink(){return this.#U!==void 0}handle($,U,J){if(this.#$.recordArrival($)==="discard")return XC("forwarded-log flooding");if(typeof U.workflowId!=="string"||!J(U.workflowId))return null;let G=GC(U,this.#U,this.#J);if(this.#$.recordOutcome($,G)==="discard")return XC("repeated oversize/invalid forwarded logs");return null}forget($){this.#$.forget($)}}function XC($){let U=`Worker discarded for log abuse: ${$}`;return{targetCategory:"system",targetError:U,otherCategory:"system",otherError:U}}function YC($,U){return new ZC({onLog:$?.onLog,maxProtocolMessageBytes:U,getNow:$?.getNow,floodWindowMs:$?.forwardedLogFloodWindowMs,floodThreshold:$?.forwardedLogFloodThreshold,strikeThreshold:$?.forwardedLogStrikeThreshold})}class DL{#$;#U;#J;constructor($,U,J){this.#$=$,this.#U=U,this.#J=J}validateHostToWorkerMessage($){try{return UJ($,this.#$),null}catch(U){return _C(U,{otherError:"Worker protocol send failed"})}}acceptWorkerMessage($,U){try{if(eA(U),UJ(U,this.#$),this.#U)this.#G($,U);return{accepted:!0,message:U}}catch(J){let G=Pn(U);return{accepted:!1,failure:_C(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!==x4)throw new K$("Worker protocol version mismatch");let J=this.#J.get($);if(!J)throw new K$("Worker message arrived outside an active turn");if((U.type==="log"?void 0:U.turnId)!==J.turnId||U.workflowId!==J.workflowId)throw new K$("Worker message did not match the active turn")}}function _C($,U){return{...U.targetWorkflowId===void 0?{}:{targetWorkflowId:U.targetWorkflowId},failureCategory:$ instanceof d0?"resource":"system",error:$ instanceof Error?$.message:String($),otherError:U.otherError}}function Pn($){if(typeof $!=="object"||$===null)return;let U=$.workflowId;return typeof U==="string"?U:void 0}class LL{#$=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($)}}class VL{#$;#U;#J;#G;#X;#Q;#Z;#Y;#_;#V;#L;#H;#j;#D;#P;#F;#z;constructor($,U){let{workflowTurnTimeoutMs:J,maxProtocolMessageBytes:G,requireProtocolVersion:X=!1,discardOnCancel:Q=!1,broadcastEvents:Z=!1}=U??{};if(this.#$=$,this.#U=new _L,this.#J=new HL,this.#Q=new QL,this.#Z=J,this.#Y=G,this.#_=X,this.#V=Q,this.#L=YC(U,G),this.#H=new LL(this.#Z,(Y)=>{this.#S(Y)}),this.#j=new DL(this.#Y,this.#_,this.#H),this.#D=new YL({pool:this.#$,ownership:this.#U,isDisposed:()=>this.#F,requireProtocolVersion:()=>this.#_,validateHostToWorkerMessage:(Y,_,H)=>this.#O(Y,_,H),attachWorkerListeners:(Y)=>{this.#E(Y)},detachWorkerListenersIfIdle:(Y)=>{this.#N(Y)},beginTurn:(Y,_,H,D)=>{this.#H.begin(Y,_,H,D)},clearTurn:(Y)=>{this.#H.clear(Y)},discardWorkerAndFailWorkflows:(Y,_)=>{this.#M(Y,_)},emit:(Y)=>{this.#K(Y)}}),this.#P=null,this.#G=null,this.#X=null,this.#F=!1,this.#z=1,Z)try{this.#G=new BroadcastChannel("weft:events"),this.#X=(Y)=>{this.#b(Y.data)},this.#G.addEventListener("message",this.#X)}catch{}}onMessage($){this.#P=$}startWorkflow($){this.#U.resetWorkflow($.workflowId),this.#Q.resetWorkflow($.workflowId);let U=$C($,this.#B());if(!this.#O($.workflowId,U))return;this.#D.acquireAndSend($.workflowId,U)}resumeWorkflow($){let U=this.#U.getActiveWorker($.workflowId);if(U){this.#Q.recordResume($.workflowId);let G=jL($,this.#B());this.#D.postResumeMessage(U,$,G);return}let J=this.#U.getParkedWorker($.workflowId);if(J){let G=jL($,this.#B());this.#D.resumeParkedWorkflow($,J,G);return}if(this.#U.consumeCancelled($.workflowId))return;if(!this.#F)this.#K({type:"failed",workflowId:$.workflowId,error:`No worker assigned for workflow: ${$.workflowId}`})}#B(){return{turnId:this.#z++,maxProtocolMessageBytes:this.#Y,hasLogSink:this.#L.hasSink}}cancelWorkflow($){let U=this.#U.getActiveWorker($);if(U){if(this.#U.markCancelled($),this.#V){this.#M(U,{targetWorkflowId:$,skipTarget:!0,otherCategory:"system",otherError:`Worker discarded during cancellation of workflow: ${$}`});return}let G={type:"cancel",workflowId:$};if(this.#_)G.protocolVersion=x4;U.postMessage(G),this.#q($);return}let J=this.#U.getParkedWorker($);if(!J)return;if(this.#U.markCancelled($),this.#U.deleteParked($),this.#V){this.#M(J,{targetWorkflowId:$,skipTarget:!0,otherCategory:"system",otherError:`Worker discarded during cancellation of parked workflow: ${$}`});return}this.#D.cancelParkedWorkflow($,J)}[Symbol.dispose](){this.#W(),this.#$[Symbol.dispose]()}async[Symbol.asyncDispose](){this.#W(),await this.#$[Symbol.asyncDispose]()}#W(){if(this.#F=!0,this.#G){if(this.#X)this.#G.removeEventListener("message",this.#X);this.#G.close()}this.#H.clearAll();let $=this.#U.activeWorkflowIds();for(let U of $)this.#q(U);this.#J.detachAll(),this.#U.clear(),this.#Q.clear(),this.#P=null}async#A($,U){if(lA(U)){let Q=(Y)=>this.#U.getTargetWorker(Y)===$,Z=this.#L.handle($,U,Q);if(Z)this.#M($,Z);return}if(!this.#x($,U))return;this.#H.clear($);let J=this.#Q.beginCheckpointHandling(U),G=UC(this.#P,U),X=G instanceof Promise?await G:G;try{if(this.#C($,U))return;if(X)return;this.#R($,U,J)}finally{this.#Q.finishCheckpointHandling(U.workflowId,J,this.#U.isWorkflowClosed(U.workflowId))}}#C($,U){if(U.type!=="completed"&&U.type!=="failed")return!1;return this.#U.consumeCancelled(U.workflowId),this.#U.deleteParked(U.workflowId),this.#q(U.workflowId),this.#N($),this.#Q.forgetWorkflowIfClosed(U.workflowId,this.#U.isWorkflowClosed(U.workflowId)),!0}#R($,U,J){if(U.type!=="checkpoint"||!JC(U))return;if(this.#Q.wasResumedDuringCheckpointHandling(U.workflowId,J))return;if(this.#U.parkActive(U.workflowId,$))this.#$.release($)}#T($,U){this.#M($,{targetCategory:"system",targetError:`Worker crashed: ${U.message??"unknown error"}`,otherCategory:"system",otherError:`Worker crashed: ${U.message??"unknown error"}`})}#q($){let U=this.#U.releaseActive($);if(U)this.#H.clear(U),this.#N(U),this.#$.release(U)}#E($){this.#J.attach($,{message:(U)=>{this.#A($,U).catch(()=>{})},error:(U)=>{this.#T($,U)},messageerror:()=>{this.#M($,{targetCategory:"system",targetError:"Worker messageerror event",otherCategory:"system",otherError:"Worker messageerror event"})}})}#N($){this.#J.detachIfIdle($,(U)=>this.#U.workerIsIdle(U))}#O($,U,J){let G=this.#j.validateHostToWorkerMessage(U);if(!G)return!0;if(J)return this.#M(J,{targetWorkflowId:$,targetCategory:G.failureCategory,targetError:G.error,otherCategory:"system",otherError:`Worker discarded after protocol send failure for workflow: ${$}`}),!1;return this.#K({type:"failed",workflowId:$,error:G.error,failureCategory:G.failureCategory}),!1}#x($,U){let J=this.#j.acceptWorkerMessage($,U);if(J.accepted)return!0;return this.#M($,{...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.#M($.worker,{targetWorkflowId:$.workflowId,targetCategory:"timeout",targetError:`Worker workflow turn timed out after ${this.#Z}ms`,otherCategory:"timeout",otherError:`Worker discarded after workflow turn timed out: ${$.workflowId}`})}#M($,U){let J=this.#U.workflowIdsForWorker($);if(J.length===0){this.#H.clear($),this.#L.forget($);return}for(let G of J){let X=G===U.targetWorkflowId;if(this.#U.forgetWorkflow(G),this.#Q.forgetWorkflowIfClosed(G,!0),X&&U.skipTarget)continue;this.#K({type:"failed",workflowId:G,error:X?U.targetError??U.otherError:U.otherError,failureCategory:X?U.targetCategory??U.otherCategory:U.otherCategory})}this.#H.clear($),this.#L.forget($),this.#J.detach($),this.#$.discard($)}#b($){if($.type==="signal:received"&&typeof $.workflowId==="string"){let U=this.#U.getTargetWorker($.workflowId);if(U)U.postMessage($)}}#K($){let U=this.#P?.($);if(U instanceof Promise)U.catch(()=>{})}}var jC=30000,HC=5000,DC=60000;function LC($){let U=Fn($?.ownership??"none");if(U!=="lease")return{ownershipMode:U,leaseTtlMs:jC,leaseRenewIntervalMs:HC,leaseWaitTimeoutMs:DC};let J=q6($?.leaseTtl,"options.leaseTtl")??jC,G=q6($?.leaseRenewInterval,"options.leaseRenewInterval")??HC,X=q6($?.leaseWaitTimeout,"options.leaseWaitTimeout")??DC;return Mn(J,G,X),{ownershipMode:U,leaseTtlMs:J,leaseRenewIntervalMs:G,leaseWaitTimeoutMs:X}}function Fn($){if($!=="none"&&$!=="lease")throw Error(`Unknown ownership posture "${String($)}". Expected 'none' or 'lease'.`);return $}function Mn($,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.`)}function PL($){return Object.entries($??{})}function B3($,U){return $}var VC=!1;function PC($){return zn($,{bunEnv:typeof Bun<"u"?Bun.env:void 0,processEnv:typeof process<"u"?process.env:void 0})}function zn($,U){if(U.bunEnv!==void 0)return U.bunEnv[$];if(U.processEnv!==void 0)return U.processEnv[$];return}function Bn($){return $?.development===!0||PC("WEFT_DEV_WARNINGS")==="1"||PC("NODE_ENV")==="development"}function zC($){let J=$?.storage??void 0;if(J===void 0){if(!VC&&Bn($))VC=!0,console.warn("[weft] Engine started with no `storage` configured — 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 JL}if(!$?.compression)return J;return new eD(J,$.compression)}function BC($){return $?.interceptors?[...$.interceptors]:[]}function FL($,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 Wn($){return{retention:T9($?.retention,"options.retention"),retentionSweepIntervalMs:q6($?.retentionSweepInterval,"options.retentionSweepInterval")??tF,retentionSweepBatchSize:$?.retentionSweepBatchSize!==void 0?Math.max(1,Math.floor($.retentionSweepBatchSize)):eF}}function l0($,U){return $??U}function Kn($){return{development:l0($?.development,!1),broadcastEvents:l0($?.broadcastEvents,!1)}}function qn($){return{checkpointHistory:l0($?.checkpointHistory,10),checkpointSizeWarningThreshold:l0($?.checkpointSizeWarningThreshold,65536),maxNestingDepth:l0($?.maxNestingDepth,10)}}function Nn($){return{historyPolicy:Iz($?.history,"options.history"),archiveAdapter:$?.archive??null,payloadSizePolicy:hz($?.payloadSize,"options.payloadSize")}}var FC=15000;function On($){let U=l0($?.detectSecondInstance,!1),J=U?q6($?.secondInstanceHeartbeatInterval,"options.secondInstanceHeartbeatInterval")??FC:FC;return{secondInstanceDetectionEnabled:U,secondInstanceHeartbeatIntervalMs:J}}function WC($,U,J){return{storage:$,getNow:J,resolveWorkflowServices:U?.resolveWorkflowServices??null,onLog:U?.onLog??null,...Kn(U),...qn(U),...Wn(U),...Nn(U),...On(U),...LC(U)}}function An($){let U=Cn($?.workflowExecutionMode),J=Rn($,U);if(!J)return{mode:"inline",workerExecution:null};return Tn(J)}function Cn($){if($===void 0||$==="inline"||$==="worker")return $;throw Error('options.workflowExecutionMode must be "inline" or "worker" when provided')}function Rn($,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 Tn($){let U=MC($.workflowTurnTimeoutMs,"options.workerExecution.workflowTurnTimeoutMs",void 0)??rA,J=MC($.maxProtocolMessageBytes,"options.workerExecution.maxProtocolMessageBytes",void 0)??oA;if(J<ZL)throw Error(`options.workerExecution.maxProtocolMessageBytes must be at least ${ZL}`);return{mode:"worker",workerExecution:$,workflowTurnTimeoutMs:U,maxProtocolMessageBytes:J,requireProtocolVersion:!0,discardOnCancel:!0}}function MC($,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 KC($){let{options:U,getNow:J,maxNestingDepth:G,development:X,broadcastEvents:Q,getRegistration:Z,getComposedWorkflowInterceptor:Y,resolveWorkflowType:_,registerCancelHandler:H,recordFinalizerState:D,getWorkflowServices:L,getLogSink:F}=$,M=An(U);if(M.mode==="worker"){let S=new M3({workerUrl:M.workerExecution.workerUrl,concurrency:M.workerExecution.poolSize??4,smol:M.workerExecution.smol??!1}),h=F?.(),p={broadcastEvents:Q,requireProtocolVersion:M.requireProtocolVersion,discardOnCancel:M.discardOnCancel,workflowTurnTimeoutMs:M.workflowTurnTimeoutMs,maxProtocolMessageBytes:M.maxProtocolMessageBytes,getNow:J,...h!==void 0&&{onLog:h}};return{strategy:new VL(S,p),inlineStrategy:null}}let K=new XL({getRegistration:Z,getNow:J,maxNestingDepth:G,development:X,resolveWorkflowType:_,...dA({getComposedWorkflowInterceptor:Y,registerCancelHandler:H,recordFinalizerState:D,getWorkflowServices:L,getLogSink:F})});return{strategy:K,inlineStrategy:K}}function qC($){if(!$)return null;return new GL(new M3({workerUrl:$.workerUrl,concurrency:$.poolSize??4,smol:$.smol??!1}))}function NC($,U,J){return U?new oD($,U,J):null}var OC,En=0,AC,xn=new Set,W3=new FinalizationRegistry(($)=>{if(En++,$.cleanupInterval!==null)clearInterval($.cleanupInterval),$.cleanupInterval=null;if($.secondInstanceDetectionInterval!==null)clearInterval($.secondInstanceDetectionInterval),$.secondInstanceDetectionInterval=null;if(!$.disposed&&Sn()){if($.testToken!==void 0)xn.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 Sn(){if(OC!==void 0)return OC;return Bun.env.WEFT_DEV_WARNINGS==="1"||Bun.env.NODE_ENV==="development"}function CC(){let $=AC;return AC=void 0,$}function RC($){return typeof $==="function"&&typeof $.name==="string"&&"execute"in $&&typeof $.execute==="function"}function TC($){let U=C$($);return{processPendingUpdatesAfterInlineAdvance:(J)=>U.processPendingUpdatesAfterInlineAdvance(J),swallowPromiseRejection:(J)=>x6(J)}}function EC($,U){return function(){let G=$.deref();if(G===void 0){U.port1.close(),U.port2.close();return}V(G).queuedInlineWorkflowStartFlushScheduled=!1,x6(w8(V(G),TC(G)))}}async function xC($){await $N(V($),TC($))}function SC($,U){return function(){let G=$.deref();if(G===void 0){if(U.cleanupInterval!==null)clearInterval(U.cleanupInterval),U.cleanupInterval=null;return}let X=V(G);yB(X.updateCoordinator,(Q,Z)=>a(G).handleCleanupError(Q,Z))()}}function bC($){return function(){let J=$.deref();if(J===void 0)return null;let G=V(J);if(G.disposed)return null;return G.secondInstanceDetector}}function vC($){if($.cleanupInterval!==null)clearInterval($.cleanupInterval??void 0),$.cleanupInterval=null;if($.cleanupIntervalDisposalTracker!==null)$.cleanupIntervalDisposalTracker.disposed=!0,$.cleanupIntervalDisposalTracker.cleanupInterval=null,W3.unregister($.cleanupIntervalDisposalTracker),$.cleanupIntervalDisposalTracker=null}function K3($){$.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(),UN($),$.scheduler[Symbol.dispose](),$.strategy[Symbol.dispose](),$.activityWorkerDispatcher?.[Symbol.dispose](),$.activityWorkerDispatcher=null,$.inlineStrategy=null,vC($),$.retentionSweepInterval!==null)clearInterval($.retentionSweepInterval??void 0),$.retentionSweepInterval=null;$.nextRetentionSweepAt=null,bn($),vn($),$.handleCache.clear();for(let U of $.resultResolvers.values())U.reject(new c6);$.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 bn($){if($.secondInstanceDetectionInterval!==null)clearInterval($.secondInstanceDetectionInterval??void 0),$.secondInstanceDetectionInterval=null;if($.secondInstanceDetector!==null)$.secondInstanceDetector.stop(),$.secondInstanceDetector=null}function vn($){if($.leaseManager!==null)$.leaseManager.stop(),$.leaseManager=null}function gC($,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}T6(J,$.options.payloadSizePolicy.maxBytes,"finalizer state"),t4($,U,{conditions:[],operations:[{type:"put",key:P.finalizerState(U),value:W(J)}]})}var gn=1000;function IC($){let{storage:U,holderId:J,getNow:G,ttlMs:X,renewIntervalMs:Q,waitTimeoutMs:Z}=$,Y=$.acquirePollIntervalMs??gn,_=Q,H=!1,D=null,L=null,F=null,M=null,K=!1,S=null,h=$.delay??((X$)=>new Promise((h$)=>setTimeout(h$,X$)));function p(X$){if(K)return;K=!0,$.onLeaseLost?.(X$)}async function c(){let X$=await U.get(P.leaseHolder()),h$=await U.get(P.leaseEpoch());return{epochRaw:h$,holderRaw:X$,epoch:h$===null?null:MX(h$),holder:X$===null?null:zX(X$)}}async function I(X$,h$,y$){let v6=G()+X,s1=FH({holderId:J,expiresAt:v6,epoch:y$}),UV=await e(U,[{key:P.leaseEpoch(),expectedValue:X$},{key:P.leaseHolder(),expectedValue:h$}],[{type:"put",key:P.leaseEpoch(),value:PH(y$)},{type:"put",key:P.leaseHolder(),value:s1}]);if(UV)D=y$,L=PH(y$),F=s1;return UV}async function m(){let{epochRaw:X$,holderRaw:h$,epoch:y$,holder:v6}=await c();if(X$!==null&&y$===null)throw new q8('the "lease:epoch" high-water mark is present but does not decode to a valid epoch');if(X$===null&&h$!==null)throw new q8('a "lease:holder" record exists with no "lease:epoch" key (the lease protocol never deletes the epoch)');if(v6!==null&&G()<v6.expiresAt)return!1;let s1=(y$??0)+1;if(s1>=Number.MAX_SAFE_INTEGER)throw new q8(`the next ownership epoch (${s1}) is at or above the safe-integer ceiling and cannot be minted without bricking future boots`);return I(X$,h$,s1)}async function u(){let X$=G(),h$=X$+Z,y$=null,v6=!0;for(;;){if(H)return;if(!v6&&G()>=h$)throw new BX(G()-X$,y$);if(v6=!1,await m())return;let o1=await U.get(P.leaseHolder());if(y$=o1===null?null:zX(o1)?.holderId??null,G()>=h$)throw new BX(G()-X$,y$);await h(Y)}}async function R$(){if(H||K||D===null||F===null)return;let X$=G()+X,y$=FH({holderId:J,expiresAt:X$,epoch:D}),v6;try{v6=await e(U,[{key:P.leaseHolder(),expectedValue:F}],[{type:"put",key:P.leaseHolder(),value:y$}])}catch{let o1=zX(F)?.expiresAt??0;if(G()>=o1-_)p("renewal-unconfirmable");return}if(v6){F=y$;return}p("deposed")}function b6(){if(S!==null)return;S=R$().catch(()=>{}).finally(()=>{S=null})}function r1(){if(H||M!==null)return;M=setInterval(()=>{b6()},Q),M.unref?.()}function Hx(){return L===null?null:L.slice()}function $V(){if(M!==null)clearInterval(M),M=null}async function Dx(){if(H=!0,$V(),S!==null)await S;if(F===null)return;try{if(await e(U,[{key:P.leaseHolder(),expectedValue:F}],[{type:"delete",key:P.leaseHolder()}]))F=null}catch{}}function Lx(){H=!0,$V()}return{acquire:u,startRenewal:r1,renewOnce:R$,currentEpochBytes:Hx,release:Dx,stop:Lx}}var In=/^(?:0|[1-9]\d*)$/,hn=["wf:","op:","schedule:","ev:","sig:","upd:","idx:"];async function hC($){let U=await $.get($j);if(U!==null){let J=new TextDecoder().decode(U);if(!In.test(J))throw new O1(null,A1);let G=Number(J);if(!Number.isSafeInteger(G))throw new O1(null,A1);if(G!==A1)throw new O1(G,A1);return}for(let J of hn)for await(let G of $.scan(J,{limit:1}))throw new O1(null,A1);await $.put($j,new TextEncoder().encode(String(A1)))}async function yC($,U,J,G){if(J==="activityProgress")return $.heartbeatDetails.get(U);let X=$.inlineStrategy;if(!X)throw Error("Workflow queries are not supported when using the worker execution strategy.");let Q=X.getContext(U)??X.getParkedContext(U);if(!Q)return;let Z=Q.queryHandlers.get(J);if(Z)return Z(G);let Y=Q.exposedAccessors.get(J);if(!Y)return;return Y()}var yn=new TextEncoder,mn=new TextDecoder;function kn($){return yn.encode(JSON.stringify($))}async function q3($){try{await $()}catch{}}function fn($){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 un($){let U;try{U=JSON.parse(mn.decode($))}catch{return null}if(typeof U!=="object"||U===null)return null;let J=U;return fn(J)?J:null}var wn="WeftSecondInstanceWarning",cn=10,mC=2;function kC($){let{storage:U,instanceId:J,getNow:G,intervalMs:X}=$,Q=$.warn??((c)=>process.emitWarning(c,wn)),Z=X*(mC+1),Y=0,_=!1,H=!1,D=new Map,L=new Set;async function F(){let c=[];for await(let[I,m]of U.scan(P.livenessPrefix())){let u=un(m);if(u!==null&&u.instanceId!==J)c.push({key:I,heartbeat:u})}return c}async function M(c,I){let m=I-Z*cn;for(let u of c)if(u.heartbeat.heartbeatAt<m)await q3(()=>U.delete(u.key))}function K(c){let I=new Set;for(let{key:m,heartbeat:u}of c){if(P.liveness(u.instanceId)!==m)continue;I.add(u.instanceId);let R$=D.get(u.instanceId),r1=R$!==void 0&&u.sequence>R$.sequence?R$.advances+1:0;if(D.set(u.instanceId,{sequence:u.sequence,advances:r1}),r1>=mC&&!L.has(u.instanceId))L.add(u.instanceId),Q(`another engine instance (${u.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 m of Array.from(D.keys()))if(!I.has(m))D.delete(m)}let S=!1;async function h(){if(H||S)return;S=!0;let c=!1;try{let I=G(),m=await F();if(!_)_=!0,await M(m,I);if(K(m),H)return;Y+=1;let u={instanceId:J,heartbeatAt:I,sequence:Y};c=!0,await q3(()=>U.put(P.liveness(J),kn(u)))}finally{if(S=!1,c&&H)await q3(()=>U.delete(P.liveness(J)))}}async function p(){H=!0,await q3(()=>U.delete(P.liveness(J)))}return{tick:h,stop:p}}function fC($,U){return function(){let G=$();if(G===null){if(U.secondInstanceDetectionInterval!==null)clearInterval(U.secondInstanceDetectionInterval),U.secondInstanceDetectionInterval=null;return}G.tick().catch(()=>{})}}var pn=Symbol("engineParkedWorkflowCountForTesting"),dn=Symbol("engineSignalWaiterCountForTesting"),ln=Symbol("engineSleepResolverCountForTesting");class uC extends EventTarget{static async create($){let U=new uC($);try{await hC(V(U).storage);for(let[G,X]of PL($.activities)){if(G!==X.name)throw new fU("activity",G,X.name);U.#B(X)}for(let[G,X]of PL($.workflows)){if(G!==X.name)throw new fU("workflow",G,X.name);U.register(X)}if(await U.#$(),$.recover!==!1)await U.recoverAll($.acknowledgeUnknownWorkflowTypes!==void 0?{acknowledgeUnknownWorkflowTypes:$.acknowledgeUnknownWorkflowTypes}:{});if($.startScheduler??$.recover!==!1)V(U).scheduler.start()}catch(J){throw await U[Symbol.asyncDispose](),J}return U}constructor($){super();YN(this),V(this).registrations=new Map,V(this).workflowTypesByHandler=new WeakMap;let U=zC($),J=$?.getNow??Date.now,G=WC(U,$,J),X=KC({options:$,getNow:J,maxNestingDepth:G.maxNestingDepth,development:G.development,broadcastEvents:G.broadcastEvents,getRegistration:V(this).registrations.get.bind(V(this).registrations),getComposedWorkflowInterceptor:()=>_6(V(this)),resolveWorkflowType:this.#P.bind(this),registerCancelHandler:(H,D)=>k8(V(this),H,D),recordFinalizerState:(H,D)=>gC(V(this),H,D),getWorkflowServices:(H)=>V(this).workflowServices.get(H),getLogSink:()=>G.onLog??void 0});V(this).storage=U,V(this).abortController=new AbortController,V(this).disposed=!1,V(this).handleCache=new Map,V(this).resultResolvers=new Map,V(this).signalWaiters=new Map,V(this).signalWaitersByWorkflow=new Map,V(this).conditionWaiters=new Map,V(this).updateWaiters=new Map,V(this).updateWaitersByWorkflow=new Map,V(this).sleepResolvers=new Map,V(this).sleepResolversByWorkflow=new Map,V(this).interceptors=BC($),V(this).composedWorkflowInterceptor=void 0,V(this).composedActivityInterceptor=void 0,V(this).updateCoordinator=new XH(U),V(this).activityRegistry=new l2,V(this).activityRegistriesByWorkflow=new Map,V(this).workflowDefinitionsByName=new Map,V(this).workflowTypeByWorkflowId=new Map,V(this).activityWorkerDispatcher=null,V(this).checkpoints=new Map,V(this).broadcastChannel=null,V(this).pendingNestingDepth=void 0,V(this).pendingParentHeaders=void 0,V(this).pendingExecutionStateOwnerId=void 0,V(this).workflowNestingDepths=new Map,V(this).workflowHeaders=new Map,V(this).workflowStateWriteChains=new Map,V(this).finalizationRegistry=new FinalizationRegistry(hB(V(this).handleCache)),V(this).options=G,V(this).scheduler=new _9({storage:U,onTimerFired:(H)=>lH(V(this),H,this.#D()),getNow:J,commitTimerCleanup:(H)=>G$(V(this),H,[],()=>Error("Timer cleanup lost its fenced CAS race"))}),V(this).strategy=X.strategy,V(this).inlineStrategy=X.inlineStrategy,V(this).queuedInlineWorkflowStarts=[],V(this).queuedInlineWorkflowStartIds=new Set,V(this).queuedOrLaunchingInlineWorkflowStartIds=new Set,V(this).queuedInlineWorkflowStartFlushScheduled=!1;let Q=new WeakRef(this),Z=X.inlineStrategy!==null?new MessageChannel:null;if(V(this).queuedInlineWorkflowStartChannel=Z,Z!==null)Z.port1.onmessage=EC(Q,Z);V(this).heartbeatDetails=new Map,V(this).lastHeartbeatDetailsByStep=new Map,V(this).workflowServices=new Map,V(this).pendingAsyncActivities=new Map,V(this).pendingAsyncActivityResolutions=new Map,V(this).pendingStarts=new Set,V(this).pendingScheduleCreations=new Set,V(this).workflowsNeedingTerminalCleanup=new Set,V(this).reviewCoordinator=new GH(U,J),V(this).reviewWaiters=new Map,V(this).reviewWaitersByWorkflow=new Map,V(this).reviewEscalationHandlers=new Map,V(this).workflowReviewIds=new Map,V(this).parkedInlineWorkflows=new Set,V(this).terminalizingWorkflows=new Set,V(this).deliveredPendingUpdateIds=new Map,V(this).cancelHandlersByWorkflow=new Map,V(this).reviewTimerIds=new Map,V(this).pendingWebhooks=new Set,V(this).pendingTimelineEntries=new Map,V(this).pendingAtomicWorkflowCommitSideEffects=new Map,V(this).cleanupIntervalDisposalTracker=null;let Y={disposed:!1,cleanupInterval:null,secondInstanceDetectionInterval:null,testToken:CC()},_=setInterval(SC(Q,Y),60000);Y.cleanupInterval=_,V(this).cleanupInterval=_,V(this).cleanupIntervalDisposalTracker=Y,W3.register(this,Y,Y),V(this).retentionSweepInterval=null,V(this).retentionSweepInFlight=null,V(this).nextRetentionSweepAt=null,V(this).secondInstanceDetectionInterval=null,V(this).secondInstanceDetector=null,V(this).leaseManager=null,V(this).inFlightLeaseAcquire=null,V(this).deposed=!1,V(this).tearDownAfterDeposition=()=>{this.#U()},V(this).eventLogHeads=new Map,V(this).workflowFeedListeners=new Map,V(this).workflowVersionTuples=new Map,V(this).workflowVisibilityWatermark=void 0,V(this).workflowVisibilityWatermarkExpiresAt=void 0,V(this).activityWorkerDispatcher=qC($?.activityExecution),V(this).strategy.onMessage(this.#F.bind(this)),V(this).alertManager=NC(this,$?.alerts,J),this.#Q(),this.#J()}addEventListener($,U,J){super.addEventListener($,U,J)}removeEventListener($,U,J){super.removeEventListener($,U,J)}async#$(){let $=V(this);if($.options.ownershipMode!=="lease")return;if($.disposed)throw new c6;if($.inFlightLeaseAcquire!==null){await $.inFlightLeaseAcquire;return}if($.leaseManager!==null)return;J$($.storage,"conditionalBatch","ownership: 'lease'");let U=IC({storage:$.storage,holderId:crypto.randomUUID(),getNow:$.options.getNow,ttlMs:$.options.leaseTtlMs,renewIntervalMs:$.options.leaseRenewIntervalMs,waitTimeoutMs:$.options.leaseWaitTimeoutMs,onLeaseLost:(G)=>{if(G==="deposed"){K8($);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 — keep infrastructure-level single-instance enforcement in place.",pW)}});$.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 c6}U.startRenewal()})();$.inFlightLeaseAcquire=J;try{await J}finally{if($.inFlightLeaseAcquire===J)$.inFlightLeaseAcquire=null}}#U(){let $=V(this);if($.disposed)return;let U=$.leaseManager;K3($),U?.release().catch(()=>{})}#J(){let $=V(this);if(!$.options.secondInstanceDetectionEnabled)return;let U=kC({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(fC(bC(G),J),$.options.secondInstanceHeartbeatIntervalMs);$.secondInstanceDetectionInterval=X,J.secondInstanceDetectionInterval=X}#G(){return D3(V(this))}#X(){L3(V(this))}#Q(){V3(V(this),{hasConfiguredRetention:()=>this.#G(),runRetentionSweep:()=>this.#Z(),setNextRetentionSweepAt:()=>this.#X()})}async#Z(){return P3(V(this),($,U)=>this.#_().handleCleanupError($,U),($)=>s6(V(this),$,this.#_()))}#Y(){return C$(this)}#_(){return a(this)}#V(){return $3(this)}#L(){return t6(this)}#H(){return e8(this)}#j(){return w0(this)}#D(){return Y3(this)}#P($){return nX(V(this),$,this.#V())}get state(){let $=V(this).storage;return{execution:(U,J,G)=>new U0($,P.stateExecution(U,J),G),workflow:(U,J,G)=>new U0($,P.stateWorkflow(U,J),G)}}async#F($){return EA(V(this),$,this.#H())}#z($){return $1(V(this),$,this.#L())}register($){if(RC($))return this.#B($),B3(this);return LN(V(this),$,this.#V()),B3(this)}registerWorkflows($){for(let[U,J]of Object.entries($)){if(U!==J.name)throw new fU("workflow",U,J.name);this.register(J)}return B3(this)}addInterceptor($){V(this).interceptors.push($),V(this).composedWorkflowInterceptor=void 0,V(this).composedActivityInterceptor=void 0}#B($){V(this).activityRegistry.register($.name,$)}resolveRegisteredActivity($){return V(this).activityRegistry.resolve($)}registerActivityFunction($,U,J){V(this).activityRegistry.register($,U,J)}unregisterRegisteredActivity($){V(this).activityRegistry.unregister($)}getWorkflowDefinition($){let U=V(this).registrations.get($);return U===void 0?void 0:FL($,U)}listWorkflowDefinitions(){return[...V(this).registrations.entries()].map(([$,U])=>FL($,U))}getActivityDefinition($){return V(this).activityRegistry.getDefinition($)}listActivityDefinitions(){return V(this).activityRegistry.listDefinitions()}async start($,U,J){if(O8(V(this)),J?.idempotencyKey!==void 0)return GD(V(this),$,U,J,this.#Y());return Q6(V(this),$,U,J,void 0,this.#Y())}async startOrSignal($,U,J,G){return O8(V(this)),XD(V(this),$,U,J,G,this.#W())}#W(){return{...this.#Y(),signalExistingWorkflow:($,U,J,G)=>this.signal($,U,J,{signalId:G})}}getHandle($){let U=V(this).handleCache.get($);if(U){let J=U.ref.deref();if(J)return J}return IX(V(this),$)}async list($,U){return LK(V(this),$,U)}async aggregate($,U){return ZB(V(this),$,U)}getRetentionOverview(){return xA(V(this),($)=>iD(V(this),$))}async purge($){return xK(V(this),$,(U)=>s6(V(this),U,this.#_()))}async cancelAll($,U){return SK(V(this),$,U)}async retryFailedAll($,U){return bK(V(this),$,U)}async signalAll($,U,J,G){if(G===void 0)return kH(V(this),$,U,J);return kH(V(this),$,U,J,G)}async deleteAll($,U){return vK(V(this),$,(J)=>s6(V(this),J,this.#_()),U)}async tagAll($,U,J){return gK(V(this),$,U,J)}async untagAll($,U,J){return IK(V(this),$,U,J)}async schedule($,U,J,G){if(typeof $==="object"){let X=$,Q=typeof X.workflow==="string"?X.workflow:X.workflow.name,Z=X.every!==void 0?{every:X.every}:{cron:X.cron??""};return vD(V(this),Q,X.input,Z,{...X.id!==void 0&&{id:X.id},...X.overlapPolicy!==void 0&&{overlap:X.overlapPolicy},...X.backfill!==void 0&&{backfill:X.backfill},...X.jitter!==void 0&&{jitter:X.jitter}})}if(J===void 0)throw Error("A cron string or schedule spec must be provided when scheduling by workflow type.");return vD(V(this),$,U,J,G)}async getSchedule($){let U=J1($,"scheduleId"),J=await p1(V(this),U);return J?nN(J):null}async listSchedules($){return lN(V(this),$)}async pauseSchedule($){return rN(V(this),$)}async resumeSchedule($){return oN(V(this),$)}async cancelSchedule($){return sN(V(this),$)}async updateSchedule($,U){return aN(V(this),$,U)}[zH]($){return yK(V(this),$)}[pn](){return V(this).parkedInlineWorkflows.size}[dn](){return V(this).signalWaiters.size}[ln](){return V(this).sleepResolvers.size}async signal($,U,J,G){return EW(V(this),$,i$(U),J,{loadWorkflowState:(X)=>l(V(this),X),dispatchEvent:(X)=>this.dispatchEvent(X),broadcast:(X)=>this.#z(X),getComposedInterceptor:()=>_6(V(this)),resumeParkedInlineWorkflow:(X)=>x6(H3(V(this),X,this.#H()))},G)}async update($,U,J,G){return vW(V(this),$,i$(U),J,G,this.#j())}async query($,U,J){return yC(V(this),$,i$(U),J)}async getStreamChunks($,U,J){return jA(V(this),$,U,J)}async getOffload($,U){return eO(V(this),$,U)}async fork($,U){return O8(V(this)),HD(V(this),$,U,this.#Y())}async resume($){return O8(V(this)),lX(V(this),$,this.#Y())}async recoverAll($){if(await this.#$(),V(this).disposed)throw new c6;return await dB(V(this)),await iN(V(this)),jD(V(this),this.#Y(),$)}async completeAsyncActivity($,U){await nB(V(this),$,U,{feedOperationResult:(J,G)=>Y6(V(this),J,G),finalizeTimeline:(J,G,X)=>S6(V(this),J,G,X)})}async failAsyncActivity($,U){await oB(V(this),$,U,{feedOperationResult:(J,G,X)=>Y6(V(this),J,G,X),finalizeTimeline:(J,G,X)=>S6(V(this),J,G,X)})}async cancel($){await FD(V(this),$,this.#_())}async suspend($){await OD(V(this),$,this.#_())}async timeout($){await MD(V(this),$,this.#_())}async get($){let U=await l(V(this),$);if(U?.status==="running"&&JN(V(this),$))return{...U,status:"pending"};return U}async getCurrentCheckpointStep($){let U=V(this).checkpoints.get($);if(U!==void 0)return U.step;let J=await V(this).storage.get(P.checkpoint($));if(J===null)return null;return D$(J).step}async getAttributes($){return zK(V(this),$)}async setAttributes($,U){return BK(V(this),$,U)}async addTags($,...U){return WK(V(this),$,...U)}async removeTags($,...U){return KK(V(this),$,...U)}async getEvents($){return SA(V(this),$)}async*replayWorkflowFeed($,U,J){yield*ZA(V(this),$,U,J)}async snapshotWorkflowFeedTail($,U){return YA(V(this),$,U)}subscribeWorkflowFeedCommits($,U,J){return _A(V(this),$,U,J)}async listCheckpoints($){return bA(V(this),$)}async getCheckpointAt($,U){return vA(V(this),$,U)}async getTimeline($){return gA(V(this),$)}async replayTo($,U){return IA(V(this),$,U)}async listReviews($){return KN(V(this),$)}async getReview($,U){return qN(V(this),$,U)}async submitReview($,U){return NN(V(this),$,U,{dispatchEvent:this.dispatchEvent.bind(this)})}async getUpdateResult($){return gW(V(this),$)}async submitCoordinatedUpdate($,U,J,G){return IW(V(this),$,U,J,G,this.#j())}[Symbol.dispose](){let $=V(this).leaseManager;K3(V(this)),$?.release()}async[Symbol.asyncDispose](){if(!V(this).disposed){let $=V(this).leaseManager;try{await xC(this)}finally{K3(V(this)),await V(this).inFlightLeaseAcquire?.catch(()=>{}),await $?.release()}return}this[Symbol.dispose]()}get storage(){return V(this).storage}get scheduler(){return V(this).scheduler}async fireTimer($){await lH(V(this),$,this.#D())}}var wC={kind:"public"},cC={http:!0,jsonRpcHttp:!0,jsonRpcStdio:!0,jsonRpcWebSocket:!0},nn=j.object({token:j.string().min(1),result:j.unknown().optional()}),rn=j.object({token:j.string().min(1),error:j.object({message:j.string(),name:j.string().optional()})}),pC=j.object({ok:j.literal(!0)});function on($){let U=Error($.error.message);if($.error.name!==void 0)U.name=$.error.name;return U}function dC($,U,J){if(J instanceof P8)z6($,{code:"NotFound",message:J.message,data:{resource:"async-activity",identifier:U}});if(J instanceof L8)z6($,C(J.message));throw J}var ML=q({name:"weft.activities.complete",mcpExposable:!1,summary:"Complete a deferred activity by task token",description:'Resolve an out-of-band ("async") activity with a result, resuming its parked workflow as though the activity had returned that result inline. Requires the durable task token announced through the `activity:async-pending` event. Faults with NotFound when the token is unknown or already completed/failed (tokens are single-use), and InvalidParams when the result exceeds the payload size limit.',destructive:!0,tags:["Activities"],inputSchema:nn,outputSchema:pC,access:wC,producibleFaults:["NotFound","InvalidParams"],transports:cC,unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let J=U;try{await J.completeAsyncActivity($.token,$.result)}catch(G){dC(ML,$.token,G)}return{ok:!0}}}),zL=q({name:"weft.activities.fail",mcpExposable:!1,summary:"Fail a deferred activity by task token",description:'Fail an out-of-band ("async") activity, throwing the supplied error into its '+"parked workflow at the deferred step — identical to an inline activity that threw, "+"so the workflow’s own try/catch and retry policy apply unchanged. Requires the "+"durable task token from the `activity:async-pending` event. Faults with NotFound when the token is unknown or already completed/failed (tokens are single-use), and InvalidParams when the failure message exceeds the payload size limit.",destructive:!0,tags:["Activities"],inputSchema:rn,outputSchema:pC,access:wC,producibleFaults:["NotFound","InvalidParams"],transports:cC,unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let J=U;try{await J.failAsyncActivity($.token,on($))}catch(G){dC(zL,$.token,G)}return{ok:!0}}});function lC($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}async function iC($,U){let J=await Y$($,U).catch((G)=>{if(t(G))throw G;return null});if(typeof J!=="object"||J===null||Array.isArray(J))throw C("Request body must be a JSON object.");return J}var nC={method:"POST",path:"/v1/activities/complete",pathParamNames:[],operationName:"weft.activities.complete",inputSources:{token:{kind:"body-field",bodyField:"token"},result:{kind:"body-field",bodyField:"result"}},extractInput:async($,U,J)=>{let G=await iC($,J);return{token:G.token,..."result"in G?{result:G.result}:{}}},success:{kind:"json",status:200},shapeSuccess:($)=>lC($),shapeFault:R},rC={method:"POST",path:"/v1/activities/fail",pathParamNames:[],operationName:"weft.activities.fail",inputSources:{token:{kind:"body-field",bodyField:"token"},error:{kind:"body-field",bodyField:"error"}},extractInput:async($,U,J)=>{let G=await iC($,J);return{token:G.token,error:G.error}},success:{kind:"json",status:200},shapeSuccess:($)=>lC($),shapeFault:R};var sn=`Field "filter.failureCategory" must be one of ${a2.join(", ")}`,oC='Field "filter.failureCategory" must be a string or an array of strings';function aC($){if($===void 0)return;if(typeof $==="string")return sC($);if(Array.isArray($)){if(!$.every((U)=>typeof U==="string"))throw Error(oC);return $.map(sC)}throw Error(oC)}function sC($){if(d6($))return $;throw Error(sn)}var tC=j.custom(($)=>typeof $==="string"),an=j.custom(($)=>{if(typeof $==="string"||typeof $==="number"||typeof $==="boolean")return!0;return Array.isArray($)&&$.every((U)=>typeof U==="string"||typeof U==="number"||typeof U==="boolean")}),N3=j.custom(($)=>typeof $==="string"||typeof $==="number"||typeof $==="boolean"),tn=j.object({key:j.string().min(1),value:an.optional(),gt:N3.optional(),lt:N3.optional(),gte:N3.optional(),lte:N3.optional()}),eC=j.custom(d6),BL=j.object({gte:j.number().optional(),gt:j.number().optional(),lte:j.number().optional(),lt:j.number().optional()}),j6=j.object({status:j.union([tC,j.array(tC)]).optional(),type:j.string().optional(),tags:j.array(j.string()).optional(),attributes:j.array(tn).optional(),limit:j.number().int().min(0).optional(),offset:j.number().int().min(0).optional(),idPrefix:j.string().optional(),failureCategory:j.union([eC,j.array(eC)]).optional(),createdAt:BL.optional(),updatedAt:BL.optional(),executionDeadline:BL.optional()}),J4=j.object({dryRun:j.boolean().optional(),confirmationToken:j.string().min(1).max(p2).optional(),requestId:j.string().min(1).max(N1).optional(),bulkConcurrency:j.number().int().min(1).optional()}),G4={kind:"scoped",scopes:{kind:"anyOf",scopes:["workflows:admin"]}};function $$($){return $ instanceof Error?$.message:String($)}function UR($){return{code:"Unprocessable",message:$,data:{reason:$}}}function X4($){return{code:"EngineFailure",message:$,data:{}}}async function H6($,U){try{let J=await K4($,U);return J.trim()===""?void 0:JSON.parse(J)}catch(J){if(t(J))throw J;throw C("Invalid JSON body")}}function en($){if(typeof $==="string"||typeof $==="boolean")return!0;if(typeof $==="number")return Number.isFinite($);return Array.isArray($)&&$.every((U)=>typeof U==="string")}function $r($){if(!Array.isArray($))throw Error('Field "filter.attributes" must be an array');return $.map((U,J)=>{if(typeof U!=="object"||U===null)throw Error(`Field "filter.attributes[${J}]" must be an object`);let G=U,X=G.key;if(typeof X!=="string"||X.length===0)throw Error(`Field "filter.attributes[${J}].key" must be a non-empty string`);let Q={key:X};for(let Z of["value","gt","lt","gte","lte"]){let Y=G[Z];if(Y===void 0)continue;if(!en(Y))throw Error(`Field "filter.attributes[${J}].${Z}" must be a string, number, boolean, or scalar array`);if(Z==="value"){Q.value=Y;continue}if(Array.isArray(Y))throw Error(`Field "filter.attributes[${J}].${Z}" must be a string, number, or boolean`);Q[Z]=Y}return Q})}function Ur($){if($===void 0)return;if(typeof $==="string")return $;if(Array.isArray($)&&$.every((U)=>typeof U==="string"))return $;throw Error('Field "filter.status" must be a string or an array of strings')}function Jr($){if($===void 0)return;if(typeof $==="string")return $;throw Error('Field "filter.type" must be a string')}function Gr($){if($===void 0)return;return j$($,'Field "filter.tags"')}function $R($,U){if($===void 0)return;if(typeof $!=="number"||!Number.isFinite($)||$<0)throw Error(`Field "filter.${U}" must be a non-negative number`);return Math.floor($)}var Xr=[($,U)=>{let J=Ur(U.status);if(J!==void 0)$.status=J},($,U)=>{let J=Jr(U.type);if(J!==void 0)$.type=J},($,U)=>{let J=Gr(U.tags);if(J!==void 0)$.tags=J},($,U)=>{if(U.attributes!==void 0)$.attributes=$r(U.attributes)},($,U)=>{let J=$R(U.limit,"limit");if(J!==void 0)$.limit=J},($,U)=>{let J=$R(U.offset,"offset");if(J!==void 0)$.offset=J},($,U)=>{let J=U.idPrefix;if(typeof J==="string")$.idPrefix=J},($,U)=>{let J=aC(U.failureCategory);if(J!==void 0)$.failureCategory=J},($,U)=>{let J=i0(U.createdAt);if(J!==void 0)$.createdAt=J},($,U)=>{let J=i0(U.updatedAt);if(J!==void 0)$.updatedAt=J},($,U)=>{let J=i0(U.executionDeadline);if(J!==void 0)$.executionDeadline=J}];function D6($){if($===void 0)return{};if(typeof $!=="object"||$===null)throw Error("Request body must be a JSON object");let J=$.filter;if(J===void 0)return{};if(typeof J!=="object"||J===null)throw Error('Field "filter" must be an object');let G=J,X={};for(let Q of Xr)Q(X,G);return X}var Qr=["gte","gt","lte","lt"];function i0($){if($===void 0)return;if(typeof $!=="object"||$===null)throw Error("Time-range filter must be an object with gte/gt/lte/lt numeric bounds");let U=$,J={};for(let G of Qr){let X=U[G];if(X===void 0)continue;if(typeof X!=="number"||!Number.isFinite(X))throw Error(`Time-range bound "${G}" must be a finite number`);J[G]=X}return Object.keys(J).length>0?J:void 0}function A3($){let U={};return Zr(U,$),_r(U,$),jr(U,$),U}function Zr($,U){if(U.status!==void 0)$.status=U.status;if(U.type!==void 0)$.type=U.type;if(U.tags!==void 0)$.tags=U.tags;if(U.attributes!==void 0)$.attributes=U.attributes.map(Yr);if(U.limit!==void 0)$.limit=U.limit;if(U.offset!==void 0)$.offset=U.offset}function Yr($){let U={key:$.key};if($.value!==void 0)U.value=$.value;if($.gt!==void 0)U.gt=O3($.gt,"gt");if($.lt!==void 0)U.lt=O3($.lt,"lt");if($.gte!==void 0)U.gte=O3($.gte,"gte");if($.lte!==void 0)U.lte=O3($.lte,"lte");return U}function O3($,U){if(Array.isArray($))throw Error(`Field "filter.attributes[].${U}" must be a string, number, or boolean`);return $}function _r($,U){if(U.idPrefix!==void 0)$.idPrefix=U.idPrefix;if(U.failureCategory!==void 0)$.failureCategory=U.failureCategory}function jr($,U){let J=i0(U.createdAt);if(J!==void 0)$.createdAt=J;let G=i0(U.updatedAt);if(G!==void 0)$.updatedAt=G;let X=i0(U.executionDeadline);if(X!==void 0)$.executionDeadline=X}function Q4($){if($===void 0)return{};let U=Dr($),J=Lr(U,"dryRun"),G=JR(U,"confirmationToken"),X=Pr(U),Q=Vr(U,"bulkConcurrency");return{...J===void 0?{}:{dryRun:J},...G===void 0?{}:{confirmationToken:G},...X===void 0?{}:{requestId:X},...Q===void 0?{}:{bulkConcurrency:Q}}}function Z4($,U){let J=Hr(U);if($.dryRun===!0)return{dryRun:!0,principal:J,...$.requestId===void 0?{}:{requestId:$.requestId},...$.bulkConcurrency===void 0?{}:{bulkConcurrency:$.bulkConcurrency}};if($.confirmationToken===void 0)throw C('Field "confirmationToken" is required after a dry run');return{confirmationToken:$.confirmationToken,principal:J,...$.requestId===void 0?{}:{requestId:$.requestId},...$.bulkConcurrency===void 0?{}:{bulkConcurrency:$.bulkConcurrency}}}function Hr($){if($.method==="unauthenticated")return{method:"unauthenticated"};return{method:$.method,...$.subject===void 0?{}:{subject:$.subject}}}function Dr($){if(typeof $!=="object"||$===null||Array.isArray($))throw Error("Request body must be a JSON object");return $}function Lr($,U){let J=$[U];if(J===void 0)return;if(typeof J==="boolean")return J;throw Error(`Field "${U}" must be a boolean`)}function Vr($,U){let J=$[U];if(J===void 0)return;if(typeof J==="number"&&Number.isSafeInteger(J)&&J>=1)return J;throw Error(`Field "${U}" must be a positive integer`)}function JR($,U){let J=$[U];if(J===void 0)return;if(typeof J==="string"&&J.length>0)return J;throw Error(`Field "${U}" must be a non-empty string`)}function Pr($){let U=JR($,"requestId");if(U===void 0)return;if(U.length<=N1)return U;throw Error(`Field "requestId" must be at most ${N1} characters`)}function Y4($){let U;if($.tags!==void 0)try{U=j$($.tags,'Field "filter.tags"')}catch(G){throw C($$(G))}let J=A3(U===void 0?$:{...$,tags:U});try{o6(J)}catch(G){throw C($$(G))}return J}function L6($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}var Fr=j6.merge(J4),Mr=j.unknown(),GR=q({name:"weft.workflows.bulk.cancel",mcpExposable:!1,summary:"Cancel workflows in bulk",destructive:!0,tags:["Workflows"],inputSchema:Fr,outputSchema:Mr,access:G4,transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U,principal:J})=>{let G=U,X=Y4($),Q=Z4($,J);try{if(Q.dryRun===!0)return await G.cancelAll(X,Q);return await G.cancelAll(X,Q)}catch(Z){if(Z instanceof w$)throw C(Z.message);throw X4($$(Z))}}}),XR={method:"POST",path:"/v1/workflows/bulk/cancel",pathParamNames:[],operationName:"weft.workflows.bulk.cancel",inputSources:{},extractInput:async($,U,J)=>{let G=await H6($,J);try{return{...D6(G),...Q4(G)}}catch(X){throw C($$(X))}},success:{kind:"json",status:200},shapeSuccess:($)=>L6($),shapeFault:R};var zr=j6.merge(J4),Br=j.unknown(),QR=q({name:"weft.workflows.bulk.delete",mcpExposable:!1,summary:"Delete terminal workflows in bulk",destructive:!0,tags:["Workflows"],inputSchema:zr,outputSchema:Br,access:G4,producibleFaults:["Unprocessable"],transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U,principal:J})=>{let G=U,X=Y4($),Q=Z4($,J);try{if(Q.dryRun===!0)return await G.deleteAll(X,Q);return await G.deleteAll(X,Q)}catch(Z){if(Z instanceof w$)throw C(Z.message);if(Z instanceof p4)throw UR(Z.message);throw X4($$(Z))}}}),ZR={method:"DELETE",path:"/v1/workflows/bulk",pathParamNames:[],operationName:"weft.workflows.bulk.delete",inputSources:{},extractInput:async($,U,J)=>{let G=await H6($,J);try{return{...D6(G),...Q4(G)}}catch(X){throw C($$(X))}},success:{kind:"json",status:200},shapeSuccess:($)=>L6($),shapeFault:R};var Wr=j.object({filter:j6.optional(),tags:j.array(j.string()),operation:j.enum(["add","remove"])}).merge(J4),Kr=j.unknown(),YR=q({name:"weft.workflows.bulk.tags",mcpExposable:!1,summary:"Add or remove workflow tags in bulk",destructive:!0,tags:["Workflows"],inputSchema:Wr,outputSchema:Kr,access:G4,transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U,principal:J})=>{let G=U,X=Y4($.filter??{}),Q;try{Q=j$($.tags,'Field "tags"')}catch(Y){throw C($$(Y))}let Z=Z4($,J);try{return await qr(G,X,Q,$.operation,Z)}catch(Y){if(Y instanceof w$)throw C(Y.message);throw X4($$(Y))}}});async function qr($,U,J,G,X){if(X.dryRun===!0)return G==="add"?await $.tagAll(U,J,X):await $.untagAll(U,J,X);return G==="add"?await $.tagAll(U,J,X):await $.untagAll(U,J,X)}var _R={method:"PATCH",path:"/v1/workflows/bulk/tags",pathParamNames:[],operationName:"weft.workflows.bulk.tags",inputSources:{filter:{kind:"body-field",bodyField:"filter"},tags:{kind:"body-field",bodyField:"tags"},operation:{kind:"body-field",bodyField:"operation"}},extractInput:async($,U,J)=>{let G=await H6($,J);if(G===void 0||typeof G!=="object"||G===null||Array.isArray(G))throw C("Request body must be a JSON object");let X=G,Q;try{Q={...D6(X)}}catch(_){throw C($$(_))}let Z;try{Z=j$(X.tags,'Field "tags"')}catch(_){throw C($$(_))}let Y=X.operation;if(Y!=="add"&&Y!=="remove")throw C('Field "operation" must be "add" or "remove"');return{filter:Q,tags:Z,operation:Y,...Q4(X)}},success:{kind:"json",status:200},shapeSuccess:($)=>L6($),shapeFault:R};var Nr=j6.merge(J4),Or=j.unknown(),jR=q({name:"weft.workflows.bulk.retryfailed",mcpExposable:!1,summary:"Retry failed workflows in bulk",destructive:!0,tags:["Workflows"],inputSchema:Nr,outputSchema:Or,access:G4,transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U,principal:J})=>{let G=U,X=Y4($),Q=Z4($,J);try{if(Q.dryRun===!0)return await G.retryFailedAll(X,Q);return await G.retryFailedAll(X,Q)}catch(Z){if(Z instanceof w$)throw C(Z.message);throw X4($$(Z))}}}),HR={method:"POST",path:"/v1/workflows/bulk/retry-failed",pathParamNames:[],operationName:"weft.workflows.bulk.retryfailed",inputSources:{},extractInput:async($,U,J)=>{let G=await H6($,J);try{return{...D6(G),...Q4(G)}}catch(X){throw C($$(X))}},success:{kind:"json",status:200},shapeSuccess:($)=>L6($),shapeFault:R};var Ar=j6.extend({name:j.string().min(1),payload:j.unknown().optional()}).merge(J4),Cr=j.unknown(),DR=q({name:"weft.workflows.bulk.signal",mcpExposable:!1,summary:"Signal workflows in bulk",destructive:!0,tags:["Workflows"],inputSchema:Ar,outputSchema:Cr,access:G4,transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U,principal:J})=>{let G=U,X=Y4($),Q=Z4($,J);try{if(Q.dryRun===!0)return await G.signalAll(X,$.name,$.payload,Q);return await G.signalAll(X,$.name,$.payload,Q)}catch(Z){if(Z instanceof w$)throw C(Z.message);throw X4($$(Z))}}}),LR={method:"POST",path:"/v1/workflows/bulk/signal",pathParamNames:[],operationName:"weft.workflows.bulk.signal",inputSources:{name:{kind:"body-field",bodyField:"name"},payload:{kind:"body-field",bodyField:"payload"}},extractInput:async($,U,J)=>{let G=await H6($,J);if(G===void 0||typeof G!=="object"||G===null||Array.isArray(G))throw C("Request body must be a JSON object");let X=G,Q;try{Q={...D6(X)}}catch(Y){throw C($$(Y))}let Z=X.name;if(typeof Z!=="string"||Z.length===0)throw C('Field "name" must be a non-empty string');return{...Q,name:Z,...X.payload===void 0?{}:{payload:X.payload},...Q4(X)}},success:{kind:"json",status:200},shapeSuccess:($)=>L6($),shapeFault:R};function _4($,U){let J=U instanceof Error?U.message:String(U),G=J.toLowerCase();if(G.includes("not found"))return{code:"NotFound",message:J,data:{resource:"schedule",identifier:$}};if(G.includes("already exists")||G.includes("cannot be resumed"))return{code:"Conflict",message:J,data:{reason:J}};if(J.includes("Missing required field")||G.includes("must be")||G.includes("no workflow registered")||G.includes("cron")||G.includes("interval"))return{code:"InvalidParams",message:J,data:{issues:[]}};return{code:"EngineFailure",message:J,data:{}}}function C3($){let U=$.cronExpression!==void 0,J=$.every!==void 0;if(U&&J)throw C("Provide exactly one of cronExpression or every, not both");if(J){if(typeof $.every!=="string"&&typeof $.every!=="number")throw C('Field "every" must be a duration string or a number of milliseconds');return{every:$.every}}if(typeof $.cronExpression!=="string"||$.cronExpression.length===0)throw C("Missing required field: cronExpression or every");return{cron:$.cronExpression}}var Rr=j.object({scheduleId:j.string().min(1)}),Tr=j.undefined(),VR=q({name:"weft.schedules.cancel",mcpExposable:!1,summary:"Cancel a recurring schedule",description:"Permanently cancel a recurring schedule by `scheduleId` so it stops launching new "+"workflows. Irreversible — recreate the schedule to resume the cadence. Already-started "+"workflows are unaffected. Faults with NotFound when no schedule with the given id exists.",destructive:!0,tags:["Schedules"],inputSchema:Rr,outputSchema:Tr,access:{kind:"public"},producibleFaults:["NotFound","Conflict"],transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let J=U;try{await J.cancelSchedule($.scheduleId);return}catch(G){throw _4($.scheduleId,G)}}}),PR={method:"DELETE",path:"/v1/schedules/:id",pathParamNames:["id"],operationName:"weft.schedules.cancel",inputSources:{scheduleId:{kind:"path",pathParam:"id"}},extractInput:async($,U)=>({scheduleId:U.id??""}),success:{kind:"empty",status:204},shapeFault:R};function j4($){return q({name:$.name,mcpExposable:!1,summary:$.summary,...$.description===void 0?{}:{description:$.description},tags:$.tags,destructive:$.destructive,inputSchema:$.inputSchema,outputSchema:$.outputSchema,access:{kind:"public"},producibleFaults:$.producibleFaults,transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:U,engine:J})=>{try{return await $.invoke({engine:J,input:U})}catch(G){throw Er(G,U.workflowId,$.mapErrorToFault)}}})}function H4($){return{workflowId:$.id??""}}function Er($,U,J){let G=$ instanceof Error?$.message:String($);if(G.includes("not found"))return{code:"NotFound",message:G,data:{resource:"workflow",identifier:U}};let X=J?.({error:$,message:G,workflowId:U});if(X!==void 0)return X;return{code:"EngineFailure",message:G,data:{}}}var xr=j.object({workflowId:j.string().min(1)}),Sr=j.undefined(),FR=j4({name:"weft.workflows.cancel",summary:"Cancel a running workflow",description:"Request cancellation of a running workflow by `id`. Cancellation is cooperative: the workflow observes a cancellation signal and unwinds via its own cleanup logic, so this is irreversible from the caller perspective. Faults with NotFound when the workflow is not visible.",destructive:!0,tags:["Workflows"],inputSchema:xr,outputSchema:Sr,producibleFaults:["NotFound"],invoke:async({input:$,engine:U})=>{await U.cancel($.workflowId);return}}),MR={method:"DELETE",path:"/v1/workflows/:id",pathParamNames:["id"],operationName:"weft.workflows.cancel",inputSources:{workflowId:{kind:"path",pathParam:"id"}},extractInput:async($,U)=>H4(U),success:{kind:"empty",status:204},shapeFault:R};var br=new Set(["skip","queue","cancel-running","allow"]),vr=j.object({type:j.unknown().describe("Workflow type name. Runtime validation requires a non-empty string."),cronExpression:j.unknown().optional().describe("Cron expression. Supply exactly one of cronExpression or every; runtime validation requires a non-empty string."),every:j.unknown().optional().describe("Interval period (duration string or milliseconds). Supply exactly one of cronExpression or every."),input:j.unknown().optional(),id:j.unknown().optional(),overlap:j.unknown().optional(),backfill:j.unknown().optional(),jitter:j.unknown().optional()}),gr=j.object({id:j.string()});function Ir($){if(typeof $.type!=="string"||$.type.length===0)throw C("Missing required field: type");return{type:$.type,spec:C3($)}}function hr($){let U;if($.id!==void 0){if(typeof $.id!=="string"||$.id.length===0)throw C('Field "id" must be a non-empty string');U=$.id}let J;if($.overlap!==void 0){if(typeof $.overlap!=="string"||!mr($.overlap))throw C('Field "overlap" must be one of skip, queue, cancel-running, allow');J=$.overlap}let G;if($.backfill!==void 0){if(typeof $.backfill!=="boolean")throw C('Field "backfill" must be a boolean');G=$.backfill}let X;if($.jitter!==void 0){if(typeof $.jitter!=="string"&&typeof $.jitter!=="number")throw C('Field "jitter" must be a duration string or a number of milliseconds');X=$.jitter}return{id:U,overlap:J,backfill:G,jitter:X}}function yr($){let{type:U,spec:J}=Ir($),{id:G,overlap:X,backfill:Q,jitter:Z}=hr($);return{type:U,spec:J,id:G,overlap:X,backfill:Q,jitter:Z}}var zR=q({name:"weft.schedules.create",mcpExposable:!1,summary:"Create a recurring schedule",description:"Create a schedule that starts a workflow on a recurring cadence. Requires a schedule `id`, the target workflow `type`, and a recurrence specification (cron expression or interval); accepts the workflow `input` and start options. Returns the created schedule id. Faults with Conflict when a schedule with the same id already exists and InvalidParams for a malformed recurrence specification.",destructive:!1,tags:["Schedules"],inputSchema:vr,outputSchema:gr,access:{kind:"public"},producibleFaults:["NotFound","Conflict"],transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let J=U,G=yr($),X={...G.id!==void 0?{id:G.id}:{},...G.overlap!==void 0?{overlap:G.overlap}:{},...G.backfill!==void 0?{backfill:G.backfill}:{},...G.jitter!==void 0?{jitter:G.jitter}:{}};try{return{id:(await J.schedule(G.type,$.input,G.spec,X)).id}}catch(Q){throw _4(G.id??"",Q)}}});function mr($){return br.has($)}var BR={method:"POST",path:"/v1/schedules",pathParamNames:[],operationName:"weft.schedules.create",inputSources:{type:{kind:"body-field",bodyField:"type"},cronExpression:{kind:"body-field",bodyField:"cronExpression"},every:{kind:"body-field",bodyField:"every"},input:{kind:"body-field",bodyField:"input"},id:{kind:"body-field",bodyField:"id"},overlap:{kind:"body-field",bodyField:"overlap"},backfill:{kind:"body-field",bodyField:"backfill"},jitter:{kind:"body-field",bodyField:"jitter"}},extractInput:async($,U,J)=>{let G;try{G=await Y$($,J)}catch(Q){if(t(Q))throw Q;throw C("Invalid JSON body")}if(typeof G!=="object"||G===null)throw C("Request body must be a JSON object");let X=G;return{type:X.type,cronExpression:Object.hasOwn(X,"cronExpression")?X.cronExpression:void 0,every:Object.hasOwn(X,"every")?X.every:void 0,input:X.input,id:X.id,overlap:X.overlap,backfill:X.backfill,jitter:X.jitter}},success:{kind:"json",status:201},shapeFault:R};var kr="stream:token",WL=[r6.type,C4.type,C6.type,R4.type,R6.type,W0.type,K0.type,T4.type,t9.type,Y0.type,e9.type,_0.type,$X.type,L0.type,UX.type,j0.type,A6.type,U6.type,H0.type,D0.type,V0.type,n6.type,P0.type,F0.type,a4.type,X0.type,M0.type,z0.type,B0.type,JX.type,GX.type],Dz$=[...WL,kr];var fr=/^(?:-1|\d+)$/;function JJ($){if(!fr.test($))return null;let U=Number($);if(!Number.isSafeInteger(U)||U<-1)return null;return U}var ur="-1",wr=1000,cr=j.enum(WL),pr=j.string().regex(/^(?:-1|\d+)$/,"Invalid cursor").refine(($)=>JJ($)!==null,{message:"Invalid cursor"}),dr=j.object({workflowId:j.string().min(1).optional(),kind:cr.optional(),fromCursor:pr.optional()}),lr=j.object({subscriptionId:j.string(),cursor:j.string()}),ir=j.object({kind:j.string(),workflowId:j.string().optional(),sequence:j.number(),cursor:j.string(),emittedAtMs:j.number(),payload:j.unknown()}),R3=q({name:"weft.events.subscribe",mcpExposable:!1,kind:"subscription",summary:"Subscribe to fleet-wide events with replay-from-cursor",description:"Subscribes to the server-level event feed across workflows. Optional filters narrow delivery by workflow id or event kind after the single fleet cursor has been applied. Historical replay is capped at 1,000 matching retained events per subscription; use a recent fromCursor for older feeds.",destructive:!1,tags:["Events"],inputSchema:dr,outputSchema:lr,producibleFaults:["UnsupportedTransport","InvalidParams"],eventSchema:ir,access:{kind:"scoped",scopes:{kind:"anyOf",scopes:["events:read"]}},discoverable:!0,transports:{http:!1,jsonRpcHttp:!1,jsonRpcWebSocket:!0,jsonRpcStdio:!1},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U,transport:J})=>{let G=$.fromCursor??ur;if(JJ(G)===null)z6(R3,C("Invalid cursor"));let X=ar(U,J),Q=new AbortController,Z=X.subscribe({...$.fromCursor===void 0?{}:{fromCursor:$.fromCursor},signal:Q.signal,replayLimit:wr,filterEnvelope:(Y)=>rr(Y,$),createReplayLimitError:(Y,_)=>nr(Y,_)});return{envelope:{subscriptionId:`sub_${crypto.randomUUID()}`,cursor:G},iterable:Z,close:async()=>{Q.abort()}}}});function nr($,U){return C(`Fleet event replay window is ${$} matching events; maximum is ${U}. Supply a more recent fromCursor.`)}function rr($,U){if(!or($,U.workflowId))return!1;if(!sr($,U.kind))return!1;return!0}function or($,U){if(U===void 0)return!0;return $.workflowId===U}function sr($,U){if(U===void 0)return!0;return $.kind===U}function ar($,U){if(typeof $==="object"&&$!==null&&"fleetFeed"in $){let J=$.fleetFeed;if(tr(J))return J}z6(R3,{code:"UnsupportedTransport",message:"Fleet event subscription requires a WebSocket fleet event feed",data:{transport:U,supported:["jsonRpcWebSocket"]}})}function tr($){if(typeof $!=="object"||$===null)return!1;return typeof $.subscribe==="function"}var er=j.object({workflowId:j.string().min(1),fromStep:j.unknown().optional()}),$o=j.object({id:j.string()});function Uo($){if($.fromStep===void 0)return;if(typeof $.fromStep!=="number"||!Number.isSafeInteger($.fromStep)||$.fromStep<0)throw C('Field "fromStep" must be a non-negative safe integer');return{fromStep:$.fromStep}}function Jo($){let U=$ instanceof Error?$.message:String($);if(U.includes("fromStep")||U.includes("Checkpoint not found at step"))throw C(U);if(U.includes("Checkpoint not found"))throw{code:"NotFound",message:U,data:{resource:"checkpoint"}};if(U.includes("not found"))throw{code:"NotFound",message:U,data:{resource:"workflow"}};throw{code:"EngineFailure",message:U,data:{}}}var WR=q({name:"weft.workflows.fork",mcpExposable:!1,summary:"Fork a workflow from a checkpoint",destructive:!1,tags:["Workflows"],inputSchema:er,outputSchema:$o,access:{kind:"public"},producibleFaults:["NotFound"],transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let J=U,G=Uo($);try{return{id:(await J.fork($.workflowId,G)).id}}catch(X){Jo(X)}}}),KR={method:"POST",path:"/v1/workflows/:id/fork",pathParamNames:["id"],operationName:"weft.workflows.fork",inputSources:{workflowId:{kind:"path",pathParam:"id"},fromStep:{kind:"body-field",bodyField:"fromStep"}},extractInput:async($,U,J)=>{let G=await K4($,J);if(G.trim().length===0)return{workflowId:U.id??""};let X;try{X=JSON.parse(G)}catch{throw C("Invalid JSON body")}if(typeof X!=="object"||X===null||Array.isArray(X))throw C("Request body must be a JSON object");let Q=X;return{workflowId:U.id??"",fromStep:Q.fromStep}},success:{kind:"json",status:201},shapeFault:R};var Go=j.object({workflowId:j.string().min(1),step:j.number().int().nonnegative()}),Xo=j.unknown(),qR=q({name:"weft.workflows.checkpoints.get",mcpExposable:!1,summary:"Get a specific checkpoint by step number",destructive:!1,tags:["Checkpoints"],inputSchema:Go,outputSchema:Xo,access:{kind:"public"},producibleFaults:["NotFound"],transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let G=await U.getCheckpointAt($.workflowId,$.step);if(G===null)throw{code:"NotFound",message:`Checkpoint not found at step ${$.step} for workflow ${$.workflowId}`,data:{resource:"checkpoint",identifier:`${$.workflowId}:${$.step}`}};return G}});function Qo($,U){return h6(U,$,200)}function Zo($){return R($)}var NR={method:"GET",path:"/v1/workflows/:id/checkpoints/:step",pathParamNames:["id","step"],operationName:"weft.workflows.checkpoints.get",inputSources:{workflowId:{kind:"path",pathParam:"id"},step:{kind:"path",pathParam:"step"}},extractInput:async($,U)=>{let J=U.step??"";if(!/^\d+$/.test(J))throw{code:"InvalidParams",message:`Invalid step: ${J}`,data:{issues:[{path:["step"],message:`Invalid step: ${J}`,code:"custom"}]}};let G=Number(J);if(!Number.isSafeInteger(G)||G<0)throw{code:"InvalidParams",message:`Invalid step: ${J}`,data:{issues:[{path:["step"],message:`Invalid step: ${J}`,code:"custom"}]}};return{workflowId:U.id??"",step:G}},success:{kind:"json",status:200},shapeSuccess:($,U)=>Qo($,U),shapeFault:Zo};var Yo=j.object({}),OR=j.unknown().refine(($)=>typeof $==="object"&&$!==null&&!Array.isArray($),{message:"expected an object"}),_o=j.object({registryVersion:j.literal(1),workflows:OR,activities:OR}).strict(),AR=q({name:"weft.system.registry",mcpExposable:!1,summary:"Get a snapshot of registered workflows and activities with their JSON Schemas",destructive:!1,tags:["System"],inputSchema:Yo,outputSchema:_o,access:{kind:"scoped",scopes:{kind:"anyOf",scopes:["system:read"]}},discoverable:!0,transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({engine:$})=>{try{return qF($)}catch(U){if(U instanceof vU)console.error(`[weft.system.registry] ${U.message}`,{entityKind:U.entityKind,entityName:U.entityName,direction:U.direction});throw U}}}),CR={method:"GET",path:"/v1/registry",pathParamNames:[],operationName:"weft.system.registry",inputSources:{},extractInput:async()=>({}),success:{kind:"json",status:200},shapeSuccess:($)=>new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}}),shapeFault:R};var jo=j.object({}),Ho=j.unknown(),RR=q({name:"weft.retention.get",mcpExposable:!1,summary:"Get retention policy overview",destructive:!1,tags:["System"],inputSchema:jo,outputSchema:Ho,access:{kind:"public"},transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({engine:$})=>{return $.getRetentionOverview()}});function Do($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}function Lo($){return R($)}var TR={method:"GET",path:"/v1/retention",pathParamNames:[],operationName:"weft.retention.get",inputSources:{},extractInput:async()=>({}),success:{kind:"json",status:200},shapeSuccess:($)=>Do($),shapeFault:Lo};var Vo=j.object({workflowId:j.string().min(1),reviewId:j.string().min(1)}),Po=j.unknown(),ER=q({name:"weft.reviews.get",mcpExposable:!1,summary:"Get a specific review for a workflow",description:"Read a single human review request for a workflow by its identifiers, including the review prompt, available options, and current decision state. Read-only. Faults with NotFound when the review is not visible.",destructive:!1,tags:["Reviews"],inputSchema:Vo,outputSchema:Po,access:{kind:"public"},producibleFaults:["NotFound"],transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let G=await U.getReview($.workflowId,$.reviewId);if(G===null)throw{code:"NotFound",message:`Review "${$.reviewId}" not found for workflow "${$.workflowId}"`,data:{resource:"review",identifier:$.reviewId}};return G}});function Fo($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}function Mo($){return R($)}var xR={method:"GET",path:"/v1/workflows/:id/review/:reviewId",pathParamNames:["id","reviewId"],operationName:"weft.reviews.get",inputSources:{workflowId:{kind:"path",pathParam:"id"},reviewId:{kind:"path",pathParam:"reviewId"}},extractInput:async($,U)=>({workflowId:U.id??"",reviewId:U.reviewId??""}),success:{kind:"json",status:200},shapeSuccess:($)=>Fo($),shapeFault:Mo};var zo=j.object({scheduleId:j.string().min(1)}),Bo=j.unknown(),SR=q({name:"weft.schedules.get",mcpExposable:!1,summary:"Get a recurring schedule by id",description:"Read a single recurring schedule by `id`, including its recurrence specification, target workflow type, paused state, and next-run information. Read-only. Faults with NotFound when no schedule with the given id exists.",destructive:!1,tags:["Schedules"],inputSchema:zo,outputSchema:Bo,access:{kind:"authenticated"},producibleFaults:["NotFound","Conflict"],discoverable:!0,transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let G=await U.getSchedule($.scheduleId);if(G===null)throw{code:"NotFound",message:`Schedule "${$.scheduleId}" not found`,data:{resource:"schedule",identifier:$.scheduleId}};return G}});function Wo($){return R($)}var bR={method:"GET",path:"/v1/schedules/:id",pathParamNames:["id"],operationName:"weft.schedules.get",inputSources:{scheduleId:{kind:"path",pathParam:"id"}},extractInput:async($,U)=>({scheduleId:U.id??""}),success:{kind:"json",status:200},shapeFault:Wo};var Ko=/^-?\d+$/;function T3($,U){if($===null||$===void 0)return{};if($.trim().length===0)return{error:`Invalid ${U}: ${$}`};if(!Ko.test($))return{error:`Invalid ${U}: ${$}`};let J=Number($);if(!Number.isSafeInteger(J)||J<-1)return{error:`Invalid ${U}: ${$}`};return{value:J}}var vR=new TextEncoder;function gR($){let U=[];if($.id!==void 0)U.push(`id: ${$.id}`);if($.event!==void 0)U.push(`event: ${$.event}`);let J=$.data.split(`
|
|
53
53
|
`);for(let G of J)U.push(`data: ${G}`);return U.push(""),U.join(`
|
|
54
54
|
`)+`
|
|
55
55
|
`}function E3($,U){return new ReadableStream({start(J){for(let G of $){let X=U(G);if(X===null)continue;J.enqueue(vR.encode(gR({id:String(G.sequence),event:"token",data:X})))}J.enqueue(vR.encode(gR({event:"done",data:""}))),J.close()}})}var x3={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"};var qo=j.object({workflowId:j.string().min(1),key:j.string().min(1),after:j.unknown().optional()}),IR=q({name:"weft.workflows.streams.chunks",mcpExposable:!1,summary:"Read stored stream chunks for a workflow stream key",destructive:!1,tags:["Streams"],inputSchema:qo,outputSchema:j.object({chunks:j.array(j.unknown())}),access:{kind:"public"},transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let J=U,G;if($.after!==void 0){let Q=typeof $.after==="string"?$.after:typeof $.after==="number"?String($.after):"",Z=T3(Q,"after query parameter");if(Z.error!==void 0)throw C(Z.error);G=Z.value}return{chunks:G!==void 0?await J.getStreamChunks($.workflowId,$.key,{after:G}):await J.getStreamChunks($.workflowId,$.key)}}});function No($){if($.code==="InvalidParams")return Z$($.message,400);if($.code==="EngineFailure")return Z$("Internal server error",500);return Z$($.message,g$[$.code])}function Oo($,U){if((U.headers.get("Accept")??"").includes("text/event-stream"))return new Response(E3($.chunks,(G)=>JSON.stringify({sequence:G.sequence,value:G.value})),{status:200,headers:x3});return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}var hR={method:"GET",path:"/v1/workflows/:id/streams/:key",pathParamNames:["id","key"],operationName:"weft.workflows.streams.chunks",inputSources:{workflowId:{kind:"path",pathParam:"id"},key:{kind:"path",pathParam:"key"},after:{kind:"query",queryParam:"after"}},extractInput:async($,U)=>{let J=new URL($.url).searchParams.get("after");return{workflowId:U.id??"",key:U.key??"",...J!==null?{after:J}:{}}},success:{kind:"streaming",mediaType:"text/event-stream"},shapeSuccess:Oo,shapeFault:No};var Ao=j.object({}),Co=j.unknown();function KL($){return q({name:"weft.system.metrics",mcpExposable:!1,summary:"Get JSON-shaped system metrics",destructive:!1,tags:["Observability"],inputSchema:Ao,outputSchema:Co,access:{kind:"scoped",scopes:{kind:"anyOf",scopes:["system:read"]}},producibleFaults:[],discoverable:!0,transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async()=>{return $?.metricsCollector?.snapshot()??{}}})}var ZB$=KL();function yR(){return{method:"GET",path:"/v1/metrics/json",pathParamNames:[],operationName:"weft.system.metrics",inputSources:{},extractInput:async()=>({}),success:{kind:"json",status:200},shapeSuccess:($)=>new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}}),shapeFault:K6}}function mR($){if($===null||typeof $!=="object")return!1;let U=$;return typeof U.operationId==="string"&&typeof U.activityName==="string"&&typeof U.queue==="string"&&typeof U.attempt==="number"&&typeof U.visibilityTimeout==="number"&&typeof U.queuedAt==="number"}function kR($){if($===null||typeof $!=="object")return!1;let U=$;return typeof U.operationId==="string"&&typeof U.activityName==="string"&&typeof U.queue==="string"&&typeof U.attempt==="number"&&typeof U.visibilityTimeout==="number"&&typeof U.workerId==="string"&&typeof U.deadline==="number"}function qL($){if($===null||typeof $!=="object")return!1;let U=$;return typeof U.operationId==="string"&&(U.status==="completed"||U.status==="failed")&&typeof U.resolvedAt==="number"}function fR($){if($===null||typeof $!=="object")return!1;let U=$;return typeof U.operationId==="string"&&U.reason==="result-resolution-storage-exhausted"&&typeof U.deadLetteredAt==="number"&&typeof U.errorMessage==="string"&&typeof U.retryAttempts==="number"&&(U.status==="completed"||U.status==="failed")}async function uR($,U){await $.delete(P.operationDeadLetter(U))}function NL($){if($.lastQueuedAt===void 0||$.lastDispatchedAt===void 0)return;return Math.max(0,$.lastDispatchedAt-$.lastQueuedAt)}function OL($,U){let J=$.startedAt??$.lastDispatchedAt;if(J===void 0)return;return Math.max(0,U-J)}function wR($,U){let J=$.lastHeartbeatAt??$.startedAt??$.lastDispatchedAt??$.deadline;if(J===void 0)return;return Math.max(0,U-J)}var Ro=60000,To=60000,Eo=3,xo=50,cR=200,So=1000,bo=j.enum(["stuck-queued","stale-inflight","retry-storm","all-workers-at-capacity","dead-lettered"]),vo=j.object({kind:bo,state:j.enum(["queued","inflight","resolved","capacity","dead-lettered"]),operationId:j.string().optional(),workflowId:j.string().optional(),activityName:j.string().optional(),queue:j.string().optional(),workerId:j.string().optional(),retryCount:j.number().int().nonnegative(),requeueCount:j.number().int().nonnegative(),queueLatencyMs:j.number().nonnegative().optional(),executionLatencyMs:j.number().nonnegative().optional(),heartbeatAgeMs:j.number().nonnegative().optional(),lastRequeueReason:j.enum(["visibility-timeout","worker-disconnect"]).optional(),resolutionReason:j.string().optional(),deadLetteredAt:j.number().nonnegative().optional(),deadLetterReason:j.literal("result-resolution-storage-exhausted").optional(),storageError:j.string().optional(),retryAttempts:j.number().int().nonnegative().optional(),evidence:j.array(j.string())}).strict(),go=j.object({stuckQueued:j.number().int().nonnegative(),staleInflight:j.number().int().nonnegative(),retryStorms:j.number().int().nonnegative(),allWorkersAtCapacity:j.number().int().nonnegative(),deadLettered:j.number().int().nonnegative()}).strict(),Io=j.object({items:j.array(vo),summary:go,limit:j.number().int().min(1).max(cR)}).strict(),ho=j.object({operationId:j.string().min(1).optional(),workflowId:j.string().min(1).optional(),queue:j.string().min(1).optional(),staleQueuedAfterMs:j.number().int().nonnegative().default(Ro),staleHeartbeatAfterMs:j.number().int().nonnegative().default(To),retryStormMinimumAttempts:j.number().int().min(1).default(Eo),limit:j.number().int().min(1).max(cR).default(xo)}),yo=j.object({operationId:j.string().min(1)}),mo=j.object({ok:j.literal(!0)}).strict(),ko={http:!0,jsonRpcHttp:!1,jsonRpcWebSocket:!1,jsonRpcStdio:!1};function AL($={}){return q({name:"weft.tasks.diagnostics",mcpExposable:!1,summary:"Get bounded task latency and stuck-work diagnostics",destructive:!1,tags:["Observability"],inputSchema:ho,outputSchema:Io,access:{kind:"scoped",scopes:{kind:"anyOf",scopes:["system:read"]}},producibleFaults:[],discoverable:!0,transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:U,engine:J})=>{let G=$.now?.()??Date.now();return fo({engine:J,input:U,currentTime:G,registry:$.registry,taskQueue:$.taskQueue})}})}var pR=AL(),dR=q({name:"weft.tasks.diagnostics.deadletters.clear",mcpExposable:!1,summary:"Clear a task-result dead-letter diagnostic entry",destructive:!0,tags:["Observability"],inputSchema:yo,outputSchema:mo,access:{kind:"scoped",scopes:{kind:"anyOf",scopes:["system:admin"]}},producibleFaults:[],discoverable:!0,transports:ko,unknownKeyPolicy:{http:"reject",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{return await uR(U.storage,$.operationId),{ok:!0}}});async function fo({engine:$,input:U,currentTime:J,registry:G,taskQueue:X}){let Q=[],Z={stuckQueued:0,staleInflight:0,retryStorms:0,allWorkersAtCapacity:0,deadLettered:0},Y=new Set,_=new Set,H=(D)=>{if(to(Z,D.kind),Q.length<U.limit)Q.push(D)};for await(let D of uo($)){if(!S3(D,U))continue;if(_.add(D.operationId),D.queue!==void 0)Y.add(D.queue);no(D,H)}for await(let D of wo($)){if(!S3(D,U))continue;Y.add(D.queue),lo(D,U,J,H)}for await(let D of co($)){if(!S3(D,U))continue;if(_.has(D.operationId))continue;Y.add(D.queue),io(D,U,J,H)}for await(let D of po($,U)){if(!S3(D,U))continue;if(D.queue!==void 0)Y.add(D.queue);CL(D,"resolved",U,H)}return ro({registry:G,taskQueue:X,input:U,queues:Y,addItem:H}),{items:Q,summary:Z,limit:U.limit}}async function*uo($){for await(let[,U]of $.storage.scan(P.operationDeadLetterPrefix())){let J=A(U);if(fR(J))yield J}}async function*wo($){for await(let[,U]of $.storage.scan("op:queued:")){let J=A(U);if(mR(J))yield J}}async function*co($){for await(let[,U]of $.storage.scan("op:inflight:")){let J=A(U);if(kR(J))yield J}}async function*po($,U){if(U.operationId!==void 0){let J=await $.storage.get(P.operationResolved(U.operationId));if(J===null)return;let G=A(J);if(qL(G))yield G;return}for await(let[,J]of $.storage.scan(P.operationResolvedByTimePrefix(),{limit:So,reverse:!0})){let G=A(J);if(qL(G))yield G}}function lo($,U,J,G){let X=$.lastQueuedAt??$.queuedAt,Q=Math.max(0,J-X);if(Q>=U.staleQueuedAfterMs)G({kind:"stuck-queued",state:"queued",operationId:$.operationId,workflowId:$.workflowId,activityName:$.activityName,queue:$.queue,retryCount:$.retryCount??Math.max(0,($.attempt??1)-1),requeueCount:$.requeueCount??0,queueLatencyMs:Q,lastRequeueReason:$.lastRequeueReason,evidence:[`Task has waited ${Q}ms in queue "${$.queue}" without a worker claim`]});CL($,"queued",U,G)}function io($,U,J,G){let X=wR($,J)??0;if(X>=U.staleHeartbeatAfterMs)G({kind:"stale-inflight",state:"inflight",operationId:$.operationId,workflowId:$.workflowId,activityName:$.activityName,queue:$.queue,workerId:$.workerId,retryCount:$.retryCount??Math.max(0,($.attempt??1)-1),requeueCount:$.requeueCount??0,queueLatencyMs:NL($),executionLatencyMs:OL($,J),heartbeatAgeMs:X,lastRequeueReason:$.lastRequeueReason,evidence:[`Worker "${$.workerId}" has not sent a heartbeat for ${X}ms on queue "${$.queue}"`]});CL($,"inflight",U,G)}function no($,U){U({kind:"dead-lettered",state:"dead-lettered",operationId:$.operationId,workflowId:$.workflowId,activityName:$.activityName,queue:$.queue,workerId:$.workerId,retryCount:$.retryCount??Math.max(0,($.attempt??1)-1),requeueCount:$.requeueCount??0,lastRequeueReason:$.lastRequeueReason,deadLetteredAt:$.deadLetteredAt,deadLetterReason:$.reason,storageError:$.errorMessage,retryAttempts:$.retryAttempts,evidence:[`Task result transition exhausted ${$.retryAttempts} storage attempts; reconciliation will not re-dispatch operation "${$.operationId}" until the dead-letter entry is cleared`]})}function CL($,U,J,G){let X=$.retryCount??Math.max(0,($.attempt??1)-1),Q=$.requeueCount??0;if(X<J.retryStormMinimumAttempts&&Q<J.retryStormMinimumAttempts)return;G({kind:"retry-storm",state:U,operationId:$.operationId,workflowId:$.workflowId,activityName:"activityName"in $?$.activityName:void 0,queue:$.queue,workerId:"workerId"in $?$.workerId:void 0,retryCount:X,requeueCount:Q,queueLatencyMs:NL($),executionLatencyMs:"resolvedAt"in $?OL($,$.resolvedAt):void 0,lastRequeueReason:$.lastRequeueReason,resolutionReason:"resolutionReason"in $?$.resolutionReason:void 0,evidence:[`Task has ${X} retries and ${Q} requeues, meeting retry storm threshold ${J.retryStormMinimumAttempts}`]})}function ro({registry:$,taskQueue:U,input:J,queues:G,addItem:X}){if($===void 0||U===void 0)return;let Q=oo($),Z=so(J,G,Q);for(let Y of Z){let _=ao(Y,Q,U);if(_===null)continue;X(_)}}function oo($){let U=new Map;for(let J of $.getAll()){let G=U.get(J.queue)??[];G.push(J),U.set(J.queue,G)}return U}function so($,U,J){if($.queue!==void 0)return[$.queue];if(U.size>0)return[...U];if($.operationId!==void 0||$.workflowId!==void 0)return[];return[...J.keys()]}function ao($,U,J){let G=U.get($)??[],X=J.pendingCount($);if(G.length===0||X===0)return null;let Q=G.reduce((Y,_)=>Y+_.concurrency,0),Z=G.reduce((Y,_)=>Y+_.inFlight,0);if(Q===0||Z<Q)return null;return{kind:"all-workers-at-capacity",state:"capacity",queue:$,retryCount:0,requeueCount:0,evidence:[`Queue "${$}" has ${X} pending tasks and all ${G.length} workers at capacity`]}}function S3($,U){if(U.operationId!==void 0&&$.operationId!==U.operationId)return!1;if(U.workflowId!==void 0&&$.workflowId!==U.workflowId)return!1;if(U.queue!==void 0&&$.queue!==U.queue)return!1;return!0}function to($,U){switch(U){case"stuck-queued":$.stuckQueued+=1;return;case"stale-inflight":$.staleInflight+=1;return;case"retry-storm":$.retryStorms+=1;return;case"all-workers-at-capacity":$.allWorkersAtCapacity+=1;return;case"dead-lettered":$.deadLettered+=1;return}}function b3($){return $===null||$.length===0?void 0:Number($)}var lR={method:"GET",path:"/v1/tasks/diagnostics",pathParamNames:[],operationName:"weft.tasks.diagnostics",inputSources:{operationId:{kind:"query",queryParam:"operationId"},workflowId:{kind:"query",queryParam:"workflowId"},queue:{kind:"query",queryParam:"queue"},staleQueuedAfterMs:{kind:"query",queryParam:"staleQueuedAfterMs"},staleHeartbeatAfterMs:{kind:"query",queryParam:"staleHeartbeatAfterMs"},retryStormMinimumAttempts:{kind:"query",queryParam:"retryStormMinimumAttempts"},limit:{kind:"query",queryParam:"limit"}},extractInput:async($)=>{let U=new URL($.url);return{operationId:U.searchParams.get("operationId")??void 0,workflowId:U.searchParams.get("workflowId")??void 0,queue:U.searchParams.get("queue")??void 0,staleQueuedAfterMs:b3(U.searchParams.get("staleQueuedAfterMs")),staleHeartbeatAfterMs:b3(U.searchParams.get("staleHeartbeatAfterMs")),retryStormMinimumAttempts:b3(U.searchParams.get("retryStormMinimumAttempts")),limit:b3(U.searchParams.get("limit"))}},success:{kind:"json",status:200},shapeSuccess:($)=>new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}}),shapeFault:R},iR={method:"DELETE",path:"/v1/tasks/diagnostics/dead-letter/:operationId",pathParamNames:["operationId"],operationName:"weft.tasks.diagnostics.deadletters.clear",inputSources:{operationId:{kind:"path",pathParam:"operationId"}},extractInput:async($,U)=>({operationId:U.operationId??""}),success:{kind:"json",status:200},shapeSuccess:($)=>new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}}),shapeFault:R};var eo=j.object({updateId:j.string().min(1)}),$s=j.unknown(),nR=q({name:"weft.updates.result.get",mcpExposable:!1,summary:"Get the result of an update request",destructive:!1,tags:["Updates"],inputSchema:eo,outputSchema:$s,access:{kind:"public"},transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let G=await U.getUpdateResult($.updateId);if(G===null)return{status:"pending"};return{status:"completed",result:G.result,...G.error!==void 0?{error:G.error}:{}}}});function Us($){if($.status==="pending")return new Response(JSON.stringify($),{status:202,headers:{"Content-Type":"application/json"}});return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}function Js($){return R($)}var rR={method:"GET",path:"/v1/updates/:updateId",pathParamNames:["updateId"],operationName:"weft.updates.result.get",inputSources:{updateId:{kind:"path",pathParam:"updateId"}},extractInput:async($,U)=>({updateId:U.updateId??""}),success:{kind:"json",status:200},shapeSuccess:($)=>Us($),shapeFault:Js};var Gs=j.object({workflowId:j.string().min(1)}),Xs=j.unknown(),oR=q({name:"weft.workflows.attributes.get",mcpExposable:!1,summary:"Get workflow attributes by id",destructive:!1,tags:["Attributes"],inputSchema:Gs,outputSchema:Xs,access:{kind:"public"},producibleFaults:["NotFound"],transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let G=await U.getAttributes($.workflowId);if(G===null)throw{code:"NotFound",message:`Attributes for workflow "${$.workflowId}" not found`,data:{resource:"attributes",identifier:$.workflowId}};return G}});function Qs($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}function Zs($){return R($)}var sR={method:"GET",path:"/v1/workflows/:id/attributes",pathParamNames:["id"],operationName:"weft.workflows.attributes.get",inputSources:{workflowId:{kind:"path",pathParam:"id"}},extractInput:async($,U)=>({workflowId:U.id??""}),success:{kind:"json",status:200},shapeSuccess:($)=>Qs($),shapeFault:Zs};var Ys=j.object({workflowId:j.string().min(1)}),_s=j.unknown(),aR=q({name:"weft.workflows.events.list",mcpExposable:!1,summary:"Get workflow events by id",destructive:!1,tags:["Events"],inputSchema:Ys,outputSchema:_s,access:{kind:"public"},producibleFaults:["NotFound"],transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let J=U;if(await J.get($.workflowId)===null)throw{code:"NotFound",message:`Workflow "${$.workflowId}" not found`,data:{resource:"workflow",identifier:$.workflowId}};return{events:await J.getEvents($.workflowId)}}});function js($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}function Hs($){return R($)}var tR={method:"GET",path:"/v1/workflows/:id/events",pathParamNames:["id"],operationName:"weft.workflows.events.list",inputSources:{workflowId:{kind:"path",pathParam:"id"}},extractInput:async($,U)=>({workflowId:U.id??""}),success:{kind:"json",status:200},shapeSuccess:($)=>js($),shapeFault:Hs};var Ds=j.object({workflowId:j.string().min(1)}),Ls=j.unknown(),eR=q({name:"weft.workflows.result.get",mcpExposable:!1,summary:"Get workflow result by id",destructive:!1,tags:["Workflows"],inputSchema:Ds,outputSchema:Ls,access:{kind:"public"},producibleFaults:["NotFound","Unprocessable","Timeout"],transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let J=U,G=await J.get($.workflowId);if(G===null)throw{code:"NotFound",message:`Workflow "${$.workflowId}" not found`,data:{resource:"workflow",identifier:$.workflowId}};if(G.status==="completed")return{result:G.result};if(G.status==="failed"){let Y=G.error??"Workflow failed";throw{code:"Unprocessable",message:Y,data:{reason:Y}}}if(G.status==="cancelled")throw{code:"Unprocessable",message:"Workflow cancelled",data:{reason:"Workflow cancelled"}};let X=J.getHandle($.workflowId),Q=30000,Z;try{return{result:await Promise.race([X.result(),new Promise((_,H)=>{Z=setTimeout(()=>H(Error("Timeout waiting for workflow result")),Q)})])}}catch(Y){let _=Y instanceof Error?Y.message:String(Y);if(_.includes("Timeout"))throw{code:"Timeout",message:"Timeout waiting for workflow result",data:{}};throw{code:"EngineFailure",message:_,data:{}}}finally{clearTimeout(Z)}}});function Vs($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}function Ps($){if($.code==="Timeout")return Z$("Timeout waiting for workflow result",408);return R($)}var $T={method:"GET",path:"/v1/workflows/:id/result",pathParamNames:["id"],operationName:"weft.workflows.result.get",inputSources:{workflowId:{kind:"path",pathParam:"id"}},extractInput:async($,U)=>({workflowId:U.id??""}),success:{kind:"json",status:200},shapeSuccess:($)=>Vs($),shapeFault:Ps};var Fs=j.object({workflowId:j.string().min(1)}),Ms=j.unknown(),UT=q({name:"weft.workflows.timeline.get",mcpExposable:!1,summary:"Get the structured execution timeline for a workflow",destructive:!1,tags:["Checkpoints"],inputSchema:Fs,outputSchema:Ms,access:{kind:"public"},producibleFaults:["NotFound"],transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let J=U;if(await J.get($.workflowId)===null)throw{code:"NotFound",message:`Workflow "${$.workflowId}" not found`,data:{resource:"workflow",identifier:$.workflowId}};return J.getTimeline($.workflowId)}});function zs($,U){return h6(U,$,200)}function Bs($){return R($)}var JT={method:"GET",path:"/v1/workflows/:id/timeline",pathParamNames:["id"],operationName:"weft.workflows.timeline.get",inputSources:{workflowId:{kind:"path",pathParam:"id"}},extractInput:async($,U)=>({workflowId:U.id??""}),success:{kind:"json",status:200},shapeSuccess:($,U)=>zs($,U),shapeFault:Bs};var Ws=j.object({workflowId:j.string().min(1)}),Ks=j.unknown(),GT=q({name:"weft.workflows.get",mcpExposable:!1,summary:"Get workflow state by id",description:"Read the current state of a single workflow by `id`, including its status, timestamps, tags, and search attributes. Read-only. Faults with NotFound when no workflow with the given id is visible.",destructive:!1,tags:["Workflows"],inputSchema:Ws,outputSchema:Ks,access:{kind:"public"},producibleFaults:["NotFound"],transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let G=await U.get($.workflowId);if(G===null)throw{code:"NotFound",message:`Workflow "${$.workflowId}" not found`,data:{resource:"workflow",identifier:$.workflowId}};return G}});function qs($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}var XT={method:"GET",path:"/v1/workflows/:id",pathParamNames:["id"],operationName:"weft.workflows.get",inputSources:{workflowId:{kind:"path",pathParam:"id"}},extractInput:async($,U)=>({workflowId:U.id??""}),success:{kind:"json",status:200},shapeSuccess:($)=>qs($),shapeFault:R};var Ns=j.object({workflowId:j.string().min(1)}),Os=j.unknown(),QT=q({name:"weft.workflows.checkpoints.list",mcpExposable:!1,summary:"List checkpoint history for a workflow",destructive:!1,tags:["Checkpoints"],inputSchema:Ns,outputSchema:Os,access:{kind:"public"},transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{return U.listCheckpoints($.workflowId)}});function As($,U){return h6(U,$,200)}function Cs($){return R($)}var ZT={method:"GET",path:"/v1/workflows/:id/checkpoints",pathParamNames:["id"],operationName:"weft.workflows.checkpoints.list",inputSources:{workflowId:{kind:"path",pathParam:"id"}},extractInput:async($,U)=>({workflowId:U.id??""}),success:{kind:"json",status:200},shapeSuccess:($,U)=>As($,U),shapeFault:Cs};var Rs=j.enum(["pending","completed"]),Ts=j.object({status:Rs.optional(),workflowId:j.string().min(1).optional(),reviewType:j.string().min(1).optional()}),YT=j.object({status:j.literal("pending"),reviewId:j.string(),workflowId:j.string(),artifact:j.unknown().nonoptional(),reviewType:j.string(),reviewers:j.array(j.string()),allowPartial:j.boolean(),timeout:j.number().optional(),webhookUrl:j.string().optional(),createdAt:j.number()}),Es=YT.extend({status:j.literal("completed"),decision:j.enum(["approved","rejected","needs-changes"]),reviewer:j.string(),feedback:j.string().optional(),sectionDecisions:j.record(j.string(),j.enum(["approved","rejected"])).optional(),timestamp:j.number()}),xs=j.union([YT,Es]),Ss=j.object({items:j.array(xs)}),_T=q({name:"weft.reviews.list",mcpExposable:!1,summary:"List human review requests",description:"List pending human-in-the-loop review requests, optionally filtered by workflow. Read-only. Returns each review request with its prompt, options, and originating workflow so an operator or agent can decide on it via the review-decision operation.",destructive:!1,tags:["Reviews"],inputSchema:Ts,outputSchema:Ss,access:{kind:"scoped",scopes:{kind:"anyOf",scopes:["reviews:read"]}},transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{return{items:await U.listReviews($)}}});function bs($){let U=new URL($.url),J={},G=U.searchParams.get("status");if(G!==null)J.status=G;let X=U.searchParams.get("workflowId");if(X!==null)J.workflowId=X;let Q=U.searchParams.get("reviewType");if(Q!==null)J.reviewType=Q;return J}function vs($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}var jT={method:"GET",path:"/v1/reviews",pathParamNames:[],operationName:"weft.reviews.list",inputSources:{status:{kind:"query",queryParam:"status"},workflowId:{kind:"query",queryParam:"workflowId"},reviewType:{kind:"query",queryParam:"reviewType"}},extractInput:async($)=>bs($),success:{kind:"json",status:200},shapeSuccess:($)=>vs($),shapeFault:K6};var gs=new Set(["active","paused","cancelled"]);function Is($){return gs.has($)}var hs=j.object({status:j.unknown().optional(),workflowType:j.unknown().optional(),limit:j.unknown().optional(),offset:j.unknown().optional()}),ys=j.unknown();function ms($,U){if(U.status===void 0)return;let J=Array.isArray(U.status)?U.status:[U.status],G=[];for(let X of J){if(typeof X!=="string"||!Is(X))throw C('Query parameter "status" must be one of active, paused, cancelled');G.push(X)}if(G.length===1&&G[0]!==void 0)$.status=G[0];else if(G.length>1)$.status=G}function ks($,U){if(U.workflowType!==void 0){if(typeof U.workflowType!=="string")throw C('Query parameter "workflowType" must be a string');$.workflowType=U.workflowType}}function fs($,U){if(U.limit!==void 0){let J=Number(U.limit);if(!Number.isInteger(J)||J<1)throw C('Query parameter "limit" must be a positive integer');$.limit=Math.min(J,1000)}if(U.offset!==void 0){let J=Number(U.offset);if(!Number.isInteger(J)||J<0)throw C('Query parameter "offset" must be a non-negative integer');$.offset=J}}function us($){let U={};return ms(U,$),ks(U,$),fs(U,$),U}var HT=q({name:"weft.schedules.list",mcpExposable:!1,summary:"List recurring schedules",description:"List recurring schedules with pagination. Read-only. Returns each schedule with its recurrence specification, target workflow type, and paused state.",destructive:!1,tags:["Schedules"],inputSchema:hs,outputSchema:ys,access:{kind:"authenticated"},producibleFaults:["Conflict"],discoverable:!0,transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let J=U,G=us($);return J.listSchedules(G)}});function ws($){return R($)}var DT={method:"GET",path:"/v1/schedules",pathParamNames:[],operationName:"weft.schedules.list",inputSources:{status:{kind:"query",queryParam:"status"},workflowType:{kind:"query",queryParam:"workflowType"},limit:{kind:"query",queryParam:"limit"},offset:{kind:"query",queryParam:"offset"}},extractInput:async($)=>{let U=new URL($.url),J=U.searchParams.getAll("status"),G={};if(J.length===1)G.status=J[0];else if(J.length>1)G.status=J;let X=U.searchParams.get("workflowType");if(X!==null)G.workflowType=X;let Q=U.searchParams.get("limit");if(Q!==null)G.limit=Q;let Z=U.searchParams.get("offset");if(Z!==null)G.offset=Z;return G},success:{kind:"json",status:200},shapeFault:ws};var cs=j.object({}),ps=j.enum(["priority","fifo","lifo"]),ds=j.object({queue:j.string(),backlog:j.number(),oldestEnqueuedAt:j.number().nullable(),oldestQueuedAgeMs:j.number().nullable(),waitingPollers:j.number(),schedulingPolicy:ps,inFlight:j.number(),connectedWorkers:j.number()}),ls=j.object({items:j.array(ds)});function RL($){let U=$?.workerRegistry,J=$?.taskQueue,G=$?.clock??Date.now;return q({name:"weft.task.queues.list",mcpExposable:!1,summary:"List task queues with backlog, waiting pollers, and per-queue saturation",destructive:!1,tags:["System"],inputSchema:cs,outputSchema:ls,access:{kind:"scoped",scopes:{kind:"anyOf",scopes:["system:read"]}},discoverable:!0,transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async()=>{if(U===void 0||J===void 0)throw Error("weft.task.queues.list invoked from a discovery-only operation registry; no WorkerRegistry or TaskQueue was wired in");let X=G(),Q=U.getWorkerSummaries(X),Z=J.getQueueSummaries();return{items:os({now:X,workerSummaries:Q,queueEntries:Z,schedulingPolicy:J.schedulingPolicy})}}})}function is($){let U=new Map;for(let J of $){let G=U.get(J.queue);if(G===void 0)U.set(J.queue,{inFlight:J.inFlight,connectedWorkers:1});else G.inFlight+=J.inFlight,G.connectedWorkers+=1}return U}var ns={inFlight:0,connectedWorkers:0};function rs($){let{queue:U,now:J,queueEntry:G,fallbackSchedulingPolicy:X}=$,Q=$.workerLoad??ns,Z=G===void 0?null:G.oldestEnqueuedAt,Y=Z===null?null:J-Z;return{queue:U,backlog:G===void 0?0:G.backlog,oldestEnqueuedAt:Z,oldestQueuedAgeMs:Y,waitingPollers:G===void 0?0:G.waitingPollers,schedulingPolicy:G===void 0?X:G.schedulingPolicy,inFlight:Q.inFlight,connectedWorkers:Q.connectedWorkers}}function os($){let{now:U,workerSummaries:J,queueEntries:G,schedulingPolicy:X}=$,Q=is(J),Z=new Set;for(let H of G)Z.add(H.queue);for(let H of Q.keys())Z.add(H);let Y=new Map(G.map((H)=>[H.queue,H])),_=[];for(let H of Z)_.push(rs({queue:H,now:U,queueEntry:Y.get(H),workerLoad:Q.get(H),fallbackSchedulingPolicy:X}));return _.toSorted((H,D)=>H.queue<D.queue?-1:H.queue>D.queue?1:0)}var LT=RL();function VT(){return{method:"GET",path:"/v1/task-queues",pathParamNames:[],operationName:"weft.task.queues.list",inputSources:{},extractInput:async()=>({}),success:{kind:"json",status:200},shapeSuccess:($)=>new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}}),shapeFault:K6}}var ss=j.object({}),as=j.enum(["least-loaded","round-robin","fair-share"]),PT=j.enum(["active","draining","drained"]),TL=j.lazy(()=>j.union([j.null(),j.boolean(),j.number(),j.string(),j.array(TL),j.record(j.string(),TL)])),ts=j.object({id:j.string(),queue:j.string(),activities:j.array(j.string()),concurrency:j.number(),inFlight:j.number(),availableCapacity:j.number(),connectedAt:j.number(),lastHeartbeatAt:j.number(),heartbeatAgeMs:j.number(),startedAt:j.number(),capabilities:j.record(j.string(),TL),health:PT,deploymentName:j.string().optional(),buildId:j.string().optional(),runtimeVersion:j.string().optional(),gitSha:j.string().optional()}),es=j.object({deploymentName:j.string().nullable(),buildId:j.string().nullable(),runtimeVersion:j.string().nullable(),gitSha:j.string().nullable(),health:PT,workers:j.number(),activeWorkers:j.number(),drainingWorkers:j.number(),drainedWorkers:j.number(),inFlight:j.number(),oldestStartedAt:j.number().nullable()}),$a=j.object({items:j.array(ts),deployments:j.array(es),routingPolicy:as});function EL($){let U=$?.workerRegistry,J=$?.clock??Date.now;return q({name:"weft.workers.list",mcpExposable:!1,summary:"List connected workers, their advertised activities, and saturation",description:"List workers currently connected to the engine, including each worker id, its advertised activities and workflows, drain state, and saturation. Read-only. Use this to observe the worker fleet before draining or rebalancing.",destructive:!1,tags:["System"],inputSchema:ss,outputSchema:$a,access:{kind:"scoped",scopes:{kind:"anyOf",scopes:["system:read"]}},discoverable:!0,transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async()=>{if(U===void 0)throw Error("weft.workers.list invoked from a discovery-only operation registry; no WorkerRegistry was wired in");let G=J();return{items:U.getWorkerSummaries(G),deployments:U.getDeploymentSummaries(G),routingPolicy:U.policy}}})}var FT=EL();function MT(){return{method:"GET",path:"/v1/workers",pathParamNames:[],operationName:"weft.workers.list",inputSources:{},extractInput:async()=>({}),success:{kind:"json",status:200},shapeSuccess:($)=>new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}}),shapeFault:K6}}var zT=j.custom(($)=>typeof $==="string"),BT=j.custom(($)=>typeof $==="string"),GJ=j.custom(($)=>{if(typeof $==="string"||typeof $==="number"||typeof $==="boolean")return!0;return Array.isArray($)&&$.every((U)=>typeof U==="string")}),Ua=j.object({key:j.string().min(1),value:GJ.optional(),gt:GJ.optional(),lt:GJ.optional(),gte:GJ.optional(),lte:GJ.optional()}),xL=j.object({gte:j.number().optional(),gt:j.number().optional(),lte:j.number().optional(),lt:j.number().optional()}),Ja=j.union([j.string(),j.array(j.string()).min(1)]).refine(($)=>Array.isArray($)?$.every((U)=>U==="failureCategory"):$==="failureCategory",{message:'include must be "failureCategory"'}),Ga=j.object({status:j.union([zT,j.array(zT)]).optional(),type:j.string().optional(),tags:j.array(j.string()).optional(),attributes:j.array(Ua).optional(),limit:j.number().int().min(1).max(1000).optional(),offset:j.number().int().min(0).optional(),idPrefix:j.string().optional(),createdAt:xL.optional(),updatedAt:xL.optional(),executionDeadline:xL.optional(),failureCategory:j.union([BT,j.array(BT)]).optional(),include:Ja.optional()}),Xa=j.unknown(),WT=q({name:"weft.workflows.list",mcpExposable:!1,summary:"List workflows",description:"List workflows visible to the caller, optionally filtered by status, type, tags, id prefix, failure category, and time range, with pagination via `limit`/`offset`. Read-only. Returns the matching workflow summaries in the engine default ordering.",destructive:!1,tags:["Workflows"],inputSchema:Ga,outputSchema:Xa,access:{kind:"public"},producibleFaults:["Unprocessable"],transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let J=U,{include:G,...X}=$,Q;if(X.tags!==void 0)try{Q=j$(X.tags,"tags")}catch(Y){throw SL(Y)}let Z;try{Z=dU({...X,...Q!==void 0?{tags:Q}:{}})}catch(Y){if(Y instanceof pU)throw SL(Y);throw Y}try{let Y=Array.isArray(G)?G.includes("failureCategory"):G==="failureCategory";return await J.list(Z,Y?{includeFailureCategory:!0}:void 0)}catch(Y){if(Y instanceof N6)throw SL(Y);throw Y}}});function SL($){let U=$ instanceof Error?$.message:String($);return{code:"Unprocessable",message:U,data:{reason:U}}}function Qa($){let U=new URL($.url),J=d9(U),G=U.searchParams.get("limit");if(G!==null){let Z=Number(G);if(Number.isFinite(Z)&&Z>=1)J.limit=Math.min(Math.floor(Z),1000)}let X=U.searchParams.get("offset");if(X!==null){let Z=Number(X);if(Number.isFinite(Z)&&Z>=0)J.offset=Math.floor(Z)}let Q=U.searchParams.getAll("include");if(Q.length===1)J.include=Q[0];else if(Q.length>1)J.include=Q;return J}function Za($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}function Ya($){if($.code==="Unprocessable")return Z$($.message,400);return R($)}var KT={method:"GET",path:"/v1/workflows",pathParamNames:[],operationName:"weft.workflows.list",inputSources:{status:{kind:"query",queryParam:"status",repeating:!0},type:{kind:"query",queryParam:"type"},tags:{kind:"query",queryParam:"tag",repeating:!0},limit:{kind:"query",queryParam:"limit"},offset:{kind:"query",queryParam:"offset"},include:{kind:"query",queryParam:"include",repeating:!0}},extractInput:async($)=>Qa($),success:{kind:"json",status:200},shapeSuccess:($)=>Za($),shapeFault:Ya};var _a=j.object({scheduleId:j.string().min(1)}),ja=j.undefined(),qT=q({name:"weft.schedules.pause",mcpExposable:!1,summary:"Pause a recurring schedule",description:"Pause a recurring schedule by `scheduleId` so it stops launching new workflows while retaining its definition. Reversible via resume. Faults with NotFound when no schedule with the given id exists.",destructive:!1,tags:["Schedules"],inputSchema:_a,outputSchema:ja,access:{kind:"public"},producibleFaults:["NotFound","Conflict"],transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let J=U;try{await J.pauseSchedule($.scheduleId);return}catch(G){throw _4($.scheduleId,G)}}}),NT={method:"POST",path:"/v1/schedules/:id/pause",pathParamNames:["id"],operationName:"weft.schedules.pause",inputSources:{scheduleId:{kind:"path",pathParam:"id"}},extractInput:async($,U)=>({scheduleId:U.id??""}),success:{kind:"empty",status:204},shapeFault:R};var Ha=j.unknown(),OT=q({name:"weft.workflows.purge",mcpExposable:!1,summary:"Purge terminal workflows",destructive:!0,tags:["Workflows"],inputSchema:j6,outputSchema:Ha,access:{kind:"public"},transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let J=U,G;if($.tags!==void 0)try{G=j$($.tags,'Field "filter.tags"')}catch(Q){throw C($$(Q))}let X=A3({...$,...G===void 0?{}:{tags:G}});return await J.purge(Object.keys(X).length===0?void 0:X)}}),AT={method:"POST",path:"/v1/workflows/purge",pathParamNames:[],operationName:"weft.workflows.purge",inputSources:{},extractInput:async($,U,J)=>{let G=await H6($,J);try{return{...D6(G)}}catch(X){throw C($$(X))}},success:{kind:"json",status:200},shapeSuccess:($)=>L6($),shapeFault:R};var Da=j.object({workflowId:j.string().min(1),queryName:j.string().min(1),input:j.unknown().optional()}),La=j.unknown(),CT=q({name:"weft.workflows.query",mcpExposable:!1,summary:"Query workflow state by id",description:"Run a named read-only query handler against a workflow and return its result. Requires the workflow `id` and the query `name`; `input` is optional. Queries do not mutate workflow state. Faults with NotFound when the workflow is not visible.",destructive:!1,tags:["Workflows"],inputSchema:Da,outputSchema:La,access:{kind:"public"},producibleFaults:["NotImplemented"],transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let J=U;try{return{result:await J.query($.workflowId,$.queryName,$.input)??null}}catch(G){let X=G instanceof Error?G.message:String(G);if(X.includes("not supported"))throw{code:"NotImplemented",message:X,data:{}};throw{code:"EngineFailure",message:X,data:{}}}}});function RT($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}var TT={method:"GET",path:"/v1/workflows/:id/query/:name",pathParamNames:["id","name"],operationName:"weft.workflows.query",inputSources:{workflowId:{kind:"path",pathParam:"id"},queryName:{kind:"path",pathParam:"name"}},extractInput:async($,U)=>({workflowId:U.id??"",queryName:U.name??""}),success:{kind:"json",status:200},shapeSuccess:($)=>RT($),shapeFault:R},ET={method:"POST",path:"/v1/workflows/:id/query/:name",pathParamNames:["id","name"],operationName:"weft.workflows.query",inputSources:{workflowId:{kind:"path",pathParam:"id"},queryName:{kind:"path",pathParam:"name"},input:{kind:"body-field",bodyField:"input"}},extractInput:async($,U,J)=>{let G=await K4($,J);if(G.trim().length===0)return{workflowId:U.id??"",queryName:U.name??"",input:void 0};let X;try{X=JSON.parse(G)}catch{throw C("Invalid JSON body")}if(typeof X!=="object"||X===null||Array.isArray(X))throw C("Request body must be a JSON object");return{workflowId:U.id??"",queryName:U.name??"",input:X.input}},success:{kind:"json",status:200},shapeSuccess:($)=>RT($),shapeFault:R};var Va=j.object({}),Pa=j.object({recovered:j.array(j.string())}),xT=q({name:"weft.recover.all",mcpExposable:!1,summary:"Recover all interrupted workflows",destructive:!0,tags:["System"],inputSchema:Va,outputSchema:Pa,access:{kind:"public"},producibleFaults:["Conflict"],transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({engine:$})=>{let U=$;try{return{recovered:(await U.recoverAll()).map((G)=>G.id)}}catch(J){if(J instanceof kU)throw{code:"Conflict",message:J.message,data:{reason:J.message,missingTypes:J.missingTypes,missingWorkflowCount:J.missingWorkflowCount,samplesTruncated:J.samplesTruncated}};throw{code:"EngineFailure",message:J instanceof Error?J.message:String(J),data:{}}}}}),ST={method:"POST",path:"/v1/recover",pathParamNames:[],operationName:"weft.recover.all",inputSources:{},extractInput:async()=>({}),success:{kind:"json",status:200},shapeFault:Fa};function Fa($){if($.code!=="Conflict"||$.data.missingTypes===void 0)return R($);return new Response(JSON.stringify({error:"workflow_type_not_registered_for_recovery",missingTypes:$.data.missingTypes,missingWorkflowCount:$.data.missingWorkflowCount,samplesTruncated:$.data.samplesTruncated}),{status:409,headers:{"Content-Type":"application/json"}})}var bL=P9({name:"weft.workflows.tags.remove",summary:"Remove workflow tags",destructive:!1,mutateTags:($,U,J)=>$.removeTags(U,...J)}),bT=F9({method:"DELETE",operationName:bL.name});var Ma=j.object({workflowId:j.string().min(1),step:j.union([j.string(),j.number()])}),za=j.unknown(),vT=q({name:"weft.workflows.replay",mcpExposable:!1,summary:"Replay a workflow to a historical checkpoint step",description:"Reconstruct the historical state of a workflow at a given checkpoint step and return a "+"replay view. This is a read-only reconstruction via the engine replay machinery — the "+"live workflow is never mutated or rewound. Faults with NotFound when the workflow or checkpoint step is not visible.",destructive:!1,tags:["Checkpoints"],inputSchema:Ma,outputSchema:za,access:{kind:"scoped",scopes:{kind:"anyOf",scopes:["workflows:read"]}},producibleFaults:["NotFound","Conflict"],discoverable:!0,transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let J=U;if(await J.get($.workflowId)===null)throw{code:"NotFound",message:`Workflow "${$.workflowId}" not found`,data:{resource:"workflow",identifier:$.workflowId}};let X=Number($.step);if(!Number.isSafeInteger(X)||X<0)throw C(`Invalid step: ${String($.step)}`);let Q=await J.replayTo($.workflowId,X);if(Q===null)throw{code:"NotFound",message:`Replay not found at step ${X} for workflow ${$.workflowId}`,data:{resource:"replay",identifier:`${$.workflowId}@${X}`}};return Q}});function Ba($){return R($)}function Wa($,U){return h6(U,$,200)}var gT={method:"GET",path:"/v1/workflows/:id/replay/:step",pathParamNames:["id","step"],operationName:"weft.workflows.replay",inputSources:{workflowId:{kind:"path",pathParam:"id"},step:{kind:"path",pathParam:"step"}},extractInput:async($,U)=>({workflowId:U.id??"",step:U.step??"0"}),success:{kind:"json",status:200},shapeSuccess:($,U)=>Wa($,U),shapeFault:Ba};var Ka=j.object({scheduleId:j.string().min(1)}),qa=j.undefined(),IT=q({name:"weft.schedules.resume",mcpExposable:!1,summary:"Resume a recurring schedule",description:"Resume a paused recurring schedule by `scheduleId` so it begins launching workflows on its cadence again. Faults with NotFound when no schedule with the given id exists.",destructive:!1,tags:["Schedules"],inputSchema:Ka,outputSchema:qa,access:{kind:"public"},producibleFaults:["NotFound","Conflict"],transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let J=U;try{await J.resumeSchedule($.scheduleId);return}catch(G){throw _4($.scheduleId,G)}}}),hT={method:"POST",path:"/v1/schedules/:id/resume",pathParamNames:["id"],operationName:"weft.schedules.resume",inputSources:{scheduleId:{kind:"path",pathParam:"id"}},extractInput:async($,U)=>({scheduleId:U.id??""}),success:{kind:"empty",status:204},shapeFault:R};var Na=j.object({workflowId:j.string().min(1)}),Oa=j.object({id:j.string()}),yT=j4({name:"weft.workflows.resume",summary:"Resume a suspended or recovered workflow",description:"Re-drive a workflow from its persisted checkpoint by `workflowId`, returning the workflow `id`. Accepts a workflow that was explicitly suspended (`weft.workflows.suspend`) or one left running by a prior process; a suspended workflow is durably flipped back to running as part of resuming. Faults with NotFound when the workflow is not visible, or Conflict when it is in a status that cannot be resumed (terminal or pending).",destructive:!1,tags:["Workflows"],inputSchema:Na,outputSchema:Oa,producibleFaults:["NotFound","Conflict"],invoke:async({input:$,engine:U})=>{return{id:(await U.resume($.workflowId)).id}},mapErrorToFault:({message:$})=>$.includes("Cannot resume")?{code:"Conflict",message:$,data:{reason:$}}:void 0}),mT={method:"POST",path:"/v1/workflows/:id/resume",pathParamNames:["id"],operationName:"weft.workflows.resume",inputSources:{workflowId:{kind:"path",pathParam:"id"}},extractInput:async($,U)=>H4(U),success:{kind:"json",status:200},shapeFault:R};var Aa=j.object({workflowId:j.string().min(1),attributes:j.unknown().optional()}),Ca=j.object({ok:j.literal(!0)}),kT=q({name:"weft.workflows.attributes.set",mcpExposable:!1,summary:"Update search attributes for a workflow",destructive:!1,tags:["Attributes"],inputSchema:Aa,outputSchema:Ca,access:{kind:"public"},transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let J=U;try{return await J.setAttributes($.workflowId,$.attributes??{}),{ok:!0}}catch(G){throw{code:"EngineFailure",message:G instanceof Error?G.message:String(G),data:{}}}}});function Ra($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}function Ta($){return R($)}var fT={method:"PATCH",path:"/v1/workflows/:id/attributes",pathParamNames:["id"],operationName:"weft.workflows.attributes.set",inputSources:{workflowId:{kind:"path",pathParam:"id"},attributes:{kind:"body-field",bodyField:"attributes"}},extractInput:async($,U,J)=>{let G=await Y$($,J).catch((X)=>{if(t(X))throw X;throw Error("Invalid JSON body")});if(G===null)throw Error("Invalid JSON body");return{workflowId:U.id??"",attributes:typeof G==="object"?G.attributes:void 0}},success:{kind:"json",status:200},shapeSuccess:($)=>Ra($),shapeFault:Ta};var Ea=j.object({workflowId:j.string().min(1),signalName:j.string().min(1),payload:j.unknown().optional(),signalId:j.string().min(1).refine(z8,"signalId must be at most 128 bytes").optional()}),xa=j.object({ok:j.literal(!0)}),uT=j4({name:"weft.workflows.signal",summary:"Send a signal to a workflow",description:"Deliver a named signal with an optional payload to a running workflow. Requires the workflow `id` and the signal `name`; `payload` is optional. Signals are fire-and-forget from the caller perspective and do not return a handler result. Faults with NotFound when the workflow is not visible and InvalidParams when the payload exceeds the size limit.",destructive:!0,tags:["Signals"],inputSchema:Ea,outputSchema:xa,producibleFaults:["NotFound"],invoke:async({input:$,engine:U})=>{return await U.signal($.workflowId,$.signalName,$.payload,$.signalId===void 0?void 0:{signalId:$.signalId}),{ok:!0}}});function Sa($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}var wT={method:"POST",path:"/v1/workflows/:id/signal/:name",pathParamNames:["id","name"],operationName:"weft.workflows.signal",inputSources:{workflowId:{kind:"path",pathParam:"id"},signalName:{kind:"path",pathParam:"name"},payload:{kind:"body-field",bodyField:"payload"}},extractInput:async($,U,J)=>{let G=await Y$($,J).catch((Z)=>{if(t(Z))throw Z;return null}),X=typeof G==="object"&&G!==null?G.payload:void 0,Q=typeof G==="object"&&G!==null?G.signalId:void 0;return{...H4(U),signalName:U.name??"",payload:X,...Q===void 0?{}:{signalId:Q}}},success:{kind:"json",status:200},shapeSuccess:($)=>Sa($),shapeFault:R};function v3($,U){let J={};if($.id!==void 0)J.id=W4($.id,'Field "id"');if($.executionTimeout!==void 0)J.executionTimeout=Hj($.executionTimeout,'Field "executionTimeout"');if($.startAt!==void 0)J.startAt=V9($.startAt,'Field "startAt"');if($.startAfter!==void 0)J.startAfter=Hj($.startAfter,'Field "startAfter"');if($.tags!==void 0)J.tags=j$($.tags,'Field "tags"');if($.idempotencyKey!==void 0)J.idempotencyKey=iM($.idempotencyKey,'Field "idempotencyKey"');if($.searchAttributes!==void 0)J.searchAttributes=ba($.searchAttributes,'Field "searchAttributes"',U);return j9(J.startAt,J.startAfter),J}function ba($,U,J){if(typeof $!=="object"||$===null||Array.isArray($))throw new f(`${U} must be an object`);let G=Object.create(null);for(let[X,Q]of Object.entries($))G[X]=va(X,Q,U,J);return G}function va($,U,J,G){if(!Ia(U))throw new f(`${J}.${$} must be a string, number, boolean, Date, or string array`);if(G===void 0)return U;let X=G[$];if(X===void 0)throw new f(`Unknown search attribute "${$}". Registered attributes: ${Object.keys(G).join(", ")}`);let Q=X.type==="string"&&X.format==="date-time"&&typeof U==="string"?ga($,U,J):U;try{d4($,Q,X)}catch(Z){let Y=Z instanceof Error?Z.message:String(Z);throw new f(Y)}return Q}function ga($,U,J){let G=new Date(U);if(Number.isNaN(G.getTime()))throw new f(`${J}.${$} must be a valid date-time string`);return G}function Ia($){return typeof $==="string"||typeof $==="number"||typeof $==="boolean"||$ instanceof Date||Array.isArray($)&&$.every((U)=>typeof U==="string")}function ha($){return typeof $==="object"&&$!==null}async function g3($,U){let J;try{J=await Y$($,U)}catch(G){if(t(G))throw G;throw C("Invalid JSON body")}if(J===null||typeof J!=="object")throw C("Request body must be a JSON object");return ha(J)?J:{}}function I3($){return{type:$.type,input:$.input,id:$.id,executionTimeout:$.executionTimeout,startAt:$.startAt,startAfter:$.startAfter,tags:$.tags,idempotencyKey:$.idempotencyKey,searchAttributes:$.searchAttributes}}var ya=j.object({type:j.unknown().describe("Workflow type name. Runtime validation requires a non-empty string."),input:j.unknown().optional(),signalName:j.string().min(1).describe("Signal name. Must be a non-empty string."),signalPayload:j.unknown().optional(),signalId:j.string().min(1).refine(z8,"signalId must be at most 128 bytes").optional(),id:j.unknown().optional(),executionTimeout:j.unknown().optional(),startAt:j.unknown().optional(),startAfter:j.unknown().optional(),tags:j.unknown().optional(),idempotencyKey:j.unknown().optional(),searchAttributes:j.unknown().optional()}),ma=j.object({id:j.string(),outcome:j.enum(["started","signalled"])});function ka($,U){if(typeof $.type!=="string"||$.type.length===0)throw C("Missing required field: type");let J;try{J=v3($,U($.type))}catch(X){let Q=X instanceof Error?X.message:String(X);throw C(Q)}fa($.signalId,J.idempotencyKey);let G={name:$.signalName,payload:$.signalPayload,...$.signalId===void 0?{}:{signalId:$.signalId}};return{type:$.type,signal:G,options:J}}function fa($,U){if($===void 0&&U===void 0)throw C("startOrSignal requires either signalId or 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.)");if($!==void 0&&U!==void 0)throw C("startOrSignal does not accept both signalId and idempotencyKey: the signal id derives from the idempotency key for convergence. Provide exactly one.")}function ua($){let U=$ instanceof Error?$.message:String($);if($ instanceof t$)throw C(U,$.code);if($ instanceof wU||$ instanceof F6)throw{code:"Conflict",message:U,data:{reason:U,weftCode:$.code}};if($ instanceof f)throw C(U);throw{code:"EngineFailure",message:U,data:{}}}var cT=q({name:"weft.workflows.startorsignal",mcpExposable:!1,summary:"Atomically start a workflow or signal it if it already exists",description:'Start a workflow or deliver a signal to it if it already exists (signal-with-start). An absent target is created and delivered the signal in one batch; a non-terminal target (running, pending, or suspended) is signalled; a terminal target faults with Conflict, as does a spent `idempotencyKey` whose run was purged or swept by retention. Requires `type`, `signalName`, and exactly one of `signalId` or `idempotencyKey` (not both). Accepts `input`, `signalPayload`, and the non-idempotency start options from weft.workflows.start (`id`, `executionTimeout`, `startAt`/`startAfter`, `tags`, `searchAttributes`); `idempotencyKey` is governed solely by the "exactly one of" rule above. Returns the workflow `id`. Concurrent callers converge on one workflow and one signal only with a shared `idempotencyKey`, or a shared `id` plus `signalId`; a bare `signalId` (no `id`/`idempotencyKey`) starts a fresh run per caller and does not converge.',destructive:!1,tags:["Workflows","Signals"],inputSchema:ya,outputSchema:ma,access:{kind:"public"},producibleFaults:["Conflict"],transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let J=z1(U),{type:G,signal:X,options:Q}=ka($,(Z)=>{return J.getWorkflowDefinition(Z)?.searchAttributes});try{let{handle:Z,outcome:Y}=await J.startOrSignal(G,$.input,X,Q);return{id:Z.id,outcome:Y}}catch(Z){ua(Z)}}}),pT={method:"POST",path:"/v1/workflows/start-or-signal",pathParamNames:[],operationName:"weft.workflows.startorsignal",inputSources:{type:{kind:"body-field",bodyField:"type"},input:{kind:"body-field",bodyField:"input"},signalName:{kind:"body-field",bodyField:"signalName"},signalPayload:{kind:"body-field",bodyField:"signalPayload"},signalId:{kind:"body-field",bodyField:"signalId"},id:{kind:"body-field",bodyField:"id"},executionTimeout:{kind:"body-field",bodyField:"executionTimeout"},startAt:{kind:"body-field",bodyField:"startAt"},startAfter:{kind:"body-field",bodyField:"startAfter"},tags:{kind:"body-field",bodyField:"tags"},idempotencyKey:{kind:"body-field",bodyField:"idempotencyKey"},searchAttributes:{kind:"body-field",bodyField:"searchAttributes"}},extractInput:async($,U,J)=>{let G=await g3($,J);return{...I3(G),signalName:G.signalName,signalPayload:G.signalPayload,signalId:G.signalId}},success:{kind:"json",status:201},shapeFault:R};var wa=j.object({type:j.unknown().describe("Workflow type name. Runtime validation requires a non-empty string."),input:j.unknown().optional(),id:j.unknown().optional(),executionTimeout:j.unknown().optional(),startAt:j.unknown().optional(),startAfter:j.unknown().optional(),tags:j.unknown().optional(),idempotencyKey:j.unknown().optional(),searchAttributes:j.unknown().optional()}),ca=j.object({id:j.string()});function pa($,U){if(typeof $.type!=="string"||$.type.length===0)throw C("Missing required field: type");let J=$.type,G;try{G=v3($,U(J))}catch(X){let Q=X instanceof Error?X.message:String(X);throw C(Q)}return{type:J,options:G}}function da($){let U=$ instanceof Error?$.message:String($);if($ instanceof t$)throw C(U,$.code);if($ instanceof O$||$ instanceof F6)throw{code:"Conflict",message:U,data:{reason:U,weftCode:$.code}};if($ instanceof f)throw C(U);throw{code:"EngineFailure",message:U,data:{}}}var dT=q({name:"weft.workflows.start",mcpExposable:!1,summary:"Start a new workflow",description:"Start a new workflow execution of a registered type. Requires `type` (the registered workflow type name) and accepts an optional `input` payload plus start options: `id` (client-supplied workflow id), `executionTimeout`, `startAt`/`startAfter` (mutually exclusive scheduling), `tags`, `idempotencyKey` (at-most-once dedup: a repeated key returns the existing run instead of starting a second), and `searchAttributes`. Returns the workflow `id`. Faults with InvalidParams for an unregistered type or malformed options, and Conflict when a workflow with the same id already exists or the supplied `idempotencyKey` has been spent (its run was purged or swept by retention).",destructive:!1,tags:["Workflows"],inputSchema:wa,outputSchema:ca,access:{kind:"public"},producibleFaults:["Conflict"],transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let J=z1(U),{type:G,options:X}=pa($,(Q)=>{return J.getWorkflowDefinition(Q)?.searchAttributes});try{return{id:(await J.start(G,$.input,X)).id}}catch(Q){da(Q)}}}),lT={method:"POST",path:"/v1/workflows",pathParamNames:[],operationName:"weft.workflows.start",inputSources:{type:{kind:"body-field",bodyField:"type"},input:{kind:"body-field",bodyField:"input"},id:{kind:"body-field",bodyField:"id"},executionTimeout:{kind:"body-field",bodyField:"executionTimeout"},startAt:{kind:"body-field",bodyField:"startAt"},startAfter:{kind:"body-field",bodyField:"startAfter"},tags:{kind:"body-field",bodyField:"tags"},idempotencyKey:{kind:"body-field",bodyField:"idempotencyKey"},searchAttributes:{kind:"body-field",bodyField:"searchAttributes"}},extractInput:async($,U,J)=>{return I3(await g3($,J))},success:{kind:"json",status:201},shapeFault:R};function iT($){let U=[];for(let J=0;J<$.length;J+=512)U.push(String.fromCharCode(...$.subarray(J,J+512)));return btoa(U.join(""))}function nT($){let U=atob($),J=new Uint8Array(U.length);for(let G=0;G<U.length;G+=1)J[G]=U.charCodeAt(G);return J}function mK$($){return typeof $==="object"&&$!==null&&!Array.isArray($)}var rT={kind:"scoped",scopes:{kind:"anyOf",scopes:["storage:read","storage:admin"]}},vL={kind:"scoped",scopes:{kind:"anyOf",scopes:["storage:write","storage:admin"]}},la={kind:"scopedAlternatives",alternatives:[{kind:"anyOf",scopes:["storage:admin"]},{kind:"allOf",scopes:["storage:read","storage:write"]}]},n0={http:!0,jsonRpcHttp:!1,jsonRpcStdio:!1,jsonRpcWebSocket:!1},oT=j.instanceof(Uint8Array).meta({type:"string",format:"binary"}),ia=j.object({key:j.string().min(1)}),na=j.object({key:j.string().min(1),value:oT}),ra=j.object({key:j.string().min(1)}),oa=j.object({prefix:j.string(),limit:j.number().int().positive().max(xM).optional(),reverse:j.boolean().optional(),gt:j.string().optional(),gte:j.string().optional(),lt:j.string().optional(),lte:j.string().optional()}),sT=j.discriminatedUnion("type",[j.object({type:j.literal("put"),key:j.string().min(1),value:j.string()}),j.object({type:j.literal("delete"),key:j.string().min(1)})]),sa=j.object({key:j.string().min(1),expectedValue:j.string().nullable()}),aa=j.object({operations:j.array(sT).max(E1)}),ta=j.object({conditions:j.array(sa).max(E1),operations:j.array(sT).max(E1)}),gL=j.null(),ea=oT.nullable(),$t=j.custom(($)=>typeof $==="object"&&$!==null&&(Symbol.asyncIterator in $)&&typeof $[Symbol.asyncIterator]==="function","Storage scan output must be an async iterable."),Ut=j.object({applied:j.boolean()});function r0($,U,J){if(!P6(U))z6(J,{code:"Unauthorized",message:"authentication required",data:{reason:"authentication required"}});if(U.hasScope("storage:admin"))return $.storage;z6(J,{code:"Forbidden",message:"Raw storage access requires storage:admin.",data:{reason:"Raw storage access requires storage:admin."}})}function Jt($){return{...$.limit===void 0?{}:{limit:$.limit},...$.reverse===void 0?{}:{reverse:$.reverse},...$.gt===void 0?{}:{gt:$.gt},...$.gte===void 0?{}:{gte:$.gte},...$.lt===void 0?{}:{lt:$.lt},...$.lte===void 0?{}:{lte:$.lte}}}function aT($){if($.type==="put")return{type:"put",key:$.key,value:tT($.value,"Storage batch operation value must be base64.")};return{type:"delete",key:$.key}}function tT($,U){try{return nT($)}catch{throw C(U)}}function Gt($){return{key:$.key,expectedValue:$.expectedValue===null?null:tT($.expectedValue,"Storage conditional batch expectedValue must be base64.")}}async function eT($,U){try{return await Y$($,U)}catch(J){if(t(J))throw J;throw C("Request body must be valid JSON.")}}function Xt($){if($===null)return;if($==="true")return!0;if($==="false")return!1;throw C('Query parameter "reverse" must be "true" or "false".')}function Qt($){if($===null)return;let U=Number($);if(!Number.isInteger(U)||U<=0)throw C('Query parameter "limit" must be a positive integer.');return U}function Zt($){let U=new URL($.url),J={prefix:U.searchParams.get("prefix")??""},G=Qt(U.searchParams.get("limit")),X=Xt(U.searchParams.get("reverse"));if(G!==void 0)J.limit=G;if(X!==void 0)J.reverse=X;for(let Q of["gt","gte","lt","lte"]){let Z=U.searchParams.get(Q);if(Z!==null)J[Q]=Z}return J}function IL($){return $.key??""}function hL(){return new Response(null,{status:204})}function Yt($){if($===null)return new Response(null,{status:404});return new Response(ZJ($),{status:200,headers:{"Content-Type":"application/octet-stream"}})}function _t($){let U=new TextEncoder,J=$[Symbol.asyncIterator](),G=new ReadableStream({async pull(X){try{let Q=await J.next();if(Q.done===!0){X.close();return}X.enqueue(U.encode(`${JSON.stringify(Q.value)}
|