@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.
@@ -39,7 +39,7 @@ var Ax=Object.defineProperty;var Cx=($)=>$;function Rx($,U){this[$]=Cx.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 u4($,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 z=$.seen.get(D),B=z.schema;if(B.$ref&&($.target==="draft-07"||$.target==="draft-04"||$.target==="openapi-3.0"))_.allOf=_.allOf??[],_.allOf.push(B);else Object.assign(_,B);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(B.$ref&&z.def)for(let S in _){if(S==="$ref"||S==="allOf")continue;if(S in z.def&&JSON.stringify(_[S])===JSON.stringify(z.def[S]))delete _[S]}}let L=Z._zod.parent;if(L&&L!==D){G(L);let z=$.seen.get(L);if(z?.schema.$ref){if(_.$ref=z.schema.$ref,z.def)for(let B in _){if(B==="$ref"||B==="allOf")continue;if(B in z.def&&JSON.stringify(_[B])===JSON.stringify(z.def[B]))delete _[B]}}}$.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:TU(U,"input",$.processors),output:TU(U,"output",$.processors)}},enumerable:!1,writable:!1}),Z}catch(Z){throw Error("Error converting schema to JSON.")}}function v$($,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 v$(G.element,J);if(G.type==="set")return v$(G.valueType,J);if(G.type==="lazy")return v$(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 v$(G.innerType,J);if(G.type==="intersection")return v$(G.left,J)||v$(G.right,J);if(G.type==="record"||G.type==="map")return v$(G.keyType,J)||v$(G.valueType,J);if(G.type==="pipe")return v$(G.in,J)||v$(G.out,J);if(G.type==="object"){for(let X in G.shape)if(v$(G.shape[X],J))return!0;return!1}if(G.type==="union"){for(let X of G.options)if(v$(X,J))return!0;return!1}if(G.type==="tuple"){for(let X of G.items)if(v$(X,J))return!0;if(G.rest&&v$(G.rest,J))return!0;return!1}return!1}var GY=($,U={})=>(J)=>{let G=k4({...J,processors:U});return d($,G),f4(G,$),u4(G,$)},TU=($,U,J={})=>(G)=>{let{libraryOptions:X,target:Q}=G??{},Z=k4({...X??{},target:Q,io:U,processors:J});return d($,Z),f4(Z,$),u4(Z,$)};var Gg={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},XY=($,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=Gg[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}))]}},QY=($,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=_},ZY=($,U,J,G)=>{J.type="boolean"},YY=($,U,J,G)=>{if(U.unrepresentable==="throw")throw Error("BigInt cannot be represented in JSON Schema")},_Y=($,U,J,G)=>{if(U.unrepresentable==="throw")throw Error("Symbols cannot be represented in JSON Schema")},jY=($,U,J,G)=>{if(U.target==="openapi-3.0")J.type="string",J.nullable=!0,J.enum=[null];else J.type="null"},HY=($,U,J,G)=>{if(U.unrepresentable==="throw")throw Error("Undefined cannot be represented in JSON Schema")},DY=($,U,J,G)=>{if(U.unrepresentable==="throw")throw Error("Void cannot be represented in JSON Schema")},LY=($,U,J,G)=>{J.not={}},VY=($,U,J,G)=>{},FY=($,U,J,G)=>{},zY=($,U,J,G)=>{if(U.unrepresentable==="throw")throw Error("Date cannot be represented in JSON Schema")},BY=($,U,J,G)=>{let X=$._zod.def,Q=j2(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},PY=($,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}},KY=($,U,J,G)=>{if(U.unrepresentable==="throw")throw Error("NaN cannot be represented in JSON Schema")},WY=($,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},MY=($,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)},qY=($,U,J,G)=>{J.type="boolean"},NY=($,U,J,G)=>{if(U.unrepresentable==="throw")throw Error("Custom types cannot be represented in JSON Schema")},OY=($,U,J,G)=>{if(U.unrepresentable==="throw")throw Error("Function types cannot be represented in JSON Schema")},AY=($,U,J,G)=>{if(U.unrepresentable==="throw")throw Error("Transforms cannot be represented in JSON Schema")},CY=($,U,J,G)=>{if(U.unrepresentable==="throw")throw Error("Map cannot be represented in JSON Schema")},RY=($,U,J,G)=>{if(U.unrepresentable==="throw")throw Error("Set cannot be represented in JSON Schema")},TY=($,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"]})},EY=($,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"]})},K9=($,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},xY=($,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=_},SY=($,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((z,B)=>d(z,U,{...G,path:[...G.path,Z,B]})),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},bY=($,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}},vY=($,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"}]},gY=($,U,J,G)=>{let X=$._zod.def;d(X.innerType,U,G);let Q=U.seen.get($);Q.ref=X.innerType},IY=($,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))},hY=($,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))},yY=($,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},mY=($,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},kY=($,U,J,G)=>{let X=$._zod.def;d(X.innerType,U,G);let Q=U.seen.get($);Q.ref=X.innerType,J.readOnly=!0},fY=($,U,J,G)=>{let X=$._zod.def;d(X.innerType,U,G);let Q=U.seen.get($);Q.ref=X.innerType},W9=($,U,J,G)=>{let X=$._zod.def;d(X.innerType,U,G);let Q=U.seen.get($);Q.ref=X.innerType},uY=($,U,J,G)=>{let X=$._zod.innerType;d(X,U,G);let Q=U.seen.get($);Q.ref=X},P9={string:XY,number:QY,boolean:ZY,bigint:YY,symbol:_Y,null:jY,undefined:HY,void:DY,never:LY,any:VY,unknown:FY,date:zY,enum:BY,literal:PY,nan:KY,template_literal:WY,file:MY,success:qY,custom:NY,function:OY,transform:AY,map:CY,set:RY,array:TY,object:EY,union:K9,intersection:xY,tuple:SY,record:bY,nullable:vY,nonoptional:gY,default:IY,prefault:hY,catch:yY,pipe:mY,readonly:kY,promise:fY,optional:W9,lazy:uY};function M9($,U){if("_idmap"in $){let G=$,X=k4({...U,processors:P9}),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]=_;f4(X,D),Z[H]=u4(X,D)}if(Object.keys(Q).length>0){let _=X.target==="draft-2020-12"?"$defs":"definitions";Z.__shared={[_]:Q}}return{schemas:Z}}let J=k4({...U,processors:P9});return d($,J),f4(J,$),u4(J,$)}class wY{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=k4({processors:P9,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}f4(this.ctx,$);let J=u4(this.ctx,$),{"~standard":G,...X}=J;return X}}var FF={};var S2={};L4(S2,{xor:()=>Zz,xid:()=>xF,void:()=>$z,uuidv7:()=>qF,uuidv6:()=>MF,uuidv4:()=>WF,uuid:()=>KF,url:()=>NF,unknown:()=>B1,union:()=>n9,undefined:()=>tF,ulid:()=>EF,uint64:()=>sF,uint32:()=>nF,tuple:()=>q_,transform:()=>o9,templateLiteral:()=>Wz,symbol:()=>aF,superRefine:()=>r_,success:()=>Bz,stringbool:()=>Tz,stringFormat:()=>uF,string:()=>R9,strictObject:()=>Xz,set:()=>Dz,refine:()=>n_,record:()=>N_,readonly:()=>w_,promise:()=>Mz,preprocess:()=>xz,prefault:()=>I_,pipe:()=>I2,partialRecord:()=>_z,optional:()=>v2,object:()=>Gz,number:()=>Q_,nullish:()=>zz,nullable:()=>g2,null:()=>H_,nonoptional:()=>h_,never:()=>i9,nativeEnum:()=>Lz,nanoid:()=>CF,nan:()=>Pz,meta:()=>Cz,map:()=>Hz,mac:()=>vF,looseRecord:()=>jz,looseObject:()=>Qz,literal:()=>Vz,lazy:()=>d_,ksuid:()=>SF,keyof:()=>Jz,jwt:()=>fF,json:()=>Ez,ipv6:()=>gF,ipv4:()=>bF,intersection:()=>W_,int64:()=>oF,int32:()=>iF,int:()=>T9,instanceof:()=>Rz,httpUrl:()=>OF,hostname:()=>wF,hex:()=>cF,hash:()=>pF,guid:()=>PF,function:()=>qz,float64:()=>lF,float32:()=>dF,file:()=>Fz,exactOptional:()=>x_,enum:()=>r9,emoji:()=>AF,email:()=>BF,e164:()=>kF,discriminatedUnion:()=>Yz,describe:()=>Az,date:()=>Uz,custom:()=>Oz,cuid2:()=>TF,cuid:()=>RF,codec:()=>Kz,cidrv6:()=>hF,cidrv4:()=>IF,check:()=>Nz,catch:()=>k_,boolean:()=>Z_,bigint:()=>rF,base64url:()=>mF,base64:()=>yF,array:()=>m2,any:()=>eF,_function:()=>qz,_default:()=>v_,_ZodString:()=>E9,ZodXor:()=>B_,ZodXID:()=>h9,ZodVoid:()=>F_,ZodUnknown:()=>L_,ZodUnion:()=>f2,ZodUndefined:()=>__,ZodUUID:()=>c6,ZodURL:()=>h2,ZodULID:()=>I9,ZodType:()=>k,ZodTuple:()=>M_,ZodTransform:()=>T_,ZodTemplateLiteral:()=>c_,ZodSymbol:()=>Y_,ZodSuccess:()=>y_,ZodStringFormat:()=>r,ZodString:()=>SU,ZodSet:()=>A_,ZodRecord:()=>u2,ZodReadonly:()=>u_,ZodPromise:()=>l_,ZodPrefault:()=>g_,ZodPipe:()=>t9,ZodOptional:()=>s9,ZodObject:()=>k2,ZodNumberFormat:()=>P1,ZodNumber:()=>vU,ZodNullable:()=>S_,ZodNull:()=>j_,ZodNonOptional:()=>a9,ZodNever:()=>V_,ZodNanoID:()=>b9,ZodNaN:()=>f_,ZodMap:()=>O_,ZodMAC:()=>X_,ZodLiteral:()=>C_,ZodLazy:()=>p_,ZodKSUID:()=>y9,ZodJWT:()=>d9,ZodIntersection:()=>K_,ZodIPv6:()=>k9,ZodIPv4:()=>m9,ZodGUID:()=>b2,ZodFunction:()=>i_,ZodFile:()=>R_,ZodExactOptional:()=>E_,ZodEnum:()=>xU,ZodEmoji:()=>S9,ZodEmail:()=>x9,ZodE164:()=>p9,ZodDiscriminatedUnion:()=>P_,ZodDefault:()=>b_,ZodDate:()=>y2,ZodCustomStringFormat:()=>bU,ZodCustom:()=>w2,ZodCodec:()=>e9,ZodCatch:()=>m_,ZodCUID2:()=>g9,ZodCUID:()=>v9,ZodCIDRv6:()=>u9,ZodCIDRv4:()=>f9,ZodBoolean:()=>gU,ZodBigIntFormat:()=>l9,ZodBigInt:()=>IU,ZodBase64URL:()=>c9,ZodBase64:()=>w9,ZodArray:()=>z_,ZodAny:()=>D_});var q9={};L4(q9,{uppercase:()=>BU,trim:()=>NU,toUpperCase:()=>AU,toLowerCase:()=>OU,startsWith:()=>KU,slugify:()=>CU,size:()=>V1,regex:()=>FU,property:()=>B9,positive:()=>L9,overwrite:()=>z6,normalize:()=>qU,nonpositive:()=>F9,nonnegative:()=>z9,negative:()=>V9,multipleOf:()=>y4,minSize:()=>w6,minLength:()=>z4,mime:()=>MU,maxSize:()=>m4,maxLength:()=>F1,lte:()=>n$,lt:()=>f6,lowercase:()=>zU,length:()=>z1,includes:()=>PU,gte:()=>b$,gt:()=>u6,endsWith:()=>WU});var EU={};L4(EU,{time:()=>dY,duration:()=>lY,datetime:()=>cY,date:()=>pY,ZodISOTime:()=>A9,ZodISODuration:()=>C9,ZodISODateTime:()=>N9,ZodISODate:()=>O9});var N9=P("ZodISODateTime",($,U)=>{C5.init($,U),r.init($,U)});function cY($){return NZ(N9,$)}var O9=P("ZodISODate",($,U)=>{R5.init($,U),r.init($,U)});function pY($){return OZ(O9,$)}var A9=P("ZodISOTime",($,U)=>{T5.init($,U),r.init($,U)});function dY($){return AZ(A9,$)}var C9=P("ZodISODuration",($,U)=>{E5.init($,U),r.init($,U)});function lY($){return CZ(C9,$)}var zF=($,U)=>{F2.init($,U),$.name="ZodError",Object.defineProperties($,{format:{value:(J)=>B2($,J)},flatten:{value:(J)=>z2($,J)},addIssue:{value:(J)=>{$.issues.push(J),$.message=JSON.stringify($.issues,QU,2)}},addIssues:{value:(J)=>{$.issues.push(...J),$.message=JSON.stringify($.issues,QU,2)}},isEmpty:{get(){return $.issues.length===0}}})},Qg=P("ZodError",zF),p$=P("ZodError",zF,{Parent:Error});var iY=_U(p$),nY=jU(p$),rY=HU(p$),oY=DU(p$),sY=AJ(p$),aY=CJ(p$),tY=RJ(p$),eY=TJ(p$),$_=EJ(p$),U_=xJ(p$),J_=SJ(p$),G_=bJ(p$);var k=P("ZodType",($,U)=>{return y.init($,U),Object.assign($["~standard"],{jsonSchema:{input:TU($,"input"),output:TU($,"output")}}),$.toJSONSchema=GY($,{}),$.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)=>S$($,J,G),$.brand=()=>$,$.register=(J,G)=>{return J.add($,G),$},$.parse=(J,G)=>iY($,J,G,{callee:$.parse}),$.safeParse=(J,G)=>rY($,J,G),$.parseAsync=async(J,G)=>nY($,J,G,{callee:$.parseAsync}),$.safeParseAsync=async(J,G)=>oY($,J,G),$.spa=$.safeParseAsync,$.encode=(J,G)=>sY($,J,G),$.decode=(J,G)=>aY($,J,G),$.encodeAsync=async(J,G)=>tY($,J,G),$.decodeAsync=async(J,G)=>eY($,J,G),$.safeEncode=(J,G)=>$_($,J,G),$.safeDecode=(J,G)=>U_($,J,G),$.safeEncodeAsync=async(J,G)=>J_($,J,G),$.safeDecodeAsync=async(J,G)=>G_($,J,G),$.refine=(J,G)=>$.check(n_(J,G)),$.superRefine=(J)=>$.check(r_(J)),$.overwrite=(J)=>$.check(z6(J)),$.optional=()=>v2($),$.exactOptional=()=>x_($),$.nullable=()=>g2($),$.nullish=()=>v2(g2($)),$.nonoptional=(J)=>h_($,J),$.array=()=>m2($),$.or=(J)=>n9([$,J]),$.and=(J)=>W_($,J),$.transform=(J)=>I2($,o9(J)),$.default=(J)=>v_($,J),$.prefault=(J)=>I_($,J),$.catch=(J)=>k_($,J),$.pipe=(J)=>I2($,J),$.readonly=()=>w_($),$.describe=(J)=>{let G=$.clone();return W$.add(G,{description:J}),G},Object.defineProperty($,"description",{get(){return W$.get($)?.description},configurable:!0}),$.meta=(...J)=>{if(J.length===0)return W$.get($);let G=$.clone();return W$.add(G,J[0]),G},$.isOptional=()=>$.safeParse(void 0).success,$.isNullable=()=>$.safeParse(null).success,$.apply=(J)=>J($),$}),E9=P("_ZodString",($,U)=>{L1.init($,U),k.init($,U),$._zod.processJSONSchema=(G,X,Q)=>XY($,G,X,Q);let J=$._zod.bag;$.format=J.format??null,$.minLength=J.minimum??null,$.maxLength=J.maximum??null,$.regex=(...G)=>$.check(FU(...G)),$.includes=(...G)=>$.check(PU(...G)),$.startsWith=(...G)=>$.check(KU(...G)),$.endsWith=(...G)=>$.check(WU(...G)),$.min=(...G)=>$.check(z4(...G)),$.max=(...G)=>$.check(F1(...G)),$.length=(...G)=>$.check(z1(...G)),$.nonempty=(...G)=>$.check(z4(1,...G)),$.lowercase=(G)=>$.check(zU(G)),$.uppercase=(G)=>$.check(BU(G)),$.trim=()=>$.check(NU()),$.normalize=(...G)=>$.check(qU(...G)),$.toLowerCase=()=>$.check(OU()),$.toUpperCase=()=>$.check(AU()),$.slugify=()=>$.check(CU())}),SU=P("ZodString",($,U)=>{L1.init($,U),E9.init($,U),$.email=(J)=>$.check(iJ(x9,J)),$.url=(J)=>$.check(x2(h2,J)),$.jwt=(J)=>$.check(D9(d9,J)),$.emoji=(J)=>$.check(aJ(S9,J)),$.guid=(J)=>$.check(E2(b2,J)),$.uuid=(J)=>$.check(nJ(c6,J)),$.uuidv4=(J)=>$.check(rJ(c6,J)),$.uuidv6=(J)=>$.check(oJ(c6,J)),$.uuidv7=(J)=>$.check(sJ(c6,J)),$.nanoid=(J)=>$.check(tJ(b9,J)),$.guid=(J)=>$.check(E2(b2,J)),$.cuid=(J)=>$.check(eJ(v9,J)),$.cuid2=(J)=>$.check($9(g9,J)),$.ulid=(J)=>$.check(U9(I9,J)),$.base64=(J)=>$.check(_9(w9,J)),$.base64url=(J)=>$.check(j9(c9,J)),$.xid=(J)=>$.check(J9(h9,J)),$.ksuid=(J)=>$.check(G9(y9,J)),$.ipv4=(J)=>$.check(X9(m9,J)),$.ipv6=(J)=>$.check(Q9(k9,J)),$.cidrv4=(J)=>$.check(Z9(f9,J)),$.cidrv6=(J)=>$.check(Y9(u9,J)),$.e164=(J)=>$.check(H9(p9,J)),$.datetime=(J)=>$.check(cY(J)),$.date=(J)=>$.check(pY(J)),$.time=(J)=>$.check(dY(J)),$.duration=(J)=>$.check(lY(J))});function R9($){return KZ(SU,$)}var r=P("ZodStringFormat",($,U)=>{n.init($,U),E9.init($,U)}),x9=P("ZodEmail",($,U)=>{B5.init($,U),r.init($,U)});function BF($){return iJ(x9,$)}var b2=P("ZodGUID",($,U)=>{F5.init($,U),r.init($,U)});function PF($){return E2(b2,$)}var c6=P("ZodUUID",($,U)=>{z5.init($,U),r.init($,U)});function KF($){return nJ(c6,$)}function WF($){return rJ(c6,$)}function MF($){return oJ(c6,$)}function qF($){return sJ(c6,$)}var h2=P("ZodURL",($,U)=>{P5.init($,U),r.init($,U)});function NF($){return x2(h2,$)}function OF($){return x2(h2,{protocol:/^https?$/,hostname:t$.domain,...E.normalizeParams($)})}var S9=P("ZodEmoji",($,U)=>{K5.init($,U),r.init($,U)});function AF($){return aJ(S9,$)}var b9=P("ZodNanoID",($,U)=>{W5.init($,U),r.init($,U)});function CF($){return tJ(b9,$)}var v9=P("ZodCUID",($,U)=>{M5.init($,U),r.init($,U)});function RF($){return eJ(v9,$)}var g9=P("ZodCUID2",($,U)=>{q5.init($,U),r.init($,U)});function TF($){return $9(g9,$)}var I9=P("ZodULID",($,U)=>{N5.init($,U),r.init($,U)});function EF($){return U9(I9,$)}var h9=P("ZodXID",($,U)=>{O5.init($,U),r.init($,U)});function xF($){return J9(h9,$)}var y9=P("ZodKSUID",($,U)=>{A5.init($,U),r.init($,U)});function SF($){return G9(y9,$)}var m9=P("ZodIPv4",($,U)=>{x5.init($,U),r.init($,U)});function bF($){return X9(m9,$)}var X_=P("ZodMAC",($,U)=>{b5.init($,U),r.init($,U)});function vF($){return MZ(X_,$)}var k9=P("ZodIPv6",($,U)=>{S5.init($,U),r.init($,U)});function gF($){return Q9(k9,$)}var f9=P("ZodCIDRv4",($,U)=>{v5.init($,U),r.init($,U)});function IF($){return Z9(f9,$)}var u9=P("ZodCIDRv6",($,U)=>{g5.init($,U),r.init($,U)});function hF($){return Y9(u9,$)}var w9=P("ZodBase64",($,U)=>{h5.init($,U),r.init($,U)});function yF($){return _9(w9,$)}var c9=P("ZodBase64URL",($,U)=>{y5.init($,U),r.init($,U)});function mF($){return j9(c9,$)}var p9=P("ZodE164",($,U)=>{m5.init($,U),r.init($,U)});function kF($){return H9(p9,$)}var d9=P("ZodJWT",($,U)=>{k5.init($,U),r.init($,U)});function fF($){return D9(d9,$)}var bU=P("ZodCustomStringFormat",($,U)=>{f5.init($,U),r.init($,U)});function uF($,U,J={}){return RU(bU,$,U,J)}function wF($){return RU(bU,"hostname",t$.hostname,$)}function cF($){return RU(bU,"hex",t$.hex,$)}function pF($,U){let J=U?.enc??"hex",G=`${$}_${J}`,X=t$[G];if(!X)throw Error(`Unrecognized hash format: ${G}`);return RU(bU,G,X,U)}var vU=P("ZodNumber",($,U)=>{wJ.init($,U),k.init($,U),$._zod.processJSONSchema=(G,X,Q)=>QY($,G,X,Q),$.gt=(G,X)=>$.check(u6(G,X)),$.gte=(G,X)=>$.check(b$(G,X)),$.min=(G,X)=>$.check(b$(G,X)),$.lt=(G,X)=>$.check(f6(G,X)),$.lte=(G,X)=>$.check(n$(G,X)),$.max=(G,X)=>$.check(n$(G,X)),$.int=(G)=>$.check(T9(G)),$.safe=(G)=>$.check(T9(G)),$.positive=(G)=>$.check(u6(0,G)),$.nonnegative=(G)=>$.check(b$(0,G)),$.negative=(G)=>$.check(f6(0,G)),$.nonpositive=(G)=>$.check(n$(0,G)),$.multipleOf=(G,X)=>$.check(y4(G,X)),$.step=(G,X)=>$.check(y4(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 Q_($){return RZ(vU,$)}var P1=P("ZodNumberFormat",($,U)=>{u5.init($,U),vU.init($,U)});function T9($){return EZ(P1,$)}function dF($){return xZ(P1,$)}function lF($){return SZ(P1,$)}function iF($){return bZ(P1,$)}function nF($){return vZ(P1,$)}var gU=P("ZodBoolean",($,U)=>{M2.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>ZY($,J,G,X)});function Z_($){return gZ(gU,$)}var IU=P("ZodBigInt",($,U)=>{cJ.init($,U),k.init($,U),$._zod.processJSONSchema=(G,X,Q)=>YY($,G,X,Q),$.gte=(G,X)=>$.check(b$(G,X)),$.min=(G,X)=>$.check(b$(G,X)),$.gt=(G,X)=>$.check(u6(G,X)),$.gte=(G,X)=>$.check(b$(G,X)),$.min=(G,X)=>$.check(b$(G,X)),$.lt=(G,X)=>$.check(f6(G,X)),$.lte=(G,X)=>$.check(n$(G,X)),$.max=(G,X)=>$.check(n$(G,X)),$.positive=(G)=>$.check(u6(BigInt(0),G)),$.negative=(G)=>$.check(f6(BigInt(0),G)),$.nonpositive=(G)=>$.check(n$(BigInt(0),G)),$.nonnegative=(G)=>$.check(b$(BigInt(0),G)),$.multipleOf=(G,X)=>$.check(y4(G,X));let J=$._zod.bag;$.minValue=J.minimum??null,$.maxValue=J.maximum??null,$.format=J.format??null});function rF($){return hZ(IU,$)}var l9=P("ZodBigIntFormat",($,U)=>{w5.init($,U),IU.init($,U)});function oF($){return mZ(l9,$)}function sF($){return kZ(l9,$)}var Y_=P("ZodSymbol",($,U)=>{c5.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>_Y($,J,G,X)});function aF($){return fZ(Y_,$)}var __=P("ZodUndefined",($,U)=>{p5.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>HY($,J,G,X)});function tF($){return uZ(__,$)}var j_=P("ZodNull",($,U)=>{d5.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>jY($,J,G,X)});function H_($){return wZ(j_,$)}var D_=P("ZodAny",($,U)=>{l5.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>VY($,J,G,X)});function eF(){return cZ(D_)}var L_=P("ZodUnknown",($,U)=>{i5.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>FY($,J,G,X)});function B1(){return pZ(L_)}var V_=P("ZodNever",($,U)=>{n5.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>LY($,J,G,X)});function i9($){return dZ(V_,$)}var F_=P("ZodVoid",($,U)=>{r5.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>DY($,J,G,X)});function $z($){return lZ(F_,$)}var y2=P("ZodDate",($,U)=>{o5.init($,U),k.init($,U),$._zod.processJSONSchema=(G,X,Q)=>zY($,G,X,Q),$.min=(G,X)=>$.check(b$(G,X)),$.max=(G,X)=>$.check(n$(G,X));let J=$._zod.bag;$.minDate=J.minimum?new Date(J.minimum):null,$.maxDate=J.maximum?new Date(J.maximum):null});function Uz($){return iZ(y2,$)}var z_=P("ZodArray",($,U)=>{s5.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>TY($,J,G,X),$.element=U.element,$.min=(J,G)=>$.check(z4(J,G)),$.nonempty=(J)=>$.check(z4(1,J)),$.max=(J,G)=>$.check(F1(J,G)),$.length=(J,G)=>$.check(z1(J,G)),$.unwrap=()=>$.element});function m2($,U){return oZ(z_,$,U)}function Jz($){let U=$._zod.def.shape;return r9(Object.keys(U))}var k2=P("ZodObject",($,U)=>{a5.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>EY($,J,G,X),E.defineLazy($,"shape",()=>{return U.shape}),$.keyof=()=>r9(Object.keys($._zod.def.shape)),$.catchall=(J)=>$.clone({...$._zod.def,catchall:J}),$.passthrough=()=>$.clone({...$._zod.def,catchall:B1()}),$.loose=()=>$.clone({...$._zod.def,catchall:B1()}),$.strict=()=>$.clone({...$._zod.def,catchall:i9()}),$.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(s9,$,J[0]),$.required=(...J)=>E.required(a9,$,J[0])});function Gz($,U){let J={type:"object",shape:$??{},...E.normalizeParams(U)};return new k2(J)}function Xz($,U){return new k2({type:"object",shape:$,catchall:i9(),...E.normalizeParams(U)})}function Qz($,U){return new k2({type:"object",shape:$,catchall:B1(),...E.normalizeParams(U)})}var f2=P("ZodUnion",($,U)=>{q2.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>K9($,J,G,X),$.options=U.options});function n9($,U){return new f2({type:"union",options:$,...E.normalizeParams(U)})}var B_=P("ZodXor",($,U)=>{f2.init($,U),t5.init($,U),$._zod.processJSONSchema=(J,G,X)=>K9($,J,G,X),$.options=U.options});function Zz($,U){return new B_({type:"union",options:$,inclusive:!1,...E.normalizeParams(U)})}var P_=P("ZodDiscriminatedUnion",($,U)=>{f2.init($,U),e5.init($,U)});function Yz($,U,J){return new P_({type:"union",options:U,discriminator:$,...E.normalizeParams(J)})}var K_=P("ZodIntersection",($,U)=>{$Q.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>xY($,J,G,X)});function W_($,U){return new K_({type:"intersection",left:$,right:U})}var M_=P("ZodTuple",($,U)=>{pJ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>SY($,J,G,X),$.rest=(J)=>$.clone({...$._zod.def,rest:J})});function q_($,U,J){let G=U instanceof y,X=G?J:U;return new M_({type:"tuple",items:$,rest:G?U:null,...E.normalizeParams(X)})}var u2=P("ZodRecord",($,U)=>{UQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>bY($,J,G,X),$.keyType=U.keyType,$.valueType=U.valueType});function N_($,U,J){return new u2({type:"record",keyType:$,valueType:U,...E.normalizeParams(J)})}function _z($,U,J){let G=S$($);return G._zod.values=void 0,new u2({type:"record",keyType:G,valueType:U,...E.normalizeParams(J)})}function jz($,U,J){return new u2({type:"record",keyType:$,valueType:U,mode:"loose",...E.normalizeParams(J)})}var O_=P("ZodMap",($,U)=>{JQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>CY($,J,G,X),$.keyType=U.keyType,$.valueType=U.valueType,$.min=(...J)=>$.check(w6(...J)),$.nonempty=(J)=>$.check(w6(1,J)),$.max=(...J)=>$.check(m4(...J)),$.size=(...J)=>$.check(V1(...J))});function Hz($,U,J){return new O_({type:"map",keyType:$,valueType:U,...E.normalizeParams(J)})}var A_=P("ZodSet",($,U)=>{GQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>RY($,J,G,X),$.min=(...J)=>$.check(w6(...J)),$.nonempty=(J)=>$.check(w6(1,J)),$.max=(...J)=>$.check(m4(...J)),$.size=(...J)=>$.check(V1(...J))});function Dz($,U){return new A_({type:"set",valueType:$,...E.normalizeParams(U)})}var xU=P("ZodEnum",($,U)=>{XQ.init($,U),k.init($,U),$._zod.processJSONSchema=(G,X,Q)=>BY($,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 xU({...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 xU({...U,checks:[],...E.normalizeParams(X),entries:Q})}});function r9($,U){let J=Array.isArray($)?Object.fromEntries($.map((G)=>[G,G])):$;return new xU({type:"enum",entries:J,...E.normalizeParams(U)})}function Lz($,U){return new xU({type:"enum",entries:$,...E.normalizeParams(U)})}var C_=P("ZodLiteral",($,U)=>{QQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>PY($,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 Vz($,U){return new C_({type:"literal",values:Array.isArray($)?$:[$],...E.normalizeParams(U)})}var R_=P("ZodFile",($,U)=>{ZQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>MY($,J,G,X),$.min=(J,G)=>$.check(w6(J,G)),$.max=(J,G)=>$.check(m4(J,G)),$.mime=(J,G)=>$.check(MU(Array.isArray(J)?J:[J],G))});function Fz($){return sZ(R_,$)}var T_=P("ZodTransform",($,U)=>{YQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>AY($,J,G,X),$._zod.parse=(J,G)=>{if(G.direction==="backward")throw new j1($.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 o9($){return new T_({type:"transform",transform:$})}var s9=P("ZodOptional",($,U)=>{dJ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>W9($,J,G,X),$.unwrap=()=>$._zod.def.innerType});function v2($){return new s9({type:"optional",innerType:$})}var E_=P("ZodExactOptional",($,U)=>{_Q.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>W9($,J,G,X),$.unwrap=()=>$._zod.def.innerType});function x_($){return new E_({type:"optional",innerType:$})}var S_=P("ZodNullable",($,U)=>{jQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>vY($,J,G,X),$.unwrap=()=>$._zod.def.innerType});function g2($){return new S_({type:"nullable",innerType:$})}function zz($){return v2(g2($))}var b_=P("ZodDefault",($,U)=>{HQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>IY($,J,G,X),$.unwrap=()=>$._zod.def.innerType,$.removeDefault=$.unwrap});function v_($,U){return new b_({type:"default",innerType:$,get defaultValue(){return typeof U==="function"?U():E.shallowClone(U)}})}var g_=P("ZodPrefault",($,U)=>{DQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>hY($,J,G,X),$.unwrap=()=>$._zod.def.innerType});function I_($,U){return new g_({type:"prefault",innerType:$,get defaultValue(){return typeof U==="function"?U():E.shallowClone(U)}})}var a9=P("ZodNonOptional",($,U)=>{LQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>gY($,J,G,X),$.unwrap=()=>$._zod.def.innerType});function h_($,U){return new a9({type:"nonoptional",innerType:$,...E.normalizeParams(U)})}var y_=P("ZodSuccess",($,U)=>{VQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>qY($,J,G,X),$.unwrap=()=>$._zod.def.innerType});function Bz($){return new y_({type:"success",innerType:$})}var m_=P("ZodCatch",($,U)=>{FQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>yY($,J,G,X),$.unwrap=()=>$._zod.def.innerType,$.removeCatch=$.unwrap});function k_($,U){return new m_({type:"catch",innerType:$,catchValue:typeof U==="function"?U:()=>U})}var f_=P("ZodNaN",($,U)=>{zQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>KY($,J,G,X)});function Pz($){return rZ(f_,$)}var t9=P("ZodPipe",($,U)=>{BQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>mY($,J,G,X),$.in=U.in,$.out=U.out});function I2($,U){return new t9({type:"pipe",in:$,out:U})}var e9=P("ZodCodec",($,U)=>{t9.init($,U),N2.init($,U)});function Kz($,U,J){return new e9({type:"pipe",in:$,out:U,transform:J.decode,reverseTransform:J.encode})}var u_=P("ZodReadonly",($,U)=>{PQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>kY($,J,G,X),$.unwrap=()=>$._zod.def.innerType});function w_($){return new u_({type:"readonly",innerType:$})}var c_=P("ZodTemplateLiteral",($,U)=>{KQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>WY($,J,G,X)});function Wz($,U){return new c_({type:"template_literal",parts:$,...E.normalizeParams(U)})}var p_=P("ZodLazy",($,U)=>{qQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>uY($,J,G,X),$.unwrap=()=>$._zod.def.getter()});function d_($){return new p_({type:"lazy",getter:$})}var l_=P("ZodPromise",($,U)=>{MQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>fY($,J,G,X),$.unwrap=()=>$._zod.def.innerType});function Mz($){return new l_({type:"promise",innerType:$})}var i_=P("ZodFunction",($,U)=>{WQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>OY($,J,G,X)});function qz($){return new i_({type:"function",input:Array.isArray($?.input)?q_($?.input):$?.input??m2(B1()),output:$?.output??B1()})}var w2=P("ZodCustom",($,U)=>{NQ.init($,U),k.init($,U),$._zod.processJSONSchema=(J,G,X)=>NY($,J,G,X)});function Nz($){let U=new o({check:"custom"});return U._zod.check=$,U}function Oz($,U){return aZ(w2,$??(()=>!0),U)}function n_($,U={}){return tZ(w2,$,U)}function r_($){return eZ($)}var Az=$Y,Cz=UY;function Rz($,U={}){let J=new w2({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 Tz=(...$)=>JY({Codec:e9,Boolean:gU,String:SU},...$);function Ez($){let U=d_(()=>{return n9([R9($),Q_(),Z_(),H_(),m2(U),N_(R9(),U)])});return U}function xz($,U){return I2(o9($),U)}var Yg={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 _g($){G$({customError:$})}function jg(){return G$().customError}var o_;(function($){})(o_||(o_={}));var b={...S2,...q9,iso:EU},Hg=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 Dg($,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 Lg($,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 Sz($,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=Lg(X,U),Z=O$(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 Sz(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=O$(H,U);X[_]=Z.has(_)?D:D.optional()}if($.propertyNames){let _=O$($.propertyNames,U),H=$.additionalProperties&&typeof $.additionalProperties==="object"?O$($.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 z of H){let B=O$(_[z],U),W=b.string().regex(new RegExp(z));D.push(b.looseRecord(W,B))}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 z=b.intersection(L[0],L[1]);for(let B=2;B<L.length;B++)z=b.intersection(z,L[B]);G=z}break}let Y=b.object(X);if($.additionalProperties===!1)G=Y.strict();else if(typeof $.additionalProperties==="object")G=Y.catchall(O$($.additionalProperties,U));else G=Y.passthrough();break}case"array":{let{prefixItems:X,items:Q}=$;if(X&&Array.isArray(X)){let Z=X.map((_)=>O$(_,U)),Y=Q&&typeof Q==="object"&&!Array.isArray(Q)?O$(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((_)=>O$(_,U)),Y=$.additionalItems&&typeof $.additionalItems==="object"?O$($.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=O$(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 O$($,U){if(typeof $==="boolean")return $?b.any():b.never();let J=Sz($,U),G=$.type||$.enum!==void 0||$.const!==void 0;if($.anyOf&&Array.isArray($.anyOf)){let Y=$.anyOf.map((H)=>O$(H,U)),_=b.union(Y);J=G?b.intersection(J,_):_}if($.oneOf&&Array.isArray($.oneOf)){let Y=$.oneOf.map((H)=>O$(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:O$($.allOf[0],U),_=G?0:1;for(let H=_;H<$.allOf.length;H++)Y=b.intersection(Y,O$($.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(!Hg.has(Y))X[Y]=$[Y];if(Object.keys(X).length>0)U.registry.add(J,X);return J}function bz($,U){if(typeof $==="boolean")return $?b.any():b.never();let J=Dg($,U?.defaultTarget),G=$.$defs||$.definitions||{},X={version:J,defs:G,refs:new Map,processing:new Set,rootSchema:$,registry:U?.registry??W$};return O$($,X)}var s_={};L4(s_,{string:()=>Vg,number:()=>Fg,date:()=>Pg,boolean:()=>zg,bigint:()=>Bg});function Vg($){return WZ(SU,$)}function Fg($){return TZ(vU,$)}function zg($){return IZ(gU,$)}function Bg($){return yZ(IU,$)}function Pg($){return nZ(y2,$)}G$(O2());var a_;function g$($,U="input"){let J=$["~standard"],G=J.vendor;if(G==="zod")return qg($);if(G==="valibot")return Ng($);let X=J.jsonSchema;if(Wg(X)){let Q=X[U];if(typeof Q==="function")return t_(e_(Q({target:Mg}),`${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 Wg($){return $!==null&&typeof $==="object"}var Mg="draft-2020-12";function qg($){let U=j.toJSONSchema($,{unrepresentable:"any"});return t_(e_(U,"zod"))}function Ng($){let J=Og()($);return t_(e_(J,"valibot"))}function Og($){let U=$===void 0,J=$??Kg(import.meta.url);if(U&&a_!==void 0)return a_;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?a_=G.toJsonSchema:G.toJsonSchema}function t_($){if(!("$schema"in $))return $;let U={...$};return delete U.$schema,U}function e_($,U){if($!==null&&typeof $==="object"&&!Array.isArray($))return $;throw Error(`definitionSchemaToJsonSchema: ${U} converter returned a non-object (${typeof $}). Expected a JSON Schema object.`)}var Ag=1;class hU 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 vz($){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]=Cg(Y);let Z=Object.create(null);for(let Y of X)Z[Y.name]=Rg(Y);return{registryVersion:Ag,workflows:Q,activities:Z}}function Cg($){let U={};if($.inputSchema!==void 0)U.inputSchema=$G("workflow",$.type,"inputSchema",$.inputSchema);if($.outputSchema!==void 0)U.outputSchema=$G("workflow",$.type,"outputSchema",$.outputSchema);if($.description!==void 0)U.description=$.description;if($.tags.length>0)U.tags=[...$.tags];return U}function Rg($){let U={queue:$.queue};if($.inputSchema!==void 0)U.inputSchema=$G("activity",$.name,"inputSchema",$.inputSchema);if($.outputSchema!==void 0)U.outputSchema=$G("activity",$.name,"outputSchema",$.outputSchema);if($.description!==void 0)U.description=$.description;return U}function $G($,U,J,G){try{return g$(G,J==="inputSchema"?"input":"output")}catch(X){throw new hU($,U,J,X)}}function K1($){return $}var Iz=["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"],Tg=new Set(Iz);function hz($){return Tg.has($)}function yz($){let U=new Set;gz($.scope,U),gz($.scp,U);let J=$.permissions;if(Array.isArray(J)){for(let G of J)if(typeof G==="string"&&hz(G))U.add(G)}return U}function gz($,U){if(typeof $!=="string")return;if($.trim().length===0)return;for(let J of $.split(/\s+/)){if(J.length===0)continue;if(hz(J))U.add(J)}}function mz($){let U=yz($),J=typeof $.sub==="string"?$.sub:void 0;return{method:"jwt",scopes:U,claims:$,subject:J,hasScope(G){return U.has(G)}}}function kz($){let U=new Set($.scopes);return{method:"api-key",scopes:U,claims:void 0,subject:$.subject,hasScope(J){return U.has(J)}}}function fz($){let U=new Set($.scopes);return{method:"mtls",scopes:U,claims:void 0,subject:$.subject,hasScope(J){return U.has(J)}}}function $j(){return Eg}var Eg={method:"unauthenticated"};function B6($){return $.method!=="unauthenticated"}class e$ extends v{constructor($){super("McpToolExecutionError",$)}}function P4($,U,J){if(!$.authRequired)return;if(!B6($.principal))throw new e$(`${J} requires authentication`);if(!$.principal.hasScope(U))throw new e$(`${J} requires ${U}`)}async function uz($,U){return $.get(U)}async function wz($,U){return $.list(U)}var xg=["pending","running","completed","failed","cancelled","timed-out","suspended"];function dz($){if(!hg($))return{ok:!1,message:"List filter must be a JSON object"};let U=Sg($.status),J=bg($.type,"type"),G=vg($.tags,"tags"),X=cz($.limit,"limit"),Q=cz($.offset,"offset"),Z=gg([U,J,G,X,Q]);if(Z!==void 0)return Z;return{ok:!0,filter:Ig({status:c2(U),type:c2(J),tags:c2(G),limit:c2(X),offset:c2(Q)})}}function Sg($){if($===void 0)return{ok:!0};if(typeof $==="string")return pz($)?{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"||!pz(J))return{ok:!1,message:"List filter status array contains an invalid workflow status"};U.push(J)}return{ok:!0,value:U}}function bg($,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 vg($,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 cz($,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 gg($){for(let U of $)if(!U.ok)return U;return}function c2($){return $.ok?$.value:void 0}function Ig($){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 pz($){return xg.some((U)=>U===$)}function hg($){return $!==null&&typeof $==="object"&&!Array.isArray($)}var lz=new WeakMap,Jj=30000,Uj=2147483647;function iz($){return yg($).tools.map((U)=>U.definition)}function yg($){let U=mg($),J=lz.get($);if(J!==void 0&&kg(J.signature,U))return J;let G=fg($),X={signature:U,tools:G,toolsByName:new Map(G.map((Q)=>[Q.definition.name,Q]))};return lz.set($,X),X}function mg($){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 kg($,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 fg($){let U=[...ig()],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=rg(ng(G.type),J);J.add(X),U.push({definition:{name:X,title:G.type,description:G.description??`Run Weft workflow ${G.type}.`,inputSchema:ug(G.type,G.inputSchema)},call:async(Q,Z)=>{P4(Z,"workflows:write","Calling workflow tools");let{input:Y,timeoutMs:_}=cg(Q),H=crypto.randomUUID();Z.session.trackRequest(Z.requestId,H);try{if(Z.session.isRequestCancelled(Z.requestId))throw new e$("Workflow cancelled");let D=await K1(Z.engine).start(G.type,Y,{id:H});if(Z.session.isRequestCancelled(Z.requestId))await Z.engine.cancel(D.id);let L=await dg(D,{timeoutMs:_,signal:Z.session.requestSignal(Z.requestId)});if(L.status==="timed-out")return lg(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 ug($,U){try{return wg(g$(U,"input"))}catch(J){throw new hU("workflow",$,"inputSchema",J)}}function wg($){return{type:"object",additionalProperties:!1,required:["input"],properties:{input:$,timeoutMs:{type:"integer",minimum:1,maximum:Uj,default:Jj,description:"Maximum milliseconds to wait for the workflow result before returning a running status."}}}}function cg($){if($===null||typeof $!=="object"||Array.isArray($))return{input:$,timeoutMs:Jj};let U=$,J=pg(U.timeoutMs);return{input:U.input,timeoutMs:J}}function pg($){if($===void 0)return Jj;if(typeof $==="number"&&Number.isSafeInteger($)&&$>=1&&$<=Uj)return $;throw new e$(`Tool argument "timeoutMs" must be an integer from 1 to ${Uj}`)}async function dg($,U){if(U.signal?.aborted)throw new e$("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 e$("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 lg($,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 ig(){return[{definition:{name:"start_workflow",description:"Start a Weft workflow and return its workflow id.",inputSchema:M1({type:{type:"string"},input:{},id:{type:"string"}},["type"])},call:async($,U)=>{P4(U,"workflows:write","Starting workflows");let J=W1($),G=K4(J.type,"type"),X=J.input??{},Q=typeof J.id==="string"?{id:J.id}:void 0;return{workflowId:(await K1(U.engine).start(G,X,Q)).id}}},{definition:{name:"signal_workflow",description:"Send a signal to a Weft workflow.",inputSchema:M1({workflowId:{type:"string"},signalName:{type:"string"},payload:{}},["workflowId","signalName"])},call:async($,U)=>{P4(U,"signals:write","Signalling workflows");let J=W1($),G=K4(J.workflowId,"workflowId");return await p2(U,G),await U.engine.signal(G,K4(J.signalName,"signalName"),J.payload),{ok:!0}}},{definition:{name:"update_workflow",description:"Run an update handler on a Weft workflow.",inputSchema:M1({workflowId:{type:"string"},updateName:{type:"string"},payload:{}},["workflowId","updateName"])},call:async($,U)=>{P4(U,"updates:write","Updating workflows");let J=W1($),G=K4(J.workflowId,"workflowId");return await p2(U,G),{result:await U.engine.update(G,K4(J.updateName,"updateName"),J.payload)}}},{definition:{name:"query_workflow",description:"Run a query handler on a Weft workflow.",inputSchema:M1({workflowId:{type:"string"},queryName:{type:"string"},input:{}},["workflowId","queryName"])},call:async($,U)=>{P4(U,"queries:read","Querying workflows");let J=W1($),G=K4(J.workflowId,"workflowId");return await p2(U,G),{result:await U.engine.query(G,K4(J.queryName,"queryName"),J.input)}}},{definition:{name:"cancel_workflow",description:"Cancel a Weft workflow.",inputSchema:M1({workflowId:{type:"string"}},["workflowId"])},call:async($,U)=>{P4(U,"workflows:write","Cancelling workflows");let J=K4(W1($).workflowId,"workflowId");return await p2(U,J),await U.engine.cancel(J),{ok:!0}}},{definition:{name:"list_workflows",description:"List visible Weft workflows.",inputSchema:M1({status:{},type:{type:"string"},tags:{type:"array",items:{type:"string"}},limit:{type:"number"},offset:{type:"number"}})},call:async($,U)=>{P4(U,"workflows:read","Listing workflows");let J=dz(W1($));if(!J.ok)throw new e$(J.message);return await wz(U.engine,J.filter)}},{definition:{name:"get_workflow_state",description:"Read visible Weft workflow state.",inputSchema:M1({workflowId:{type:"string"}},["workflowId"])},call:async($,U)=>{P4(U,"workflows:read","Reading workflow state");let J=K4(W1($).workflowId,"workflowId");return await p2(U,J)}}]}async function p2($,U){let J=await uz($.engine,U);if(J===null)throw new e$(`Workflow "${U}" not found`);return J}function W1($){if($!==null&&typeof $==="object"&&!Array.isArray($))return $;throw new e$("Tool arguments must be a JSON object")}function K4($,U){if(typeof $==="string"&&$.length>0)return $;throw new e$(`Tool argument "${U}" must be a non-empty string`)}function M1($,U=[]){return{type:"object",properties:$,required:[...U],additionalProperties:!1}}function ng($){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 rg($,U){if(!U.has($))return $;let J=2;while(U.has(`${$}_${String(J)}`))J+=1;return`${$}_${String(J)}`}var UG={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 og=1e4;class nz{#$;#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 sg{#$;#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 nz(og),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=ag(G);$[U]={type:"histogram",count:G.length,sum:tg(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 ag($){let U=[...$];return U.sort((J,G)=>J-G),U}function tg($){let U=0;for(let J of $)U+=J;return U}function eg($,U){let J=U?.type==="histogram"?U.count:0,G=U?.type==="histogram"?U.sum:0;return[`# TYPE ${$} histogram`,`${$}_count ${J}`,`${$}_sum ${G}`]}function $I($,U){let J=U?.type==="counter"?U.value:0;return[`# TYPE ${$} counter`,`${$}_total ${J}`]}function UI($,U){let J=U?.type==="gauge"?U.value:0;return[`# TYPE ${$} gauge`,`${$} ${J}`]}var JI={histogram:eg,counter:$I,gauge:UI};function GI($,U){let J=$.name.replace(/\./g,"_"),G=U[$.name];return[`# HELP ${J} ${$.description}`,...JI[$.type](J,G)]}function XI($){let U=$[UG.dpmoDefects.name],J=$[UG.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 QI($){let U=[];for(let J of Object.values(UG))U.push(...GI(J,$));return U.push(...XI($)),U.join(`
41
41
  `)+`
42
- `}function rz($){return{serialize(){let U=$?.snapshot()??{};return QI(U)}}}function oz($){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 ZI=new Set(["http","https"]),YI=/^(?:[A-Za-z0-9._-]+(?::\d+)?|\[[0-9A-Fa-f:.]+\](?::\d+)?)$/,_I="[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 jI(){let $=!1;return{warn(){if($)return;$=!0,console.warn(_I)},reset(){$=!1}}}var HI=jI();function sz(){HI.warn()}function az($){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&&ZI.has(J.toLowerCase())?J.toLowerCase():"https",X=U!==null&&YI.test(U)?U:"localhost";return`${G}://${X}`}var w4="0.5.0";function yU($){return JSON.stringify(Gj($))}function Gj($){if($===null||typeof $!=="object")return $;if(Array.isArray($))return $.map(Gj);let U={};for(let[J,G]of Object.entries($).toSorted(([X],[Q])=>X<Q?-1:X>Q?1:0))U[J]=Gj(G);return U}function F$($,U){return $<U?-1:$>U?1:0}function q1($){if(l2($))return $;return{}}function d2($){let U=JSON.parse(yU($));return q1(U)}function l2($){return $!==null&&typeof $==="object"&&!Array.isArray($)}function N1($){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 JG=[{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 i2($){return $.replace(/:([^/]+)/g,"{$1}")}function DI($){return $.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function tz($){let U=$.split("/").map((J)=>{if(J===":step")return"(\\d+)";if(J.startsWith(":"))return"([^/]+)";return DI(J)}).join("/");return new RegExp(`^${U}$`)}var n2="2.0",LI="weft.events.deliver",VI="weft.events.terminated",FI="weft.workflows.events",zI="weft.workflows.subscribe",BI="weft.workflows.unsubscribe",Xj={oneOf:[{type:"string"},{type:"number"},{type:"null"}]},PI={enum:["client-unsubscribed","server-closed","validation-failed"],type:"string"};function $B($){let U=Qj($);return{address:N1("/jsonrpc"),bindings:{ws:{method:"GET"}},description:`JSON-RPC WebSocket subscription channel for ${$.name}.`,messages:ZB(U),title:$.summary,"x-weft-operation-name":$.name,"x-weft-transport":"json-rpc-websocket"}}function UB($,U){let J=Zj($);return{address:U!==void 0?N1(U):`/x-weft-unbound/${$.name.replaceAll(".","/")}`,description:`Server-Sent Events stream channel for ${$.name}. Responses use text/event-stream; charset=utf-8.`,messages:ZB(J),title:$.summary,"x-weft-operation-name":$.name,"x-weft-transport":"server-sent-events"}}function JB($,U){let J=Qj($),G=U($.inputSchema),X=U($.outputSchema,"output"),Q=YB($,U);return{[J.subscribeRequest]:{name:J.subscribeRequest,contentType:"application/json",payload:ez(KI($),G),summary:`Subscribe to ${$.name}.`},[J.subscribeAck]:{name:J.subscribeAck,contentType:"application/json",payload:WI(X),summary:`Subscription acknowledgement for ${$.name}.`},[J.eventDeliver]:{name:J.eventDeliver,contentType:"application/json",payload:MI(Q),summary:`Event delivery notification for ${$.name}.`},[J.unsubscribeRequest]:{name:J.unsubscribeRequest,contentType:"application/json",payload:ez(BI,{additionalProperties:!1,properties:{subscriptionId:{type:"string"}},required:["subscriptionId"],type:"object"}),summary:`Unsubscribe from ${$.name}.`},[J.terminated]:{name:J.terminated,contentType:"application/json",payload:qI(),summary:`Subscription termination notification for ${$.name}.`},[J.errorFrame]:{name:J.errorFrame,contentType:"application/json",payload:NI(),summary:`JSON-RPC error response for ${$.name}.`}}}function GB($,U){let J=Zj($),G=YB($,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 XB($,U,J){let G=J==="subscription"?Object.values(Qj($)):Object.values(Zj($));return{action:"receive",channel:{$ref:`#/channels/${OI(U)}`},messages:G.map((X)=>({$ref:`#/components/messages/${X}`})),operationId:$.name.replaceAll(".","_"),summary:$.summary,tags:[...$.tags].toSorted().map((X)=>({name:X}))}}function QB($){return $.name.replaceAll(".","_")}function KI($){return $.name===FI?zI:$.name}function Qj($){let U=QB($);return{subscribeRequest:`${U}_subscribeRequest`,subscribeAck:`${U}_subscribeAck`,eventDeliver:`${U}_eventDeliver`,unsubscribeRequest:`${U}_unsubscribeRequest`,terminated:`${U}_terminated`,errorFrame:`${U}_errorFrame`}}function Zj($){let U=QB($);return{tokenEvent:`${U}_tokenEvent`,doneEvent:`${U}_doneEvent`,errorEvent:`${U}_errorEvent`}}function ZB($){let U={};for(let[J,G]of Object.entries($).toSorted(([X],[Q])=>F$(X,Q)))U[J]={$ref:`#/components/messages/${G}`};return U}function ez($,U){return{additionalProperties:!1,properties:{id:Xj,jsonrpc:{const:n2,type:"string"},method:{const:$,type:"string"},params:U},required:["jsonrpc","id","method","params"],type:"object"}}function WI($){return{additionalProperties:!1,properties:{id:Xj,jsonrpc:{const:n2,type:"string"},result:$},required:["jsonrpc","id","result"],type:"object"}}function MI($){return{additionalProperties:!1,properties:{jsonrpc:{const:n2,type:"string"},method:{const:LI,type:"string"},params:{additionalProperties:!1,properties:{envelope:$,subscriptionId:{type:"string"}},required:["subscriptionId","envelope"],type:"object"}},required:["jsonrpc","method","params"],type:"object"}}function qI(){return{additionalProperties:!1,properties:{jsonrpc:{const:n2,type:"string"},method:{const:VI,type:"string"},params:{additionalProperties:!1,properties:{fault:{type:"object"},reason:PI,subscriptionId:{type:"string"}},required:["subscriptionId","reason"],type:"object"}},required:["jsonrpc","method","params"],type:"object"}}function NI(){return{additionalProperties:!1,properties:{error:{$ref:"#/components/schemas/JsonRpcError"},id:Xj,jsonrpc:{const:n2,type:"string"}},required:["jsonrpc","id","error"],type:"object"}}function YB($,U){if($.eventSchema===void 0)return{type:"object"};return U($.eventSchema,"output")}function OI($){return $.replaceAll("~","~0").replaceAll("/","~1")}function c4($){if($.access.kind==="public")return!0;return $.discoverable===!0}function mU($,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 AI=/^[A-Za-z_][A-Za-z0-9_-]*$/,Yj="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 kU($,U){if(typeof $!=="string"||$.length===0)throw Error(`${U} name must be a non-empty string — ${Yj}`);if($.includes("."))throw Error(`${U} name "${$}" contains '.', which is reserved for qualified activity names. ${Yj}`);if(!AI.test($))throw Error(`${U} name "${$}" is invalid — ${Yj}`)}function _B($){let U=typeof $==="function"?{name:$.name,execute:$}:$;if(!U.name)throw Error("activity() requires a named function or an options object with name.");kU(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 O1=200,r2=256;var GG="weft-worker-operation-signature-v1",fU=2;class XG 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 jB=300000,HB=1000;function CI($){let U=TI($);if(U===void 0)return!1;if(typeof U.validate==="function")return!0;return EI(U.jsonSchema)}function p4($,U){if(CI($))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: ${RI($)}.`)}function RI($){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 TI($){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 EI($){if($===null||typeof $!=="object")return!1;return typeof $.input==="function"&&typeof $.output==="function"}var QG="history-circuit-breaker";function r$($){return typeof $==="string"?$:$.name}var DB={maxAttempts:3,initialBackoff:1000,backoffMultiplier:2,maxBackoff:30000};function A$($){return typeof $==="string"?$:$.name}function LB($){return _j($,new WeakMap)}function _j($,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(_j(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]=_j($[Z],U);return Q}function xI($,U){let J=U;return{...SI(J),...bI($,J),...vI(J)}}function SI($){return{...typeof $.description==="string"?{description:$.description}:{},...Array.isArray($.tags)&&$.tags.every((U)=>typeof U==="string")?{tags:[...$.tags]}:{}}}function bI($,U){return{..."inputSchema"in U?{inputSchema:p4(U.inputSchema,`activity definition "${$}".inputSchema`)}:{},..."outputSchema"in U?{outputSchema:p4(U.outputSchema,`activity definition "${$}".outputSchema`)}:{}}}function vI($){return{...typeof $.queue==="string"?{queue:$.queue}:{},...gI($.retry)?{retry:$.retry}:{},...typeof $.timeout==="string"||typeof $.timeout==="number"?{timeout:$.timeout}:{},...typeof $.idempotent==="boolean"?{idempotent:$.idempotent}:{}}}function gI($){return typeof $==="object"&&$!==null}function VB($){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:FB($.retry)},...$.timeout===void 0?{}:{timeout:$.timeout},...$.idempotent===void 0?{}:{idempotent:$.idempotent}}}function FB($){return{...$,...$.nonRetryableErrors===void 0?{}:{nonRetryableErrors:[...$.nonRetryableErrors]}}}function II($,U,J){let G=J?.inputSchema===void 0?U.inputSchema:p4(J.inputSchema,`activity registration "${$}".inputSchema`),X=J?.outputSchema===void 0?U.outputSchema:p4(J.outputSchema,`activity registration "${$}".outputSchema`);return{...G===void 0?{}:{inputSchema:G},...X===void 0?{}:{outputSchema:X}}}function uU($,U){return $??U}function hI($,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=FB(U.retry);if(U.timeout!==void 0)$.timeout=U.timeout;if(U.idempotent!==void 0)$.idempotent=U.idempotent}function o2($,U,J){if(J!==void 0)$[U]=J}function yI($,U,J){let G={...II($,U,J)};return o2(G,"description",uU(J?.description,U.description)),o2(G,"tags",uU(J?.tags,U.tags)),o2(G,"retry",uU(J?.retry,U.retry)),o2(G,"timeout",uU(J?.timeout,U.timeout)),o2(G,"idempotent",uU(J?.idempotent,U.idempotent)),G}function mI($,U,J){let G={name:$,queue:uU(J?.queue,U.queue)??"default"};return hI(G,yI($,U,J)),G}class s2{#$;#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){kU($,"activity");let G=this.#J.get($);if(G&&G!==U)this.#G(G,$);let X=xI($,U),Q=mI($,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:VB(U)}getMetadataByName($){return this.getDefinition($)}getDefinition($){let U=this.#U.get($);return U===void 0?void 0:VB(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 A1 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 C1=1,jj="weft:schema-version";class C$ extends v{workflowId;constructor($){super("WorkflowAlreadyExistsError",`Workflow with id "${$}" already exists`);this.workflowId=$}}class ZG 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 d4 extends v{constructor(){super("BulkDeleteRequiresTerminalWorkflowsError","Bulk delete matches non-terminal workflows")}}class d$ extends v{constructor(){super("BulkOperationConfirmationError","Bulk confirmation token does not match the current dry-run scope")}}var zB=20,kI=10;function fI($){let U=$.slice(0,kI),J=$.length-U.length;return J>0?`${U.join(", ")} (+${J} more)`:U.join(", ")}class wU 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=fI(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,zB).map((Q)=>({...Q})),this.missingWorkflowCount=U,this.samplesTruncated=U>zB}}class cU 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 p6 extends v{constructor(){super("EngineDisposedError","Engine was disposed before the workflow completed")}}class W4 extends v{workflowId;constructor($){super("WorkflowNotFoundError",`Workflow "${$}" not found`);this.workflowId=$}}class $6 extends v{workflowType;constructor($){super("WorkflowNotRegisteredError",`No workflow registered with name "${$}"`);this.workflowType=$}}class YG 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 pU extends v{constructor($){super("WorkflowSuspendNotSupportedError",$)}}class _G 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 dU 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 P6 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 BB=["http-rest","jsonRpcHttp","jsonRpcWebSocket","jsonRpcStdio"],R1=new Set(["__proto__","prototype","constructor"]);function PB($){return $==="http-rest"?"http":"jsonRpc"}function Hj($){switch($){case"http-rest":return"http";case"jsonRpcHttp":return"jsonRpcHttp";case"jsonRpcWebSocket":return"jsonRpcWebSocket";case"jsonRpcStdio":return"jsonRpcStdio"}}function KB($){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)=>!R1.has(U)))}function WB($,U){let J=Object.create(null);for(let G of Object.keys($)){if(R1.has(G))continue;if(U.has(G))J[G]=$[G]}return J}function MB($){return $.map((U)=>({path:U.path.map((J)=>typeof J==="string"||typeof J==="number"?J:String(J)),message:U.message,code:U.code}))}var uI=new Set(["Unauthorized","Forbidden","InvalidParams","EngineFailure"]);function qB($,U){if(lI($)){try{cI(U,$.code)}catch(J){if(wI(J))return{code:"EngineFailure",message:J.message,data:{}};throw J}return $}if($ instanceof C$)return{code:"Conflict",message:"conflict",data:{reason:"resource already exists"}};if($ instanceof $6)return{code:"InvalidParams",message:$.message,data:{issues:[]}};if($ instanceof W4)return{code:"NotFound",message:"not found",data:{resource:"workflow"}};if($ instanceof Error)return pI($);return{code:"EngineFailure",message:"internal error",data:{}}}class Dj 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 wI($){return $ instanceof Dj}function cI($,U){if($===void 0)return;if(uI.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 Dj($.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 pI($){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 dI={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 lI($){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(dI,U)}function NB($,U){switch($.kind){case"public":return{allowed:!0};case"authenticated":if(B6(U))return{allowed:!0};return{allowed:!1,classification:"unauthorized",reason:"authentication required"};case"scoped":if(!B6(U))return{allowed:!1,classification:"unauthorized",reason:"authentication required"};return Lj($.scopes,U.scopes);case"scopedAlternatives":if(!B6(U))return{allowed:!1,classification:"unauthorized",reason:"authentication required"};return iI($.alternatives,U.scopes);case"optionalAuth":if(!B6(U))return{allowed:!0};return Lj($.authenticatedScopes,U.scopes);default:return OB($)}}function OB($){throw Error(`authorization received a discriminated value with unknown kind: ${String($.kind)}`)}function Lj($,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 OB($)}}function iI($,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=Lj(G,U);if(X.allowed)return{allowed:!0};J.push(X.reason)}return{allowed:!1,classification:"forbidden",reason:`requires one of: ${J.join("; ")}`}}function AB($,U){if($.transports[Hj(U.transport)])return null;let J=BB.filter((G)=>$.transports[Hj(G)]);return T1({code:"UnsupportedTransport",message:`operation "${$.name}" does not support transport "${U.transport}"`,data:{transport:U.transport,supported:J}})}function CB($,U){let J=NB($.access,U.principal);if(J.allowed)return null;if(J.classification==="unauthorized")return T1({code:"Unauthorized",message:J.reason,data:{reason:J.reason}});return T1({code:"Forbidden",message:J.reason,data:{reason:J.reason}})}async function RB($,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 T1({code:"EngineFailure",message:"internal error",data:{}})}if(!tI(G))return T1({code:"EngineFailure",message:"internal error",data:{}});if(!G.allowed){if(G.classification==="unauthorized")return T1({code:"Unauthorized",message:G.reason,data:{reason:G.reason}});return T1({code:"Forbidden",message:G.reason,data:{reason:G.reason}})}return null}function TB($,U,J,G){let X=$.unknownKeyPolicy[J],Q=nI($);if(Q.kind==="failure")return Q;let Z=rI(U,X,Q.keys);if(Z.kind==="failure")return Z;let Y=aI($.inputSchema,Z.input);if(Y.kind==="failure")return Y;K6(G,"parsed");let _=Y.input;if(X!=="passthrough")return K6(G,"unknown-key-policy-applied"),{kind:"ok",input:_};let H=sI(_,Z.passthroughExtras);return K6(G,"unknown-key-policy-applied"),{kind:"ok",input:H}}function K6($,U){if($===void 0)return;$(U)}function nI($){try{return{kind:"ok",keys:KB($.inputSchema)}}catch{return{kind:"failure",fault:{code:"EngineFailure",message:"internal error",data:{}}}}}function rI($,U,J){if(!l2($))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:WB(G,J),passthroughExtras:oI(G,X,U)}}function oI($,U,J){if(J!=="passthrough")return[];return U.filter((G)=>!R1.has(G)).map((G)=>[G,$[G]])}function sI($,U){let J=Object.create(null);for(let[G,X]of Object.entries($)){if(R1.has(G))continue;J[G]=X}for(let[G,X]of U){if(G in J)continue;J[G]=X}return J}function aI($,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:MB(J.error.issues)}}};return{kind:"ok",input:J.data}}function tI($){if(typeof $!=="object"||$===null)return!1;let U=Vj($,"allowed");if(!U.ok)return!1;if(U.value===!0)return!0;if(U.value!==!1)return!1;let J=Vj($,"reason");if(!J.ok||typeof J.value!=="string")return!1;let G=Vj($,"classification");if(!G.ok)return!1;return eI(G.value)}function Vj($,U){try{return{ok:!0,value:$[U]}}catch{return{ok:!1}}}function eI($){return $===void 0||$==="unauthorized"||$==="forbidden"}function T1($){return{ok:!1,fault:$}}function EB($,U){let J=U.registry.get($);if(J===void 0)return E1({code:"MethodNotFound",message:`unknown operation: ${$}`,data:{method:$}});return K6(U.pipelineTrace,"looked-up"),{ok:!0,value:J}}async function xB($,U,J){let G=J.pipelineTrace,X=AB($,J);if(X!==null)return X;K6(G,"transport-checked");let Q=CB($,J);if(Q!==null)return Q;K6(G,"access-checked");let Z=TB($,U,PB(J.transport),G);if(Z.kind==="failure")return E1(Z.fault);let Y=await RB($,Z.input,J);if(Y!==null)return Y;return K6(G,"authorized"),{ok:!0,value:{input:Z.input}}}function SB($,U){let J;try{J=$.safeParse(U)}catch{return E1({code:"EngineFailure",message:"internal error",data:{}})}if(!J.success)return E1({code:"EngineFailure",message:"internal error",data:{}});return{ok:!0,value:J.data}}function E1($){return{ok:!1,fault:$}}async function Fj($,U,J){let G=EB($,J);if(!G.ok)return G;let X=G.value,Q=X.kind??"unary";if(Q==="subscription"||Q==="stream"&&J.transport!=="http-rest")return E1({code:"Unprocessable",message:`operation "${X.name}" is not unary`,data:{reason:`operation kind is "${Q}"`}});let Z=await xB(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 E1(qB(H,X))}K6(J.pipelineTrace,"invoked");let _=SB(X.outputSchema,Y);if(_.ok)K6(J.pipelineTrace,"output-validated");return _}var lU=new Set(["Unauthorized","Forbidden","InvalidParams","EngineFailure"]);function W6($,U){let J=new Set([...lU,...$.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 bB=/^weft\.[a-z][a-z0-9]*(?:\.[a-z][a-z0-9]*)+$/;function a2($){if(!bB.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 vB($){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 $h($){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:vB(U.access)})))})}function Uh($){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 Jh($){let U=Uh($),G=Object.keys(U.shape).filter((X)=>R1.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 Gh($){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 Xh($){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 Qh($){if(!$.mcpExposable)return;if($.mcpTool===void 0)throw Error(`operation "${$.name}" is mcpExposable but does not declare mcpTool.workflowType metadata`)}function Zh($){return Object.freeze({...$,tags:Object.freeze([...$.tags]),...$.producibleFaults===void 0?{}:{producibleFaults:Object.freeze([...$.producibleFaults])},access:vB($.access),...$.parameterizedAccess===void 0?{}:{parameterizedAccess:$h($.parameterizedAccess)},...$.mcpTool===void 0?{}:{mcpTool:Object.freeze({workflowType:$.mcpTool.workflowType})},transports:Object.freeze({...$.transports}),unknownKeyPolicy:Object.freeze({...$.unknownKeyPolicy})})}function Bj($){let U=new Map;for(let G of $){if(U.has(G.name))throw Error(`duplicate operation name in registry: ${G.name}`);a2(G.name),Jh(G),Gh(G),Xh(G),Qh(G),U.set(G.name,Zh(G))}let J=Object.freeze([...U.values()]);return{get(G){return U.get(G)},list(){return J}}}var Yh=/^(\d+(?:\.\d+)?)\s*(ms|milliseconds?|s|seconds?|m|minutes?|h|hours?|d|days?)$/i,_h={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 gB($,U){if(!Number.isFinite($)||$<0)throw RangeError(`Duration must resolve to a finite, non-negative number of milliseconds, got: ${String(U)}`)}function R$($,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 _$($){if(typeof $==="number")return gB($,$),$;let U=Yh.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=_h[G];if(X===void 0)throw Error(`Unknown duration unit: "${G}"`);let Q=J*X;return gB(Q,$),Q}function jG($,U){let J=_$(U.initialBackoff),G=_$(U.maxBackoff),X=J*Math.pow(U.backoffMultiplier,$-1);return Math.min(X,G)}function X$($,U,J){if(!$.capabilities()[U])throw Error(`Feature "${J}" requires storage capability "${U}", but this storage backend does not provide it.`)}var IB="default";async function hB($,U){return await $.get(U)!==null}async function*t2($,U,J){for await(let[G]of $.scan(U,J))yield G}async function yB($,U){let J=0;for await(let G of t2($,U))J++;return J}async function mB($,U){let J=[];for await(let G of t2($,U))J.push({type:"delete",key:G});if(J.length===0)return 0;return await $.batch(J),J.length}async function kB($,U,J){let G=[];for await(let X of t2($,U,J))G.push({type:"delete",key:X});if(G.length===0)return 0;return await $.batch(G),G.length}var x1=1e4,uB=1e4;class wB extends Error{code="StorageBatchOperationLimitExceededError";cap=x1;count;target;constructor($,U){super(`${$} count ${U} exceeds MAX_BATCH_OPERATIONS (${x1}).`);this.name="StorageBatchOperationLimitExceededError",this.target=$,this.count=U}}function I$($,U){if(U>x1)throw new wB($,U)}function J$($){return $.length>0?$.slice(0,-1)+String.fromCharCode($.charCodeAt($.length-1)+1):"ÿ"}function S1($,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 iU($,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 h$($,U){if($.has)return $.has(U);return hB($,U)}function HG($,U,J){if($.keys)return $.keys(U,J);return t2($,U,J)}async function cB($,U){if($.count)return $.count(U);return yB($,U)}async function pB($,U){if($.deletePrefix)return $.deletePrefix(U);return mB($,U)}async function dB($,U){I$("batch operations",U.length),await $.batch(U)}async function $$($,U,J){if(I$("conditionalBatch conditions",U.length),I$("conditionalBatch operations",J.length),X$($,"conditionalBatch","storageConditionalBatch"),!$.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return $.conditionalBatch(U,J)}function O($){return encodeURIComponent($)}function lB($){return decodeURIComponent($)}function d6($){try{return decodeURIComponent($)}catch{return null}}var M6=($)=>String($).padStart(16,"0"),jh="0",Hh="1",fB=($,U,J,G)=>`sig:${O($)}:${O(U)}:${G}:${O(J)}`,F={workflow:($)=>`wf:${O($)}`,checkpoint:($)=>`wf:${O($)}:ckpt`,checkpointHistory:($,U)=>`wf:${O($)}:ckpt:${String(U).padStart(10,"0")}`,timelinePrefix:($)=>`wf:${O($)}:timeline:`,timeline:($,U)=>`wf:${O($)}:timeline:${String(U).padStart(10,"0")}`,schedule:($)=>`schedule:${O($)}`,scheduleTick:($,U)=>`schedule-due:${String($).padStart(16,"0")}:${O(U)}`,scheduleRun:($)=>`schedule-run:${O($)}`,operation:($,U,J)=>`op:${$}:${M6(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:${M6($)}:${O(U)}:${O(J)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:($,U)=>`op:resolved-by-time:${M6($)}:${O(U)}`,asyncActivity:($,U)=>`async-act:v1:${O($)}:${O(U)}`,activityReconciliationPrefix:($)=>`actrec:v1:${O($)}:`,activityReconciliation:($,U,J)=>`actrec:v1:${O($)}:${O(U)}:${J}`,eventPrefix:($)=>`ev:${O($)}:`,event:($,U)=>`ev:${O($)}:${String(U).padStart(10,"0")}`,eventHead:($)=>`ev:${O($)}:head`,eventWatermark:($)=>`ev:${O($)}:watermark`,fleetEventPrefix:()=>"fleet-event:",fleetEvent:($)=>`fleet-event:${String($).padStart(10,"0")}`,fleetEventTail:()=>"fleet-event-tail",fleetEventByWorkflowPrefix:($)=>`fleet-event-by-workflow:${O($)}:`,fleetEventByWorkflow:($,U)=>`fleet-event-by-workflow:${O($)}:${String(U).padStart(10,"0")}`,signal:($,U,J)=>fB($,U,J,Hh),startSignal:($,U,J)=>fB($,U,J,jh),signalSequence:($)=>`sigseq:v1:${O($)}`,signalAcceptedResponsePrefix:($)=>`sigres:v1:${O($)}:`,signalAcceptedResponse:($,U,J)=>`sigres:v1:${O($)}:${O(U)}:${O(J)}`,deadline:($,U)=>`wf-deadline:${M6($)}:${O(U)}`,terminalCleanup:($,U)=>`wf-cleanup:${M6($)}:${O(U)}`,teardownTimer:($,U)=>`wf-teardown:${M6($)}:${O(U)}`,delayedStart:($,U)=>`wf-delayed:${M6($)}:${O(U)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:($,U)=>`wf-terminal:${M6($)}:${O(U)}`,attribute:($)=>`attr:${O($)}`,attributeIndex:($,U,J)=>`idx:${$}:${U}:${O(J)}`,tagIndex:($,U)=>`tag:${O($)}:${O(U)}`,updatePrefix:($)=>`upd:${O($)}:`,update:($,U)=>`upd:${O($)}:${U}`,updateResponse:($)=>`upr:${$}`,updateIdempotency:($,U)=>`upk:${O($)}:${U}`,startIdempotency:($)=>`start-idem:${O($)}`,startIdempotencySignalId:($)=>`start-idem:${$}`,livenessPrefix:()=>"liveness:",liveness:($)=>`liveness:${O($)}`,leasePrefix:()=>"lease:",leaseEpoch:()=>"lease:epoch",leaseHolder:()=>"lease:holder",budget:($,U,J)=>`budget:${$}:${U}:${J}`,review:($,U)=>`review:${O($)}:${U}`,workflowHeaders:($)=>`wf-headers:${O($)}`,childCancellationPrefix:($)=>`child-cancel:${O($)}:`,childCancellation:($,U)=>`child-cancel:${O($)}:${O(U)}`,terminalCleanupNeeded:($)=>`wf-cleanup-needed:${O($)}`,workflowConcurrency:($,U)=>`wf-concurrency:${O($)}:${O(U)}`,workflowConcurrencyHolder:($)=>`wf-concurrency-holder:${O($)}`,workflowHasServices:($)=>`wf-has-services:${O($)}`,finalizerState:($)=>`wf-finalizer-state:${O($)}`,teardownOwed:($)=>`wf-teardown-needed:${O($)}`,teardownDeadLetter:($)=>`wf-teardown-deadletter:${O($)}`,offload:($,U)=>`offload:${O($)}:${U}`,archive:($,U)=>`archive:${O($)}:${U}`,stateExecution:($,U)=>`state:execution:${O($)}:${O(U)}`,stateWorkflow:($,U)=>`state:workflow-scope:${IB}:${O($)}:${O(U)}`,streamChunkPrefix:($,U)=>`blob:${O($)}:${U}:chunk:`,streamChunk:($,U,J)=>`blob:${O($)}:${U}:chunk:${String(J).padStart(10,"0")}`,streamTail:($,U)=>`blob:${O($)}:${U}:tail`,streamMetadata:($,U)=>`blob:${O($)}:${U}:meta`,budgetCharged:($)=>`budget-charged:${$}`,toolEffect:($,U,J)=>`tool-effect:${O($)}:${U}:${J}`,workflowVisibilityStatus:($,U)=>`wf-idx-status:${O($)}:${O(U)}`,workflowVisibilityType:($,U)=>`wf-idx-type:${O($)}:${O(U)}`,workflowVisibilityCreated:($,U)=>`wf-idx-created:${M6($)}:${O(U)}`,workflowVisibilityUpdated:($,U)=>`wf-idx-updated:${M6($)}:${O(U)}`,workflowVisibilityDeadline:($,U)=>`wf-idx-deadline:${M6($)}:${O(U)}`,workflowVisibilityManifest:($)=>`wf-idx-manifest:${O($)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"};function Dh($){return $==="sleep"||$==="visibility-timeout"||$==="execution-deadline"||$==="delayed-start"||$==="schedule"||$==="terminal-cleanup"||$==="teardown"||$==="wait-condition"}function Lh($){return typeof $==="object"&&$!==null}function iB($,U){return typeof $[U]==="string"}function Vh($,U){let J=$[U];return typeof J==="number"&&Number.isFinite(J)}function Pj($){return Lh($)&&iB($,"id")&&iB($,"workflowId")&&Vh($,"fireAt")&&Dh($.kind)}function Q$($){let U={...$,fireAt:R$($.fireAt,"Timer fireAt")};if(U.kind==="terminal-cleanup")return[{type:"put",key:F.terminalCleanup(U.fireAt,U.id),value:M(U.workflowId)}];if(U.kind==="teardown")return[{type:"put",key:F.teardownTimer(U.fireAt,U.id),value:M(U.workflowId)}];let J=U.kind==="delayed-start"?F.delayedStart(U.fireAt,U.workflowId):U.kind==="schedule"?F.scheduleTick(U.fireAt,U.workflowId):F.deadline(U.fireAt,U.id),G=[{type:"put",key:J,value:M(U)}];return G.push({type:"put",key:`timer-idx:${U.id}`,value:M(J)}),G}function Fh($,U){if($.entry.fireAt!==U.entry.fireAt)return $.entry.fireAt-U.entry.fireAt;return $.key.localeCompare(U.key)}async function DG($,U){while(!0){let J=await $.next();if(J.done)return null;let[G,X]=J.value,Q=N(X);if(!Pj(Q)){console.error(`Corrupted timer entry at ${G}: removing`),await U.delete(G);continue}return{key:G,entry:Q}}}async function nB($,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:d6(Z.slice(_+1)),L=N(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 rB($,U){return nB($,U,"terminal-cleanup")}async function oB($,U){return nB($,U,"teardown")}async function LG($,U){$.next=await $.readNext($.iterator,U)}function sB($){let U;for(let J of $){if(J.next===null)continue;if(U===void 0||Fh(J.next,U.next)<0)U=J}return U}function aB($){return $.kind!=="schedule"&&$.kind!=="terminal-cleanup"&&$.kind!=="teardown"}var e2=1000;class VG{#$;#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(Q$($))}async cancel($,U){let J=`timer-idx:${$}`,G=await this.#$.get(J);if(G===null)return;let X=N(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.#L(this.#_(J)),X=[];for(let Q of G)await LG(Q,this.#$);while(this.#V(G)){let Q=sB(G),Z=Q?.next;if(!Z||!Q)break;if(U&&this.#Z)break;if(await this.#H(Z,X)==="retry"){await LG(Q,this.#$);continue}await LG(Q,this.#$)}await this.#D(X)}#_($){return{deadline:this.#$.scan("wf-deadline:",{lt:J$(F.deadline($,"")),limit:e2}),delayedStart:this.#$.scan("wf-delayed:",{lt:J$(F.delayedStart($,"")),limit:e2}),schedule:this.#$.scan("schedule-due:",{lt:J$(F.scheduleTick($,"")),limit:e2}),terminalCleanup:this.#$.scan("wf-cleanup:",{lt:J$(F.terminalCleanup($,"")),limit:e2}),teardown:this.#$.scan("wf-teardown:",{lt:J$(F.teardownTimer($,"")),limit:e2})}}#L($){return[{iterator:$.deadline[Symbol.asyncIterator](),next:null,readNext:DG},{iterator:$.delayedStart[Symbol.asyncIterator](),next:null,readNext:DG},{iterator:$.schedule[Symbol.asyncIterator](),next:null,readNext:DG},{iterator:$.terminalCleanup[Symbol.asyncIterator](),next:null,readNext:rB},{iterator:$.teardown[Symbol.asyncIterator](),next:null,readNext:oB}]}#V($){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.#F($))}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#F($){let U=[{type:"delete",key:$.key}],J=await this.#z($);if(J)U.push(J);return U}async#z($){let U=`timer-idx:${$.entry.id}`;if($.entry.kind==="schedule")return this.#P($,U);return aB($.entry)?{type:"delete",key:U}:null}async#P($,U){let J=await this.#$.get(U);if(J===null)return null;let G=N(J);return typeof G!=="string"||G===$.key?{type:"delete",key:U}:null}[Symbol.dispose](){this.stop()}}function zh($){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 tB($,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(zh($))throw Error(`${U} must not contain control characters`)}var eB=32,$P=128,UP=117,JP=new TextEncoder,Bh="Provide only one of startAt or startAfter";class f extends v{constructor($){super("StartWorkflowValidationError",$)}}var FG=($,U)=>{if($!==void 0&&U!==void 0)throw new f(Bh)},M4=($,U)=>{if(typeof $!=="string")throw new f(`${U} must be a string`);try{return tB($,U),$}catch(J){let G=J instanceof Error?J.message:String(J);throw new f(G)}},GP=($,U)=>{if(typeof $!=="string")throw new f(`${U} must be a string`);return zG($,U)},zG=($,U)=>{if($.length===0)throw new f(`${U} must not be empty`);if(JP.encode($).byteLength>UP)throw new f(`${U} must be at most ${UP} UTF-8 bytes`);return $};function BG($){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 Kj($){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 PG($,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 KG($,U){if(typeof $!=="number"||!Number.isSafeInteger($)||$<0)throw new f(`${U} must be a non-negative integer millisecond timestamp`);return $}function $8($,U){try{return _$($)}catch{throw new f(`${U} must be a finite, non-negative number or a valid duration string`)}}function Wj($,U){if(typeof $!=="number"&&typeof $!=="string")throw new f(`${U} must be a finite, non-negative number or valid duration string`);return $8($,U),$}function Mj($,U){if($.length>eB)throw new f(`${U} must contain at most ${eB} tags`)}function D$($,U){if(!Array.isArray($))throw new f(`${U} must be an array of strings`);Mj($,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(JP.encode(G).byteLength>$P)throw new f(`${U} tags must be at most ${$P} UTF-8 bytes each`);J.push(G)}return J}var y$=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 Ph($){return $.data.issues.map((U)=>{let J=U.path.join(".");return J.length>0?`${J}: ${U.message}`:U.message}).join("; ")}function q6($){if($.code==="InvalidParams")return new Response(JSON.stringify({error:Ph($)}),{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:y$[$.code],headers:{"Content-Type":"application/json"}})}var XP=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 j$($,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 j$("Internal server error",500);let U=y$[$.code],J=Kh($.data);if(J===void 0)return j$($.message,U);return new Response(JSON.stringify({error:$.message,weftCode:J}),{status:U,headers:{"Content-Type":"application/json"}})}function Kh($){if(typeof $!=="object"||$===null||!("weftCode"in $))return;return VV($.weftCode)?$.weftCode:void 0}function q($){a2($.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:Wh($.parameterizedAccess)},...$.producibleFaults===void 0?{}:{producibleFaults:[...$.producibleFaults]},...$.discoverable===void 0?{}:{discoverable:$.discoverable},access:QP($.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 Wh($){return{discriminator:$.discriminator,...$.defaultValue===void 0?{}:{defaultValue:$.defaultValue},variants:$.variants.map((U)=>({value:U.value,access:QP(U.access)}))}}function QP($){if($.kind==="scoped")return{kind:"scoped",scopes:qj($.scopes)};if($.kind==="scopedAlternatives")return{kind:"scopedAlternatives",alternatives:$.alternatives.map(qj)};if($.kind==="optionalAuth")return{kind:"optionalAuth",authenticatedScopes:qj($.authenticatedScopes)};return{...$}}function qj($){return{kind:$.kind,scopes:[...$.scopes]}}var Mh=/^(0|[1-9]\d*)$/;function YP($){return{code:"PayloadTooLarge",message:"Payload Too Large",data:{maxBytes:$}}}function ZP(){return{code:"InvalidParams",message:"Invalid Content-Length header",data:{issues:[]}}}function qh($){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 Nh($,U){let J=$.headers.get("content-length");if(J===null)return;if(!Mh.test(J))throw ZP();let G=Number(J);if(!Number.isSafeInteger(G)||G<0)throw ZP();if(G>U)throw YP(U)}async function Oh($){try{await $.cancel()}catch{}}async function Nj($,U){let J=qh(U);Nh($,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 Oh(X),YP(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 q4($,U){return new TextDecoder("utf-8").decode(await Nj($,U))}async function H$($,U){return JSON.parse(await q4($,U))}var Ah=j.object({workflowId:j.string().min(1),tags:j.unknown().optional()}),Ch=j.object({ok:j.literal(!0)});function WG($){return q({name:$.name,mcpExposable:!1,summary:$.summary,tags:["Tags"],destructive:$.destructive,inputSchema:Ah,outputSchema:Ch,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=D$(U.tags,'Field "tags"')}catch(X){throw _P(jP(X))}try{return await $.mutateTags(J,U.workflowId,G),{ok:!0}}catch(X){throw Eh(X,U.workflowId)}}})}function MG($){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 H$(U,G).catch((Q)=>{if(t(Q))throw Q;throw Error("Invalid JSON body")});if(!xh(X))throw Error("Invalid JSON body");return{workflowId:J.id??"",tags:X.tags}},success:{kind:"json",status:200},shapeSuccess:Rh,shapeFault:Th}}function Rh($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}function Th($){if($.code==="Unprocessable")return j$($.message,400);return R($)}function Eh($,U){let J=jP($);if($ instanceof W4)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 _P(J);return{code:"EngineFailure",message:J,data:{}}}function _P($){return{code:"Unprocessable",message:$,data:{reason:$}}}function jP($){return $ instanceof Error?$.message:String($)}function xh($){return typeof $==="object"&&$!==null&&!Array.isArray($)}var Oj=WG({name:"weft.workflows.tags.add",summary:"Add workflow tags",destructive:!1,mutateTags:($,U,J)=>$.addTags(U,...J)}),HP=MG({method:"POST",operationName:Oj.name});var Sh=j.object({attribute:j.string().min(1)}).strict(),bh=j.union([j.literal("status"),j.literal("type"),j.literal("failureCategory"),Sh]),DP=1000,vh=1e4,LP=1e5,Aj=j.object({groupBy:bh,limit:j.number().int().min(1).max(vh).optional()}).strict();function gh($){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 qG 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 U8 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 VP($){let U=Aj.safeParse($??{});if(!U.success)throw new qG(U.error.issues.map(gh));let{groupBy:J,limit:G}=U.data;return{groupBy:J,...G!==void 0&&{limit:G}}}var J8=["application","timeout","cancellation","resource","system"],Ih=new Set(J8),hh=new Set(["ActivityScheduleToCloseTimeoutError","ActivityPerAttemptTimeoutError","MCPToolTimeoutError","ReviewTimeoutError","UpdateTimeoutError","WorkflowTimeoutError","TimeoutError"]),yh=Symbol.for("weft.failure-category.timeout"),mh=new Set(["AbortError","CancelledError","CancellationError","WorkflowCancelledError"]),kh=new Set(["QuotaExceededError","ResourceExhaustedError","OutOfMemoryError","StorageQuotaExceededError"]);function l6($){return Ih.has($)}function NG($){if(l6($))return $;return}function FP($){return[$]}function G8($,U={}){if(!($ instanceof Error))return"system";if(hh.has($.name))return"timeout";if(Object.prototype.hasOwnProperty.call($,yh))return"timeout";if(mh.has($.name))return"cancellation";if(kh.has($.name))return"resource";return U.defaultErrorCategory??"system"}function OG($){let U=Error($.error);if($.errorName!==void 0)U.name=$.errorName;return U}var fh=["pending","running","completed","failed","cancelled","timed-out","suspended"],uh=/^[A-Za-z0-9_-]+$/,zP=j.enum(fh),BP=j.enum(J8),Cj=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"}),X8=j.union([j.string(),j.number(),j.boolean(),j.date(),j.array(j.string())]),wh=j.object({key:j.union([j.string().min(1),j.any()]),value:X8.optional(),gt:X8.optional(),lt:X8.optional(),gte:X8.optional(),lte:X8.optional()}),Rj=j.object({status:j.union([zP,j.array(zP)]).optional(),type:j.string().min(1).optional(),tags:j.array(j.string()).optional(),attributes:j.array(wh).optional(),limit:j.number().int().min(1).max(1000).optional(),offset:j.number().int().min(0).optional(),idPrefix:j.string().min(1).regex(uh,"idPrefix must match [A-Za-z0-9_-]+").optional(),createdAt:Cj.optional(),updatedAt:Cj.optional(),executionDeadline:Cj.optional(),failureCategory:j.union([BP,j.array(BP).min(1)]).optional()}).strict();function ch($){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 nU 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 rU($){let U=Rj.safeParse($??{});if(!U.success)throw new nU(U.error.issues.map(ch));return U.data}var ph=new Uint8Array(0);function z$($){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 PP($){return Array.isArray($)&&$.every((U)=>typeof U==="string")}function oU($,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:F.tagIndex(Z,$)});for(let Z of Q)if(!X.has(Z))G.push({type:"put",key:F.tagIndex(Z,$),value:ph});return G}function KP($,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 U6=64;var dh=/(?: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 WP($){return dh.test($)}function lh($){if(!/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/.test($))return!1;return $.split(".").every((U)=>U.length>=6)}function ih($){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 nh($){let U=$.replaceAll(/[\s-]/g,"");return/^\d{13,19}$/.test(U)&&ih(U)}function MP($){let U=$.trim();if(/^(?:Bearer|Basic)\s+\S+/i.test(U))return"[REDACTED]";if(lh(U)||nh(U))return"[REDACTED]";return $}function i6($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function b1(){return{supported:!1}}function v1($){return{supported:!0,value:$}}function rh($){let U=Object.getPrototypeOf($);return U===Object.prototype||U===null}function oh($,U){let J={};for(let[G,X]of $){let Q=String(G);J[Q]=WP(Q)?"[REDACTED]":Q8(X,U)}return J}function sh($,U){let J={};for(let[G,X]of Object.entries($))J[G]=WP(G)?"[REDACTED]":Q8(X,U);return J}var ah=[($)=>$ instanceof Date?v1($.toISOString()):b1(),($)=>$ instanceof Error?v1({name:$.name,message:MP($.message)}):b1(),($)=>$ instanceof Uint8Array?v1(`[Uint8Array(${$.byteLength})]`):b1(),($,U)=>Array.isArray($)?v1($.map((J)=>Q8(J,U))):b1(),($,U)=>$ instanceof Set?v1([...$].map((J)=>Q8(J,U))):b1(),($,U)=>$ instanceof Map?v1(oh($,U)):b1(),($,U)=>rh($)?v1(sh($,U)):b1()];function th($,U){if(U.has($))return"[Circular]";U.add($);try{for(let J of ah){let G=J($,U);if(G.supported)return G.value}return Object.prototype.toString.call($)}finally{U.delete($)}}function Q8($,U){if(typeof $==="string")return MP($);if($===null||$===void 0||typeof $==="boolean"||typeof $==="number")return $;if(typeof $==="bigint"||typeof $==="symbol")return String($);if(typeof $==="function")return`[Function ${$.name||"anonymous"}]`;return th($,U)}function g1($){return Q8($,new WeakSet)}function qP($,U){if($===void 0)return"undefined";let J=g1($);if(typeof J==="string")return JSON.stringify(J);try{return JSON.stringify(J,null,U)??Object.prototype.toString.call(J)}catch{return"[unserializable]"}}var NP=1n<<63n,eh=(1n<<64n)-1n,OP=1024;function $y($){let U=new ArrayBuffer(8),J=new DataView(U);J.setFloat64(0,$);let G=J.getBigUint64(0);if(G&NP)G=G^eh;else G=G^NP;return G.toString(16).padStart(16,"0")}function M$($){let U;if(typeof $==="string")U=`s:${$}`;else if(typeof $==="number")U=`n:${$y($)}`;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 Tj($,U){let J=new TextEncoder().encode($).byteLength;if(J>OP)throw Error(`Encoded search attribute "${U}" exceeds the ${OP}-byte limit (got ${J} bytes). Reduce the value size before setting the attribute.`)}function l4($,U,J){let{type:G}=J;switch(G){case"string":Uy($,U,J);break;case"integer":Jy($,U);break;case"number":Gy($,U);break;case"boolean":Xy($,U);break;case"array":Qy($,U);break;default:throw Error(`Unknown search attribute type declaration: ${String(G)}`)}}function Uy($,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 Jy($,U){if(typeof U!=="number"||!Number.isInteger(U))throw Error(`Search attribute "${$}" is declared as "integer" but received ${typeof U}.`)}function Gy($,U){if(typeof U!=="number")throw Error(`Search attribute "${$}" is declared as "number" but received ${typeof U}.`)}function Xy($,U){if(typeof U!=="boolean")throw Error(`Search attribute "${$}" is declared as "boolean" but received ${typeof U}.`)}function Qy($,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 Zy($,U){if($ instanceof Date&&U instanceof Date)return $.getTime()===U.getTime();return $===U}var Yy=new Uint8Array(0);function q$($,U,J){let G=[],X=new Set([...Object.keys(U),...Object.keys(J)]);for(let Q of X)G.push(..._y(Q,$,U,J));return G}function _y($,U,J,G){let X=J[$],Q=G[$],Z=$ in J,Y=$ in G;if(Array.isArray(X)||Array.isArray(Q))return Hy({attributeName:$,workflowId:U,oldValue:X,newValue:Q,hadOld:Z,hasNew:Y});return jy({attributeName:$,workflowId:U,oldValue:X,newValue:Q,hadOld:Z,hasNew:Y})}function jy($){let{attributeName:U,workflowId:J,oldValue:G,newValue:X,hadOld:Q,hasNew:Z}=$;if(Q&&!Z)return[CG(U,G,J)];if(!Q&&Z)return[AG(U,X,J)];if(Q&&Z&&!Zy(G,X))return[CG(U,G,J),AG(U,X,J)];return[]}function AG($,U,J){return{type:"put",key:F.attributeIndex($,M$(U),J),value:Yy}}function CG($,U,J){return{type:"delete",key:F.attributeIndex($,M$(U),J)}}function Hy($){let{oldValue:U,newValue:J}=$;if(Array.isArray(U)&&Array.isArray(J))return Dy($.attributeName,U,J,$.workflowId);return[...Ly($.attributeName,$.hadOld?U:void 0,$.workflowId),...Vy($.attributeName,$.hasNew?J:void 0,$.workflowId)]}function Dy($,U,J,G){let X=[],Q=new Set(U),Z=new Set(J);for(let Y of Q)if(!Z.has(Y))X.push(CG($,Y,G));for(let Y of Z)if(!Q.has(Y))X.push(AG($,Y,G));return X}function Ly($,U,J){return AP(U).map((G)=>CG($,G,J))}function Vy($,U,J){return AP(U).map((G)=>AG($,G,J))}function AP($){if($===void 0)return[];return Array.isArray($)?$:[$]}var sU;function Ej(){return typeof(sU&&"bun"in sU?sU.bun:globalThis.Bun)<"u"}function Fy(){if(sU&&"process"in sU)return sU.process;return globalThis.process}function N4($){if(Ej())return Bun.sleep($);return new Promise((U)=>setTimeout(U,$))}var zy=0xcbf29ce484222325n,By=0x00000100000001b3n,Py=0xffffffffffffffffn;function CP($){let U=zy;for(let J=0;J<$.length;J++)U^=BigInt($[J]),U=U*By&Py;return U.toString(16).padStart(16,"0")}var Ky=new TextEncoder;function RG($){return CP($)}function TG($){return CP(Ky.encode($))}function RP($){let J=Fy()?.getBuiltinModule;if(typeof J!=="function")return;return J($)}function TP(){let $=RP("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 EP($){if(Ej())return new Uint8Array(Bun.gzipSync(new Uint8Array($)));return new Uint8Array(TP().gzipSync($))}function xP($){if(Ej())return new Uint8Array(Bun.gunzipSync(new Uint8Array($)));return new Uint8Array(TP().gunzipSync($))}function SP(){return RP("node:zlib")}var Z8="0000000000000000",I1=Object.freeze({sequence:-1,lastHash:Z8});function EG($){return RG($)}function O4($){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 Wy($){if(typeof $!=="object"||$===null)return!1;let U=$;return typeof U.sequence==="number"&&typeof U.lastHash==="string"}async function Y8($,U){let J=await $.get(F.eventHead(U));if(J===null)return{sequence:-1,lastHash:Z8};let G=N(J);if(Wy(G))return G;return{sequence:-1,lastHash:Z8}}var _8="__weftCheckpointReplay",xj=-1;function Ij($,U){let J=gP($),G=J.accumulatedResultReplayWatermark??xj,X=Sj(J.accumulatedResults,U),Q=Sj(J.workerReplaySignatures??[],U),Z=Sj(J.workerReplayFailures??[],U),Y=yj({accumulatedResults:vj(X,G),workerReplaySignatures:vj(Q,G),workerReplayFailures:vj(Z,G)}),_=qy(G,Y),H=bj(J.workerReplaySignatures??[],U),D=bj(J.workerReplayFailures??[],U),L={...J,accumulatedResults:bj(J.accumulatedResults,U),..._===xj?{}:{accumulatedResultReplayWatermark:_},...xG("workerReplaySignatures",H),...xG("workerReplayFailures",D)};if(_===xj)delete L.accumulatedResultReplayWatermark;if(H.length===0)delete L.workerReplaySignatures;if(D.length===0)delete L.workerReplayFailures;return{checkpoint:L,replayPayload:Y}}async function y1($,U,J){let G=[],X=tU(J);if(X!==void 0)G.push(X);let Q=await Ay($,U);if(Q!==void 0)G.push(Q);for await(let[,Z]of $.scan(F.eventPrefix(U))){let Y=N(Z);if(!O4(Y))continue;let _=Y,H=Oy(_.payload);if(H===void 0)continue;if(H>J.step)break;let D=tU(_.payload);if(D===void 0)continue;G.push(D)}return My(gP(J),G)}function My($,U){let J=new Map,G=new Map,X=new Map;for(let Q of U)Ny({accumulatedResults:J,workerReplaySignatures:G,workerReplayFailures:X},Q);return aU(J,$.accumulatedResults),aU(G,$.workerReplaySignatures??[]),aU(X,$.workerReplayFailures??[]),{...$,accumulatedResults:gj(J),...xG("workerReplaySignatures",gj(G)),...xG("workerReplayFailures",gj(X))}}function hj($,U){if(U===void 0)return $;return{...$,[_8]:U}}function bP($,U){return U===void 0?{step:$}:{step:$,[_8]:U}}function SG($,U){if($===void 0)return U;if(U===void 0)return $;return yj({accumulatedResults:[...$.accumulatedResults??[],...U.accumulatedResults??[]],workerReplaySignatures:[...$.workerReplaySignatures??[],...U.workerReplaySignatures??[]],workerReplayFailures:[...$.workerReplayFailures??[],...U.workerReplayFailures??[]]})}function tU($){if(!h1($))return;let U=$[_8];if(!h1(U))return;return IP(U)}function vP($){let{[_8]:U,...J}=$;return J}function yj($){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 qy($,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 Sj($,U){return $.filter(([J])=>J<U)}function bj($,U){return $.filter(([J])=>J>=U)}function vj($,U){return $.filter(([J])=>J>U)}function xG($,U){return U.length===0?{}:{[$]:U}}function gP($){let U=$,{[_8]:J,...G}=U;return G}function gj($){return[...$.entries()].toSorted(([U],[J])=>U-J)}function aU($,U){for(let[J,G]of U)$.set(J,G)}function Ny($,U){aU($.accumulatedResults,U.accumulatedResults??[]),aU($.workerReplaySignatures,U.workerReplaySignatures??[]),aU($.workerReplayFailures,U.workerReplayFailures??[])}function Oy($){if(!h1($))return;let U=$.step;return typeof U==="number"&&Number.isSafeInteger(U)&&U>=0?U:void 0}function IP($){let U=Cy($.accumulatedResults),J=Ry($.workerReplaySignatures),G=Ty($.workerReplayFailures);return yj({...U===void 0?{}:{accumulatedResults:U},...J===void 0?{}:{workerReplaySignatures:J},...G===void 0?{}:{workerReplayFailures:G}})}async function Ay($,U){let J=await $.get(F.eventWatermark(U));if(J===null)return;let G=N(J);if(!h1(G))return;let X=G.checkpointReplay;return h1(X)?IP(X):void 0}function Cy($){if(!Array.isArray($))return;let U=[];for(let J of $){if(!Array.isArray(J)||J.length!==2||!bG(J[0]))continue;U.push([J[0],J[1]])}return U}function Ry($){if(!Array.isArray($))return;let U=[];for(let J of $){if(!Array.isArray(J)||J.length!==2||!bG(J[0]))continue;if(!Ey(J[1]))continue;U.push([J[0],J[1]])}return U}function Ty($){if(!Array.isArray($))return;let U=[];for(let J of $){if(!Array.isArray(J)||J.length!==2||!bG(J[0]))continue;if(!xy(J[1]))continue;U.push([J[0],J[1]])}return U}function h1($){return typeof $==="object"&&$!==null}function bG($){return typeof $==="number"&&Number.isSafeInteger($)&&$>=0}function Ey($){if(!h1($))return!1;return $.format===GG&&typeof $.operationType==="string"&&typeof $.stableFieldsDigest==="string"&&bG($.stableFieldsByteLength)}function xy($){if(!h1($))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 yP($,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=Sy($.toolVersions??[],U.toolVersions??[]);if(Q.length>0)J.toolVersions=Q;return J}function mP($){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 rz($){return{serialize(){let U=$?.snapshot()??{};return QI(U)}}}function oz($){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 ZI=new Set(["http","https"]),YI=/^(?:[A-Za-z0-9._-]+(?::\d+)?|\[[0-9A-Fa-f:.]+\](?::\d+)?)$/,_I="[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 jI(){let $=!1;return{warn(){if($)return;$=!0,console.warn(_I)},reset(){$=!1}}}var HI=jI();function sz(){HI.warn()}function az($){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&&ZI.has(J.toLowerCase())?J.toLowerCase():"https",X=U!==null&&YI.test(U)?U:"localhost";return`${G}://${X}`}var w4="0.6.0";function yU($){return JSON.stringify(Gj($))}function Gj($){if($===null||typeof $!=="object")return $;if(Array.isArray($))return $.map(Gj);let U={};for(let[J,G]of Object.entries($).toSorted(([X],[Q])=>X<Q?-1:X>Q?1:0))U[J]=Gj(G);return U}function F$($,U){return $<U?-1:$>U?1:0}function q1($){if(l2($))return $;return{}}function d2($){let U=JSON.parse(yU($));return q1(U)}function l2($){return $!==null&&typeof $==="object"&&!Array.isArray($)}function N1($){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 JG=[{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 i2($){return $.replace(/:([^/]+)/g,"{$1}")}function DI($){return $.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function tz($){let U=$.split("/").map((J)=>{if(J===":step")return"(\\d+)";if(J.startsWith(":"))return"([^/]+)";return DI(J)}).join("/");return new RegExp(`^${U}$`)}var n2="2.0",LI="weft.events.deliver",VI="weft.events.terminated",FI="weft.workflows.events",zI="weft.workflows.subscribe",BI="weft.workflows.unsubscribe",Xj={oneOf:[{type:"string"},{type:"number"},{type:"null"}]},PI={enum:["client-unsubscribed","server-closed","validation-failed"],type:"string"};function $B($){let U=Qj($);return{address:N1("/jsonrpc"),bindings:{ws:{method:"GET"}},description:`JSON-RPC WebSocket subscription channel for ${$.name}.`,messages:ZB(U),title:$.summary,"x-weft-operation-name":$.name,"x-weft-transport":"json-rpc-websocket"}}function UB($,U){let J=Zj($);return{address:U!==void 0?N1(U):`/x-weft-unbound/${$.name.replaceAll(".","/")}`,description:`Server-Sent Events stream channel for ${$.name}. Responses use text/event-stream; charset=utf-8.`,messages:ZB(J),title:$.summary,"x-weft-operation-name":$.name,"x-weft-transport":"server-sent-events"}}function JB($,U){let J=Qj($),G=U($.inputSchema),X=U($.outputSchema,"output"),Q=YB($,U);return{[J.subscribeRequest]:{name:J.subscribeRequest,contentType:"application/json",payload:ez(KI($),G),summary:`Subscribe to ${$.name}.`},[J.subscribeAck]:{name:J.subscribeAck,contentType:"application/json",payload:WI(X),summary:`Subscription acknowledgement for ${$.name}.`},[J.eventDeliver]:{name:J.eventDeliver,contentType:"application/json",payload:MI(Q),summary:`Event delivery notification for ${$.name}.`},[J.unsubscribeRequest]:{name:J.unsubscribeRequest,contentType:"application/json",payload:ez(BI,{additionalProperties:!1,properties:{subscriptionId:{type:"string"}},required:["subscriptionId"],type:"object"}),summary:`Unsubscribe from ${$.name}.`},[J.terminated]:{name:J.terminated,contentType:"application/json",payload:qI(),summary:`Subscription termination notification for ${$.name}.`},[J.errorFrame]:{name:J.errorFrame,contentType:"application/json",payload:NI(),summary:`JSON-RPC error response for ${$.name}.`}}}function GB($,U){let J=Zj($),G=YB($,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 XB($,U,J){let G=J==="subscription"?Object.values(Qj($)):Object.values(Zj($));return{action:"receive",channel:{$ref:`#/channels/${OI(U)}`},messages:G.map((X)=>({$ref:`#/components/messages/${X}`})),operationId:$.name.replaceAll(".","_"),summary:$.summary,tags:[...$.tags].toSorted().map((X)=>({name:X}))}}function QB($){return $.name.replaceAll(".","_")}function KI($){return $.name===FI?zI:$.name}function Qj($){let U=QB($);return{subscribeRequest:`${U}_subscribeRequest`,subscribeAck:`${U}_subscribeAck`,eventDeliver:`${U}_eventDeliver`,unsubscribeRequest:`${U}_unsubscribeRequest`,terminated:`${U}_terminated`,errorFrame:`${U}_errorFrame`}}function Zj($){let U=QB($);return{tokenEvent:`${U}_tokenEvent`,doneEvent:`${U}_doneEvent`,errorEvent:`${U}_errorEvent`}}function ZB($){let U={};for(let[J,G]of Object.entries($).toSorted(([X],[Q])=>F$(X,Q)))U[J]={$ref:`#/components/messages/${G}`};return U}function ez($,U){return{additionalProperties:!1,properties:{id:Xj,jsonrpc:{const:n2,type:"string"},method:{const:$,type:"string"},params:U},required:["jsonrpc","id","method","params"],type:"object"}}function WI($){return{additionalProperties:!1,properties:{id:Xj,jsonrpc:{const:n2,type:"string"},result:$},required:["jsonrpc","id","result"],type:"object"}}function MI($){return{additionalProperties:!1,properties:{jsonrpc:{const:n2,type:"string"},method:{const:LI,type:"string"},params:{additionalProperties:!1,properties:{envelope:$,subscriptionId:{type:"string"}},required:["subscriptionId","envelope"],type:"object"}},required:["jsonrpc","method","params"],type:"object"}}function qI(){return{additionalProperties:!1,properties:{jsonrpc:{const:n2,type:"string"},method:{const:VI,type:"string"},params:{additionalProperties:!1,properties:{fault:{type:"object"},reason:PI,subscriptionId:{type:"string"}},required:["subscriptionId","reason"],type:"object"}},required:["jsonrpc","method","params"],type:"object"}}function NI(){return{additionalProperties:!1,properties:{error:{$ref:"#/components/schemas/JsonRpcError"},id:Xj,jsonrpc:{const:n2,type:"string"}},required:["jsonrpc","id","error"],type:"object"}}function YB($,U){if($.eventSchema===void 0)return{type:"object"};return U($.eventSchema,"output")}function OI($){return $.replaceAll("~","~0").replaceAll("/","~1")}function c4($){if($.access.kind==="public")return!0;return $.discoverable===!0}function mU($,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 AI=/^[A-Za-z_][A-Za-z0-9_-]*$/,Yj="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 kU($,U){if(typeof $!=="string"||$.length===0)throw Error(`${U} name must be a non-empty string — ${Yj}`);if($.includes("."))throw Error(`${U} name "${$}" contains '.', which is reserved for qualified activity names. ${Yj}`);if(!AI.test($))throw Error(`${U} name "${$}" is invalid — ${Yj}`)}function _B($){let U=typeof $==="function"?{name:$.name,execute:$}:$;if(!U.name)throw Error("activity() requires a named function or an options object with name.");kU(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 O1=200,r2=256;var GG="weft-worker-operation-signature-v1",fU=2;class XG 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 jB=300000,HB=1000;function CI($){let U=TI($);if(U===void 0)return!1;if(typeof U.validate==="function")return!0;return EI(U.jsonSchema)}function p4($,U){if(CI($))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: ${RI($)}.`)}function RI($){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 TI($){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 EI($){if($===null||typeof $!=="object")return!1;return typeof $.input==="function"&&typeof $.output==="function"}var QG="history-circuit-breaker";function r$($){return typeof $==="string"?$:$.name}var DB={maxAttempts:3,initialBackoff:1000,backoffMultiplier:2,maxBackoff:30000};function A$($){return typeof $==="string"?$:$.name}function LB($){return _j($,new WeakMap)}function _j($,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(_j(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]=_j($[Z],U);return Q}function xI($,U){let J=U;return{...SI(J),...bI($,J),...vI(J)}}function SI($){return{...typeof $.description==="string"?{description:$.description}:{},...Array.isArray($.tags)&&$.tags.every((U)=>typeof U==="string")?{tags:[...$.tags]}:{}}}function bI($,U){return{..."inputSchema"in U?{inputSchema:p4(U.inputSchema,`activity definition "${$}".inputSchema`)}:{},..."outputSchema"in U?{outputSchema:p4(U.outputSchema,`activity definition "${$}".outputSchema`)}:{}}}function vI($){return{...typeof $.queue==="string"?{queue:$.queue}:{},...gI($.retry)?{retry:$.retry}:{},...typeof $.timeout==="string"||typeof $.timeout==="number"?{timeout:$.timeout}:{},...typeof $.idempotent==="boolean"?{idempotent:$.idempotent}:{}}}function gI($){return typeof $==="object"&&$!==null}function VB($){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:FB($.retry)},...$.timeout===void 0?{}:{timeout:$.timeout},...$.idempotent===void 0?{}:{idempotent:$.idempotent}}}function FB($){return{...$,...$.nonRetryableErrors===void 0?{}:{nonRetryableErrors:[...$.nonRetryableErrors]}}}function II($,U,J){let G=J?.inputSchema===void 0?U.inputSchema:p4(J.inputSchema,`activity registration "${$}".inputSchema`),X=J?.outputSchema===void 0?U.outputSchema:p4(J.outputSchema,`activity registration "${$}".outputSchema`);return{...G===void 0?{}:{inputSchema:G},...X===void 0?{}:{outputSchema:X}}}function uU($,U){return $??U}function hI($,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=FB(U.retry);if(U.timeout!==void 0)$.timeout=U.timeout;if(U.idempotent!==void 0)$.idempotent=U.idempotent}function o2($,U,J){if(J!==void 0)$[U]=J}function yI($,U,J){let G={...II($,U,J)};return o2(G,"description",uU(J?.description,U.description)),o2(G,"tags",uU(J?.tags,U.tags)),o2(G,"retry",uU(J?.retry,U.retry)),o2(G,"timeout",uU(J?.timeout,U.timeout)),o2(G,"idempotent",uU(J?.idempotent,U.idempotent)),G}function mI($,U,J){let G={name:$,queue:uU(J?.queue,U.queue)??"default"};return hI(G,yI($,U,J)),G}class s2{#$;#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){kU($,"activity");let G=this.#J.get($);if(G&&G!==U)this.#G(G,$);let X=xI($,U),Q=mI($,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:VB(U)}getMetadataByName($){return this.getDefinition($)}getDefinition($){let U=this.#U.get($);return U===void 0?void 0:VB(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 A1 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 C1=1,jj="weft:schema-version";class C$ extends v{workflowId;constructor($){super("WorkflowAlreadyExistsError",`Workflow with id "${$}" already exists`);this.workflowId=$}}class ZG 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 d4 extends v{constructor(){super("BulkDeleteRequiresTerminalWorkflowsError","Bulk delete matches non-terminal workflows")}}class d$ extends v{constructor(){super("BulkOperationConfirmationError","Bulk confirmation token does not match the current dry-run scope")}}var zB=20,kI=10;function fI($){let U=$.slice(0,kI),J=$.length-U.length;return J>0?`${U.join(", ")} (+${J} more)`:U.join(", ")}class wU 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=fI(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,zB).map((Q)=>({...Q})),this.missingWorkflowCount=U,this.samplesTruncated=U>zB}}class cU 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 p6 extends v{constructor(){super("EngineDisposedError","Engine was disposed before the workflow completed")}}class W4 extends v{workflowId;constructor($){super("WorkflowNotFoundError",`Workflow "${$}" not found`);this.workflowId=$}}class $6 extends v{workflowType;constructor($){super("WorkflowNotRegisteredError",`No workflow registered with name "${$}"`);this.workflowType=$}}class YG 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 pU extends v{constructor($){super("WorkflowSuspendNotSupportedError",$)}}class _G 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 dU 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 P6 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 BB=["http-rest","jsonRpcHttp","jsonRpcWebSocket","jsonRpcStdio"],R1=new Set(["__proto__","prototype","constructor"]);function PB($){return $==="http-rest"?"http":"jsonRpc"}function Hj($){switch($){case"http-rest":return"http";case"jsonRpcHttp":return"jsonRpcHttp";case"jsonRpcWebSocket":return"jsonRpcWebSocket";case"jsonRpcStdio":return"jsonRpcStdio"}}function KB($){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)=>!R1.has(U)))}function WB($,U){let J=Object.create(null);for(let G of Object.keys($)){if(R1.has(G))continue;if(U.has(G))J[G]=$[G]}return J}function MB($){return $.map((U)=>({path:U.path.map((J)=>typeof J==="string"||typeof J==="number"?J:String(J)),message:U.message,code:U.code}))}var uI=new Set(["Unauthorized","Forbidden","InvalidParams","EngineFailure"]);function qB($,U){if(lI($)){try{cI(U,$.code)}catch(J){if(wI(J))return{code:"EngineFailure",message:J.message,data:{}};throw J}return $}if($ instanceof C$)return{code:"Conflict",message:"conflict",data:{reason:"resource already exists"}};if($ instanceof $6)return{code:"InvalidParams",message:$.message,data:{issues:[]}};if($ instanceof W4)return{code:"NotFound",message:"not found",data:{resource:"workflow"}};if($ instanceof Error)return pI($);return{code:"EngineFailure",message:"internal error",data:{}}}class Dj 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 wI($){return $ instanceof Dj}function cI($,U){if($===void 0)return;if(uI.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 Dj($.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 pI($){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 dI={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 lI($){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(dI,U)}function NB($,U){switch($.kind){case"public":return{allowed:!0};case"authenticated":if(B6(U))return{allowed:!0};return{allowed:!1,classification:"unauthorized",reason:"authentication required"};case"scoped":if(!B6(U))return{allowed:!1,classification:"unauthorized",reason:"authentication required"};return Lj($.scopes,U.scopes);case"scopedAlternatives":if(!B6(U))return{allowed:!1,classification:"unauthorized",reason:"authentication required"};return iI($.alternatives,U.scopes);case"optionalAuth":if(!B6(U))return{allowed:!0};return Lj($.authenticatedScopes,U.scopes);default:return OB($)}}function OB($){throw Error(`authorization received a discriminated value with unknown kind: ${String($.kind)}`)}function Lj($,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 OB($)}}function iI($,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=Lj(G,U);if(X.allowed)return{allowed:!0};J.push(X.reason)}return{allowed:!1,classification:"forbidden",reason:`requires one of: ${J.join("; ")}`}}function AB($,U){if($.transports[Hj(U.transport)])return null;let J=BB.filter((G)=>$.transports[Hj(G)]);return T1({code:"UnsupportedTransport",message:`operation "${$.name}" does not support transport "${U.transport}"`,data:{transport:U.transport,supported:J}})}function CB($,U){let J=NB($.access,U.principal);if(J.allowed)return null;if(J.classification==="unauthorized")return T1({code:"Unauthorized",message:J.reason,data:{reason:J.reason}});return T1({code:"Forbidden",message:J.reason,data:{reason:J.reason}})}async function RB($,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 T1({code:"EngineFailure",message:"internal error",data:{}})}if(!tI(G))return T1({code:"EngineFailure",message:"internal error",data:{}});if(!G.allowed){if(G.classification==="unauthorized")return T1({code:"Unauthorized",message:G.reason,data:{reason:G.reason}});return T1({code:"Forbidden",message:G.reason,data:{reason:G.reason}})}return null}function TB($,U,J,G){let X=$.unknownKeyPolicy[J],Q=nI($);if(Q.kind==="failure")return Q;let Z=rI(U,X,Q.keys);if(Z.kind==="failure")return Z;let Y=aI($.inputSchema,Z.input);if(Y.kind==="failure")return Y;K6(G,"parsed");let _=Y.input;if(X!=="passthrough")return K6(G,"unknown-key-policy-applied"),{kind:"ok",input:_};let H=sI(_,Z.passthroughExtras);return K6(G,"unknown-key-policy-applied"),{kind:"ok",input:H}}function K6($,U){if($===void 0)return;$(U)}function nI($){try{return{kind:"ok",keys:KB($.inputSchema)}}catch{return{kind:"failure",fault:{code:"EngineFailure",message:"internal error",data:{}}}}}function rI($,U,J){if(!l2($))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:WB(G,J),passthroughExtras:oI(G,X,U)}}function oI($,U,J){if(J!=="passthrough")return[];return U.filter((G)=>!R1.has(G)).map((G)=>[G,$[G]])}function sI($,U){let J=Object.create(null);for(let[G,X]of Object.entries($)){if(R1.has(G))continue;J[G]=X}for(let[G,X]of U){if(G in J)continue;J[G]=X}return J}function aI($,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:MB(J.error.issues)}}};return{kind:"ok",input:J.data}}function tI($){if(typeof $!=="object"||$===null)return!1;let U=Vj($,"allowed");if(!U.ok)return!1;if(U.value===!0)return!0;if(U.value!==!1)return!1;let J=Vj($,"reason");if(!J.ok||typeof J.value!=="string")return!1;let G=Vj($,"classification");if(!G.ok)return!1;return eI(G.value)}function Vj($,U){try{return{ok:!0,value:$[U]}}catch{return{ok:!1}}}function eI($){return $===void 0||$==="unauthorized"||$==="forbidden"}function T1($){return{ok:!1,fault:$}}function EB($,U){let J=U.registry.get($);if(J===void 0)return E1({code:"MethodNotFound",message:`unknown operation: ${$}`,data:{method:$}});return K6(U.pipelineTrace,"looked-up"),{ok:!0,value:J}}async function xB($,U,J){let G=J.pipelineTrace,X=AB($,J);if(X!==null)return X;K6(G,"transport-checked");let Q=CB($,J);if(Q!==null)return Q;K6(G,"access-checked");let Z=TB($,U,PB(J.transport),G);if(Z.kind==="failure")return E1(Z.fault);let Y=await RB($,Z.input,J);if(Y!==null)return Y;return K6(G,"authorized"),{ok:!0,value:{input:Z.input}}}function SB($,U){let J;try{J=$.safeParse(U)}catch{return E1({code:"EngineFailure",message:"internal error",data:{}})}if(!J.success)return E1({code:"EngineFailure",message:"internal error",data:{}});return{ok:!0,value:J.data}}function E1($){return{ok:!1,fault:$}}async function Fj($,U,J){let G=EB($,J);if(!G.ok)return G;let X=G.value,Q=X.kind??"unary";if(Q==="subscription"||Q==="stream"&&J.transport!=="http-rest")return E1({code:"Unprocessable",message:`operation "${X.name}" is not unary`,data:{reason:`operation kind is "${Q}"`}});let Z=await xB(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 E1(qB(H,X))}K6(J.pipelineTrace,"invoked");let _=SB(X.outputSchema,Y);if(_.ok)K6(J.pipelineTrace,"output-validated");return _}var lU=new Set(["Unauthorized","Forbidden","InvalidParams","EngineFailure"]);function W6($,U){let J=new Set([...lU,...$.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 bB=/^weft\.[a-z][a-z0-9]*(?:\.[a-z][a-z0-9]*)+$/;function a2($){if(!bB.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 vB($){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 $h($){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:vB(U.access)})))})}function Uh($){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 Jh($){let U=Uh($),G=Object.keys(U.shape).filter((X)=>R1.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 Gh($){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 Xh($){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 Qh($){if(!$.mcpExposable)return;if($.mcpTool===void 0)throw Error(`operation "${$.name}" is mcpExposable but does not declare mcpTool.workflowType metadata`)}function Zh($){return Object.freeze({...$,tags:Object.freeze([...$.tags]),...$.producibleFaults===void 0?{}:{producibleFaults:Object.freeze([...$.producibleFaults])},access:vB($.access),...$.parameterizedAccess===void 0?{}:{parameterizedAccess:$h($.parameterizedAccess)},...$.mcpTool===void 0?{}:{mcpTool:Object.freeze({workflowType:$.mcpTool.workflowType})},transports:Object.freeze({...$.transports}),unknownKeyPolicy:Object.freeze({...$.unknownKeyPolicy})})}function Bj($){let U=new Map;for(let G of $){if(U.has(G.name))throw Error(`duplicate operation name in registry: ${G.name}`);a2(G.name),Jh(G),Gh(G),Xh(G),Qh(G),U.set(G.name,Zh(G))}let J=Object.freeze([...U.values()]);return{get(G){return U.get(G)},list(){return J}}}var Yh=/^(\d+(?:\.\d+)?)\s*(ms|milliseconds?|s|seconds?|m|minutes?|h|hours?|d|days?)$/i,_h={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 gB($,U){if(!Number.isFinite($)||$<0)throw RangeError(`Duration must resolve to a finite, non-negative number of milliseconds, got: ${String(U)}`)}function R$($,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 _$($){if(typeof $==="number")return gB($,$),$;let U=Yh.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=_h[G];if(X===void 0)throw Error(`Unknown duration unit: "${G}"`);let Q=J*X;return gB(Q,$),Q}function jG($,U){let J=_$(U.initialBackoff),G=_$(U.maxBackoff),X=J*Math.pow(U.backoffMultiplier,$-1);return Math.min(X,G)}function X$($,U,J){if(!$.capabilities()[U])throw Error(`Feature "${J}" requires storage capability "${U}", but this storage backend does not provide it.`)}var IB="default";async function hB($,U){return await $.get(U)!==null}async function*t2($,U,J){for await(let[G]of $.scan(U,J))yield G}async function yB($,U){let J=0;for await(let G of t2($,U))J++;return J}async function mB($,U){let J=[];for await(let G of t2($,U))J.push({type:"delete",key:G});if(J.length===0)return 0;return await $.batch(J),J.length}async function kB($,U,J){let G=[];for await(let X of t2($,U,J))G.push({type:"delete",key:X});if(G.length===0)return 0;return await $.batch(G),G.length}var x1=1e4,uB=1e4;class wB extends Error{code="StorageBatchOperationLimitExceededError";cap=x1;count;target;constructor($,U){super(`${$} count ${U} exceeds MAX_BATCH_OPERATIONS (${x1}).`);this.name="StorageBatchOperationLimitExceededError",this.target=$,this.count=U}}function I$($,U){if(U>x1)throw new wB($,U)}function J$($){return $.length>0?$.slice(0,-1)+String.fromCharCode($.charCodeAt($.length-1)+1):"ÿ"}function S1($,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 iU($,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 h$($,U){if($.has)return $.has(U);return hB($,U)}function HG($,U,J){if($.keys)return $.keys(U,J);return t2($,U,J)}async function cB($,U){if($.count)return $.count(U);return yB($,U)}async function pB($,U){if($.deletePrefix)return $.deletePrefix(U);return mB($,U)}async function dB($,U){I$("batch operations",U.length),await $.batch(U)}async function $$($,U,J){if(I$("conditionalBatch conditions",U.length),I$("conditionalBatch operations",J.length),X$($,"conditionalBatch","storageConditionalBatch"),!$.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return $.conditionalBatch(U,J)}function O($){return encodeURIComponent($)}function lB($){return decodeURIComponent($)}function d6($){try{return decodeURIComponent($)}catch{return null}}var M6=($)=>String($).padStart(16,"0"),jh="0",Hh="1",fB=($,U,J,G)=>`sig:${O($)}:${O(U)}:${G}:${O(J)}`,F={workflow:($)=>`wf:${O($)}`,checkpoint:($)=>`wf:${O($)}:ckpt`,checkpointHistory:($,U)=>`wf:${O($)}:ckpt:${String(U).padStart(10,"0")}`,timelinePrefix:($)=>`wf:${O($)}:timeline:`,timeline:($,U)=>`wf:${O($)}:timeline:${String(U).padStart(10,"0")}`,schedule:($)=>`schedule:${O($)}`,scheduleTick:($,U)=>`schedule-due:${String($).padStart(16,"0")}:${O(U)}`,scheduleRun:($)=>`schedule-run:${O($)}`,operation:($,U,J)=>`op:${$}:${M6(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:${M6($)}:${O(U)}:${O(J)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:($,U)=>`op:resolved-by-time:${M6($)}:${O(U)}`,asyncActivity:($,U)=>`async-act:v1:${O($)}:${O(U)}`,activityReconciliationPrefix:($)=>`actrec:v1:${O($)}:`,activityReconciliation:($,U,J)=>`actrec:v1:${O($)}:${O(U)}:${J}`,eventPrefix:($)=>`ev:${O($)}:`,event:($,U)=>`ev:${O($)}:${String(U).padStart(10,"0")}`,eventHead:($)=>`ev:${O($)}:head`,eventWatermark:($)=>`ev:${O($)}:watermark`,fleetEventPrefix:()=>"fleet-event:",fleetEvent:($)=>`fleet-event:${String($).padStart(10,"0")}`,fleetEventTail:()=>"fleet-event-tail",fleetEventByWorkflowPrefix:($)=>`fleet-event-by-workflow:${O($)}:`,fleetEventByWorkflow:($,U)=>`fleet-event-by-workflow:${O($)}:${String(U).padStart(10,"0")}`,signal:($,U,J)=>fB($,U,J,Hh),startSignal:($,U,J)=>fB($,U,J,jh),signalSequence:($)=>`sigseq:v1:${O($)}`,signalAcceptedResponsePrefix:($)=>`sigres:v1:${O($)}:`,signalAcceptedResponse:($,U,J)=>`sigres:v1:${O($)}:${O(U)}:${O(J)}`,deadline:($,U)=>`wf-deadline:${M6($)}:${O(U)}`,terminalCleanup:($,U)=>`wf-cleanup:${M6($)}:${O(U)}`,teardownTimer:($,U)=>`wf-teardown:${M6($)}:${O(U)}`,delayedStart:($,U)=>`wf-delayed:${M6($)}:${O(U)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:($,U)=>`wf-terminal:${M6($)}:${O(U)}`,attribute:($)=>`attr:${O($)}`,attributeIndex:($,U,J)=>`idx:${$}:${U}:${O(J)}`,tagIndex:($,U)=>`tag:${O($)}:${O(U)}`,updatePrefix:($)=>`upd:${O($)}:`,update:($,U)=>`upd:${O($)}:${U}`,updateResponse:($)=>`upr:${$}`,updateIdempotency:($,U)=>`upk:${O($)}:${U}`,startIdempotency:($)=>`start-idem:${O($)}`,startIdempotencySignalId:($)=>`start-idem:${$}`,livenessPrefix:()=>"liveness:",liveness:($)=>`liveness:${O($)}`,leasePrefix:()=>"lease:",leaseEpoch:()=>"lease:epoch",leaseHolder:()=>"lease:holder",budget:($,U,J)=>`budget:${$}:${U}:${J}`,review:($,U)=>`review:${O($)}:${U}`,workflowHeaders:($)=>`wf-headers:${O($)}`,childCancellationPrefix:($)=>`child-cancel:${O($)}:`,childCancellation:($,U)=>`child-cancel:${O($)}:${O(U)}`,terminalCleanupNeeded:($)=>`wf-cleanup-needed:${O($)}`,workflowConcurrency:($,U)=>`wf-concurrency:${O($)}:${O(U)}`,workflowConcurrencyHolder:($)=>`wf-concurrency-holder:${O($)}`,workflowHasServices:($)=>`wf-has-services:${O($)}`,finalizerState:($)=>`wf-finalizer-state:${O($)}`,teardownOwed:($)=>`wf-teardown-needed:${O($)}`,teardownDeadLetter:($)=>`wf-teardown-deadletter:${O($)}`,offload:($,U)=>`offload:${O($)}:${U}`,archive:($,U)=>`archive:${O($)}:${U}`,stateExecution:($,U)=>`state:execution:${O($)}:${O(U)}`,stateWorkflow:($,U)=>`state:workflow-scope:${IB}:${O($)}:${O(U)}`,streamChunkPrefix:($,U)=>`blob:${O($)}:${U}:chunk:`,streamChunk:($,U,J)=>`blob:${O($)}:${U}:chunk:${String(J).padStart(10,"0")}`,streamTail:($,U)=>`blob:${O($)}:${U}:tail`,streamMetadata:($,U)=>`blob:${O($)}:${U}:meta`,budgetCharged:($)=>`budget-charged:${$}`,toolEffect:($,U,J)=>`tool-effect:${O($)}:${U}:${J}`,workflowVisibilityStatus:($,U)=>`wf-idx-status:${O($)}:${O(U)}`,workflowVisibilityType:($,U)=>`wf-idx-type:${O($)}:${O(U)}`,workflowVisibilityCreated:($,U)=>`wf-idx-created:${M6($)}:${O(U)}`,workflowVisibilityUpdated:($,U)=>`wf-idx-updated:${M6($)}:${O(U)}`,workflowVisibilityDeadline:($,U)=>`wf-idx-deadline:${M6($)}:${O(U)}`,workflowVisibilityManifest:($)=>`wf-idx-manifest:${O($)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"};function Dh($){return $==="sleep"||$==="visibility-timeout"||$==="execution-deadline"||$==="delayed-start"||$==="schedule"||$==="terminal-cleanup"||$==="teardown"||$==="wait-condition"}function Lh($){return typeof $==="object"&&$!==null}function iB($,U){return typeof $[U]==="string"}function Vh($,U){let J=$[U];return typeof J==="number"&&Number.isFinite(J)}function Pj($){return Lh($)&&iB($,"id")&&iB($,"workflowId")&&Vh($,"fireAt")&&Dh($.kind)}function Q$($){let U={...$,fireAt:R$($.fireAt,"Timer fireAt")};if(U.kind==="terminal-cleanup")return[{type:"put",key:F.terminalCleanup(U.fireAt,U.id),value:M(U.workflowId)}];if(U.kind==="teardown")return[{type:"put",key:F.teardownTimer(U.fireAt,U.id),value:M(U.workflowId)}];let J=U.kind==="delayed-start"?F.delayedStart(U.fireAt,U.workflowId):U.kind==="schedule"?F.scheduleTick(U.fireAt,U.workflowId):F.deadline(U.fireAt,U.id),G=[{type:"put",key:J,value:M(U)}];return G.push({type:"put",key:`timer-idx:${U.id}`,value:M(J)}),G}function Fh($,U){if($.entry.fireAt!==U.entry.fireAt)return $.entry.fireAt-U.entry.fireAt;return $.key.localeCompare(U.key)}async function DG($,U){while(!0){let J=await $.next();if(J.done)return null;let[G,X]=J.value,Q=N(X);if(!Pj(Q)){console.error(`Corrupted timer entry at ${G}: removing`),await U.delete(G);continue}return{key:G,entry:Q}}}async function nB($,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:d6(Z.slice(_+1)),L=N(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 rB($,U){return nB($,U,"terminal-cleanup")}async function oB($,U){return nB($,U,"teardown")}async function LG($,U){$.next=await $.readNext($.iterator,U)}function sB($){let U;for(let J of $){if(J.next===null)continue;if(U===void 0||Fh(J.next,U.next)<0)U=J}return U}function aB($){return $.kind!=="schedule"&&$.kind!=="terminal-cleanup"&&$.kind!=="teardown"}var e2=1000;class VG{#$;#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(Q$($))}async cancel($,U){let J=`timer-idx:${$}`,G=await this.#$.get(J);if(G===null)return;let X=N(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.#L(this.#_(J)),X=[];for(let Q of G)await LG(Q,this.#$);while(this.#V(G)){let Q=sB(G),Z=Q?.next;if(!Z||!Q)break;if(U&&this.#Z)break;if(await this.#H(Z,X)==="retry"){await LG(Q,this.#$);continue}await LG(Q,this.#$)}await this.#D(X)}#_($){return{deadline:this.#$.scan("wf-deadline:",{lt:J$(F.deadline($,"")),limit:e2}),delayedStart:this.#$.scan("wf-delayed:",{lt:J$(F.delayedStart($,"")),limit:e2}),schedule:this.#$.scan("schedule-due:",{lt:J$(F.scheduleTick($,"")),limit:e2}),terminalCleanup:this.#$.scan("wf-cleanup:",{lt:J$(F.terminalCleanup($,"")),limit:e2}),teardown:this.#$.scan("wf-teardown:",{lt:J$(F.teardownTimer($,"")),limit:e2})}}#L($){return[{iterator:$.deadline[Symbol.asyncIterator](),next:null,readNext:DG},{iterator:$.delayedStart[Symbol.asyncIterator](),next:null,readNext:DG},{iterator:$.schedule[Symbol.asyncIterator](),next:null,readNext:DG},{iterator:$.terminalCleanup[Symbol.asyncIterator](),next:null,readNext:rB},{iterator:$.teardown[Symbol.asyncIterator](),next:null,readNext:oB}]}#V($){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.#F($))}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#F($){let U=[{type:"delete",key:$.key}],J=await this.#z($);if(J)U.push(J);return U}async#z($){let U=`timer-idx:${$.entry.id}`;if($.entry.kind==="schedule")return this.#P($,U);return aB($.entry)?{type:"delete",key:U}:null}async#P($,U){let J=await this.#$.get(U);if(J===null)return null;let G=N(J);return typeof G!=="string"||G===$.key?{type:"delete",key:U}:null}[Symbol.dispose](){this.stop()}}function zh($){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 tB($,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(zh($))throw Error(`${U} must not contain control characters`)}var eB=32,$P=128,UP=117,JP=new TextEncoder,Bh="Provide only one of startAt or startAfter";class f extends v{constructor($){super("StartWorkflowValidationError",$)}}var FG=($,U)=>{if($!==void 0&&U!==void 0)throw new f(Bh)},M4=($,U)=>{if(typeof $!=="string")throw new f(`${U} must be a string`);try{return tB($,U),$}catch(J){let G=J instanceof Error?J.message:String(J);throw new f(G)}},GP=($,U)=>{if(typeof $!=="string")throw new f(`${U} must be a string`);return zG($,U)},zG=($,U)=>{if($.length===0)throw new f(`${U} must not be empty`);if(JP.encode($).byteLength>UP)throw new f(`${U} must be at most ${UP} UTF-8 bytes`);return $};function BG($){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 Kj($){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 PG($,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 KG($,U){if(typeof $!=="number"||!Number.isSafeInteger($)||$<0)throw new f(`${U} must be a non-negative integer millisecond timestamp`);return $}function $8($,U){try{return _$($)}catch{throw new f(`${U} must be a finite, non-negative number or a valid duration string`)}}function Wj($,U){if(typeof $!=="number"&&typeof $!=="string")throw new f(`${U} must be a finite, non-negative number or valid duration string`);return $8($,U),$}function Mj($,U){if($.length>eB)throw new f(`${U} must contain at most ${eB} tags`)}function D$($,U){if(!Array.isArray($))throw new f(`${U} must be an array of strings`);Mj($,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(JP.encode(G).byteLength>$P)throw new f(`${U} tags must be at most ${$P} UTF-8 bytes each`);J.push(G)}return J}var y$=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 Ph($){return $.data.issues.map((U)=>{let J=U.path.join(".");return J.length>0?`${J}: ${U.message}`:U.message}).join("; ")}function q6($){if($.code==="InvalidParams")return new Response(JSON.stringify({error:Ph($)}),{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:y$[$.code],headers:{"Content-Type":"application/json"}})}var XP=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 j$($,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 j$("Internal server error",500);let U=y$[$.code],J=Kh($.data);if(J===void 0)return j$($.message,U);return new Response(JSON.stringify({error:$.message,weftCode:J}),{status:U,headers:{"Content-Type":"application/json"}})}function Kh($){if(typeof $!=="object"||$===null||!("weftCode"in $))return;return VV($.weftCode)?$.weftCode:void 0}function q($){a2($.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:Wh($.parameterizedAccess)},...$.producibleFaults===void 0?{}:{producibleFaults:[...$.producibleFaults]},...$.discoverable===void 0?{}:{discoverable:$.discoverable},access:QP($.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 Wh($){return{discriminator:$.discriminator,...$.defaultValue===void 0?{}:{defaultValue:$.defaultValue},variants:$.variants.map((U)=>({value:U.value,access:QP(U.access)}))}}function QP($){if($.kind==="scoped")return{kind:"scoped",scopes:qj($.scopes)};if($.kind==="scopedAlternatives")return{kind:"scopedAlternatives",alternatives:$.alternatives.map(qj)};if($.kind==="optionalAuth")return{kind:"optionalAuth",authenticatedScopes:qj($.authenticatedScopes)};return{...$}}function qj($){return{kind:$.kind,scopes:[...$.scopes]}}var Mh=/^(0|[1-9]\d*)$/;function YP($){return{code:"PayloadTooLarge",message:"Payload Too Large",data:{maxBytes:$}}}function ZP(){return{code:"InvalidParams",message:"Invalid Content-Length header",data:{issues:[]}}}function qh($){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 Nh($,U){let J=$.headers.get("content-length");if(J===null)return;if(!Mh.test(J))throw ZP();let G=Number(J);if(!Number.isSafeInteger(G)||G<0)throw ZP();if(G>U)throw YP(U)}async function Oh($){try{await $.cancel()}catch{}}async function Nj($,U){let J=qh(U);Nh($,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 Oh(X),YP(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 q4($,U){return new TextDecoder("utf-8").decode(await Nj($,U))}async function H$($,U){return JSON.parse(await q4($,U))}var Ah=j.object({workflowId:j.string().min(1),tags:j.unknown().optional()}),Ch=j.object({ok:j.literal(!0)});function WG($){return q({name:$.name,mcpExposable:!1,summary:$.summary,tags:["Tags"],destructive:$.destructive,inputSchema:Ah,outputSchema:Ch,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=D$(U.tags,'Field "tags"')}catch(X){throw _P(jP(X))}try{return await $.mutateTags(J,U.workflowId,G),{ok:!0}}catch(X){throw Eh(X,U.workflowId)}}})}function MG($){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 H$(U,G).catch((Q)=>{if(t(Q))throw Q;throw Error("Invalid JSON body")});if(!xh(X))throw Error("Invalid JSON body");return{workflowId:J.id??"",tags:X.tags}},success:{kind:"json",status:200},shapeSuccess:Rh,shapeFault:Th}}function Rh($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}function Th($){if($.code==="Unprocessable")return j$($.message,400);return R($)}function Eh($,U){let J=jP($);if($ instanceof W4)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 _P(J);return{code:"EngineFailure",message:J,data:{}}}function _P($){return{code:"Unprocessable",message:$,data:{reason:$}}}function jP($){return $ instanceof Error?$.message:String($)}function xh($){return typeof $==="object"&&$!==null&&!Array.isArray($)}var Oj=WG({name:"weft.workflows.tags.add",summary:"Add workflow tags",destructive:!1,mutateTags:($,U,J)=>$.addTags(U,...J)}),HP=MG({method:"POST",operationName:Oj.name});var Sh=j.object({attribute:j.string().min(1)}).strict(),bh=j.union([j.literal("status"),j.literal("type"),j.literal("failureCategory"),Sh]),DP=1000,vh=1e4,LP=1e5,Aj=j.object({groupBy:bh,limit:j.number().int().min(1).max(vh).optional()}).strict();function gh($){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 qG 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 U8 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 VP($){let U=Aj.safeParse($??{});if(!U.success)throw new qG(U.error.issues.map(gh));let{groupBy:J,limit:G}=U.data;return{groupBy:J,...G!==void 0&&{limit:G}}}var J8=["application","timeout","cancellation","resource","system"],Ih=new Set(J8),hh=new Set(["ActivityScheduleToCloseTimeoutError","ActivityPerAttemptTimeoutError","MCPToolTimeoutError","ReviewTimeoutError","UpdateTimeoutError","WorkflowTimeoutError","TimeoutError"]),yh=Symbol.for("weft.failure-category.timeout"),mh=new Set(["AbortError","CancelledError","CancellationError","WorkflowCancelledError"]),kh=new Set(["QuotaExceededError","ResourceExhaustedError","OutOfMemoryError","StorageQuotaExceededError"]);function l6($){return Ih.has($)}function NG($){if(l6($))return $;return}function FP($){return[$]}function G8($,U={}){if(!($ instanceof Error))return"system";if(hh.has($.name))return"timeout";if(Object.prototype.hasOwnProperty.call($,yh))return"timeout";if(mh.has($.name))return"cancellation";if(kh.has($.name))return"resource";return U.defaultErrorCategory??"system"}function OG($){let U=Error($.error);if($.errorName!==void 0)U.name=$.errorName;return U}var fh=["pending","running","completed","failed","cancelled","timed-out","suspended"],uh=/^[A-Za-z0-9_-]+$/,zP=j.enum(fh),BP=j.enum(J8),Cj=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"}),X8=j.union([j.string(),j.number(),j.boolean(),j.date(),j.array(j.string())]),wh=j.object({key:j.union([j.string().min(1),j.any()]),value:X8.optional(),gt:X8.optional(),lt:X8.optional(),gte:X8.optional(),lte:X8.optional()}),Rj=j.object({status:j.union([zP,j.array(zP)]).optional(),type:j.string().min(1).optional(),tags:j.array(j.string()).optional(),attributes:j.array(wh).optional(),limit:j.number().int().min(1).max(1000).optional(),offset:j.number().int().min(0).optional(),idPrefix:j.string().min(1).regex(uh,"idPrefix must match [A-Za-z0-9_-]+").optional(),createdAt:Cj.optional(),updatedAt:Cj.optional(),executionDeadline:Cj.optional(),failureCategory:j.union([BP,j.array(BP).min(1)]).optional()}).strict();function ch($){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 nU 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 rU($){let U=Rj.safeParse($??{});if(!U.success)throw new nU(U.error.issues.map(ch));return U.data}var ph=new Uint8Array(0);function z$($){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 PP($){return Array.isArray($)&&$.every((U)=>typeof U==="string")}function oU($,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:F.tagIndex(Z,$)});for(let Z of Q)if(!X.has(Z))G.push({type:"put",key:F.tagIndex(Z,$),value:ph});return G}function KP($,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 U6=64;var dh=/(?: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 WP($){return dh.test($)}function lh($){if(!/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/.test($))return!1;return $.split(".").every((U)=>U.length>=6)}function ih($){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 nh($){let U=$.replaceAll(/[\s-]/g,"");return/^\d{13,19}$/.test(U)&&ih(U)}function MP($){let U=$.trim();if(/^(?:Bearer|Basic)\s+\S+/i.test(U))return"[REDACTED]";if(lh(U)||nh(U))return"[REDACTED]";return $}function i6($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function b1(){return{supported:!1}}function v1($){return{supported:!0,value:$}}function rh($){let U=Object.getPrototypeOf($);return U===Object.prototype||U===null}function oh($,U){let J={};for(let[G,X]of $){let Q=String(G);J[Q]=WP(Q)?"[REDACTED]":Q8(X,U)}return J}function sh($,U){let J={};for(let[G,X]of Object.entries($))J[G]=WP(G)?"[REDACTED]":Q8(X,U);return J}var ah=[($)=>$ instanceof Date?v1($.toISOString()):b1(),($)=>$ instanceof Error?v1({name:$.name,message:MP($.message)}):b1(),($)=>$ instanceof Uint8Array?v1(`[Uint8Array(${$.byteLength})]`):b1(),($,U)=>Array.isArray($)?v1($.map((J)=>Q8(J,U))):b1(),($,U)=>$ instanceof Set?v1([...$].map((J)=>Q8(J,U))):b1(),($,U)=>$ instanceof Map?v1(oh($,U)):b1(),($,U)=>rh($)?v1(sh($,U)):b1()];function th($,U){if(U.has($))return"[Circular]";U.add($);try{for(let J of ah){let G=J($,U);if(G.supported)return G.value}return Object.prototype.toString.call($)}finally{U.delete($)}}function Q8($,U){if(typeof $==="string")return MP($);if($===null||$===void 0||typeof $==="boolean"||typeof $==="number")return $;if(typeof $==="bigint"||typeof $==="symbol")return String($);if(typeof $==="function")return`[Function ${$.name||"anonymous"}]`;return th($,U)}function g1($){return Q8($,new WeakSet)}function qP($,U){if($===void 0)return"undefined";let J=g1($);if(typeof J==="string")return JSON.stringify(J);try{return JSON.stringify(J,null,U)??Object.prototype.toString.call(J)}catch{return"[unserializable]"}}var NP=1n<<63n,eh=(1n<<64n)-1n,OP=1024;function $y($){let U=new ArrayBuffer(8),J=new DataView(U);J.setFloat64(0,$);let G=J.getBigUint64(0);if(G&NP)G=G^eh;else G=G^NP;return G.toString(16).padStart(16,"0")}function M$($){let U;if(typeof $==="string")U=`s:${$}`;else if(typeof $==="number")U=`n:${$y($)}`;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 Tj($,U){let J=new TextEncoder().encode($).byteLength;if(J>OP)throw Error(`Encoded search attribute "${U}" exceeds the ${OP}-byte limit (got ${J} bytes). Reduce the value size before setting the attribute.`)}function l4($,U,J){let{type:G}=J;switch(G){case"string":Uy($,U,J);break;case"integer":Jy($,U);break;case"number":Gy($,U);break;case"boolean":Xy($,U);break;case"array":Qy($,U);break;default:throw Error(`Unknown search attribute type declaration: ${String(G)}`)}}function Uy($,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 Jy($,U){if(typeof U!=="number"||!Number.isInteger(U))throw Error(`Search attribute "${$}" is declared as "integer" but received ${typeof U}.`)}function Gy($,U){if(typeof U!=="number")throw Error(`Search attribute "${$}" is declared as "number" but received ${typeof U}.`)}function Xy($,U){if(typeof U!=="boolean")throw Error(`Search attribute "${$}" is declared as "boolean" but received ${typeof U}.`)}function Qy($,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 Zy($,U){if($ instanceof Date&&U instanceof Date)return $.getTime()===U.getTime();return $===U}var Yy=new Uint8Array(0);function q$($,U,J){let G=[],X=new Set([...Object.keys(U),...Object.keys(J)]);for(let Q of X)G.push(..._y(Q,$,U,J));return G}function _y($,U,J,G){let X=J[$],Q=G[$],Z=$ in J,Y=$ in G;if(Array.isArray(X)||Array.isArray(Q))return Hy({attributeName:$,workflowId:U,oldValue:X,newValue:Q,hadOld:Z,hasNew:Y});return jy({attributeName:$,workflowId:U,oldValue:X,newValue:Q,hadOld:Z,hasNew:Y})}function jy($){let{attributeName:U,workflowId:J,oldValue:G,newValue:X,hadOld:Q,hasNew:Z}=$;if(Q&&!Z)return[CG(U,G,J)];if(!Q&&Z)return[AG(U,X,J)];if(Q&&Z&&!Zy(G,X))return[CG(U,G,J),AG(U,X,J)];return[]}function AG($,U,J){return{type:"put",key:F.attributeIndex($,M$(U),J),value:Yy}}function CG($,U,J){return{type:"delete",key:F.attributeIndex($,M$(U),J)}}function Hy($){let{oldValue:U,newValue:J}=$;if(Array.isArray(U)&&Array.isArray(J))return Dy($.attributeName,U,J,$.workflowId);return[...Ly($.attributeName,$.hadOld?U:void 0,$.workflowId),...Vy($.attributeName,$.hasNew?J:void 0,$.workflowId)]}function Dy($,U,J,G){let X=[],Q=new Set(U),Z=new Set(J);for(let Y of Q)if(!Z.has(Y))X.push(CG($,Y,G));for(let Y of Z)if(!Q.has(Y))X.push(AG($,Y,G));return X}function Ly($,U,J){return AP(U).map((G)=>CG($,G,J))}function Vy($,U,J){return AP(U).map((G)=>AG($,G,J))}function AP($){if($===void 0)return[];return Array.isArray($)?$:[$]}var sU;function Ej(){return typeof(sU&&"bun"in sU?sU.bun:globalThis.Bun)<"u"}function Fy(){if(sU&&"process"in sU)return sU.process;return globalThis.process}function N4($){if(Ej())return Bun.sleep($);return new Promise((U)=>setTimeout(U,$))}var zy=0xcbf29ce484222325n,By=0x00000100000001b3n,Py=0xffffffffffffffffn;function CP($){let U=zy;for(let J=0;J<$.length;J++)U^=BigInt($[J]),U=U*By&Py;return U.toString(16).padStart(16,"0")}var Ky=new TextEncoder;function RG($){return CP($)}function TG($){return CP(Ky.encode($))}function RP($){let J=Fy()?.getBuiltinModule;if(typeof J!=="function")return;return J($)}function TP(){let $=RP("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 EP($){if(Ej())return new Uint8Array(Bun.gzipSync(new Uint8Array($)));return new Uint8Array(TP().gzipSync($))}function xP($){if(Ej())return new Uint8Array(Bun.gunzipSync(new Uint8Array($)));return new Uint8Array(TP().gunzipSync($))}function SP(){return RP("node:zlib")}var Z8="0000000000000000",I1=Object.freeze({sequence:-1,lastHash:Z8});function EG($){return RG($)}function O4($){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 Wy($){if(typeof $!=="object"||$===null)return!1;let U=$;return typeof U.sequence==="number"&&typeof U.lastHash==="string"}async function Y8($,U){let J=await $.get(F.eventHead(U));if(J===null)return{sequence:-1,lastHash:Z8};let G=N(J);if(Wy(G))return G;return{sequence:-1,lastHash:Z8}}var _8="__weftCheckpointReplay",xj=-1;function Ij($,U){let J=gP($),G=J.accumulatedResultReplayWatermark??xj,X=Sj(J.accumulatedResults,U),Q=Sj(J.workerReplaySignatures??[],U),Z=Sj(J.workerReplayFailures??[],U),Y=yj({accumulatedResults:vj(X,G),workerReplaySignatures:vj(Q,G),workerReplayFailures:vj(Z,G)}),_=qy(G,Y),H=bj(J.workerReplaySignatures??[],U),D=bj(J.workerReplayFailures??[],U),L={...J,accumulatedResults:bj(J.accumulatedResults,U),..._===xj?{}:{accumulatedResultReplayWatermark:_},...xG("workerReplaySignatures",H),...xG("workerReplayFailures",D)};if(_===xj)delete L.accumulatedResultReplayWatermark;if(H.length===0)delete L.workerReplaySignatures;if(D.length===0)delete L.workerReplayFailures;return{checkpoint:L,replayPayload:Y}}async function y1($,U,J){let G=[],X=tU(J);if(X!==void 0)G.push(X);let Q=await Ay($,U);if(Q!==void 0)G.push(Q);for await(let[,Z]of $.scan(F.eventPrefix(U))){let Y=N(Z);if(!O4(Y))continue;let _=Y,H=Oy(_.payload);if(H===void 0)continue;if(H>J.step)break;let D=tU(_.payload);if(D===void 0)continue;G.push(D)}return My(gP(J),G)}function My($,U){let J=new Map,G=new Map,X=new Map;for(let Q of U)Ny({accumulatedResults:J,workerReplaySignatures:G,workerReplayFailures:X},Q);return aU(J,$.accumulatedResults),aU(G,$.workerReplaySignatures??[]),aU(X,$.workerReplayFailures??[]),{...$,accumulatedResults:gj(J),...xG("workerReplaySignatures",gj(G)),...xG("workerReplayFailures",gj(X))}}function hj($,U){if(U===void 0)return $;return{...$,[_8]:U}}function bP($,U){return U===void 0?{step:$}:{step:$,[_8]:U}}function SG($,U){if($===void 0)return U;if(U===void 0)return $;return yj({accumulatedResults:[...$.accumulatedResults??[],...U.accumulatedResults??[]],workerReplaySignatures:[...$.workerReplaySignatures??[],...U.workerReplaySignatures??[]],workerReplayFailures:[...$.workerReplayFailures??[],...U.workerReplayFailures??[]]})}function tU($){if(!h1($))return;let U=$[_8];if(!h1(U))return;return IP(U)}function vP($){let{[_8]:U,...J}=$;return J}function yj($){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 qy($,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 Sj($,U){return $.filter(([J])=>J<U)}function bj($,U){return $.filter(([J])=>J>=U)}function vj($,U){return $.filter(([J])=>J>U)}function xG($,U){return U.length===0?{}:{[$]:U}}function gP($){let U=$,{[_8]:J,...G}=U;return G}function gj($){return[...$.entries()].toSorted(([U],[J])=>U-J)}function aU($,U){for(let[J,G]of U)$.set(J,G)}function Ny($,U){aU($.accumulatedResults,U.accumulatedResults??[]),aU($.workerReplaySignatures,U.workerReplaySignatures??[]),aU($.workerReplayFailures,U.workerReplayFailures??[])}function Oy($){if(!h1($))return;let U=$.step;return typeof U==="number"&&Number.isSafeInteger(U)&&U>=0?U:void 0}function IP($){let U=Cy($.accumulatedResults),J=Ry($.workerReplaySignatures),G=Ty($.workerReplayFailures);return yj({...U===void 0?{}:{accumulatedResults:U},...J===void 0?{}:{workerReplaySignatures:J},...G===void 0?{}:{workerReplayFailures:G}})}async function Ay($,U){let J=await $.get(F.eventWatermark(U));if(J===null)return;let G=N(J);if(!h1(G))return;let X=G.checkpointReplay;return h1(X)?IP(X):void 0}function Cy($){if(!Array.isArray($))return;let U=[];for(let J of $){if(!Array.isArray(J)||J.length!==2||!bG(J[0]))continue;U.push([J[0],J[1]])}return U}function Ry($){if(!Array.isArray($))return;let U=[];for(let J of $){if(!Array.isArray(J)||J.length!==2||!bG(J[0]))continue;if(!Ey(J[1]))continue;U.push([J[0],J[1]])}return U}function Ty($){if(!Array.isArray($))return;let U=[];for(let J of $){if(!Array.isArray(J)||J.length!==2||!bG(J[0]))continue;if(!xy(J[1]))continue;U.push([J[0],J[1]])}return U}function h1($){return typeof $==="object"&&$!==null}function bG($){return typeof $==="number"&&Number.isSafeInteger($)&&$>=0}function Ey($){if(!h1($))return!1;return $.format===GG&&typeof $.operationType==="string"&&typeof $.stableFieldsDigest==="string"&&bG($.stableFieldsByteLength)}function xy($){if(!h1($))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 yP($,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=Sy($.toolVersions??[],U.toolVersions??[]);if(Q.length>0)J.toolVersions=Q;return J}function mP($){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 hP($){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 Sy($,U){let J=hP($),G=hP(U),X=new Set([...J.keys(),...G.keys()]),Q=[];for(let Z of X){let Y=by(Z,J.get(Z),G.get(Z));if(Y!==void 0)Q.push(Y)}return Q}function by($,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 kP="0.0.0";function fP($,U){if($===U)return"compatible";return"incompatible"}function vy($,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 gy($){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 lk($,U){if(typeof U==="object"&&U!==null&&"type"in U)return{workflowType:eG($,U.type),options:U.options};return{workflowType:eG($,U),options:void 0}}function eG($,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 ik($,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 ZH($,U){return`${U}:${$.stepIndex}`}function $X($,U,J,G=void 0){if(gK(G),G?.id!==void 0)return G;return{...G,id:`${$.context.workflowId}:${U}:${J}`}}function nk($,U,J,G){if(G===void 0)return $X($,U,J);let{idPrefix:X,...Q}=G;return gK(Q),$X($,U,J,X!==void 0?{...Q,id:`${X}:${J}`}:Q)}function gK($){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 UX($){let U=[];for(let J of $){let G=J.next();if(!G.done)U.push(G.value)}return U}function*IK($,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 vK(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),vK(H,X)}function vK($,U){return(U?.parentClosePolicy??"await")==="await"?$:$}function*hK($,U,J,G){let X=ZH(U,"pipe"),Q=G;for(let[Z,Y]of J.entries()){let _=lk(U,Y);Q=yield*$.startChild(_.workflowType,Q,$X(U,X,Z,_.options))}return Q}function*yK($,U,J,G,X){if(J.length===0)return[];let Q=ZH(U,"map"),Z=ik(J.length,X?.concurrency),Y=eG(U,G),_=[];for(let H=0;H<J.length;H+=Z){let D=J.slice(H,H+Z),L=yield*$.all(D.map((z,B)=>$.startChild(Y,z,$X(U,Q,H+B))));for(let z=0;z<L.length;z++)_[H+z]=L[z]}return _}function*mK($,U,J,G,X,Q){if(J.length===0)return X;let Z=ZH(U,"reduce"),Y=eG(U,G),_=X;for(let[H,D]of J.entries())_=yield*$.startChild(Y,{accumulator:_,item:D,index:H},nk(U,Z,H,Q));return _}class A6 extends v{constructor($){super("BranchTopologyChangedError",$)}}function ok($){return $==="all"||$==="race"||$==="run-all"}function sk($){return $==="pending"||$==="fulfilled"||$==="rejected"||$==="aborted"}function ak($){if($===null||typeof $!=="object")return!1;let U=$;return typeof U.name==="string"&&typeof U.message==="string"}function tk($){if($===null||typeof $!=="object")return!1;let U=$;if(!sk(U.status))return!1;if(typeof U.operationId!=="string")return!1;if(U.status==="rejected"&&!ak(U.reason))return!1;return!0}function ek($){if($===void 0)return!0;return Array.isArray($)&&$.every((U)=>typeof U==="string")}function $f($){return typeof $==="number"&&Number.isSafeInteger($)&&$>=0}function Uf($){return $!==null&&typeof $==="object"&&$.__weftParallelOperationCache===!0}function Jf($,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 w1($){if($===null||typeof $!=="object")return!1;let U=$;if(U.__weftParallelOperationCache!==!0)return!1;if(U.formatVersion!==2)return!1;if(!ok(U.variant))return!1;if(!Array.isArray(U.branches))return!1;if(!$f(U.subOperationCount))return!1;if(!ek(U.branchNames))return!1;let J=U.subOperationCount;if(!Jf(U.variant,U.branches,J,U.branchNames))return!1;return U.branches.every(tk)}function JX($){if(Uf($)&&!w1($))throw new A6("Parallel operation cache entry is malformed or incompatible with this engine version.")}function B8($,U,J,G){return{__weftParallelOperationCache:!0,formatVersion:2,variant:$,branches:U,...G!==void 0?{branchNames:G}:{},subOperationCount:J}}function Gf($){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 Xf($){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 kK($){return $.branches.every((U)=>U.status==="fulfilled")}function*fK($,U,J){let G=U.stepIndex++;if(U.accumulatedResults?.has(G)){let H=U.accumulatedResults.get(G);if(JX(H),w1(H)){if(H.variant!=="all")throw new A6(`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 A6(`ctx.all branch count changed across retry: expected ${H.subOperationCount}, got ${J.length}. Branch count must be deterministic.`);if(kK(H))return U.stepIndex+=H.subOperationCount,Gf(H);let D=UX(J);YH(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=UX(J),Q=`parallel:${G}`;YH(X,Q);let Z=s(),_=yield{type:"parallel",operationId:Q,operations:X,step:G,callerStack:Z};return $.accumulatedResults.set(G,Qf(_,Q,X.length)),_}function Qf($,U,J){return B8("all",$.map((G,X)=>({status:"fulfilled",value:G,operationId:`${U}:${X}`})),J)}function*uK($,U,J){let G=U.stepIndex++;if(U.accumulatedResults?.has(G)){let _=U.accumulatedResults.get(G);if(JX(_),w1(_)){if(_.variant!=="race")throw new A6(`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 A6(`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 A6(`ctx.race step ${G} cached entry has no fulfilled winner slot — entry is malformed.`);return U.stepIndex+=_.subOperationCount,H.value}return _}let X=UX(J),Q=`race:${G}`;YH(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 YH($,U){for(let J=0;J<$.length;J++){let G=$[J];if(G!==void 0)G.operationId=`${U}:${J}`}}function*wK($,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 Zf($,U,J){if($.variant!=="run-all")throw new A6(`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 A6(`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 A6(`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*cK($,U,J){let G=U.stepIndex++,X=Object.keys(J);if(U.accumulatedResults?.has(G)){let H=U.accumulatedResults.get(G);if(JX(H),w1(H)){if(Zf(H,X,G),kK(H))return Xf(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,Yf(_,X,Q)),Y}function Yf($,U,J){return B8("run-all",U.map((G)=>({status:"fulfilled",value:$[G],operationId:`${J}:${G}`})),U.length,U)}function _H(){return{hasFirstError:!1,firstError:void 0}}function jH($,U){if(!$.hasFirstError)$.hasFirstError=!0,$.firstError=U}async function pK($,U,J){let G=$.map((Q,Z)=>{let Y=U?.[Z];if(Y?.status==="fulfilled")return Y;return{status:"pending",operationId:Q}}),X=_H();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},jH(X,Y)}})),{slots:G,hasFirstError:X.hasFirstError,firstError:X.firstError}}function HH($,U,J){return B8($,U,U.length,J)}function dK($){return $.map((U,J)=>{if(U.status!=="fulfilled")throw Error(`Branch slot ${J} is ${U.status}, not fulfilled`);return U.value})}function lK($,U){return(J,G)=>{$(J,G,U)}}function iK($){return(U)=>{let J=$.get(U);if(!J||J.ref.deref()!==void 0)return;$.delete(U)}}function nK($,U){return()=>{$.cleanupExpiredResponses().catch((J)=>{U("cleanupExpiredResponses",J)})}}async function rK($,U,J,G,X){if(G.length===0)return;let Q=[...G.map((Z)=>({type:"delete",key:Z})),{type:"delete",key:F.streamTail(U,J)},{type:"delete",key:F.streamMetadata(U,J)}];await $.batch(Q).catch((Z)=>{X("cleanupPartialStreamChunks",Z,U)})}async function oK($,U){let J=Object.entries($),G=_H();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 jH(G,_),{status:"rejected",name:Q,reason:_}}})),hasFirstError:G.hasFirstError,firstError:G.firstError}}async function sK($,U){let J={},G=Object.entries($);return await Promise.all(G.map(async([X,[Q,Z]])=>{J[X]=await U(Q,Z)})),J}class t4 extends Event{static type="human-review:requested";workflowId;reviewId;reviewType;reviewers;constructor($,U,J,G){super(t4.type);this.workflowId=$,this.reviewId=U,this.reviewType=J,this.reviewers=G}}class _0 extends Event{static type="human-review:completed";workflowId;reviewId;decision;reviewer;duration;constructor($,U,J,G,X){super(_0.type);this.workflowId=$,this.reviewId=U,this.decision=J,this.reviewer=G,this.duration=X}}class DH extends v{reviewId;elapsed;constructor($,U){super("ReviewTimeoutError",`Review ${$} timed out after ${U}ms`);this.reviewId=$,this.elapsed=U}}class LH{#$;#U;#J;constructor($,U){if(this.#$=$,typeof U==="function")this.#U=U;else this.#U=U?.getNow??Date.now,this.#J=U?.eventTarget}async createReview($,U){let J=crypto.randomUUID(),G={reviewId:J,workflowId:$,artifact:U.artifact,reviewType:U.reviewType??"general",reviewers:U.reviewers??[],allowPartial:U.allowPartial??!1,createdAt:this.#U()};if(U.timeout!==void 0)G.timeout=U.timeout;if(U.webhookUrl!==void 0)G.webhookUrl=U.webhookUrl;let X=F.review($,J);if(await this.#$.put(X,M(G)),this.#J)this.#J.dispatchEvent(new t4($,J,G.reviewType,G.reviewers));return G}async submitDecision($,U){let J={reviewId:$,decision:U.decision,reviewer:U.reviewer,timestamp:this.#U()};if(U.feedback!==void 0)J.feedback=U.feedback;if(U.sectionDecisions!==void 0)J.sectionDecisions=U.sectionDecisions;return J}async getReview($,U){let J=F.review($,U),G=await this.#$.get(J);if(!G)return null;return N(G)}async listPendingReviews(){let U=[];for await(let[,J]of this.#$.scan("review:"))U.push(N(J));return U}cleanupOperations($,U){return[{type:"delete",key:F.review($,U)}]}checkEscalations($,U,J){let G=J-$.createdAt;for(let X=U.length-1;X>=0;X--){let 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 j0 extends v{updateId;constructor($,U){super("UpdateTimeoutError",`Update ${$} timed out after ${U}ms`);this.updateId=$}}class C4 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 H0 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 jf=50,Hf=300000;class VH{#$;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=F.update($,X);return await this.#$.put(Z,M(Q)),X}async checkIdempotency($,U){let J=F.updateIdempotency($,U),G=await this.#$.get(J);if(!G)return null;let X=N(G);return this.getResponse(X.updateId)}async getPendingUpdates($){let U=F.updatePrefix($),J=[];for await(let[,G]of this.#$.scan(U))J.push(N(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:F.update(U,$)},{type:"put",key:F.updateResponse($),value:M(Q)}];if(X!==void 0)Z.push({type:"put",key:F.updateIdempotency(U,X),value:M({updateId:$})});return Z}async deleteRequest($,U){await this.#$.delete(F.update($,U))}async deleteRequestIfUnconsumed($,U){let J=await this.getResponse(U);if(J!==null)return J;return await this.deleteRequest($,U),this.getResponse(U)}async getResponse($){let U=F.updateResponse($),J=await this.#$.get(U);if(!J)return null;return N(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 N4(Math.min(jf,X))}throw new j0($,U)}async cleanupExpiredResponses($){let U=$??Hf,J=Date.now()-U,G=[],X=new Set;for await(let[Y,_]of this.#$.scan("upr:")){let H=N(_);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=N(_);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 GX extends Event{static type="activity:started";operationId;workflowId;activityName;attempt;constructor($,U,J,G){super(GX.type);this.operationId=$,this.workflowId=U,this.activityName=J,this.attempt=G}}class D0 extends Event{static type="activity:completed";operationId;workflowId;activityName;duration;constructor($,U,J,G){super(D0.type);this.operationId=$,this.workflowId=U,this.activityName=J,this.duration=G}}class L0 extends Event{static type="activity:async-pending";token;operationId;workflowId;activityName;attempt;constructor($,U,J,G,X){super(L0.type);this.token=$,this.operationId=U,this.workflowId=J,this.activityName=G,this.attempt=X}}class XX extends Event{static type="activity:failed";operationId;workflowId;activityName;error;attempt;constructor($,U,J,G,X){super(XX.type);this.operationId=$,this.workflowId=U,this.activityName=J,this.error=G,this.attempt=X}}class QX 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(QX.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 V0 extends Event{static type="attributes:changed";workflowId;changes;constructor($,U){super(V0.type);this.workflowId=$,this.changes=U}}class F0 extends Event{static type="schedule:fired";scheduleId;workflowId;firedAt;occurrence;constructor($,U,J,G){super(F0.type);this.scheduleId=$,this.workflowId=U,this.firedAt=J,this.occurrence=G}}class z0 extends Event{static type="schedule:missed-fire";scheduleId;missedCount;windowStart;windowEnd;constructor($,U,J,G){super(z0.type);this.scheduleId=$,this.missedCount=U,this.windowStart=J,this.windowEnd=G}}class B0 extends Event{static type="signal:received";workflowId;signalName;payload;constructor($,U,J){super(B0.type);this.workflowId=$,this.signalName=U,this.payload=J}}class ZX extends Event{static type="signal:delivered";workflowId;signalName;constructor($,U){super(ZX.type);this.workflowId=$,this.signalName=U}}class P0 extends Event{static type="checkpoint:size-warning";workflowId;sizeBytes;step;constructor($,U,J){super(P0.type);this.workflowId=$,this.sizeBytes=U,this.step=J}}class r6 extends Event{static type="development:warning";workflowId;message;fieldPaths;constructor($,U,J){super(r6.type);this.workflowId=$,this.message=U,this.fieldPaths=J}}class K0 extends Event{static type="cleanup:warning";source;error;workflowId;constructor($,U,J){super(K0.type);this.source=$,this.error=U,this.workflowId=J}}class W0 extends Event{static type="storage:size-reported";sizeBytes;constructor($){super(W0.type);this.sizeBytes=$}}class YX extends Event{static type="worker:connected";workerId;queue;activities;concurrency;constructor($,U,J,G){super(YX.type);this.workerId=$,this.queue=U,this.activities=J,this.concurrency=G}}class _X extends Event{static type="worker:disconnected";workerId;inFlightTaskCount;constructor($,U){super(_X.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 q0 extends Event{static type="alert:resolved";metric;threshold;currentValue;window;constructor($,U,J,G){super(q0.type);this.metric=$,this.threshold=U,this.currentValue=J,this.window=G}}class N0 extends Event{static type="constraint:violated";workflowId;constraintName;scope;onViolation;constructor($,U,J,G){super(N0.type);this.workflowId=$,this.constraintName=U,this.scope=J,this.onViolation=G}}class C6 extends Event{static type="update:received";updateId;workflowId;name;payload;constructor($,U,J,G){super(C6.type);this.updateId=$,this.workflowId=U,this.name=J,this.payload=G}}class G6 extends Event{static type="update:completed";updateId;workflowId;name;result;error;constructor($,U,J,G,X){super(G6.type);this.updateId=$,this.workflowId=U,this.name=J,this.result=G,this.error=X}}class jX extends Event{static type="workflow:definition-registered";workflowType;constructor($){super(jX.type);this.workflowType=$}}class o6 extends Event{static type="workflow:started";workflowId;workflowType;input;constructor($,U,J){super(o6.type);this.workflowId=$,this.workflowType=U,this.input=J}}class R4 extends Event{static type="workflow:completed";workflowId;result;duration;constructor($,U,J){super(R4.type);this.workflowId=$,this.result=U,this.duration=J}}class R6 extends Event{static type="workflow:failed";workflowId;error;constructor($,U){super(R6.type);this.workflowId=$,this.error=U}}class T4 extends Event{static type="workflow:cancelled";workflowId;constructor($){super(T4.type);this.workflowId=$}}class T6 extends Event{static type="workflow:timed-out";workflowId;timeoutType;elapsed;reason;constructor($,U,J,G){super(T6.type);if(this.workflowId=$,this.timeoutType=U,this.elapsed=J,G!==void 0)this.reason=G}}var aK=new Set([R4.type,R6.type,T4.type,T6.type]);class O0 extends Event{static type="workflow:resumed";workflowId;fromStep;constructor($,U){super(O0.type);this.workflowId=$,this.fromStep=U}}class A0 extends Event{static type="workflow:suspended";workflowId;constructor($){super(A0.type);this.workflowId=$}}class HX extends Event{static type="workflow:recovery-skipped";workflowId;workflowType;reason;constructor($,U,J){super(HX.type);this.workflowId=$,this.workflowType=U,this.reason=J}}class E4 extends Event{static type="workflow:teardown";workflowId;workflowType;status;attempts;error;constructor($,U,J,G,X){super(E4.type);this.workflowId=$,this.workflowType=U,this.status=J,this.attempts=G,this.error=X}}class P8 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 E6($,U,J){if(U===null)return;let G=M($).byteLength;if(G>U)throw new P8(J,G,U)}function K8($,U,J){let G=M($);if(U!==null&&G.byteLength>U)throw new P8(J,G.byteLength,U);return G}var Df="async-act:v1",tK="async-act:v1:";function DX($){return`${tK}${O($)}:`}class LX 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 W8 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 Lf($){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 eK($,U,J){return`${Df}:${$}:${U}:${J}`}function Vf($,U){let J={version:1,token:U.token,workflowId:U.workflowId,activityName:U.activityName,operationId:U.operationId,step:U.step,attempt:U.attempt,createdAt:U.createdAt};return $.put(F.asyncActivity(U.workflowId,U.token),M(J))}async function Ff($,U){let J=$.pendingAsyncActivities.has(U.token);if($.pendingAsyncActivities.set(U.token,U),await Vf($.storage,U),!J)$.engine.dispatchEvent(new L0(U.token,U.operationId,U.workflowId,U.activityName,U.attempt))}async function $W($,U,J,G){let X=Kf($,J.workflowId,U.token);if(X!==void 0)return JW(J.workflowId,X,G),new Promise(()=>{});return await Ff($,{token:U.token,createdAt:$.options.getNow(),...J}),new Promise(()=>{})}async function UW($){for await(let[,U]of $.storage.scan(tK)){let J=N(U);if(!Lf(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 zf($,U){let J=$.pendingAsyncActivities.get(U);if(!J)throw new W8(U);$.pendingAsyncActivities.delete(U);try{await $.storage.delete(F.asyncActivity(J.workflowId,U))}catch(G){throw $.pendingAsyncActivities.set(U,J),G}return J}function Bf($,U){return $.inlineStrategy!==null&&!$.inlineStrategy.hasGenerator(U)}function Pf($,U,J){$.pendingAsyncActivityResolutions??=new Map;let G=$.pendingAsyncActivityResolutions.get(U)??[];G.push(J),$.pendingAsyncActivityResolutions.set(U,G)}function Kf($,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 JW($,U,J){J.finalizeTimeline($,U.timelineStatus,U.timelineOutput),J.feedOperationResult($,U.outcome,U.originalReason)}async function GW($,U,J,G,X){let Q=await zf($,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(Bf($,Q.workflowId)){Pf($,Q.workflowId,Y);return}JW(Q.workflowId,Y,G)}async function XW($,U,J,G){E6(J,$.options.payloadSizePolicy.maxBytes,"activity result"),await GW($,U,{status:"completed",value:J},G)}async function QW($){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 ZW($,U,J,G){let X=J instanceof Error?J.message:String(J),Q=J instanceof Error?J.name:void 0;E6({message:X,name:Q},$.options.payloadSizePolicy.maxBytes,"activity result"),await GW($,U,{status:"failed",error:X,...J instanceof Error?{errorName:J.name}:{},failureCategory:"application"},G,{value:J})}function VX($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function FH($){return VX($)&&$.version===1&&VX($.attempts)&&($.completedRetrySleeps===void 0||VX($.completedRetrySleeps))&&($.dispatchedAt===void 0||VX($.dispatchedAt))}function YW($,U){if(!Number.isInteger($)||$<=1||$>1e4)throw Error(`Invalid checkpointed activity retry attempt ${String($)} for step ${String(U)}`)}function _W($,U){let J=$.checkpointLocals.__weftActivityRetryState;if(!FH(J))return;let G=J.attempts[String(U)];if(G===void 0)return;return YW(G,U),G}function jW($,U){let J=$.checkpointLocals.__weftActivityRetryState;if(!FH(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 FX($){let U=$.checkpointLocals.__weftActivityRetryState;return FH(U)?U:void 0}function zX($,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 HW($,U,J){YW(J,U);let G=FX($),X=G?{...G.attempts}:{};X[String(U)]=J,zX($,X,G?.completedRetrySleeps,G?.dispatchedAt)}function Wf($,U){let J=FX($);if(!J)return;let G={...J.attempts};delete G[String(U)],zX($,G,J.completedRetrySleeps,J.dispatchedAt)}function DW($,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(Wf($,U),J===0)return;let G=FX($),X=G?{...G.attempts}:{},Q=G?{...G.completedRetrySleeps}:{};Q[String(U)]=J,zX($,X,Q,G?.dispatchedAt)}function LW($,U,J){let G=FX($),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,zX($,Q,G?.completedRetrySleeps,Z),J}class FW 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 VW=2147483647;function zW($){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=_$($);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>VW)throw Error(`Activity timeout of ${U}ms exceeds the maximum supported per-attempt cap of ${VW}ms (~24.8 days).`);return U}function BW($){return $===void 0?void 0:_$($)}function PW($,U){if(U?.scheduleToCloseTimeout!==void 0)return U.scheduleToCloseTimeout;if(typeof $==="string")return;return $.scheduleToCloseTimeout}function KW($,U){if(U?.timeout!==void 0)return U.timeout;if(typeof $==="string")return;return $.timeout}function Mf($,U){return U-$.dispatchedAt>=$.budgetMs}function BH($,U,J,G){if($===void 0)return;if(!Mf($,G??J))return;throw new FW(U,J-$.dispatchedAt,$.budgetMs,G!==void 0&&J-$.dispatchedAt<$.budgetMs?G-$.dispatchedAt:void 0)}var qf=Object.freeze({}),Nf="sessionState",Of=new Set(["timeout","queue","retry","idempotencyKey","sticky","visibilityTimeout","scheduleToCloseTimeout"]),Af=new Set(["queue","retry","idempotencyKey","sticky","visibilityTimeout","scheduleToCloseTimeout"]);function PX($){if($===null||typeof $!=="object"||Array.isArray($))return!1;let U=Object.keys($);if(U.length===0)return!1;for(let J of U)if(!Of.has(J))return!1;for(let J of U)if(Af.has(J))return!0;return!1}function M8($,U){let J=U===void 0?[]:Object.entries(U).filter(([G])=>G!==tG&&G!==Nf);if($===void 0){if(J.length===0)return qf;return Object.fromEntries(J)}return{...Object.fromEntries(J),[tG]:$}}function WW($,U){$.stateSession=U,$.checkpointLocals=M8(U,$.checkpointLocals)}function MW($,U,J){if(Z0(U),$.stateSession&&$H($.stateSession,U))return a4($.stateSession[U]);return J===void 0?void 0:a4(J)}function qW($,U,J){Z0(U);let G=z8($.stateSession)??F8();return G[U]=a4(J),JH(G),WW($,G),a4(G[U])}function Cf($,U,J,G){return qW($,U,G(MW($,U,J)))}function Rf($,U){if(Z0(U),!$.stateSession||!$H($.stateSession,U))return;let J=z8($.stateSession)??F8();delete J[U],WW($,Object.keys(J).length===0?void 0:J)}function Tf($){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&&PX($[0]))return{hasInput:!1,options:{...$[0],sticky:!0}};if($.length===1)return{hasInput:!0,input:$[0],options:{sticky:!0}};let U=$[1];if(!PX(U))throw Error("sessionState.run() options must be ActivityCallOptions.");return{hasInput:!0,input:$[0],options:{...U,sticky:!0}}}function BX($,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 NW($,U,J,G){let X=G!==void 0&&"initial"in G,Q=X?a4(G.initial):void 0;return{get:()=>BX(U,()=>MW(U,J,X?Q:void 0)),set:(L)=>BX(U,()=>qW(U,J,L)),update:(L)=>BX(U,()=>Cf(U,J,X?Q:void 0,L)),delete:()=>{BX(U,()=>{Rf(U,J);return})},increment(L=1){return this.update((z)=>(z??0)+L)},decrement(L=1){return this.update((z)=>(z??0)-L)},merge(L){return this.update((z)=>({...z??{},...L}))},append(L){return this.update((z)=>[...z??[],L])},removeFirst(){let L;return this.update((z)=>{let B=[...z??[]];return L=B.shift(),B}),L},removeLast(){let L;return this.update((z)=>{let B=[...z??[]];return L=B.pop(),B}),L},run:(L,...z)=>{let B=Tf(z);if(!B.hasInput)return $.run(L,B.options);return $.run(L,B.input,B.options)}}}var OW=new WeakMap;function AW($,U,J){let G={context:$,abortController:U.abortController,stepIndex:U.initialStep??0,accumulatedResults:U.accumulatedResults,stateSession:J,checkpointLocals:M8(J,U.locals),searchAttributes:U.searchAttributes?{...U.searchAttributes}:{},searchAttributeSchema:U.searchAttributeSchema,workflowInterceptor:void 0,pendingAttributeChanges:void 0,updateHandlers:void 0,updateValidators:void 0,queryHandlers:void 0,exposedValues:void 0,memoCache:void 0,deadline:U.deadline,getNow:U.getNow??Date.now,sleepReferenceTime:U.sleepReferenceTime,explainMode:!1,nestingDepth:U.nestingDepth??0,executionStateOwnerId:U.executionStateOwnerId??U.workflowId,resolveWorkflowType:U.resolveWorkflowType,registerCancelHandler:U.registerCancelHandler,services:U.services,logSink:U.logSink,recordFinalizerState:U.recordFinalizerState};OW.set($,G)}function g($){let U=OW.get($);if(!U)throw Error("Context internals not initialized");return U}function xf($){if(typeof $!=="function")return!1;if($.length===0)return!0;let U=$.execute;return typeof U==="function"&&U.length===0}function Sf($,U){let J=U.at(-1);return U.length>0&&PX(J)&&(U.length>1||typeof $!=="string"&&xf($))}function bf($,U){let J=[...U],G=Sf($,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 vf($,U,J){let G=BW(J);if(G===void 0)return;return{budgetMs:G,dispatchedAt:LW($,U,$.getNow())}}function gf($,U){if(U!==void 0)return U;return typeof $==="string"?$:$.name||"anonymous"}function If($){return typeof $==="function"?$:void 0}function hf($,U,J,G){let X=$.accumulatedResults?.has(U)??!1;if(X){let Z=$.accumulatedResults?.get(U);if($.stepIndex+=jW($,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=_W($,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 yf($,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 mf($,U){let J=typeof $==="string"?void 0:$.retry,G=U?.retry;if(J===void 0&&G===void 0)return;return{...DB,...J,...G}}function kf($,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 ff($,U,J){return U!==void 0&&J<U.maxAttempts&&!kf($,U)}function uf($,U){if(U===1)return $;return{...$,operationId:crypto.randomUUID(),attempt:U}}function wf($,U,J,G){let{input:X,options:Q}=bf(U,J),Z=gf(U,G),Y=If(U),_=g($),H=_.stepIndex++,D=hf(_,H,Z,X);if(D.hasCachedResult)return D;let L=mf(U,Q),z=PW(U,Q),B=KW(U,Q),W=B===void 0?Q:{...Q,timeout:B};return{request:yf(_,H,Z,Y,X,W),step:H,hasCachedResult:!1,retryAttempt:D.retryAttempt,...L===void 0?{}:{retryPolicy:L},...z===void 0?{}:{scheduleToCloseTimeout:z}}}function*CW($,U,J,G){let{request:X,step:Q,hasCachedResult:Z,cachedResult:Y,retryAttempt:_,retryPolicy:H,scheduleToCloseTimeout:D}=wf($,U,J,G);if(Z)return Y;let L=g($),z=H===void 0?void 0:vf(L,Q,D),B=_;if(B>1){if(H===void 0)throw Error(`Missing activity retry policy for checkpointed retry attempt ${B}`);yield*$.sleep(jG(B-1,H))}while(!0){if(B>1)BH(z,X.activityName,L.getNow());try{let W=yield uf(X,B);return $.accumulatedResults.set(Q,W),DW(L,Q,B-1),W}catch(W){if(!ff(W,H,B))throw W;let S=jG(B,H),I=L.getNow();BH(z,X.activityName,I,I+S);let p=B+1;HW(L,Q,p),yield*$.sleep(S),B=p}}}class cf{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*PH(){yield void 0}async function*KH(){yield void 0}function pf(){return PH().next(),KH().next(),{syncGeneratorFunctionPrototype:Object.getPrototypeOf(PH),asyncGeneratorFunctionPrototype:Object.getPrototypeOf(KH),syncGeneratorPrototype:Object.getPrototypeOf(PH.prototype),asyncGeneratorPrototype:Object.getPrototypeOf(KH.prototype)}}var{syncGeneratorFunctionPrototype:df,asyncGeneratorFunctionPrototype:lf,syncGeneratorPrototype:nf,asyncGeneratorPrototype:rf}=pf();function RW($){return Object.getPrototypeOf($)===df}function TW($){return Object.getPrototypeOf($)===lf}function EW($){if($===null||typeof $!=="object")return!1;let U=Object.getPrototypeOf($);if(U===null)return!1;let J=Object.getPrototypeOf(U);return J===nf||J===rf}function q8($,U){let J=$.conditionWaiters.get(U);if(J)J()}var of=new TextEncoder;function N8($){return of.encode($).byteLength<=128}function KX($){if($.length===0)throw Error("signalId must be non-empty");if(!N8($))throw Error(`signalId must be at most ${String(128)} bytes`)}var xW=5,SW=new WeakMap;async function gW($,U,J,G,X){let Q=F.signalSequence(U);if(!$.storage.capabilities().conditionalBatch){await sf($.storage,U,async()=>{let Z=await $.storage.get(Q),Y=await vW($,U,Z),_=bW($,U,J,Y,Q);G(_),await $.storage.batch(_),X()});return}X$($.storage,"conditionalBatch","anonymous signal ordering");for(let Z=0;Z<xW;Z+=1){let Y=await $.storage.get(Q),_=await vW($,U,Y),H=bW($,U,J,_,Q);if(G(H),await $$($.storage,[{key:Q,expectedValue:Y}],H)){X();return}}throw Error(`Could not allocate anonymous signal sequence for workflow "${U}" after ${xW} attempts`)}async function sf($,U,J){let G=SW.get($);if(!G)G=new Map,SW.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 bW($,U,J,G,X){let Q=J.map(({signalName:Z,payload:Y},_)=>({type:"put",key:F.signal(U,Z,af(G+_)),value:K8(Y,$.options.payloadSizePolicy.maxBytes,"signal payload")}));return Q.push({type:"put",key:X,value:M(G+J.length)}),Q}function af($){return`anonymous:${String($).padStart(16,"0")}:${crypto.randomUUID()}`}async function vW($,U,J){if(J!==null)return $u(J);return tf($,U)}async function tf($,U){let J=`sig:${O(U)}:`,G=0;for await(let[X]of $.storage.scan(J)){let Q=ef(X);if(Q!==null&&Q>=G)G=Q+1}return G}function ef($){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 $u($){if($===null)return 0;let U=N($);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 e4($,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 WX($,U){let J=$.pendingAtomicWorkflowCommitSideEffects.get(U);if(J===void 0)return;if($.pendingAtomicWorkflowCommitSideEffects.delete(U),J.conditions.length===0&&J.operations.length===0)return;return{conditions:[...J.conditions],operations:[...J.operations]}}function MX($,U){$.pendingAtomicWorkflowCommitSideEffects.delete(U)}function IW($,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 Uu=new Uint8Array(0),kW={ok:!0},Ju=5;async function fW($,U,J,G,X,Q={}){let Z=async(_,H,D)=>{await Gu($,_,[{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 O8($,U,J,G){let X=$.signalWaiters.get(J);if(!X)return;if(G&&X!==G)return;$.signalWaiters.delete(J),X6($.signalWaitersByWorkflow,U,J)}async function Gu($,U,J,G,X={}){if(J.length===0)return;let Q=await G.loadWorkflowState(U);if(Q&&B$(Q.status))return;let Z=_u(J,X);if(ju(J,X,Z),Z!==void 0)X$($.storage,"conditionalBatch","signal idempotency");if(Z!==void 0){let Y=Xu($,U,J,Z);hW($,U,Y);let _=J[0],H=F.signalAcceptedResponse(U,_.signalName,Z),D=M(kW);if(await $.storage.get(H)!==null)return;if(!await $$($.storage,[{key:H,expectedValue:null}],[...Y,{type:"put",key:H,value:D}]))return;yW($,U),mW($,U,J,G);return}await gW($,U,J,(Y)=>hW($,U,Y),()=>yW($,U)),mW($,U,J,G)}function Xu($,U,J,G){return J.map(({signalName:X,payload:Q})=>({type:"put",key:F.signal(U,X,G),value:K8(Q,$.options.payloadSizePolicy.maxBytes,"signal payload")}))}function uW($,U,J,G,X){KX(X);let Q=F.startSignal(U,J,X),Z=F.signalAcceptedResponse(U,J,X);return{operations:[{type:"put",key:Q,value:K8(G,$.options.payloadSizePolicy.maxBytes,"signal payload")},{type:"put",key:Z,value:M(kW)}],condition:{key:Z,expectedValue:null}}}function hW($,U,J){if($.workflowsNeedingTerminalCleanup.has(U))return;J.push({type:"put",key:F.terminalCleanupNeeded(U),value:Uu})}function yW($,U){$.workflowsNeedingTerminalCleanup.add(U)}function mW($,U,J,G){let X=!1;for(let{signalName:Q,payload:Z,options:Y}of J){if(Y?.emitPublicEvent!==!1)G.dispatchEvent(new B0(U,Q,Z)),G.broadcast({type:"signal:received",workflowId:U,signalName:Q});let _=`${U}:${Q}`,H=$.signalWaiters.get(_);if(H){O8($,U,_,H),H();continue}if($.parkedInlineWorkflows.has(U))X=!0}if(X)G.resumeParkedInlineWorkflow(U)}async function wW($,U,J){return await MH($,U,J)!==null}async function A8($,U,J){let G=await MH($,U,J);if(G===null)return{found:!1};return e4($,U,{conditions:[{key:G.key,expectedValue:new Uint8Array(G.value)}],operations:[{type:"delete",key:G.key}]}),{found:!0,payload:N(G.value)}}async function WH($,U,J){let G=await MH($,U,J);return G===null?{found:!1}:{found:!0,payload:N(G.value)}}async function MH($,U,J){let G=O(U),X=O(J),Q=Zu(G,X);return await Qu($,Q,G,X)}async function Qu($,U,J,G){for await(let[X,Q]of $.storage.scan(U,{limit:1}))if(Yu(X,J,G))return{key:X,value:Q};return null}function Zu($,U){return`sig:${$}:${U}:`}function Yu($,U,J){let G=$.split(":");return G.length===Ju&&G[0]==="sig"&&G[1]===U&&G[2]===J&&(G[3]==="0"||G[3]==="1")&&G[4]!==""}function _u($,U){if($.length!==1)return;return $[0]?.options?.signalId??U.signalId}function ju($,U,J){if(J!==void 0){KX(J);return}for(let G of $){let X=G.options?.signalId??U.signalId;if(X!==void 0)KX(X)}}function $1($,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 X6($,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 cW($,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 j0($,J)),J)})])}finally{clearTimeout(_)}}async function pW($,U,J,G,X,Q){let Z=X?.timeout??30000;await aW($,U,J,G),await Q.guardTerminalWorkflow(U);let Y=await Hu($,U,J,G,Q);if(Y.handled)return Y.value;let _=await Du($,U,J,G,Z,Q);if(_.handled)return _.value;return await Lu($,U,J,G,Z,Q)}async function Hu($,U,J,G,X){let Q=$.inlineStrategy?.getContext(U)?.updateHandlers.get(J);if(!Q)return{handled:!1};let Z=crypto.randomUUID();X.dispatchEvent(new C6(Z,U,J,G));try{let Y=await qH($,J,Q,G);return X.dispatchEvent(new G6(Z,U,J,Y)),X.broadcast({type:"update:completed",workflowId:U,updateId:Z}),q8($,U),{handled:!0,value:Y}}catch(Y){let _=Y instanceof Error?Y.message:String(Y);throw X.dispatchEvent(new G6(Z,U,J,void 0,_)),X.broadcast({type:"update:completed",workflowId:U,updateId:Z}),q8($,U),Y}}async function Du($,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),X6($.updateWaitersByWorkflow,U,Z);let H=crypto.randomUUID();Q.dispatchEvent(new C6(H,U,J,G));let D=await cW(H,G,X,Y);return Q.dispatchEvent(new G6(H,U,J,D)),Q.broadcast({type:"update:completed",workflowId:U,updateId:H}),{handled:!0,value:D}}async function Lu($,U,J,G,X,Q){let Z=await $.updateCoordinator.createRequest(U,J,G);Q.schedulePendingInlineUpdateDrain(U),await Q.guardTerminalWorkflowAfterCoordinatedRequest(U,Z),Q.dispatchEvent(new C6(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 dW($,U){return $.updateCoordinator.getResponse(U)}async function lW($,U,J,G,X,Q){let Z=X?.timeout??30000,Y=X?.idempotencyKey;if(Y!==void 0){let z=await $.updateCoordinator.checkIdempotency(U,Y);if(z!==null)return{updateId:z.updateId,result:z.result}}await aW($,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 iW($,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),$1($.updateWaitersByWorkflow,U,X);let _=await G.findPendingUpdateByName(U,J.updateName);if(_){if($.updateWaiters.get(X)===Y)$.updateWaiters.delete(X),X6($.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 nW($,U,J,G,X){X.dispatchEvent(new C6(G.updateId,U,J,G.payload))}function rW($,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 oW($,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),X6($.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 sW($,U,J){return(await $.updateCoordinator.getPendingUpdates(U)).find((X)=>X.name===J)}async function qH($,U,J,G){let X=J(G);if(EW(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 aW($,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 C4(J,[{message:_}])}let Z=NH(Q);if(Z!==null&&Z.length>0)throw new C4(J,Z)}function NH($){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 tW($,U,J,G){let X=$.handleCache.get(U);if(!X)return;let Q=X.ref.deref();if(!Q)return;Q.dispatchEvent(J)}function eW($,U,J,G,X){nW($,U,J,G,{dispatchEvent:X.dispatchEvent})}function U1($,U,J){if(!$.options.broadcastEvents)return;if($.broadcastChannel===null)try{$.broadcastChannel=new BroadcastChannel("weft:events")}catch{return}$.broadcastChannel.postMessage(U)}var Vu=3,Fu='Field "filter" must include at least one of status, type, tags, attributes, idPrefix (≥3 chars), or failureCategory paired with status';function zu($){if($.status===void 0)return!1;if(Array.isArray($.status))return $.status.length>0;return $.status.length>0}function Bu($){return $.type!==void 0&&$.type.trim().length>0}function Pu($){return(z$($.tags)?.length??0)>0}function Ku($){return $.attributes?.some((U)=>A$(U.key).trim().length>0)??!1}function Wu($){return $.idPrefix!==void 0&&$.idPrefix.length>=Vu}var Mu={status:zu,type:Bu,tags:Pu,attributes:Ku,idPrefix:Wu};function qu($){return Object.values(Mu).some((U)=>U($))}function s6($){if(!qu($))throw Error(Fu);return $}class c1 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 Nu=new TextEncoder,Ou=new TextDecoder;function OH($){let U=new Uint8Array(8);return new DataView(U.buffer).setBigUint64(0,BigInt($),!1),U}function qX($){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 AH($){return Nu.encode(JSON.stringify($))}function Au($){return typeof $==="object"&&$!==null}function NX($){let U;try{U=JSON.parse(Ou.decode($))}catch{return null}if(!Au(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 $M="WeftEngineLeaseLostWarning";function C8($){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 OX 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 R8 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 CH 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 T8 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 E8($){if($.options.ownershipMode!=="lease")return;if(!(!$.deposed&&$.leaseManager!==null&&$.leaseManager.currentEpochBytes()!==null))throw new CH}async function UM($,U,J){let G=Cu($);if(G===null){if(J.length===0)return await $.storage.batch(U),"committed";return await $$($.storage,J,U)?"committed":"lost-race"}let X=[...J,{key:F.leaseEpoch(),expectedValue:G}];if(await $$($.storage,X,U))return"committed";if(await Tu($,G))throw C8($),new T8;return"lost-race"}function Cu($){if($.deposed)throw new T8;if($.options.ownershipMode!=="lease")return null;let U=$.leaseManager?.currentEpochBytes()??null;if(U===null)throw C8($),new T8;return U}async function Z$($,U,J,G){if(await UM($,U,J)==="lost-race")throw G()}async function C0($,U,J){return await UM($,U,J)==="committed"}function Ru($,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 Tu($,U){let J;try{J=await $.storage.get(F.leaseEpoch())}catch{return!0}if(J===null)return!0;if(qX(J)===null)return!0;return!Ru(U,J)}var JM=["activity:started","activity:completed","signal:received"],GM=aK;async function*XM($,U,J){let G={events:[],resolver:void 0},X={done:!1},Q=Eu($,G,X);try{if(!X.done)Su(G,X,await U(),J);while(!X.done||G.events.length>0){if(G.events.length===0)await bu(G);while(G.events.length>0)yield G.events.shift()}}finally{Q()}}function Eu($,U,J){let G=QM.bind(void 0,U),X=xu.bind(void 0,J,U);for(let Q of JM)$.addEventListener(Q,G);for(let Q of GM)$.addEventListener(Q,X);return()=>{for(let Q of JM)$.removeEventListener(Q,G);for(let Q of GM)$.removeEventListener(Q,X)}}function QM($,U){$.events.push(U),$.resolver?.()}function xu($,U,J){if($.done)return;$.done=!0,QM(U,J)}function Su($,U,J,G){if(!J||U.done)return;let X=G(J);if(!X)return;$.events.push(X),U.done=!0}async function bu($){let{promise:U,resolve:J}=Promise.withResolvers();$.resolver=J,await U,$.resolver=void 0}function x6($){return $.startedAt??$.createdAt}function ZM($){switch($.status){case"completed":{let U=$.updatedAt-x6($);return new R4($.id,$.result,U)}case"failed":{let U=Error($.error??"Workflow failed");if($.errorStack)U.stack=$.errorStack;return new R6($.id,U)}case"cancelled":return new T4($.id);case"timed-out":{let U=$.updatedAt-x6($);return new T6($.id,"execution",U,$.terminationReason)}default:return null}}var RH=Symbol("handleResultPromise");class TH extends EventTarget{id;#$;#U;constructor($,U){super();this.id=$,this.#$=U,this.#U=void 0}async result(){return this.#U??=this.#$[RH](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,r$($),U,J)}async update($,U,J){return this.#$.update(this.id,r$($),U,J)}async query($,U){return this.#$.query(this.id,r$($),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*XM(this,()=>this.#$.get(this.id),ZM)}[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 R6)X=!0,$.error?.(_.error);else if(_ instanceof T6)X=!0,$.error?.(new c1(_.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=ZM(_);if(!H)return;if(J?.(H),H instanceof R6)Q(H);else if(H instanceof T6)Q(H);else Y()})(),{unsubscribe:U.abort.bind(U)}}}}async[Symbol.asyncDispose](){}}function vu($,U,J){if(J===void 0||J<=0)return 0;let G=BigInt(`0x${TG(`${$}\x00${U}`)}`);return Number(G%BigInt(J))}function R0($,U){return U+vu($.id,U,$.jitterMs)}var gu=new Map([["Sun",0],["Mon",1],["Tue",2],["Wed",3],["Thu",4],["Fri",5],["Sat",6]]),YM=new Map;function _M(){return"UTC"}function jM($){let U=YM.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 YM.set($,J),J}function Iu($,U){let G=jM(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 EH($,U){let J=jM(U).formatToParts(new Date($)),G=new Map(J.map((Z)=>[Z.type,Z.value])),X=G.get("weekday"),Q=X?gu.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 hu($,U){return $.year===U.year&&$.month===U.month&&$.day===U.day&&$.hour===U.hour&&$.minute===U.minute&&$.second===U.second}function J1($,U,J){let G=Date.UTC($.year,$.month-1,$.day,$.hour,$.minute,$.second),X=G;for(let Y=0;Y<6;Y+=1){let _=Iu(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)=>hu($,EH(Y,U))).toSorted((Y,_)=>Y-_)[0]??null}function AX($,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 x8($,U){for(let J of $)if(J>U)return{value:J,wrapped:!1};return{value:$[0],wrapped:!0}}function HM($,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 yu=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]]),mu=new Map([["SUN",0],["MON",1],["TUE",2],["WED",3],["THU",4],["FRI",5],["SAT",6]]);function DM($,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 ku($,U){return{values:Array.from({length:U-$+1},(J,G)=>$+G),wildcard:!0}}function fu($,U){let J=U===void 0?1:Number.parseInt(U,10);if(!Number.isInteger(J)||J<=0)throw Error(`Invalid cron step "${$}"`);return J}function LM($,U,J,G){for(let X=U;X<=J;X+=G)$.add(X)}function uu($,U,J,G,X){let[Q="",Z]=U.split("/"),Y=fu(U,Z);if(Q==="*"||Q==="?"){LM($,J,G,Y);return}let[_,H]=Q.split("-"),D=DM(_,X,J,G),L=H===void 0?D:DM(H,X,J,G);if(D>L)throw Error(`Invalid cron range "${U}"`);LM($,D,L,Y)}function T0($,U,J,G){let X=$.trim();if(X==="*"||X==="?")return ku(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 "${$}"`);uu(Q,_,U,J,G)}return{values:[...Q].toSorted((Y,_)=>Y-_),wildcard:!1}}function p1($){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:T0(G,0,59),minutes:T0(X,0,59),hours:T0(Q,0,23),daysOfMonth:T0(Z,1,31),months:T0(Y,1,12,yu),daysOfWeek:T0(_,0,6,mu)}}function d1($){return $+1000}function wu($){return{year:$.year,month:$.month,day:$.day,hour:0,minute:0,second:0}}function cu($,U,J,G){let X=x8(J.months.values,U.month);return J1({year:U.year+(X.wrapped?1:0),month:X.value,day:1,hour:0,minute:0,second:0},G,d1($))??$+86400000}function VM($,U,J){return J1(AX(wu(U),{days:1}),J,d1($))??$+86400000}function pu($,U,J,G){let X=x8(J.hours.values,U.hour);return J1({year:U.year,month:U.month,day:U.day,hour:X.value,minute:0,second:0},G,d1($))??VM($,U,G)}function du($,U,J,G){let X=x8(J.minutes.values,U.minute),Q=J1({year:U.year,month:U.month,day:U.day,hour:U.hour,minute:X.value,second:0},G,d1($));if(Q!==null)return Q;return J1(AX({year:U.year,month:U.month,day:U.day,hour:U.hour,minute:0,second:0},{hours:1}),G,d1($))??$+3600000}function lu($,U,J,G){let X=x8(J.seconds.values,U.second),Q=J1({year:U.year,month:U.month,day:U.day,hour:U.hour,minute:U.minute,second:X.value},G,d1($));if(Q!==null)return Q;return J1(AX({year:U.year,month:U.month,day:U.day,hour:U.hour,minute:U.minute,second:0},{minutes:1}),G,d1($))??$+60000}function CX($,U,J){let G=typeof $==="string"?p1($):$,X=J?.timeZone??_M(),Q=R$(Math.floor(U/1000)*1000+1000,"Cron occurrence candidate");for(let Z=0;Z<1e5;Z+=1){let Y=EH(Q,X);if(!G.months.values.includes(Y.month)){Q=cu(Q,Y,G,X);continue}if(!HM(Y,G)){Q=VM(Q,Y,X);continue}if(!G.hours.values.includes(Y.hour)){Q=pu(Q,Y,G,X);continue}if(!G.minutes.values.includes(Y.minute)){Q=du(Q,Y,G,X);continue}if(!G.seconds.values.includes(Y.second)){Q=lu(Q,Y,G,X);continue}return Q}throw Error(`Could not find the next cron occurrence for "${G.expression}"`)}function xH($,U,J,G){let X=typeof $==="string"?p1($):$,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(_),_=CX(X,_,G);return Q}var SH=new Set(["active","paused","cancelled"]),bH=new Set(["skip","queue","cancel-running","allow"]);function S8($){return typeof $==="number"&&Number.isSafeInteger($)&&$>=0}function iu($){return typeof $==="string"&&SH.has($)}function nu($){return typeof $==="string"&&bH.has($)}function RX($){if(typeof $!=="string")return!1;try{return M4($,"schedule id"),!0}catch{return!1}}function G1($,U){return M4($,U)}function BM($){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=G1(U,"options.id");if(J!==void 0){if(!bH.has(J))throw Error(`options.overlap must be one of ${[...bH].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=ru(X,"options.jitter");return Q}function ru($,U){if(typeof $!=="string"&&typeof $!=="number")throw Error(`${U} must be a duration string or a number of milliseconds`);let J;try{J=_$($)}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 ou($){if(typeof $!=="string"&&typeof $!=="number")throw Error('Schedule interval "every" must be a duration string or a number of milliseconds');let U;try{U=_$($)}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 FM($){if(typeof $!=="string")throw Error('Schedule "cron" must be a string');return p1($),{kind:"cron",cronExpression:$}}function vH($){if(typeof $==="string")return FM($);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?ou($.every):FM($.cron)}function su($){if($===void 0)return;let U=Array.isArray($)?$:[$];for(let J of U)if(!SH.has(J))throw Error(`filter.status must be one of ${[...SH].join(", ")}`)}function au($){if($===void 0)return;if(typeof $!=="string"||$.length===0)throw Error("filter.workflowType must be a non-empty string when provided")}function zM($,U){if($===void 0)return;if(!Number.isSafeInteger($)||$<0)throw Error(`filter.${U} must be a non-negative safe integer when provided`)}function PM($){if($===void 0)return;if(typeof $!=="object"||$===null)throw Error("filter must be an object when provided");return su($.status),au($.workflowType),zM($.limit,"limit"),zM($.offset,"offset"),$}function K$($,U){let J=$===void 0?"[weft] Ignoring malformed schedule record":`[weft] Ignoring malformed schedule "${$}"`;return console.warn(`${J} ${U}.`),null}function tu($,U){let{cronExpression:J,intervalMs:G}=$,X=J!==void 0,Q=G!==void 0;if(X===Q)return K$(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 K$(U,"with invalid intervalMs");return{intervalMs:G}}if(typeof J!=="string")return K$(U,"with invalid cronExpression");try{p1(J)}catch{return K$(U,"with invalid cronExpression")}return{cronExpression:J}}function eu($){let U=$.id;if(!RX(U))return K$(void 0,"with invalid id");let J=$.workflowType;if(typeof J!=="string"||J.length===0)return K$(U,"with invalid workflowType");let G=tu($,U);if(!G)return null;let X=$.status;if(!iu(X))return K$(U,"with invalid status");let Q=$.overlap;if(!nu(Q))return K$(U,"with invalid overlap policy");return{id:U,workflowType:J,status:X,overlap:Q,...G}}function $w($,U){let J=$.backfill;if(typeof J!=="boolean")return K$(U,"with invalid backfill flag"),null;return J}function Uw($,U){let J=$.jitterMs;if(J===void 0)return;if(typeof J!=="number"||!Number.isSafeInteger(J)||J<=0)return K$(U,"with invalid jitterMs"),null;return J}function Jw($,U){let{createdAt:J,updatedAt:G}=$;if(!S8(J)||!S8(G))return K$(U,"with invalid timestamps");let X=$.lastFireAt;if(X!==void 0&&!S8(X))return K$(U,"with invalid lastFireAt");let Q=$.lastMissedFireAt;if(Q!==void 0&&!S8(Q))return K$(U,"with invalid lastMissedFireAt");return{createdAt:J,updatedAt:G,...X!==void 0&&{lastFireAt:X},...Q!==void 0&&{lastMissedFireAt:Q}}}function Gw($,U){let J=$.nextFireAt;if(J===void 0)return K$(U,"with invalid nextFireAt"),{ok:!1};if(J!==null&&!S8(J))return K$(U,"with invalid nextFireAt"),{ok:!1};return{ok:!0,value:J}}function Xw($,U){let J=$.currentWorkflowId;if(J===void 0)return{ok:!0};if(!RX(J))return K$(U,"with invalid currentWorkflowId"),{ok:!1};return{ok:!0,value:J}}function Qw($,U){let J=$.queuedRuns;if(typeof J!=="number"||!Number.isSafeInteger(J)||J<0)return K$(U,"with invalid queuedRuns"),null;return J}function Zw($,U){let J=$.missedFireCount;if(J===void 0)return 0;if(typeof J!=="number"||!Number.isSafeInteger(J)||J<0)return K$(U,"with invalid missedFireCount"),null;return J}function Yw($,U){let J=$w($,U);if(J===null)return null;let G=Uw($,U);if(G===null)return null;let X=Jw($,U);if(X===null)return null;let Q=Gw($,U);if(!Q.ok)return null;let Z=Xw($,U);if(!Z.ok)return null;let Y=Qw($,U);if(Y===null)return null;let _=Zw($,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 b8($){let U=N($);if(!i6(U))return console.warn("[weft] Ignoring malformed schedule record with non-object payload."),null;let J=eu(U);if(!J)return null;let G=Yw(U,J.id);if(!G)return null;return{...J,input:U.input,...G}}async function Q6($,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(F.workflow(U));if(!J)return null;return i(J)}async function KM($,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-x6(J):0;throw new c1(U,"execution",G)}throw Error(`Workflow "${U}" is still ${J.status}`)}function _w($,U,J,G){let X=G.includePendingAtomicSideEffects?WX($,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 TX($,U,J,G={}){let X=_w($,U.id,J,G);if(await Z$($,X.operations,X.conditions,()=>Error(`Workflow state commit for workflow "${U.id}" lost its atomic side-effect precondition.`)),X.hasPendingSideEffects)MX($,U.id)}async function l1($,U){let J=await $.storage.get(F.schedule(U));return J?b8(J):null}async function v8($,U){let J=await l1($,U);if(!J)throw Error(`Schedule "${U}" not found`);return J}async function Z6($,U,J){let G=[{type:"put",key:F.schedule(U.id),value:M(U)}];if((J?.includeTimer??U.status==="active")&&U.status==="active"&&U.nextFireAt!==null){let Q=R0(U,U.nextFireAt);G.push(...Q$({id:J0(U.id),workflowId:U.id,fireAt:Q,kind:"schedule"}))}await $.storage.batch(G)}async function WM($,U){let J=await $.storage.get(F.workflowHeaders(U));if(!J)return;return eP(J)}var jw=new Uint8Array(0);async function gH($,U,J){if(J===void 0){let X=await $.storage.get(F.attribute(U));if(!X)return;J=N(X)}let G=q$(U,J,{});if(G.push({type:"delete",key:F.attribute(U)}),G.length>0)await $.storage.batch(G)}function EX($,U){return{...Object.fromEntries(Object.entries($).filter(([G])=>G.startsWith("weft:"))),...U}}async function IH($,U,J){if(Object.keys(J).length===0)return;let G=q$(U,{},J);await $.storage.batch([{type:"put",key:F.attribute(U),value:M(J)},...G])}function E0($,U){let J=[];if(B$($.status))J.push({type:"delete",key:F.terminalWorkflow($.updatedAt,$.id)});if(B$(U.status))J.push({type:"put",key:F.terminalWorkflow(U.updatedAt,U.id),value:jw});return J}async function hH($,U,J,G={}){return await Q6($,U,async()=>{let X=await $.storage.get(F.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 TX($,Q,[...E0(Q,Y),{type:"put",key:F.workflow(U),value:M(Y)},...m$(U,Q,Y).batchOps,..._],{includePendingAtomicSideEffects:B$(Y.status)}),{previousState:Q,updatedAt:Z}})}async function xX($,U,J,G){return await Q6($,U,async()=>{let X=await $.storage.get(F.workflow(U));if(!X)throw new W4(U);let Q=i(X),Z=z$(Q.tags)??[],Y=Lw(J,"Workflow tags")??[];if(Y.length===0)return!1;let _=Hw(Z,Y,G);if(Dw(Z,_))return!1;let H={...Q,updatedAt:$.options.getNow()};if(_!==void 0)H.tags=_;else delete H.tags;return await $.storage.batch([...E0(Q,H),{type:"put",key:F.workflow(U),value:M(H)},...m$(U,Q,H).batchOps,...oU(U,Z,_)]),!0})}function Hw($,U,J){let G=new Set($);for(let Q of U)if(J==="add")G.add(Q);else G.delete(Q);let X=z$([...G]);if(J==="add"&&X!==void 0)Mj(X,"Workflow tags");return X}function Dw($,U){return $.length===(U?.length??0)&&$.every((J,G)=>J===U?.[G])}async function MM($,U,J,G,X){s6(U);let Q=X??await Vw($,U),Z=0;for(let Y of Q){let _=!1;try{_=await xX($,Y,J,G)}catch(H){if(!(H instanceof W4))throw H}if(_)Z+=1}return{modified:Z}}function x0($){for(let[U,J]of Object.entries($))if(Array.isArray(J))for(let G of J)Tj(M$(G),U);else Tj(M$(J),U)}function Lw($,U="options.tags"){if($===void 0)return;return z$(D$($,U))}async function Vw($,U){let J=[],G=eU(U?.offset,"offset")??0,X=eU(U?.limit,"limit");if(X===0)return J;for await(let Q of wG($,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 SX=new WeakMap;function bX($,U,J){let G=SX.get($);if(!G)G=new Map,SX.set($,G);G.set(U,new Uint8Array(J))}function qM($,U){let J=SX.get($)?.get(U);return J?new Uint8Array(J):void 0}function X1($,U){SX.get($)?.delete(U)}var vX=1000;async function OM($,U,J){let G=U===void 0?void 0:rU(U),X=z$(G?.tags),Q=await lG($,G,X),Z=Q!==null?await Fw($,Q,G,X,J):await zw($,G,X,J);return UK(Pw(Z),G)}async function Fw($,U,J,G,X){let Q=[...U];if(Q.length>n6)throw new O6(n6);let Z=[];for(let Y=0;Y<Q.length;Y+=U6){let _=Q.slice(Y,Y+U6),H=await Promise.all(_.map((z)=>$.storage.get(F.workflow(z)))),D=await iG($,H,J),L=[];for(let z of H){if(!z)continue;let B=i(z);if(!A4(B,J,U,G,D.get(B.id)??null))continue;L.push(B)}Z.push(...await Bw($,L,X))}return Z}async function zw($,U,J,G){let X=[],Q=0;for await(let[Z,Y]of $.storage.scan("wf:")){if(!H8(Z))continue;if(Q+=1,Q>n6)throw new O6(n6);let _=i(Y),H=await nG($,_.id,U);if(!A4(_,U,null,J,H))continue;let D=AM(_,G)?await $.storage.get(F.attribute(_.id)):null;X.push(TM(_,CM(D)))}return X}async function Bw($,U,J){let G=new Map;return await Promise.all(U.map(async(X)=>{if(!AM(X,J))return;G.set(X.id,await $.storage.get(F.attribute(X.id)))})),U.map((X)=>TM(X,CM(G.get(X.id)??null)))}function AM($,U){return U?.includeFailureCategory===!0&&$.status==="failed"&&($.failureCategory===void 0||$.failureCategory===null)}function CM($){if($===null)return;let U=N($);if(!RM(U))return;let J=U.failureCategory;if(l6(J))return J;return NG(J)}function RM($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function TM($,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 Pw($){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*yH($,U){yield*wG($,U)}async function*mH($,U){let J=Kw(U);if(NM(J))return;let G=[];for await(let X of yH($,U)){if(Ww(J))continue;if(G.push(X),Mw(J),G.length===vX)yield G,G=[];if(NM(J))break}if(G.length>0)yield G}function Kw($){return{remainingOffset:eU($?.offset,"offset")??0,remainingLimit:eU($?.limit,"limit")}}function Ww($){if($.remainingOffset<=0)return!1;return $.remainingOffset-=1,!0}function Mw($){if($.remainingLimit===void 0)return;$.remainingLimit-=1}function NM($){return $.remainingLimit===0}async function EM($,U){let J=await $.storage.get(F.attribute(U));if(!J)return null;let G=N(J);if(!RM(G))return null;return G}async function xM($,U,J){let G=await $.storage.get(F.workflow(U));if(G){let H=i(G),D=$.registrations.get(H.type);if(D?.searchAttributes){let L=D.searchAttributes;for(let[z,B]of Object.entries(J)){if(!(z in L))throw Error(`Unknown search attribute "${z}". Registered attributes: ${Object.keys(L).join(", ")}`);l4(z,B,L[z])}}}x0(J);let X=await $.storage.get(F.attribute(U)),Q=X?N(X):{},Z={...Q,...J},Y=q$(U,Q,Z),_=[{type:"put",key:F.attribute(U),value:M(Z)},...Y];await $.storage.batch(_)}async function SM($,U,...J){await xX($,U,J,"add")}async function bM($,U,...J){await xX($,U,J,"remove")}var gX=60000;async function g8($,U,J,G){let{effectiveLimit:X,manualOffset:Q}=Ow($,U,J.limit);if(X===0)return{deleted:0};let Z=Q,Y=0,_=J.expiredOnly&&U===void 0?Nw($,J.now):yH($,U);for await(let H of _){if(!await Tw($,H,J.expiredOnly,J.now))continue;if(Z>0){Z-=1;continue}if(await kH($,H,G),Y+=1,X!==void 0&&Y>=X)break}return{deleted:Y}}function qw($){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*Nw($,U){let J=qw($);if(J===null)return;let G=F.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),_=d6(Y);if(_===null)continue;let H=await $.storage.get(F.workflow(_));if(!H){await $.storage.delete(Z);continue}let D=i(H);if(!B$(D.status))continue;yield D}}function Ow($,U,J){return{manualOffset:Aw(U?.offset),effectiveLimit:Rw(Cw(U?.limit),J)}}function Aw($){if($===void 0)return 0;if(!Number.isFinite($))return 0;if($<=0)return 0;return Math.floor($)}function Cw($){if($===void 0)return;if(!Number.isFinite($))return;if($<0)return;return Math.floor($)}function Rw($,U){if($===void 0)return U;if(U===void 0)return $;return Math.min($,U)}async function Tw($,U,J,G){if(!B$(U.status))return!1;if(await h$($.storage,F.teardownOwed(U.id)))return!1;if(!J)return!0;let X=Ew($,U);return X!==null&&X<=G}function Ew($,U){if(!B$(U.status))return null;let J=$.registrations.get(U.type)?.retention??$.options.retention,G=nP(J,U.status);if(G===void 0)return null;return U.updatedAt+G}async function kH($,U,J){let G=await fH($,U);await $.storage.batch(G),uH($,U.id,J)}async function fH($,U){let J=U.id,G=await $.storage.get(F.attribute(J)),X=xw(U,G),Q=await vw($,U);return pw(X,Q),X.push(...m$(J,U,null).batchOps),X}function uH($,U,J){X1($,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 xw($,U){return[...Sw($.id,U),...bw($)]}function Sw($,U){if(!U)return[];let J=N(U);return q$($,J,{}).filter(vM)}function bw($){return oU($.id,z$($.tags),void 0).filter(vM)}function vM($){return $.type==="delete"}async function vw($,U){let J=U.id,G=gw(U);return Iw(G,U),hw(G,U),await mw($.storage,G,J),await fw($.storage,G,J),G}function gw($){return new Set([F.workflow($.id),F.checkpoint($.id),F.workflowHeaders($.id),F.terminalCleanupNeeded($.id),F.workflowConcurrencyHolder($.id),F.workflowHasServices($.id),F.finalizerState($.id),F.teardownOwed($.id),F.attribute($.id),F.terminalWorkflow($.updatedAt,$.id)])}function Iw($,U){if(U.executionDeadline===void 0)return;$.add(F.deadline(U.executionDeadline,U.id)),$.add(`timer-idx:deadline:${U.id}`)}function hw($,U){if(U.terminalCleanupToken===void 0)return;let J=G0(yw(U),U.terminalCleanupToken);$.add(F.terminalCleanup(U.updatedAt+gX,J))}function yw($){return $.status==="cancelled"||$.status==="timed-out"}async function mw($,U,J){let G=F.updatePrefix(J),X=await gM($,G);for(let Q of X)U.add(Q),kw(U,G,Q)}function kw($,U,J){let G=J.slice(U.length);if(G.length>0)$.add(F.updateResponse(G))}async function fw($,U,J){for(let G of cw(J)){let X=await gM($,G);for(let Q of X)U.add(Q)}await uw($,U,J)}async function uw($,U,J){let G=F.fleetEventByWorkflowPrefix(J);for await(let[X]of $.scan(G)){U.add(X);let Q=ww(G,X);if(Q!==null)U.add(F.fleetEvent(Q))}}function ww($,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 cw($){let U=O($);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}:`,DX($),`sigres:v1:${U}:`]}function pw($,U){for(let J of U)$.push({type:"delete",key:J})}async function gM($,U){let J=[];for await(let G of HG($,U))J.push(G);return J}function IX($){let U=new WeakSet,J=(G)=>{if(dw(G))return!0;if(lw(G))return!1;if(Array.isArray(G))return iw(G,U,J);if(typeof G==="object")return nw(G,U,J);return!1};return J($)}function IM($){if($===void 0)return null;if($ instanceof Error)return{name:$.name,message:$.message};if(IX($))return $;try{let U=JSON.stringify($);if(U===void 0)return wH($);let J=JSON.parse(U);return IX(J)?J:wH($)}catch{return wH($)}}function dw($){if($===null)return!0;if(typeof $==="number")return Number.isFinite($);return typeof $==="string"||typeof $==="boolean"}function lw($){let U=typeof $;return U==="undefined"||U==="bigint"||U==="function"||U==="symbol"}function iw($,U,J){if(U.has($))return!1;U.add($);for(let G of $)if(!J(G))return!1;return U.delete($),!0}function nw($,U,J){if(!rw($))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 wH($){if(typeof $==="bigint")return $.toString();if(typeof $==="symbol")return $.description??null;return null}function rw($){if(!$||typeof $!=="object")return!1;let U=Reflect.getPrototypeOf($);return U===Object.prototype||U===null}function I8($){let U=cH($);return TG(U)}var ow="\x00undefined";function cH($){if($===null)return"null";if($===void 0)return ow;if(typeof $!=="object")return JSON.stringify($);if(Array.isArray($))return"["+$.map(cH).join(",")+"]";let U=$;return"{"+Object.keys(U).toSorted().filter((G)=>U[G]!==void 0).map((G)=>`${JSON.stringify(G)}:${cH(U[G])}`).join(",")+"}"}function sw($){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 IX(U.output)&&typeof U.completedAt==="number";if(J==="aborted")return typeof U.reason==="string"&&typeof U.completedAt==="number";return!1}class aw{#$;#U;#J;#G=0;constructor($,U,J){this.#$=$,this.#U=U,this.#J=J}get duplicatesPrevented(){return this.#G}recordReplay(){this.#G++}async lookup($){let U=F.toolEffect(this.#U,this.#J,$),J=await this.#$.get(U);if(!J)return null;let G=N(J);if(!sw(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:IM(J),completedAt:Date.now()};await this.#X($,G)}async abort($,U,J){let G={status:"aborted",effectName:U,reason:J,completedAt:Date.now()};await this.#X($,G)}async#X($,U){let J=F.toolEffect(this.#U,this.#J,$);await this.#$.put(J,M(U))}}var hM=20,tw=1,ew={method:"in-process"};function yX($,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 h8($,U,J,G,X,Q){let Z=await Qc($,J);return dH(U,G,X,Z,Q)}function dH($,U,J,G,X){let Q=Uc(U),Z=$c(Q,G),Y=Jc($,Q,J,Z,X),_=Gc($,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 $c($,U){let J=U.slice(0,hM).map((G)=>G.id);return{matched:U.length,filter:$,statuses:pH(U.map((G)=>G.status)),workflowTypes:pH(U.map((G)=>G.type)),sampleWorkflowIds:J,sampleLimit:hM}}function Uc($){let U={};if($.status!==void 0)U.status=Array.isArray($.status)?pH($.status):$.status;if($.type!==void 0)U.type=$.type;let J=z$($.tags);if(J!==void 0)U.tags=J;if($.attributes!==void 0)U.attributes=$.attributes.map((G)=>({key:A$(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)=>I8(G).localeCompare(I8(X)));if($.limit!==void 0)U.limit=$.limit;if($.offset!==void 0)U.offset=$.offset;return U}function Jc($,U,J,G,X){let Q=X.requestId?.trim();if(Q!==void 0&&Q.length>0)return Q;return`bulk:${I8({action:$,actionParameters:hX(J),filterSummary:U,matched:G.matched,sampleWorkflowIds:G.sampleWorkflowIds})}`}function Gc($,U,J,G){return`bulk:${I8({version:1,action:$,actionParameters:hX(J),filterSummary:U,workflows:G.map((X)=>({id:X.id,status:X.status}))})}`}function S0($,U){if($.confirmationToken===void 0)return;if($.confirmationToken===U.confirmationToken)return;throw new d$}function b0($){return $.confirmationToken!==void 0||$.requestId!==void 0||$.principal!==void 0}async function v0($,U,J,G,X){let Q=await Xc($,U,J,X);return{...G,auditEvent:Q}}async function Xc($,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??ew,filterSummary:U.scope.filter,scope:U.scope,affectedCount:G,sampleWorkflowIds:U.scope.sampleWorkflowIds,confirmationToken:U.confirmationToken};return await $.storage.put(F.bulkOperationAudit(X,Z,U.confirmationToken),M(Y)),Y}function g0($){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>r2)throw Error(`Field "confirmationToken" must be at most ${String(r2)} characters`);if($.requestId!==void 0&&$.requestId.length>O1)throw Error(`Field "requestId" must be at most ${String(O1)} characters`);return $}function y8($){return $.bulkConcurrency??tw}function m8($,U,J){return{id:U,error:J instanceof Error?J.message:String(J)}}async function Qc($,U){let J=[];for await(let G of mH($,U))for(let X of G)J.push(yM(X));return J}function yM($){return{id:$.id,type:$.type,status:$.status,updatedAt:$.updatedAt}}function pH($){return[...new Set($)].toSorted((U,J)=>U.localeCompare(J))}function hX($){if(Zc($))return $;if(typeof $==="bigint")return $.toString();if(typeof $==="symbol")return String($);if(typeof $==="function")return"[function]";if(Array.isArray($))return $.map(hX);let U=$,J={};for(let G of Object.keys(U).toSorted())J[G]=hX(U[G]);return J}function Zc($){return $===null||$===void 0||typeof $==="string"||typeof $==="number"||typeof $==="boolean"}async function mM($,U){let J=[];for await(let G of mH($,U))for(let X of G){if(!B$(X.status))throw new d4;J.push(yM(X))}return J}function I0(){return{holders:[],waiters:[]}}function Yc($){if($===void 0)return I0();return{holders:Array.isArray($.holders)?$.holders:[],waiters:Array.isArray($.waiters)?$.waiters:[]}}function _c($,U){return $.filter((J)=>J.leaseExpiresAt>U)}function lH($,U){let{holderId:J,now:G}=U,X=Yc($);return{holders:_c(X.holders,G).filter((Q)=>Q.holderId!==J),waiters:X.waiters.filter((Q)=>Q!==J)}}var iH=1,kM=Number.MAX_SAFE_INTEGER;function jc($,U){return{key:k1($),expectedValue:U===0?null:M(U)}}function Hc($){if($===void 0)return I0();return{holders:Array.isArray($.holders)?$.holders:[],waiters:Array.isArray($.waiters)?$.waiters:[]}}function Dc($,U){return $.filter((J)=>J.leaseExpiresAt>U)}function Lc($,U){let J=Hc($),G=Dc(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:kM}:X),waiters:[]}};if(G.length>=U.limit)return{acquired:!1,record:{holders:G,waiters:[]}};return{acquired:!0,record:{holders:[...G,{holderId:U.workflowId,leaseExpiresAt:kM}],waiters:[]}}}function Vc($,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 Fc($,U){return{version:iH,workflowType:$,partitionKey:U}}function zc($){let U=N($);if(typeof U!=="object"||U===null)return null;let J=U;if(J.version!==iH||typeof J.workflowType!=="string"||typeof J.partitionKey!=="string")return null;return{version:iH,workflowType:J.workflowType,partitionKey:J.partitionKey}}async function mX($,U,J,G,X){let Q=Vc(U,G,X),Z=F.workflowConcurrency(U,Q),Y=await f1($.storage,Z,{initial:I0()}),_=Lc(Y.value,{workflowId:J,now:$.options.getNow(),limit:X.max});if(!_.acquired)throw new YG({workflowType:U,limit:X.max,partitionKey:Q});return{stateKey:Z,conditions:[jc(Z,Y.version)],operations:[{type:"put",key:Z,value:M(_.record)},{type:"put",key:k1(Z),value:M(Y.version+1)},{type:"put",key:F.workflowConcurrencyHolder(J),value:M(Fc(U,Q))},{type:"put",key:F.terminalCleanupNeeded(J),value:new Uint8Array(0)}]}}async function h0($,U){let J=F.workflowConcurrencyHolder(U),G=await $.storage.get(J);if(G===null)return;let X=zc(G);if(X===null){await $.storage.delete(J);return}let Q=F.workflowConcurrency(X.workflowType,X.partitionKey);await new Q0($.storage,Q,{initial:I0()}).update((Y)=>lH(Y,{holderId:U,now:$.options.getNow()})),await $.storage.delete(J)}var fM=["pending","running","suspended"],Bc=["failed"],Pc=5;async function kX($,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 uM($,U,J){return g8($,U,{expiredOnly:!1,now:$.options.getNow()},J)}async function Kc($,U,J={}){J=g0(J),s6(U);let G=yX($,U,fM),X=await h8($,"cancel",G,U,{},J);if(J.dryRun===!0)return X.preview;S0(J,X);let Q=X.workflowIds,Z=y8(J),Y=0,_=[],H=await kX(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(z){return{status:"failed",error:m8($,L,z)}}});for(let L of H){if(L.status==="rejected"){_.push(m8($,L.item,L.reason));continue}let{value:z}=L;if(z.status==="cancelled"){Y+=1;continue}_.push(z.error)}let D={cancelled:Y,failed:_.length,errors:_};if(!b0(J))return D;return v0($,X,J,D,Y)}async function wM($,U,J={}){return Kc($,U,J)}async function Wc($,U,J={}){J=g0(J),s6(U);let G=yX($,U,Bc),X=await h8($,"retry-failed",G,U,{},J);if(J.dryRun===!0)return X.preview;S0(J,X);let Q=y8(J),Z=0,Y=[],_=await kX(X.workflowIds,Q,async(D)=>{try{return await Mc($,D),{status:"retried"}}catch(L){return{status:"failed",error:m8($,D,L)}}});for(let D of _){if(D.status==="rejected"){Y.push(m8($,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(!b0(J))return H;return v0($,X,J,H,Z)}async function cM($,U,J={}){return Wc($,U,J)}async function Mc($,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(F.checkpoint(U))!==null){await qc($,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 qc($,U){let J=await Q6($,U.id,async()=>Nc($,U.id));if(J.terminalCleanupTimerId!==void 0)await $.scheduler.cancel(J.terminalCleanupTimerId,U.id)}async function Nc($,U){let J;for(let G=0;G<Pc;G+=1){let X=await $.storage.get(F.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(F.checkpoint(U));if(Z===null)throw Error("Checkpoint no longer exists");let Y=V$(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 mX($,Q.type,U,Q.input,_.concurrency);J=H?.stateKey??J;let D=Ac($,Q),L=await Cc($,U),z=[...E0(Q,D),{type:"put",key:F.workflow(U),value:M(D)},...m$(U,Q,D).batchOps,...Rc(U,L,Y.searchAttributes),...D.executionDeadline===void 0?[]:Q$({id:`deadline:${U}`,workflowId:U,fireAt:D.executionDeadline,kind:"execution-deadline"}),...H?.operations??[]],B=H?.conditions??[];if(await Oc($,z,B))return{terminalCleanupTimerId:Q.terminalCleanupToken===void 0?void 0:G0(!1,Q.terminalCleanupToken)}}throw Error(`Workflow concurrency admission for "${J??U}" changed too many times while retrying failed workflow "${U}"`)}async function Oc($,U,J){if(J.length===0)return await $.storage.batch(U),!0;return X$($.storage,"conditionalBatch","retry failed workflow"),$$($.storage,J,U)}function Ac($,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 Cc($,U){let J=await $.storage.get(F.attribute(U));if(J===null)return{};return N(J)}function Rc($,U,J){let G=q$($,U,J);if(Object.keys(J).length===0)G.push({type:"delete",key:F.attribute($)});else G.push({type:"put",key:F.attribute($),value:M(J)});return G}async function nH($,U,J,G,X){let Q=g0(X??{});if(s6(U),J.length===0)throw Error('Field "name" must be a non-empty string');let Z=yX($,U,fM),Y=await h8($,"signal",Z,U,{name:J,payload:G},Q);if(Q.dryRun===!0)return Y.preview;S0(Q,Y);let _=Y.workflowIds,H=y8(Q),D=0,L=0,z=await kX(_,H,async(W)=>{try{return await $.engine.signal(W,J,G),{status:"signalled"}}catch{return{status:"failed"}}});for(let W of z)if(W.status==="fulfilled"&&W.value.status==="signalled")D+=1;else L+=1;let B={signalled:D,failed:L};if(!b0(Q))return B;return v0($,Y,Q,B,D)}async function Tc($,U,J,G={}){G=g0(G),s6(U);let X=await mM($,U),Q=dH("delete",U,{},X,G);if(G.dryRun===!0){let D=[];for(let L of Q.workflowIds)if(await h$($.storage,F.teardownOwed(L)))D.push(L);return D.length>0?{...Q.preview,skippedTeardownPending:D}:Q.preview}S0(G,Q);let Z=y8(G),Y=0,_=[];for(let D=0;D<Q.workflowIds.length;D+=vX){let L=Q.workflowIds.slice(D,D+vX),z=await Ec($,L),B=[];for(let I of z)if(await h$($.storage,F.teardownOwed(I.id)))_.push(I.id);else B.push(I);let W=await kX(B,Z,async(I)=>{return await kH($,I,J),I.id}),S=[];for(let I of W)if(I.status==="fulfilled")Y+=1;else S.push(I.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(!b0(G))return H;return v0($,Q,G,H,Y)}async function pM($,U,J,G={}){return Tc($,U,J,G)}async function Ec($,U){let J=[];for(let G of U){let X=await l($,G);if(X===null)continue;if(!B$(X.status))throw new d4;J.push(X)}return J}async function dM($,U,J,G={}){return iM($,U,J,"add",G)}async function lM($,U,J,G={}){return iM($,U,J,"remove",G)}async function iM($,U,J,G,X){X=g0(X),s6(U);let Z=await h8($,G==="add"?"tag:add":"tag:remove",U,U,{tags:J},X);if(X.dryRun===!0)return Z.preview;S0(X,Z);let Y=await MM($,U,J,G,Z.workflowIds);if(!b0(X))return Y;return v0($,Z,X,Y,Y.modified)}function fX($,U){let J=new TH(U,$.engine);return vc($,U,J),J}function xc($,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 nM($,U){let J=$.resultResolvers.get(U);if(J)return J.promise;if($.disposed){let X=Promise.reject(new p6);return X.catch(()=>{}),X}let G=xc($,U);return Sc($,U,G),G.promise}async function Sc($,U,J){try{let G=await l($,U);if(bc($,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 KM($,U);rH($,U,J),J.resolve(X)}catch(X){rH($,U,J),J.reject(X)}}catch(G){rH($,U,J),J.reject(G)}}function bc($,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 rH($,U,J){if($.resultResolvers.get(U)===J)$.resultResolvers.delete(U)}function vc($,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 gc=1000;function Ic($){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 hc(U.sequence,U.deletedThrough)}function hc($,U){return typeof $==="number"&&Number.isSafeInteger($)&&$>0&&U===$-1}async function Q1($,U){let J=await $.get(F.eventWatermark(U));if(J===null)return null;let G=N(J);return Ic(G)?G:null}async function rM($,U,J,G,X){if(G===null)return null;let Q=Math.max(0,J-G+1),Z=await Q1($,U),Y=Z?.sequence??0,_=Math.min(Q,Y+gc);if(_<=Y)return null;let H=await kc($,U,Y,_);if(H===null)return null;let D=RG(H.lastDeletedBytes),L={type:"event-log-watermark",version:1,sequence:_,prevHash:D,deletedThrough:_-1,...yc(mc(Z?.checkpointReplay,H.deletedEntries))};for(let z=Y;z<_;z+=1)X.push({type:"delete",key:F.event(U,z)});return X.push({type:"put",key:F.eventWatermark(U),value:M(L)}),{watermark:L,deletedEntries:H.deletedEntries,deletedRange:{from:Y,to:_-1}}}function yc($){return $===void 0?{}:{checkpointReplay:$}}function mc($,U){let J=$;for(let G of U){let X=N(G);if(!O4(X))continue;J=SG(J,tU(X.payload))}return J}async function kc($,U,J,G){let X=[],Q=J,Z=F.eventPrefix(U),Y=F.event(U,J),_=F.event(U,G);for await(let[,D]of $.scan(Z,{gte:Y,lt:_})){let L=N(D);if(!O4(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 oM($){return M($)}async function sM($,U){for(let G=0;G<5;G+=1){let X=await Q1($,U),Q=await Y8($,U),Z=await fc($,U,X,Q);if(Z.outcome==="ok")return{valid:!0};let Y=await Q1($,U),_=await Y8($,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 fc($,U,J,G){let X=J?.prevHash??Z8,Q=J?.sequence??0,Z=F.eventPrefix(U),Y=J?{gte:F.event(U,J.sequence)}:void 0,_=await wc($,Z,Y,X,Q);if(_.outcome==="invalid")return _;if(_.entriesSeen===0&&J!==null)return{outcome:"invalid",firstInvalidSequence:J.sequence};return uc(_,G)}function uc($,U){if(U.sequence===I1.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 wc($,U,J,G,X){let Q=G,Z=0,Y=-1;for await(let[,_]of $.scan(U,J)){let H=N(_);if(!O4(H))continue;let D=cc(H,Q,Z===0,X);if(D.outcome==="invalid")return D;Z+=1,Y=H.sequence,Q=EG(_)}return{outcome:"scanned",entriesSeen:Z,lastSequence:Y,lastHash:Q}}function cc($,U,J,G){if(J&&$.sequence!==G)return{outcome:"invalid",firstInvalidSequence:G};if($.prevHash!==U)return{outcome:"invalid",firstInvalidSequence:$.sequence};return{outcome:"ok"}}class o${#$;#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:F.event(this.#U,Z.sequence),value:Q},{type:"put",key:F.eventHead(this.#U),value:M(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:F.event(this.#U,Z.sequence),value:X},_={type:"put",key:F.eventHead(this.#U),value:M(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=F.eventPrefix(this.#U),G=F.event(this.#U,U);for await(let[,X]of this.#$.scan(J,{gte:G})){let Q=N(X);if(O4(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 sM(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=M(Q),Y=EG(Z);return{entry:Q,encoded:Z,hash:Y,newHead:{sequence:G,lastHash:Y}}}async#G(){return Y8(this.#$,this.#U)}}var aM="weft:forkedFrom",l$=new Uint8Array(0);async function oH($,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 tM($,U,J){if($.options.historyPolicy.maxEvents===null)return!1;let G=$.eventLogHeads.get(U)??await new o$($.storage,U).loadHead();return oH($,U,G,J)}function k8($,U,J){return J.createWorkflowHandleWithResultPromise(U)}function x4($,U,J,G){if(!J||J.size===0){$.workflowHeaders.delete(U);return}$.workflowHeaders.set(U,new Map(J)),$.workflowsNeedingTerminalCleanup.add(U)}async function i1($,U,J){return WM($,U)}async function sH($,U,J){if(await h$($.storage,F.terminalCleanupNeeded(U)))$.workflowsNeedingTerminalCleanup.add(U)}function aH($,U,J,G){if(U===void 0)return;return z$(D$(U,J??"options.tags"))}async function tH($,U,J){try{await J.processPendingUpdatesForHandlers(U)}catch(G){J.handleCleanupError("processPendingUpdates",G,U)}}function y0($,U,J){return{workflowVersion:U.version}}function uX($,U,J){return U.versionTuple}function wX($,U,J,G,X,Q){let Z=fP(G.version,X.version),Y=y0($,X,Q),_=yP(uX($,J,Q),Y),H=_.workflowVersion!==void 0||_.agentVersion!==void 0||_.toolVersions!==void 0;if(Z==="incompatible"||H)eM($,U,J,X,_,Q);return{state:J,checkpoint:G,versionTuple:Y,shouldPersistPreparedState:!1}}async function eH($,U,J,G,X,Q,Z){let Y=wX($,U,J,G,Q,Z),_=await y1($.storage,U,Y.checkpoint);return{state:Y.state,checkpoint:_,serializedCheckpoint:X,versionTuple:Y.versionTuple}}function eM($,U,J,G,X,Q){throw new mj(U,J.type,J.versionTuple.workflowVersion,G.version,void 0,X)}var pc="EngineOptions.resolveWorkflowServices";async function pX($,U,J,G,X=()=>{}){let Q=$.options.resolveWorkflowServices;if($.inlineStrategy===null)return!1;if($.workflowServices.has(U.id))return!1;if(await $.storage.get(F.workflowHasServices(U.id))===null)return!1;if(!Q){let Y=dc(U.id);X(new r6(U.id,Y,[pc]));try{await J(U.id,cX(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,cX(U.id,Z))}catch(Y){G("reprovideRecoveredServices",Y,U.id)}return!0}function cX($,U){return Error(`Workflow "${$}" services unavailable: ${U}`)}function dc($){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 Uq($,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 Jq($,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"}),lc($,U,J.operationId,Q),await X,(await G.loadWorkflowState(U))?.status==="running")G.completeOperation(U,void 0)}function lc($,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 ic($,U,J){let G=await J.loadWorkflowState(U.workflowId);if(!G||G.status!=="pending")return;let X=await nc($,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 rc(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}},z=[{type:"put",key:F.workflow(U.workflowId),value:M(L)},...m$(U.workflowId,D,L).batchOps];if(Y!==void 0)z.push(...Q$({id:`deadline:${U.workflowId}`,workflowId:U.workflowId,fireAt:Y,kind:"execution-deadline"}));return await Z$($,z,[],()=>Error(`Delayed-start transition for workflow "${U.workflowId}" lost its CAS race.`)),L});if(!_)return;if(await pX($,_,(D,L)=>J.failWorkflow(D,L),J.handleCleanupError,J.dispatchEvent))return;if(await h$($.storage,F.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 nc($,U,J){let G=await $.storage.get(F.checkpoint(U.workflowId));if(!G)return await J.failWorkflow(U.workflowId,Error(`Checkpoint not found for delayed workflow "${U.workflowId}"`)),null;return V$(G)}async function rc($,U,J){if($.executionTimeoutMs===void 0)return;if(!Number.isFinite($.executionTimeoutMs)||$.executionTimeoutMs<0)return await $q($,J),"invalid";try{return R$(U+$.executionTimeoutMs,`Delayed execution timeout for workflow "${$.workflowId}"`)}catch{return await $q($,J),"invalid"}}async function $q($,U){await U.failWorkflow($.workflowId,Error(`Invalid delayed execution timeout for workflow "${$.workflowId}"`))}async function $D($,U,J){if(U.id.startsWith("review-escalation:")||U.id.startsWith("review-timeout:")){await sc($,U,J);return}if(U.kind==="delayed-start"){await ic($,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")ac($,U);else if(U.kind==="wait-condition")oc($,U);else if(U.kind==="execution-deadline")await J.timeout(U.workflowId)}function oc($,U){let J=$.conditionWaiters.get(U.workflowId);if(J)J()}async function sc($,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 ac($,U){let J=U.id.replace("sleep:",""),G=`${U.workflowId}:${J}`,X=$.sleepResolvers.get(G);if(!X)return;$.sleepResolvers.delete(G),tc($,U.workflowId,J),X()}function tc($,U,J){let G=$.sleepResolversByWorkflow.get(U);if(!G)return;if(G.delete(J),G.size===0)$.sleepResolversByWorkflow.delete(U)}function Gq($,U,J,G,X,Q,Z,Y,_,H,D,L){let z=uG(U,null,J).batchOps,B=[...L??[],{type:"put",key:F.workflow(U),value:M(J)},{type:"put",key:F.checkpoint(U),value:P$(G)},...z,...oU(U,void 0,J.tags),...$p($,U,X,Q?.searchAttributes,D),...ec(U,Q,_),...H??[]];if(Z!==void 0)B.push(...Q$({id:`deadline:${U}`,workflowId:U,fireAt:Z,kind:"execution-deadline"}));if(Y)B.push(...Q$(Y));return B}function ec($,U,J){let G=J!==void 0&&J.size>0,X=U?.services!==void 0,Q=[];if(G)Q.push({type:"put",key:F.workflowHeaders($),value:yG(J)});if(X)Q.push({type:"put",key:F.workflowHasServices($),value:l$});if(G||X)Q.push({type:"put",key:F.terminalCleanupNeeded($),value:l$});return Q}function $p($,U,J,G,X){if(!G||Object.keys(G).length===0)return[];return Up($,J,G,X),x0(G),[{type:"put",key:F.attribute(U),value:M(G)},...q$(U,{},G)]}function Up($,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(", ")}`);l4(Q,Z,X[Q])}}class n1 extends Error{constructor(){super("start idempotency compare-and-swap lost to a concurrent caller");this.name="StartIdempotencyRaceLostError"}}var Xq=5;async function Jp($,U,J){if(J.length===0)return await Z$($,U,[],()=>Error("Workflow start lost its CAS race.")),!0;return X$($.storage,"conditionalBatch","start preconditions"),C0($,U,J.map((G)=>G.condition))}async function Gp($,U){for(let J of U){if(J.source!=="start-precondition")continue;let G=await $.storage.get(J.condition.key);if(!iU(G,J.condition.expectedValue))return!0}return!1}function Xp($){return($??[]).map((U)=>({source:"start-precondition",condition:U}))}function Qp($){return $.map((U)=>({source:"workflow-concurrency",condition:U}))}function Qq($,U){if(U===void 0||U.length===0)return $;return[...$??[],...U]}async function Zq($,U){let{internals:J,workflowId:G,state:X,checkpoint:Q,registration:Z,options:Y}=$,_=$.buildWorkflowConcurrencyStartOperations===void 0?1:Xq,H;for(let D=0;D<_;D+=1){let L=U?.(G),z=await $.buildWorkflowConcurrencyStartOperations?.();H=z?.stateKey??H;let B=Gq(J,G,X,Q,Z,Y,X.executionDeadline,$.delayedStartTimer,$.persistedWorkflowStartHeaders,Qq($.additionalStartOperations,Qq(L?.operations,z?.operations)),$.callbacks,$.purgeDeleteOperations),W=[...Xp(L?.conditions),...Qp(z?.conditions??[])];if(await Jp(J,B,W))return;if(await Gp(J,W))throw new n1;if(z===void 0)throw new n1}throw new o4(H??"workflow concurrency admission",Xq)}function UD($,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 dX($,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:P$(X),nestingDepth:Q,executionStateOwnerId:Y,startedAt:X.createdAt,sleepReferenceTime:X.createdAt,...Z!==void 0&&{deadline:Z},...$.workflowHeaders.has(U)&&{headers:[...$.workflowHeaders.get(U)]}})}function lX($,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 o6(U,J,G)),dX($,U,J,G,X,D,Q,Z,_),H?.()}function Yq($,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 _q($,U,J,G){if(U.isDelayed)return;let X=U.options?.defer===!1?Promise.withResolvers():void 0;if(lX($,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 jq=new Set(["completed","failed","cancelled","timed-out"]),JD=["running","pending","suspended"];function Zp($,U){return{signal:()=>({waiters:$.signalWaiters,byWorkflow:$.signalWaitersByWorkflow}),update:()=>({waiters:$.updateWaiters,byWorkflow:$.updateWaitersByWorkflow}),review:()=>({waiters:$.reviewWaiters,byWorkflow:$.reviewWaitersByWorkflow})}[U]()}function Hq($,U,J){let{waiters:G,byWorkflow:X}=Zp($,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 Yp($,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 _p($,U){let J=$.sleepResolversByWorkflow.get(U);if(!J)return;for(let G of J)$.sleepResolvers.delete(`${U}:${G}`);$.sleepResolversByWorkflow.delete(U)}function jp($,U){let J=$.conditionWaiters.get(U);if(!J)return;J(),$.conditionWaiters.delete(U)}function Hp($,U){$.conditionWaiters.delete(U)}function Dq($,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 Lq=["signal","update","review"];function a6($,U,J){for(let G of Lq)Hq($,U,G);Yp($,U),jp($,U),Dq($,U,J),$.deliveredPendingUpdateIds.delete(U),$.workflowNestingDepths.delete(U),$.workflowHeaders.delete(U),$.workflowServices.delete(U),$.workflowTypeByWorkflowId.delete(U)}function GD($,U,J){for(let G of Lq)Hq($,U,G);_p($,U),Hp($,U),Dq($,U,J)}async function Vq($,U,J){let G=O(U),X=[F.activityReconciliationPrefix(U),F.childCancellationPrefix(U),DX(U),F.signalAcceptedResponsePrefix(U),`sig:${G}:`,`state:execution:${G}:`,`tool-effect:${G}:`];if(J)X.push(`offload:${G}:`,`blob:${G}:`);if(await $.storage.delete(F.workflowHeaders(U)),await $.storage.delete(F.signalSequence(U)),await h0($,U),await $.storage.delete(F.workflowHasServices(U)),!await h$($.storage,F.teardownOwed(U)))await $.storage.delete(F.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 XD($,U,J){$.workflowsNeedingTerminalCleanup.delete(U),X1($,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($0(U,"events")),$.workflowFeedListeners.delete($0(U,"tokens")),a6($,U,J)}function QD($,U,J){XD($,U,J)}async function iX($,U,J,G){XD($,U,G),await ZD($,U,J,G)}async function ZD($,U,J,G){await G.cleanupReviews(U),await Vq($,U,J),await $.storage.delete(F.terminalCleanupNeeded(U))}async function YD($,U,J,G){let X=ZK(J);if(!X){G.handleCleanupError("cleanupTerminalWorkflowDurableState",Error(`Ignoring malformed terminal cleanup timer id "${J}"`),U);return}let Q=await G.loadWorkflowState(U);if(!Q||!jq.has(Q.status))return;if(Q.terminalCleanupToken!==X.terminalCleanupToken)return;try{await ZD($,U,X.includeOutputArtifacts,G)}catch(Z){throw G.handleCleanupError("cleanupTerminalWorkflowDurableState",Z,U),Z}}function f8($,U,J,G,X){let Q=J instanceof Error?J:Error(String(J));X.dispatchEvent(new K0(U,Q,G))}async function u8($,U,J){try{await J.handleScheduledWorkflowTerminal(U)}catch(G){J.handleCleanupError("handleScheduledWorkflowTerminal",G,U)}}async function Fq($,U,J){let G=await $.storage.get(F.workflow(U));if(G===null)return null;if(J?.onTerminalConflict!=="start-new")throw new C$(U);let X=i(G);if(!B$(X.status))throw new C$(U);if(await h$($.storage,F.teardownOwed(U)))throw new ZG(U);return X}async function zq($,U,J){let G=(Q)=>a6($,Q,{swallowPromiseRejection:J.swallowPromiseRejection}),X=await fH($,U);return uH($,U.id,G),X}function Dp($,U,J){let G=U?.id!==void 0,X=U?.id!==void 0?M4(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=Bq($,U,_,J),D=aH($,U?.tags,void 0,J),L=H!==void 0&&H>_?Uq($,X,H,U,{parseStartOptionDuration:(z,B)=>m0($,z,B,J)}):void 0;return{workflowId:X,callerProvidedId:G,parentHeaders:Q,executionStateOwnerId:Y,submissionTime:_,delayedStartTimer:L,normalizedTags:D}}function Lp($,U){X1($,U),$.checkpoints.delete(U),$.workflowHeaders.delete(U),$.workflowVersionTuples.delete(U),$.workflowServices.delete(U),$.workflowsNeedingTerminalCleanup.delete(U)}function Vp($,U){if(U?.services!==void 0&&$.inlineStrategy===null)throw Error('options.services is only supported in inline execution mode; it cannot be serialized to a Worker. Remove services or use workflowExecutionMode: "inline".')}async function Y6($,U,J,G,X,Q,Z){let Y=$.registrations.get(U);if(!Y)throw new $6(U);let _=Y.concurrency;Vp($,G),BG(G);let H=Dp($,G,Q),{workflowId:D,callerProvidedId:L,parentHeaders:z,executionStateOwnerId:B,delayedStartTimer:W}=H;if(Yq($,G,Boolean(W)),$.pendingStarts.has(D))throw new C$(D);$.pendingStarts.add(D);let S=!1;try{let I=L?await Fq($,D,G):null;E6(J,$.options.payloadSizePolicy.maxBytes,"workflow input");let p=y0($,Y,Q),c=Pq($,D,U,J,p,G,H.normalizedTags,B,W,Q),h=Kq($,D,p.workflowVersion,G,Q),m=UD($,D,U,J,z,Q),u=mG(m),E$=I!==null?await zq($,I,Q):void 0;if($.checkpoints.set(D,h),x4($,D,m,Q),$.workflowVersionTuples.set(D,p),await Zq({internals:$,workflowId:D,state:c,checkpoint:h,registration:Y,options:G,delayedStartTimer:W,persistedWorkflowStartHeaders:u,additionalStartOperations:X,buildWorkflowConcurrencyStartOperations:_===void 0?void 0:()=>mX($,U,D,J,_),callbacks:Q,purgeDeleteOperations:E$},Z),G?.services!==void 0)$.workflowServices.set(D,G.services),$.workflowsNeedingTerminalCleanup.add(D);if(_!==void 0)$.workflowsNeedingTerminalCleanup.add(D);let v6=k8($,D,Q);return await _q($,{type:U,input:J,checkpoint:h,state:c,registration:Y,options:G,isDelayed:Boolean(W)},D,Q),S=!0,v6}finally{if($.pendingStarts.delete(D),!S)Lp($,D)}}function Bq($,U,J,G){if(FG(U?.startAt,U?.startAfter),U?.startAt!==void 0)return KG(U.startAt,"options.startAt");if(U?.startAfter!==void 0){let X=m0($,U.startAfter,"options.startAfter",G);try{return R$(J+X,"options.startAfter")}catch{throw new f("options.startAfter must resolve to a finite, non-negative start time")}}return}function m0($,U,J,G){return $8(U,J)}function Fp($,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 zp($,U,J,G,X){if(U?.executionTimeout===void 0||J)return;let Q=m0($,U.executionTimeout,"options.executionTimeout",X);try{return R$(G+Q,"options.executionTimeout")}catch{throw new f("options.executionTimeout must resolve to a finite, non-negative deadline")}}function Pq($,U,J,G,X,Q,Z,Y,_,H){let D=$.options.getNow(),L=Fp(U,J,G,X,Y,_,D,Z),z=zp($,Q,_,D,H);if(z!==void 0)L.executionDeadline=z;return L}function Kq($,U,J,G,X){let Q=GH(U,J,$.options.getNow());if(G?.searchAttributes)Q.searchAttributes={...G.searchAttributes};return Q}async function c8($,U){let J=await $.storage.get(F.startIdempotency(U));if(J===null)return;return N(J).workflowId}async function jD($,U){if(await l($,U)===null)throw new P6(U);return U}var Bp=5,Pp=5;async function Kp($,U){for(let J=0;J<Bp;J+=1){if(!$.pendingStarts.has(U))return;await N4(Pp)}}async function HD($,U,J,G,X){let Q=await w8($,U,J,G,X);if(Q!==void 0)return Q;return await Kp($,U),w8($,U,J,G,X)}async function w8($,U,J,G,X){let Q=await l($,U);if(Q===null)return;if(B$(Q.status))throw new dU(U,Q.status);return await X.signalExistingWorkflow(U,J.name,J.payload,G),X.getHandle(U)}var _D=5,Wp=5;async function Wq($,U,J,G,X,Q){for(let Y=0;Y<_D;Y+=1){let _=await w8($,U,J,G,X);if(_!==void 0)return _;if(Y<_D-1)await N4(Wp)}if(await c8($,Q)===U)throw new P6(U);throw Error(`startOrSignal resolved winning workflow "${U}" but its record never became readable after ${_D} attempts.`)}async function nX($,U){let J=await c8($,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 DD($,U,J){return(G)=>{let X=[],Q=[];if(U!==void 0){let Z=F.startIdempotency(U);X.push({type:"put",key:Z,value:M({workflowId:G})}),Q.push({key:Z,expectedValue:null})}if(J!==void 0){let Z=uW($,G,J.name,J.payload,J.signalId);X.push(...Z.operations),Q.push(Z.condition)}return{operations:X,conditions:Q}}}var Mq=5;async function qq($,U,J,G,X,Q,Z){let Y=Q?.idempotencyKey;for(let _=0;_<Mq;_+=1){let H=await qp($,Q,async()=>{return Y6($,U,J,Q,void 0,Z,DD($,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 Wq($,H.id,G,X,Z,H.idempotencyKey),outcome:"signalled"};if(H.kind==="lost-caller-id"){let D=await HD($,H.id,G,X,Z);if(D!==void 0)return{handle:D,outcome:"signalled"}}else{let D=await Mp($,U,J,G,X,Q,Z);if(D!==void 0)return D}}throw Error(`startOrSignal could not create workflow "${Q?.id??"<generated>"}" after ${Mq} attempts: each concurrent same-id winner aborted before its durable commit.`)}async function Mp($,U,J,G,X,Q,Z){try{return{handle:await Y6($,U,J,Q,void 0,Z),outcome:"started"}}catch(Y){if(!(Y instanceof C$))throw Y;let _=await HD($,Y.workflowId,G,X,Z);return _===void 0?void 0:{handle:_,outcome:"signalled"}}}async function qp($,U,J){try{return{kind:"created",handle:await J()}}catch(G){if(G instanceof C$)return{kind:"lost-caller-id",id:G.workflowId};if(G instanceof n1){let X=U?.idempotencyKey;if(X!==void 0)return{kind:"lost-keyed",id:await nX($,X),idempotencyKey:X};return{kind:"signal-already-buffered"}}throw G}}function Np($,U){if(U!==void 0)return F.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 LD($,U,J,G,X){X$($.storage,"conditionalBatch","start idempotency");let{idempotencyKey:Q}=G;if(Q===void 0)throw new f("startWithIdempotency requires options.idempotencyKey");zG(Q,"options.idempotencyKey"),Kj(G),BG(G);let Z=await c8($,Q);if(Z!==void 0)return X.getHandle(await jD($,Z));try{return await Y6($,U,J,G,void 0,X,DD($,Q,void 0))}catch(Y){if(!(Y instanceof n1))throw Y}return X.getHandle(await jD($,await nX($,Q)))}function Op($,U){let J=U?.idempotencyKey;if(J===void 0)return;if(zG(J,"options.idempotencyKey"),Kj(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 VD($,U,J,G,X,Q){X$($.storage,"conditionalBatch","startOrSignal"),PG(X,"startOrSignal");let Z=X?.idempotencyKey;Op(G,X);let Y=Np(G,Z),_=Z!==void 0?await c8($,Z):void 0,H=_??X?.id;if(H!==void 0){let D=await w8($,H,G,Y,Q);if(D!==void 0)return{handle:D,outcome:"signalled"};if(_!==void 0)throw new P6(_)}return qq($,U,J,G,Y,X,Q)}function Nq($,U,J){if($.searchAttributeSchema){if(!(U in $.searchAttributeSchema))throw Error(`Unknown search attribute "${U}". Registered attributes: ${Object.keys($.searchAttributeSchema).join(", ")}`);l4(U,J,$.searchAttributeSchema[U])}}function Oq($,U,J){Nq($,U,J),$.searchAttributes[U]=J,$.pendingAttributeChanges??={},$.pendingAttributeChanges[U]=J}function Aq($,U){for(let[J,G]of Object.entries(U))Nq($,J,G);for(let[J,G]of Object.entries(U))$.searchAttributes[J]=G,$.pendingAttributeChanges??={},$.pendingAttributeChanges[J]=G}function Cq($,U){return $.searchAttributes[U]}function Rq($){return{...$.searchAttributes}}function Eq($,U,J,G){Cp(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 Rp(U,Z,J,G),{localKey:X,version:Z,newlyPinned:!1,checkpointLocals:$}}function Cp($,U,J){if(typeof $!=="string"||$.length===0)throw Error("ctx.getVersion() requires a non-empty changeId");if(Tq("minSupported",U),Tq("maxSupported",J),U>J)throw Error("ctx.getVersion() minSupported must be less than or equal to maxSupported")}function Tq($,U){if(!Number.isSafeInteger(U))throw Error(`ctx.getVersion() ${$} must be a safe integer`)}function Rp($,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 xq($,U){let J=$.stepIndex++;if($.accumulatedResults?.has(J))return{cached:!0};let G=_$(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*Sq($,U){yield U.request,$.accumulatedResults.set(U.step,void 0)}function*bq($,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 Tp="__weftConditionDeadline:";function Ep($,U,J){if(J===void 0)return;let G=`${Tp}${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=_$(J),Z=$.sleepReferenceTime??$.getNow();$.sleepReferenceTime=void 0;let Y=Z+Q;return $.checkpointLocals={...$.checkpointLocals,[G]:Y},Y}function*vq($,U,J,G){let X=U.stepIndex++;if(U.accumulatedResults?.has(X))return U.accumulatedResults.get(X);let Q=Ep(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*gq($,U,J,G,X){let Q=U.stepIndex++,Z=Eq(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*Iq($,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*hq($,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*yq($,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*mq($,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*kq($,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*fq($,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*uq($,U){let J=[],G,X=!1,Q=!0,Z=g($).registerCancelHandler?.(async()=>{if(!Q||X)return;X=!0;try{await Sp(J)}finally{Q=!1,J.length=0,Z?.()}});for(let _ of U){let H=_.definition;try{let D=(z,B)=>H.execute(z,B);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 z=J[L];if(z.definition.compensate!==void 0){let{input:B,output:W,definition:S}=z,I=async()=>S.compensate?.(B,W);Object.defineProperty(I,"name",{value:`compensate:${z.definition.name}`,configurable:!0});try{yield*$.run(I)}catch{}}}}throw Y(),D}}return Y(),G;function Y(){Q=!1,J.length=0,Z?.()}}async function Sp($){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*wq($,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 _6($){return $===void 0?void 0:new Map($)}function cq($){return $===void 0?void 0:{...$}}function gp($,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 Ip($,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=_6(U.accumulatedResults);if(G!==void 0)J.accumulatedResults=G;return gp(J,U),J}function hp($,U){$.pendingAttributeChanges=cq(U.pendingAttributeChanges),$.updateHandlers=_6(U.updateHandlers),$.updateValidators=_6(U.updateValidators),$.queryHandlers=_6(U.queryHandlers),$.exposedValues=_6(U.exposedValues),$.memoCache=_6(U.memoCache),$.explainMode=U.explainMode,$.workflowInterceptor=U.workflowInterceptor}function pq($,U){let J=g($),G=U(Ip($,J));return hp(g(G),J),G}function dq($,U){let J=g($),G=g(U);J.stepIndex=G.stepIndex,J.accumulatedResults=_6(G.accumulatedResults),J.stateSession=z8(G.stateSession),J.checkpointLocals=M8(J.stateSession,G.checkpointLocals),J.searchAttributes={...G.searchAttributes},J.pendingAttributeChanges=cq(G.pendingAttributeChanges),J.updateHandlers=_6(G.updateHandlers),J.updateValidators=_6(G.updateValidators),J.queryHandlers=_6(G.queryHandlers),J.exposedValues=_6(G.exposedValues),J.memoCache=_6(G.memoCache),J.sleepReferenceTime=G.sleepReferenceTime}function lq($,U){let J=yp($,U);return{session:(G,X)=>NW($,U,G,X),execution:(G,X)=>new FD({type:"execution",ownerWorkflowId:U.executionStateOwnerId},G,X,J),workflow:(G,X)=>new FD({type:"workflow",workflowType:$.workflowType},G,X,J)}}function yp($,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 FD extends EventTarget{#$;#U;#J;#G;#X;#Q;constructor($,U,J,G){super();this.#$=$,this.#U=U,this.#J=s4($,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 i4(G,J.value,X.version)),G;this.dispatchEvent(new n4(this.#J,U+1))}throw this.dispatchEvent(new r4(this.#J,this.#G)),new o4(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 i4(void 0,U.value,J.version));return}this.dispatchEvent(new n4(this.#J,$+1))}throw this.dispatchEvent(new r4(this.#J,this.#G)),new o4(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 iq($,U,J,G){if(RW(J)||TW(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 nq($,U,J){$.queryHandlers??=new Map,$.queryHandlers.set(U,J)}function rq($,U){$.exposedValues??=new Map;for(let[J,G]of Object.entries(U))$.exposedValues.set(J,G)}var fp={debug:"debug",info:"info",warn:"warn",error:"error"};function rX($){console[fp[$.level]]($)}function up($,U,J,G){return{level:U,message:J,workflowId:$.workflowId,workflowType:$.workflowType,timestamp:$.now(),...G!==void 0&&{attributes:G}}}function wp($){let U=(J,G,X)=>{if($.isReplaying())return;let Q=up($,J,G,X);if($.sink!==void 0){try{$.sink(Q)}catch{rX(Q)}return}rX(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 oq($,U,J,G){return wp({workflowId:$,workflowType:U,isReplaying:()=>{let X=J();return X.accumulatedResults?.has(X.stepIndex)??!1},now:()=>J().getNow(),...G!==void 0&&{sink:G}})}function k0($,U){g($).workflowInterceptor=U}class Z1{workflowId;workflowType;startedAt;signal;#$;constructor($){this.workflowId=$.workflowId,this.workflowType=$.workflowType,this.startedAt=$.startedAt,this.signal=$.abortController.signal;let U=UH($.locals);AW(this,$,U)}get executionTimeRemaining(){let $=g(this);if($.deadline===void 0)return 1/0;return Math.max(0,$.deadline-$.getNow())}get services(){return g(this).services}get log(){return this.#$??=oq(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 pq(this,($)=>new Z1($))}commitSpeculativeChild($){dq(this,$)}get state(){return lq(this,g(this))}*run($,...U){return yield*CW(this,$,U)}*sleep($){let U=g(this),J=xq(U,$);if(J.cached)return;let G=()=>Sq(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=r$($),G=()=>bq(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*Iq(this,g(this),r$($))}*waitUntil($,U){return yield*vq(this,g(this),$,U)}*getVersion($,U,J){return yield*gq(this,g(this),$,U,J)}*review($){return yield*hq(this,g(this),$)}*all($){return yield*fK(this,g(this),[...$])}*race($){return yield*uK(this,g(this),[...$])}*memo($,U){return yield*wK(this,g(this),$,U)}*offload($,U){return yield*yq(this,g(this),$,U)}*stream($,U){return yield*mq(this,g(this),$,U)}*load($){return yield*kq(this,g(this),$)}*archive($,U){return yield*fq(this,g(this),$,U)}*runAll($){return yield*cK(this,g(this),$)}*saga($){return yield*uq(this,$)}*startChild($,U,J){return yield*IK(this,g(this),$,U,J)}*pipe($,U){return yield*hK(this,g(this),$,U)}*map($,U,J){return yield*yK(this,g(this),$,U,J)}*reduce($,U,J,G){return yield*mK(this,g(this),$,U,J,G)}explain($=!0){g(this).explainMode=$}*speculate($){return yield*wq(this,g(this),$)}setAttribute($,U){Oq(g(this),A$($),U)}setAttributes($){Aq(g(this),$)}getAttribute($){return Cq(g(this),A$($))}getAttributes(){return Rq(g(this))}onUpdate($,U,J){iq(g(this),r$($),U,J)}onQuery($,U){nq(g(this),r$($),U)}expose($){rq(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 p8($,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 oX($,U){return(J)=>p8($,U,J)}function d8($,U){$.cancelHandlersByWorkflow??=new Map,$.cancelHandlersByWorkflow.delete(U)}function sq($,U){$.cancelHandlersByWorkflow??=new Map;let J=$.cancelHandlersByWorkflow.get(U)??[];return $.cancelHandlersByWorkflow.delete(U),J}function aq($){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 tq=Object.freeze(["activity","sleep","waitForSignal","workflowStart","childWorkflow","query","signalReceived"]);function zD($){let U=[],J=[];for(let G of $){if(tq.some((X)=>eq(G,X)))U.push(G);if(eq(G,"execute"))J.push(G)}return{workflow:U,activity:J}}function eq($,U){return typeof $[U]==="function"}function cp($){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 pp($){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 dp($){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 lp($){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 ip($){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 np($){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 rp($){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 $N($){return{activity:cp($),sleep:pp($),waitForSignal:dp($),workflowStart:lp($),childWorkflow:ip($),query:np($),signalReceived:rp($)}}function j6($,U,J,G){if($.inlineStrategy){if(J.status==="completed")$.inlineStrategy.continueWorkflow(U,J.value);else $.inlineStrategy.throwIntoWorkflow(U,G!==void 0?G.value:OG(J),J.failureCategory);return}let X=$.checkpoints.get(U),Q=X?P$(X):new ArrayBuffer(0);$.strategy.resumeWorkflow({workflowId:U,checkpoint:Q,operationResult:J})}async function S6($){if(!$)return;try{await $}catch{}}function H6($){if($.interceptors.length===0)return null;if($.composedWorkflowInterceptor!==void 0)return $.composedWorkflowInterceptor;let U=zD($.interceptors).workflow;return $.composedWorkflowInterceptor=U.length===0?null:$N(U),$.composedWorkflowInterceptor}function UN($){if($.interceptors.length===0)return null;if($.composedActivityInterceptor!==void 0)return $.composedActivityInterceptor;let U=zD($.interceptors).activity;return $.composedActivityInterceptor=U.length===0?null:aq(U),$.composedActivityInterceptor}function JN($,U,J,G){return{workflowId:U,step:J.step}}function GN($,U,J,G){return{...U.searchAttributes,[aM]:J.workflowId}}function XN($,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 QN($,U,J,G,X,Q,Z){let Y=[{type:"put",key:F.workflow(U),value:M(J)},{type:"put",key:F.checkpoint(U),value:X},...uG(U,null,J).batchOps];if(Object.keys(G.searchAttributes).length>0)Y.push({type:"put",key:F.attribute(U),value:M(G.searchAttributes)},...q$(U,{},G.searchAttributes));if(Q&&Q.size>0)Y.push({type:"put",key:F.workflowHeaders(U),value:yG(Q)},{type:"put",key:F.terminalCleanupNeeded(U),value:l$});return Y}function ZN($,U,J){let G=[{type:"put",key:F.childCancellation(U,J),value:l$}],X=!$.workflowsNeedingTerminalCleanup.has(U);if($.workflowsNeedingTerminalCleanup.add(U),X)G.push({type:"put",key:F.terminalCleanupNeeded(U),value:l$});return G}function BD($,U,J,G){p8($,U,()=>G.getHandle(J).cancel())}async function PD($,U,J){for await(let[G]of $.storage.scan(F.childCancellationPrefix(U))){let X=op(U,G);if(X===null)continue;BD($,U,X,J)}}function op($,U){let J=F.childCancellationPrefix($);if(!U.startsWith(J))return null;let G=U.slice(J.length);if(G.length===0||G.includes(":"))return null;return lB(G)}async function sp($,U,J){return pX($,U,J.failWorkflowForUnavailableServices,J.handleCleanupError,J.dispatchEvent)}function YN($,U){if($.terminalizingWorkflows.has(U))throw Error(`Cannot resume workflow "${U}": termination is in progress`)}function ap($,U){let{workflowId:J,resumeCheckpoint:G,serializedCheckpoint:X,registeredVersionTuple:Q,restoredHead:Z,callbacks:Y}=U;$.checkpoints.set(J,G),bX($,J,X),$.workflowVersionTuples.set(J,Q),$.eventLogHeads.set(J,Z),x4($,J,U.workflowStartHeaders,Y),$.parkedInlineWorkflows.delete(J)}async function tp($,U,J){let{workflowId:G,resumeCheckpoint:X,registration:Q,callbacks:Z}=J,Y=new Map(X.accumulatedResults),_=new AbortController;d8($,G),await PD($,G,Z);let H=new Z1({workflowId:G,workflowType:U.type,startedAt:x6(U),abortController:_,getNow:$.options.getNow,resolveWorkflowType:Z.resolveWorkflowTypeTarget,executionStateOwnerId:U.executionStateOwnerId??G,accumulatedResults:Y,locals:X.locals,searchAttributes:X.searchAttributes,registerCancelHandler:oX($,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(k0(H,H6($)),$.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 ep($,U,J){let{workflowId:G,resumeCheckpoint:X,workflowStartHeaders:Q,callbacks:Z}=J;d8($,G),await PD($,G,Z);let Y=P$(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 $d($,U){let{workflowId:J}=U;YN($,J);let G=await l($,J);if(YN($,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 Ud($,G),ap($,U),$.inlineStrategy){await tp($,G,U);return}await ep($,G,U)}async function Ud($,U){if(U.status!=="suspended")return;let J={...U};U.status="running",U.updatedAt=$.options.getNow(),await Z$($,[{type:"put",key:F.workflow(U.id),value:M(U)},...m$(U.id,J,U).batchOps,...U.executionDeadline!==void 0?Q$({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 l8($,U,J,G){let X=await $.storage.get(F.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(F.checkpoint(U));if(!Z)throw Error(`Checkpoint not found for workflow "${U}"`);let Y=V$(Z),_=$.registrations.get(Q.type);if(!_)throw Error(`No workflow registered with name "${Q.type}" (needed to resume "${U}")`);let H=await eH($,U,Q,Y,Z,_,G),D=H.checkpoint,L=H.versionTuple,B=await new o$($.storage,U).loadHead();if(await oH($,U,B,G))return G.getHandle(U);let W=await i1($,U,G);if(await sH($,U,G),await sp($,Q,G))return G.getHandle(U);let S=G.getHandle(U);if(await G.runSerializedWorkflowStateWrite(U,()=>$d($,{workflowId:U,resumeCheckpoint:D,serializedCheckpoint:H.serializedCheckpoint,registeredVersionTuple:L,restoredHead:B,workflowStartHeaders:W,registration:_,callbacks:G})),J)G.dispatchEvent(new O0(U,D.step));if($.inlineStrategy)G.swallowPromiseRejection(G.processPendingUpdatesAfterInlineAdvance(U));return S}function Jd($){return $.includes(":ckpt")||$.includes(":offload")||$.includes(":archive")||$.includes(":timeline:")}function Gd($,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 Xd($,U){if(U.kind==="ignored")return;if($.entries.push(U),U.kind==="missing")$.missingWorkflows.push(U.workflow)}async function Qd($,U){let J={entries:[],missingWorkflows:[]};for await(let[G,X]of $.storage.scan("wf:")){if(Jd(G))continue;Xd(J,Gd($,U,i(X)))}return J}async function KD($,U,J){let G=await Qd($,U),X=[];if(G.missingWorkflows.length>0&&J?.acknowledgeUnknownWorkflowTypes!==!0)throw new wU({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 HX(Q.workflow.workflowId,Q.workflow.type,"type-not-registered"));continue}try{X.push(await sX($,Q.workflowId,U))}catch(Z){if(Z instanceof X2){await U.failWorkflowForCheckpointDecodeError(Q.workflowId,Z);continue}throw Z}}return X}async function sX($,U,J){let G=await l($,U);if(G!==null){if(J.isInlineWorkflowLocallyOwned(U,G.status)||J.hasLocalCheckpointOwnership(U,G.status))return await tM($,U,J),J.getHandle(U)}return l8($,U,!0,J)}async function WD($,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?tP(J.fromStep):void 0,Y=Z!==void 0?F.checkpointHistory(U,Z):F.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=V$(_),D=await y1($.storage,U,H),L=wX($,U,X,D,Q,G),z=$.workflowHeaders.get(U)??await i1($,U,G),B=mG(z),W=crypto.randomUUID(),S=$.options.getNow(),I=JN($,U,D,G),{accumulatedResultReplayWatermark:p,...c}=L.checkpoint,h={...c,createdAt:S,workflowId:W,searchAttributes:GN($,L.checkpoint,I,G)},m=XN($,W,L.state,L.versionTuple,I,S,G),u=!1;try{let E$=P$(h);await Z$($,QN($,W,m,h,E$,B,G),[],()=>Error(`Fork of workflow "${W}" lost its CAS race.`)),$.eventLogHeads.set(W,I1),x4($,W,B,G);let v6=_N($,W,m,h,Q,G);return u=!0,v6}finally{if(!u)X1($,W),$.checkpoints.delete(W),$.workflowVersionTuples.delete(W),$.eventLogHeads.delete(W),$.workflowHeaders.delete(W)}}function Zd($,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;d8($,U);let H=new Z1({workflowId:U,workflowType:J.type,startedAt:x6(J),abortController:_,getNow:$.options.getNow,resolveWorkflowType:Q.resolveWorkflowTypeTarget,executionStateOwnerId:J.executionStateOwnerId??U,accumulatedResults:Y,searchAttributes:G.searchAttributes,registerCancelHandler:oX($,U),...X.searchAttributes&&{searchAttributeSchema:X.searchAttributes},sleepReferenceTime:G.createdAt,...J.executionDeadline!==void 0&&{deadline:J.executionDeadline},...$.options.onLog!=null&&{logSink:$.options.onLog}});if(k0(H,H6($)),$.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 Yd($,U,J,G){let X=P$(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 _N($,U,J,G,X,Q){$.checkpoints.set(U,G),$.workflowVersionTuples.set(U,y0($,X,Q));let Z=k8($,U,Q);if(Q.dispatchEvent(new o6(U,J.type,J.input)),$.inlineStrategy)Zd($,U,J,G,X,Q);else Yd($,U,J,G);return Z}function jN($,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(i8($,J))},0)}function MD($,U){for(let J of U)$.queuedInlineWorkflowStartIds.delete(J.workflowId),$.queuedOrLaunchingInlineWorkflowStartIds.delete(J.workflowId),J.onStarted?.()}async function i8($,U){if($.abortController.signal.aborted){let G=$.queuedInlineWorkflowStarts;$.queuedInlineWorkflowStarts=[],MD($,G);return}if($.queuedInlineWorkflowStarts.length===0)return;let J=$.queuedInlineWorkflowStarts;$.queuedInlineWorkflowStarts=[];for(let G of J)await U.swallowPromiseRejection(_d($,G,U))}async function HN($,U){$.queuedInlineWorkflowStartFlushScheduled=!1,await i8($,U)}async function DN($,U){$.queuedInlineWorkflowStartFlushScheduled=!1;let J=0,G=1000;while($.queuedInlineWorkflowStarts.length>0&&!$.abortController.signal.aborted&&J<G)J+=1,await U.swallowPromiseRejection(i8($,U))}async function _d($,U,J){try{let G=await l($,U.workflowId);if(!G||G.status!=="running")return;$.queuedInlineWorkflowStartIds.delete(U.workflowId),$.engine.dispatchEvent(new o6(U.workflowId,U.workflowType,U.input)),dX($,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 aX($,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)MD($,G);return $.queuedInlineWorkflowStarts.length!==J}function LN($){$.queuedInlineWorkflowStartFlushScheduled=!1;let U=$.queuedInlineWorkflowStarts;$.queuedInlineWorkflowStarts=[],MD($,U),$.queuedInlineWorkflowStartIds.clear(),$.queuedOrLaunchingInlineWorkflowStartIds.clear();let J=$.queuedInlineWorkflowStartChannel;if(J!==null)J.port1.close(),J.port2.close(),$.queuedInlineWorkflowStartChannel=null}function VN($,U){return $.queuedInlineWorkflowStartIds.has(U)}function jd($,U){return $.queuedOrLaunchingInlineWorkflowStartIds.has(U)}function FN($){return $==="running"||$==="pending"}function zN($,U,J){if(!FN(J))return!1;if(jd($,U))return!0;if($.inlineStrategy===null)return!1;return $.inlineStrategy.getContext(U)!==void 0||$.inlineStrategy.waitForWorkflowTurn(U)!==void 0||$.parkedInlineWorkflows.has(U)}function BN($,U,J){return $.checkpoints.has(U)&&FN(J)}var PN=new WeakMap;function KN($){let U={engine:$};PN.set($,U)}function V($){let U=PN.get($);if(!U)throw Error("Engine internals not initialized — initializeInternals(this) was not called in the Engine constructor");return U}async function Hd(){await new Promise(($)=>{setTimeout($,0)})}async function Dd($,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 Hd(),G=J.getContext(U),G&&G.updateHandlers.size>0)return!0;return!1}async function Ld($,U,J,G){return qH($,U,J,G)}async function WN($,U,J){if((await $.updateCoordinator.getPendingUpdates(U)).length===0)return;if(!await Dd($,U))return;await n8($,U,J)}function MN($,U,J){if($.inlineStrategy===null)return;setTimeout(()=>{n8($,U,J).catch(()=>{})},0)}async function Vd($,U,J){let G;try{G=await $(J)}catch(Q){let Z=Q instanceof Error?Q.message:String(Q);return new C4(U,[{message:Z}]).message}let X=NH(G);if(X!==null&&X.length>0)return new C4(U,X).message;return null}async function n8($,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(!Fd($,U,Y.updateId))continue;let H=await zd(G,Y);if(H!==null){await Bd($,U,Y,H,J);continue}Z=!0,await Pd($,U,Y,_,J)}}finally{if(Z)q8($,U)}}function Fd($,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 zd($,U){let J=$.updateValidators?.get(U.name);if(J===void 0)return null;return Vd(J,U.name,U.payload)}async function Bd($,U,J,G,X){let Q=$.updateCoordinator.buildResponseOperations(J.updateId,U,void 0,G,J.idempotencyKey);await Z$($,Q,[],()=>Error(`Update rejection for workflow "${U}" lost its CAS race.`)),X.broadcast({type:"update:completed",workflowId:U,updateId:J.updateId})}async function Pd($,U,J,G,X){X.dispatchEvent(new C6(J.updateId,U,J.name,J.payload));let Q,Z;try{Q=await Ld($,J.name,G,J.payload)}catch(_){Z=_ instanceof Error?_.message:String(_)}let Y=$.updateCoordinator.buildResponseOperations(J.updateId,U,Q,Z,J.idempotencyKey);await Z$($,Y,[],()=>Error(`Update response for workflow "${U}" lost its CAS race.`)),X.dispatchEvent(new G6(J.updateId,U,J.name,Q,Z)),X.broadcast({type:"update:completed",workflowId:U,updateId:J.updateId})}function Kd($){return $===void 0?void 0:[...$]}function NN($){return typeof $==="object"&&$!==null&&"name"in $&&"handler"in $}function Wd($,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 Md($,U){let J=Kd(U.tags),G=vG(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:p4(U.inputSchema,`registration("${$}").inputSchema`)},...U.outputSchema===void 0?{}:{outputSchema:p4(U.outputSchema,`registration("${$}").outputSchema`)},...G!==null&&{retention:G},...U.concurrency!==void 0?{concurrency:qd(U.concurrency,`registration("${$}").concurrency`)}:{}}}function qd($,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 Nd($,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 Od($,U){let J=Md($,U);return Nd(J,U),J}function qN($,U,J){let G=U.name;kU(G,"workflow"),Wd($,G,U);let X=Od(G,U);$.registrations.set(G,X),J.ensureRetentionSweepInterval(),$.workflowTypesByHandler.set(U.handler,G),J.dispatchEvent(new jX(G))}function r8($,U){if(!(U in $))return!1;let J=$[U];return typeof J==="object"&&J!==null}function Ad($){if(!NN($))return!1;return r8($,"activities")&&r8($,"signals")&&r8($,"updates")&&r8($,"queries")&&r8($,"searchAttributes")}function Cd($){let U=new s2;for(let J of Object.values($)){let G=LB(J),X=_B(G);U.register(X.name,X)}return U}function Rd($,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 ON($,U,J){if(!NN(U))throw TypeError("engine.register() expects a WorkflowDefinition (produced by `workflow({ name }).execute(fn)`) or an ActivityDefinition.");if(Ad(U)){if(Rd($,U.name,U).kind==="idempotent")return;let X=Cd(U.activities);qN($,U,J),$.workflowDefinitionsByName.set(U.name,U),$.activityRegistriesByWorkflow.set(U.name,X);return}qN($,U,J)}function tX($,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 Td=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()}),Ed=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 t6($,U,J){if(J!==void 0)$[U]=J}function AN($){return{status:"pending",...$}}function xd($){let U={reviewId:$.reviewId,workflowId:$.workflowId,artifact:$.artifact,reviewType:$.reviewType,reviewers:$.reviewers,allowPartial:$.allowPartial,createdAt:$.createdAt};return t6(U,"timeout",$.timeout),t6(U,"webhookUrl",$.webhookUrl),U}function eX($){let U;try{U=N($)}catch{return null}let J=Td.safeParse(U);if(!J.success)return null;return xd(J.data)}function CN($,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 t6(J,"timeout",$.timeout),t6(J,"webhookUrl",$.webhookUrl),t6(J,"feedback",U.feedback),t6(J,"sectionDecisions",U.sectionDecisions),J}function Sd($){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 t6(U,"timeout",$.timeout),t6(U,"webhookUrl",$.webhookUrl),t6(U,"feedback",$.feedback),t6(U,"sectionDecisions",$.sectionDecisions),U}function qD($){let U;try{U=N($)}catch{return null}let J=Ed.safeParse(U);if(!J.success)return null;return Sd(J.data)}function ND($,U){if(U.workflowId!==void 0&&$.workflowId!==U.workflowId)return!1;if(U.reviewType!==void 0&&$.reviewType!==U.reviewType)return!1;return!0}function OD($){if($===void 0)return"review-decision:";return`review-decision:${O($)}:`}function bd($,U){return`${OD($)}${O(U)}`}async function RN($,U,J,G=()=>!0){for await(let[X,Q]of U){if(!G(X))continue;let Z=qD(Q);if(Z!==null&&ND(Z,J))$.push(Z)}}async function TN($,U){let J=[],G=U.workflowId===void 0?null:OD(U.workflowId);if(G!==null)await RN(J,$.scan(G),U);return await RN(J,$.scan("review-decision:"),U,(X)=>G===null||!X.startsWith(G)),J}async function EN($,U,J,G){let X=CN(J,G);await $.batch([{type:"put",key:bd(J.workflowId,J.reviewId),value:M(X)},{type:"delete",key:U}])}async function xN($,U){let J=OD(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(qD(Q)?.workflowId===U)G.push({type:"delete",key:X})}if(G.length>0)await $.batch(G)}function vd($){if($.workflowId===void 0)return"review:";return`review:${O($.workflowId)}:`}async function gd($,U){let J=[];for await(let[,G]of $.storage.scan(vd(U))){let X=eX(G);if(X!==null&&ND(X,U))J.push(AN(X))}return J}async function SN($,U,J,G,X){await EN($.storage,U,J,G),X(new _0(J.workflowId,J.reviewId,G.decision,G.reviewer,G.timestamp-J.createdAt))}async function bN($,U={}){if(U.status==="completed")return TN($.storage,U);return gd($,U)}async function vN($,U,J){return $.reviewCoordinator.getReview(U,J)}async function Id($,U){for await(let[J,G]of $.storage.scan("review:")){let X=eX(G);if(X!==null&&X.reviewId===U)return{reviewKey:J,reviewData:X,workflowId:X.workflowId}}return null}async function hd($,U,J){if(J!==void 0){let G=F.review(J,U),X=await $.storage.get(G);return X===null?null:{reviewKey:G,reviewData:eX(X),workflowId:J}}return Id($,U)}function yd($,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 md($,U,J,G){let X=`${U}:${J}`,Q=$.reviewWaiters.get(X);if(!Q)return;$.reviewWaiters.delete(X),X6($.reviewWaitersByWorkflow,U,X),Q(G)}async function gN($,U,J,G){let X=await hd($,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=yd(U,J,$.options.getNow());await SN($,X.reviewKey,X.reviewData,Q,G.dispatchEvent),md($,X.workflowId,U,Q)}function kd($,U){$({ok:!0,value:U})}async function fd($,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),X6($.reviewWaitersByWorkflow,U,G);let L=$.options.getNow()-X.createdAt;await $.storage.delete(F.review(U,J));let z=new DH(J,L);return await _.failWorkflow(U,z),Z({ok:!1,error:z}),!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),X6($.reviewWaitersByWorkflow,U,G);let D={reviewId:J,decision:H.decision,reviewer:"system",feedback:H.auditReason,timestamp:$.options.getNow()};return await SN($,F.review(U,J),X,D,_.dispatchEvent),Z({ok:!0,value:D}),!0}async function ud($,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 IN($,U){let J=`review:${O(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 xN($.storage,U)}function f0($,U,J){if(J!==void 0)$[U]=J}function wd($){let U={artifact:$.artifact};return f0(U,"reviewType",$.reviewType),f0(U,"reviewers",$.reviewers),f0(U,"allowPartial",$.allowPartial),f0(U,"timeout",$.timeout),f0(U,"escalation",$.escalation),f0(U,"webhookUrl",$.webhookUrl),U}async function cd($,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 pd($,U,J){let{promise:G,resolve:X}=Promise.withResolvers(),Q=`${U}:${J}`;return $.reviewWaiters.set(Q,(Z)=>kd(X,Z)),$1($.reviewWaitersByWorkflow,U,Q),{promise:G,resolve:X,waiterKey:Q}}function dd($,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 ld($,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 hN($,U,J,G){let X=$.options.getNow();await G.ensureTerminalCleanupTracked(U);let Q=await $.reviewCoordinator.createReview(U,wd(J)),Z=Q.reviewId;if(G.dispatchEvent(new t4(U,Z,Q.reviewType,Q.reviewers)),J.webhookUrl!==void 0){let z=new AbortController;$.pendingWebhooks.add(z),ud($,U,Q,J.webhookUrl,z)}let Y=await cd($,U,Z,J,X),{promise:_,resolve:H,waiterKey:D}=pd($,U,Z);dd($,U,Z,Y,(z)=>fd($,U,Z,D,Q,J,H,z,G));let L=await _;ld($,U,Z);for(let z of Y)await $.scheduler.cancel(z,U);if(!L.ok)return;G.feedOperationResult(U,{status:"completed",value:L.value})}async function id($,U,J){for(let G of $)try{await G()}catch(X){U.handleCleanupError("cancel-handler",X,J)}}async function nd($,U,J,G){if(J!=="cancelled")return;let X=sq($,U);await id(X,G,U)}async function AD($,U,J){await r1($,U,"cancelled",J)}async function CD($,U,J){await r1($,U,"timed-out",J)}async function r1($,U,J,G,X){$.terminalizingWorkflows.add(U),aX($,U),$.strategy.cancelWorkflow(U);try{let Q=$.workflowsNeedingTerminalCleanup.has(U)?crypto.randomUUID():void 0,Z=await $.storage.get(F.attribute(U)),Y=Z?N(Z):{},_=await $.storage.get(F.finalizerState(U))!==null||IW($,U,F.finalizerState(U)),H=EX(Y),D=J==="timed-out"?"Workflow timed out":"Workflow cancelled",L=await hH($,U,{status:J,...X!==void 0?{terminationReason:X}:{},...Q!==void 0?{terminalCleanupToken:Q}:{}},{allowedStatuses:JD,buildAdditionalOperations:(p,c)=>{b6($,U,J,D,c);let h=u0($,U);return[...h?[h]:[],...Q!==void 0?$3($,U,!0,c,Q):[],...$l(U,_,c)]}});if(!L)return;await nd($,U,J,G),await h0($,U);let{previousState:z,updatedAt:B}=L,W=B-x6(z);if(await gH($,U,Y),await IH($,U,H),G.swallowPromiseRejection($.scheduler.cancel(`deadline:${U}`,U)),z.status==="pending")G.swallowPromiseRejection($.scheduler.cancel(`delayed-start:${U}`,U));let S=$.resultResolvers.get(U),I=rd(U,J,W);try{await iX($,U,!0,G);let p=od(U,J,W,X);if(G.dispatchEvent(p),G.forwardEventToHandle(U,p),S)S.reject(I);u8($,U,G)}catch(p){if(S)S.reject(I);throw p}finally{$.resultResolvers.delete(U)}}finally{$.terminalizingWorkflows.delete(U)}}function rd($,U,J){return U==="timed-out"?new c1($,"execution",J):Error("Workflow cancelled")}function od($,U,J,G){return U==="timed-out"?new T6($,"execution",J,G):new T4($)}function sd($,U,J,G){return{...$,status:"completed",result:U,updatedAt:J,...G!==void 0?{terminalCleanupToken:G}:{}}}function ad($,U,J){if(J===void 0||Object.keys(J).length===0)return;let G=EX(J);if($.push(...q$(U,J,G)),Object.keys(G).length>0)$.push({type:"put",key:F.attribute(U),value:M(G)});else $.push({type:"delete",key:F.attribute(U)})}function td($,U,J,G){let X=m$(U,J,G).batchOps,Q=[...E0(J,G),{type:"put",key:F.workflow(U),value:M(G)},...X],Z=u0($,U);if(Z)Q.push(Z);return Q}function ed($,U,J,G,X){X.swallowPromiseRejection($.scheduler.cancel(`deadline:${U}`,U));let Q=$.resultResolvers.get(U);try{QD($,U,X);let Z=new R4(U,J,G);if(X.dispatchEvent(Z),X.forwardEventToHandle(U,Z),X.broadcast({type:"workflow:completed",workflowId:U}),Q)Q.resolve(J);u8($,U,X)}catch(Z){if(Q)Q.resolve(J);throw Z}finally{$.resultResolvers.delete(U)}}async function RD($,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=R$($.options.getNow(),"Workflow completion timestamp"),Y=Z-x6(Q),_=$.workflowsNeedingTerminalCleanup.has(U)?crypto.randomUUID():void 0,H=sd(Q,J,Z,_),D=td($,U,Q,H),L=$.checkpoints.get(U)?.searchAttributes;if(L===void 0){let z=await $.storage.get(F.attribute(U));if(z)L=N(z)}if(ad(D,U,L),_!==void 0)D.push(...$3($,U,!1,Z,_));return await G.commitWorkflowStateOperations(Q,D,{includePendingAtomicSideEffects:!0}),{duration:Y}});if(!X)return;await h0($,U),ed($,U,J,X.duration,G)}async function s$($,U,J,G,X="system"){let Q=await $.storage.get(F.attribute(U)),Z=Q?N(Q):{},Y=EX(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 hH($,U,_,{allowedStatuses:JD,buildAdditionalOperations:(z,B)=>{b6($,U,"failed",J.message,B);let W=u0($,U);return[...W?[W]:[],...H!==void 0?$3($,U,!1,B,H):[]]}}))return;await h0($,U),await gH($,U,Z),G.swallowPromiseRejection($.scheduler.cancel(`deadline:${U}`,U)),await IH($,U,Y);let L=$.resultResolvers.get(U);try{await iX($,U,!1,G);let z=new R6(U,J);if(G.dispatchEvent(z),G.forwardEventToHandle(U,z),L)L.reject(J);u8($,U,G)}catch(z){if(L)L.reject(J);throw z}finally{$.resultResolvers.delete(U)}}function $3($,U,J,G,X){return Q$({id:G0(J,X),workflowId:U,fireAt:G+gX,kind:"terminal-cleanup"})}function $l($,U,J){if(!U)return[];let G=crypto.randomUUID(),X={status:"owed",attempts:0,token:G};return[{type:"put",key:F.teardownOwed($),value:M(X)},...Q$({id:IG(G),workflowId:$,fireAt:J,kind:"teardown"})]}async function o8($,U){if($.workflowsNeedingTerminalCleanup.has(U))return;$.workflowsNeedingTerminalCleanup.add(U),await $.storage.put(F.terminalCleanupNeeded(U),l$)}function b6($,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=L$(G),Q.entry.duration=X-Q.startedAt}function u0($,U){let J=$.pendingTimelineEntries.get(U);if(!J)return null;return{type:"put",key:F.timeline(U,J.entry.step),value:M(J.entry)}}function yN($,U,J,G){let X=$.inlineStrategy?.getAbortController(U),Q=$.activityWorkerDispatcher?void 0:zW(J.options?.timeout),Z=Q===void 0?void 0:new AbortController,Y=Ul(X?.signal,Z?.signal,G);return{perAttemptTimeoutMs:Q,attemptAbortController:Z,activitySignal:Y}}function Ul($,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 U3($,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 mN($,U,J,G){let X=$.timeout===void 0?void 0:_$($.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 U3($.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 kN=8,TD=[60000,300000,900000,3600000],Jl=300000,Gl=30000,w0=30000;function fN($){let U=$-1;return TD[U]??TD[TD.length-1]}function uN($){return($.timeout===void 0?Jl:_$($.timeout))+Gl}function wN($,U,J){if(U.status!=="running")return!0;if(U.claimedAt===void 0)return!0;return $.options.getNow()-U.claimedAt>=uN(J)}function J3($,U,J){return Q$({id:IG($),workflowId:U,fireAt:J,kind:"teardown"})}function ED($,U){return M({status:"owed",attempts:$,token:U})}function Xl($,U,J){return M({status:"running",attempts:$,token:U,claimedAt:J})}async function s8($,U,J,G){let X=$.options.getNow()+G;try{await Z$($,J3(J,U,X),[],()=>Error("teardown self-heal re-arm lost the lease fence"))}catch{}}async function cN($,U,J){try{return await C0($,[{type:"delete",key:F.teardownOwed(U)}],[{key:F.teardownOwed(U),expectedValue:J}])}catch{return!1}}async function pN($,U,J,G,X){let Q=Xl(G,X,$.options.getNow());return await C0($,[{type:"put",key:F.teardownOwed(U),value:Q}],[{key:F.teardownOwed(U),expectedValue:J}])?Q:null}async function a8($,U,J,G){return C0($,G,[{key:F.teardownOwed(U),expectedValue:J}])}async function xD($,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 a8($,U,X,[{type:"delete",key:F.teardownOwed(U)},{type:"delete",key:F.finalizerState(U)},{type:"put",key:F.teardownDeadLetter(U),value:M(Z)}])}var Ql=new Set(["cancelled","timed-out"]);function Zl($){return $ instanceof Error?$.message:String($)}async function G3($,U,J){await s8($,U,J,w0)}async function SD($,U,J,G){return await cN($,U,G)?{kind:"cleared"}:{kind:"rearm",token:J}}async function Yl($,U,J,G){let X;try{X=N(G)}catch{return SD($,U,J,G)}if(!oP(X))return SD($,U,J,G);return{kind:"claim",claim:X}}async function _l($,U,J,G){let X=await $.storage.get(F.teardownOwed(U));if(X===null)return{kind:"cleared"};let Q=await Yl($,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||!Ql.has(Y.status))return SD($,U,J,X);let _=$.registrations.get(Y.type)?.finalizer;if(_===void 0)return{kind:"rearm",token:J};let H=_;if(!wN($,Z,H))return{kind:"rearm",token:J};let D=await $.storage.get(F.finalizerState(U));if(D===null)return await jl($,U,Y.type,Z.attempts,X,G),{kind:"cleared"};return{kind:"run",drive:{state:Y,claim:Z,markerBytes:X,finalizer:H,finalizerInput:N(D)}}}async function jl($,U,J,G,X,Q){if(await xD($,U,J,G,X,{lastError:"finalizer state missing — recorded resource cannot be torn down",finalizerInput:void 0}))Q.dispatchEvent(new E4(U,J,"dead-lettered",G,"finalizer state missing — recorded resource cannot be torn down"))}async function bD($,U,J,G){let X=rP(J);if(X===null)return;try{let Q=await _l($,U,X,G);if(Q.kind==="cleared")return;if(Q.kind==="rearm"){await s8($,U,Q.token,w0);return}await Hl($,U,X,Q.drive,G)}catch(Q){await s8($,U,X,w0),G.handleCleanupError("runWorkflowFinalizer",Q,U)}}async function Hl($,U,J,G,X){let{state:Q,claim:Z,markerBytes:Y,finalizer:_,finalizerInput:H}=G,D=Z.attempts+1,L=await pN($,U,Y,Z.attempts,J);if(L===null){await s8($,U,J,w0);return}let z=await mN(_,H,D,$.abortController.signal);if(z.ok){await Dl($,U,Q.type,J,D,L,X);return}if(z.abortedByShutdown){let B=$.options.getNow()+w0;if(!await a8($,U,L,[{type:"put",key:F.teardownOwed(U),value:ED(Z.attempts,J)},...J3(J,U,B)]))await G3($,U,J);return}await Ll($,U,Q,D,J,L,z.error,X)}async function Dl($,U,J,G,X,Q,Z){if(!await a8($,U,Q,[{type:"delete",key:F.teardownOwed(U)},{type:"delete",key:F.finalizerState(U)}])){await G3($,U,G);return}Z.dispatchEvent(new E4(U,J,"completed",X))}async function Ll($,U,J,G,X,Q,Z,Y){let _=Zl(Z);if(G>=kN){let L=await $.storage.get(F.finalizerState(U));if(!await xD($,U,J.type,G,Q,{lastError:_,finalizerInput:L===null?void 0:N(L)})){await G3($,U,X);return}Y.dispatchEvent(new E4(U,J.type,"dead-lettered",G,_));return}let H=$.options.getNow()+fN(G);if(!await a8($,U,Q,[{type:"put",key:F.teardownOwed(U),value:ED(G,X)},...J3(X,U,H)])){await G3($,U,X);return}Y.dispatchEvent(new E4(U,J.type,"failed",G,_))}async function vD($,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 pU("suspend is only supported in inline execution mode; a worker run cannot be paused without cancelling it.");$.inlineStrategy.parkWorkflow(U),aX($,U),$.checkpoints.delete(U),$.parkedInlineWorkflows.delete(U),GD($,U,J);let Z=$.options.getNow(),Y={...Q,status:"suspended",updatedAt:Z};return await J.commitWorkflowStateOperations(Q,[{type:"put",key:F.workflow(U),value:M(Y)},...m$(U,Q,Y).batchOps,...Vl(U,Q.executionDeadline)]),!0}))return;let X=new A0(U);J.dispatchEvent(X),J.forwardEventToHandle(U,X)}function Vl($,U){if(U===void 0)return[];let J=`deadline:${$}`;return[{type:"delete",key:F.deadline(U,J)},{type:"delete",key:`timer-idx:${J}`}]}function t8($){return{dispatchEvent:(U)=>$.dispatchEvent(U),broadcast:(U)=>U1(V($),U,e6($))}}function X3($){return{processPendingUpdatesAfterInlineAdvance:(U)=>dN($,U),swallowPromiseRejection:(U)=>S6(U)}}async function dN($,U){try{await WN(V($),U,t8($))}catch(J){a($).handleCleanupError("processPendingUpdates",J,U)}}function T$($){return{dispatchEvent:(U)=>{$.dispatchEvent(U)},getHandle:(U)=>$.getHandle(U),createWorkflowHandleWithResultPromise:(U)=>fX(V($),U),runSerializedWorkflowStateWrite:(U,J)=>Q6(V($),U,J),getComposedWorkflowInterceptor:()=>H6(V($)),resolveWorkflowTypeTarget:(U)=>tX(V($),U,Q3($)),processPendingUpdatesAfterReplay:(U)=>{tH(V($),U,{processPendingUpdatesForHandlers:(J)=>n8(V($),J,t8($)),handleCleanupError:(J,G,X)=>a($).handleCleanupError(J,G,X)})},processPendingUpdatesAfterInlineAdvance:(U)=>dN($,U),processPendingUpdatesForHandlers:(U)=>n8(V($),U,t8($)),queueInlineWorkflowExecutionStart:(U)=>jN(V($),U,X3($)),isInlineWorkflowLocallyOwned:(U,J)=>zN(V($),U,J),hasLocalCheckpointOwnership:(U,J)=>BN(V($),U,J),handleCleanupError:(U,J,G)=>a($).handleCleanupError(U,J,G),swallowPromiseRejection:(U)=>S6(U),enforceHistoryCircuitBreaker:(U)=>r1(V($),U,"timed-out",a($),QG),failWorkflowForUnavailableServices:(U,J)=>s$(V($),U,J,a($),"system"),failWorkflowForCheckpointDecodeError:(U,J)=>s$(V($),U,J,a($),"system")}}function Fl($,U){let J=(G)=>{$.dispatchEvent(G)};return{dispatchEvent:J,forwardEventToHandle:(G,X)=>tW(V($),G,X,e6($)),broadcast:(G)=>U1(V($),G,e6($)),swallowPromiseRejection:(G)=>S6(G),handleCleanupError:(G,X,Q)=>f8(V($),G,X,Q,{dispatchEvent:J}),handleScheduledWorkflowTerminal:U,loadWorkflowState:(G)=>l(V($),G),runSerializedWorkflowStateWrite:(G,X)=>Q6(V($),G,X),commitWorkflowStateOperations:(G,X,Q)=>TX(V($),G,X,Q),cleanupReviews:(G)=>IN(V($),G)}}var lN=async()=>{return};function iN($){lN=$}function a($){return Fl($,(U)=>lN($,U))}function Q3($){return{ensureRetentionSweepInterval:()=>zl($),dispatchEvent:(U)=>$.dispatchEvent(U)}}var nN=()=>{return};function rN($){nN=$}function zl($){nN($)}function e6($){return{dispatchEvent:(U)=>$.dispatchEvent(U)}}function Z3($){return{deleteRequestIfUnconsumed:(U,J)=>V($).updateCoordinator.deleteRequestIfUnconsumed(U,J),getUpdateResponse:(U)=>V($).updateCoordinator.getResponse(U)}}function oN($){return{cancelWorkflowInStrategy:(U)=>V($).strategy.cancelWorkflow(U),dispatchEvent:(U)=>$.dispatchEvent(U),failWorkflow:(U,J)=>s$(V($),U,J,a($)),feedOperationResult:(U,J,G)=>j6(V($),U,J,G)}}var gD;function sN($){gD=$}function e8($){if(gD===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 gD($)}class ID{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 aN($){if(!Number.isSafeInteger($)||$<=0)throw Error("Interval schedule period must be a positive safe integer of milliseconds")}function hD($,U,J){aN(U);let G=R$($,"Interval anchor"),X=R$(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 R$(Y,"Interval occurrence")}function tN($,U,J,G,X){aN(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(_),_=hD($,U,_);return Y}function eN($){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 $4($,U){let J=eN($);if(J.kind==="interval")return hD(J.anchor,J.intervalMs,U);return CX(J.cronExpression,U)}function $O($,U,J,G){let X=eN($);if(X.kind==="interval")return tN(X.anchor,X.intervalMs,U,J,{maxOccurrences:G});return xH(X.cronExpression,U,J,{maxOccurrences:G})}async function yD($,U,J,G){let X=crypto.randomUUID(),Q=U.overlap==="allow"?[]:[{type:"put",key:F.scheduleRun(X),value:M(U.id)}],Z=await Bl($,X,U);if(Z!==null){if(Q.push({type:"put",key:F.workflowHasServices(X),value:l$},{type:"put",key:F.terminalCleanupNeeded(X),value:l$}),$.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 F0(U.id,X,$.options.getNow(),G)),Z!==null&&Z.status==="unavailable"){let Y=cX(X,Z.reason);try{await J.failWorkflow(X,Y)}catch(_){J.handleCleanupError("startScheduledRun",_,X)}}return X}async function Bl($,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 Pl=1000,UO=256,Kl=UO;class fD extends Error{scheduleId;constructor($,U){super(`Failed to persist schedule "${$}" while processing its timer`,{cause:U});this.scheduleId=$}}async function uD($,U,J){let G=await l1($,U.workflowId);if(!Wl(G,U))return;let X=G;try{let Q=$.options.getNow(),Z=Ml(G,U,Q);if(!Z)return;if(Z.occurrencesToProcess.length===0){if(X={...X,updatedAt:Q,nextFireAt:mD(X,Z,Q),...Z.missedOccurrences&&{lastMissedFireAt:Z.missedOccurrences.lastMissedFireAt,missedFireCount:X.missedFireCount+Z.missedOccurrences.count}},await kD($,X),Z.missedOccurrences)$.engine.dispatchEvent(new z0(X.id,Z.missedOccurrences.count,Z.missedOccurrences.windowStart,Z.missedOccurrences.windowEnd));return}X=await Nl($,G,Z,Q,J,{onProcessedState:(Y)=>{X=Y}})}catch(Q){if(Q instanceof fD)throw Q;await Ol($,X,Q)}}function Wl($,U){return $?.status==="active"&&$.nextFireAt!==null&&R0($,$.nextFireAt)===U.fireAt}function Ml($,U,J){let G=$O($,$.nextFireAt,Math.max(J,U.fireAt),$.backfill?UO:2);if(G.length===0)return null;if(!$.backfill&&J-U.fireAt>Pl)return{dueOccurrences:G,missedOccurrences:ql($,$.nextFireAt,J),occurrencesToProcess:[],skipMissedOccurrences:!0};let X=$.backfill?G:G.slice(0,1);return{dueOccurrences:G,occurrencesToProcess:X,skipMissedOccurrences:!1}}function ql($,U,J){let G=0,X=U,Q=U;while(X<=J&&G<Kl){G+=1,Q=X;let Y=$4($,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 mD($,U,J){if(U.skipMissedOccurrences)return $4($,U.missedOccurrences?.lastMissedFireAt??J);let G=U.occurrencesToProcess.at(-1)??U.dueOccurrences.at(-1);return $4($,G)}async function Nl($,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:mD(Z,J,G)};if(Q.onProcessedState(Z),await kD($,Z,{includeTimer:H}),U.backfill&&Z.currentWorkflowId!==void 0){if(Z=await X.settleBackfillScheduleState(Z),H)Z={...Z,updatedAt:G,nextFireAt:mD(Z,J,G)},await kD($,Z);Q.onProcessedState(Z)}}return Z}async function kD($,U,J){try{await Z6($,U,J)}catch(G){throw new fD(U.id,G)}}async function Ol($,U,J){let G=$.options.getNow(),X={...U,status:"paused",updatedAt:G,nextFireAt:$4(U,G)};await Z6($,X,{includeTimer:!1}),console.error(`[weft] Paused schedule "${X.id}" after timer processing failed:`,J)}async function wD($,U,J,G,X){if(!$.registrations.has(U))throw new $6(U);let Q=vH(G),Z=BM(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(F.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:$4({...H,createdAt:_},_),missedFireCount:0,queuedRuns:0};return await Z6($,D),new ID(Y,$.engine)}finally{$.pendingScheduleCreations.delete(Y)}}async function JO($,U){let J=PM(U),G=[];for await(let[X,Q]of $.storage.scan("schedule:")){if(X.slice(9).includes(":"))continue;let Y=b8(Q);if(!Y||!XK(Y,J))continue;let{input:_,...H}=Y;G.push(H)}return QK(G,J)}async function GO($){for await(let[U,J]of $.storage.scan("schedule:")){if(U.slice(9).includes(":"))continue;let X=b8(J);if(!Al(X))continue;if(await Cl($,X))continue;await Z6($,X)}}function Al($){return $?.status==="active"&&$.nextFireAt!==null}async function Cl($,U){let J=F.scheduleTick(R0(U,U.nextFireAt),U.id);if(await $.storage.get(J)===null)return!1;let X=await $.storage.get(`timer-idx:${J0(U.id)}`);return X!==null&&N(X)===J}function XO($){let{input:U,...J}=$;return J}async function QO($,U){let J=G1(U,"scheduleId"),G=await v8($,J);if(G.status!=="active")return;await $.scheduler.cancel(J0(J),J);let X=$.options.getNow(),Q={...G,status:"paused",updatedAt:X,nextFireAt:$4(G,X),queuedRuns:0};await Z6($,Q,{includeTimer:!1})}async function ZO($,U){let J=G1(U,"scheduleId"),G=await v8($,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:$4(G,X)};await Z6($,Q)}async function YO($,U){let J=G1(U,"scheduleId"),G=await v8($,J);if(G.status==="active")await $.scheduler.cancel(J0(J),J);let X={...G,status:"cancelled",updatedAt:$.options.getNow(),nextFireAt:null,queuedRuns:0};await Z6($,X,{includeTimer:!1})}async function _O($,U,J){let G=G1(U,"scheduleId"),X=vH(J),Q=await v8($,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}:{},z={...H,...D,...L,updatedAt:Z,nextFireAt:Q.status==="cancelled"?null:$4({...D,createdAt:Z},Z)};await Z6($,z,{includeTimer:Q.status==="active"})}function jO($){let U=$?.status;return U==="running"||U==="pending"||U==="suspended"}async function HO($,U,J){if(!U.currentWorkflowId)return{state:U,currentWorkflowState:null};let G=await J.loadWorkflowState(U.currentWorkflowId);if(jO(G))return{state:U,currentWorkflowState:G};return await $.storage.delete(F.scheduleRun(U.currentWorkflowId)),{state:fG(U),currentWorkflowState:G??null}}function Rl($){return jO($)}async function Tl($,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=fG($);return{...$,currentWorkflowId:await J.startScheduledRun(X,G)}}if($.overlap==="queue")return{...$,queuedRuns:$.queuedRuns+1};return $}async function DO($,U,J,G){let{state:X,currentWorkflowState:Q}=await J.refreshScheduledWorkflowState(U),Z=Rl(Q);if(X.overlap==="allow")return await J.startScheduledRun(X,G),X;return Tl(X,Z,J,G)}async function LO($,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 VO($,U,J){let G=await $.storage.get(F.scheduleRun(U));if(!G)return;await $.storage.delete(F.scheduleRun(U));let X=N(G);if(!RX(X))return;let Z=await l1($,X);if(!Z||Z.currentWorkflowId!==U)return;let Y=$.options.getNow(),_={...fG(Z),updatedAt:Y};if(_.status==="active"&&_.overlap==="queue"&&_.queuedRuns>0){let H=await J.startScheduledRun(_);await Z6($,{..._,currentWorkflowId:H,queuedRuns:_.queuedRuns-1,updatedAt:Y},{includeTimer:!1});return}await Z6($,_,{includeTimer:!1})}function c0($){return{startWorkflow:async(U,J,G,X)=>{await Y6(V($),U,J,G,X,T$($))},loadWorkflowState:(U)=>l(V($),U),cancelWorkflow:(U)=>$.cancel(U),getWorkflowResult:(U)=>$.getHandle(U).result(),refreshScheduledWorkflowState:(U)=>El($,U),startScheduledRun:(U,J)=>xl($,U,J),applyScheduleOccurrence:(U,J)=>Sl($,U,J),settleBackfillScheduleState:(U)=>bl($,U),flushQueuedInlineWorkflowStartsDirectly:()=>HN(V($),X3($)),failWorkflow:(U,J)=>s$(V($),U,J,a($)),handleCleanupError:(U,J,G)=>f8(V($),U,J,G,{dispatchEvent:(X)=>$.dispatchEvent(X)})}}function FO($){return{dispatchEvent:$.dispatchEvent.bind($),failWorkflow:(U,J)=>s$(V($),U,J,a($)),feedOperationResult:(U,J)=>j6(V($),U,J),ensureTerminalCleanupTracked:(U)=>o8(V($),U)}}async function El($,U){return HO(V($),U,c0($))}async function xl($,U,J){return yD(V($),U,c0($),J)}async function Sl($,U,J){return DO(V($),U,c0($),J)}async function bl($,U){return LO(V($),U,c0($))}async function zO($,U){return uD(V($),U,c0($))}async function vl($,U){return VO(V($),U,c0($))}iN(($,U)=>vl($,U));var BO=5,gl=5,Il=new Set(["completed","failed","cancelled","timed-out"]);async function cD($,U,J){let G=await $.storage.get(F.workflow(U));if(!G)return;let X=i(G);if(Il.has(X.status))throw new H0(U,X.status)}async function hl($,U,J,G){for(let X=0;X<BO;X++){if(await G.getUpdateResponse(J)!==null)return!0;if(await $.storage.get(F.update(U,J))===null)return!0;if(X<BO-1)await N4(gl)}return!1}async function PO($,U,J,G){try{await cD($,U,G)}catch(X){if(X instanceof H0){if(await hl($,U,J,G))return;if(await G.deleteRequestIfUnconsumed(U,J)!==null)return}throw X}}function KO($,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 WO($,U,J,G){let X=ml(J,G);if(X)return X(U,J);let Q=String(J.type);UJ($,U,J,Error(`Unsupported operation type: ${Q}`),G)}function yl($){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 ml($,U){return yl(U)[$.type]}function $J($,U,J,G){G.finalizePendingTimelineEntry(U,"completed",J),G.feedOperationResult(U,{status:"completed",value:J})}function UJ($,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:G8(G,{defaultErrorCategory:"application"})},{value:G})}async function MO($,U,J,G,X){try{let Q=await G();$J($,U,Q,X)}catch(Q){UJ($,U,J,Q,X)}}async function qO($,U,J,G,X){try{await G()}catch(Q){UJ($,U,J,Q,X)}}async function OO($,U,J,G){return G.runOperationWithResult(U,J,()=>dD($,U,J,pD($,U),G))}function pD($,U){let J=kl($,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 kl($,U){return $.inlineStrategy?.getContext(U)?.nestingDepth??$.workflowNestingDepths.get(U)??0}function fl($,U){$.pendingNestingDepth=U.pendingNestingDepth,$.pendingParentHeaders=U.pendingParentHeaders,$.pendingExecutionStateOwnerId=U.pendingExecutionStateOwnerId}function ul($,U){if($.pendingNestingDepth===U.pendingNestingDepth)$.pendingNestingDepth=void 0;if($.pendingParentHeaders===U.pendingParentHeaders)$.pendingParentHeaders=void 0;if($.pendingExecutionStateOwnerId===U.pendingExecutionStateOwnerId)$.pendingExecutionStateOwnerId=void 0}function wl($,U,J){return $.type===U.workflowType&&GK($.input,U.input)&&$.executionStateOwnerId===J}async function cl($,U,J,G,X){let Q=await X.loadWorkflowState($);if(!Q)throw G;if(!wl(Q,U,J))throw Error(`Child workflow id collision for "${$}" does not match the requested child workflow`,{cause:G});return X.getHandle($)}async function pl($,U,J,G,X){PG(J.options,"ctx.startChild"),fl($,G);try{return await X.start(J.workflowType,J.input,{id:U})}catch(Q){if(!(Q instanceof C$))throw Q;return cl(U,J,G.pendingExecutionStateOwnerId??void 0,Q,X)}finally{ul($,G)}}async function dD($,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=dl(J),D=H==="abandon"?null:_?.executionStateOwnerId??U,L=async()=>{let B={pendingNestingDepth:G+1,pendingParentHeaders:$.workflowHeaders.get(U),pendingExecutionStateOwnerId:D},W=await pl($,Z,J,B,X);if(H==="abandon")return NO(W.id);if(H==="request-cancel")return e4($,U,{conditions:[],operations:ZN($,U,W.id)}),BD($,U,W.id,X),NO(W.id);return W.result()},z=X.getComposedWorkflowInterceptor();if(!z)return L();return z.childWorkflow({workflowId:U,childWorkflowId:Z,workflowType:J.workflowType,input:J.input,headers:new Map,parentHeaders:Y},L)}function dl($){return $.options?.parentClosePolicy??"await"}function NO($){return{id:$}}var AO=Symbol("weft.deferredConsume");function CO($){return{[AO]:!0,finalize:$}}function ll($){return typeof $==="object"&&$!==null&&$[AO]===!0}async function p0($){if(ll($))return $.finalize();if(Array.isArray($))return Promise.all($.map((U)=>p0(U)));return $}var il=2147483647;function RO($,U){return Math.min(Math.max(0,$-U),il)}function TO($,U,J){J?.throwIfAborted();let G=$.abortController.signal;if(G.aborted)return Promise.reject(G.reason??Error("aborted"));if(RO(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=RO(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 EO($,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:z}=Promise.withResolvers(),B=()=>{G?.removeEventListener("abort",S),Z.removeEventListener("abort",S)},W=async()=>{let c=await A8($,U,X);return c.found?c.payload:void 0},S=()=>{if(H)return;if(H=!0,B(),D)O8($,U,Q,z);_(G?.reason??Z.reason??Error("aborted"))},I=()=>{if(H)return;H=!0,B(),Y(CO(W))},p=(c)=>{if(H)return;if(H=!0,B(),D)O8($,U,Q,z);_(c)};if(G?.addEventListener("abort",S,{once:!0}),Z.addEventListener("abort",S,{once:!0}),Z.aborted){S();return}(async()=>{let c=await WH($,U,X);if(H)return;if(c.found){I();return}$.signalWaiters.set(Q,z),$1($.signalWaitersByWorkflow,U,Q),D=!0;let h=await WH($,U,X);if(H)return;if(h.found){O8($,U,Q,z),I();return}if(await L,H)return;I()})().catch(p)})}function nl($,U,J,G){let X=$.lastHeartbeatDetailsByStep.get(U);if(X===void 0)X=new Map,$.lastHeartbeatDetailsByStep.set(U,X);X.set(J,G)}function xO($,U,J){return $.lastHeartbeatDetailsByStep.get(U)?.get(J)}function lD($,U,J){let G=$.lastHeartbeatDetailsByStep.get(U);if(G===void 0)return;if(G.delete(J),G.size===0)$.lastHeartbeatDetailsByStep.delete(U)}function SO($,U,J,G){if(!$.options.development)return;if($.activityWorkerDispatcher)return;if(G<=1)return;if(xO($,U,J)!==void 0)return;$.engine.dispatchEvent(new r6(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 bO($,U,J,G,X){return{signal:G,lastHeartbeatDetails:xO($,U,J),heartbeat:(Q)=>{$.heartbeatDetails.set(U,Q),nl($,U,J,Q)},completeAsync:X}}class gO extends v{constructor(){super("ActivityReconciliationCapabilityError",'Activity result reconciliation requires storage capability "conditionalBatch".')}}class IO extends v{constructor($){super("ActivityReconciliationConflictError",$)}}class U4 extends v{constructor($){super("ActivityReconciliationIndeterminateError",$)}}async function hO($,U,J){let G=await al(J);return{idempotencyKeyDigest:G,key:F.activityReconciliation($,U,G)}}function yO($,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 mO($,U){let J=await $.get(U);if(J===null)return null;return sl(N(J))}function Y3($,U){return E6($,U,"activity result"),M($)}async function rl($,U,J){if(!$.capabilities().conditionalBatch)throw new gO;return X$($,"conditionalBatch","activity result reconciliation"),$$($,[{key:U.key,expectedValue:null}],[{type:"put",key:U.key,value:M(J)}])}function iD($,U,J){return{...$,status:"completed",result:U,updatedAt:J}}async function kO($,U,J,G,X,Q,Z){let Y=await mO($.storage,G.key);if(Y===null){let D=await el($,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 U4(`Activity "${J.activityName}" has a prior dispatch marker but no Tier-0 verifier.`);let _=ol(await $i(X,U,J,Q,Y));if(_==="not-completed"){let D={...Y,attempt:Y.attempt+1,ownerId:crypto.randomUUID(),updatedAt:$.options.getNow()};return await vO($.storage,G,Y,D),D}if(_==="completed-result-unavailable")throw new U4(`Activity "${J.activityName}" completed externally but its result is unavailable.`);if(_==="indeterminate")throw new U4(`Activity "${J.activityName}" reconciliation is indeterminate.`);Y3(_.result,$.options.payloadSizePolicy.maxBytes);let H=iD(Y,_.result,$.options.getNow());return await vO($.storage,G,Y,H),{completedResult:_.result}}async function vO($,U,J,G){let X=uO(U,J,G);if(!await $$($,X.conditions,X.operations))throw new IO("Activity reconciliation completion lost compare-and-set ownership.")}function fO($,U,J,G,X){e4($,U,uO(J,G,X))}function uO($,U,J){return{conditions:[{key:$.key,expectedValue:M(U)}],operations:[{type:"put",key:$.key,value:M(J)}]}}function ol($){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 U4("Activity verifier did not return a Tier-0 pre-dispatch reconciliation state.")}function nD($,U,J,G,X,Q,Z){return{phase:$,workflowId:U,operationId:J,activityName:G,input:X,...Q===void 0?{}:{idempotencyKey:Q},attempt:Z}}function sl($){if(typeof $!=="object"||$===null)throw new U4("Activity reconciliation record is not an object.");let U=$;if(!Ui(U))throw new U4("Activity reconciliation record has an invalid shape.");if(U.status==="started")return U;if(U.status==="completed"&&"result"in U)return U;throw new U4("Activity reconciliation record has an unsupported status.")}async function al($){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 tl($,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 el($,U,J,G,X){let Q=tl(U,J,G,X,$.options.getNow());if(await rl($.storage,G,Q))return{didClaim:!0,record:Q};let Y=await mO($.storage,G.key);if(Y===null)throw new U4("Activity reconciliation claim conflicted but no record could be read.");return{didClaim:!1,record:Y}}async function $i($,U,J,G,X){try{return await $.verify(void 0,nD("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 U4(`Activity "${J.activityName}" verifier threw during pre-dispatch reconciliation: ${Z}`)}}function Ui($){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 wO($,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 rD($,U,J){let G=wO($,U,J.activityName);if(G)return G.fn;if(typeof J.fn==="function")return J.fn;return}function cO($,U,J){let G=wO($,U,J.activityName);if(G)return G.fn;if(J.fn)return J.fn;let X=$.workflowTypeByWorkflowId.get(U)??"<unknown>";throw new _G(X,J.activityName)}function Ji($,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 Gi($,U,J,G){let X=rD($,U,J);if(!X?.compensate)return;return async()=>{await X.compensate?.(J.input,G)}}async function Xi($,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 Qi($,U,J,G,X,Q){let Z=cO($,U,J);return j8(Z,Q,G)}function pO($,U){if(U.size>0)$.headers=[...U.entries()]}function oD($){let U=$.attempt;return typeof U==="number"&&Number.isInteger(U)&&U>0?U:1}async function dO($,U,J,G,X=oD(J),Q){let Z=J.input,Y=J.step??0;SO($,U,Y,X);let _=eK(U,Y,X),{perAttemptTimeoutMs:H,attemptAbortController:D,activitySignal:L}=yN($,U,J,Q),z=bO($,U,Y,L,()=>{throw new LX(_)}),B=$.activityWorkerDispatcher?(h,m)=>Xi($,J.operationId,h,m,X):(h,m)=>U3(Qi($,U,J,z,h,m),H,h,X,D),W=G.getComposedActivityInterceptor(),S=async(h,m,u)=>{if(!W)return B(h,m);let E$={workflowId:U,activityName:h,input:m,attempt:X,headers:u};return await W.execute(E$,async(a1)=>{return B(h,a1.input)})},I=G.getComposedWorkflowInterceptor();if(I){let h={workflowId:U,activityName:J.activityName,input:Z,attempt:X,headers:new Map};function*m(){return yield S(J.activityName,h.input,h.headers)}let u=I.activity(h,m),E$=await QW(u);return pO(J,h.headers),E$}let p=new Map,c=await S(J.activityName,Z,p);return pO(J,p),c}async function JJ($,U,J,G,X,Q){let Z=rD($,U,J),Y=yO(Z,J),_=oD(J);if(Y!==void 0){let D=await hO(U,J.activityName,Y),L=await kO($,U,J,D,Z,Y,_);if("completedResult"in L)return Y3(L.completedResult,$.options.payloadSizePolicy.maxBytes),L.completedResult;let z=await dO($,U,J,G,L.attempt,X);Y3(z,$.options.payloadSizePolicy.maxBytes),await lO($,U,J,z,Z,Y,L.attempt,Q,!0);let B=iD(L,z,$.options.getNow());if(fO($,U,D,L,B),!Q)lD($,U,J.step??0);return z}let H=await dO($,U,J,G,_,X);if(E6(H,$.options.payloadSizePolicy.maxBytes,"activity result"),await lO($,U,J,H,Z,Y,_,Q),!Q)lD($,U,J.step??0);return H}async function lO($,U,J,G,X,Q,Z,Y,_=!1){let H=Y?Gi($,U,J,G):void 0;if(H)Y?.recordCompensation(H);if(X?.verify){let D=nD("post-execution-validation",U,J.operationId,J.activityName,J.input,Q,Z),L=Ji($,J.activityName,X.verify,D,G);if(Y){if(Y.recordVerification(L),_)await L}else await L}}async function iO($,U,J,G){return G.runOperationWithResult(U,J,async()=>{try{return await JJ($,U,J,G)}catch(X){if(X instanceof LX)return $W($,X,{workflowId:U,activityName:J.activityName,operationId:J.operationId,step:J.step??0,attempt:oD(J)},{feedOperationResult:G.feedOperationResult,finalizeTimeline:G.finalizePendingTimelineEntry});throw X}})}function _3($){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 nO($,U,J,G){let X=$.abortController.signal,Q=`${U}:${J.signalName}`;while(!0){if(X.aborted)return;let Z=await A8($,U,J.signalName);if(Z.found){G.completeOperation(U,Z.payload);return}let{promise:Y,resolve:_}=Promise.withResolvers();if($.signalWaiters.set(Q,_),$1($.signalWaitersByWorkflow,U,Q),X.aborted){$.signalWaiters.delete(Q),X6($.signalWaitersByWorkflow,U,Q);return}let H=await A8($,U,J.signalName);if(H.found){if($.signalWaiters.get(Q)===_)$.signalWaiters.delete(Q),X6($.signalWaitersByWorkflow,U,Q);G.completeOperation(U,H.payload);return}if(await Y,X.aborted)return}}async function rO($,U,J,G){return G.runOperationWithResult(U,J,async()=>{_3(J.operations);let X=oO(J.resumedCacheEntry),Q=J.operations.map((D,L)=>typeof D.operationId==="string"?D.operationId:`parallel:${J.step}:${L}`),{slots:Z,hasFirstError:Y,firstError:_}=await pK(Q,X,(D)=>G.executeSubOperation(U,J.operations[D]));if(Y)aO(Yi($,U),Z,"ctx.all","worker execution mode");await Zi(Z);let H=HH("all",Z);if(sO($,U,J.step,H),Y)throw _;return dK(Z)})}async function Zi($){let J=(await Promise.allSettled($.map(async(G)=>{if(G.status==="fulfilled")G.value=await p0(G.value)}))).find((G)=>G.status==="rejected");if(J)throw J.reason}function oO($){if(!w1($))return;return $.branches}function Yi($,U){return $.inlineStrategy?.getContext(U)!==void 0}function sO($,U,J,G){let X=$.inlineStrategy?.getContext(U);if(X===void 0)return!1;return X.accumulatedResults.set(J,G),!0}function aO($,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 tO($,U,J,G){return G.runOperationWithResult(U,J,async()=>{_3(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 p0(Z)})}async function eO($,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=oO(J.resumedCacheEntry),Y=Di(Z,X),_=_i(J.branches,X,Y),{outcomes:H,hasFirstError:D,firstError:L}=await oK(_,(S,I)=>j8(S,I)),z=ji(X,Q,Y,H),B=HH("run-all",z,X),W=sO($,U,J.step,B);if(D)throw aO(W,z,"ctx.runAll","worker execution mode"),L;return Hi(X,z)})}function _i($,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 ji($,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 Hi($,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 Di($,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 Li($){return typeof $.execute==="function"}async function $A($,U,J,G,X){return sK(J.branches,(Q,Z)=>{if(!X||!Li(Q))return j8(Q,Z);return JJ($,U,{type:"activity",operationId:crypto.randomUUID(),activityName:Q.name,fn:Q,input:Z},G.getActivityOperationCallbacks(),void 0,X)})}async function UA($,U,J,G){return G.runOperationWithoutResult(U,J,()=>G.processReviewOperation(U,J.reviewOptions))}async function j3($,U,J,G,X,Q){X?.throwIfAborted();let Z=Vi[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 Vi={activity:($,U)=>Fi($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),"child-workflow":($,U)=>zi($.internals,$.workflowId,U,$.callbacks),memo:($,U)=>Promise.resolve(hG(U.fn)),"state-read":($,U)=>Bi($.internals,U),"state-commit":($,U)=>Pi($.internals,U,$.callbacks),parallel:($,U)=>Ki($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),race:($,U)=>Wi($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),"run-all":($,U)=>$A($.internals,$.workflowId,U,$.callbacks.createCoordinationOperationCallbacks(),$.speculativeState),sleep:($,U)=>TO($.internals,U,$.signal),"wait-signal":($,U)=>EO($.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 Fi($,U,J,G,X,Q){return JJ($,U,J,G.createActivityOperationCallbacks(),X,Q)}async function zi($,U,J,G){return dD($,U,J,pD($,U),G.createChildWorkflowOperationCallbacks())}async function Bi($,U){return f1($.storage,s4(U.scope,U.key),U)}async function Pi($,U,J){let G=s4(U.scope,U.key),X=U.mode==="delete"?await V8($.storage,G,U.expectedVersion):await L8($.storage,G,U.expectedVersion,U.value);if(X.applied&&U.scope.type==="execution")await J.createStateOperationCallbacks().ensureTerminalCleanupTracked(U.scope.ownerWorkflowId);return X}async function Ki($,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)=>j3($,U,H,G,Z.signal,Q));Promise.allSettled(_);try{return await Promise.all(_)}finally{X?.removeEventListener("abort",Y),Z.abort()}}async function Wi($,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)=>j3($,U,H,G,Z.signal,Q));Promise.allSettled(_);try{return await Promise.race(_)}finally{X?.removeEventListener("abort",Y),Z.abort()}}function sD($){return{runOperationWithResult:(U,J,G)=>Y1($,U,J,G),start:(U,J,G)=>Y6(V($),U,J,G,void 0,T$($)),loadWorkflowState:(U)=>l(V($),U),getHandle:(U)=>$.getHandle(U),getComposedWorkflowInterceptor:()=>H6(V($))}}function H3($){return{runOperationWithResult:(U,J,G)=>Y1($,U,J,G),finalizePendingTimelineEntry:(U,J,G)=>b6(V($),U,J,G),feedOperationResult:(U,J,G)=>j6(V($),U,J,G),getComposedActivityInterceptor:()=>UN(V($)),getComposedWorkflowInterceptor:()=>H6(V($))}}function d0($){return{completeOperation:(U,J)=>V3($,U,J),runOperationWithResult:(U,J,G)=>Y1($,U,J,G),executeSubOperation:(U,J,G,X)=>aD($,U,J,G,X),getActivityOperationCallbacks:()=>H3($)}}function GA($){return{completeOperation:(U,J)=>V3($,U,J),failOperation:(U,J,G)=>Mi($,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 GJ($){return{runOperationWithResult:(U,J,G)=>Y1($,U,J,G)}}function D3($){return{runOperationWithResult:(U,J,G)=>Y1($,U,J,G),ensureTerminalCleanupTracked:(U)=>o8(V($),U)}}function XA($){return{runOperationWithResult:(U,J,G)=>Y1($,U,J,G),handleCleanupError:(U,J,G)=>a($).handleCleanupError(U,J,G)}}function L3($){return{completeOperation:(U,J)=>V3($,U,J),dispatchEvent:(U)=>$.dispatchEvent(U),loadWorkflowState:(U)=>l(V($),U),failWorkflow:(U,J)=>s$(V($),U,J,a($)),runSerializedWorkflowStateWrite:(U,J)=>Q6(V($),U,J),beginWorkflowExecution:(U,J,G,X,Q,Z,Y)=>lX(V($),U,J,G,X,Q,Z,Y,T$($)),workflowVersionTupleFromState:(U)=>uX(V($),U,T$($)),setWorkflowStartHeaders:(U,J)=>x4(V($),U,J,T$($)),loadWorkflowStartHeaders:(U)=>i1(V($),U,T$($)),parseStartOptionDuration:(U,J)=>m0(V($),U,J,T$($)),runDeferredTerminalCleanup:(U,J)=>YD(V($),U,J,a($)),runWorkflowFinalizer:(U,J)=>bD(V($),U,J,a($)),handleScheduleTimer:(U)=>zO($,U),timeout:(U)=>$.timeout(U),handleCleanupError:(U,J,G)=>a($).handleCleanupError(U,J,G)}}function l0($){return{dispatchEvent:(U)=>$.dispatchEvent(U),broadcast:(U)=>U1(V($),U,e6($)),completeOperation:(U,J)=>V3($,U,J),guardTerminalWorkflow:(U)=>cD(V($),U,Z3($)),guardTerminalWorkflowAfterCoordinatedRequest:(U,J)=>PO(V($),U,J,Z3($)),persistCoordinatedUpdateResponse:(U,J,G,X,Q)=>JA($,U,J,G,X,Q),deliverCoordinatedUpdateToWaiterIfAvailable:(U,J,G)=>oW(V($),U,J,G,l0($)),dispatchPendingUpdateReceived:(U,J,G)=>eW(V($),U,J,G,e6($)),createCoordinatedUpdateResponder:(U,J,G)=>rW(V($),U,J,G,{persistCoordinatedUpdateResponse:(X,Q,Z,Y,_)=>JA($,X,Q,Z,Y,_)}),findPendingUpdateByName:(U,J)=>sW(V($),U,J),schedulePendingInlineUpdateDrain:(U)=>MN(V($),U,t8($))}}async function JA($,U,J,G,X,Q){let Z=V($),Y=Z.updateCoordinator.buildResponseOperations(G,U,Q,void 0,X);try{await Z$(Z,Y,[],()=>Error(`Coordinated update response for workflow "${U}" lost its CAS race.`)),$.dispatchEvent(new G6(G,U,J,Q)),U1(Z,{type:"update:completed",workflowId:U,updateId:G},e6($))}catch(_){a($).handleCleanupError("writeCoordinatedUpdateResponse",_,U)}}function V3($,U,J){return $J(V($),U,J,e8($))}function Mi($,U,J,G){return UJ(V($),U,J,G,e8($))}async function Y1($,U,J,G){return MO(V($),U,J,G,e8($))}async function QA($,U,J,G){return qO(V($),U,J,G,e8($))}async function aD($,U,J,G,X){return j3(V($),U,J,{createActivityOperationCallbacks:()=>H3($),createChildWorkflowOperationCallbacks:()=>sD($),createCoordinationOperationCallbacks:()=>d0($),createStateOperationCallbacks:()=>D3($)},G,X)}async function ZA($,U,J){return hN(V($),U,J,FO($))}async function YA($,U,J,G){return G.runOperationWithResult(U,J,async()=>hG(J.fn))}async function _A($,U,J,G){return G.runOperationWithResult(U,J,async()=>{let X=await J.fn(),Q=M(X);return await $.storage.put(F.offload(U,J.key),Q),{key:J.key,workflowId:U,sizeBytes:Q.byteLength}})}async function jA($,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(F.offload(X,Q));if(Y===null)throw Error(`Offloaded data not found for key "${Q}" in workflow "${X}"`);return N(Y)})}async function HA($,U,J){let G=await $.storage.get(F.offload(U,J));if(G===null)return null;return N(G)}async function DA($,U,J,G){return G.runOperationWithResult(U,J,async()=>{await $.storage.put(F.archive(U,J.key),M(J.data));return})}class tD{#$;#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 LA($,U,J,G){return G.runOperationWithResult(U,J,()=>qi($,U,J,G))}async function qi($,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 tD,_=Ni(J,Z);try{let H=await Oi(U,_,Y,G);return await Y.drainVerifications(),Q.commitSpeculativeChild(Z),H}catch(H){throw await Y.rollback(),H}}function Ni($,U){return $.execute(U)}async function Oi($,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")_3(_.operations);let H=await G.executeSubOperation($,_,void 0,J),D=await p0(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 VA($,U,J,G){return G.runOperationWithResult(U,J,async()=>{let X=s4(J.scope,J.key);return f1($.storage,X,J)})}async function FA($,U,J,G){return G.runOperationWithResult(U,J,async()=>{let X=s4(J.scope,J.key);if(J.mode==="delete"){let Z=await V8($.storage,X,J.expectedVersion);if(Z.applied&&J.scope.type==="execution")await G.ensureTerminalCleanupTracked(J.scope.ownerWorkflowId);return Z}let Q=await L8($.storage,X,J.expectedVersion,J.value);if(Q.applied&&J.scope.type==="execution")await G.ensureTerminalCleanupTracked(J.scope.ownerWorkflowId);return Q})}var Ai=/^\d+$/;function Ci($){if(!Ai.test($))return;let U=Number.parseInt($,10);return Number.isSafeInteger(U)?U:void 0}async function i0($,U,J,G){let X=G?.after,Q=F.streamChunkPrefix(U,J),Z=[],Y=X!==void 0&&X>=0?{gt:F.streamChunk(U,J,X)}:void 0;for await(let[_,H]of $.scan(Q,Y)){let D=_.slice(Q.length),L=Ci(D);if(L===void 0)continue;Z.push({sequence:L,value:N(H)})}return Z}function zA($){return M({sequence:$})}function Ri($){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 BA($,U,J){let G=await $.get(F.streamTail(U,J));if(G===null)return null;try{return Ri(N(G))}catch{return null}}var o1="tokens",eD="stream:chunk",Ti="workflow:compaction-boundary";async function*PA($,U,J,G){if(J==="events"){yield*Ei($,U,G);return}yield*xi($,U,G)}async function KA($,U,J){if(J==="events"){let Z=$.eventLogHeads.get(U);if(Z)return Z.sequence;return(await new o$($.storage,U).loadHead()).sequence}let G=await BA($.storage,U,o1);if(G!==null)return G;let X=await i0($.storage,U,o1);if(X.length===0)return-1;let Q=-1;for(let Z of X)if(Z.sequence>Q)Q=Z.sequence;return Q}function WA($,U,J,G){let X=$0(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*Ei($,U,J){let G=new o$($.storage,U),X=J<0?0:J+1,Q=await Q1($.storage,U);if(Q!==null&&X<Q.sequence)yield{workflowId:U,selector:"events",kind:Ti,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*xi($,U,J){let G=J>=0?await i0($.storage,U,o1,{after:J}):await i0($.storage,U,o1),X=Date.now();for(let Q of G)yield{workflowId:U,selector:"tokens",kind:eD,sequence:Q.sequence,timestamp:X,payload:Q.value}}function F3($,U,J,G){let X=$.workflowFeedListeners.get($0(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 MA($,U,J,G){return i0($.storage,U,J,G)}async function qA($,U,J,G){return G.runOperationWithResult(U,J,()=>Si($,U,J,G))}async function Si($,U,J,G){let X={heartbeat:(Z)=>{$.heartbeatDetails.set(U,Z)}},Q=[];try{let Z=await bi($,U,J,J.fn(X),Q),Y={key:J.key,workflowId:U,chunkCount:Z.chunkCount,totalSizeBytes:Z.totalSizeBytes};return await $.storage.put(F.streamMetadata(U,J.key),M(Y)),Y}catch(Z){throw await vi($,U,J.key,Q,G),Z}}async function bi($,U,J,G,X){let Q=0,Z=0;for await(let Y of G){let _=M(Y),H=Q,D=F.streamChunk(U,J.key,H);if(J.key===o1)await $.storage.batch([{type:"put",key:D,value:_},{type:"put",key:F.streamTail(U,J.key),value:zA(H)}]);else await $.storage.put(D,_);if(X.push(D),Z+=_.byteLength,Q++,J.key===o1)F3($,U,"tokens",{workflowId:U,selector:"tokens",kind:eD,sequence:H,timestamp:Date.now(),payload:Y})}return{chunkCount:Q,totalSizeBytes:Z}}async function vi($,U,J,G,X){await rK($.storage,U,J,G,lK(X.handleCleanupError,U))}function OA($,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 AA($,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=OA($,Q,Z);if(H.done){_(H.value);return}if(Z!==void 0)await G.scheduleConditionDeadline(U,J.step,Z);try{let D=await NA($,U,Q,Z,G);while(D.status==="continue")D=await NA($,U,Q,Z,G);if(D.status==="complete")_(D.value)}finally{if(CA($,U),Z!==void 0)await G.cancelConditionDeadline(U,J.step)}}catch(H){G.failOperation(U,J,H)}}async function NA($,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}:{...OA($,J,G),aborted:!1};if(_.done)return CA($,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 CA($,U){$.conditionWaiters.delete(U)}function $L($){return{processActivityOperation:(U,J)=>iO(V($),U,J,H3($)),processSleepOperation:(U,J)=>Jq(V($),U,J,L3($)),processWaitSignalOperation:(U,J)=>nO(V($),U,J,d0($)),processWaitUpdateOperation:(U,J)=>iW(V($),U,J,l0($)),processWaitConditionOperation:(U,J)=>AA(V($),U,J,GA($)),processGetVersionOperation:async(U,J)=>{$J(V($),U,J.version,{finalizePendingTimelineEntry:(G,X,Q)=>b6(V($),G,X,Q),feedOperationResult:(G,X,Q)=>j6(V($),G,X,Q)})},processParallelOperation:(U,J)=>rO(V($),U,J,d0($)),processRaceOperation:(U,J)=>tO(V($),U,J,d0($)),processMemoOperation:(U,J)=>YA(V($),U,J,GJ($)),processChildWorkflowOperation:(U,J)=>OO(V($),U,J,sD($)),processOffloadOperation:(U,J)=>_A(V($),U,J,GJ($)),processLoadOperation:(U,J)=>jA(V($),U,J,GJ($)),processArchiveOperation:(U,J)=>DA(V($),U,J,GJ($)),processStateReadOperation:(U,J)=>VA(V($),U,J,D3($)),processStateCommitOperation:(U,J)=>FA(V($),U,J,D3($)),processRunAllOperation:(U,J)=>eO(V($),U,J,d0($)),processSpeculateOperation:(U,J)=>LA(V($),U,J,{runOperationWithResult:(G,X,Q)=>Y1($,G,X,Q),executeSubOperation:(G,X,Q,Z)=>aD($,G,X,Q,Z)}),processStreamOperation:(U,J)=>qA(V($),U,J,XA($)),processWaitReviewOperation:(U,J)=>UA(V($),U,J,{runOperationWithoutResult:(G,X,Q)=>QA($,G,X,Q),processReviewOperation:(G,X)=>ZA($,G,X)}),finalizePendingTimelineEntry:(U,J,G)=>b6(V($),U,J,G),feedOperationResult:(U,J,G)=>j6(V($),U,J,G)}}sN(($)=>$L($));function RA($){let U=g($).pendingAttributeChanges;return U!==void 0&&Object.keys(U).length>0}function TA($){let U=g($).updateHandlers;return U!==void 0&&U.size>0}function EA($){let U=g($).exposedValues;return U!==void 0&&U.size>0}function xA($,U,J,G,X,Q){let Z=u0($,U),Y=$.workflowVersionTuples.get(U);if(Z)Q.push(Z);let _={step:G,operationType:J.type,operationLabel:sP(J),inputSummary:aP(J),timestamp:X,status:"running",...Y?{versionTuple:Y}:{}};return Q.push({type:"put",key:F.timeline(U,G),value:M(_)}),{startedAt:X,entry:_}}async function SA($,U,J,G,X){if($.inlineStrategy?.getContext(U))await gi($,U,J,X);else if(G&&G.byteLength>0)await Ii($,U,J,G,X)}async function gi($,U,J,G){let X=$.checkpoints.get(U),Q=$.inlineStrategy?.getContext(U);if(!X||!Q)return;let Z={...X.searchAttributes},Y=Q.checkpointPendingAttributeChanges,_=RA(Q),H=XH(X,Q.checkpointLocals,{accumulatedResults:Q.checkpointAccumulatedResults,now:$.options.getNow(),...Y!==void 0?{searchAttributes:Y}:{}}),D=Ij(H,gA(J,Q.stepIndex)),L=bA($,U,D.checkpoint,P$(hj(D.checkpoint,D.replayPayload)),D.replayPayload);if(hi(U,L,Z,Y,_,G),await vA($,U,J,L,G),_)G.dispatchEvent(new V0(U,{...Y}))}async function Ii($,U,J,G,X){let Q=new Uint8Array(G),Z=V$(Q),Y=tU(Z),_=Ij(Z,gA(J,Z.step)),H=SG(Y,_.replayPayload),D=P$(hj(_.checkpoint,H));await vA($,U,J,bA($,U,_.checkpoint,D,H),X)}function bA($,U,J,G,X){let Q=[{type:"put",key:F.checkpoint(U),value:G}];if($.options.checkpointHistory>0)Q.push({type:"put",key:F.checkpointHistory(U,J.step),value:G});let Z=qM($,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 hi($,U,J,G,X,Q){if(!X)return;Q.validateAttributeValueSizes(G??{}),U.operations.push({type:"put",key:F.attribute($),value:M(U.checkpoint.searchAttributes)}),U.operations.push(...q$($,J,U.checkpoint.searchAttributes))}async function vA($,U,J,G,X){ui($,U,G,X);let Q=X.appendTimelineBatchOperations(U,J,G.step,G.timestamp,G.operations),{newHead:Z,timestamp:Y}=wi($,U,G),_=$.options.historyPolicy.retentionWindow,H=_===null?null:await rM($.storage,U,Z.sequence,_,G.operations),D=WX($,U);if(D!==void 0)G.operations.push(...D.operations);let L=$.storage.capabilities().conditionalBatch,z=yi(D,L),B=mi(U,G,L,z);if(await Z$($,G.operations,B,()=>{return Error(`Checkpoint commit for workflow "${U}" lost its CAS race against a newer checkpoint.`)}),D!==void 0)MX($,U);if(G.expectedSerialized!==void 0)bX($,U,G.serialized);if($.pendingTimelineEntries.set(U,Q),$.checkpoints.set(U,G.checkpoint),$.eventLogHeads.set(U,Z),H!==null)fi($,U,H,X);if(F3($,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)),ki($,Z.sequence))await X.enforceHistoryCircuitBreaker(U)}function yi($,U){if(!U)return[];return $?.conditions??[]}function mi($,U,J,G){let X=[];if(J&&U.expectedSerialized!==void 0)X.push({key:F.checkpoint($),expectedValue:U.expectedSerialized});return X.push(...G),X}function ki($,U){let J=$.options.historyPolicy.maxEvents;return J!==null&&U+1>J}function fi($,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}`,_=oM(J.deletedEntries);G.swallowPromiseRejection(Promise.resolve().then(()=>X.store(U,Y,_)))}function ui($,U,J,G){if(J.serialized.byteLength>=$.options.checkpointSizeWarningThreshold)G.dispatchEvent(new P0(U,J.serialized.byteLength,J.step))}function wi($,U,J){return new o$($.storage,U).appendToBatch({type:"workflow:checkpoint",payload:bP(J.step,J.replayPayload)},J.operations,$.eventLogHeads.get(U)??I1,$.workflowVersionTuples.get(U))}function gA($,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 IA($,U,J){let G=$.options.checkpointHistory;if(G<=0)return;let X=J-G;if(X<1)return;let Q=F.checkpointHistory(U,X);await $.storage.delete(Q)}function hA($,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=QH({...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 r6(U,_,Y))}}async function yA($,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 ci(Y,Z))continue;if(pi(J,U,Y),Y.onViolation==="warn"){di(U,Y);continue}let H=Error(`Constraint violated: ${Y.name} (scope: ${Y.scope})`);if(Y.onViolation==="fail")await li(J,U,H);else ii(J,U,H);return!0}return!1}async function ci($,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 pi($,U,J){$.dispatchEvent(new N0(U,J.name,J.scope,J.onViolation))}function di($,U){console.warn(`[weft] Constraint "${U.name}" (scope: ${U.scope}) violated on workflow "${$}" — continuing (onViolation: 'warn')`)}async function li($,U,J){$.cancelWorkflowInStrategy(U),await $.failWorkflow(U,J)}function ii($,U,J){$.feedOperationResult(U,{status:"failed",error:J.message,errorName:J.name,failureCategory:"application"},{value:J})}async function mA($,U,J,G){if(J.type!=="wait-signal"||$.inlineStrategy===null)return!1;let X=$.inlineStrategy,Q=X.getContext(U);if(Q&&(TA(Q)||EA(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 z3($,U,J){if(!$.parkedInlineWorkflows.has(U))return;$.parkedInlineWorkflows.delete(U);try{await l8($,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 kA($,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 fA($,U,J){switch(U.type){case"completed":await RD($,U.workflowId,U.result,J.createTerminationCallbacks());break;case"failed":{let G=Error(U.error);if(U.errorStack)G.stack=U.errorStack;await s$($,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 s$($,U.workflowId,Z,J.createTerminationCallbacks(),"system")});break}await J.processOperation(U.workflowId,G);break}}}function B3($){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 P3($){$.nextRetentionSweepAt=$.options.getNow()+$.options.retentionSweepIntervalMs}function K3($,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 W3($,U,J){try{await g8($,void 0,{expiredOnly:!0,limit:$.options.retentionSweepBatchSize,now:$.options.getNow()},J)}catch(G){U("retentionSweep",G)}}function UL($,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 uA($,U=(J)=>UL($,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 XJ($){return{createLifecycleCallbacks:()=>T$($),createTerminationCallbacks:()=>a($),evaluateConstraints:(U)=>yA(V($),U,oN($)),getParkedWorkflowResumeDisposition:(U)=>kA(V($),U,XJ($)),hasBufferedSignal:(U,J)=>wW(V($),U,J),loadWorkflowState:(U)=>l(V($),U),parkInlineWorkflowAfterCheckpoint:(U,J)=>mA(V($),U,J,XJ($)),persistCheckpoint:(U,J,G)=>ni($,U,J,G),processOperation:(U,J)=>WO(V($),U,J,$L($)),readCheckpointBytes:(U)=>V($).storage.get(F.checkpoint(U)),resumeParkedInlineWorkflow:(U)=>z3(V($),U,XJ($)),runSerializedWorkflowStateWrite:(U,J)=>Q6(V($),U,J),translateOperationRequest:(U)=>KO(V($),U),validateDevelopmentCheckpoint:(U)=>hA(V($),U,{dispatchEvent:(J)=>{$.dispatchEvent(J)}})}}function ni($,U,J,G){return SA(V($),U,J,G,{appendTimelineBatchOperations:(X,Q,Z,Y,_)=>xA(V($),X,Q,Z,Y,_),swallowPromiseRejection:(X)=>{S6(X)},validateAttributeValueSizes:x0,pruneCheckpointHistory:(X,Q)=>IA(V($),X,Q),dispatchEvent:(X)=>{$.dispatchEvent(X)},enforceHistoryCircuitBreaker:(X)=>r1(V($),X,"timed-out",a($),QG)})}function ri($){K3(V($),{hasConfiguredRetention:()=>B3(V($)),runRetentionSweep:()=>W3(V($),(U,J)=>a($).handleCleanupError(U,J),(U)=>a6(V($),U,a($))),setNextRetentionSweepAt:()=>P3(V($))})}rN(($)=>ri($));async function wA($,U){let J=[],G=new o$($.storage,U);for await(let X of G.scan())J.push({type:X.type,timestamp:X.timestamp,data:dj(X.payload)});return J}async function cA($,U){if($.options.checkpointHistory<=0)return[];let J=`${F.checkpoint(U)}:`,G=[];for await(let[,X]of $.storage.scan(J,{reverse:!0,limit:$.options.checkpointHistory})){let Q=V$(X);G.push({step:Q.step,timestamp:Q.createdAt,sizeBytes:X.byteLength})}return G}async function pA($,U,J){let G=await $.storage.get(F.checkpointHistory(U,J));if(!G)return null;let X=await y1($.storage,U,V$(G));return pj({step:X.step,locals:X.locals,searchAttributes:X.searchAttributes,version:X.version,createdAt:X.createdAt})}async function dA($,U){let J=[];for await(let[,G]of $.storage.scan(F.timelinePrefix(U))){let X;try{X=N(G)}catch{continue}if(dP(X))J.push({...X,inputSummary:lj(X.inputSummary)??X.inputSummary,...X.outputSummary!==void 0?{outputSummary:lj(X.outputSummary)??X.outputSummary}:{}})}return J.sort((G,X)=>G.step-X.step),J}async function lA($,U,J){let G=await $.storage.get(F.checkpointHistory(U,J));if(!G)return null;let Q=await new o$($.storage,U).replay(Math.max(J-1,-1)),Z=await y1($.storage,U,V$(G)),Y=await Q1($.storage,U);return{checkpoint:pj({step:Z.step,locals:Z.locals,searchAttributes:Z.searchAttributes,version:Z.version,createdAt:Z.createdAt}),accumulatedResults:Z.accumulatedResults.map(([_,H])=>[_,g1(H)]),events:Q.map((_)=>({type:_.type,timestamp:_.timestamp,data:dj(_.payload)})),...Y!==null?{compactedBefore:Y.sequence}:{}}}function iA($,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 JL{#$;#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=iA(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 GL{#$;#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=iA(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 oi=1e4;class XL{#$;#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?_$(X.window):60000;if(X.metric==="workflow.failure_rate")this.#G.set(G,new JL(Q));else if(X.metric==="activity.p99_duration")this.#G.set(G,new GL(Q))}this.#V(),this.#_=setInterval(this.#L.bind(this),oi)}#L(){for(let $=0;$<this.#U.rules.length;$++)this.#j($)}#V(){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 D0))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 W0))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 q0(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.#F($,U,J)}#F($,U,J){let G=this.#U.webhooks??[];for(let X of G){if(!X.events.includes(U))continue;let Q=new AbortController;this.#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 nA(){let $=SP();if(!$)throw Error("Brotli compression requires Bun or Node 22.5+ with process.getBuiltinModule support. Use gzip compression for browser/edge runtimes.");return $}function si($){return new Uint8Array(nA().brotliCompressSync($))}function ai($){return new Uint8Array(nA().brotliDecompressSync($))}var M3=193,QL=0,rA=1,oA=2,J4=2;function sA($){return ti($)}function ti($){switch($){case"gzip":return{algorithm:"gzip",compress(U){return EP(U)}};case"brotli":return{algorithm:"brotli",compress(U){return si(U)}};case"none":return{algorithm:"none",compress(U){return U}}}}async function ZL($,U,J){if($.length<J||U.algorithm==="none"){let Z=new Uint8Array($.length+J4);return Z[0]=M3,Z[1]=QL,Z.set($,J4),Z}let G=await U.compress($);if(G.length+J4>=$.length+J4){let Z=new Uint8Array($.length+J4);return Z[0]=M3,Z[1]=QL,Z.set($,J4),Z}let X=U.algorithm==="gzip"?rA:oA,Q=new Uint8Array(G.length+J4);return Q[0]=M3,Q[1]=X,Q.set(G,J4),Q}async function YL($){if($.length<J4)throw Error("Compression payload missing 2-byte header.");if($[0]!==M3)throw Error("Compression payload missing magic byte 0xC1.");let U=$[1],J=$.slice(J4);switch(U){case QL:return J;case rA:return xP(J);case oA:return ai(J);default:throw Error(`Compression payload uses unsupported algorithm byte 0x${U.toString(16).padStart(2,"0")}.`)}}var ei=4096,$n="gzip";function aA($){return{threshold:$?.threshold??ei,algorithm:$?.algorithm??$n}}class _L{#$;#U;#J;constructor($,U){this.#$=$;let J=aA(U);if(this.#U=sA(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 YL(U)}async put($,U){let J=await ZL(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 YL(G)]}async batch($){I$("batch operations",$.length);let U=await Promise.all($.map(async(J)=>{if(J.type==="put")return{type:"put",key:J.key,value:await ZL(J.value,this.#U,this.#J)};return J}));return this.#$.batch(U)}[Symbol.dispose](){this.#$[Symbol.dispose]()}}function Un($){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 s1($){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=Un($.limit);if(G!==void 0)U.limit=G;return U}async function tA($,U,J){let G=s1(J);if($.deleteRange)return $.deleteRange(U,G);return kB($,U,G)}function Jn($,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 Gn($,U){let J={key:J$($),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 eA($,U){let J=Jn($,U),G=Gn($,U);if(J.key>G.key||J.key===G.key&&(J.open||G.open))return null;return{lower:J,upper:G}}function jL($){return $.replaceAll(/:+$/g,"")}function Xn($,U){let J=jL($),G=jL(U);if(J.length===0)return G;if(G.length===0)return J;return`${J}:${G}`}class HL{#$;#U;constructor($,U){this.#$=$,this.#U=jL(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 HL(this.#$,Xn(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($){I$("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 $$(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 h$(this.#$,this.#J($))}async deletePrefix($){return pB(this.#$,this.#J($))}async deleteRange($,U){let J=this.#Q(s1(U));return tA(this.#$,this.#J($),J)}async*keys($,U){for await(let J of HG(this.#$,this.#J($),this.#X(U)))yield this.#G(J)}async count($){return cB(this.#$,this.#J($))}[Symbol.dispose](){this.#$[Symbol.dispose]()}}function q3($,U){return new HL($,U)}class DL{#$;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=J$($),Q=this.#J($,X);if(Q=Q.filter((Y)=>S1(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($){I$("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){I$("conditionalBatch conditions",$.length),I$("conditionalBatch operations",U.length);for(let J of $){let G=this.#$.get(J.key)??null;if(!iU(G,J.expectedValue))return!1}return this.#G(U),!0}async has($){return this.#$.has($)}async deletePrefix($){let U=J$($),J=this.#J($,U);for(let G of J)this.#$.delete(G);return J.length}async deleteRange($,U){let J=s1(U),G=J$($),X=this.#J($,G).filter((Z)=>S1(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=J$($),Q=this.#J($,X);if(Q=Q.filter((Y)=>S1(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=J$($);return this.#J($,U).length}scoped($){return q3(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 LL{#$;#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 N3{#$;#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.#L();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.#F(),this.#z()}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.#z()}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.#V()}async[Symbol.asyncDispose](){if(this.#Y)return;if(this.#Y=!0,this.#D(Error("WorkerPool has been disposed")),this.#U.length===this.#$.size){this.#V();return}return new Promise(($)=>{this.#_=()=>{this.#V(),$()}})}#L(){let $={};if(this.#Z)$.smol=!0;let U=new Worker(this.#Q,$);return this.#$.add(U),U}#V(){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()}#F(){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.#L());continue}return}}#z(){if(this.#_&&this.#U.length===this.#$.size)this.#_(),this.#_=null}}function $C($,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},...Qn($,J.workflowId),services:$.getWorkflowServices?.(J.workflowId),...Zn($)}}function Qn($,U){let{registerCancelHandler:J,recordFinalizerState:G}=$;return{...J!==void 0&&{registerCancelHandler:(X)=>J(U,X)},...G!==void 0&&{recordFinalizerState:(X)=>G(U,X)}}}function Zn($){let U=$.getLogSink?.();return U===void 0?{}:{logSink:U}}function UC($){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 VL{#$;#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 Z1($C(this.#$,U,$,J)),X=this.#$.getComposedWorkflowInterceptor?.()??null;if(k0(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"?OG($.operationResult):void 0;if(X)this.#L($.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.#L($,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.#V($,(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:G8(G,{defaultErrorCategory:"application"})};if(G instanceof Error&&G.stack!==void 0)X.errorStack=G.stack;this.#j(X)}})())}#L($,U,J,G){return this.#V($,(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??G8(X,{defaultErrorCategory:"application"})};if(X instanceof Error&&X.stack!==void 0)Q.errorStack=X.stack;this.#j(Q)}})())}#V($,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 FL{#$=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 Yn=new Set(["debug","info","warn","error"]);function _n($){if($===void 0)return!0;if(typeof $!=="object"||$===null)return!1;let U=Object.getPrototypeOf($);return U===Object.prototype||U===null}function O3($){if(typeof $!=="object"||$===null)return!1;let U=$;return Yn.has(U.level)&&typeof U.message==="string"&&typeof U.workflowId==="string"&&typeof U.workflowType==="string"&&typeof U.timestamp==="number"&&Number.isFinite(U.timestamp)&&_n(U.attributes)}function JC($){return typeof $==="object"&&$!==null&&$.type==="log"}var S4=1,QC=1000,ZC=1048576,zL=4096,YC=60000,_C=5000,jC=5,GC="__weftBinaryBytes",jn="__weftDate",Hn="__weftError",Dn="__weftMap",Ln="__weftSet";class N$ extends Error{constructor($){super($);this.name="WorkerProtocolError"}}class r0 extends N${actualBytes;maxBytes;constructor($,U){super(`Worker protocol message is ${$} bytes, exceeding limit ${U}`);this.actualBytes=$;this.maxBytes=U}}function Vn($){let U=0;return M(n0($,[],(G)=>{U+=G})).byteLength+U}function QJ($,U){let J=Vn($);if(U!==void 0&&J>U)throw new r0(J,U);return J}function HC($){let U=Fn($);zn(U),Bn(U)}function Fn($){if(typeof $!=="object"||$===null)throw new N$("Worker outbound message must be an object");return $}function zn($){if(typeof $.workflowId!=="string")throw new N$("Worker outbound message must include workflowId");XC($,"protocolVersion"),XC($,"turnId")}function XC($,U){if($[U]!==void 0&&!Number.isSafeInteger($[U]))throw new N$(`Worker outbound message ${U} must be an integer`)}function Bn($){switch($.type){case"checkpoint":Pn($);return;case"completed":return;case"failed":Kn($);return;case"log":Wn($);return;default:throw new N$("Worker outbound message has an unsupported type")}}function Pn($){if(!($.checkpoint instanceof ArrayBuffer))throw new N$("Worker checkpoint message must include checkpoint bytes");if(typeof $.operationRequest!=="object"||$.operationRequest===null)throw new N$("Worker checkpoint message must include operationRequest")}function Kn($){if(typeof $.error!=="string")throw new N$("Worker failed message must include an error string")}function Wn($){if(!O3($.record))throw new N$("Worker log message must include a valid log record")}function n0($,U,J){let G=Mn($,U,J);if(G.handled)return G.value;if(U.includes($))throw new N$("Worker protocol message cannot include cyclic values");if(!Q2($).valid)throw new N$("Worker protocol message contains non-cloneable values");return On($,U,J)}function Mn($,U,J){if(typeof $==="function"||typeof $==="symbol")throw new N$("Worker protocol message cannot include functions or symbols");let G=qn($,J);if(G.handled)return G;let X=Nn($,U,J);if(X.handled)return X;if(Array.isArray($))return{handled:!0,value:$.map((Q)=>n0(Q,U,J))};if(typeof $!=="object"||$===null)return{handled:!0,value:$};return{handled:!1}}function qn($,U){if($ instanceof ArrayBuffer)return U($.byteLength),{handled:!0,value:{[GC]:$.byteLength}};if(ArrayBuffer.isView($))return U($.byteLength),{handled:!0,value:{[GC]:$.byteLength}};return{handled:!1}}function Nn($,U,J){if($ instanceof Date)return{handled:!0,value:{[jn]:$.toISOString()}};if($ instanceof Error)return{handled:!0,value:{[Hn]:{name:$.name,message:$.message}}};if($ instanceof Map)return{handled:!0,value:{[Dn]:[...$.entries()].map(([G,X])=>[n0(G,U,J),n0(X,U,J)])}};if($ instanceof Set)return{handled:!0,value:{[Ln]:[...$.values()].map((G)=>n0(G,U,J))}};return{handled:!1}}function On($,U,J){U.push($);try{let G={};for(let X of Object.keys($).toSorted())G[X]=n0($[X],U,J);return G}finally{U.pop()}}class BL{#$;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=S4;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,[An(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 An($){if($ instanceof ArrayBuffer)return $;if($.buffer instanceof ArrayBuffer)return $.buffer;throw Error("Worker checkpoint must use an ArrayBuffer-backed view")}class PL{#$=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 DC($,U){let J={type:"run",protocolVersion:S4,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 KL($,U){let J={type:"resume",protocolVersion:S4,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 WL{#$=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 LC($,U){try{let J=$?.(U);if(J instanceof Promise)return J.then(()=>!1,()=>!0);return!1}catch{return!0}}function VC($){let U=$.operationRequest;return U.type==="wait-signal"||U.kind==="signal-wait"}function FC($,U,J){if(J!==void 0)try{QJ($,J)}catch(X){return X instanceof r0?"dropped-oversize":"dropped-invalid"}if(!O3($.record))return"dropped-invalid";let G=$.record;if(G.workflowId!==$.workflowId)return"dropped-invalid";if(U!==void 0)try{U(G)}catch{rX(G)}return"accepted-valid"}class BC{#$;#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 PC{#$;#U;#J;constructor($){this.#U=$.onLog,this.#J=$.maxProtocolMessageBytes,this.#$=new BC({floodWindowMs:$.floodWindowMs??YC,floodThreshold:$.floodThreshold??_C,strikeThreshold:$.strikeThreshold??jC,getNow:$.getNow??Date.now})}get hasSink(){return this.#U!==void 0}handle($,U,J){if(this.#$.recordArrival($)==="discard")return zC("forwarded-log flooding");if(typeof U.workflowId!=="string"||!J(U.workflowId))return null;let G=FC(U,this.#U,this.#J);if(this.#$.recordOutcome($,G)==="discard")return zC("repeated oversize/invalid forwarded logs");return null}forget($){this.#$.forget($)}}function zC($){let U=`Worker discarded for log abuse: ${$}`;return{targetCategory:"system",targetError:U,otherCategory:"system",otherError:U}}function KC($,U){return new PC({onLog:$?.onLog,maxProtocolMessageBytes:U,getNow:$?.getNow,floodWindowMs:$?.forwardedLogFloodWindowMs,floodThreshold:$?.forwardedLogFloodThreshold,strikeThreshold:$?.forwardedLogStrikeThreshold})}class ML{#$;#U;#J;constructor($,U,J){this.#$=$,this.#U=U,this.#J=J}validateHostToWorkerMessage($){try{return QJ($,this.#$),null}catch(U){return WC(U,{otherError:"Worker protocol send failed"})}}acceptWorkerMessage($,U){try{if(HC(U),QJ(U,this.#$),this.#U)this.#G($,U);return{accepted:!0,message:U}}catch(J){let G=Cn(U);return{accepted:!1,failure:WC(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!==S4)throw new N$("Worker protocol version mismatch");let J=this.#J.get($);if(!J)throw new N$("Worker message arrived outside an active turn");if((U.type==="log"?void 0:U.turnId)!==J.turnId||U.workflowId!==J.workflowId)throw new N$("Worker message did not match the active turn")}}function WC($,U){return{...U.targetWorkflowId===void 0?{}:{targetWorkflowId:U.targetWorkflowId},failureCategory:$ instanceof r0?"resource":"system",error:$ instanceof Error?$.message:String($),otherError:U.otherError}}function Cn($){if(typeof $!=="object"||$===null)return;let U=$.workflowId;return typeof U==="string"?U:void 0}class qL{#$=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 NL{#$;#U;#J;#G;#X;#Q;#Z;#Y;#_;#L;#V;#H;#j;#D;#F;#z;#P;constructor($,U){let{workflowTurnTimeoutMs:J,maxProtocolMessageBytes:G,requireProtocolVersion:X=!1,discardOnCancel:Q=!1,broadcastEvents:Z=!1}=U??{};if(this.#$=$,this.#U=new PL,this.#J=new WL,this.#Q=new FL,this.#Z=J,this.#Y=G,this.#_=X,this.#L=Q,this.#V=KC(U,G),this.#H=new qL(this.#Z,(Y)=>{this.#S(Y)}),this.#j=new ML(this.#Y,this.#_,this.#H),this.#D=new BL({pool:this.#$,ownership:this.#U,isDisposed:()=>this.#z,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.#B(Y,_)},emit:(Y)=>{this.#M(Y)}}),this.#F=null,this.#G=null,this.#X=null,this.#z=!1,this.#P=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.#F=$}startWorkflow($){this.#U.resetWorkflow($.workflowId),this.#Q.resetWorkflow($.workflowId);let U=DC($,this.#K());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=KL($,this.#K());this.#D.postResumeMessage(U,$,G);return}let J=this.#U.getParkedWorker($.workflowId);if(J){let G=KL($,this.#K());this.#D.resumeParkedWorkflow($,J,G);return}if(this.#U.consumeCancelled($.workflowId))return;if(!this.#z)this.#M({type:"failed",workflowId:$.workflowId,error:`No worker assigned for workflow: ${$.workflowId}`})}#K(){return{turnId:this.#P++,maxProtocolMessageBytes:this.#Y,hasLogSink:this.#V.hasSink}}cancelWorkflow($){let U=this.#U.getActiveWorker($);if(U){if(this.#U.markCancelled($),this.#L){this.#B(U,{targetWorkflowId:$,skipTarget:!0,otherCategory:"system",otherError:`Worker discarded during cancellation of workflow: ${$}`});return}let G={type:"cancel",workflowId:$};if(this.#_)G.protocolVersion=S4;U.postMessage(G),this.#q($);return}let J=this.#U.getParkedWorker($);if(!J)return;if(this.#U.markCancelled($),this.#U.deleteParked($),this.#L){this.#B(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.#z=!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.#F=null}async#A($,U){if(JC(U)){let Q=(Y)=>this.#U.getTargetWorker(Y)===$,Z=this.#V.handle($,U,Q);if(Z)this.#B($,Z);return}if(!this.#x($,U))return;this.#H.clear($);let J=this.#Q.beginCheckpointHandling(U),G=LC(this.#F,U),X=G instanceof Promise?await G:G;try{if(this.#C($,U))return;if(X)return;this.#R($,U,J)}finally{this.#Q.finishCheckpointHandling(U.workflowId,J,this.#U.isWorkflowClosed(U.workflowId))}}#C($,U){if(U.type!=="completed"&&U.type!=="failed")return!1;return this.#U.consumeCancelled(U.workflowId),this.#U.deleteParked(U.workflowId),this.#q(U.workflowId),this.#N($),this.#Q.forgetWorkflowIfClosed(U.workflowId,this.#U.isWorkflowClosed(U.workflowId)),!0}#R($,U,J){if(U.type!=="checkpoint"||!VC(U))return;if(this.#Q.wasResumedDuringCheckpointHandling(U.workflowId,J))return;if(this.#U.parkActive(U.workflowId,$))this.#$.release($)}#T($,U){this.#B($,{targetCategory:"system",targetError:`Worker crashed: ${U.message??"unknown error"}`,otherCategory:"system",otherError:`Worker crashed: ${U.message??"unknown error"}`})}#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.#B($,{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.#B(J,{targetWorkflowId:$,targetCategory:G.failureCategory,targetError:G.error,otherCategory:"system",otherError:`Worker discarded after protocol send failure for workflow: ${$}`}),!1;return this.#M({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.#B($,{...J.failure.targetWorkflowId===void 0?{}:{targetWorkflowId:J.failure.targetWorkflowId},targetCategory:J.failure.failureCategory,targetError:J.failure.error,otherCategory:"system",otherError:J.failure.otherError}),!1}#S($){this.#B($.worker,{targetWorkflowId:$.workflowId,targetCategory:"timeout",targetError:`Worker workflow turn timed out after ${this.#Z}ms`,otherCategory:"timeout",otherError:`Worker discarded after workflow turn timed out: ${$.workflowId}`})}#B($,U){let J=this.#U.workflowIdsForWorker($);if(J.length===0){this.#H.clear($),this.#V.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.#M({type:"failed",workflowId:G,error:X?U.targetError??U.otherError:U.otherError,failureCategory:X?U.targetCategory??U.otherCategory:U.otherCategory})}this.#H.clear($),this.#V.forget($),this.#J.detach($),this.#$.discard($)}#b($){if($.type==="signal:received"&&typeof $.workflowId==="string"){let U=this.#U.getTargetWorker($.workflowId);if(U)U.postMessage($)}}#M($){let U=this.#F?.($);if(U instanceof Promise)U.catch(()=>{})}}var MC=30000,qC=5000,NC=60000;function OC($){let U=Rn($?.ownership??"none");if(U!=="lease")return{ownershipMode:U,leaseTtlMs:MC,leaseRenewIntervalMs:qC,leaseWaitTimeoutMs:NC};let J=N6($?.leaseTtl,"options.leaseTtl")??MC,G=N6($?.leaseRenewInterval,"options.leaseRenewInterval")??qC,X=N6($?.leaseWaitTimeout,"options.leaseWaitTimeout")??NC;return Tn(J,G,X),{ownershipMode:U,leaseTtlMs:J,leaseRenewIntervalMs:G,leaseWaitTimeoutMs:X}}function Rn($){if($!=="none"&&$!=="lease")throw Error(`Unknown ownership posture "${String($)}". Expected 'none' or 'lease'.`);return $}function Tn($,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 OL($){return Object.entries($??{})}function A3($,U){return $}var AC=!1;function CC($){return En($,{bunEnv:typeof Bun<"u"?Bun.env:void 0,processEnv:typeof process<"u"?process.env:void 0})}function En($,U){if(U.bunEnv!==void 0)return U.bunEnv[$];if(U.processEnv!==void 0)return U.processEnv[$];return}function xn($){return $?.development===!0||CC("WEFT_DEV_WARNINGS")==="1"||CC("NODE_ENV")==="development"}function EC($){let J=$?.storage??void 0;if(J===void 0){if(!AC&&xn($))AC=!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 DL}if(!$?.compression)return J;return new _L(J,$.compression)}function xC($){return $?.interceptors?[...$.interceptors]:[]}function AL($,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 Sn($){return{retention:vG($?.retention,"options.retention"),retentionSweepIntervalMs:N6($?.retentionSweepInterval,"options.retentionSweepInterval")??jB,retentionSweepBatchSize:$?.retentionSweepBatchSize!==void 0?Math.max(1,Math.floor($.retentionSweepBatchSize)):HB}}function o0($,U){return $??U}function bn($){return{development:o0($?.development,!1),broadcastEvents:o0($?.broadcastEvents,!1)}}function vn($){return{checkpointHistory:o0($?.checkpointHistory,10),checkpointSizeWarningThreshold:o0($?.checkpointSizeWarningThreshold,65536),maxNestingDepth:o0($?.maxNestingDepth,10)}}function gn($){return{historyPolicy:lP($?.history,"options.history"),archiveAdapter:$?.archive??null,payloadSizePolicy:iP($?.payloadSize,"options.payloadSize")}}var RC=15000;function In($){let U=o0($?.detectSecondInstance,!1),J=U?N6($?.secondInstanceHeartbeatInterval,"options.secondInstanceHeartbeatInterval")??RC:RC;return{secondInstanceDetectionEnabled:U,secondInstanceHeartbeatIntervalMs:J}}function SC($,U,J){return{storage:$,getNow:J,resolveWorkflowServices:U?.resolveWorkflowServices??null,onLog:U?.onLog??null,...bn(U),...vn(U),...Sn(U),...gn(U),...In(U),...OC(U)}}function hn($){let U=yn($?.workflowExecutionMode),J=mn($,U);if(!J)return{mode:"inline",workerExecution:null};return kn(J)}function yn($){if($===void 0||$==="inline"||$==="worker")return $;throw Error('options.workflowExecutionMode must be "inline" or "worker" when provided')}function mn($,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 kn($){let U=TC($.workflowTurnTimeoutMs,"options.workerExecution.workflowTurnTimeoutMs",void 0)??QC,J=TC($.maxProtocolMessageBytes,"options.workerExecution.maxProtocolMessageBytes",void 0)??ZC;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 TC($,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 bC($){let{options:U,getNow:J,maxNestingDepth:G,development:X,broadcastEvents:Q,getRegistration:Z,getComposedWorkflowInterceptor:Y,resolveWorkflowType:_,registerCancelHandler:H,recordFinalizerState:D,getWorkflowServices:L,getLogSink:z}=$,B=hn(U);if(B.mode==="worker"){let S=new N3({workerUrl:B.workerExecution.workerUrl,concurrency:B.workerExecution.poolSize??4,smol:B.workerExecution.smol??!1}),I=z?.(),p={broadcastEvents:Q,requireProtocolVersion:B.requireProtocolVersion,discardOnCancel:B.discardOnCancel,workflowTurnTimeoutMs:B.workflowTurnTimeoutMs,maxProtocolMessageBytes:B.maxProtocolMessageBytes,getNow:J,...I!==void 0&&{onLog:I}};return{strategy:new NL(S,p),inlineStrategy:null}}let W=new VL({getRegistration:Z,getNow:J,maxNestingDepth:G,development:X,resolveWorkflowType:_,...UC({getComposedWorkflowInterceptor:Y,registerCancelHandler:H,recordFinalizerState:D,getWorkflowServices:L,getLogSink:z})});return{strategy:W,inlineStrategy:W}}function vC($){if(!$)return null;return new LL(new N3({workerUrl:$.workerUrl,concurrency:$.poolSize??4,smol:$.smol??!1}))}function gC($,U,J){return U?new XL($,U,J):null}var IC,fn=0,hC,un=new Set,C3=new FinalizationRegistry(($)=>{if(fn++,$.cleanupInterval!==null)clearInterval($.cleanupInterval),$.cleanupInterval=null;if($.secondInstanceDetectionInterval!==null)clearInterval($.secondInstanceDetectionInterval),$.secondInstanceDetectionInterval=null;if(!$.disposed&&wn()){if($.testToken!==void 0)un.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 wn(){if(IC!==void 0)return IC;return Bun.env.WEFT_DEV_WARNINGS==="1"||Bun.env.NODE_ENV==="development"}function yC(){let $=hC;return hC=void 0,$}function mC($){return typeof $==="function"&&typeof $.name==="string"&&"execute"in $&&typeof $.execute==="function"}function kC($){let U=T$($);return{processPendingUpdatesAfterInlineAdvance:(J)=>U.processPendingUpdatesAfterInlineAdvance(J),swallowPromiseRejection:(J)=>S6(J)}}function fC($,U){return function(){let G=$.deref();if(G===void 0){U.port1.close(),U.port2.close();return}V(G).queuedInlineWorkflowStartFlushScheduled=!1,S6(i8(V(G),kC(G)))}}async function uC($){await DN(V($),kC($))}function wC($,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);nK(X.updateCoordinator,(Q,Z)=>a(G).handleCleanupError(Q,Z))()}}function cC($){return function(){let J=$.deref();if(J===void 0)return null;let G=V(J);if(G.disposed)return null;return G.secondInstanceDetector}}function pC($){if($.cleanupInterval!==null)clearInterval($.cleanupInterval??void 0),$.cleanupInterval=null;if($.cleanupIntervalDisposalTracker!==null)$.cleanupIntervalDisposalTracker.disposed=!0,$.cleanupIntervalDisposalTracker.cleanupInterval=null,C3.unregister($.cleanupIntervalDisposalTracker),$.cleanupIntervalDisposalTracker=null}function R3($){$.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(),LN($),$.scheduler[Symbol.dispose](),$.strategy[Symbol.dispose](),$.activityWorkerDispatcher?.[Symbol.dispose](),$.activityWorkerDispatcher=null,$.inlineStrategy=null,pC($),$.retentionSweepInterval!==null)clearInterval($.retentionSweepInterval??void 0),$.retentionSweepInterval=null;$.nextRetentionSweepAt=null,cn($),pn($),$.handleCache.clear();for(let U of $.resultResolvers.values())U.reject(new p6);$.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 cn($){if($.secondInstanceDetectionInterval!==null)clearInterval($.secondInstanceDetectionInterval??void 0),$.secondInstanceDetectionInterval=null;if($.secondInstanceDetector!==null)$.secondInstanceDetector.stop(),$.secondInstanceDetector=null}function pn($){if($.leaseManager!==null)$.leaseManager.stop(),$.leaseManager=null}function dC($,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}E6(J,$.options.payloadSizePolicy.maxBytes,"finalizer state"),e4($,U,{conditions:[],operations:[{type:"put",key:F.finalizerState(U),value:M(J)}]})}var dn=1000;function lC($){let{storage:U,holderId:J,getNow:G,ttlMs:X,renewIntervalMs:Q,waitTimeoutMs:Z}=$,Y=$.acquirePollIntervalMs??dn,_=Q,H=!1,D=null,L=null,z=null,B=null,W=!1,S=null,I=$.delay??((Y$)=>new Promise((k$)=>setTimeout(k$,Y$)));function p(Y$){if(W)return;W=!0,$.onLeaseLost?.(Y$)}async function c(){let Y$=await U.get(F.leaseHolder()),k$=await U.get(F.leaseEpoch());return{epochRaw:k$,holderRaw:Y$,epoch:k$===null?null:qX(k$),holder:Y$===null?null:NX(Y$)}}async function h(Y$,k$,f$){let g6=G()+X,e1=AH({holderId:J,expiresAt:g6,epoch:f$}),LV=await $$(U,[{key:F.leaseEpoch(),expectedValue:Y$},{key:F.leaseHolder(),expectedValue:k$}],[{type:"put",key:F.leaseEpoch(),value:OH(f$)},{type:"put",key:F.leaseHolder(),value:e1}]);if(LV)D=f$,L=OH(f$),z=e1;return LV}async function m(){let{epochRaw:Y$,holderRaw:k$,epoch:f$,holder:g6}=await c();if(Y$!==null&&f$===null)throw new R8('the "lease:epoch" high-water mark is present but does not decode to a valid epoch');if(Y$===null&&k$!==null)throw new R8('a "lease:holder" record exists with no "lease:epoch" key (the lease protocol never deletes the epoch)');if(g6!==null&&G()<g6.expiresAt)return!1;let e1=(f$??0)+1;if(e1>=Number.MAX_SAFE_INTEGER)throw new R8(`the next ownership epoch (${e1}) is at or above the safe-integer ceiling and cannot be minted without bricking future boots`);return h(Y$,k$,e1)}async function u(){let Y$=G(),k$=Y$+Z,f$=null,g6=!0;for(;;){if(H)return;if(!g6&&G()>=k$)throw new OX(G()-Y$,f$);if(g6=!1,await m())return;let t1=await U.get(F.leaseHolder());if(f$=t1===null?null:NX(t1)?.holderId??null,G()>=k$)throw new OX(G()-Y$,f$);await I(Y)}}async function E$(){if(H||W||D===null||z===null)return;let Y$=G()+X,f$=AH({holderId:J,expiresAt:Y$,epoch:D}),g6;try{g6=await $$(U,[{key:F.leaseHolder(),expectedValue:z}],[{type:"put",key:F.leaseHolder(),value:f$}])}catch{let t1=NX(z)?.expiresAt??0;if(G()>=t1-_)p("renewal-unconfirmable");return}if(g6){z=f$;return}p("deposed")}function v6(){if(S!==null)return;S=E$().catch(()=>{}).finally(()=>{S=null})}function a1(){if(H||B!==null)return;B=setInterval(()=>{v6()},Q),B.unref?.()}function qx(){return L===null?null:L.slice()}function DV(){if(B!==null)clearInterval(B),B=null}async function Nx(){if(H=!0,DV(),S!==null)await S;if(z===null)return;try{if(await $$(U,[{key:F.leaseHolder(),expectedValue:z}],[{type:"delete",key:F.leaseHolder()}]))z=null}catch{}}function Ox(){H=!0,DV()}return{acquire:u,startRenewal:a1,renewOnce:E$,currentEpochBytes:qx,release:Nx,stop:Ox}}var ln=/^(?:0|[1-9]\d*)$/,nn=["wf:","op:","schedule:","ev:","sig:","upd:","idx:"];async function iC($){let U=await $.get(jj);if(U!==null){let J=new TextDecoder().decode(U);if(!ln.test(J))throw new A1(null,C1);let G=Number(J);if(!Number.isSafeInteger(G))throw new A1(null,C1);if(G!==C1)throw new A1(G,C1);return}for(let J of nn)for await(let G of $.scan(J,{limit:1}))throw new A1(null,C1);await $.put(jj,new TextEncoder().encode(String(C1)))}async function nC($,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 rn=new TextEncoder,on=new TextDecoder;function sn($){return rn.encode(JSON.stringify($))}async function T3($){try{await $()}catch{}}function an($){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 tn($){let U;try{U=JSON.parse(on.decode($))}catch{return null}if(typeof U!=="object"||U===null)return null;let J=U;return an(J)?J:null}var en="WeftSecondInstanceWarning",$r=10,rC=2;function oC($){let{storage:U,instanceId:J,getNow:G,intervalMs:X}=$,Q=$.warn??((c)=>process.emitWarning(c,en)),Z=X*(rC+1),Y=0,_=!1,H=!1,D=new Map,L=new Set;async function z(){let c=[];for await(let[h,m]of U.scan(F.livenessPrefix())){let u=tn(m);if(u!==null&&u.instanceId!==J)c.push({key:h,heartbeat:u})}return c}async function B(c,h){let m=h-Z*$r;for(let u of c)if(u.heartbeat.heartbeatAt<m)await T3(()=>U.delete(u.key))}function W(c){let h=new Set;for(let{key:m,heartbeat:u}of c){if(F.liveness(u.instanceId)!==m)continue;h.add(u.instanceId);let E$=D.get(u.instanceId),a1=E$!==void 0&&u.sequence>E$.sequence?E$.advances+1:0;if(D.set(u.instanceId,{sequence:u.sequence,advances:a1}),a1>=rC&&!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(!h.has(m))D.delete(m)}let S=!1;async function I(){if(H||S)return;S=!0;let c=!1;try{let h=G(),m=await z();if(!_)_=!0,await B(m,h);if(W(m),H)return;Y+=1;let u={instanceId:J,heartbeatAt:h,sequence:Y};c=!0,await T3(()=>U.put(F.liveness(J),sn(u)))}finally{if(S=!1,c&&H)await T3(()=>U.delete(F.liveness(J)))}}async function p(){H=!0,await T3(()=>U.delete(F.liveness(J)))}return{tick:I,stop:p}}function sC($,U){return function(){let G=$();if(G===null){if(U.secondInstanceDetectionInterval!==null)clearInterval(U.secondInstanceDetectionInterval),U.secondInstanceDetectionInterval=null;return}G.tick().catch(()=>{})}}var Ur=Symbol("engineParkedWorkflowCountForTesting"),Jr=Symbol("engineSignalWaiterCountForTesting"),Gr=Symbol("engineSleepResolverCountForTesting");class E3 extends EventTarget{static async create($){let U=new E3($);try{await iC(V(U).storage);for(let[J,G]of OL($.activities)){if(J!==G.name)throw new cU("activity",J,G.name);U.#K(G)}for(let[J,G]of OL($.workflows)){if(J!==G.name)throw new cU("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();KN(this),V(this).registrations=new Map,V(this).workflowTypesByHandler=new WeakMap;let U=EC($),J=$?.getNow??Date.now,G=SC(U,$,J),X=bC({options:$,getNow:J,maxNestingDepth:G.maxNestingDepth,development:G.development,broadcastEvents:G.broadcastEvents,getRegistration:V(this).registrations.get.bind(V(this).registrations),getComposedWorkflowInterceptor:()=>H6(V(this)),resolveWorkflowType:this.#F.bind(this),registerCancelHandler:(H,D)=>p8(V(this),H,D),recordFinalizerState:(H,D)=>dC(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=xC($),V(this).composedWorkflowInterceptor=void 0,V(this).composedActivityInterceptor=void 0,V(this).updateCoordinator=new VH(U),V(this).activityRegistry=new s2,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(iK(V(this).handleCache)),V(this).options=G,V(this).scheduler=new VG({storage:U,onTimerFired:(H)=>$D(V(this),H,this.#D()),getNow:J,commitTimerCleanup:(H)=>Z$(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=fC(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 LH(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:yC()},_=setInterval(wC(Q,Y),60000);Y.cleanupInterval=_,V(this).cleanupInterval=_,V(this).cleanupIntervalDisposalTracker=Y,C3.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=vC($?.activityExecution),V(this).strategy.onMessage(this.#z.bind(this)),V(this).alertManager=gC(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 p6;if($.inFlightLeaseAcquire!==null){await $.inFlightLeaseAcquire;return}if($.leaseManager!==null)return;X$($.storage,"conditionalBatch","ownership: 'lease'");let U=lC({storage:$.storage,holderId:crypto.randomUUID(),getNow:$.options.getNow,ttlMs:$.options.leaseTtlMs,renewIntervalMs:$.options.leaseRenewIntervalMs,waitTimeoutMs:$.options.leaseWaitTimeoutMs,onLeaseLost:(G)=>{if(G==="deposed"){C8($);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.",$M)}});$.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 p6}U.startRenewal()})();$.inFlightLeaseAcquire=J;try{await J}finally{if($.inFlightLeaseAcquire===J)$.inFlightLeaseAcquire=null}}#U(){let $=V(this);if($.disposed)return;let U=$.leaseManager;R3($),U?.release().catch(()=>{})}#J(){let $=V(this);if(!$.options.secondInstanceDetectionEnabled)return;let U=oC({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(sC(cC(G),J),$.options.secondInstanceHeartbeatIntervalMs);$.secondInstanceDetectionInterval=X,J.secondInstanceDetectionInterval=X}#G(){return B3(V(this))}#X(){P3(V(this))}#Q(){K3(V(this),{hasConfiguredRetention:()=>this.#G(),runRetentionSweep:()=>this.#Z(),setNextRetentionSweepAt:()=>this.#X()})}async#Z(){return W3(V(this),($,U)=>this.#_().handleCleanupError($,U),($)=>a6(V(this),$,this.#_()))}#Y(){return T$(this)}#_(){return a(this)}#L(){return Q3(this)}#V(){return e6(this)}#H(){return XJ(this)}#j(){return l0(this)}#D(){return L3(this)}#F($){return tX(V(this),$,this.#L())}get state(){let $=V(this).storage;return{execution:(U,J,G)=>new Q0($,F.stateExecution(U,J),G),workflow:(U,J,G)=>new Q0($,F.stateWorkflow(U,J),G)}}async#z($){return fA(V(this),$,this.#H())}#P($){return U1(V(this),$,this.#V())}register($){if(mC($))return this.#K($),A3(this);return ON(V(this),$,this.#L()),A3(this)}registerWorkflows($){for(let[U,J]of Object.entries($)){if(U!==J.name)throw new cU("workflow",U,J.name);this.register(J)}return A3(this)}addInterceptor($){V(this).interceptors.push($),V(this).composedWorkflowInterceptor=void 0,V(this).composedActivityInterceptor=void 0}#K($){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:AL($,U)}listWorkflowDefinitions(){return[...V(this).registrations.entries()].map(([$,U])=>AL($,U))}getActivityDefinition($){return V(this).activityRegistry.getDefinition($)}listActivityDefinitions(){return V(this).activityRegistry.listDefinitions()}async start($,U,J){if(E8(V(this)),J?.idempotencyKey!==void 0)return LD(V(this),$,U,J,this.#Y());return Y6(V(this),$,U,J,void 0,this.#Y())}async startOrSignal($,U,J,G){return E8(V(this)),VD(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 fX(V(this),$)}async list($,U){return OM(V(this),$,U)}async aggregate($,U){return PK(V(this),$,U)}getRetentionOverview(){return uA(V(this),($)=>UL(V(this),$))}async purge($){return uM(V(this),$,(U)=>a6(V(this),U,this.#_()))}async cancelAll($,U){return wM(V(this),$,U)}async retryFailedAll($,U){return cM(V(this),$,U)}async signalAll($,U,J,G){if(G===void 0)return nH(V(this),$,U,J);return nH(V(this),$,U,J,G)}async deleteAll($,U){return pM(V(this),$,(J)=>a6(V(this),J,this.#_()),U)}async tagAll($,U,J){return dM(V(this),$,U,J)}async untagAll($,U,J){return lM(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 wD(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 wD(V(this),$,U,J,G)}async getSchedule($){let U=G1($,"scheduleId"),J=await l1(V(this),U);return J?XO(J):null}async listSchedules($){return JO(V(this),$)}async pauseSchedule($){return QO(V(this),$)}async resumeSchedule($){return ZO(V(this),$)}async cancelSchedule($){return YO(V(this),$)}async updateSchedule($,U){return _O(V(this),$,U)}[RH]($){return nM(V(this),$)}[Ur](){return V(this).parkedInlineWorkflows.size}[Jr](){return V(this).signalWaiters.size}[Gr](){return V(this).sleepResolvers.size}async signal($,U,J,G){return fW(V(this),$,r$(U),J,{loadWorkflowState:(X)=>l(V(this),X),dispatchEvent:(X)=>this.dispatchEvent(X),broadcast:(X)=>this.#P(X),getComposedInterceptor:()=>H6(V(this)),resumeParkedInlineWorkflow:(X)=>S6(z3(V(this),X,this.#H()))},G)}async update($,U,J,G){return pW(V(this),$,r$(U),J,G,this.#j())}async query($,U,J){return nC(V(this),$,r$(U),J)}async getStreamChunks($,U,J){return MA(V(this),$,U,J)}async getOffload($,U){return HA(V(this),$,U)}async fork($,U){return E8(V(this)),WD(V(this),$,U,this.#Y())}async resume($){return E8(V(this)),sX(V(this),$,this.#Y())}async recoverAll($){if(await this.#$(),V(this).disposed)throw new p6;return await UW(V(this)),await GO(V(this)),KD(V(this),this.#Y(),$)}async completeAsyncActivity($,U){await XW(V(this),$,U,{feedOperationResult:(J,G)=>j6(V(this),J,G),finalizeTimeline:(J,G,X)=>b6(V(this),J,G,X)})}async failAsyncActivity($,U){await ZW(V(this),$,U,{feedOperationResult:(J,G,X)=>j6(V(this),J,G,X),finalizeTimeline:(J,G,X)=>b6(V(this),J,G,X)})}async cancel($){await AD(V(this),$,this.#_())}async suspend($){await vD(V(this),$,this.#_())}async timeout($){await CD(V(this),$,this.#_())}async get($){let U=await l(V(this),$);if(U?.status==="running"&&VN(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(F.checkpoint($));if(J===null)return null;return V$(J).step}async getAttributes($){return EM(V(this),$)}async setAttributes($,U){return xM(V(this),$,U)}async addTags($,...U){return SM(V(this),$,...U)}async removeTags($,...U){return bM(V(this),$,...U)}async getEvents($){return wA(V(this),$)}async*replayWorkflowFeed($,U,J){yield*PA(V(this),$,U,J)}async snapshotWorkflowFeedTail($,U){return KA(V(this),$,U)}subscribeWorkflowFeedCommits($,U,J){return WA(V(this),$,U,J)}async listCheckpoints($){return cA(V(this),$)}async getCheckpointAt($,U){return pA(V(this),$,U)}async getTimeline($){return dA(V(this),$)}async replayTo($,U){return lA(V(this),$,U)}async listReviews($){return bN(V(this),$)}async getReview($,U){return vN(V(this),$,U)}async submitReview($,U){return gN(V(this),$,U,{dispatchEvent:this.dispatchEvent.bind(this)})}async getUpdateResult($){return dW(V(this),$)}async submitCoordinatedUpdate($,U,J,G){return lW(V(this),$,U,J,G,this.#j())}[Symbol.dispose](){let $=V(this).leaseManager;R3(V(this)),$?.release()}async[Symbol.asyncDispose](){if(!V(this).disposed){let $=V(this).leaseManager;try{await uC(this)}finally{R3(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 $D(V(this),$,this.#D())}}var aC={kind:"public"},tC={http:!0,jsonRpcHttp:!0,jsonRpcStdio:!0,jsonRpcWebSocket:!0},Xr=j.object({token:j.string().min(1),result:j.unknown().optional()}),Qr=j.object({token:j.string().min(1),error:j.object({message:j.string(),name:j.string().optional()})}),eC=j.object({ok:j.literal(!0)});function Zr($){let U=Error($.error.message);if($.error.name!==void 0)U.name=$.error.name;return U}function $R($,U,J){if(J instanceof W8)W6($,{code:"NotFound",message:J.message,data:{resource:"async-activity",identifier:U}});if(J instanceof P8)W6($,C(J.message));throw J}var CL=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:Xr,outputSchema:eC,access:aC,producibleFaults:["NotFound","InvalidParams"],transports:tC,unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let J=U;try{await J.completeAsyncActivity($.token,$.result)}catch(G){$R(CL,$.token,G)}return{ok:!0}}}),RL=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:Qr,outputSchema:eC,access:aC,producibleFaults:["NotFound","InvalidParams"],transports:tC,unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let J=U;try{await J.failAsyncActivity($.token,Zr($))}catch(G){$R(RL,$.token,G)}return{ok:!0}}});function UR($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}async function JR($,U){let J=await H$($,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 GR={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 JR($,J);return{token:G.token,..."result"in G?{result:G.result}:{}}},success:{kind:"json",status:200},shapeSuccess:($)=>UR($),shapeFault:R},XR={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 JR($,J);return{token:G.token,error:G.error}},success:{kind:"json",status:200},shapeSuccess:($)=>UR($),shapeFault:R};var Yr=`Field "filter.failureCategory" must be one of ${J8.join(", ")}`,QR='Field "filter.failureCategory" must be a string or an array of strings';function YR($){if($===void 0)return;if(typeof $==="string")return ZR($);if(Array.isArray($)){if(!$.every((U)=>typeof U==="string"))throw Error(QR);return $.map(ZR)}throw Error(QR)}function ZR($){if(l6($))return $;throw Error(Yr)}var _R=j.custom(($)=>typeof $==="string"),_r=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")}),x3=j.custom(($)=>typeof $==="string"||typeof $==="number"||typeof $==="boolean"),jr=j.object({key:j.string().min(1),value:_r.optional(),gt:x3.optional(),lt:x3.optional(),gte:x3.optional(),lte:x3.optional()}),jR=j.custom(l6),TL=j.object({gte:j.number().optional(),gt:j.number().optional(),lte:j.number().optional(),lt:j.number().optional()}),D6=j.object({status:j.union([_R,j.array(_R)]).optional(),type:j.string().optional(),tags:j.array(j.string()).optional(),attributes:j.array(jr).optional(),limit:j.number().int().min(0).optional(),offset:j.number().int().min(0).optional(),idPrefix:j.string().optional(),failureCategory:j.union([jR,j.array(jR)]).optional(),createdAt:TL.optional(),updatedAt:TL.optional(),executionDeadline:TL.optional()}),G4=j.object({dryRun:j.boolean().optional(),confirmationToken:j.string().min(1).max(r2).optional(),requestId:j.string().min(1).max(O1).optional(),bulkConcurrency:j.number().int().min(1).optional()}),X4={kind:"scoped",scopes:{kind:"anyOf",scopes:["workflows:admin"]}};function U$($){return $ instanceof Error?$.message:String($)}function DR($){return{code:"Unprocessable",message:$,data:{reason:$}}}function Q4($){return{code:"EngineFailure",message:$,data:{}}}async function L6($,U){try{let J=await q4($,U);return J.trim()===""?void 0:JSON.parse(J)}catch(J){if(t(J))throw J;throw C("Invalid JSON body")}}function Hr($){if(typeof $==="string"||typeof $==="boolean")return!0;if(typeof $==="number")return Number.isFinite($);return Array.isArray($)&&$.every((U)=>typeof U==="string")}function Dr($){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(!Hr(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 Lr($){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 Vr($){if($===void 0)return;if(typeof $==="string")return $;throw Error('Field "filter.type" must be a string')}function Fr($){if($===void 0)return;return D$($,'Field "filter.tags"')}function HR($,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 zr=[($,U)=>{let J=Lr(U.status);if(J!==void 0)$.status=J},($,U)=>{let J=Vr(U.type);if(J!==void 0)$.type=J},($,U)=>{let J=Fr(U.tags);if(J!==void 0)$.tags=J},($,U)=>{if(U.attributes!==void 0)$.attributes=Dr(U.attributes)},($,U)=>{let J=HR(U.limit,"limit");if(J!==void 0)$.limit=J},($,U)=>{let J=HR(U.offset,"offset");if(J!==void 0)$.offset=J},($,U)=>{let J=U.idPrefix;if(typeof J==="string")$.idPrefix=J},($,U)=>{let J=YR(U.failureCategory);if(J!==void 0)$.failureCategory=J},($,U)=>{let J=s0(U.createdAt);if(J!==void 0)$.createdAt=J},($,U)=>{let J=s0(U.updatedAt);if(J!==void 0)$.updatedAt=J},($,U)=>{let J=s0(U.executionDeadline);if(J!==void 0)$.executionDeadline=J}];function V6($){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 zr)Q(X,G);return X}var Br=["gte","gt","lte","lt"];function s0($){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 Br){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 b3($){let U={};return Pr(U,$),Wr(U,$),Mr(U,$),U}function Pr($,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(Kr);if(U.limit!==void 0)$.limit=U.limit;if(U.offset!==void 0)$.offset=U.offset}function Kr($){let U={key:$.key};if($.value!==void 0)U.value=$.value;if($.gt!==void 0)U.gt=S3($.gt,"gt");if($.lt!==void 0)U.lt=S3($.lt,"lt");if($.gte!==void 0)U.gte=S3($.gte,"gte");if($.lte!==void 0)U.lte=S3($.lte,"lte");return U}function S3($,U){if(Array.isArray($))throw Error(`Field "filter.attributes[].${U}" must be a string, number, or boolean`);return $}function Wr($,U){if(U.idPrefix!==void 0)$.idPrefix=U.idPrefix;if(U.failureCategory!==void 0)$.failureCategory=U.failureCategory}function Mr($,U){let J=s0(U.createdAt);if(J!==void 0)$.createdAt=J;let G=s0(U.updatedAt);if(G!==void 0)$.updatedAt=G;let X=s0(U.executionDeadline);if(X!==void 0)$.executionDeadline=X}function Z4($){if($===void 0)return{};let U=Nr($),J=Or(U,"dryRun"),G=LR(U,"confirmationToken"),X=Cr(U),Q=Ar(U,"bulkConcurrency");return{...J===void 0?{}:{dryRun:J},...G===void 0?{}:{confirmationToken:G},...X===void 0?{}:{requestId:X},...Q===void 0?{}:{bulkConcurrency:Q}}}function Y4($,U){let J=qr(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 qr($){if($.method==="unauthenticated")return{method:"unauthenticated"};return{method:$.method,...$.subject===void 0?{}:{subject:$.subject}}}function Nr($){if(typeof $!=="object"||$===null||Array.isArray($))throw Error("Request body must be a JSON object");return $}function Or($,U){let J=$[U];if(J===void 0)return;if(typeof J==="boolean")return J;throw Error(`Field "${U}" must be a boolean`)}function Ar($,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 LR($,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 Cr($){let U=LR($,"requestId");if(U===void 0)return;if(U.length<=O1)return U;throw Error(`Field "requestId" must be at most ${O1} characters`)}function _4($){let U;if($.tags!==void 0)try{U=D$($.tags,'Field "filter.tags"')}catch(G){throw C(U$(G))}let J=b3(U===void 0?$:{...$,tags:U});try{s6(J)}catch(G){throw C(U$(G))}return J}function F6($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}var Rr=D6.merge(G4),Tr=j.unknown(),VR=q({name:"weft.workflows.bulk.cancel",mcpExposable:!1,summary:"Cancel workflows in bulk",destructive:!0,tags:["Workflows"],inputSchema:Rr,outputSchema:Tr,access:X4,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=_4($),Q=Y4($,J);try{if(Q.dryRun===!0)return await G.cancelAll(X,Q);return await G.cancelAll(X,Q)}catch(Z){if(Z instanceof d$)throw C(Z.message);throw Q4(U$(Z))}}}),FR={method:"POST",path:"/v1/workflows/bulk/cancel",pathParamNames:[],operationName:"weft.workflows.bulk.cancel",inputSources:{},extractInput:async($,U,J)=>{let G=await L6($,J);try{return{...V6(G),...Z4(G)}}catch(X){throw C(U$(X))}},success:{kind:"json",status:200},shapeSuccess:($)=>F6($),shapeFault:R};var Er=D6.merge(G4),xr=j.unknown(),zR=q({name:"weft.workflows.bulk.delete",mcpExposable:!1,summary:"Delete terminal workflows in bulk",destructive:!0,tags:["Workflows"],inputSchema:Er,outputSchema:xr,access:X4,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=_4($),Q=Y4($,J);try{if(Q.dryRun===!0)return await G.deleteAll(X,Q);return await G.deleteAll(X,Q)}catch(Z){if(Z instanceof d$)throw C(Z.message);if(Z instanceof d4)throw DR(Z.message);throw Q4(U$(Z))}}}),BR={method:"DELETE",path:"/v1/workflows/bulk",pathParamNames:[],operationName:"weft.workflows.bulk.delete",inputSources:{},extractInput:async($,U,J)=>{let G=await L6($,J);try{return{...V6(G),...Z4(G)}}catch(X){throw C(U$(X))}},success:{kind:"json",status:200},shapeSuccess:($)=>F6($),shapeFault:R};var Sr=j.object({filter:D6.optional(),tags:j.array(j.string()),operation:j.enum(["add","remove"])}).merge(G4),br=j.unknown(),PR=q({name:"weft.workflows.bulk.tags",mcpExposable:!1,summary:"Add or remove workflow tags in bulk",destructive:!0,tags:["Workflows"],inputSchema:Sr,outputSchema:br,access:X4,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=_4($.filter??{}),Q;try{Q=D$($.tags,'Field "tags"')}catch(Y){throw C(U$(Y))}let Z=Y4($,J);try{return await vr(G,X,Q,$.operation,Z)}catch(Y){if(Y instanceof d$)throw C(Y.message);throw Q4(U$(Y))}}});async function vr($,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 KR={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 L6($,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={...V6(X)}}catch(_){throw C(U$(_))}let Z;try{Z=D$(X.tags,'Field "tags"')}catch(_){throw C(U$(_))}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,...Z4(X)}},success:{kind:"json",status:200},shapeSuccess:($)=>F6($),shapeFault:R};var gr=D6.merge(G4),Ir=j.unknown(),WR=q({name:"weft.workflows.bulk.retryfailed",mcpExposable:!1,summary:"Retry failed workflows in bulk",destructive:!0,tags:["Workflows"],inputSchema:gr,outputSchema:Ir,access:X4,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=_4($),Q=Y4($,J);try{if(Q.dryRun===!0)return await G.retryFailedAll(X,Q);return await G.retryFailedAll(X,Q)}catch(Z){if(Z instanceof d$)throw C(Z.message);throw Q4(U$(Z))}}}),MR={method:"POST",path:"/v1/workflows/bulk/retry-failed",pathParamNames:[],operationName:"weft.workflows.bulk.retryfailed",inputSources:{},extractInput:async($,U,J)=>{let G=await L6($,J);try{return{...V6(G),...Z4(G)}}catch(X){throw C(U$(X))}},success:{kind:"json",status:200},shapeSuccess:($)=>F6($),shapeFault:R};var hr=D6.extend({name:j.string().min(1),payload:j.unknown().optional()}).merge(G4),yr=j.unknown(),qR=q({name:"weft.workflows.bulk.signal",mcpExposable:!1,summary:"Signal workflows in bulk",destructive:!0,tags:["Workflows"],inputSchema:hr,outputSchema:yr,access:X4,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=_4($),Q=Y4($,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 d$)throw C(Z.message);throw Q4(U$(Z))}}}),NR={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 L6($,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={...V6(X)}}catch(Y){throw C(U$(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},...Z4(X)}},success:{kind:"json",status:200},shapeSuccess:($)=>F6($),shapeFault:R};function j4($,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 v3($){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 mr=j.object({scheduleId:j.string().min(1)}),kr=j.undefined(),OR=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:mr,outputSchema:kr,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 j4($.scheduleId,G)}}}),AR={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 H4($){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 fr(G,U.workflowId,$.mapErrorToFault)}}})}function D4($){return{workflowId:$.id??""}}function fr($,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 ur=j.object({workflowId:j.string().min(1)}),wr=j.undefined(),CR=H4({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:ur,outputSchema:wr,producibleFaults:["NotFound"],invoke:async({input:$,engine:U})=>{await U.cancel($.workflowId);return}}),RR={method:"DELETE",path:"/v1/workflows/:id",pathParamNames:["id"],operationName:"weft.workflows.cancel",inputSources:{workflowId:{kind:"path",pathParam:"id"}},extractInput:async($,U)=>D4(U),success:{kind:"empty",status:204},shapeFault:R};var cr=new Set(["skip","queue","cancel-running","allow"]),pr=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()}),dr=j.object({id:j.string()});function lr($){if(typeof $.type!=="string"||$.type.length===0)throw C("Missing required field: type");return{type:$.type,spec:v3($)}}function ir($){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"||!rr($.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 nr($){let{type:U,spec:J}=lr($),{id:G,overlap:X,backfill:Q,jitter:Z}=ir($);return{type:U,spec:J,id:G,overlap:X,backfill:Q,jitter:Z}}var TR=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:pr,outputSchema:dr,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=nr($),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 j4(G.id??"",Q)}}});function rr($){return cr.has($)}var ER={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 H$($,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 or="stream:token",EL=[o6.type,R4.type,R6.type,T4.type,T6.type,O0.type,A0.type,E4.type,GX.type,D0.type,XX.type,L0.type,QX.type,B0.type,ZX.type,V0.type,C6.type,G6.type,F0.type,z0.type,P0.type,r6.type,K0.type,W0.type,t4.type,_0.type,M0.type,q0.type,N0.type,YX.type,_X.type],gP$=[...EL,or];var sr=/^(?:-1|\d+)$/;function ZJ($){if(!sr.test($))return null;let U=Number($);if(!Number.isSafeInteger(U)||U<-1)return null;return U}var ar="-1",tr=1000,er=j.enum(EL),$o=j.string().regex(/^(?:-1|\d+)$/,"Invalid cursor").refine(($)=>ZJ($)!==null,{message:"Invalid cursor"}),Uo=j.object({workflowId:j.string().min(1).optional(),kind:er.optional(),fromCursor:$o.optional()}),Jo=j.object({subscriptionId:j.string(),cursor:j.string()}),Go=j.object({kind:j.string(),workflowId:j.string().optional(),sequence:j.number(),cursor:j.string(),emittedAtMs:j.number(),payload:j.unknown()}),g3=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:Uo,outputSchema:Jo,producibleFaults:["UnsupportedTransport","InvalidParams"],eventSchema:Go,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??ar;if(ZJ(G)===null)W6(g3,C("Invalid cursor"));let X=_o(U,J),Q=new AbortController,Z=X.subscribe({...$.fromCursor===void 0?{}:{fromCursor:$.fromCursor},signal:Q.signal,replayLimit:tr,filterEnvelope:(Y)=>Qo(Y,$),createReplayLimitError:(Y,_)=>Xo(Y,_)});return{envelope:{subscriptionId:`sub_${crypto.randomUUID()}`,cursor:G},iterable:Z,close:async()=>{Q.abort()}}}});function Xo($,U){return C(`Fleet event replay window is ${$} matching events; maximum is ${U}. Supply a more recent fromCursor.`)}function Qo($,U){if(!Zo($,U.workflowId))return!1;if(!Yo($,U.kind))return!1;return!0}function Zo($,U){if(U===void 0)return!0;return $.workflowId===U}function Yo($,U){if(U===void 0)return!0;return $.kind===U}function _o($,U){if(typeof $==="object"&&$!==null&&"fleetFeed"in $){let J=$.fleetFeed;if(jo(J))return J}W6(g3,{code:"UnsupportedTransport",message:"Fleet event subscription requires a WebSocket fleet event feed",data:{transport:U,supported:["jsonRpcWebSocket"]}})}function jo($){if(typeof $!=="object"||$===null)return!1;return typeof $.subscribe==="function"}var Ho=j.object({workflowId:j.string().min(1),fromStep:j.unknown().optional()}),Do=j.object({id:j.string()});function Lo($){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 Vo($){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 xR=q({name:"weft.workflows.fork",mcpExposable:!1,summary:"Fork a workflow from a checkpoint",destructive:!1,tags:["Workflows"],inputSchema:Ho,outputSchema:Do,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=Lo($);try{return{id:(await J.fork($.workflowId,G)).id}}catch(X){Vo(X)}}}),SR={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 q4($,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 Fo=j.object({workflowId:j.string().min(1),step:j.number().int().nonnegative()}),zo=j.unknown(),bR=q({name:"weft.workflows.checkpoints.get",mcpExposable:!1,summary:"Get a specific checkpoint by step number",destructive:!1,tags:["Checkpoints"],inputSchema:Fo,outputSchema:zo,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 Bo($,U){return y6(U,$,200)}function Po($){return R($)}var vR={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)=>Bo($,U),shapeFault:Po};var Ko=j.object({}),gR=j.unknown().refine(($)=>typeof $==="object"&&$!==null&&!Array.isArray($),{message:"expected an object"}),Wo=j.object({registryVersion:j.literal(1),workflows:gR,activities:gR}).strict(),IR=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:Ko,outputSchema:Wo,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 vz($)}catch(U){if(U instanceof hU)console.error(`[weft.system.registry] ${U.message}`,{entityKind:U.entityKind,entityName:U.entityName,direction:U.direction});throw U}}}),hR={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 Mo=j.object({}),qo=j.unknown(),yR=q({name:"weft.retention.get",mcpExposable:!1,summary:"Get retention policy overview",destructive:!1,tags:["System"],inputSchema:Mo,outputSchema:qo,access:{kind:"public"},transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({engine:$})=>{return $.getRetentionOverview()}});function No($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}function Oo($){return R($)}var mR={method:"GET",path:"/v1/retention",pathParamNames:[],operationName:"weft.retention.get",inputSources:{},extractInput:async()=>({}),success:{kind:"json",status:200},shapeSuccess:($)=>No($),shapeFault:Oo};var Ao=j.object({workflowId:j.string().min(1),reviewId:j.string().min(1)}),Co=j.unknown(),kR=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:Ao,outputSchema:Co,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 Ro($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}function To($){return R($)}var fR={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:($)=>Ro($),shapeFault:To};var Eo=j.object({scheduleId:j.string().min(1)}),xo=j.unknown(),uR=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:Eo,outputSchema:xo,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 So($){return R($)}var wR={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:So};var bo=/^-?\d+$/;function I3($,U){if($===null||$===void 0)return{};if($.trim().length===0)return{error:`Invalid ${U}: ${$}`};if(!bo.test($))return{error:`Invalid ${U}: ${$}`};let J=Number($);if(!Number.isSafeInteger(J)||J<-1)return{error:`Invalid ${U}: ${$}`};return{value:J}}var cR=new TextEncoder;function pR($){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:G8(G,{defaultErrorCategory:"application"})},{value:G})}async function MO($,U,J,G,X){try{let Q=await G();$J($,U,Q,X)}catch(Q){UJ($,U,J,Q,X)}}async function qO($,U,J,G,X){try{await G()}catch(Q){UJ($,U,J,Q,X)}}async function OO($,U,J,G){return G.runOperationWithResult(U,J,()=>dD($,U,J,pD($,U),G))}function pD($,U){let J=kl($,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 kl($,U){return $.inlineStrategy?.getContext(U)?.nestingDepth??$.workflowNestingDepths.get(U)??0}function fl($,U){$.pendingNestingDepth=U.pendingNestingDepth,$.pendingParentHeaders=U.pendingParentHeaders,$.pendingExecutionStateOwnerId=U.pendingExecutionStateOwnerId}function ul($,U){if($.pendingNestingDepth===U.pendingNestingDepth)$.pendingNestingDepth=void 0;if($.pendingParentHeaders===U.pendingParentHeaders)$.pendingParentHeaders=void 0;if($.pendingExecutionStateOwnerId===U.pendingExecutionStateOwnerId)$.pendingExecutionStateOwnerId=void 0}function wl($,U,J){return $.type===U.workflowType&&GK($.input,U.input)&&$.executionStateOwnerId===J}async function cl($,U,J,G,X){let Q=await X.loadWorkflowState($);if(!Q)throw G;if(!wl(Q,U,J))throw Error(`Child workflow id collision for "${$}" does not match the requested child workflow`,{cause:G});return X.getHandle($)}async function pl($,U,J,G,X){PG(J.options,"ctx.startChild"),fl($,G);try{return await X.start(J.workflowType,J.input,{id:U})}catch(Q){if(!(Q instanceof C$))throw Q;return cl(U,J,G.pendingExecutionStateOwnerId??void 0,Q,X)}finally{ul($,G)}}async function dD($,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=dl(J),D=H==="abandon"?null:_?.executionStateOwnerId??U,L=async()=>{let B={pendingNestingDepth:G+1,pendingParentHeaders:$.workflowHeaders.get(U),pendingExecutionStateOwnerId:D},W=await pl($,Z,J,B,X);if(H==="abandon")return NO(W.id);if(H==="request-cancel")return e4($,U,{conditions:[],operations:ZN($,U,W.id)}),BD($,U,W.id,X),NO(W.id);return W.result()},z=X.getComposedWorkflowInterceptor();if(!z)return L();return z.childWorkflow({workflowId:U,childWorkflowId:Z,workflowType:J.workflowType,input:J.input,headers:new Map,parentHeaders:Y},L)}function dl($){return $.options?.parentClosePolicy??"await"}function NO($){return{id:$}}var AO=Symbol("weft.deferredConsume");function CO($){return{[AO]:!0,finalize:$}}function ll($){return typeof $==="object"&&$!==null&&$[AO]===!0}async function p0($){if(ll($))return $.finalize();if(Array.isArray($))return Promise.all($.map((U)=>p0(U)));return $}var il=2147483647;function RO($,U){return Math.min(Math.max(0,$-U),il)}function TO($,U,J){J?.throwIfAborted();let G=$.abortController.signal;if(G.aborted)return Promise.reject(G.reason??Error("aborted"));if(RO(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=RO(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 EO($,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:z}=Promise.withResolvers(),B=()=>{G?.removeEventListener("abort",S),Z.removeEventListener("abort",S)},W=async()=>{let c=await A8($,U,X);return c.found?c.payload:void 0},S=()=>{if(H)return;if(H=!0,B(),D)O8($,U,Q,z);_(G?.reason??Z.reason??Error("aborted"))},I=()=>{if(H)return;H=!0,B(),Y(CO(W))},p=(c)=>{if(H)return;if(H=!0,B(),D)O8($,U,Q,z);_(c)};if(G?.addEventListener("abort",S,{once:!0}),Z.addEventListener("abort",S,{once:!0}),Z.aborted){S();return}(async()=>{let c=await WH($,U,X);if(H)return;if(c.found){I();return}$.signalWaiters.set(Q,z),$1($.signalWaitersByWorkflow,U,Q),D=!0;let h=await WH($,U,X);if(H)return;if(h.found){O8($,U,Q,z),I();return}if(await L,H)return;I()})().catch(p)})}function nl($,U,J,G){let X=$.lastHeartbeatDetailsByStep.get(U);if(X===void 0)X=new Map,$.lastHeartbeatDetailsByStep.set(U,X);X.set(J,G)}function xO($,U,J){return $.lastHeartbeatDetailsByStep.get(U)?.get(J)}function lD($,U,J){let G=$.lastHeartbeatDetailsByStep.get(U);if(G===void 0)return;if(G.delete(J),G.size===0)$.lastHeartbeatDetailsByStep.delete(U)}function SO($,U,J,G){if(!$.options.development)return;if($.activityWorkerDispatcher)return;if(G<=1)return;if(xO($,U,J)!==void 0)return;$.engine.dispatchEvent(new r6(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 bO($,U,J,G,X){return{signal:G,lastHeartbeatDetails:xO($,U,J),heartbeat:(Q)=>{$.heartbeatDetails.set(U,Q),nl($,U,J,Q)},completeAsync:X}}class gO extends v{constructor(){super("ActivityReconciliationCapabilityError",'Activity result reconciliation requires storage capability "conditionalBatch".')}}class IO extends v{constructor($){super("ActivityReconciliationConflictError",$)}}class U4 extends v{constructor($){super("ActivityReconciliationIndeterminateError",$)}}async function hO($,U,J){let G=await al(J);return{idempotencyKeyDigest:G,key:F.activityReconciliation($,U,G)}}function yO($,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 mO($,U){let J=await $.get(U);if(J===null)return null;return sl(N(J))}function Y3($,U){return E6($,U,"activity result"),M($)}async function rl($,U,J){if(!$.capabilities().conditionalBatch)throw new gO;return X$($,"conditionalBatch","activity result reconciliation"),$$($,[{key:U.key,expectedValue:null}],[{type:"put",key:U.key,value:M(J)}])}function iD($,U,J){return{...$,status:"completed",result:U,updatedAt:J}}async function kO($,U,J,G,X,Q,Z){let Y=await mO($.storage,G.key);if(Y===null){let D=await el($,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 U4(`Activity "${J.activityName}" has a prior dispatch marker but no Tier-0 verifier.`);let _=ol(await $i(X,U,J,Q,Y));if(_==="not-completed"){let D={...Y,attempt:Y.attempt+1,ownerId:crypto.randomUUID(),updatedAt:$.options.getNow()};return await vO($.storage,G,Y,D),D}if(_==="completed-result-unavailable")throw new U4(`Activity "${J.activityName}" completed externally but its result is unavailable.`);if(_==="indeterminate")throw new U4(`Activity "${J.activityName}" reconciliation is indeterminate.`);Y3(_.result,$.options.payloadSizePolicy.maxBytes);let H=iD(Y,_.result,$.options.getNow());return await vO($.storage,G,Y,H),{completedResult:_.result}}async function vO($,U,J,G){let X=uO(U,J,G);if(!await $$($,X.conditions,X.operations))throw new IO("Activity reconciliation completion lost compare-and-set ownership.")}function fO($,U,J,G,X){e4($,U,uO(J,G,X))}function uO($,U,J){return{conditions:[{key:$.key,expectedValue:M(U)}],operations:[{type:"put",key:$.key,value:M(J)}]}}function ol($){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 U4("Activity verifier did not return a Tier-0 pre-dispatch reconciliation state.")}function nD($,U,J,G,X,Q,Z){return{phase:$,workflowId:U,operationId:J,activityName:G,input:X,...Q===void 0?{}:{idempotencyKey:Q},attempt:Z}}function sl($){if(typeof $!=="object"||$===null)throw new U4("Activity reconciliation record is not an object.");let U=$;if(!Ui(U))throw new U4("Activity reconciliation record has an invalid shape.");if(U.status==="started")return U;if(U.status==="completed"&&"result"in U)return U;throw new U4("Activity reconciliation record has an unsupported status.")}async function al($){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 tl($,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 el($,U,J,G,X){let Q=tl(U,J,G,X,$.options.getNow());if(await rl($.storage,G,Q))return{didClaim:!0,record:Q};let Y=await mO($.storage,G.key);if(Y===null)throw new U4("Activity reconciliation claim conflicted but no record could be read.");return{didClaim:!1,record:Y}}async function $i($,U,J,G,X){try{return await $.verify(void 0,nD("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 U4(`Activity "${J.activityName}" verifier threw during pre-dispatch reconciliation: ${Z}`)}}function Ui($){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 wO($,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 rD($,U,J){let G=wO($,U,J.activityName);if(G)return G.fn;if(typeof J.fn==="function")return J.fn;return}function cO($,U,J){let G=wO($,U,J.activityName);if(G)return G.fn;if(J.fn)return J.fn;let X=$.workflowTypeByWorkflowId.get(U)??"<unknown>";throw new _G(X,J.activityName)}function Ji($,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 Gi($,U,J,G){let X=rD($,U,J);if(!X?.compensate)return;return async()=>{await X.compensate?.(J.input,G)}}async function Xi($,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 Qi($,U,J,G,X,Q){let Z=cO($,U,J);return j8(Z,Q,G)}function pO($,U){if(U.size>0)$.headers=[...U.entries()]}function oD($){let U=$.attempt;return typeof U==="number"&&Number.isInteger(U)&&U>0?U:1}async function dO($,U,J,G,X=oD(J),Q){let Z=J.input,Y=J.step??0;SO($,U,Y,X);let _=eK(U,Y,X),{perAttemptTimeoutMs:H,attemptAbortController:D,activitySignal:L}=yN($,U,J,Q),z=bO($,U,Y,L,()=>{throw new LX(_)}),B=$.activityWorkerDispatcher?(h,m)=>Xi($,J.operationId,h,m,X):(h,m)=>U3(Qi($,U,J,z,h,m),H,h,X,D),W=G.getComposedActivityInterceptor(),S=async(h,m,u)=>{if(!W)return B(h,m);let E$={workflowId:U,activityName:h,input:m,attempt:X,headers:u};return await W.execute(E$,async(a1)=>{return B(h,a1.input)})},I=G.getComposedWorkflowInterceptor();if(I){let h={workflowId:U,activityName:J.activityName,input:Z,attempt:X,headers:new Map};function*m(){return yield S(J.activityName,h.input,h.headers)}let u=I.activity(h,m),E$=await QW(u);return pO(J,h.headers),E$}let p=new Map,c=await S(J.activityName,Z,p);return pO(J,p),c}async function JJ($,U,J,G,X,Q){let Z=rD($,U,J),Y=yO(Z,J),_=oD(J);if(Y!==void 0){let D=await hO(U,J.activityName,Y),L=await kO($,U,J,D,Z,Y,_);if("completedResult"in L)return Y3(L.completedResult,$.options.payloadSizePolicy.maxBytes),L.completedResult;let z=await dO($,U,J,G,L.attempt,X);Y3(z,$.options.payloadSizePolicy.maxBytes),await lO($,U,J,z,Z,Y,L.attempt,Q,!0);let B=iD(L,z,$.options.getNow());if(fO($,U,D,L,B),!Q)lD($,U,J.step??0);return z}let H=await dO($,U,J,G,_,X);if(E6(H,$.options.payloadSizePolicy.maxBytes,"activity result"),await lO($,U,J,H,Z,Y,_,Q),!Q)lD($,U,J.step??0);return H}async function lO($,U,J,G,X,Q,Z,Y,_=!1){let H=Y?Gi($,U,J,G):void 0;if(H)Y?.recordCompensation(H);if(X?.verify){let D=nD("post-execution-validation",U,J.operationId,J.activityName,J.input,Q,Z),L=Ji($,J.activityName,X.verify,D,G);if(Y){if(Y.recordVerification(L),_)await L}else await L}}async function iO($,U,J,G){return G.runOperationWithResult(U,J,async()=>{try{return await JJ($,U,J,G)}catch(X){if(X instanceof LX)return $W($,X,{workflowId:U,activityName:J.activityName,operationId:J.operationId,step:J.step??0,attempt:oD(J)},{feedOperationResult:G.feedOperationResult,finalizeTimeline:G.finalizePendingTimelineEntry});throw X}})}function _3($){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 nO($,U,J,G){let X=$.abortController.signal,Q=`${U}:${J.signalName}`;while(!0){if(X.aborted)return;let Z=await A8($,U,J.signalName);if(Z.found){G.completeOperation(U,Z.payload);return}let{promise:Y,resolve:_}=Promise.withResolvers();if($.signalWaiters.set(Q,_),$1($.signalWaitersByWorkflow,U,Q),X.aborted){$.signalWaiters.delete(Q),X6($.signalWaitersByWorkflow,U,Q);return}let H=await A8($,U,J.signalName);if(H.found){if($.signalWaiters.get(Q)===_)$.signalWaiters.delete(Q),X6($.signalWaitersByWorkflow,U,Q);G.completeOperation(U,H.payload);return}if(await Y,X.aborted)return}}async function rO($,U,J,G){return G.runOperationWithResult(U,J,async()=>{_3(J.operations);let X=oO(J.resumedCacheEntry),Q=J.operations.map((D,L)=>typeof D.operationId==="string"?D.operationId:`parallel:${J.step}:${L}`),{slots:Z,hasFirstError:Y,firstError:_}=await pK(Q,X,(D)=>G.executeSubOperation(U,J.operations[D]));if(Y)aO(Yi($,U),Z,"ctx.all","worker execution mode");await Zi(Z);let H=HH("all",Z);if(sO($,U,J.step,H),Y)throw _;return dK(Z)})}async function Zi($){let J=(await Promise.allSettled($.map(async(G)=>{if(G.status==="fulfilled")G.value=await p0(G.value)}))).find((G)=>G.status==="rejected");if(J)throw J.reason}function oO($){if(!w1($))return;return $.branches}function Yi($,U){return $.inlineStrategy?.getContext(U)!==void 0}function sO($,U,J,G){let X=$.inlineStrategy?.getContext(U);if(X===void 0)return!1;return X.accumulatedResults.set(J,G),!0}function aO($,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 tO($,U,J,G){return G.runOperationWithResult(U,J,async()=>{_3(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 p0(Z)})}async function eO($,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=oO(J.resumedCacheEntry),Y=Di(Z,X),_=_i(J.branches,X,Y),{outcomes:H,hasFirstError:D,firstError:L}=await oK(_,(S,I)=>j8(S,I)),z=ji(X,Q,Y,H),B=HH("run-all",z,X),W=sO($,U,J.step,B);if(D)throw aO(W,z,"ctx.runAll","worker execution mode"),L;return Hi(X,z)})}function _i($,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 ji($,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 Hi($,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 Di($,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 Li($){return typeof $.execute==="function"}async function $A($,U,J,G,X){return sK(J.branches,(Q,Z)=>{if(!X||!Li(Q))return j8(Q,Z);return JJ($,U,{type:"activity",operationId:crypto.randomUUID(),activityName:Q.name,fn:Q,input:Z},G.getActivityOperationCallbacks(),void 0,X)})}async function UA($,U,J,G){return G.runOperationWithoutResult(U,J,()=>G.processReviewOperation(U,J.reviewOptions))}async function j3($,U,J,G,X,Q){X?.throwIfAborted();let Z=Vi[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 Vi={activity:($,U)=>Fi($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),"child-workflow":($,U)=>zi($.internals,$.workflowId,U,$.callbacks),memo:($,U)=>Promise.resolve(hG(U.fn)),"state-read":($,U)=>Bi($.internals,U),"state-commit":($,U)=>Pi($.internals,U,$.callbacks),parallel:($,U)=>Ki($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),race:($,U)=>Wi($.internals,$.workflowId,U,$.callbacks,$.signal,$.speculativeState),"run-all":($,U)=>$A($.internals,$.workflowId,U,$.callbacks.createCoordinationOperationCallbacks(),$.speculativeState),sleep:($,U)=>TO($.internals,U,$.signal),"wait-signal":($,U)=>EO($.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 Fi($,U,J,G,X,Q){return JJ($,U,J,G.createActivityOperationCallbacks(),X,Q)}async function zi($,U,J,G){return dD($,U,J,pD($,U),G.createChildWorkflowOperationCallbacks())}async function Bi($,U){return f1($.storage,s4(U.scope,U.key),U)}async function Pi($,U,J){let G=s4(U.scope,U.key),X=U.mode==="delete"?await V8($.storage,G,U.expectedVersion):await L8($.storage,G,U.expectedVersion,U.value);if(X.applied&&U.scope.type==="execution")await J.createStateOperationCallbacks().ensureTerminalCleanupTracked(U.scope.ownerWorkflowId);return X}async function Ki($,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)=>j3($,U,H,G,Z.signal,Q));Promise.allSettled(_);try{return await Promise.all(_)}finally{X?.removeEventListener("abort",Y),Z.abort()}}async function Wi($,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)=>j3($,U,H,G,Z.signal,Q));Promise.allSettled(_);try{return await Promise.race(_)}finally{X?.removeEventListener("abort",Y),Z.abort()}}function sD($){return{runOperationWithResult:(U,J,G)=>Y1($,U,J,G),start:(U,J,G)=>Y6(V($),U,J,G,void 0,T$($)),loadWorkflowState:(U)=>l(V($),U),getHandle:(U)=>$.getHandle(U),getComposedWorkflowInterceptor:()=>H6(V($))}}function H3($){return{runOperationWithResult:(U,J,G)=>Y1($,U,J,G),finalizePendingTimelineEntry:(U,J,G)=>b6(V($),U,J,G),feedOperationResult:(U,J,G)=>j6(V($),U,J,G),getComposedActivityInterceptor:()=>UN(V($)),getComposedWorkflowInterceptor:()=>H6(V($))}}function d0($){return{completeOperation:(U,J)=>V3($,U,J),runOperationWithResult:(U,J,G)=>Y1($,U,J,G),executeSubOperation:(U,J,G,X)=>aD($,U,J,G,X),getActivityOperationCallbacks:()=>H3($)}}function GA($){return{completeOperation:(U,J)=>V3($,U,J),failOperation:(U,J,G)=>Mi($,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 GJ($){return{runOperationWithResult:(U,J,G)=>Y1($,U,J,G)}}function D3($){return{runOperationWithResult:(U,J,G)=>Y1($,U,J,G),ensureTerminalCleanupTracked:(U)=>o8(V($),U)}}function XA($){return{runOperationWithResult:(U,J,G)=>Y1($,U,J,G),handleCleanupError:(U,J,G)=>a($).handleCleanupError(U,J,G)}}function L3($){return{completeOperation:(U,J)=>V3($,U,J),dispatchEvent:(U)=>$.dispatchEvent(U),loadWorkflowState:(U)=>l(V($),U),failWorkflow:(U,J)=>s$(V($),U,J,a($)),runSerializedWorkflowStateWrite:(U,J)=>Q6(V($),U,J),beginWorkflowExecution:(U,J,G,X,Q,Z,Y)=>lX(V($),U,J,G,X,Q,Z,Y,T$($)),workflowVersionTupleFromState:(U)=>uX(V($),U,T$($)),setWorkflowStartHeaders:(U,J)=>x4(V($),U,J,T$($)),loadWorkflowStartHeaders:(U)=>i1(V($),U,T$($)),parseStartOptionDuration:(U,J)=>m0(V($),U,J,T$($)),runDeferredTerminalCleanup:(U,J)=>YD(V($),U,J,a($)),runWorkflowFinalizer:(U,J)=>bD(V($),U,J,a($)),handleScheduleTimer:(U)=>zO($,U),timeout:(U)=>$.timeout(U),handleCleanupError:(U,J,G)=>a($).handleCleanupError(U,J,G)}}function l0($){return{dispatchEvent:(U)=>$.dispatchEvent(U),broadcast:(U)=>U1(V($),U,e6($)),completeOperation:(U,J)=>V3($,U,J),guardTerminalWorkflow:(U)=>cD(V($),U,Z3($)),guardTerminalWorkflowAfterCoordinatedRequest:(U,J)=>PO(V($),U,J,Z3($)),persistCoordinatedUpdateResponse:(U,J,G,X,Q)=>JA($,U,J,G,X,Q),deliverCoordinatedUpdateToWaiterIfAvailable:(U,J,G)=>oW(V($),U,J,G,l0($)),dispatchPendingUpdateReceived:(U,J,G)=>eW(V($),U,J,G,e6($)),createCoordinatedUpdateResponder:(U,J,G)=>rW(V($),U,J,G,{persistCoordinatedUpdateResponse:(X,Q,Z,Y,_)=>JA($,X,Q,Z,Y,_)}),findPendingUpdateByName:(U,J)=>sW(V($),U,J),schedulePendingInlineUpdateDrain:(U)=>MN(V($),U,t8($))}}async function JA($,U,J,G,X,Q){let Z=V($),Y=Z.updateCoordinator.buildResponseOperations(G,U,Q,void 0,X);try{await Z$(Z,Y,[],()=>Error(`Coordinated update response for workflow "${U}" lost its CAS race.`)),$.dispatchEvent(new G6(G,U,J,Q)),U1(Z,{type:"update:completed",workflowId:U,updateId:G},e6($))}catch(_){a($).handleCleanupError("writeCoordinatedUpdateResponse",_,U)}}function V3($,U,J){return $J(V($),U,J,e8($))}function Mi($,U,J,G){return UJ(V($),U,J,G,e8($))}async function Y1($,U,J,G){return MO(V($),U,J,G,e8($))}async function QA($,U,J,G){return qO(V($),U,J,G,e8($))}async function aD($,U,J,G,X){return j3(V($),U,J,{createActivityOperationCallbacks:()=>H3($),createChildWorkflowOperationCallbacks:()=>sD($),createCoordinationOperationCallbacks:()=>d0($),createStateOperationCallbacks:()=>D3($)},G,X)}async function ZA($,U,J){return hN(V($),U,J,FO($))}async function YA($,U,J,G){return G.runOperationWithResult(U,J,async()=>hG(J.fn))}async function _A($,U,J,G){return G.runOperationWithResult(U,J,async()=>{let X=await J.fn(),Q=M(X);return await $.storage.put(F.offload(U,J.key),Q),{key:J.key,workflowId:U,sizeBytes:Q.byteLength}})}async function jA($,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(F.offload(X,Q));if(Y===null)throw Error(`Offloaded data not found for key "${Q}" in workflow "${X}"`);return N(Y)})}async function HA($,U,J){let G=await $.storage.get(F.offload(U,J));if(G===null)return null;return N(G)}async function DA($,U,J,G){return G.runOperationWithResult(U,J,async()=>{await $.storage.put(F.archive(U,J.key),M(J.data));return})}class tD{#$;#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 LA($,U,J,G){return G.runOperationWithResult(U,J,()=>qi($,U,J,G))}async function qi($,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 tD,_=Ni(J,Z);try{let H=await Oi(U,_,Y,G);return await Y.drainVerifications(),Q.commitSpeculativeChild(Z),H}catch(H){throw await Y.rollback(),H}}function Ni($,U){return $.execute(U)}async function Oi($,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")_3(_.operations);let H=await G.executeSubOperation($,_,void 0,J),D=await p0(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 VA($,U,J,G){return G.runOperationWithResult(U,J,async()=>{let X=s4(J.scope,J.key);return f1($.storage,X,J)})}async function FA($,U,J,G){return G.runOperationWithResult(U,J,async()=>{let X=s4(J.scope,J.key);if(J.mode==="delete"){let Z=await V8($.storage,X,J.expectedVersion);if(Z.applied&&J.scope.type==="execution")await G.ensureTerminalCleanupTracked(J.scope.ownerWorkflowId);return Z}let Q=await L8($.storage,X,J.expectedVersion,J.value);if(Q.applied&&J.scope.type==="execution")await G.ensureTerminalCleanupTracked(J.scope.ownerWorkflowId);return Q})}var Ai=/^\d+$/;function Ci($){if(!Ai.test($))return;let U=Number.parseInt($,10);return Number.isSafeInteger(U)?U:void 0}async function i0($,U,J,G){let X=G?.after,Q=F.streamChunkPrefix(U,J),Z=[],Y=X!==void 0&&X>=0?{gt:F.streamChunk(U,J,X)}:void 0;for await(let[_,H]of $.scan(Q,Y)){let D=_.slice(Q.length),L=Ci(D);if(L===void 0)continue;Z.push({sequence:L,value:N(H)})}return Z}function zA($){return M({sequence:$})}function Ri($){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 BA($,U,J){let G=await $.get(F.streamTail(U,J));if(G===null)return null;try{return Ri(N(G))}catch{return null}}var o1="tokens",eD="stream:chunk",Ti="workflow:compaction-boundary";async function*PA($,U,J,G){if(J==="events"){yield*Ei($,U,G);return}yield*xi($,U,G)}async function KA($,U,J){if(J==="events"){let Z=$.eventLogHeads.get(U);if(Z)return Z.sequence;return(await new o$($.storage,U).loadHead()).sequence}let G=await BA($.storage,U,o1);if(G!==null)return G;let X=await i0($.storage,U,o1);if(X.length===0)return-1;let Q=-1;for(let Z of X)if(Z.sequence>Q)Q=Z.sequence;return Q}function WA($,U,J,G){let X=$0(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*Ei($,U,J){let G=new o$($.storage,U),X=J<0?0:J+1,Q=await Q1($.storage,U);if(Q!==null&&X<Q.sequence)yield{workflowId:U,selector:"events",kind:Ti,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*xi($,U,J){let G=J>=0?await i0($.storage,U,o1,{after:J}):await i0($.storage,U,o1),X=Date.now();for(let Q of G)yield{workflowId:U,selector:"tokens",kind:eD,sequence:Q.sequence,timestamp:X,payload:Q.value}}function F3($,U,J,G){let X=$.workflowFeedListeners.get($0(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 MA($,U,J,G){return i0($.storage,U,J,G)}async function qA($,U,J,G){return G.runOperationWithResult(U,J,()=>Si($,U,J,G))}async function Si($,U,J,G){let X={heartbeat:(Z)=>{$.heartbeatDetails.set(U,Z)}},Q=[];try{let Z=await bi($,U,J,J.fn(X),Q),Y={key:J.key,workflowId:U,chunkCount:Z.chunkCount,totalSizeBytes:Z.totalSizeBytes};return await $.storage.put(F.streamMetadata(U,J.key),M(Y)),Y}catch(Z){throw await vi($,U,J.key,Q,G),Z}}async function bi($,U,J,G,X){let Q=0,Z=0;for await(let Y of G){let _=M(Y),H=Q,D=F.streamChunk(U,J.key,H);if(J.key===o1)await $.storage.batch([{type:"put",key:D,value:_},{type:"put",key:F.streamTail(U,J.key),value:zA(H)}]);else await $.storage.put(D,_);if(X.push(D),Z+=_.byteLength,Q++,J.key===o1)F3($,U,"tokens",{workflowId:U,selector:"tokens",kind:eD,sequence:H,timestamp:Date.now(),payload:Y})}return{chunkCount:Q,totalSizeBytes:Z}}async function vi($,U,J,G,X){await rK($.storage,U,J,G,lK(X.handleCleanupError,U))}function OA($,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 AA($,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=OA($,Q,Z);if(H.done){_(H.value);return}if(Z!==void 0)await G.scheduleConditionDeadline(U,J.step,Z);try{let D=await NA($,U,Q,Z,G);while(D.status==="continue")D=await NA($,U,Q,Z,G);if(D.status==="complete")_(D.value)}finally{if(CA($,U),Z!==void 0)await G.cancelConditionDeadline(U,J.step)}}catch(H){G.failOperation(U,J,H)}}async function NA($,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}:{...OA($,J,G),aborted:!1};if(_.done)return CA($,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 CA($,U){$.conditionWaiters.delete(U)}function $L($){return{processActivityOperation:(U,J)=>iO(V($),U,J,H3($)),processSleepOperation:(U,J)=>Jq(V($),U,J,L3($)),processWaitSignalOperation:(U,J)=>nO(V($),U,J,d0($)),processWaitUpdateOperation:(U,J)=>iW(V($),U,J,l0($)),processWaitConditionOperation:(U,J)=>AA(V($),U,J,GA($)),processGetVersionOperation:async(U,J)=>{$J(V($),U,J.version,{finalizePendingTimelineEntry:(G,X,Q)=>b6(V($),G,X,Q),feedOperationResult:(G,X,Q)=>j6(V($),G,X,Q)})},processParallelOperation:(U,J)=>rO(V($),U,J,d0($)),processRaceOperation:(U,J)=>tO(V($),U,J,d0($)),processMemoOperation:(U,J)=>YA(V($),U,J,GJ($)),processChildWorkflowOperation:(U,J)=>OO(V($),U,J,sD($)),processOffloadOperation:(U,J)=>_A(V($),U,J,GJ($)),processLoadOperation:(U,J)=>jA(V($),U,J,GJ($)),processArchiveOperation:(U,J)=>DA(V($),U,J,GJ($)),processStateReadOperation:(U,J)=>VA(V($),U,J,D3($)),processStateCommitOperation:(U,J)=>FA(V($),U,J,D3($)),processRunAllOperation:(U,J)=>eO(V($),U,J,d0($)),processSpeculateOperation:(U,J)=>LA(V($),U,J,{runOperationWithResult:(G,X,Q)=>Y1($,G,X,Q),executeSubOperation:(G,X,Q,Z)=>aD($,G,X,Q,Z)}),processStreamOperation:(U,J)=>qA(V($),U,J,XA($)),processWaitReviewOperation:(U,J)=>UA(V($),U,J,{runOperationWithoutResult:(G,X,Q)=>QA($,G,X,Q),processReviewOperation:(G,X)=>ZA($,G,X)}),finalizePendingTimelineEntry:(U,J,G)=>b6(V($),U,J,G),feedOperationResult:(U,J,G)=>j6(V($),U,J,G)}}sN(($)=>$L($));function RA($){let U=g($).pendingAttributeChanges;return U!==void 0&&Object.keys(U).length>0}function TA($){let U=g($).updateHandlers;return U!==void 0&&U.size>0}function EA($){let U=g($).exposedValues;return U!==void 0&&U.size>0}function xA($,U,J,G,X,Q){let Z=u0($,U),Y=$.workflowVersionTuples.get(U);if(Z)Q.push(Z);let _={step:G,operationType:J.type,operationLabel:sP(J),inputSummary:aP(J),timestamp:X,status:"running",...Y?{versionTuple:Y}:{}};return Q.push({type:"put",key:F.timeline(U,G),value:M(_)}),{startedAt:X,entry:_}}async function SA($,U,J,G,X){if($.inlineStrategy?.getContext(U))await gi($,U,J,X);else if(G&&G.byteLength>0)await Ii($,U,J,G,X)}async function gi($,U,J,G){let X=$.checkpoints.get(U),Q=$.inlineStrategy?.getContext(U);if(!X||!Q)return;let Z={...X.searchAttributes},Y=Q.checkpointPendingAttributeChanges,_=RA(Q),H=XH(X,Q.checkpointLocals,{accumulatedResults:Q.checkpointAccumulatedResults,now:$.options.getNow(),...Y!==void 0?{searchAttributes:Y}:{}}),D=Ij(H,gA(J,Q.stepIndex)),L=bA($,U,D.checkpoint,P$(hj(D.checkpoint,D.replayPayload)),D.replayPayload);if(hi(U,L,Z,Y,_,G),await vA($,U,J,L,G),_)G.dispatchEvent(new V0(U,{...Y}))}async function Ii($,U,J,G,X){let Q=new Uint8Array(G),Z=V$(Q),Y=tU(Z),_=Ij(Z,gA(J,Z.step)),H=SG(Y,_.replayPayload),D=P$(hj(_.checkpoint,H));await vA($,U,J,bA($,U,_.checkpoint,D,H),X)}function bA($,U,J,G,X){let Q=[{type:"put",key:F.checkpoint(U),value:G}];if($.options.checkpointHistory>0)Q.push({type:"put",key:F.checkpointHistory(U,J.step),value:G});let Z=qM($,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 hi($,U,J,G,X,Q){if(!X)return;Q.validateAttributeValueSizes(G??{}),U.operations.push({type:"put",key:F.attribute($),value:M(U.checkpoint.searchAttributes)}),U.operations.push(...q$($,J,U.checkpoint.searchAttributes))}async function vA($,U,J,G,X){ui($,U,G,X);let Q=X.appendTimelineBatchOperations(U,J,G.step,G.timestamp,G.operations),{newHead:Z,timestamp:Y}=wi($,U,G),_=$.options.historyPolicy.retentionWindow,H=_===null?null:await rM($.storage,U,Z.sequence,_,G.operations),D=WX($,U);if(D!==void 0)G.operations.push(...D.operations);let L=$.storage.capabilities().conditionalBatch,z=yi(D,L),B=mi(U,G,L,z);if(await Z$($,G.operations,B,()=>{return Error(`Checkpoint commit for workflow "${U}" lost its CAS race against a newer checkpoint.`)}),D!==void 0)MX($,U);if(G.expectedSerialized!==void 0)bX($,U,G.serialized);if($.pendingTimelineEntries.set(U,Q),$.checkpoints.set(U,G.checkpoint),$.eventLogHeads.set(U,Z),H!==null)fi($,U,H,X);if(F3($,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)),ki($,Z.sequence))await X.enforceHistoryCircuitBreaker(U)}function yi($,U){if(!U)return[];return $?.conditions??[]}function mi($,U,J,G){let X=[];if(J&&U.expectedSerialized!==void 0)X.push({key:F.checkpoint($),expectedValue:U.expectedSerialized});return X.push(...G),X}function ki($,U){let J=$.options.historyPolicy.maxEvents;return J!==null&&U+1>J}function fi($,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}`,_=oM(J.deletedEntries);G.swallowPromiseRejection(Promise.resolve().then(()=>X.store(U,Y,_)))}function ui($,U,J,G){if(J.serialized.byteLength>=$.options.checkpointSizeWarningThreshold)G.dispatchEvent(new P0(U,J.serialized.byteLength,J.step))}function wi($,U,J){return new o$($.storage,U).appendToBatch({type:"workflow:checkpoint",payload:bP(J.step,J.replayPayload)},J.operations,$.eventLogHeads.get(U)??I1,$.workflowVersionTuples.get(U))}function gA($,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 IA($,U,J){let G=$.options.checkpointHistory;if(G<=0)return;let X=J-G;if(X<1)return;let Q=F.checkpointHistory(U,X);await $.storage.delete(Q)}function hA($,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=QH({...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 r6(U,_,Y))}}async function yA($,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 ci(Y,Z))continue;if(pi(J,U,Y),Y.onViolation==="warn"){di(U,Y);continue}let H=Error(`Constraint violated: ${Y.name} (scope: ${Y.scope})`);if(Y.onViolation==="fail")await li(J,U,H);else ii(J,U,H);return!0}return!1}async function ci($,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 pi($,U,J){$.dispatchEvent(new N0(U,J.name,J.scope,J.onViolation))}function di($,U){console.warn(`[weft] Constraint "${U.name}" (scope: ${U.scope}) violated on workflow "${$}" — continuing (onViolation: 'warn')`)}async function li($,U,J){$.cancelWorkflowInStrategy(U),await $.failWorkflow(U,J)}function ii($,U,J){$.feedOperationResult(U,{status:"failed",error:J.message,errorName:J.name,failureCategory:"application"},{value:J})}async function mA($,U,J,G){if(J.type!=="wait-signal"||$.inlineStrategy===null)return!1;let X=$.inlineStrategy,Q=X.getContext(U);if(Q&&(TA(Q)||EA(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 z3($,U,J){if(!$.parkedInlineWorkflows.has(U))return;$.parkedInlineWorkflows.delete(U);try{await l8($,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 kA($,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 fA($,U,J){switch(U.type){case"completed":await RD($,U.workflowId,U.result,J.createTerminationCallbacks());break;case"failed":{let G=Error(U.error);if(U.errorStack)G.stack=U.errorStack;await s$($,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 s$($,U.workflowId,Z,J.createTerminationCallbacks(),"system")});break}await J.processOperation(U.workflowId,G);break}}}function B3($){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 P3($){$.nextRetentionSweepAt=$.options.getNow()+$.options.retentionSweepIntervalMs}function K3($,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 W3($,U,J){try{await g8($,void 0,{expiredOnly:!0,limit:$.options.retentionSweepBatchSize,now:$.options.getNow()},J)}catch(G){U("retentionSweep",G)}}function UL($,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 uA($,U=(J)=>UL($,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 XJ($){return{createLifecycleCallbacks:()=>T$($),createTerminationCallbacks:()=>a($),evaluateConstraints:(U)=>yA(V($),U,oN($)),getParkedWorkflowResumeDisposition:(U)=>kA(V($),U,XJ($)),hasBufferedSignal:(U,J)=>wW(V($),U,J),loadWorkflowState:(U)=>l(V($),U),parkInlineWorkflowAfterCheckpoint:(U,J)=>mA(V($),U,J,XJ($)),persistCheckpoint:(U,J,G)=>ni($,U,J,G),processOperation:(U,J)=>WO(V($),U,J,$L($)),readCheckpointBytes:(U)=>V($).storage.get(F.checkpoint(U)),resumeParkedInlineWorkflow:(U)=>z3(V($),U,XJ($)),runSerializedWorkflowStateWrite:(U,J)=>Q6(V($),U,J),translateOperationRequest:(U)=>KO(V($),U),validateDevelopmentCheckpoint:(U)=>hA(V($),U,{dispatchEvent:(J)=>{$.dispatchEvent(J)}})}}function ni($,U,J,G){return SA(V($),U,J,G,{appendTimelineBatchOperations:(X,Q,Z,Y,_)=>xA(V($),X,Q,Z,Y,_),swallowPromiseRejection:(X)=>{S6(X)},validateAttributeValueSizes:x0,pruneCheckpointHistory:(X,Q)=>IA(V($),X,Q),dispatchEvent:(X)=>{$.dispatchEvent(X)},enforceHistoryCircuitBreaker:(X)=>r1(V($),X,"timed-out",a($),QG)})}function ri($){K3(V($),{hasConfiguredRetention:()=>B3(V($)),runRetentionSweep:()=>W3(V($),(U,J)=>a($).handleCleanupError(U,J),(U)=>a6(V($),U,a($))),setNextRetentionSweepAt:()=>P3(V($))})}rN(($)=>ri($));async function wA($,U){let J=[],G=new o$($.storage,U);for await(let X of G.scan())J.push({type:X.type,timestamp:X.timestamp,data:dj(X.payload)});return J}async function cA($,U){if($.options.checkpointHistory<=0)return[];let J=`${F.checkpoint(U)}:`,G=[];for await(let[,X]of $.storage.scan(J,{reverse:!0,limit:$.options.checkpointHistory})){let Q=V$(X);G.push({step:Q.step,timestamp:Q.createdAt,sizeBytes:X.byteLength})}return G}async function pA($,U,J){let G=await $.storage.get(F.checkpointHistory(U,J));if(!G)return null;let X=await y1($.storage,U,V$(G));return pj({step:X.step,locals:X.locals,searchAttributes:X.searchAttributes,version:X.version,createdAt:X.createdAt})}async function dA($,U){let J=[];for await(let[,G]of $.storage.scan(F.timelinePrefix(U))){let X;try{X=N(G)}catch{continue}if(dP(X))J.push({...X,inputSummary:lj(X.inputSummary)??X.inputSummary,...X.outputSummary!==void 0?{outputSummary:lj(X.outputSummary)??X.outputSummary}:{}})}return J.sort((G,X)=>G.step-X.step),J}async function lA($,U,J){let G=await $.storage.get(F.checkpointHistory(U,J));if(!G)return null;let Q=await new o$($.storage,U).replay(Math.max(J-1,-1)),Z=await y1($.storage,U,V$(G)),Y=await Q1($.storage,U);return{checkpoint:pj({step:Z.step,locals:Z.locals,searchAttributes:Z.searchAttributes,version:Z.version,createdAt:Z.createdAt}),accumulatedResults:Z.accumulatedResults.map(([_,H])=>[_,g1(H)]),events:Q.map((_)=>({type:_.type,timestamp:_.timestamp,data:dj(_.payload)})),...Y!==null?{compactedBefore:Y.sequence}:{}}}function iA($,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 JL{#$;#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=iA(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 GL{#$;#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=iA(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 oi=1e4;class XL{#$;#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?_$(X.window):60000;if(X.metric==="workflow.failure_rate")this.#G.set(G,new JL(Q));else if(X.metric==="activity.p99_duration")this.#G.set(G,new GL(Q))}this.#V(),this.#_=setInterval(this.#L.bind(this),oi)}#L(){for(let $=0;$<this.#U.rules.length;$++)this.#j($)}#V(){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 D0))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 W0))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 q0(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.#F($,U,J)}#F($,U,J){let G=this.#U.webhooks??[];for(let X of G){if(!X.events.includes(U))continue;let Q=new AbortController;this.#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 nA(){let $=SP();if(!$)throw Error("Brotli compression requires Bun or Node 22.5+ with process.getBuiltinModule support. Use gzip compression for browser/edge runtimes.");return $}function si($){return new Uint8Array(nA().brotliCompressSync($))}function ai($){return new Uint8Array(nA().brotliDecompressSync($))}var M3=193,QL=0,rA=1,oA=2,J4=2;function sA($){return ti($)}function ti($){switch($){case"gzip":return{algorithm:"gzip",compress(U){return EP(U)}};case"brotli":return{algorithm:"brotli",compress(U){return si(U)}};case"none":return{algorithm:"none",compress(U){return U}}}}async function ZL($,U,J){if($.length<J||U.algorithm==="none"){let Z=new Uint8Array($.length+J4);return Z[0]=M3,Z[1]=QL,Z.set($,J4),Z}let G=await U.compress($);if(G.length+J4>=$.length+J4){let Z=new Uint8Array($.length+J4);return Z[0]=M3,Z[1]=QL,Z.set($,J4),Z}let X=U.algorithm==="gzip"?rA:oA,Q=new Uint8Array(G.length+J4);return Q[0]=M3,Q[1]=X,Q.set(G,J4),Q}async function YL($){if($.length<J4)throw Error("Compression payload missing 2-byte header.");if($[0]!==M3)throw Error("Compression payload missing magic byte 0xC1.");let U=$[1],J=$.slice(J4);switch(U){case QL:return J;case rA:return xP(J);case oA:return ai(J);default:throw Error(`Compression payload uses unsupported algorithm byte 0x${U.toString(16).padStart(2,"0")}.`)}}var ei=4096,$n="gzip";function aA($){return{threshold:$?.threshold??ei,algorithm:$?.algorithm??$n}}class _L{#$;#U;#J;constructor($,U){this.#$=$;let J=aA(U);if(this.#U=sA(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 YL(U)}async put($,U){let J=await ZL(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 YL(G)]}async batch($){I$("batch operations",$.length);let U=await Promise.all($.map(async(J)=>{if(J.type==="put")return{type:"put",key:J.key,value:await ZL(J.value,this.#U,this.#J)};return J}));return this.#$.batch(U)}[Symbol.dispose](){this.#$[Symbol.dispose]()}}function Un($){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 s1($){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=Un($.limit);if(G!==void 0)U.limit=G;return U}async function tA($,U,J){let G=s1(J);if($.deleteRange)return $.deleteRange(U,G);return kB($,U,G)}function Jn($,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 Gn($,U){let J={key:J$($),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 eA($,U){let J=Jn($,U),G=Gn($,U);if(J.key>G.key||J.key===G.key&&(J.open||G.open))return null;return{lower:J,upper:G}}function jL($){return $.replaceAll(/:+$/g,"")}function Xn($,U){let J=jL($),G=jL(U);if(J.length===0)return G;if(G.length===0)return J;return`${J}:${G}`}class HL{#$;#U;constructor($,U){this.#$=$,this.#U=jL(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 HL(this.#$,Xn(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($){I$("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 $$(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 h$(this.#$,this.#J($))}async deletePrefix($){return pB(this.#$,this.#J($))}async deleteRange($,U){let J=this.#Q(s1(U));return tA(this.#$,this.#J($),J)}async*keys($,U){for await(let J of HG(this.#$,this.#J($),this.#X(U)))yield this.#G(J)}async count($){return cB(this.#$,this.#J($))}[Symbol.dispose](){this.#$[Symbol.dispose]()}}function q3($,U){return new HL($,U)}class DL{#$;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=J$($),Q=this.#J($,X);if(Q=Q.filter((Y)=>S1(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($){I$("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){I$("conditionalBatch conditions",$.length),I$("conditionalBatch operations",U.length);for(let J of $){let G=this.#$.get(J.key)??null;if(!iU(G,J.expectedValue))return!1}return this.#G(U),!0}async has($){return this.#$.has($)}async deletePrefix($){let U=J$($),J=this.#J($,U);for(let G of J)this.#$.delete(G);return J.length}async deleteRange($,U){let J=s1(U),G=J$($),X=this.#J($,G).filter((Z)=>S1(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=J$($),Q=this.#J($,X);if(Q=Q.filter((Y)=>S1(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=J$($);return this.#J($,U).length}scoped($){return q3(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 LL{#$;#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 N3{#$;#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.#L();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.#F(),this.#z()}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.#z()}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.#V()}async[Symbol.asyncDispose](){if(this.#Y)return;if(this.#Y=!0,this.#D(Error("WorkerPool has been disposed")),this.#U.length===this.#$.size){this.#V();return}return new Promise(($)=>{this.#_=()=>{this.#V(),$()}})}#L(){let $={};if(this.#Z)$.smol=!0;let U=new Worker(this.#Q,$);return this.#$.add(U),U}#V(){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()}#F(){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.#L());continue}return}}#z(){if(this.#_&&this.#U.length===this.#$.size)this.#_(),this.#_=null}}function $C($,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},...Qn($,J.workflowId),services:$.getWorkflowServices?.(J.workflowId),...Zn($)}}function Qn($,U){let{registerCancelHandler:J,recordFinalizerState:G}=$;return{...J!==void 0&&{registerCancelHandler:(X)=>J(U,X)},...G!==void 0&&{recordFinalizerState:(X)=>G(U,X)}}}function Zn($){let U=$.getLogSink?.();return U===void 0?{}:{logSink:U}}function UC($){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 VL{#$;#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 Z1($C(this.#$,U,$,J)),X=this.#$.getComposedWorkflowInterceptor?.()??null;if(k0(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"?OG($.operationResult):void 0;if(X)this.#L($.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.#L($,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.#V($,(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:G8(G,{defaultErrorCategory:"application"})};if(G instanceof Error&&G.stack!==void 0)X.errorStack=G.stack;this.#j(X)}})())}#L($,U,J,G){return this.#V($,(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??G8(X,{defaultErrorCategory:"application"})};if(X instanceof Error&&X.stack!==void 0)Q.errorStack=X.stack;this.#j(Q)}})())}#V($,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 FL{#$=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 Yn=new Set(["debug","info","warn","error"]);function _n($){if($===void 0)return!0;if(typeof $!=="object"||$===null)return!1;let U=Object.getPrototypeOf($);return U===Object.prototype||U===null}function O3($){if(typeof $!=="object"||$===null)return!1;let U=$;return Yn.has(U.level)&&typeof U.message==="string"&&typeof U.workflowId==="string"&&typeof U.workflowType==="string"&&typeof U.timestamp==="number"&&Number.isFinite(U.timestamp)&&_n(U.attributes)}function JC($){return typeof $==="object"&&$!==null&&$.type==="log"}var S4=1,QC=1000,ZC=1048576,zL=4096,YC=60000,_C=5000,jC=5,GC="__weftBinaryBytes",jn="__weftDate",Hn="__weftError",Dn="__weftMap",Ln="__weftSet";class N$ extends Error{constructor($){super($);this.name="WorkerProtocolError"}}class r0 extends N${actualBytes;maxBytes;constructor($,U){super(`Worker protocol message is ${$} bytes, exceeding limit ${U}`);this.actualBytes=$;this.maxBytes=U}}function Vn($){let U=0;return M(n0($,[],(G)=>{U+=G})).byteLength+U}function QJ($,U){let J=Vn($);if(U!==void 0&&J>U)throw new r0(J,U);return J}function HC($){let U=Fn($);zn(U),Bn(U)}function Fn($){if(typeof $!=="object"||$===null)throw new N$("Worker outbound message must be an object");return $}function zn($){if(typeof $.workflowId!=="string")throw new N$("Worker outbound message must include workflowId");XC($,"protocolVersion"),XC($,"turnId")}function XC($,U){if($[U]!==void 0&&!Number.isSafeInteger($[U]))throw new N$(`Worker outbound message ${U} must be an integer`)}function Bn($){switch($.type){case"checkpoint":Pn($);return;case"completed":return;case"failed":Kn($);return;case"log":Wn($);return;default:throw new N$("Worker outbound message has an unsupported type")}}function Pn($){if(!($.checkpoint instanceof ArrayBuffer))throw new N$("Worker checkpoint message must include checkpoint bytes");if(typeof $.operationRequest!=="object"||$.operationRequest===null)throw new N$("Worker checkpoint message must include operationRequest")}function Kn($){if(typeof $.error!=="string")throw new N$("Worker failed message must include an error string")}function Wn($){if(!O3($.record))throw new N$("Worker log message must include a valid log record")}function n0($,U,J){let G=Mn($,U,J);if(G.handled)return G.value;if(U.includes($))throw new N$("Worker protocol message cannot include cyclic values");if(!Q2($).valid)throw new N$("Worker protocol message contains non-cloneable values");return On($,U,J)}function Mn($,U,J){if(typeof $==="function"||typeof $==="symbol")throw new N$("Worker protocol message cannot include functions or symbols");let G=qn($,J);if(G.handled)return G;let X=Nn($,U,J);if(X.handled)return X;if(Array.isArray($))return{handled:!0,value:$.map((Q)=>n0(Q,U,J))};if(typeof $!=="object"||$===null)return{handled:!0,value:$};return{handled:!1}}function qn($,U){if($ instanceof ArrayBuffer)return U($.byteLength),{handled:!0,value:{[GC]:$.byteLength}};if(ArrayBuffer.isView($))return U($.byteLength),{handled:!0,value:{[GC]:$.byteLength}};return{handled:!1}}function Nn($,U,J){if($ instanceof Date)return{handled:!0,value:{[jn]:$.toISOString()}};if($ instanceof Error)return{handled:!0,value:{[Hn]:{name:$.name,message:$.message}}};if($ instanceof Map)return{handled:!0,value:{[Dn]:[...$.entries()].map(([G,X])=>[n0(G,U,J),n0(X,U,J)])}};if($ instanceof Set)return{handled:!0,value:{[Ln]:[...$.values()].map((G)=>n0(G,U,J))}};return{handled:!1}}function On($,U,J){U.push($);try{let G={};for(let X of Object.keys($).toSorted())G[X]=n0($[X],U,J);return G}finally{U.pop()}}class BL{#$;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=S4;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,[An(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 An($){if($ instanceof ArrayBuffer)return $;if($.buffer instanceof ArrayBuffer)return $.buffer;throw Error("Worker checkpoint must use an ArrayBuffer-backed view")}class PL{#$=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 DC($,U){let J={type:"run",protocolVersion:S4,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 KL($,U){let J={type:"resume",protocolVersion:S4,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 WL{#$=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 LC($,U){try{let J=$?.(U);if(J instanceof Promise)return J.then(()=>!1,()=>!0);return!1}catch{return!0}}function VC($){let U=$.operationRequest;return U.type==="wait-signal"||U.kind==="signal-wait"}function FC($,U,J){if(J!==void 0)try{QJ($,J)}catch(X){return X instanceof r0?"dropped-oversize":"dropped-invalid"}if(!O3($.record))return"dropped-invalid";let G=$.record;if(G.workflowId!==$.workflowId)return"dropped-invalid";if(U!==void 0)try{U(G)}catch{rX(G)}return"accepted-valid"}class BC{#$;#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 PC{#$;#U;#J;constructor($){this.#U=$.onLog,this.#J=$.maxProtocolMessageBytes,this.#$=new BC({floodWindowMs:$.floodWindowMs??YC,floodThreshold:$.floodThreshold??_C,strikeThreshold:$.strikeThreshold??jC,getNow:$.getNow??Date.now})}get hasSink(){return this.#U!==void 0}handle($,U,J){if(this.#$.recordArrival($)==="discard")return zC("forwarded-log flooding");if(typeof U.workflowId!=="string"||!J(U.workflowId))return null;let G=FC(U,this.#U,this.#J);if(this.#$.recordOutcome($,G)==="discard")return zC("repeated oversize/invalid forwarded logs");return null}forget($){this.#$.forget($)}}function zC($){let U=`Worker discarded for log abuse: ${$}`;return{targetCategory:"system",targetError:U,otherCategory:"system",otherError:U}}function KC($,U){return new PC({onLog:$?.onLog,maxProtocolMessageBytes:U,getNow:$?.getNow,floodWindowMs:$?.forwardedLogFloodWindowMs,floodThreshold:$?.forwardedLogFloodThreshold,strikeThreshold:$?.forwardedLogStrikeThreshold})}class ML{#$;#U;#J;constructor($,U,J){this.#$=$,this.#U=U,this.#J=J}validateHostToWorkerMessage($){try{return QJ($,this.#$),null}catch(U){return WC(U,{otherError:"Worker protocol send failed"})}}acceptWorkerMessage($,U){try{if(HC(U),QJ(U,this.#$),this.#U)this.#G($,U);return{accepted:!0,message:U}}catch(J){let G=Cn(U);return{accepted:!1,failure:WC(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!==S4)throw new N$("Worker protocol version mismatch");let J=this.#J.get($);if(!J)throw new N$("Worker message arrived outside an active turn");if((U.type==="log"?void 0:U.turnId)!==J.turnId||U.workflowId!==J.workflowId)throw new N$("Worker message did not match the active turn")}}function WC($,U){return{...U.targetWorkflowId===void 0?{}:{targetWorkflowId:U.targetWorkflowId},failureCategory:$ instanceof r0?"resource":"system",error:$ instanceof Error?$.message:String($),otherError:U.otherError}}function Cn($){if(typeof $!=="object"||$===null)return;let U=$.workflowId;return typeof U==="string"?U:void 0}class qL{#$=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 NL{#$;#U;#J;#G;#X;#Q;#Z;#Y;#_;#L;#V;#H;#j;#D;#F;#z;#P;constructor($,U){let{workflowTurnTimeoutMs:J,maxProtocolMessageBytes:G,requireProtocolVersion:X=!1,discardOnCancel:Q=!1,broadcastEvents:Z=!1}=U??{};if(this.#$=$,this.#U=new PL,this.#J=new WL,this.#Q=new FL,this.#Z=J,this.#Y=G,this.#_=X,this.#L=Q,this.#V=KC(U,G),this.#H=new qL(this.#Z,(Y)=>{this.#S(Y)}),this.#j=new ML(this.#Y,this.#_,this.#H),this.#D=new BL({pool:this.#$,ownership:this.#U,isDisposed:()=>this.#z,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.#B(Y,_)},emit:(Y)=>{this.#M(Y)}}),this.#F=null,this.#G=null,this.#X=null,this.#z=!1,this.#P=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.#F=$}startWorkflow($){this.#U.resetWorkflow($.workflowId),this.#Q.resetWorkflow($.workflowId);let U=DC($,this.#K());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=KL($,this.#K());this.#D.postResumeMessage(U,$,G);return}let J=this.#U.getParkedWorker($.workflowId);if(J){let G=KL($,this.#K());this.#D.resumeParkedWorkflow($,J,G);return}if(this.#U.consumeCancelled($.workflowId))return;if(!this.#z)this.#M({type:"failed",workflowId:$.workflowId,error:`No worker assigned for workflow: ${$.workflowId}`})}#K(){return{turnId:this.#P++,maxProtocolMessageBytes:this.#Y,hasLogSink:this.#V.hasSink}}cancelWorkflow($){let U=this.#U.getActiveWorker($);if(U){if(this.#U.markCancelled($),this.#L){this.#B(U,{targetWorkflowId:$,skipTarget:!0,otherCategory:"system",otherError:`Worker discarded during cancellation of workflow: ${$}`});return}let G={type:"cancel",workflowId:$};if(this.#_)G.protocolVersion=S4;U.postMessage(G),this.#q($);return}let J=this.#U.getParkedWorker($);if(!J)return;if(this.#U.markCancelled($),this.#U.deleteParked($),this.#L){this.#B(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.#z=!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.#F=null}async#A($,U){if(JC(U)){let Q=(Y)=>this.#U.getTargetWorker(Y)===$,Z=this.#V.handle($,U,Q);if(Z)this.#B($,Z);return}if(!this.#x($,U))return;this.#H.clear($);let J=this.#Q.beginCheckpointHandling(U),G=LC(this.#F,U),X=G instanceof Promise?await G:G;try{if(this.#C($,U))return;if(X)return;this.#R($,U,J)}finally{this.#Q.finishCheckpointHandling(U.workflowId,J,this.#U.isWorkflowClosed(U.workflowId))}}#C($,U){if(U.type!=="completed"&&U.type!=="failed")return!1;return this.#U.consumeCancelled(U.workflowId),this.#U.deleteParked(U.workflowId),this.#q(U.workflowId),this.#N($),this.#Q.forgetWorkflowIfClosed(U.workflowId,this.#U.isWorkflowClosed(U.workflowId)),!0}#R($,U,J){if(U.type!=="checkpoint"||!VC(U))return;if(this.#Q.wasResumedDuringCheckpointHandling(U.workflowId,J))return;if(this.#U.parkActive(U.workflowId,$))this.#$.release($)}#T($,U){this.#B($,{targetCategory:"system",targetError:`Worker crashed: ${U.message??"unknown error"}`,otherCategory:"system",otherError:`Worker crashed: ${U.message??"unknown error"}`})}#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.#B($,{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.#B(J,{targetWorkflowId:$,targetCategory:G.failureCategory,targetError:G.error,otherCategory:"system",otherError:`Worker discarded after protocol send failure for workflow: ${$}`}),!1;return this.#M({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.#B($,{...J.failure.targetWorkflowId===void 0?{}:{targetWorkflowId:J.failure.targetWorkflowId},targetCategory:J.failure.failureCategory,targetError:J.failure.error,otherCategory:"system",otherError:J.failure.otherError}),!1}#S($){this.#B($.worker,{targetWorkflowId:$.workflowId,targetCategory:"timeout",targetError:`Worker workflow turn timed out after ${this.#Z}ms`,otherCategory:"timeout",otherError:`Worker discarded after workflow turn timed out: ${$.workflowId}`})}#B($,U){let J=this.#U.workflowIdsForWorker($);if(J.length===0){this.#H.clear($),this.#V.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.#M({type:"failed",workflowId:G,error:X?U.targetError??U.otherError:U.otherError,failureCategory:X?U.targetCategory??U.otherCategory:U.otherCategory})}this.#H.clear($),this.#V.forget($),this.#J.detach($),this.#$.discard($)}#b($){if($.type==="signal:received"&&typeof $.workflowId==="string"){let U=this.#U.getTargetWorker($.workflowId);if(U)U.postMessage($)}}#M($){let U=this.#F?.($);if(U instanceof Promise)U.catch(()=>{})}}var MC=30000,qC=5000,NC=60000;function OC($){let U=Rn($?.ownership??"none");if(U!=="lease")return{ownershipMode:U,leaseTtlMs:MC,leaseRenewIntervalMs:qC,leaseWaitTimeoutMs:NC};let J=N6($?.leaseTtl,"options.leaseTtl")??MC,G=N6($?.leaseRenewInterval,"options.leaseRenewInterval")??qC,X=N6($?.leaseWaitTimeout,"options.leaseWaitTimeout")??NC;return Tn(J,G,X),{ownershipMode:U,leaseTtlMs:J,leaseRenewIntervalMs:G,leaseWaitTimeoutMs:X}}function Rn($){if($!=="none"&&$!=="lease")throw Error(`Unknown ownership posture "${String($)}". Expected 'none' or 'lease'.`);return $}function Tn($,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 OL($){return Object.entries($??{})}function A3($,U){return $}var AC=!1;function CC($){return En($,{bunEnv:typeof Bun<"u"?Bun.env:void 0,processEnv:typeof process<"u"?process.env:void 0})}function En($,U){if(U.bunEnv!==void 0)return U.bunEnv[$];if(U.processEnv!==void 0)return U.processEnv[$];return}function xn($){return $?.development===!0||CC("WEFT_DEV_WARNINGS")==="1"||CC("NODE_ENV")==="development"}function EC($){let J=$?.storage??void 0;if(J===void 0){if(!AC&&xn($))AC=!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 DL}if(!$?.compression)return J;return new _L(J,$.compression)}function xC($){return $?.interceptors?[...$.interceptors]:[]}function AL($,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 Sn($){return{retention:vG($?.retention,"options.retention"),retentionSweepIntervalMs:N6($?.retentionSweepInterval,"options.retentionSweepInterval")??jB,retentionSweepBatchSize:$?.retentionSweepBatchSize!==void 0?Math.max(1,Math.floor($.retentionSweepBatchSize)):HB}}function o0($,U){return $??U}function bn($){return{development:o0($?.development,!1),broadcastEvents:o0($?.broadcastEvents,!1)}}function vn($){return{checkpointHistory:o0($?.checkpointHistory,10),checkpointSizeWarningThreshold:o0($?.checkpointSizeWarningThreshold,65536),maxNestingDepth:o0($?.maxNestingDepth,10)}}function gn($){return{historyPolicy:lP($?.history,"options.history"),archiveAdapter:$?.archive??null,payloadSizePolicy:iP($?.payloadSize,"options.payloadSize")}}var RC=15000;function In($){let U=o0($?.detectSecondInstance,!1),J=U?N6($?.secondInstanceHeartbeatInterval,"options.secondInstanceHeartbeatInterval")??RC:RC;return{secondInstanceDetectionEnabled:U,secondInstanceHeartbeatIntervalMs:J}}function SC($,U,J){return{storage:$,getNow:J,resolveWorkflowServices:U?.resolveWorkflowServices??null,onLog:U?.onLog??null,...bn(U),...vn(U),...Sn(U),...gn(U),...In(U),...OC(U)}}function hn($){let U=yn($?.workflowExecutionMode),J=mn($,U);if(!J)return{mode:"inline",workerExecution:null};return kn(J)}function yn($){if($===void 0||$==="inline"||$==="worker")return $;throw Error('options.workflowExecutionMode must be "inline" or "worker" when provided')}function mn($,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 kn($){let U=TC($.workflowTurnTimeoutMs,"options.workerExecution.workflowTurnTimeoutMs",void 0)??QC,J=TC($.maxProtocolMessageBytes,"options.workerExecution.maxProtocolMessageBytes",void 0)??ZC;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 TC($,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 bC($){let{options:U,getNow:J,maxNestingDepth:G,development:X,broadcastEvents:Q,getRegistration:Z,getComposedWorkflowInterceptor:Y,resolveWorkflowType:_,registerCancelHandler:H,recordFinalizerState:D,getWorkflowServices:L,getLogSink:z}=$,B=hn(U);if(B.mode==="worker"){let S=new N3({workerUrl:B.workerExecution.workerUrl,concurrency:B.workerExecution.poolSize??4,smol:B.workerExecution.smol??!1}),I=z?.(),p={broadcastEvents:Q,requireProtocolVersion:B.requireProtocolVersion,discardOnCancel:B.discardOnCancel,workflowTurnTimeoutMs:B.workflowTurnTimeoutMs,maxProtocolMessageBytes:B.maxProtocolMessageBytes,getNow:J,...I!==void 0&&{onLog:I}};return{strategy:new NL(S,p),inlineStrategy:null}}let W=new VL({getRegistration:Z,getNow:J,maxNestingDepth:G,development:X,resolveWorkflowType:_,...UC({getComposedWorkflowInterceptor:Y,registerCancelHandler:H,recordFinalizerState:D,getWorkflowServices:L,getLogSink:z})});return{strategy:W,inlineStrategy:W}}function vC($){if(!$)return null;return new LL(new N3({workerUrl:$.workerUrl,concurrency:$.poolSize??4,smol:$.smol??!1}))}function gC($,U,J){return U?new XL($,U,J):null}var IC,fn=0,hC,un=new Set,C3=new FinalizationRegistry(($)=>{if(fn++,$.cleanupInterval!==null)clearInterval($.cleanupInterval),$.cleanupInterval=null;if($.secondInstanceDetectionInterval!==null)clearInterval($.secondInstanceDetectionInterval),$.secondInstanceDetectionInterval=null;if(!$.disposed&&wn()){if($.testToken!==void 0)un.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 wn(){if(IC!==void 0)return IC;return Bun.env.WEFT_DEV_WARNINGS==="1"||Bun.env.NODE_ENV==="development"}function yC(){let $=hC;return hC=void 0,$}function mC($){return typeof $==="function"&&typeof $.name==="string"&&"execute"in $&&typeof $.execute==="function"}function kC($){let U=T$($);return{processPendingUpdatesAfterInlineAdvance:(J)=>U.processPendingUpdatesAfterInlineAdvance(J),swallowPromiseRejection:(J)=>S6(J)}}function fC($,U){return function(){let G=$.deref();if(G===void 0){U.port1.close(),U.port2.close();return}V(G).queuedInlineWorkflowStartFlushScheduled=!1,S6(i8(V(G),kC(G)))}}async function uC($){await DN(V($),kC($))}function wC($,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);nK(X.updateCoordinator,(Q,Z)=>a(G).handleCleanupError(Q,Z))()}}function cC($){return function(){let J=$.deref();if(J===void 0)return null;let G=V(J);if(G.disposed)return null;return G.secondInstanceDetector}}function pC($){if($.cleanupInterval!==null)clearInterval($.cleanupInterval??void 0),$.cleanupInterval=null;if($.cleanupIntervalDisposalTracker!==null)$.cleanupIntervalDisposalTracker.disposed=!0,$.cleanupIntervalDisposalTracker.cleanupInterval=null,C3.unregister($.cleanupIntervalDisposalTracker),$.cleanupIntervalDisposalTracker=null}function R3($){$.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(),LN($),$.scheduler[Symbol.dispose](),$.strategy[Symbol.dispose](),$.activityWorkerDispatcher?.[Symbol.dispose](),$.activityWorkerDispatcher=null,$.inlineStrategy=null,pC($),$.retentionSweepInterval!==null)clearInterval($.retentionSweepInterval??void 0),$.retentionSweepInterval=null;$.nextRetentionSweepAt=null,cn($),pn($),$.handleCache.clear();for(let U of $.resultResolvers.values())U.reject(new p6);$.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 cn($){if($.secondInstanceDetectionInterval!==null)clearInterval($.secondInstanceDetectionInterval??void 0),$.secondInstanceDetectionInterval=null;if($.secondInstanceDetector!==null)$.secondInstanceDetector.stop(),$.secondInstanceDetector=null}function pn($){if($.leaseManager!==null)$.leaseManager.stop(),$.leaseManager=null}function dC($,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}E6(J,$.options.payloadSizePolicy.maxBytes,"finalizer state"),e4($,U,{conditions:[],operations:[{type:"put",key:F.finalizerState(U),value:M(J)}]})}var dn=1000;function lC($){let{storage:U,holderId:J,getNow:G,ttlMs:X,renewIntervalMs:Q,waitTimeoutMs:Z}=$,Y=$.acquirePollIntervalMs??dn,_=Q,H=!1,D=null,L=null,z=null,B=null,W=!1,S=null,I=$.delay??((Y$)=>new Promise((k$)=>setTimeout(k$,Y$)));function p(Y$){if(W)return;W=!0,$.onLeaseLost?.(Y$)}async function c(){let Y$=await U.get(F.leaseHolder()),k$=await U.get(F.leaseEpoch());return{epochRaw:k$,holderRaw:Y$,epoch:k$===null?null:qX(k$),holder:Y$===null?null:NX(Y$)}}async function h(Y$,k$,f$){let g6=G()+X,e1=AH({holderId:J,expiresAt:g6,epoch:f$}),LV=await $$(U,[{key:F.leaseEpoch(),expectedValue:Y$},{key:F.leaseHolder(),expectedValue:k$}],[{type:"put",key:F.leaseEpoch(),value:OH(f$)},{type:"put",key:F.leaseHolder(),value:e1}]);if(LV)D=f$,L=OH(f$),z=e1;return LV}async function m(){let{epochRaw:Y$,holderRaw:k$,epoch:f$,holder:g6}=await c();if(Y$!==null&&f$===null)throw new R8('the "lease:epoch" high-water mark is present but does not decode to a valid epoch');if(Y$===null&&k$!==null)throw new R8('a "lease:holder" record exists with no "lease:epoch" key (the lease protocol never deletes the epoch)');if(g6!==null&&G()<g6.expiresAt)return!1;let e1=(f$??0)+1;if(e1>=Number.MAX_SAFE_INTEGER)throw new R8(`the next ownership epoch (${e1}) is at or above the safe-integer ceiling and cannot be minted without bricking future boots`);return h(Y$,k$,e1)}async function u(){let Y$=G(),k$=Y$+Z,f$=null,g6=!0;for(;;){if(H)return;if(!g6&&G()>=k$)throw new OX(G()-Y$,f$);if(g6=!1,await m())return;let t1=await U.get(F.leaseHolder());if(f$=t1===null?null:NX(t1)?.holderId??null,G()>=k$)throw new OX(G()-Y$,f$);await I(Y)}}async function E$(){if(H||W||D===null||z===null)return;let Y$=G()+X,f$=AH({holderId:J,expiresAt:Y$,epoch:D}),g6;try{g6=await $$(U,[{key:F.leaseHolder(),expectedValue:z}],[{type:"put",key:F.leaseHolder(),value:f$}])}catch{let t1=NX(z)?.expiresAt??0;if(G()>=t1-_)p("renewal-unconfirmable");return}if(g6){z=f$;return}p("deposed")}function v6(){if(S!==null)return;S=E$().catch(()=>{}).finally(()=>{S=null})}function a1(){if(H||B!==null)return;B=setInterval(()=>{v6()},Q),B.unref?.()}function qx(){return L===null?null:L.slice()}function DV(){if(B!==null)clearInterval(B),B=null}async function Nx(){if(H=!0,DV(),S!==null)await S;if(z===null)return;try{if(await $$(U,[{key:F.leaseHolder(),expectedValue:z}],[{type:"delete",key:F.leaseHolder()}]))z=null}catch{}}function Ox(){H=!0,DV()}return{acquire:u,startRenewal:a1,renewOnce:E$,currentEpochBytes:qx,release:Nx,stop:Ox}}var ln=/^(?:0|[1-9]\d*)$/,nn=["wf:","op:","schedule:","ev:","sig:","upd:","idx:"];async function iC($){let U=await $.get(jj);if(U!==null){let J=new TextDecoder().decode(U);if(!ln.test(J))throw new A1(null,C1);let G=Number(J);if(!Number.isSafeInteger(G))throw new A1(null,C1);if(G!==C1)throw new A1(G,C1);return}for(let J of nn)for await(let G of $.scan(J,{limit:1}))throw new A1(null,C1);await $.put(jj,new TextEncoder().encode(String(C1)))}async function nC($,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 rn=new TextEncoder,on=new TextDecoder;function sn($){return rn.encode(JSON.stringify($))}async function T3($){try{await $()}catch{}}function an($){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 tn($){let U;try{U=JSON.parse(on.decode($))}catch{return null}if(typeof U!=="object"||U===null)return null;let J=U;return an(J)?J:null}var en="WeftSecondInstanceWarning",$r=10,rC=2;function oC($){let{storage:U,instanceId:J,getNow:G,intervalMs:X}=$,Q=$.warn??((c)=>process.emitWarning(c,en)),Z=X*(rC+1),Y=0,_=!1,H=!1,D=new Map,L=new Set;async function z(){let c=[];for await(let[h,m]of U.scan(F.livenessPrefix())){let u=tn(m);if(u!==null&&u.instanceId!==J)c.push({key:h,heartbeat:u})}return c}async function B(c,h){let m=h-Z*$r;for(let u of c)if(u.heartbeat.heartbeatAt<m)await T3(()=>U.delete(u.key))}function W(c){let h=new Set;for(let{key:m,heartbeat:u}of c){if(F.liveness(u.instanceId)!==m)continue;h.add(u.instanceId);let E$=D.get(u.instanceId),a1=E$!==void 0&&u.sequence>E$.sequence?E$.advances+1:0;if(D.set(u.instanceId,{sequence:u.sequence,advances:a1}),a1>=rC&&!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(!h.has(m))D.delete(m)}let S=!1;async function I(){if(H||S)return;S=!0;let c=!1;try{let h=G(),m=await z();if(!_)_=!0,await B(m,h);if(W(m),H)return;Y+=1;let u={instanceId:J,heartbeatAt:h,sequence:Y};c=!0,await T3(()=>U.put(F.liveness(J),sn(u)))}finally{if(S=!1,c&&H)await T3(()=>U.delete(F.liveness(J)))}}async function p(){H=!0,await T3(()=>U.delete(F.liveness(J)))}return{tick:I,stop:p}}function sC($,U){return function(){let G=$();if(G===null){if(U.secondInstanceDetectionInterval!==null)clearInterval(U.secondInstanceDetectionInterval),U.secondInstanceDetectionInterval=null;return}G.tick().catch(()=>{})}}var Ur=Symbol("engineParkedWorkflowCountForTesting"),Jr=Symbol("engineSignalWaiterCountForTesting"),Gr=Symbol("engineSleepResolverCountForTesting");class E3 extends EventTarget{static async create($){let U=new E3($);try{await iC(V(U).storage);for(let[G,X]of OL($.activities)){if(G!==X.name)throw new cU("activity",G,X.name);U.#K(X)}for(let[G,X]of OL($.workflows)){if(G!==X.name)throw new cU("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();KN(this),V(this).registrations=new Map,V(this).workflowTypesByHandler=new WeakMap;let U=EC($),J=$?.getNow??Date.now,G=SC(U,$,J),X=bC({options:$,getNow:J,maxNestingDepth:G.maxNestingDepth,development:G.development,broadcastEvents:G.broadcastEvents,getRegistration:V(this).registrations.get.bind(V(this).registrations),getComposedWorkflowInterceptor:()=>H6(V(this)),resolveWorkflowType:this.#F.bind(this),registerCancelHandler:(H,D)=>p8(V(this),H,D),recordFinalizerState:(H,D)=>dC(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=xC($),V(this).composedWorkflowInterceptor=void 0,V(this).composedActivityInterceptor=void 0,V(this).updateCoordinator=new VH(U),V(this).activityRegistry=new s2,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(iK(V(this).handleCache)),V(this).options=G,V(this).scheduler=new VG({storage:U,onTimerFired:(H)=>$D(V(this),H,this.#D()),getNow:J,commitTimerCleanup:(H)=>Z$(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=fC(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 LH(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:yC()},_=setInterval(wC(Q,Y),60000);Y.cleanupInterval=_,V(this).cleanupInterval=_,V(this).cleanupIntervalDisposalTracker=Y,C3.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=vC($?.activityExecution),V(this).strategy.onMessage(this.#z.bind(this)),V(this).alertManager=gC(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 p6;if($.inFlightLeaseAcquire!==null){await $.inFlightLeaseAcquire;return}if($.leaseManager!==null)return;X$($.storage,"conditionalBatch","ownership: 'lease'");let U=lC({storage:$.storage,holderId:crypto.randomUUID(),getNow:$.options.getNow,ttlMs:$.options.leaseTtlMs,renewIntervalMs:$.options.leaseRenewIntervalMs,waitTimeoutMs:$.options.leaseWaitTimeoutMs,onLeaseLost:(G)=>{if(G==="deposed"){C8($);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.",$M)}});$.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 p6}U.startRenewal()})();$.inFlightLeaseAcquire=J;try{await J}finally{if($.inFlightLeaseAcquire===J)$.inFlightLeaseAcquire=null}}#U(){let $=V(this);if($.disposed)return;let U=$.leaseManager;R3($),U?.release().catch(()=>{})}#J(){let $=V(this);if(!$.options.secondInstanceDetectionEnabled)return;let U=oC({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(sC(cC(G),J),$.options.secondInstanceHeartbeatIntervalMs);$.secondInstanceDetectionInterval=X,J.secondInstanceDetectionInterval=X}#G(){return B3(V(this))}#X(){P3(V(this))}#Q(){K3(V(this),{hasConfiguredRetention:()=>this.#G(),runRetentionSweep:()=>this.#Z(),setNextRetentionSweepAt:()=>this.#X()})}async#Z(){return W3(V(this),($,U)=>this.#_().handleCleanupError($,U),($)=>a6(V(this),$,this.#_()))}#Y(){return T$(this)}#_(){return a(this)}#L(){return Q3(this)}#V(){return e6(this)}#H(){return XJ(this)}#j(){return l0(this)}#D(){return L3(this)}#F($){return tX(V(this),$,this.#L())}get state(){let $=V(this).storage;return{execution:(U,J,G)=>new Q0($,F.stateExecution(U,J),G),workflow:(U,J,G)=>new Q0($,F.stateWorkflow(U,J),G)}}async#z($){return fA(V(this),$,this.#H())}#P($){return U1(V(this),$,this.#V())}register($){if(mC($))return this.#K($),A3(this);return ON(V(this),$,this.#L()),A3(this)}registerWorkflows($){for(let[U,J]of Object.entries($)){if(U!==J.name)throw new cU("workflow",U,J.name);this.register(J)}return A3(this)}addInterceptor($){V(this).interceptors.push($),V(this).composedWorkflowInterceptor=void 0,V(this).composedActivityInterceptor=void 0}#K($){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:AL($,U)}listWorkflowDefinitions(){return[...V(this).registrations.entries()].map(([$,U])=>AL($,U))}getActivityDefinition($){return V(this).activityRegistry.getDefinition($)}listActivityDefinitions(){return V(this).activityRegistry.listDefinitions()}async start($,U,J){if(E8(V(this)),J?.idempotencyKey!==void 0)return LD(V(this),$,U,J,this.#Y());return Y6(V(this),$,U,J,void 0,this.#Y())}async startOrSignal($,U,J,G){return E8(V(this)),VD(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 fX(V(this),$)}async list($,U){return OM(V(this),$,U)}async aggregate($,U){return PK(V(this),$,U)}getRetentionOverview(){return uA(V(this),($)=>UL(V(this),$))}async purge($){return uM(V(this),$,(U)=>a6(V(this),U,this.#_()))}async cancelAll($,U){return wM(V(this),$,U)}async retryFailedAll($,U){return cM(V(this),$,U)}async signalAll($,U,J,G){if(G===void 0)return nH(V(this),$,U,J);return nH(V(this),$,U,J,G)}async deleteAll($,U){return pM(V(this),$,(J)=>a6(V(this),J,this.#_()),U)}async tagAll($,U,J){return dM(V(this),$,U,J)}async untagAll($,U,J){return lM(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 wD(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 wD(V(this),$,U,J,G)}async getSchedule($){let U=G1($,"scheduleId"),J=await l1(V(this),U);return J?XO(J):null}async listSchedules($){return JO(V(this),$)}async pauseSchedule($){return QO(V(this),$)}async resumeSchedule($){return ZO(V(this),$)}async cancelSchedule($){return YO(V(this),$)}async updateSchedule($,U){return _O(V(this),$,U)}[RH]($){return nM(V(this),$)}[Ur](){return V(this).parkedInlineWorkflows.size}[Jr](){return V(this).signalWaiters.size}[Gr](){return V(this).sleepResolvers.size}async signal($,U,J,G){return fW(V(this),$,r$(U),J,{loadWorkflowState:(X)=>l(V(this),X),dispatchEvent:(X)=>this.dispatchEvent(X),broadcast:(X)=>this.#P(X),getComposedInterceptor:()=>H6(V(this)),resumeParkedInlineWorkflow:(X)=>S6(z3(V(this),X,this.#H()))},G)}async update($,U,J,G){return pW(V(this),$,r$(U),J,G,this.#j())}async query($,U,J){return nC(V(this),$,r$(U),J)}async getStreamChunks($,U,J){return MA(V(this),$,U,J)}async getOffload($,U){return HA(V(this),$,U)}async fork($,U){return E8(V(this)),WD(V(this),$,U,this.#Y())}async resume($){return E8(V(this)),sX(V(this),$,this.#Y())}async recoverAll($){if(await this.#$(),V(this).disposed)throw new p6;return await UW(V(this)),await GO(V(this)),KD(V(this),this.#Y(),$)}async completeAsyncActivity($,U){await XW(V(this),$,U,{feedOperationResult:(J,G)=>j6(V(this),J,G),finalizeTimeline:(J,G,X)=>b6(V(this),J,G,X)})}async failAsyncActivity($,U){await ZW(V(this),$,U,{feedOperationResult:(J,G,X)=>j6(V(this),J,G,X),finalizeTimeline:(J,G,X)=>b6(V(this),J,G,X)})}async cancel($){await AD(V(this),$,this.#_())}async suspend($){await vD(V(this),$,this.#_())}async timeout($){await CD(V(this),$,this.#_())}async get($){let U=await l(V(this),$);if(U?.status==="running"&&VN(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(F.checkpoint($));if(J===null)return null;return V$(J).step}async getAttributes($){return EM(V(this),$)}async setAttributes($,U){return xM(V(this),$,U)}async addTags($,...U){return SM(V(this),$,...U)}async removeTags($,...U){return bM(V(this),$,...U)}async getEvents($){return wA(V(this),$)}async*replayWorkflowFeed($,U,J){yield*PA(V(this),$,U,J)}async snapshotWorkflowFeedTail($,U){return KA(V(this),$,U)}subscribeWorkflowFeedCommits($,U,J){return WA(V(this),$,U,J)}async listCheckpoints($){return cA(V(this),$)}async getCheckpointAt($,U){return pA(V(this),$,U)}async getTimeline($){return dA(V(this),$)}async replayTo($,U){return lA(V(this),$,U)}async listReviews($){return bN(V(this),$)}async getReview($,U){return vN(V(this),$,U)}async submitReview($,U){return gN(V(this),$,U,{dispatchEvent:this.dispatchEvent.bind(this)})}async getUpdateResult($){return dW(V(this),$)}async submitCoordinatedUpdate($,U,J,G){return lW(V(this),$,U,J,G,this.#j())}[Symbol.dispose](){let $=V(this).leaseManager;R3(V(this)),$?.release()}async[Symbol.asyncDispose](){if(!V(this).disposed){let $=V(this).leaseManager;try{await uC(this)}finally{R3(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 $D(V(this),$,this.#D())}}var aC={kind:"public"},tC={http:!0,jsonRpcHttp:!0,jsonRpcStdio:!0,jsonRpcWebSocket:!0},Xr=j.object({token:j.string().min(1),result:j.unknown().optional()}),Qr=j.object({token:j.string().min(1),error:j.object({message:j.string(),name:j.string().optional()})}),eC=j.object({ok:j.literal(!0)});function Zr($){let U=Error($.error.message);if($.error.name!==void 0)U.name=$.error.name;return U}function $R($,U,J){if(J instanceof W8)W6($,{code:"NotFound",message:J.message,data:{resource:"async-activity",identifier:U}});if(J instanceof P8)W6($,C(J.message));throw J}var CL=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:Xr,outputSchema:eC,access:aC,producibleFaults:["NotFound","InvalidParams"],transports:tC,unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let J=U;try{await J.completeAsyncActivity($.token,$.result)}catch(G){$R(CL,$.token,G)}return{ok:!0}}}),RL=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:Qr,outputSchema:eC,access:aC,producibleFaults:["NotFound","InvalidParams"],transports:tC,unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{let J=U;try{await J.failAsyncActivity($.token,Zr($))}catch(G){$R(RL,$.token,G)}return{ok:!0}}});function UR($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}async function JR($,U){let J=await H$($,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 GR={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 JR($,J);return{token:G.token,..."result"in G?{result:G.result}:{}}},success:{kind:"json",status:200},shapeSuccess:($)=>UR($),shapeFault:R},XR={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 JR($,J);return{token:G.token,error:G.error}},success:{kind:"json",status:200},shapeSuccess:($)=>UR($),shapeFault:R};var Yr=`Field "filter.failureCategory" must be one of ${J8.join(", ")}`,QR='Field "filter.failureCategory" must be a string or an array of strings';function YR($){if($===void 0)return;if(typeof $==="string")return ZR($);if(Array.isArray($)){if(!$.every((U)=>typeof U==="string"))throw Error(QR);return $.map(ZR)}throw Error(QR)}function ZR($){if(l6($))return $;throw Error(Yr)}var _R=j.custom(($)=>typeof $==="string"),_r=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")}),x3=j.custom(($)=>typeof $==="string"||typeof $==="number"||typeof $==="boolean"),jr=j.object({key:j.string().min(1),value:_r.optional(),gt:x3.optional(),lt:x3.optional(),gte:x3.optional(),lte:x3.optional()}),jR=j.custom(l6),TL=j.object({gte:j.number().optional(),gt:j.number().optional(),lte:j.number().optional(),lt:j.number().optional()}),D6=j.object({status:j.union([_R,j.array(_R)]).optional(),type:j.string().optional(),tags:j.array(j.string()).optional(),attributes:j.array(jr).optional(),limit:j.number().int().min(0).optional(),offset:j.number().int().min(0).optional(),idPrefix:j.string().optional(),failureCategory:j.union([jR,j.array(jR)]).optional(),createdAt:TL.optional(),updatedAt:TL.optional(),executionDeadline:TL.optional()}),G4=j.object({dryRun:j.boolean().optional(),confirmationToken:j.string().min(1).max(r2).optional(),requestId:j.string().min(1).max(O1).optional(),bulkConcurrency:j.number().int().min(1).optional()}),X4={kind:"scoped",scopes:{kind:"anyOf",scopes:["workflows:admin"]}};function U$($){return $ instanceof Error?$.message:String($)}function DR($){return{code:"Unprocessable",message:$,data:{reason:$}}}function Q4($){return{code:"EngineFailure",message:$,data:{}}}async function L6($,U){try{let J=await q4($,U);return J.trim()===""?void 0:JSON.parse(J)}catch(J){if(t(J))throw J;throw C("Invalid JSON body")}}function Hr($){if(typeof $==="string"||typeof $==="boolean")return!0;if(typeof $==="number")return Number.isFinite($);return Array.isArray($)&&$.every((U)=>typeof U==="string")}function Dr($){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(!Hr(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 Lr($){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 Vr($){if($===void 0)return;if(typeof $==="string")return $;throw Error('Field "filter.type" must be a string')}function Fr($){if($===void 0)return;return D$($,'Field "filter.tags"')}function HR($,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 zr=[($,U)=>{let J=Lr(U.status);if(J!==void 0)$.status=J},($,U)=>{let J=Vr(U.type);if(J!==void 0)$.type=J},($,U)=>{let J=Fr(U.tags);if(J!==void 0)$.tags=J},($,U)=>{if(U.attributes!==void 0)$.attributes=Dr(U.attributes)},($,U)=>{let J=HR(U.limit,"limit");if(J!==void 0)$.limit=J},($,U)=>{let J=HR(U.offset,"offset");if(J!==void 0)$.offset=J},($,U)=>{let J=U.idPrefix;if(typeof J==="string")$.idPrefix=J},($,U)=>{let J=YR(U.failureCategory);if(J!==void 0)$.failureCategory=J},($,U)=>{let J=s0(U.createdAt);if(J!==void 0)$.createdAt=J},($,U)=>{let J=s0(U.updatedAt);if(J!==void 0)$.updatedAt=J},($,U)=>{let J=s0(U.executionDeadline);if(J!==void 0)$.executionDeadline=J}];function V6($){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 zr)Q(X,G);return X}var Br=["gte","gt","lte","lt"];function s0($){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 Br){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 b3($){let U={};return Pr(U,$),Wr(U,$),Mr(U,$),U}function Pr($,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(Kr);if(U.limit!==void 0)$.limit=U.limit;if(U.offset!==void 0)$.offset=U.offset}function Kr($){let U={key:$.key};if($.value!==void 0)U.value=$.value;if($.gt!==void 0)U.gt=S3($.gt,"gt");if($.lt!==void 0)U.lt=S3($.lt,"lt");if($.gte!==void 0)U.gte=S3($.gte,"gte");if($.lte!==void 0)U.lte=S3($.lte,"lte");return U}function S3($,U){if(Array.isArray($))throw Error(`Field "filter.attributes[].${U}" must be a string, number, or boolean`);return $}function Wr($,U){if(U.idPrefix!==void 0)$.idPrefix=U.idPrefix;if(U.failureCategory!==void 0)$.failureCategory=U.failureCategory}function Mr($,U){let J=s0(U.createdAt);if(J!==void 0)$.createdAt=J;let G=s0(U.updatedAt);if(G!==void 0)$.updatedAt=G;let X=s0(U.executionDeadline);if(X!==void 0)$.executionDeadline=X}function Z4($){if($===void 0)return{};let U=Nr($),J=Or(U,"dryRun"),G=LR(U,"confirmationToken"),X=Cr(U),Q=Ar(U,"bulkConcurrency");return{...J===void 0?{}:{dryRun:J},...G===void 0?{}:{confirmationToken:G},...X===void 0?{}:{requestId:X},...Q===void 0?{}:{bulkConcurrency:Q}}}function Y4($,U){let J=qr(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 qr($){if($.method==="unauthenticated")return{method:"unauthenticated"};return{method:$.method,...$.subject===void 0?{}:{subject:$.subject}}}function Nr($){if(typeof $!=="object"||$===null||Array.isArray($))throw Error("Request body must be a JSON object");return $}function Or($,U){let J=$[U];if(J===void 0)return;if(typeof J==="boolean")return J;throw Error(`Field "${U}" must be a boolean`)}function Ar($,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 LR($,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 Cr($){let U=LR($,"requestId");if(U===void 0)return;if(U.length<=O1)return U;throw Error(`Field "requestId" must be at most ${O1} characters`)}function _4($){let U;if($.tags!==void 0)try{U=D$($.tags,'Field "filter.tags"')}catch(G){throw C(U$(G))}let J=b3(U===void 0?$:{...$,tags:U});try{s6(J)}catch(G){throw C(U$(G))}return J}function F6($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}var Rr=D6.merge(G4),Tr=j.unknown(),VR=q({name:"weft.workflows.bulk.cancel",mcpExposable:!1,summary:"Cancel workflows in bulk",destructive:!0,tags:["Workflows"],inputSchema:Rr,outputSchema:Tr,access:X4,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=_4($),Q=Y4($,J);try{if(Q.dryRun===!0)return await G.cancelAll(X,Q);return await G.cancelAll(X,Q)}catch(Z){if(Z instanceof d$)throw C(Z.message);throw Q4(U$(Z))}}}),FR={method:"POST",path:"/v1/workflows/bulk/cancel",pathParamNames:[],operationName:"weft.workflows.bulk.cancel",inputSources:{},extractInput:async($,U,J)=>{let G=await L6($,J);try{return{...V6(G),...Z4(G)}}catch(X){throw C(U$(X))}},success:{kind:"json",status:200},shapeSuccess:($)=>F6($),shapeFault:R};var Er=D6.merge(G4),xr=j.unknown(),zR=q({name:"weft.workflows.bulk.delete",mcpExposable:!1,summary:"Delete terminal workflows in bulk",destructive:!0,tags:["Workflows"],inputSchema:Er,outputSchema:xr,access:X4,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=_4($),Q=Y4($,J);try{if(Q.dryRun===!0)return await G.deleteAll(X,Q);return await G.deleteAll(X,Q)}catch(Z){if(Z instanceof d$)throw C(Z.message);if(Z instanceof d4)throw DR(Z.message);throw Q4(U$(Z))}}}),BR={method:"DELETE",path:"/v1/workflows/bulk",pathParamNames:[],operationName:"weft.workflows.bulk.delete",inputSources:{},extractInput:async($,U,J)=>{let G=await L6($,J);try{return{...V6(G),...Z4(G)}}catch(X){throw C(U$(X))}},success:{kind:"json",status:200},shapeSuccess:($)=>F6($),shapeFault:R};var Sr=j.object({filter:D6.optional(),tags:j.array(j.string()),operation:j.enum(["add","remove"])}).merge(G4),br=j.unknown(),PR=q({name:"weft.workflows.bulk.tags",mcpExposable:!1,summary:"Add or remove workflow tags in bulk",destructive:!0,tags:["Workflows"],inputSchema:Sr,outputSchema:br,access:X4,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=_4($.filter??{}),Q;try{Q=D$($.tags,'Field "tags"')}catch(Y){throw C(U$(Y))}let Z=Y4($,J);try{return await vr(G,X,Q,$.operation,Z)}catch(Y){if(Y instanceof d$)throw C(Y.message);throw Q4(U$(Y))}}});async function vr($,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 KR={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 L6($,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={...V6(X)}}catch(_){throw C(U$(_))}let Z;try{Z=D$(X.tags,'Field "tags"')}catch(_){throw C(U$(_))}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,...Z4(X)}},success:{kind:"json",status:200},shapeSuccess:($)=>F6($),shapeFault:R};var gr=D6.merge(G4),Ir=j.unknown(),WR=q({name:"weft.workflows.bulk.retryfailed",mcpExposable:!1,summary:"Retry failed workflows in bulk",destructive:!0,tags:["Workflows"],inputSchema:gr,outputSchema:Ir,access:X4,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=_4($),Q=Y4($,J);try{if(Q.dryRun===!0)return await G.retryFailedAll(X,Q);return await G.retryFailedAll(X,Q)}catch(Z){if(Z instanceof d$)throw C(Z.message);throw Q4(U$(Z))}}}),MR={method:"POST",path:"/v1/workflows/bulk/retry-failed",pathParamNames:[],operationName:"weft.workflows.bulk.retryfailed",inputSources:{},extractInput:async($,U,J)=>{let G=await L6($,J);try{return{...V6(G),...Z4(G)}}catch(X){throw C(U$(X))}},success:{kind:"json",status:200},shapeSuccess:($)=>F6($),shapeFault:R};var hr=D6.extend({name:j.string().min(1),payload:j.unknown().optional()}).merge(G4),yr=j.unknown(),qR=q({name:"weft.workflows.bulk.signal",mcpExposable:!1,summary:"Signal workflows in bulk",destructive:!0,tags:["Workflows"],inputSchema:hr,outputSchema:yr,access:X4,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=_4($),Q=Y4($,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 d$)throw C(Z.message);throw Q4(U$(Z))}}}),NR={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 L6($,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={...V6(X)}}catch(Y){throw C(U$(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},...Z4(X)}},success:{kind:"json",status:200},shapeSuccess:($)=>F6($),shapeFault:R};function j4($,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 v3($){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 mr=j.object({scheduleId:j.string().min(1)}),kr=j.undefined(),OR=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:mr,outputSchema:kr,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 j4($.scheduleId,G)}}}),AR={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 H4($){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 fr(G,U.workflowId,$.mapErrorToFault)}}})}function D4($){return{workflowId:$.id??""}}function fr($,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 ur=j.object({workflowId:j.string().min(1)}),wr=j.undefined(),CR=H4({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:ur,outputSchema:wr,producibleFaults:["NotFound"],invoke:async({input:$,engine:U})=>{await U.cancel($.workflowId);return}}),RR={method:"DELETE",path:"/v1/workflows/:id",pathParamNames:["id"],operationName:"weft.workflows.cancel",inputSources:{workflowId:{kind:"path",pathParam:"id"}},extractInput:async($,U)=>D4(U),success:{kind:"empty",status:204},shapeFault:R};var cr=new Set(["skip","queue","cancel-running","allow"]),pr=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()}),dr=j.object({id:j.string()});function lr($){if(typeof $.type!=="string"||$.type.length===0)throw C("Missing required field: type");return{type:$.type,spec:v3($)}}function ir($){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"||!rr($.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 nr($){let{type:U,spec:J}=lr($),{id:G,overlap:X,backfill:Q,jitter:Z}=ir($);return{type:U,spec:J,id:G,overlap:X,backfill:Q,jitter:Z}}var TR=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:pr,outputSchema:dr,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=nr($),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 j4(G.id??"",Q)}}});function rr($){return cr.has($)}var ER={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 H$($,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 or="stream:token",EL=[o6.type,R4.type,R6.type,T4.type,T6.type,O0.type,A0.type,E4.type,GX.type,D0.type,XX.type,L0.type,QX.type,B0.type,ZX.type,V0.type,C6.type,G6.type,F0.type,z0.type,P0.type,r6.type,K0.type,W0.type,t4.type,_0.type,M0.type,q0.type,N0.type,YX.type,_X.type],gP$=[...EL,or];var sr=/^(?:-1|\d+)$/;function ZJ($){if(!sr.test($))return null;let U=Number($);if(!Number.isSafeInteger(U)||U<-1)return null;return U}var ar="-1",tr=1000,er=j.enum(EL),$o=j.string().regex(/^(?:-1|\d+)$/,"Invalid cursor").refine(($)=>ZJ($)!==null,{message:"Invalid cursor"}),Uo=j.object({workflowId:j.string().min(1).optional(),kind:er.optional(),fromCursor:$o.optional()}),Jo=j.object({subscriptionId:j.string(),cursor:j.string()}),Go=j.object({kind:j.string(),workflowId:j.string().optional(),sequence:j.number(),cursor:j.string(),emittedAtMs:j.number(),payload:j.unknown()}),g3=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:Uo,outputSchema:Jo,producibleFaults:["UnsupportedTransport","InvalidParams"],eventSchema:Go,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??ar;if(ZJ(G)===null)W6(g3,C("Invalid cursor"));let X=_o(U,J),Q=new AbortController,Z=X.subscribe({...$.fromCursor===void 0?{}:{fromCursor:$.fromCursor},signal:Q.signal,replayLimit:tr,filterEnvelope:(Y)=>Qo(Y,$),createReplayLimitError:(Y,_)=>Xo(Y,_)});return{envelope:{subscriptionId:`sub_${crypto.randomUUID()}`,cursor:G},iterable:Z,close:async()=>{Q.abort()}}}});function Xo($,U){return C(`Fleet event replay window is ${$} matching events; maximum is ${U}. Supply a more recent fromCursor.`)}function Qo($,U){if(!Zo($,U.workflowId))return!1;if(!Yo($,U.kind))return!1;return!0}function Zo($,U){if(U===void 0)return!0;return $.workflowId===U}function Yo($,U){if(U===void 0)return!0;return $.kind===U}function _o($,U){if(typeof $==="object"&&$!==null&&"fleetFeed"in $){let J=$.fleetFeed;if(jo(J))return J}W6(g3,{code:"UnsupportedTransport",message:"Fleet event subscription requires a WebSocket fleet event feed",data:{transport:U,supported:["jsonRpcWebSocket"]}})}function jo($){if(typeof $!=="object"||$===null)return!1;return typeof $.subscribe==="function"}var Ho=j.object({workflowId:j.string().min(1),fromStep:j.unknown().optional()}),Do=j.object({id:j.string()});function Lo($){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 Vo($){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 xR=q({name:"weft.workflows.fork",mcpExposable:!1,summary:"Fork a workflow from a checkpoint",destructive:!1,tags:["Workflows"],inputSchema:Ho,outputSchema:Do,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=Lo($);try{return{id:(await J.fork($.workflowId,G)).id}}catch(X){Vo(X)}}}),SR={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 q4($,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 Fo=j.object({workflowId:j.string().min(1),step:j.number().int().nonnegative()}),zo=j.unknown(),bR=q({name:"weft.workflows.checkpoints.get",mcpExposable:!1,summary:"Get a specific checkpoint by step number",destructive:!1,tags:["Checkpoints"],inputSchema:Fo,outputSchema:zo,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 Bo($,U){return y6(U,$,200)}function Po($){return R($)}var vR={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)=>Bo($,U),shapeFault:Po};var Ko=j.object({}),gR=j.unknown().refine(($)=>typeof $==="object"&&$!==null&&!Array.isArray($),{message:"expected an object"}),Wo=j.object({registryVersion:j.literal(1),workflows:gR,activities:gR}).strict(),IR=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:Ko,outputSchema:Wo,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 vz($)}catch(U){if(U instanceof hU)console.error(`[weft.system.registry] ${U.message}`,{entityKind:U.entityKind,entityName:U.entityName,direction:U.direction});throw U}}}),hR={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 Mo=j.object({}),qo=j.unknown(),yR=q({name:"weft.retention.get",mcpExposable:!1,summary:"Get retention policy overview",destructive:!1,tags:["System"],inputSchema:Mo,outputSchema:qo,access:{kind:"public"},transports:{http:!0,jsonRpcHttp:!0,jsonRpcWebSocket:!0,jsonRpcStdio:!0},unknownKeyPolicy:{http:"strip",jsonRpc:"reject"},invoke:async({engine:$})=>{return $.getRetentionOverview()}});function No($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}function Oo($){return R($)}var mR={method:"GET",path:"/v1/retention",pathParamNames:[],operationName:"weft.retention.get",inputSources:{},extractInput:async()=>({}),success:{kind:"json",status:200},shapeSuccess:($)=>No($),shapeFault:Oo};var Ao=j.object({workflowId:j.string().min(1),reviewId:j.string().min(1)}),Co=j.unknown(),kR=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:Ao,outputSchema:Co,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 Ro($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}function To($){return R($)}var fR={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:($)=>Ro($),shapeFault:To};var Eo=j.object({scheduleId:j.string().min(1)}),xo=j.unknown(),uR=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:Eo,outputSchema:xo,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 So($){return R($)}var wR={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:So};var bo=/^-?\d+$/;function I3($,U){if($===null||$===void 0)return{};if($.trim().length===0)return{error:`Invalid ${U}: ${$}`};if(!bo.test($))return{error:`Invalid ${U}: ${$}`};let J=Number($);if(!Number.isSafeInteger(J)||J<-1)return{error:`Invalid ${U}: ${$}`};return{value:J}}var cR=new TextEncoder;function pR($){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 h3($,U){return new ReadableStream({start(J){for(let G of $){let X=U(G);if(X===null)continue;J.enqueue(cR.encode(pR({id:String(G.sequence),event:"token",data:X})))}J.enqueue(cR.encode(pR({event:"done",data:""}))),J.close()}})}var y3={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"};var vo=j.object({workflowId:j.string().min(1),key:j.string().min(1),after:j.unknown().optional()}),dR=q({name:"weft.workflows.streams.chunks",mcpExposable:!1,summary:"Read stored stream chunks for a workflow stream key",destructive:!1,tags:["Streams"],inputSchema:vo,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=I3(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 go($){if($.code==="InvalidParams")return j$($.message,400);if($.code==="EngineFailure")return j$("Internal server error",500);return j$($.message,y$[$.code])}function Io($,U){if((U.headers.get("Accept")??"").includes("text/event-stream"))return new Response(h3($.chunks,(G)=>JSON.stringify({sequence:G.sequence,value:G.value})),{status:200,headers:y3});return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}var lR={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:Io,shapeFault:go};var ho=j.object({}),yo=j.unknown();function xL($){return q({name:"weft.system.metrics",mcpExposable:!1,summary:"Get JSON-shaped system metrics",destructive:!1,tags:["Observability"],inputSchema:ho,outputSchema:yo,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 EK$=xL();function iR(){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:q6}}function nR($){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 rR($){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 SL($){if($===null||typeof $!=="object")return!1;let U=$;return typeof U.operationId==="string"&&(U.status==="completed"||U.status==="failed")&&typeof U.resolvedAt==="number"}function oR($){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 sR($,U){await $.delete(F.operationDeadLetter(U))}function bL($){if($.lastQueuedAt===void 0||$.lastDispatchedAt===void 0)return;return Math.max(0,$.lastDispatchedAt-$.lastQueuedAt)}function vL($,U){let J=$.startedAt??$.lastDispatchedAt;if(J===void 0)return;return Math.max(0,U-J)}function aR($,U){let J=$.lastHeartbeatAt??$.startedAt??$.lastDispatchedAt??$.deadline;if(J===void 0)return;return Math.max(0,U-J)}var mo=60000,ko=60000,fo=3,uo=50,tR=200,wo=1000,co=j.enum(["stuck-queued","stale-inflight","retry-storm","all-workers-at-capacity","dead-lettered"]),po=j.object({kind:co,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(),lo=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(po),summary:lo,limit:j.number().int().min(1).max(tR)}).strict(),no=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(mo),staleHeartbeatAfterMs:j.number().int().nonnegative().default(ko),retryStormMinimumAttempts:j.number().int().min(1).default(fo),limit:j.number().int().min(1).max(tR).default(uo)}),ro=j.object({operationId:j.string().min(1)}),oo=j.object({ok:j.literal(!0)}).strict(),so={http:!0,jsonRpcHttp:!1,jsonRpcWebSocket:!1,jsonRpcStdio:!1};function gL($={}){return q({name:"weft.tasks.diagnostics",mcpExposable:!1,summary:"Get bounded task latency and stuck-work diagnostics",destructive:!1,tags:["Observability"],inputSchema:no,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 ao({engine:J,input:U,currentTime:G,registry:$.registry,taskQueue:$.taskQueue})}})}var eR=gL(),$T=q({name:"weft.tasks.diagnostics.deadletters.clear",mcpExposable:!1,summary:"Clear a task-result dead-letter diagnostic entry",destructive:!0,tags:["Observability"],inputSchema:ro,outputSchema:oo,access:{kind:"scoped",scopes:{kind:"anyOf",scopes:["system:admin"]}},producibleFaults:[],discoverable:!0,transports:so,unknownKeyPolicy:{http:"reject",jsonRpc:"reject"},invoke:async({input:$,engine:U})=>{return await sR(U.storage,$.operationId),{ok:!0}}});async function ao({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(js(Z,D.kind),Q.length<U.limit)Q.push(D)};for await(let D of to($)){if(!m3(D,U))continue;if(_.add(D.operationId),D.queue!==void 0)Y.add(D.queue);Xs(D,H)}for await(let D of eo($)){if(!m3(D,U))continue;Y.add(D.queue),Js(D,U,J,H)}for await(let D of $s($)){if(!m3(D,U))continue;if(_.has(D.operationId))continue;Y.add(D.queue),Gs(D,U,J,H)}for await(let D of Us($,U)){if(!m3(D,U))continue;if(D.queue!==void 0)Y.add(D.queue);IL(D,"resolved",U,H)}return Qs({registry:G,taskQueue:X,input:U,queues:Y,addItem:H}),{items:Q,summary:Z,limit:U.limit}}async function*to($){for await(let[,U]of $.storage.scan(F.operationDeadLetterPrefix())){let J=N(U);if(oR(J))yield J}}async function*eo($){for await(let[,U]of $.storage.scan("op:queued:")){let J=N(U);if(nR(J))yield J}}async function*$s($){for await(let[,U]of $.storage.scan("op:inflight:")){let J=N(U);if(rR(J))yield J}}async function*Us($,U){if(U.operationId!==void 0){let J=await $.storage.get(F.operationResolved(U.operationId));if(J===null)return;let G=N(J);if(SL(G))yield G;return}for await(let[,J]of $.storage.scan(F.operationResolvedByTimePrefix(),{limit:wo,reverse:!0})){let G=N(J);if(SL(G))yield G}}function Js($,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`]});IL($,"queued",U,G)}function Gs($,U,J,G){let X=aR($,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:bL($),executionLatencyMs:vL($,J),heartbeatAgeMs:X,lastRequeueReason:$.lastRequeueReason,evidence:[`Worker "${$.workerId}" has not sent a heartbeat for ${X}ms on queue "${$.queue}"`]});IL($,"inflight",U,G)}function Xs($,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 IL($,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:bL($),executionLatencyMs:"resolvedAt"in $?vL($,$.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 Qs({registry:$,taskQueue:U,input:J,queues:G,addItem:X}){if($===void 0||U===void 0)return;let Q=Zs($),Z=Ys(J,G,Q);for(let Y of Z){let _=_s(Y,Q,U);if(_===null)continue;X(_)}}function Zs($){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 Ys($,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 _s($,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 m3($,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 js($,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 k3($){return $===null||$.length===0?void 0:Number($)}var UT={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:k3(U.searchParams.get("staleQueuedAfterMs")),staleHeartbeatAfterMs:k3(U.searchParams.get("staleHeartbeatAfterMs")),retryStormMinimumAttempts:k3(U.searchParams.get("retryStormMinimumAttempts")),limit:k3(U.searchParams.get("limit"))}},success:{kind:"json",status:200},shapeSuccess:($)=>new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}}),shapeFault:R},JT={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 Hs=j.object({updateId:j.string().min(1)}),Ds=j.unknown(),GT=q({name:"weft.updates.result.get",mcpExposable:!1,summary:"Get the result of an update request",destructive:!1,tags:["Updates"],inputSchema:Hs,outputSchema:Ds,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 Ls($){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 Vs($){return R($)}var XT={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:($)=>Ls($),shapeFault:Vs};var Fs=j.object({workflowId:j.string().min(1)}),zs=j.unknown(),QT=q({name:"weft.workflows.attributes.get",mcpExposable:!1,summary:"Get workflow attributes by id",destructive:!1,tags:["Attributes"],inputSchema:Fs,outputSchema:zs,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 Bs($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}function Ps($){return R($)}var ZT={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:($)=>Bs($),shapeFault:Ps};var Ks=j.object({workflowId:j.string().min(1)}),Ws=j.unknown(),YT=q({name:"weft.workflows.events.list",mcpExposable:!1,summary:"Get workflow events by id",destructive:!1,tags:["Events"],inputSchema:Ks,outputSchema:Ws,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 Ms($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}function qs($){return R($)}var _T={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:($)=>Ms($),shapeFault:qs};var Ns=j.object({workflowId:j.string().min(1)}),Os=j.unknown(),jT=q({name:"weft.workflows.result.get",mcpExposable:!1,summary:"Get workflow result by id",destructive:!1,tags:["Workflows"],inputSchema:Ns,outputSchema:Os,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 As($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}function Cs($){if($.code==="Timeout")return j$("Timeout waiting for workflow result",408);return R($)}var HT={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:($)=>As($),shapeFault:Cs};var Rs=j.object({workflowId:j.string().min(1)}),Ts=j.unknown(),DT=q({name:"weft.workflows.timeline.get",mcpExposable:!1,summary:"Get the structured execution timeline for a workflow",destructive:!1,tags:["Checkpoints"],inputSchema:Rs,outputSchema:Ts,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 Es($,U){return y6(U,$,200)}function xs($){return R($)}var LT={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)=>Es($,U),shapeFault:xs};var Ss=j.object({workflowId:j.string().min(1)}),bs=j.unknown(),VT=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:Ss,outputSchema:bs,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 vs($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}var FT={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:($)=>vs($),shapeFault:R};var gs=j.object({workflowId:j.string().min(1)}),Is=j.unknown(),zT=q({name:"weft.workflows.checkpoints.list",mcpExposable:!1,summary:"List checkpoint history for a workflow",destructive:!1,tags:["Checkpoints"],inputSchema:gs,outputSchema:Is,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 hs($,U){return y6(U,$,200)}function ys($){return R($)}var BT={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)=>hs($,U),shapeFault:ys};var ms=j.enum(["pending","completed"]),ks=j.object({status:ms.optional(),workflowId:j.string().min(1).optional(),reviewType:j.string().min(1).optional()}),PT=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()}),fs=PT.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()}),us=j.union([PT,fs]),ws=j.object({items:j.array(us)}),KT=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:ks,outputSchema:ws,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 cs($){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 ps($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}var WT={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($)=>cs($),success:{kind:"json",status:200},shapeSuccess:($)=>ps($),shapeFault:q6};var ds=new Set(["active","paused","cancelled"]);function ls($){return ds.has($)}var is=j.object({status:j.unknown().optional(),workflowType:j.unknown().optional(),limit:j.unknown().optional(),offset:j.unknown().optional()}),ns=j.unknown();function rs($,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"||!ls(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 os($,U){if(U.workflowType!==void 0){if(typeof U.workflowType!=="string")throw C('Query parameter "workflowType" must be a string');$.workflowType=U.workflowType}}function ss($,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 as($){let U={};return rs(U,$),os(U,$),ss(U,$),U}var MT=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:is,outputSchema:ns,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=as($);return J.listSchedules(G)}});function ts($){return R($)}var qT={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:ts};var es=j.object({}),$a=j.enum(["priority","fifo","lifo"]),Ua=j.object({queue:j.string(),backlog:j.number(),oldestEnqueuedAt:j.number().nullable(),oldestQueuedAgeMs:j.number().nullable(),waitingPollers:j.number(),schedulingPolicy:$a,inFlight:j.number(),connectedWorkers:j.number()}),Ja=j.object({items:j.array(Ua)});function hL($){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:es,outputSchema:Ja,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:Za({now:X,workerSummaries:Q,queueEntries:Z,schedulingPolicy:J.schedulingPolicy})}}})}function Ga($){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 Xa={inFlight:0,connectedWorkers:0};function Qa($){let{queue:U,now:J,queueEntry:G,fallbackSchedulingPolicy:X}=$,Q=$.workerLoad??Xa,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 Za($){let{now:U,workerSummaries:J,queueEntries:G,schedulingPolicy:X}=$,Q=Ga(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(Qa({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 NT=hL();function OT(){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:q6}}var Ya=j.object({}),_a=j.enum(["least-loaded","round-robin","fair-share"]),AT=j.enum(["active","draining","drained"]),yL=j.lazy(()=>j.union([j.null(),j.boolean(),j.number(),j.string(),j.array(yL),j.record(j.string(),yL)])),ja=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(),yL),health:AT,deploymentName:j.string().optional(),buildId:j.string().optional(),runtimeVersion:j.string().optional(),gitSha:j.string().optional()}),Ha=j.object({deploymentName:j.string().nullable(),buildId:j.string().nullable(),runtimeVersion:j.string().nullable(),gitSha:j.string().nullable(),health:AT,workers:j.number(),activeWorkers:j.number(),drainingWorkers:j.number(),drainedWorkers:j.number(),inFlight:j.number(),oldestStartedAt:j.number().nullable()}),Da=j.object({items:j.array(ja),deployments:j.array(Ha),routingPolicy:_a});function mL($){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:Ya,outputSchema:Da,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 CT=mL();function RT(){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:q6}}var TT=j.custom(($)=>typeof $==="string"),ET=j.custom(($)=>typeof $==="string"),YJ=j.custom(($)=>{if(typeof $==="string"||typeof $==="number"||typeof $==="boolean")return!0;return Array.isArray($)&&$.every((U)=>typeof U==="string")}),La=j.object({key:j.string().min(1),value:YJ.optional(),gt:YJ.optional(),lt:YJ.optional(),gte:YJ.optional(),lte:YJ.optional()}),kL=j.object({gte:j.number().optional(),gt:j.number().optional(),lte:j.number().optional(),lt:j.number().optional()}),Va=j.union([j.string(),j.array(j.string()).min(1)]).refine(($)=>Array.isArray($)?$.every((U)=>U==="failureCategory"):$==="failureCategory",{message:'include must be "failureCategory"'}),Fa=j.object({status:j.union([TT,j.array(TT)]).optional(),type:j.string().optional(),tags:j.array(j.string()).optional(),attributes:j.array(La).optional(),limit:j.number().int().min(1).max(1000).optional(),offset:j.number().int().min(0).optional(),idPrefix:j.string().optional(),createdAt:kL.optional(),updatedAt:kL.optional(),executionDeadline:kL.optional(),failureCategory:j.union([ET,j.array(ET)]).optional(),include:Va.optional()}),za=j.unknown(),xT=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:Fa,outputSchema:za,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=D$(X.tags,"tags")}catch(Y){throw fL(Y)}let Z;try{Z=rU({...X,...Q!==void 0?{tags:Q}:{}})}catch(Y){if(Y instanceof nU)throw fL(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 O6)throw fL(Y);throw Y}}});function fL($){let U=$ instanceof Error?$.message:String($);return{code:"Unprocessable",message:U,data:{reason:U}}}function Ba($){let U=new URL($.url),J=oG(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 Pa($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}function Ka($){if($.code==="Unprocessable")return j$($.message,400);return R($)}var ST={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($)=>Ba($),success:{kind:"json",status:200},shapeSuccess:($)=>Pa($),shapeFault:Ka};var Wa=j.object({scheduleId:j.string().min(1)}),Ma=j.undefined(),bT=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:Wa,outputSchema:Ma,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 j4($.scheduleId,G)}}}),vT={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 qa=j.unknown(),gT=q({name:"weft.workflows.purge",mcpExposable:!1,summary:"Purge terminal workflows",destructive:!0,tags:["Workflows"],inputSchema:D6,outputSchema:qa,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=D$($.tags,'Field "filter.tags"')}catch(Q){throw C(U$(Q))}let X=b3({...$,...G===void 0?{}:{tags:G}});return await J.purge(Object.keys(X).length===0?void 0:X)}}),IT={method:"POST",path:"/v1/workflows/purge",pathParamNames:[],operationName:"weft.workflows.purge",inputSources:{},extractInput:async($,U,J)=>{let G=await L6($,J);try{return{...V6(G)}}catch(X){throw C(U$(X))}},success:{kind:"json",status:200},shapeSuccess:($)=>F6($),shapeFault:R};var Na=j.object({workflowId:j.string().min(1),queryName:j.string().min(1),input:j.unknown().optional()}),Oa=j.unknown(),hT=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:Na,outputSchema:Oa,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 yT($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}var mT={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:($)=>yT($),shapeFault:R},kT={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 q4($,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:($)=>yT($),shapeFault:R};var Aa=j.object({}),Ca=j.object({recovered:j.array(j.string())}),fT=q({name:"weft.recover.all",mcpExposable:!1,summary:"Recover all interrupted workflows",destructive:!0,tags:["System"],inputSchema:Aa,outputSchema:Ca,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 wU)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:{}}}}}),uT={method:"POST",path:"/v1/recover",pathParamNames:[],operationName:"weft.recover.all",inputSources:{},extractInput:async()=>({}),success:{kind:"json",status:200},shapeFault:Ra};function Ra($){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 uL=WG({name:"weft.workflows.tags.remove",summary:"Remove workflow tags",destructive:!1,mutateTags:($,U,J)=>$.removeTags(U,...J)}),wT=MG({method:"DELETE",operationName:uL.name});var Ta=j.object({workflowId:j.string().min(1),step:j.union([j.string(),j.number()])}),Ea=j.unknown(),cT=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:Ta,outputSchema:Ea,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 xa($){return R($)}function Sa($,U){return y6(U,$,200)}var pT={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)=>Sa($,U),shapeFault:xa};var ba=j.object({scheduleId:j.string().min(1)}),va=j.undefined(),dT=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:ba,outputSchema:va,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 j4($.scheduleId,G)}}}),lT={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 ga=j.object({workflowId:j.string().min(1)}),Ia=j.object({id:j.string()}),iT=H4({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:ga,outputSchema:Ia,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}),nT={method:"POST",path:"/v1/workflows/:id/resume",pathParamNames:["id"],operationName:"weft.workflows.resume",inputSources:{workflowId:{kind:"path",pathParam:"id"}},extractInput:async($,U)=>D4(U),success:{kind:"json",status:200},shapeFault:R};var ha=j.object({workflowId:j.string().min(1),attributes:j.unknown().optional()}),ya=j.object({ok:j.literal(!0)}),rT=q({name:"weft.workflows.attributes.set",mcpExposable:!1,summary:"Update search attributes for a workflow",destructive:!1,tags:["Attributes"],inputSchema:ha,outputSchema:ya,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 ma($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}function ka($){return R($)}var oT={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 H$($,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:($)=>ma($),shapeFault:ka};var fa=j.object({workflowId:j.string().min(1),signalName:j.string().min(1),payload:j.unknown().optional(),signalId:j.string().min(1).refine(N8,"signalId must be at most 128 bytes").optional()}),ua=j.object({ok:j.literal(!0)}),sT=H4({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:fa,outputSchema:ua,producibleFaults:["NotFound"],invoke:async({input:$,engine:U})=>{return await U.signal($.workflowId,$.signalName,$.payload,$.signalId===void 0?void 0:{signalId:$.signalId}),{ok:!0}}});function wa($){return new Response(JSON.stringify($),{status:200,headers:{"Content-Type":"application/json"}})}var aT={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 H$($,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{...D4(U),signalName:U.name??"",payload:X,...Q===void 0?{}:{signalId:Q}}},success:{kind:"json",status:200},shapeSuccess:($)=>wa($),shapeFault:R};function f3($,U){let J={};if($.id!==void 0)J.id=M4($.id,'Field "id"');if($.executionTimeout!==void 0)J.executionTimeout=Wj($.executionTimeout,'Field "executionTimeout"');if($.startAt!==void 0)J.startAt=KG($.startAt,'Field "startAt"');if($.startAfter!==void 0)J.startAfter=Wj($.startAfter,'Field "startAfter"');if($.tags!==void 0)J.tags=D$($.tags,'Field "tags"');if($.idempotencyKey!==void 0)J.idempotencyKey=GP($.idempotencyKey,'Field "idempotencyKey"');if($.searchAttributes!==void 0)J.searchAttributes=ca($.searchAttributes,'Field "searchAttributes"',U);return FG(J.startAt,J.startAfter),J}function ca($,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]=pa(X,Q,U,J);return G}function pa($,U,J,G){if(!la(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"?da($,U,J):U;try{l4($,Q,X)}catch(Z){let Y=Z instanceof Error?Z.message:String(Z);throw new f(Y)}return Q}function da($,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 la($){return typeof $==="string"||typeof $==="number"||typeof $==="boolean"||$ instanceof Date||Array.isArray($)&&$.every((U)=>typeof U==="string")}function ia($){return typeof $==="object"&&$!==null}async function u3($,U){let J;try{J=await H$($,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 ia(J)?J:{}}function w3($){return{type:$.type,input:$.input,id:$.id,executionTimeout:$.executionTimeout,startAt:$.startAt,startAfter:$.startAfter,tags:$.tags,idempotencyKey:$.idempotencyKey,searchAttributes:$.searchAttributes}}var na=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(N8,"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()}),ra=j.object({id:j.string(),outcome:j.enum(["started","signalled"])});function oa($,U){if(typeof $.type!=="string"||$.type.length===0)throw C("Missing required field: type");let J;try{J=f3($,U($.type))}catch(X){let Q=X instanceof Error?X.message:String(X);throw C(Q)}sa($.signalId,J.idempotencyKey);let G={name:$.signalName,payload:$.signalPayload,...$.signalId===void 0?{}:{signalId:$.signalId}};return{type:$.type,signal:G,options:J}}function sa($,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 aa($){let U=$ instanceof Error?$.message:String($);if($ instanceof $6)throw C(U,$.code);if($ instanceof dU||$ instanceof P6)throw{code:"Conflict",message:U,data:{reason:U,weftCode:$.code}};if($ instanceof f)throw C(U);throw{code:"EngineFailure",message:U,data:{}}}var tT=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:na,outputSchema:ra,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=K1(U),{type:G,signal:X,options:Q}=oa($,(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){aa(Z)}}}),eT={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 u3($,J);return{...w3(G),signalName:G.signalName,signalPayload:G.signalPayload,signalId:G.signalId}},success:{kind:"json",status:201},shapeFault:R};var ta=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()}),ea=j.object({id:j.string()});function $t($,U){if(typeof $.type!=="string"||$.type.length===0)throw C("Missing required field: type");let J=$.type,G;try{G=f3($,U(J))}catch(X){let Q=X instanceof Error?X.message:String(X);throw C(Q)}return{type:J,options:G}}function Ut($){let U=$ instanceof Error?$.message:String($);if($ instanceof $6)throw C(U,$.code);if($ instanceof C$||$ instanceof P6)throw{code:"Conflict",message:U,data:{reason:U,weftCode:$.code}};if($ instanceof f)throw C(U);throw{code:"EngineFailure",message:U,data:{}}}var $E=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:ta,outputSchema:ea,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=K1(U),{type:G,options:X}=$t($,(Q)=>{return J.getWorkflowDefinition(Q)?.searchAttributes});try{return{id:(await J.start(G,$.input,X)).id}}catch(Q){Ut(Q)}}}),UE={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 w3(await u3($,J))},success:{kind:"json",status:201},shapeFault:R};function JE($){let U=[];for(let J=0;J<$.length;J+=512)U.push(String.fromCharCode(...$.subarray(J,J+512)));return btoa(U.join(""))}function GE($){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 Qq$($){return typeof $==="object"&&$!==null&&!Array.isArray($)}var XE={kind:"scoped",scopes:{kind:"anyOf",scopes:["storage:read","storage:admin"]}},wL={kind:"scoped",scopes:{kind:"anyOf",scopes:["storage:write","storage:admin"]}},Jt={kind:"scopedAlternatives",alternatives:[{kind:"anyOf",scopes:["storage:admin"]},{kind:"allOf",scopes:["storage:read","storage:write"]}]},a0={http:!0,jsonRpcHttp:!1,jsonRpcStdio:!1,jsonRpcWebSocket:!1},QE=j.instanceof(Uint8Array).meta({type:"string",format:"binary"}),Gt=j.object({key:j.string().min(1)}),Xt=j.object({key:j.string().min(1),value:QE}),Qt=j.object({key:j.string().min(1)}),Zt=j.object({prefix:j.string(),limit:j.number().int().positive().max(uB).optional(),reverse:j.boolean().optional(),gt:j.string().optional(),gte:j.string().optional(),lt:j.string().optional(),lte:j.string().optional()}),ZE=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)})]),Yt=j.object({key:j.string().min(1),expectedValue:j.string().nullable()}),_t=j.object({operations:j.array(ZE).max(x1)}),jt=j.object({conditions:j.array(Yt).max(x1),operations:j.array(ZE).max(x1)}),cL=j.null(),Ht=QE.nullable(),Dt=j.custom(($)=>typeof $==="object"&&$!==null&&(Symbol.asyncIterator in $)&&typeof $[Symbol.asyncIterator]==="function","Storage scan output must be an async iterable."),Lt=j.object({applied:j.boolean()});function t0($,U,J){if(!B6(U))W6(J,{code:"Unauthorized",message:"authentication required",data:{reason:"authentication required"}});if(U.hasScope("storage:admin"))return $.storage;W6(J,{code:"Forbidden",message:"Raw storage access requires storage:admin.",data:{reason:"Raw storage access requires storage:admin."}})}function Vt($){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 YE($){if($.type==="put")return{type:"put",key:$.key,value:_E($.value,"Storage batch operation value must be base64.")};return{type:"delete",key:$.key}}function _E($,U){try{return GE($)}catch{throw C(U)}}function Ft($){return{key:$.key,expectedValue:$.expectedValue===null?null:_E($.expectedValue,"Storage conditional batch expectedValue must be base64.")}}async function jE($,U){try{return await H$($,U)}catch(J){if(t(J))throw J;throw C("Request body must be valid JSON.")}}function zt($){if($===null)return;if($==="true")return!0;if($==="false")return!1;throw C('Query parameter "reverse" must be "true" or "false".')}function Bt($){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 Pt($){let U=new URL($.url),J={prefix:U.searchParams.get("prefix")??""},G=Bt(U.searchParams.get("limit")),X=zt(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 pL($){return $.key??""}function dL(){return new Response(null,{status:204})}function Kt($){if($===null)return new Response(null,{status:404});return new Response(VJ($),{status:200,headers:{"Content-Type":"application/octet-stream"}})}function Wt($){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)}