@zonease/aiworker-cli 0.10.0 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/aiworker-bun.js CHANGED
@@ -69,8 +69,8 @@ ${X}`)}formatType(D,$,F){let X=bb[D.type]||fb[D.level]||"gray";if($)return vb(X)
69
69
  `+X.join(`
70
70
  `):""),D.type==="trace"){let K=Error("Trace: "+D.message);U+=this.formatStack(K.stack||"",K.message)}return Y?`
71
71
  `+U+`
72
- `:U}};_=xb()});var _D,HG,c,Y1=(D)=>{switch(typeof D){case"undefined":return c.undefined;case"string":return c.string;case"number":return Number.isNaN(D)?c.nan:c.number;case"boolean":return c.boolean;case"function":return c.function;case"bigint":return c.bigint;case"symbol":return c.symbol;case"object":if(Array.isArray(D))return c.array;if(D===null)return c.null;if(D.then&&typeof D.then==="function"&&D.catch&&typeof D.catch==="function")return c.promise;if(typeof Map<"u"&&D instanceof Map)return c.map;if(typeof Set<"u"&&D instanceof Set)return c.set;if(typeof Date<"u"&&D instanceof Date)return c.date;return c.object;default:return c.unknown}};var q9=R(()=>{(function(D){D.assertEqual=(J)=>{};function $(J){}D.assertIs=$;function F(J){throw Error()}D.assertNever=F,D.arrayToEnum=(J)=>{let G={};for(let Y of J)G[Y]=Y;return G},D.getValidEnumValues=(J)=>{let G=D.objectKeys(J).filter((B)=>typeof J[J[B]]!=="number"),Y={};for(let B of G)Y[B]=J[B];return D.objectValues(Y)},D.objectValues=(J)=>{return D.objectKeys(J).map(function(G){return J[G]})},D.objectKeys=typeof Object.keys==="function"?(J)=>Object.keys(J):(J)=>{let G=[];for(let Y in J)if(Object.prototype.hasOwnProperty.call(J,Y))G.push(Y);return G},D.find=(J,G)=>{for(let Y of J)if(G(Y))return Y;return},D.isInteger=typeof Number.isInteger==="function"?(J)=>Number.isInteger(J):(J)=>typeof J==="number"&&Number.isFinite(J)&&Math.floor(J)===J;function X(J,G=" | "){return J.map((Y)=>typeof Y==="string"?`'${Y}'`:Y).join(G)}D.joinValues=X,D.jsonStringifyReplacer=(J,G)=>{if(typeof G==="bigint")return G.toString();return G}})(_D||(_D={}));(function(D){D.mergeShapes=($,F)=>{return{...$,...F}}})(HG||(HG={}));c=_D.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"])});var v,mb=(D)=>{return JSON.stringify(D,null,2).replace(/"([^"]+)":/g,"$1:")},l0;var K5=R(()=>{q9();v=_D.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);l0=class l0 extends Error{get errors(){return this.issues}constructor(D){super();this.issues=[],this.addIssue=(F)=>{this.issues=[...this.issues,F]},this.addIssues=(F=[])=>{this.issues=[...this.issues,...F]};let $=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,$);else this.__proto__=$;this.name="ZodError",this.issues=D}format(D){let $=D||function(J){return J.message},F={_errors:[]},X=(J)=>{for(let G of J.issues)if(G.code==="invalid_union")G.unionErrors.map(X);else if(G.code==="invalid_return_type")X(G.returnTypeError);else if(G.code==="invalid_arguments")X(G.argumentsError);else if(G.path.length===0)F._errors.push($(G));else{let Y=F,B=0;while(B<G.path.length){let H=G.path[B];if(B!==G.path.length-1)Y[H]=Y[H]||{_errors:[]};else Y[H]=Y[H]||{_errors:[]},Y[H]._errors.push($(G));Y=Y[H],B++}}};return X(this),F}static assert(D){if(!(D instanceof l0))throw Error(`Not a ZodError: ${D}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,_D.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(D=($)=>$.message){let $={},F=[];for(let X of this.issues)if(X.path.length>0){let J=X.path[0];$[J]=$[J]||[],$[J].push(D(X))}else F.push(D(X));return{formErrors:F,fieldErrors:$}}get formErrors(){return this.flatten()}};l0.create=(D)=>{return new l0(D)}});var cb=(D,$)=>{let F;switch(D.code){case v.invalid_type:if(D.received===c.undefined)F="Required";else F=`Expected ${D.expected}, received ${D.received}`;break;case v.invalid_literal:F=`Invalid literal value, expected ${JSON.stringify(D.expected,_D.jsonStringifyReplacer)}`;break;case v.unrecognized_keys:F=`Unrecognized key(s) in object: ${_D.joinValues(D.keys,", ")}`;break;case v.invalid_union:F="Invalid input";break;case v.invalid_union_discriminator:F=`Invalid discriminator value. Expected ${_D.joinValues(D.options)}`;break;case v.invalid_enum_value:F=`Invalid enum value. Expected ${_D.joinValues(D.options)}, received '${D.received}'`;break;case v.invalid_arguments:F="Invalid function arguments";break;case v.invalid_return_type:F="Invalid function return type";break;case v.invalid_date:F="Invalid date";break;case v.invalid_string:if(typeof D.validation==="object")if("includes"in D.validation){if(F=`Invalid input: must include "${D.validation.includes}"`,typeof D.validation.position==="number")F=`${F} at one or more positions greater than or equal to ${D.validation.position}`}else if("startsWith"in D.validation)F=`Invalid input: must start with "${D.validation.startsWith}"`;else if("endsWith"in D.validation)F=`Invalid input: must end with "${D.validation.endsWith}"`;else _D.assertNever(D.validation);else if(D.validation!=="regex")F=`Invalid ${D.validation}`;else F="Invalid";break;case v.too_small:if(D.type==="array")F=`Array must contain ${D.exact?"exactly":D.inclusive?"at least":"more than"} ${D.minimum} element(s)`;else if(D.type==="string")F=`String must contain ${D.exact?"exactly":D.inclusive?"at least":"over"} ${D.minimum} character(s)`;else if(D.type==="number")F=`Number must be ${D.exact?"exactly equal to ":D.inclusive?"greater than or equal to ":"greater than "}${D.minimum}`;else if(D.type==="bigint")F=`Number must be ${D.exact?"exactly equal to ":D.inclusive?"greater than or equal to ":"greater than "}${D.minimum}`;else if(D.type==="date")F=`Date must be ${D.exact?"exactly equal to ":D.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(D.minimum))}`;else F="Invalid input";break;case v.too_big:if(D.type==="array")F=`Array must contain ${D.exact?"exactly":D.inclusive?"at most":"less than"} ${D.maximum} element(s)`;else if(D.type==="string")F=`String must contain ${D.exact?"exactly":D.inclusive?"at most":"under"} ${D.maximum} character(s)`;else if(D.type==="number")F=`Number must be ${D.exact?"exactly":D.inclusive?"less than or equal to":"less than"} ${D.maximum}`;else if(D.type==="bigint")F=`BigInt must be ${D.exact?"exactly":D.inclusive?"less than or equal to":"less than"} ${D.maximum}`;else if(D.type==="date")F=`Date must be ${D.exact?"exactly":D.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(D.maximum))}`;else F="Invalid input";break;case v.custom:F="Invalid input";break;case v.invalid_intersection_types:F="Intersection results could not be merged";break;case v.not_multiple_of:F=`Number must be a multiple of ${D.multipleOf}`;break;case v.not_finite:F="Number must be finite";break;default:F=$.defaultError,_D.assertNever(D)}return{message:F}},O1;var WG=R(()=>{K5();q9();O1=cb});function pb(D){JK=D}function b6(){return JK}var JK;var _5=R(()=>{WG();JK=O1});function d(D,$){let F=b6(),X=z9({issueData:$,data:D.data,path:D.path,errorMaps:[D.common.contextualErrorMap,D.schemaErrorMap,F,F===O1?void 0:O1].filter((J)=>!!J)});D.common.issues.push(X)}class q0{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(D,$){let F=[];for(let X of $){if(X.status==="aborted")return t;if(X.status==="dirty")D.dirty();F.push(X.value)}return{status:D.value,value:F}}static async mergeObjectAsync(D,$){let F=[];for(let X of $){let J=await X.key,G=await X.value;F.push({key:J,value:G})}return q0.mergeObjectSync(D,F)}static mergeObjectSync(D,$){let F={};for(let X of $){let{key:J,value:G}=X;if(J.status==="aborted")return t;if(G.status==="aborted")return t;if(J.status==="dirty")D.dirty();if(G.status==="dirty")D.dirty();if(J.value!=="__proto__"&&(typeof G.value<"u"||X.alwaysSet))F[J.value]=G.value}return{status:D.value,value:F}}}var z9=(D)=>{let{data:$,path:F,errorMaps:X,issueData:J}=D,G=[...F,...J.path||[]],Y={...J,path:G};if(J.message!==void 0)return{...J,path:G,message:J.message};let B="",H=X.filter((U)=>!!U).slice().reverse();for(let U of H)B=U(Y,{data:$,defaultError:B}).message;return{...J,path:G,message:B}},db,t,S8=(D)=>({status:"dirty",value:D}),w0=(D)=>({status:"valid",value:D}),C5=(D)=>D.status==="aborted",M5=(D)=>D.status==="dirty",d1=(D)=>D.status==="valid",f6=(D)=>typeof Promise<"u"&&D instanceof Promise;var UG=R(()=>{_5();WG();db=[];t=Object.freeze({status:"aborted"})});var GK=()=>{};var s;var YK=R(()=>{(function(D){D.errToObj=($)=>typeof $==="string"?{message:$}:$||{},D.toString=($)=>typeof $==="string"?$:$?.message})(s||(s={}))});class u2{constructor(D,$,F,X){this._cachedPath=[],this.parent=D,this.data=$,this._path=F,this._key=X}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}function WD(D){if(!D)return{};let{errorMap:$,invalid_type_error:F,required_error:X,description:J}=D;if($&&(F||X))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if($)return{errorMap:$,description:J};return{errorMap:(Y,B)=>{let{message:H}=D;if(Y.code==="invalid_enum_value")return{message:H??B.defaultError};if(typeof B.data>"u")return{message:H??X??B.defaultError};if(Y.code!=="invalid_type")return{message:B.defaultError};return{message:H??F??B.defaultError}},description:J}}class QD{get description(){return this._def.description}_getType(D){return Y1(D.data)}_getOrReturnCtx(D,$){return $||{common:D.parent.common,data:D.data,parsedType:Y1(D.data),schemaErrorMap:this._def.errorMap,path:D.path,parent:D.parent}}_processInputParams(D){return{status:new q0,ctx:{common:D.parent.common,data:D.data,parsedType:Y1(D.data),schemaErrorMap:this._def.errorMap,path:D.path,parent:D.parent}}}_parseSync(D){let $=this._parse(D);if(f6($))throw Error("Synchronous parse encountered promise.");return $}_parseAsync(D){let $=this._parse(D);return Promise.resolve($)}parse(D,$){let F=this.safeParse(D,$);if(F.success)return F.data;throw F.error}safeParse(D,$){let F={common:{issues:[],async:$?.async??!1,contextualErrorMap:$?.errorMap},path:$?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:D,parsedType:Y1(D)},X=this._parseSync({data:D,path:F.path,parent:F});return BK(F,X)}"~validate"(D){let $={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:D,parsedType:Y1(D)};if(!this["~standard"].async)try{let F=this._parseSync({data:D,path:[],parent:$});return d1(F)?{value:F.value}:{issues:$.common.issues}}catch(F){if(F?.message?.toLowerCase()?.includes("encountered"))this["~standard"].async=!0;$.common={issues:[],async:!0}}return this._parseAsync({data:D,path:[],parent:$}).then((F)=>d1(F)?{value:F.value}:{issues:$.common.issues})}async parseAsync(D,$){let F=await this.safeParseAsync(D,$);if(F.success)return F.data;throw F.error}async safeParseAsync(D,$){let F={common:{issues:[],contextualErrorMap:$?.errorMap,async:!0},path:$?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:D,parsedType:Y1(D)},X=this._parse({data:D,path:F.path,parent:F}),J=await(f6(X)?X:Promise.resolve(X));return BK(F,J)}refine(D,$){let F=(X)=>{if(typeof $==="string"||typeof $>"u")return{message:$};else if(typeof $==="function")return $(X);else return $};return this._refinement((X,J)=>{let G=D(X),Y=()=>J.addIssue({code:v.custom,...F(X)});if(typeof Promise<"u"&&G instanceof Promise)return G.then((B)=>{if(!B)return Y(),!1;else return!0});if(!G)return Y(),!1;else return!0})}refinement(D,$){return this._refinement((F,X)=>{if(!D(F))return X.addIssue(typeof $==="function"?$(F,X):$),!1;else return!0})}_refinement(D){return new m2({schema:this,typeName:$D.ZodEffects,effect:{type:"refinement",refinement:D}})}superRefine(D){return this._refinement(D)}constructor(D){this.spa=this.safeParseAsync,this._def=D,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:($)=>this["~validate"]($)}}optional(){return y2.create(this,this._def)}nullable(){return j1.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return x2.create(this)}promise(){return b8.create(this,this._def)}or(D){return u6.create([this,D],this._def)}and(D){return m6.create(this,D,this._def)}transform(D){return new m2({...WD(this._def),schema:this,typeName:$D.ZodEffects,effect:{type:"transform",transform:D}})}default(D){let $=typeof D==="function"?D:()=>D;return new l6({...WD(this._def),innerType:this,defaultValue:$,typeName:$D.ZodDefault})}brand(){return new R5({typeName:$D.ZodBranded,type:this,...WD(this._def)})}catch(D){let $=typeof D==="function"?D:()=>D;return new i6({...WD(this._def),innerType:this,catchValue:$,typeName:$D.ZodCatch})}describe(D){return new this.constructor({...this._def,description:D})}pipe(D){return b9.create(this,D)}readonly(){return n6.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}function UK(D){let $="[0-5]\\d";if(D.precision)$=`${$}\\.\\d{${D.precision}}`;else if(D.precision==null)$=`${$}(\\.\\d+)?`;let F=D.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${$})${F}`}function Bf(D){return new RegExp(`^${UK(D)}$`)}function QK(D){let $=`${WK}T${UK(D)}`,F=[];if(F.push(D.local?"Z?":"Z"),D.offset)F.push("([+-]\\d{2}:?\\d{2})");return $=`${$}(${F.join("|")})`,new RegExp(`^${$}$`)}function Hf(D,$){if(($==="v4"||!$)&&Df.test(D))return!0;if(($==="v6"||!$)&&Ff.test(D))return!0;return!1}function Wf(D,$){if(!ab.test(D))return!1;try{let[F]=D.split(".");if(!F)return!1;let X=F.replace(/-/g,"+").replace(/_/g,"/").padEnd(F.length+(4-F.length%4)%4,"="),J=JSON.parse(atob(X));if(typeof J!=="object"||J===null)return!1;if("typ"in J&&J?.typ!=="JWT")return!1;if(!J.alg)return!1;if($&&J.alg!==$)return!1;return!0}catch{return!1}}function Uf(D,$){if(($==="v4"||!$)&&$f.test(D))return!0;if(($==="v6"||!$)&&Xf.test(D))return!0;return!1}function Qf(D,$){let F=(D.toString().split(".")[1]||"").length,X=($.toString().split(".")[1]||"").length,J=F>X?F:X,G=Number.parseInt(D.toFixed(J).replace(".","")),Y=Number.parseInt($.toFixed(J).replace(".",""));return G%Y/10**J}function g6(D){if(D instanceof oD){let $={};for(let F in D.shape){let X=D.shape[F];$[F]=y2.create(g6(X))}return new oD({...D._def,shape:()=>$})}else if(D instanceof x2)return new x2({...D._def,type:g6(D.element)});else if(D instanceof y2)return y2.create(g6(D.unwrap()));else if(D instanceof j1)return j1.create(g6(D.unwrap()));else if(D instanceof H1)return H1.create(D.items.map(($)=>g6($)));else return D}function VG(D,$){let F=Y1(D),X=Y1($);if(D===$)return{valid:!0,data:D};else if(F===c.object&&X===c.object){let J=_D.objectKeys($),G=_D.objectKeys(D).filter((B)=>J.indexOf(B)!==-1),Y={...D,...$};for(let B of G){let H=VG(D[B],$[B]);if(!H.valid)return{valid:!1};Y[B]=H.data}return{valid:!0,data:Y}}else if(F===c.array&&X===c.array){if(D.length!==$.length)return{valid:!1};let J=[];for(let G=0;G<D.length;G++){let Y=D[G],B=$[G],H=VG(Y,B);if(!H.valid)return{valid:!1};J.push(H.data)}return{valid:!0,data:J}}else if(F===c.date&&X===c.date&&+D===+$)return{valid:!0,data:D};else return{valid:!1}}function VK(D,$){return new r1({values:D,typeName:$D.ZodEnum,...WD($)})}function HK(D,$){let F=typeof D==="function"?D($):typeof D==="string"?{message:D}:D;return typeof F==="string"?{message:F}:F}function AK(D,$={},F){if(D)return w8.create().superRefine((X,J)=>{let G=D(X);if(G instanceof Promise)return G.then((Y)=>{if(!Y){let B=HK($,X),H=B.fatal??F??!0;J.addIssue({code:"custom",...B,fatal:H})}});if(!G){let Y=HK($,X),B=Y.fatal??F??!0;J.addIssue({code:"custom",...Y,fatal:B})}return});return w8.create()}var BK=(D,$)=>{if(d1($))return{success:!0,data:$.value};else{if(!D.common.issues.length)throw Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let F=new l0(D.common.issues);return this._error=F,this._error}}}},lb,ib,nb,rb,sb,ab,ob,tb,eb="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",QG,Df,$f,Ff,Xf,Jf,Gf,WK="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Yf,v2,i1,n1,v6,T8,I9,x6,y6,w8,l1,B1,S9,x2,oD,u6,E1=(D)=>{if(D instanceof c6)return E1(D.schema);else if(D instanceof m2)return E1(D.innerType());else if(D instanceof p6)return[D.value];else if(D instanceof r1)return D.options;else if(D instanceof d6)return _D.objectValues(D.enum);else if(D instanceof l6)return E1(D._def.innerType);else if(D instanceof x6)return[void 0];else if(D instanceof y6)return[null];else if(D instanceof y2)return[void 0,...E1(D.unwrap())];else if(D instanceof j1)return[null,...E1(D.unwrap())];else if(D instanceof R5)return E1(D.unwrap());else if(D instanceof n6)return E1(D.unwrap());else if(D instanceof i6)return E1(D._def.innerType);else return[]},Z5,m6,H1,T9,w9,k8,h6,c6,p6,r1,d6,b8,m2,y2,j1,l6,i6,k9,Vf,R5,b9,n6,Af,$D,Kf=(D,$={message:`Input not instance of ${D.name}`})=>AK((F)=>F instanceof D,$),KK,_K,_f,Cf,CK,Mf,Zf,Rf,Of,Ef,jf,Nf,Pf,Lf,qf,zf,If,Sf,Tf,wf,kf,bf,ff,gf,hf,vf,xf,yf,uf,mf,cf,pf,df,lf,nf=()=>KK().optional(),rf=()=>_K().optional(),sf=()=>CK().optional(),af,of;var MK=R(()=>{K5();_5();YK();UG();q9();lb=/^c[^\s-]{8,}$/i,ib=/^[0-9a-z]+$/,nb=/^[0-9A-HJKMNP-TV-Z]{26}$/i,rb=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,sb=/^[a-z0-9_-]{21}$/i,ab=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,ob=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,tb=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Df=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,$f=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Ff=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Xf=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Jf=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Gf=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Yf=new RegExp(`^${WK}$`);v2=class v2 extends QD{_parse(D){if(this._def.coerce)D.data=String(D.data);if(this._getType(D)!==c.string){let J=this._getOrReturnCtx(D);return d(J,{code:v.invalid_type,expected:c.string,received:J.parsedType}),t}let F=new q0,X=void 0;for(let J of this._def.checks)if(J.kind==="min"){if(D.data.length<J.value)X=this._getOrReturnCtx(D,X),d(X,{code:v.too_small,minimum:J.value,type:"string",inclusive:!0,exact:!1,message:J.message}),F.dirty()}else if(J.kind==="max"){if(D.data.length>J.value)X=this._getOrReturnCtx(D,X),d(X,{code:v.too_big,maximum:J.value,type:"string",inclusive:!0,exact:!1,message:J.message}),F.dirty()}else if(J.kind==="length"){let G=D.data.length>J.value,Y=D.data.length<J.value;if(G||Y){if(X=this._getOrReturnCtx(D,X),G)d(X,{code:v.too_big,maximum:J.value,type:"string",inclusive:!0,exact:!0,message:J.message});else if(Y)d(X,{code:v.too_small,minimum:J.value,type:"string",inclusive:!0,exact:!0,message:J.message});F.dirty()}}else if(J.kind==="email"){if(!tb.test(D.data))X=this._getOrReturnCtx(D,X),d(X,{validation:"email",code:v.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="emoji"){if(!QG)QG=new RegExp(eb,"u");if(!QG.test(D.data))X=this._getOrReturnCtx(D,X),d(X,{validation:"emoji",code:v.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="uuid"){if(!rb.test(D.data))X=this._getOrReturnCtx(D,X),d(X,{validation:"uuid",code:v.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="nanoid"){if(!sb.test(D.data))X=this._getOrReturnCtx(D,X),d(X,{validation:"nanoid",code:v.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cuid"){if(!lb.test(D.data))X=this._getOrReturnCtx(D,X),d(X,{validation:"cuid",code:v.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cuid2"){if(!ib.test(D.data))X=this._getOrReturnCtx(D,X),d(X,{validation:"cuid2",code:v.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="ulid"){if(!nb.test(D.data))X=this._getOrReturnCtx(D,X),d(X,{validation:"ulid",code:v.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="url")try{new URL(D.data)}catch{X=this._getOrReturnCtx(D,X),d(X,{validation:"url",code:v.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="regex"){if(J.regex.lastIndex=0,!J.regex.test(D.data))X=this._getOrReturnCtx(D,X),d(X,{validation:"regex",code:v.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="trim")D.data=D.data.trim();else if(J.kind==="includes"){if(!D.data.includes(J.value,J.position))X=this._getOrReturnCtx(D,X),d(X,{code:v.invalid_string,validation:{includes:J.value,position:J.position},message:J.message}),F.dirty()}else if(J.kind==="toLowerCase")D.data=D.data.toLowerCase();else if(J.kind==="toUpperCase")D.data=D.data.toUpperCase();else if(J.kind==="startsWith"){if(!D.data.startsWith(J.value))X=this._getOrReturnCtx(D,X),d(X,{code:v.invalid_string,validation:{startsWith:J.value},message:J.message}),F.dirty()}else if(J.kind==="endsWith"){if(!D.data.endsWith(J.value))X=this._getOrReturnCtx(D,X),d(X,{code:v.invalid_string,validation:{endsWith:J.value},message:J.message}),F.dirty()}else if(J.kind==="datetime"){if(!QK(J).test(D.data))X=this._getOrReturnCtx(D,X),d(X,{code:v.invalid_string,validation:"datetime",message:J.message}),F.dirty()}else if(J.kind==="date"){if(!Yf.test(D.data))X=this._getOrReturnCtx(D,X),d(X,{code:v.invalid_string,validation:"date",message:J.message}),F.dirty()}else if(J.kind==="time"){if(!Bf(J).test(D.data))X=this._getOrReturnCtx(D,X),d(X,{code:v.invalid_string,validation:"time",message:J.message}),F.dirty()}else if(J.kind==="duration"){if(!ob.test(D.data))X=this._getOrReturnCtx(D,X),d(X,{validation:"duration",code:v.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="ip"){if(!Hf(D.data,J.version))X=this._getOrReturnCtx(D,X),d(X,{validation:"ip",code:v.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="jwt"){if(!Wf(D.data,J.alg))X=this._getOrReturnCtx(D,X),d(X,{validation:"jwt",code:v.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cidr"){if(!Uf(D.data,J.version))X=this._getOrReturnCtx(D,X),d(X,{validation:"cidr",code:v.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="base64"){if(!Jf.test(D.data))X=this._getOrReturnCtx(D,X),d(X,{validation:"base64",code:v.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="base64url"){if(!Gf.test(D.data))X=this._getOrReturnCtx(D,X),d(X,{validation:"base64url",code:v.invalid_string,message:J.message}),F.dirty()}else _D.assertNever(J);return{status:F.value,value:D.data}}_regex(D,$,F){return this.refinement((X)=>D.test(X),{validation:$,code:v.invalid_string,...s.errToObj(F)})}_addCheck(D){return new v2({...this._def,checks:[...this._def.checks,D]})}email(D){return this._addCheck({kind:"email",...s.errToObj(D)})}url(D){return this._addCheck({kind:"url",...s.errToObj(D)})}emoji(D){return this._addCheck({kind:"emoji",...s.errToObj(D)})}uuid(D){return this._addCheck({kind:"uuid",...s.errToObj(D)})}nanoid(D){return this._addCheck({kind:"nanoid",...s.errToObj(D)})}cuid(D){return this._addCheck({kind:"cuid",...s.errToObj(D)})}cuid2(D){return this._addCheck({kind:"cuid2",...s.errToObj(D)})}ulid(D){return this._addCheck({kind:"ulid",...s.errToObj(D)})}base64(D){return this._addCheck({kind:"base64",...s.errToObj(D)})}base64url(D){return this._addCheck({kind:"base64url",...s.errToObj(D)})}jwt(D){return this._addCheck({kind:"jwt",...s.errToObj(D)})}ip(D){return this._addCheck({kind:"ip",...s.errToObj(D)})}cidr(D){return this._addCheck({kind:"cidr",...s.errToObj(D)})}datetime(D){if(typeof D==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:D});return this._addCheck({kind:"datetime",precision:typeof D?.precision>"u"?null:D?.precision,offset:D?.offset??!1,local:D?.local??!1,...s.errToObj(D?.message)})}date(D){return this._addCheck({kind:"date",message:D})}time(D){if(typeof D==="string")return this._addCheck({kind:"time",precision:null,message:D});return this._addCheck({kind:"time",precision:typeof D?.precision>"u"?null:D?.precision,...s.errToObj(D?.message)})}duration(D){return this._addCheck({kind:"duration",...s.errToObj(D)})}regex(D,$){return this._addCheck({kind:"regex",regex:D,...s.errToObj($)})}includes(D,$){return this._addCheck({kind:"includes",value:D,position:$?.position,...s.errToObj($?.message)})}startsWith(D,$){return this._addCheck({kind:"startsWith",value:D,...s.errToObj($)})}endsWith(D,$){return this._addCheck({kind:"endsWith",value:D,...s.errToObj($)})}min(D,$){return this._addCheck({kind:"min",value:D,...s.errToObj($)})}max(D,$){return this._addCheck({kind:"max",value:D,...s.errToObj($)})}length(D,$){return this._addCheck({kind:"length",value:D,...s.errToObj($)})}nonempty(D){return this.min(1,s.errToObj(D))}trim(){return new v2({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new v2({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new v2({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((D)=>D.kind==="datetime")}get isDate(){return!!this._def.checks.find((D)=>D.kind==="date")}get isTime(){return!!this._def.checks.find((D)=>D.kind==="time")}get isDuration(){return!!this._def.checks.find((D)=>D.kind==="duration")}get isEmail(){return!!this._def.checks.find((D)=>D.kind==="email")}get isURL(){return!!this._def.checks.find((D)=>D.kind==="url")}get isEmoji(){return!!this._def.checks.find((D)=>D.kind==="emoji")}get isUUID(){return!!this._def.checks.find((D)=>D.kind==="uuid")}get isNANOID(){return!!this._def.checks.find((D)=>D.kind==="nanoid")}get isCUID(){return!!this._def.checks.find((D)=>D.kind==="cuid")}get isCUID2(){return!!this._def.checks.find((D)=>D.kind==="cuid2")}get isULID(){return!!this._def.checks.find((D)=>D.kind==="ulid")}get isIP(){return!!this._def.checks.find((D)=>D.kind==="ip")}get isCIDR(){return!!this._def.checks.find((D)=>D.kind==="cidr")}get isBase64(){return!!this._def.checks.find((D)=>D.kind==="base64")}get isBase64url(){return!!this._def.checks.find((D)=>D.kind==="base64url")}get minLength(){let D=null;for(let $ of this._def.checks)if($.kind==="min"){if(D===null||$.value>D)D=$.value}return D}get maxLength(){let D=null;for(let $ of this._def.checks)if($.kind==="max"){if(D===null||$.value<D)D=$.value}return D}};v2.create=(D)=>{return new v2({checks:[],typeName:$D.ZodString,coerce:D?.coerce??!1,...WD(D)})};i1=class i1 extends QD{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(D){if(this._def.coerce)D.data=Number(D.data);if(this._getType(D)!==c.number){let J=this._getOrReturnCtx(D);return d(J,{code:v.invalid_type,expected:c.number,received:J.parsedType}),t}let F=void 0,X=new q0;for(let J of this._def.checks)if(J.kind==="int"){if(!_D.isInteger(D.data))F=this._getOrReturnCtx(D,F),d(F,{code:v.invalid_type,expected:"integer",received:"float",message:J.message}),X.dirty()}else if(J.kind==="min"){if(J.inclusive?D.data<J.value:D.data<=J.value)F=this._getOrReturnCtx(D,F),d(F,{code:v.too_small,minimum:J.value,type:"number",inclusive:J.inclusive,exact:!1,message:J.message}),X.dirty()}else if(J.kind==="max"){if(J.inclusive?D.data>J.value:D.data>=J.value)F=this._getOrReturnCtx(D,F),d(F,{code:v.too_big,maximum:J.value,type:"number",inclusive:J.inclusive,exact:!1,message:J.message}),X.dirty()}else if(J.kind==="multipleOf"){if(Qf(D.data,J.value)!==0)F=this._getOrReturnCtx(D,F),d(F,{code:v.not_multiple_of,multipleOf:J.value,message:J.message}),X.dirty()}else if(J.kind==="finite"){if(!Number.isFinite(D.data))F=this._getOrReturnCtx(D,F),d(F,{code:v.not_finite,message:J.message}),X.dirty()}else _D.assertNever(J);return{status:X.value,value:D.data}}gte(D,$){return this.setLimit("min",D,!0,s.toString($))}gt(D,$){return this.setLimit("min",D,!1,s.toString($))}lte(D,$){return this.setLimit("max",D,!0,s.toString($))}lt(D,$){return this.setLimit("max",D,!1,s.toString($))}setLimit(D,$,F,X){return new i1({...this._def,checks:[...this._def.checks,{kind:D,value:$,inclusive:F,message:s.toString(X)}]})}_addCheck(D){return new i1({...this._def,checks:[...this._def.checks,D]})}int(D){return this._addCheck({kind:"int",message:s.toString(D)})}positive(D){return this._addCheck({kind:"min",value:0,inclusive:!1,message:s.toString(D)})}negative(D){return this._addCheck({kind:"max",value:0,inclusive:!1,message:s.toString(D)})}nonpositive(D){return this._addCheck({kind:"max",value:0,inclusive:!0,message:s.toString(D)})}nonnegative(D){return this._addCheck({kind:"min",value:0,inclusive:!0,message:s.toString(D)})}multipleOf(D,$){return this._addCheck({kind:"multipleOf",value:D,message:s.toString($)})}finite(D){return this._addCheck({kind:"finite",message:s.toString(D)})}safe(D){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:s.toString(D)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:s.toString(D)})}get minValue(){let D=null;for(let $ of this._def.checks)if($.kind==="min"){if(D===null||$.value>D)D=$.value}return D}get maxValue(){let D=null;for(let $ of this._def.checks)if($.kind==="max"){if(D===null||$.value<D)D=$.value}return D}get isInt(){return!!this._def.checks.find((D)=>D.kind==="int"||D.kind==="multipleOf"&&_D.isInteger(D.value))}get isFinite(){let D=null,$=null;for(let F of this._def.checks)if(F.kind==="finite"||F.kind==="int"||F.kind==="multipleOf")return!0;else if(F.kind==="min"){if($===null||F.value>$)$=F.value}else if(F.kind==="max"){if(D===null||F.value<D)D=F.value}return Number.isFinite($)&&Number.isFinite(D)}};i1.create=(D)=>{return new i1({checks:[],typeName:$D.ZodNumber,coerce:D?.coerce||!1,...WD(D)})};n1=class n1 extends QD{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(D){if(this._def.coerce)try{D.data=BigInt(D.data)}catch{return this._getInvalidInput(D)}if(this._getType(D)!==c.bigint)return this._getInvalidInput(D);let F=void 0,X=new q0;for(let J of this._def.checks)if(J.kind==="min"){if(J.inclusive?D.data<J.value:D.data<=J.value)F=this._getOrReturnCtx(D,F),d(F,{code:v.too_small,type:"bigint",minimum:J.value,inclusive:J.inclusive,message:J.message}),X.dirty()}else if(J.kind==="max"){if(J.inclusive?D.data>J.value:D.data>=J.value)F=this._getOrReturnCtx(D,F),d(F,{code:v.too_big,type:"bigint",maximum:J.value,inclusive:J.inclusive,message:J.message}),X.dirty()}else if(J.kind==="multipleOf"){if(D.data%J.value!==BigInt(0))F=this._getOrReturnCtx(D,F),d(F,{code:v.not_multiple_of,multipleOf:J.value,message:J.message}),X.dirty()}else _D.assertNever(J);return{status:X.value,value:D.data}}_getInvalidInput(D){let $=this._getOrReturnCtx(D);return d($,{code:v.invalid_type,expected:c.bigint,received:$.parsedType}),t}gte(D,$){return this.setLimit("min",D,!0,s.toString($))}gt(D,$){return this.setLimit("min",D,!1,s.toString($))}lte(D,$){return this.setLimit("max",D,!0,s.toString($))}lt(D,$){return this.setLimit("max",D,!1,s.toString($))}setLimit(D,$,F,X){return new n1({...this._def,checks:[...this._def.checks,{kind:D,value:$,inclusive:F,message:s.toString(X)}]})}_addCheck(D){return new n1({...this._def,checks:[...this._def.checks,D]})}positive(D){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:s.toString(D)})}negative(D){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:s.toString(D)})}nonpositive(D){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:s.toString(D)})}nonnegative(D){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:s.toString(D)})}multipleOf(D,$){return this._addCheck({kind:"multipleOf",value:D,message:s.toString($)})}get minValue(){let D=null;for(let $ of this._def.checks)if($.kind==="min"){if(D===null||$.value>D)D=$.value}return D}get maxValue(){let D=null;for(let $ of this._def.checks)if($.kind==="max"){if(D===null||$.value<D)D=$.value}return D}};n1.create=(D)=>{return new n1({checks:[],typeName:$D.ZodBigInt,coerce:D?.coerce??!1,...WD(D)})};v6=class v6 extends QD{_parse(D){if(this._def.coerce)D.data=Boolean(D.data);if(this._getType(D)!==c.boolean){let F=this._getOrReturnCtx(D);return d(F,{code:v.invalid_type,expected:c.boolean,received:F.parsedType}),t}return w0(D.data)}};v6.create=(D)=>{return new v6({typeName:$D.ZodBoolean,coerce:D?.coerce||!1,...WD(D)})};T8=class T8 extends QD{_parse(D){if(this._def.coerce)D.data=new Date(D.data);if(this._getType(D)!==c.date){let J=this._getOrReturnCtx(D);return d(J,{code:v.invalid_type,expected:c.date,received:J.parsedType}),t}if(Number.isNaN(D.data.getTime())){let J=this._getOrReturnCtx(D);return d(J,{code:v.invalid_date}),t}let F=new q0,X=void 0;for(let J of this._def.checks)if(J.kind==="min"){if(D.data.getTime()<J.value)X=this._getOrReturnCtx(D,X),d(X,{code:v.too_small,message:J.message,inclusive:!0,exact:!1,minimum:J.value,type:"date"}),F.dirty()}else if(J.kind==="max"){if(D.data.getTime()>J.value)X=this._getOrReturnCtx(D,X),d(X,{code:v.too_big,message:J.message,inclusive:!0,exact:!1,maximum:J.value,type:"date"}),F.dirty()}else _D.assertNever(J);return{status:F.value,value:new Date(D.data.getTime())}}_addCheck(D){return new T8({...this._def,checks:[...this._def.checks,D]})}min(D,$){return this._addCheck({kind:"min",value:D.getTime(),message:s.toString($)})}max(D,$){return this._addCheck({kind:"max",value:D.getTime(),message:s.toString($)})}get minDate(){let D=null;for(let $ of this._def.checks)if($.kind==="min"){if(D===null||$.value>D)D=$.value}return D!=null?new Date(D):null}get maxDate(){let D=null;for(let $ of this._def.checks)if($.kind==="max"){if(D===null||$.value<D)D=$.value}return D!=null?new Date(D):null}};T8.create=(D)=>{return new T8({checks:[],coerce:D?.coerce||!1,typeName:$D.ZodDate,...WD(D)})};I9=class I9 extends QD{_parse(D){if(this._getType(D)!==c.symbol){let F=this._getOrReturnCtx(D);return d(F,{code:v.invalid_type,expected:c.symbol,received:F.parsedType}),t}return w0(D.data)}};I9.create=(D)=>{return new I9({typeName:$D.ZodSymbol,...WD(D)})};x6=class x6 extends QD{_parse(D){if(this._getType(D)!==c.undefined){let F=this._getOrReturnCtx(D);return d(F,{code:v.invalid_type,expected:c.undefined,received:F.parsedType}),t}return w0(D.data)}};x6.create=(D)=>{return new x6({typeName:$D.ZodUndefined,...WD(D)})};y6=class y6 extends QD{_parse(D){if(this._getType(D)!==c.null){let F=this._getOrReturnCtx(D);return d(F,{code:v.invalid_type,expected:c.null,received:F.parsedType}),t}return w0(D.data)}};y6.create=(D)=>{return new y6({typeName:$D.ZodNull,...WD(D)})};w8=class w8 extends QD{constructor(){super(...arguments);this._any=!0}_parse(D){return w0(D.data)}};w8.create=(D)=>{return new w8({typeName:$D.ZodAny,...WD(D)})};l1=class l1 extends QD{constructor(){super(...arguments);this._unknown=!0}_parse(D){return w0(D.data)}};l1.create=(D)=>{return new l1({typeName:$D.ZodUnknown,...WD(D)})};B1=class B1 extends QD{_parse(D){let $=this._getOrReturnCtx(D);return d($,{code:v.invalid_type,expected:c.never,received:$.parsedType}),t}};B1.create=(D)=>{return new B1({typeName:$D.ZodNever,...WD(D)})};S9=class S9 extends QD{_parse(D){if(this._getType(D)!==c.undefined){let F=this._getOrReturnCtx(D);return d(F,{code:v.invalid_type,expected:c.void,received:F.parsedType}),t}return w0(D.data)}};S9.create=(D)=>{return new S9({typeName:$D.ZodVoid,...WD(D)})};x2=class x2 extends QD{_parse(D){let{ctx:$,status:F}=this._processInputParams(D),X=this._def;if($.parsedType!==c.array)return d($,{code:v.invalid_type,expected:c.array,received:$.parsedType}),t;if(X.exactLength!==null){let G=$.data.length>X.exactLength.value,Y=$.data.length<X.exactLength.value;if(G||Y)d($,{code:G?v.too_big:v.too_small,minimum:Y?X.exactLength.value:void 0,maximum:G?X.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:X.exactLength.message}),F.dirty()}if(X.minLength!==null){if($.data.length<X.minLength.value)d($,{code:v.too_small,minimum:X.minLength.value,type:"array",inclusive:!0,exact:!1,message:X.minLength.message}),F.dirty()}if(X.maxLength!==null){if($.data.length>X.maxLength.value)d($,{code:v.too_big,maximum:X.maxLength.value,type:"array",inclusive:!0,exact:!1,message:X.maxLength.message}),F.dirty()}if($.common.async)return Promise.all([...$.data].map((G,Y)=>{return X.type._parseAsync(new u2($,G,$.path,Y))})).then((G)=>{return q0.mergeArray(F,G)});let J=[...$.data].map((G,Y)=>{return X.type._parseSync(new u2($,G,$.path,Y))});return q0.mergeArray(F,J)}get element(){return this._def.type}min(D,$){return new x2({...this._def,minLength:{value:D,message:s.toString($)}})}max(D,$){return new x2({...this._def,maxLength:{value:D,message:s.toString($)}})}length(D,$){return new x2({...this._def,exactLength:{value:D,message:s.toString($)}})}nonempty(D){return this.min(1,D)}};x2.create=(D,$)=>{return new x2({type:D,minLength:null,maxLength:null,exactLength:null,typeName:$D.ZodArray,...WD($)})};oD=class oD extends QD{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let D=this._def.shape(),$=_D.objectKeys(D);return this._cached={shape:D,keys:$},this._cached}_parse(D){if(this._getType(D)!==c.object){let H=this._getOrReturnCtx(D);return d(H,{code:v.invalid_type,expected:c.object,received:H.parsedType}),t}let{status:F,ctx:X}=this._processInputParams(D),{shape:J,keys:G}=this._getCached(),Y=[];if(!(this._def.catchall instanceof B1&&this._def.unknownKeys==="strip")){for(let H in X.data)if(!G.includes(H))Y.push(H)}let B=[];for(let H of G){let U=J[H],Q=X.data[H];B.push({key:{status:"valid",value:H},value:U._parse(new u2(X,Q,X.path,H)),alwaysSet:H in X.data})}if(this._def.catchall instanceof B1){let H=this._def.unknownKeys;if(H==="passthrough")for(let U of Y)B.push({key:{status:"valid",value:U},value:{status:"valid",value:X.data[U]}});else if(H==="strict"){if(Y.length>0)d(X,{code:v.unrecognized_keys,keys:Y}),F.dirty()}else if(H==="strip");else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let H=this._def.catchall;for(let U of Y){let Q=X.data[U];B.push({key:{status:"valid",value:U},value:H._parse(new u2(X,Q,X.path,U)),alwaysSet:U in X.data})}}if(X.common.async)return Promise.resolve().then(async()=>{let H=[];for(let U of B){let Q=await U.key,V=await U.value;H.push({key:Q,value:V,alwaysSet:U.alwaysSet})}return H}).then((H)=>{return q0.mergeObjectSync(F,H)});else return q0.mergeObjectSync(F,B)}get shape(){return this._def.shape()}strict(D){return s.errToObj,new oD({...this._def,unknownKeys:"strict",...D!==void 0?{errorMap:($,F)=>{let X=this._def.errorMap?.($,F).message??F.defaultError;if($.code==="unrecognized_keys")return{message:s.errToObj(D).message??X};return{message:X}}}:{}})}strip(){return new oD({...this._def,unknownKeys:"strip"})}passthrough(){return new oD({...this._def,unknownKeys:"passthrough"})}extend(D){return new oD({...this._def,shape:()=>({...this._def.shape(),...D})})}merge(D){return new oD({unknownKeys:D._def.unknownKeys,catchall:D._def.catchall,shape:()=>({...this._def.shape(),...D._def.shape()}),typeName:$D.ZodObject})}setKey(D,$){return this.augment({[D]:$})}catchall(D){return new oD({...this._def,catchall:D})}pick(D){let $={};for(let F of _D.objectKeys(D))if(D[F]&&this.shape[F])$[F]=this.shape[F];return new oD({...this._def,shape:()=>$})}omit(D){let $={};for(let F of _D.objectKeys(this.shape))if(!D[F])$[F]=this.shape[F];return new oD({...this._def,shape:()=>$})}deepPartial(){return g6(this)}partial(D){let $={};for(let F of _D.objectKeys(this.shape)){let X=this.shape[F];if(D&&!D[F])$[F]=X;else $[F]=X.optional()}return new oD({...this._def,shape:()=>$})}required(D){let $={};for(let F of _D.objectKeys(this.shape))if(D&&!D[F])$[F]=this.shape[F];else{let J=this.shape[F];while(J instanceof y2)J=J._def.innerType;$[F]=J}return new oD({...this._def,shape:()=>$})}keyof(){return VK(_D.objectKeys(this.shape))}};oD.create=(D,$)=>{return new oD({shape:()=>D,unknownKeys:"strip",catchall:B1.create(),typeName:$D.ZodObject,...WD($)})};oD.strictCreate=(D,$)=>{return new oD({shape:()=>D,unknownKeys:"strict",catchall:B1.create(),typeName:$D.ZodObject,...WD($)})};oD.lazycreate=(D,$)=>{return new oD({shape:D,unknownKeys:"strip",catchall:B1.create(),typeName:$D.ZodObject,...WD($)})};u6=class u6 extends QD{_parse(D){let{ctx:$}=this._processInputParams(D),F=this._def.options;function X(J){for(let Y of J)if(Y.result.status==="valid")return Y.result;for(let Y of J)if(Y.result.status==="dirty")return $.common.issues.push(...Y.ctx.common.issues),Y.result;let G=J.map((Y)=>new l0(Y.ctx.common.issues));return d($,{code:v.invalid_union,unionErrors:G}),t}if($.common.async)return Promise.all(F.map(async(J)=>{let G={...$,common:{...$.common,issues:[]},parent:null};return{result:await J._parseAsync({data:$.data,path:$.path,parent:G}),ctx:G}})).then(X);else{let J=void 0,G=[];for(let B of F){let H={...$,common:{...$.common,issues:[]},parent:null},U=B._parseSync({data:$.data,path:$.path,parent:H});if(U.status==="valid")return U;else if(U.status==="dirty"&&!J)J={result:U,ctx:H};if(H.common.issues.length)G.push(H.common.issues)}if(J)return $.common.issues.push(...J.ctx.common.issues),J.result;let Y=G.map((B)=>new l0(B));return d($,{code:v.invalid_union,unionErrors:Y}),t}}get options(){return this._def.options}};u6.create=(D,$)=>{return new u6({options:D,typeName:$D.ZodUnion,...WD($)})};Z5=class Z5 extends QD{_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==c.object)return d($,{code:v.invalid_type,expected:c.object,received:$.parsedType}),t;let F=this.discriminator,X=$.data[F],J=this.optionsMap.get(X);if(!J)return d($,{code:v.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[F]}),t;if($.common.async)return J._parseAsync({data:$.data,path:$.path,parent:$});else return J._parseSync({data:$.data,path:$.path,parent:$})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(D,$,F){let X=new Map;for(let J of $){let G=E1(J.shape[D]);if(!G.length)throw Error(`A discriminator value for key \`${D}\` could not be extracted from all schema options`);for(let Y of G){if(X.has(Y))throw Error(`Discriminator property ${String(D)} has duplicate value ${String(Y)}`);X.set(Y,J)}}return new Z5({typeName:$D.ZodDiscriminatedUnion,discriminator:D,options:$,optionsMap:X,...WD(F)})}};m6=class m6 extends QD{_parse(D){let{status:$,ctx:F}=this._processInputParams(D),X=(J,G)=>{if(C5(J)||C5(G))return t;let Y=VG(J.value,G.value);if(!Y.valid)return d(F,{code:v.invalid_intersection_types}),t;if(M5(J)||M5(G))$.dirty();return{status:$.value,value:Y.data}};if(F.common.async)return Promise.all([this._def.left._parseAsync({data:F.data,path:F.path,parent:F}),this._def.right._parseAsync({data:F.data,path:F.path,parent:F})]).then(([J,G])=>X(J,G));else return X(this._def.left._parseSync({data:F.data,path:F.path,parent:F}),this._def.right._parseSync({data:F.data,path:F.path,parent:F}))}};m6.create=(D,$,F)=>{return new m6({left:D,right:$,typeName:$D.ZodIntersection,...WD(F)})};H1=class H1 extends QD{_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==c.array)return d(F,{code:v.invalid_type,expected:c.array,received:F.parsedType}),t;if(F.data.length<this._def.items.length)return d(F,{code:v.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t;if(!this._def.rest&&F.data.length>this._def.items.length)d(F,{code:v.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),$.dirty();let J=[...F.data].map((G,Y)=>{let B=this._def.items[Y]||this._def.rest;if(!B)return null;return B._parse(new u2(F,G,F.path,Y))}).filter((G)=>!!G);if(F.common.async)return Promise.all(J).then((G)=>{return q0.mergeArray($,G)});else return q0.mergeArray($,J)}get items(){return this._def.items}rest(D){return new H1({...this._def,rest:D})}};H1.create=(D,$)=>{if(!Array.isArray(D))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new H1({items:D,typeName:$D.ZodTuple,rest:null,...WD($)})};T9=class T9 extends QD{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==c.object)return d(F,{code:v.invalid_type,expected:c.object,received:F.parsedType}),t;let X=[],J=this._def.keyType,G=this._def.valueType;for(let Y in F.data)X.push({key:J._parse(new u2(F,Y,F.path,Y)),value:G._parse(new u2(F,F.data[Y],F.path,Y)),alwaysSet:Y in F.data});if(F.common.async)return q0.mergeObjectAsync($,X);else return q0.mergeObjectSync($,X)}get element(){return this._def.valueType}static create(D,$,F){if($ instanceof QD)return new T9({keyType:D,valueType:$,typeName:$D.ZodRecord,...WD(F)});return new T9({keyType:v2.create(),valueType:D,typeName:$D.ZodRecord,...WD($)})}};w9=class w9 extends QD{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==c.map)return d(F,{code:v.invalid_type,expected:c.map,received:F.parsedType}),t;let X=this._def.keyType,J=this._def.valueType,G=[...F.data.entries()].map(([Y,B],H)=>{return{key:X._parse(new u2(F,Y,F.path,[H,"key"])),value:J._parse(new u2(F,B,F.path,[H,"value"]))}});if(F.common.async){let Y=new Map;return Promise.resolve().then(async()=>{for(let B of G){let H=await B.key,U=await B.value;if(H.status==="aborted"||U.status==="aborted")return t;if(H.status==="dirty"||U.status==="dirty")$.dirty();Y.set(H.value,U.value)}return{status:$.value,value:Y}})}else{let Y=new Map;for(let B of G){let{key:H,value:U}=B;if(H.status==="aborted"||U.status==="aborted")return t;if(H.status==="dirty"||U.status==="dirty")$.dirty();Y.set(H.value,U.value)}return{status:$.value,value:Y}}}};w9.create=(D,$,F)=>{return new w9({valueType:$,keyType:D,typeName:$D.ZodMap,...WD(F)})};k8=class k8 extends QD{_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==c.set)return d(F,{code:v.invalid_type,expected:c.set,received:F.parsedType}),t;let X=this._def;if(X.minSize!==null){if(F.data.size<X.minSize.value)d(F,{code:v.too_small,minimum:X.minSize.value,type:"set",inclusive:!0,exact:!1,message:X.minSize.message}),$.dirty()}if(X.maxSize!==null){if(F.data.size>X.maxSize.value)d(F,{code:v.too_big,maximum:X.maxSize.value,type:"set",inclusive:!0,exact:!1,message:X.maxSize.message}),$.dirty()}let J=this._def.valueType;function G(B){let H=new Set;for(let U of B){if(U.status==="aborted")return t;if(U.status==="dirty")$.dirty();H.add(U.value)}return{status:$.value,value:H}}let Y=[...F.data.values()].map((B,H)=>J._parse(new u2(F,B,F.path,H)));if(F.common.async)return Promise.all(Y).then((B)=>G(B));else return G(Y)}min(D,$){return new k8({...this._def,minSize:{value:D,message:s.toString($)}})}max(D,$){return new k8({...this._def,maxSize:{value:D,message:s.toString($)}})}size(D,$){return this.min(D,$).max(D,$)}nonempty(D){return this.min(1,D)}};k8.create=(D,$)=>{return new k8({valueType:D,minSize:null,maxSize:null,typeName:$D.ZodSet,...WD($)})};h6=class h6 extends QD{constructor(){super(...arguments);this.validate=this.implement}_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==c.function)return d($,{code:v.invalid_type,expected:c.function,received:$.parsedType}),t;function F(Y,B){return z9({data:Y,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,b6(),O1].filter((H)=>!!H),issueData:{code:v.invalid_arguments,argumentsError:B}})}function X(Y,B){return z9({data:Y,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,b6(),O1].filter((H)=>!!H),issueData:{code:v.invalid_return_type,returnTypeError:B}})}let J={errorMap:$.common.contextualErrorMap},G=$.data;if(this._def.returns instanceof b8){let Y=this;return w0(async function(...B){let H=new l0([]),U=await Y._def.args.parseAsync(B,J).catch((A)=>{throw H.addIssue(F(B,A)),H}),Q=await Reflect.apply(G,this,U);return await Y._def.returns._def.type.parseAsync(Q,J).catch((A)=>{throw H.addIssue(X(Q,A)),H})})}else{let Y=this;return w0(function(...B){let H=Y._def.args.safeParse(B,J);if(!H.success)throw new l0([F(B,H.error)]);let U=Reflect.apply(G,this,H.data),Q=Y._def.returns.safeParse(U,J);if(!Q.success)throw new l0([X(U,Q.error)]);return Q.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...D){return new h6({...this._def,args:H1.create(D).rest(l1.create())})}returns(D){return new h6({...this._def,returns:D})}implement(D){return this.parse(D)}strictImplement(D){return this.parse(D)}static create(D,$,F){return new h6({args:D?D:H1.create([]).rest(l1.create()),returns:$||l1.create(),typeName:$D.ZodFunction,...WD(F)})}};c6=class c6 extends QD{get schema(){return this._def.getter()}_parse(D){let{ctx:$}=this._processInputParams(D);return this._def.getter()._parse({data:$.data,path:$.path,parent:$})}};c6.create=(D,$)=>{return new c6({getter:D,typeName:$D.ZodLazy,...WD($)})};p6=class p6 extends QD{_parse(D){if(D.data!==this._def.value){let $=this._getOrReturnCtx(D);return d($,{received:$.data,code:v.invalid_literal,expected:this._def.value}),t}return{status:"valid",value:D.data}}get value(){return this._def.value}};p6.create=(D,$)=>{return new p6({value:D,typeName:$D.ZodLiteral,...WD($)})};r1=class r1 extends QD{_parse(D){if(typeof D.data!=="string"){let $=this._getOrReturnCtx(D),F=this._def.values;return d($,{expected:_D.joinValues(F),received:$.parsedType,code:v.invalid_type}),t}if(!this._cache)this._cache=new Set(this._def.values);if(!this._cache.has(D.data)){let $=this._getOrReturnCtx(D),F=this._def.values;return d($,{received:$.data,code:v.invalid_enum_value,options:F}),t}return w0(D.data)}get options(){return this._def.values}get enum(){let D={};for(let $ of this._def.values)D[$]=$;return D}get Values(){let D={};for(let $ of this._def.values)D[$]=$;return D}get Enum(){let D={};for(let $ of this._def.values)D[$]=$;return D}extract(D,$=this._def){return r1.create(D,{...this._def,...$})}exclude(D,$=this._def){return r1.create(this.options.filter((F)=>!D.includes(F)),{...this._def,...$})}};r1.create=VK;d6=class d6 extends QD{_parse(D){let $=_D.getValidEnumValues(this._def.values),F=this._getOrReturnCtx(D);if(F.parsedType!==c.string&&F.parsedType!==c.number){let X=_D.objectValues($);return d(F,{expected:_D.joinValues(X),received:F.parsedType,code:v.invalid_type}),t}if(!this._cache)this._cache=new Set(_D.getValidEnumValues(this._def.values));if(!this._cache.has(D.data)){let X=_D.objectValues($);return d(F,{received:F.data,code:v.invalid_enum_value,options:X}),t}return w0(D.data)}get enum(){return this._def.values}};d6.create=(D,$)=>{return new d6({values:D,typeName:$D.ZodNativeEnum,...WD($)})};b8=class b8 extends QD{unwrap(){return this._def.type}_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==c.promise&&$.common.async===!1)return d($,{code:v.invalid_type,expected:c.promise,received:$.parsedType}),t;let F=$.parsedType===c.promise?$.data:Promise.resolve($.data);return w0(F.then((X)=>{return this._def.type.parseAsync(X,{path:$.path,errorMap:$.common.contextualErrorMap})}))}};b8.create=(D,$)=>{return new b8({type:D,typeName:$D.ZodPromise,...WD($)})};m2=class m2 extends QD{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===$D.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(D){let{status:$,ctx:F}=this._processInputParams(D),X=this._def.effect||null,J={addIssue:(G)=>{if(d(F,G),G.fatal)$.abort();else $.dirty()},get path(){return F.path}};if(J.addIssue=J.addIssue.bind(J),X.type==="preprocess"){let G=X.transform(F.data,J);if(F.common.async)return Promise.resolve(G).then(async(Y)=>{if($.value==="aborted")return t;let B=await this._def.schema._parseAsync({data:Y,path:F.path,parent:F});if(B.status==="aborted")return t;if(B.status==="dirty")return S8(B.value);if($.value==="dirty")return S8(B.value);return B});else{if($.value==="aborted")return t;let Y=this._def.schema._parseSync({data:G,path:F.path,parent:F});if(Y.status==="aborted")return t;if(Y.status==="dirty")return S8(Y.value);if($.value==="dirty")return S8(Y.value);return Y}}if(X.type==="refinement"){let G=(Y)=>{let B=X.refinement(Y,J);if(F.common.async)return Promise.resolve(B);if(B instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return Y};if(F.common.async===!1){let Y=this._def.schema._parseSync({data:F.data,path:F.path,parent:F});if(Y.status==="aborted")return t;if(Y.status==="dirty")$.dirty();return G(Y.value),{status:$.value,value:Y.value}}else return this._def.schema._parseAsync({data:F.data,path:F.path,parent:F}).then((Y)=>{if(Y.status==="aborted")return t;if(Y.status==="dirty")$.dirty();return G(Y.value).then(()=>{return{status:$.value,value:Y.value}})})}if(X.type==="transform")if(F.common.async===!1){let G=this._def.schema._parseSync({data:F.data,path:F.path,parent:F});if(!d1(G))return t;let Y=X.transform(G.value,J);if(Y instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:$.value,value:Y}}else return this._def.schema._parseAsync({data:F.data,path:F.path,parent:F}).then((G)=>{if(!d1(G))return t;return Promise.resolve(X.transform(G.value,J)).then((Y)=>({status:$.value,value:Y}))});_D.assertNever(X)}};m2.create=(D,$,F)=>{return new m2({schema:D,typeName:$D.ZodEffects,effect:$,...WD(F)})};m2.createWithPreprocess=(D,$,F)=>{return new m2({schema:$,effect:{type:"preprocess",transform:D},typeName:$D.ZodEffects,...WD(F)})};y2=class y2 extends QD{_parse(D){if(this._getType(D)===c.undefined)return w0(void 0);return this._def.innerType._parse(D)}unwrap(){return this._def.innerType}};y2.create=(D,$)=>{return new y2({innerType:D,typeName:$D.ZodOptional,...WD($)})};j1=class j1 extends QD{_parse(D){if(this._getType(D)===c.null)return w0(null);return this._def.innerType._parse(D)}unwrap(){return this._def.innerType}};j1.create=(D,$)=>{return new j1({innerType:D,typeName:$D.ZodNullable,...WD($)})};l6=class l6 extends QD{_parse(D){let{ctx:$}=this._processInputParams(D),F=$.data;if($.parsedType===c.undefined)F=this._def.defaultValue();return this._def.innerType._parse({data:F,path:$.path,parent:$})}removeDefault(){return this._def.innerType}};l6.create=(D,$)=>{return new l6({innerType:D,typeName:$D.ZodDefault,defaultValue:typeof $.default==="function"?$.default:()=>$.default,...WD($)})};i6=class i6 extends QD{_parse(D){let{ctx:$}=this._processInputParams(D),F={...$,common:{...$.common,issues:[]}},X=this._def.innerType._parse({data:F.data,path:F.path,parent:{...F}});if(f6(X))return X.then((J)=>{return{status:"valid",value:J.status==="valid"?J.value:this._def.catchValue({get error(){return new l0(F.common.issues)},input:F.data})}});else return{status:"valid",value:X.status==="valid"?X.value:this._def.catchValue({get error(){return new l0(F.common.issues)},input:F.data})}}removeCatch(){return this._def.innerType}};i6.create=(D,$)=>{return new i6({innerType:D,typeName:$D.ZodCatch,catchValue:typeof $.catch==="function"?$.catch:()=>$.catch,...WD($)})};k9=class k9 extends QD{_parse(D){if(this._getType(D)!==c.nan){let F=this._getOrReturnCtx(D);return d(F,{code:v.invalid_type,expected:c.nan,received:F.parsedType}),t}return{status:"valid",value:D.data}}};k9.create=(D)=>{return new k9({typeName:$D.ZodNaN,...WD(D)})};Vf=Symbol("zod_brand");R5=class R5 extends QD{_parse(D){let{ctx:$}=this._processInputParams(D),F=$.data;return this._def.type._parse({data:F,path:$.path,parent:$})}unwrap(){return this._def.type}};b9=class b9 extends QD{_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.common.async)return(async()=>{let J=await this._def.in._parseAsync({data:F.data,path:F.path,parent:F});if(J.status==="aborted")return t;if(J.status==="dirty")return $.dirty(),S8(J.value);else return this._def.out._parseAsync({data:J.value,path:F.path,parent:F})})();else{let X=this._def.in._parseSync({data:F.data,path:F.path,parent:F});if(X.status==="aborted")return t;if(X.status==="dirty")return $.dirty(),{status:"dirty",value:X.value};else return this._def.out._parseSync({data:X.value,path:F.path,parent:F})}}static create(D,$){return new b9({in:D,out:$,typeName:$D.ZodPipeline})}};n6=class n6 extends QD{_parse(D){let $=this._def.innerType._parse(D),F=(X)=>{if(d1(X))X.value=Object.freeze(X.value);return X};return f6($)?$.then((X)=>F(X)):F($)}unwrap(){return this._def.innerType}};n6.create=(D,$)=>{return new n6({innerType:D,typeName:$D.ZodReadonly,...WD($)})};Af={object:oD.lazycreate};(function(D){D.ZodString="ZodString",D.ZodNumber="ZodNumber",D.ZodNaN="ZodNaN",D.ZodBigInt="ZodBigInt",D.ZodBoolean="ZodBoolean",D.ZodDate="ZodDate",D.ZodSymbol="ZodSymbol",D.ZodUndefined="ZodUndefined",D.ZodNull="ZodNull",D.ZodAny="ZodAny",D.ZodUnknown="ZodUnknown",D.ZodNever="ZodNever",D.ZodVoid="ZodVoid",D.ZodArray="ZodArray",D.ZodObject="ZodObject",D.ZodUnion="ZodUnion",D.ZodDiscriminatedUnion="ZodDiscriminatedUnion",D.ZodIntersection="ZodIntersection",D.ZodTuple="ZodTuple",D.ZodRecord="ZodRecord",D.ZodMap="ZodMap",D.ZodSet="ZodSet",D.ZodFunction="ZodFunction",D.ZodLazy="ZodLazy",D.ZodLiteral="ZodLiteral",D.ZodEnum="ZodEnum",D.ZodEffects="ZodEffects",D.ZodNativeEnum="ZodNativeEnum",D.ZodOptional="ZodOptional",D.ZodNullable="ZodNullable",D.ZodDefault="ZodDefault",D.ZodCatch="ZodCatch",D.ZodPromise="ZodPromise",D.ZodBranded="ZodBranded",D.ZodPipeline="ZodPipeline",D.ZodReadonly="ZodReadonly"})($D||($D={}));KK=v2.create,_K=i1.create,_f=k9.create,Cf=n1.create,CK=v6.create,Mf=T8.create,Zf=I9.create,Rf=x6.create,Of=y6.create,Ef=w8.create,jf=l1.create,Nf=B1.create,Pf=S9.create,Lf=x2.create,qf=oD.create,zf=oD.strictCreate,If=u6.create,Sf=Z5.create,Tf=m6.create,wf=H1.create,kf=T9.create,bf=w9.create,ff=k8.create,gf=h6.create,hf=c6.create,vf=p6.create,xf=r1.create,yf=d6.create,uf=b8.create,mf=m2.create,cf=y2.create,pf=j1.create,df=m2.createWithPreprocess,lf=b9.create,af={string:(D)=>v2.create({...D,coerce:!0}),number:(D)=>i1.create({...D,coerce:!0}),boolean:(D)=>v6.create({...D,coerce:!0}),bigint:(D)=>n1.create({...D,coerce:!0}),date:(D)=>T8.create({...D,coerce:!0})},of=t});var W={};z8(W,{void:()=>Pf,util:()=>_D,unknown:()=>jf,union:()=>If,undefined:()=>Rf,tuple:()=>wf,transformer:()=>mf,symbol:()=>Zf,string:()=>KK,strictObject:()=>zf,setErrorMap:()=>pb,set:()=>ff,record:()=>kf,quotelessJson:()=>mb,promise:()=>uf,preprocess:()=>df,pipeline:()=>lf,ostring:()=>nf,optional:()=>cf,onumber:()=>rf,oboolean:()=>sf,objectUtil:()=>HG,object:()=>qf,number:()=>_K,nullable:()=>pf,null:()=>Of,never:()=>Nf,nativeEnum:()=>yf,nan:()=>_f,map:()=>bf,makeIssue:()=>z9,literal:()=>vf,lazy:()=>hf,late:()=>Af,isValid:()=>d1,isDirty:()=>M5,isAsync:()=>f6,isAborted:()=>C5,intersection:()=>Tf,instanceof:()=>Kf,getParsedType:()=>Y1,getErrorMap:()=>b6,function:()=>gf,enum:()=>xf,effect:()=>mf,discriminatedUnion:()=>Sf,defaultErrorMap:()=>O1,datetimeRegex:()=>QK,date:()=>Mf,custom:()=>AK,coerce:()=>af,boolean:()=>CK,bigint:()=>Cf,array:()=>Lf,any:()=>Ef,addIssueToContext:()=>d,ZodVoid:()=>S9,ZodUnknown:()=>l1,ZodUnion:()=>u6,ZodUndefined:()=>x6,ZodType:()=>QD,ZodTuple:()=>H1,ZodTransformer:()=>m2,ZodSymbol:()=>I9,ZodString:()=>v2,ZodSet:()=>k8,ZodSchema:()=>QD,ZodRecord:()=>T9,ZodReadonly:()=>n6,ZodPromise:()=>b8,ZodPipeline:()=>b9,ZodParsedType:()=>c,ZodOptional:()=>y2,ZodObject:()=>oD,ZodNumber:()=>i1,ZodNullable:()=>j1,ZodNull:()=>y6,ZodNever:()=>B1,ZodNativeEnum:()=>d6,ZodNaN:()=>k9,ZodMap:()=>w9,ZodLiteral:()=>p6,ZodLazy:()=>c6,ZodIssueCode:()=>v,ZodIntersection:()=>m6,ZodFunction:()=>h6,ZodFirstPartyTypeKind:()=>$D,ZodError:()=>l0,ZodEnum:()=>r1,ZodEffects:()=>m2,ZodDiscriminatedUnion:()=>Z5,ZodDefault:()=>l6,ZodDate:()=>T8,ZodCatch:()=>i6,ZodBranded:()=>R5,ZodBoolean:()=>v6,ZodBigInt:()=>n1,ZodArray:()=>x2,ZodAny:()=>w8,Schema:()=>QD,ParseStatus:()=>q0,OK:()=>w0,NEVER:()=>of,INVALID:()=>t,EMPTY_PATH:()=>db,DIRTY:()=>S8,BRAND:()=>Vf});var AG=R(()=>{_5();UG();GK();q9();MK();K5()});var jD=R(()=>{AG();AG()});function KG(D){return Object.prototype.hasOwnProperty.call(IK,D)}var YD,Q2,ZK,RK,OK,EK,jK,NK,PK,LK,qK,O5,E5,zK,IK;var SK=R(()=>{jD();YD={WORKER_ONLINE:"worker.online",WORKER_OFFLINE:"worker.offline",CHAT_MESSAGE:"chat.message",AGENT_THINKING:"agent.thinking",AGENT_TOOL_CALL:"agent.tool_call",AGENT_DONE:"agent.done",CONFIG_CHANGED:"config.changed",LOGS_LINE:"logs.line",APPROVAL_REQUESTED:"approval.requested",ENROLLMENT_OTP:"enrollment.otp",ENROLLMENT_APPROVED:"enrollment.approved",ENROLLMENT_PENDING:"enrollment.pending"},Q2=W.object({workerId:W.string().min(1)}),ZK=Q2.extend({displayName:W.string().optional(),deviceId:W.string().min(1),connectedAt:W.number().int()}),RK=Q2.extend({deviceId:W.string().min(1),reason:W.enum(["disconnected","expired","kicked"]).optional(),disconnectedAt:W.number().int()}),OK=Q2.extend({conversationId:W.string().min(1),role:W.enum(["user","assistant","system"]),content:W.string(),createdAt:W.number().int()}),EK=Q2.extend({conversationId:W.string().min(1),taskId:W.string().min(1).optional(),chunk:W.string().optional()}),jK=Q2.extend({conversationId:W.string().min(1),taskId:W.string().min(1).optional(),toolCallId:W.string().min(1),toolName:W.string().min(1),status:W.enum(["pending","running","success","error"]),args:W.unknown().optional(),result:W.unknown().optional()}),NK=Q2.extend({conversationId:W.string().min(1),taskId:W.string().min(1).optional(),finishReason:W.enum(["stop","length","tool_use","error","cancelled"]),usage:W.object({inputTokens:W.number().int().nonnegative().optional(),outputTokens:W.number().int().nonnegative().optional(),totalTokens:W.number().int().nonnegative().optional()}).optional()}),PK=Q2.extend({version:W.number().int().nonnegative(),changedAt:W.number().int()}),LK=Q2.extend({stream:W.enum(["stdout","stderr"]),line:W.string(),ts:W.number().int()}),qK=Q2.extend({taskId:W.string().min(1),toolCallId:W.string().min(1),toolName:W.string().min(1),params:W.record(W.unknown()),expiresAt:W.number().int()}),O5=Q2.extend({otp:W.string().min(1),expiresAt:W.number().int()}),E5=Q2.extend({deviceToken:W.string().min(1)}),zK=Q2.extend({otp:W.string().min(1),displayName:W.string().min(1).optional(),submittedAt:W.number().int(),expiresAt:W.number().int(),reason:W.enum(["submitted","approved","rejected","expired","abandoned"])}),IK={[YD.WORKER_ONLINE]:ZK,[YD.WORKER_OFFLINE]:RK,[YD.CHAT_MESSAGE]:OK,[YD.AGENT_THINKING]:EK,[YD.AGENT_TOOL_CALL]:jK,[YD.AGENT_DONE]:NK,[YD.CONFIG_CHANGED]:PK,[YD.LOGS_LINE]:LK,[YD.APPROVAL_REQUESTED]:qK,[YD.ENROLLMENT_OTP]:O5,[YD.ENROLLMENT_APPROVED]:E5,[YD.ENROLLMENT_PENDING]:zK}});function r6(D){if(typeof D!=="string"||D.length===0)return{hits:[]};let $=[];for(let J of wK){J.regex.lastIndex=0;let G=J.regex.exec(D);while(G!==null)$.push({rule:J.id,label:J.label,preview:TK(G[0]),index:G.index}),G=J.regex.exec(D)}let F=$.map((J)=>({start:J.index,end:J.index+J.preview.length}));f9.lastIndex=0;let X=f9.exec(D);while(X!==null){let J=X[0],G=X.index;if(!tf(G,G+J.length,F)&&ef(J)>=4)$.push({rule:"high-entropy",label:"high-entropy token-like string",preview:TK(J),index:G});X=f9.exec(D)}return $.sort((J,G)=>J.index-G.index),{hits:$}}function z0(D){let $=r6(D);if($.hits.length===0)return{body:D,hits:[]};let F=[...$.hits].sort((J,G)=>G.index-J.index),X=D;for(let J of F){let G=J.index,Y=Dg(X,G,J.rule);if(Y===null)continue;X=`${X.slice(0,G)}[REDACTED:${J.rule}]${X.slice(G+Y.length)}`}return{body:X,hits:$.hits}}function TK(D){if(D.length<=6)return"*".repeat(D.length);return`${D.slice(0,3)}\u2026${D.slice(-3)}`}function tf(D,$,F){for(let X of F)if(D<X.end&&$>X.start)return!0;return!1}function ef(D){if(D.length===0)return 0;let $=new Map;for(let X of D)$.set(X,($.get(X)??0)+1);let F=0;for(let X of $.values()){let J=X/D.length;F-=J*Math.log2(J)}return F}function Dg(D,$,F){if(F==="high-entropy"){f9.lastIndex=$;let G=f9.exec(D);return G&&G.index===$?G[0]:null}let X=wK.find((G)=>G.id===F);if(!X)return null;X.regex.lastIndex=$;let J=X.regex.exec(D);return J&&J.index===$?J[0]:null}var wK,f9;var _G=R(()=>{wK=[{id:"sk-token",label:"OpenAI/Anthropic-style sk- token",regex:/sk-[\w-]{20,}/g},{id:"jwt",label:"JWT-like token",regex:/eyJ[\w=.-]{20,}/g},{id:"bearer-token",label:"Bearer authorization token",regex:/\b[Bb]earer\s+[\w.-]{20,}/g},{id:"aws-access-key",label:"AWS access key id",regex:/\b(?:AKIA|ASIA)[0-9A-Z]{16}\b/g},{id:"github-token",label:"GitHub-style token (ghp / gho / ghs / ghu / ghr)",regex:/\bgh[posur]_[A-Za-z0-9]{36,}\b/g},{id:"slack-token",label:"Slack token (xoxa / xoxb / xoxp / xoxr / xoxs)",regex:/\bxox[abprs]-[A-Za-z0-9-]{10,}/g},{id:"stripe-live",label:"Stripe live secret key",regex:/\bsk_live_[A-Za-z0-9]{16,}/g},{id:"gcp-api-key",label:"Google Cloud / Firebase API key",regex:/\bAIza[\w-]{35}\b/g},{id:"pem-private-key",label:"PEM-formatted private key block",regex:/-----BEGIN (?:RSA |EC |DSA |OPENSSH )?PRIVATE KEY-----[\s\S]+?-----END (?:RSA |EC |DSA |OPENSSH )?PRIVATE KEY-----/g}],f9=/[\w+/=-]{32,}/g});function q5(D){return RG.includes(D)}function Bg(D){return Gg.test(D)}function s6(D){if(Array.isArray(D))return D.map(s6);if(D!==null&&typeof D==="object"){let $={};for(let[F,X]of Object.entries(D))if(typeof X==="string"&&Bg(F))$[F]=Yg;else if(typeof X==="string")$[F]=z0(X).body;else $[F]=s6(X);return $}if(typeof D==="string")return z0(D).body;return D}function I5(D){return{...D,summary:z0(D.summary).body,rollback:z0(D.rollback).body,target:z0(D.target).body,evidence:D.evidence.map((F)=>s6(F)),...D.payload===void 0?{}:{payload:s6(D.payload)}}}var $g,Fg,kK,g9,j5,a6,CG,MG,ZG,N5,P5,L5,bK,RG,Xg,o6,Jg,z5,Gg,Yg="<redacted>";var OG=R(()=>{jD();_G();$g=/^[a-z0-9][a-z0-9._-]*$/,Fg=/^[a-z][a-z0-9-]*$/,kK=/^[a-z][a-z0-9-]*$/,g9=W.string().min(1).regex($g,"admission id must be lowercase alphanumeric with . _ -"),j5=W.string().min(1).regex(Fg,"admission kind must be kebab-case"),a6=W.enum(["low","medium","high"]),CG=W.enum(["pending","approved","rejected","applied","failed"]),MG=W.enum(["approved","rejected","applied","failed"]),ZG=W.enum(["conversation","message","tool-call","observation","artifact","memory","log"]),N5=W.object({at:W.string().min(1),kind:ZG,summary:W.string().max(500).optional(),notes:W.string().max(2000).optional(),ref:W.string().min(1)}),P5=W.object({confidence:W.number().min(0).max(1),createdAt:W.string().min(1),evidence:W.array(N5).readonly(),id:g9,kind:j5,payload:W.record(W.string(),W.unknown()).optional(),risk:a6,rollback:W.string().min(1),scopeId:W.string().min(1).optional(),soulId:W.string().min(1).regex(kK),status:CG,summary:W.string().min(1).max(2000),target:W.string().min(1),updatedAt:W.string().min(1)}),L5=W.object({confidence:W.number().min(0).max(1),evidence:W.array(N5).readonly().optional(),id:g9,kind:j5,payload:W.record(W.string(),W.unknown()).optional(),risk:a6.default("high"),rollback:W.string().min(1),scopeId:W.string().min(1).optional(),soulId:W.string().min(1).regex(kK),summary:W.string().min(1).max(2000),target:W.string().min(1)}),bK=W.object({appliedAt:W.string().min(1).optional(),decidedAt:W.string().min(1),decidedBy:W.string().min(1),decision:MG,failureReason:W.string().max(4000).optional(),id:W.number().int().positive(),proposalId:g9,reason:W.string().max(2000).optional()}),RG=["memory-add","brain-skill-add"];Xg=/^[a-z0-9][a-z0-9._-]*$/,o6=W.object({body:W.string().min(1).max(20000),topic:W.string().min(1).regex(Xg).optional(),indexEntry:W.string().min(1).max(280).optional()}),Jg=/^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$/,z5=W.object({body:W.string().min(1).max(20000),skillId:W.string().min(1).regex(Jg),overwrite:W.boolean().optional()}),Gg=/token|api[-_ ]?key|password|secret|bearer|auth(?:orization)?|credential/i});function h5(D){if(!Ug.has(D.sensitivity))return D;let $={...D,ref:fK};if(D.hash!==void 0)$.hash=fK;return $}var Hg,Wg,S5,T5,w5,k5,b5,f5,g5,Ug,fK="<redacted>";var gK=R(()=>{jD();Hg=/^[a-z0-9][a-z0-9._-]*$/,Wg=/^[a-z][a-z0-9-]*$/,S5=W.string().min(1).regex(Hg,"artifact id must be lowercase alphanumeric with . _ -"),T5=W.string().min(1).regex(Wg,"artifact type must be kebab-case"),w5=W.enum(["public","internal","confidential","secret"]),k5=W.enum(["active","archived","removed"]),b5=W.enum(["operator","brain-runtime","executor","channel-import"]),f5=W.object({createdAt:W.string().min(1),evidenceRefs:W.array(W.string().min(1)).readonly(),hash:W.string().regex(/^[a-f0-9]{64}$/).optional(),id:S5,metadata:W.record(W.string(),W.unknown()).optional(),ref:W.string().min(1),retention:W.string().min(1).optional(),scopeId:W.string().min(1).optional(),sensitivity:w5,source:b5,status:k5,summary:W.string().max(2000).optional(),type:T5,updatedAt:W.string().min(1)}),g5=W.object({evidenceRefs:W.array(W.string().min(1)).readonly().optional(),hash:W.string().regex(/^[a-f0-9]{64}$/).optional(),id:S5,metadata:W.record(W.string(),W.unknown()).optional(),ref:W.string().min(1),retention:W.string().min(1).optional(),scopeId:W.string().min(1).optional(),sensitivity:w5.default("internal"),source:b5,status:k5.default("active"),summary:W.string().max(2000).optional(),type:T5}),Ug=new Set(["confidential","secret"])});function u5(D){if(D.length===0)return 0;return Math.max(1,Math.ceil(D.length/4))}var Qg,v5,EG,jG,NG,x5,hK,y5=4000;var vK=R(()=>{jD();OG();Qg=/^[a-z][a-z0-9-]*$/,v5=W.string().min(1).regex(Qg,"brief section id must be kebab-case"),EG=W.enum(["agent-doc","soul-doc","memory-doc","rollup-doc","risk-policy","admission-summary","artifact-summary","scope-manifest","soul-skeleton"]),jG=W.object({body:W.string().min(1),id:v5,protected:W.boolean(),source:EG,tokens:W.number().int().nonnegative()}),NG=W.object({estimatedTokens:W.number().int().nonnegative(),id:v5,reason:W.string().min(1)}),x5=W.object({artifactRefs:W.array(W.unknown()).transform((D)=>D.filter(($)=>typeof $==="string").map(($)=>$.trim()).filter(($)=>$.length>0)).pipe(W.array(W.string().min(1)).readonly()).optional(),executor:W.string().min(1).optional(),risk:a6.optional(),scopeId:W.string().min(1).optional(),soulId:W.string().min(1).optional(),task:W.string().min(1).max(4000),tokenBudget:W.number().int().min(200).max(50000).optional()}),hK=W.object({compiledAt:W.string().min(1),droppedSections:W.array(NG).readonly(),executor:W.string().min(1).optional(),scopeId:W.string().min(1).optional(),sections:W.array(jG).readonly(),soulId:W.string().min(1),task:W.string().min(1),tokensBudget:W.number().int().positive(),tokensUsed:W.number().int().nonnegative(),warnings:W.array(W.string().min(1)).readonly()})});var ZD=u((Rg)=>{var PG=Symbol.for("yaml.alias"),xK=Symbol.for("yaml.document"),m5=Symbol.for("yaml.map"),yK=Symbol.for("yaml.pair"),LG=Symbol.for("yaml.scalar"),c5=Symbol.for("yaml.seq"),N1=Symbol.for("yaml.node.type"),Vg=(D)=>!!D&&typeof D==="object"&&D[N1]===PG,Ag=(D)=>!!D&&typeof D==="object"&&D[N1]===xK,Kg=(D)=>!!D&&typeof D==="object"&&D[N1]===m5,_g=(D)=>!!D&&typeof D==="object"&&D[N1]===yK,uK=(D)=>!!D&&typeof D==="object"&&D[N1]===LG,Cg=(D)=>!!D&&typeof D==="object"&&D[N1]===c5;function mK(D){if(D&&typeof D==="object")switch(D[N1]){case m5:case c5:return!0}return!1}function Mg(D){if(D&&typeof D==="object")switch(D[N1]){case PG:case m5:case LG:case c5:return!0}return!1}var Zg=(D)=>(uK(D)||mK(D))&&!!D.anchor;Rg.ALIAS=PG;Rg.DOC=xK;Rg.MAP=m5;Rg.NODE_TYPE=N1;Rg.PAIR=yK;Rg.SCALAR=LG;Rg.SEQ=c5;Rg.hasAnchor=Zg;Rg.isAlias=Vg;Rg.isCollection=mK;Rg.isDocument=Ag;Rg.isMap=Kg;Rg.isNode=Mg;Rg.isPair=_g;Rg.isScalar=uK;Rg.isSeq=Cg});var h9=u((hg)=>{var _0=ZD(),i0=Symbol("break visit"),cK=Symbol("skip children"),W1=Symbol("remove node");function p5(D,$){let F=pK($);if(_0.isDocument(D)){if(t6(null,D.contents,F,Object.freeze([D]))===W1)D.contents=null}else t6(null,D,F,Object.freeze([]))}p5.BREAK=i0;p5.SKIP=cK;p5.REMOVE=W1;function t6(D,$,F,X){let J=dK(D,$,F,X);if(_0.isNode(J)||_0.isPair(J))return lK(D,X,J),t6(D,J,F,X);if(typeof J!=="symbol"){if(_0.isCollection($)){X=Object.freeze(X.concat($));for(let G=0;G<$.items.length;++G){let Y=t6(G,$.items[G],F,X);if(typeof Y==="number")G=Y-1;else if(Y===i0)return i0;else if(Y===W1)$.items.splice(G,1),G-=1}}else if(_0.isPair($)){X=Object.freeze(X.concat($));let G=t6("key",$.key,F,X);if(G===i0)return i0;else if(G===W1)$.key=null;let Y=t6("value",$.value,F,X);if(Y===i0)return i0;else if(Y===W1)$.value=null}}return J}async function d5(D,$){let F=pK($);if(_0.isDocument(D)){if(await e6(null,D.contents,F,Object.freeze([D]))===W1)D.contents=null}else await e6(null,D,F,Object.freeze([]))}d5.BREAK=i0;d5.SKIP=cK;d5.REMOVE=W1;async function e6(D,$,F,X){let J=await dK(D,$,F,X);if(_0.isNode(J)||_0.isPair(J))return lK(D,X,J),e6(D,J,F,X);if(typeof J!=="symbol"){if(_0.isCollection($)){X=Object.freeze(X.concat($));for(let G=0;G<$.items.length;++G){let Y=await e6(G,$.items[G],F,X);if(typeof Y==="number")G=Y-1;else if(Y===i0)return i0;else if(Y===W1)$.items.splice(G,1),G-=1}}else if(_0.isPair($)){X=Object.freeze(X.concat($));let G=await e6("key",$.key,F,X);if(G===i0)return i0;else if(G===W1)$.key=null;let Y=await e6("value",$.value,F,X);if(Y===i0)return i0;else if(Y===W1)$.value=null}}return J}function pK(D){if(typeof D==="object"&&(D.Collection||D.Node||D.Value))return Object.assign({Alias:D.Node,Map:D.Node,Scalar:D.Node,Seq:D.Node},D.Value&&{Map:D.Value,Scalar:D.Value,Seq:D.Value},D.Collection&&{Map:D.Collection,Seq:D.Collection},D);return D}function dK(D,$,F,X){if(typeof F==="function")return F(D,$,X);if(_0.isMap($))return F.Map?.(D,$,X);if(_0.isSeq($))return F.Seq?.(D,$,X);if(_0.isPair($))return F.Pair?.(D,$,X);if(_0.isScalar($))return F.Scalar?.(D,$,X);if(_0.isAlias($))return F.Alias?.(D,$,X);return}function lK(D,$,F){let X=$[$.length-1];if(_0.isCollection(X))X.items[D]=F;else if(_0.isPair(X))if(D==="key")X.key=F;else X.value=F;else if(_0.isDocument(X))X.contents=F;else{let J=_0.isAlias(X)?"alias":"scalar";throw Error(`Cannot replace node with ${J} parent`)}}hg.visit=p5;hg.visitAsync=d5});var qG=u((cg)=>{var iK=ZD(),yg=h9(),ug={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},mg=(D)=>D.replace(/[!,[\]{}]/g,($)=>ug[$]);class V2{constructor(D,$){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},V2.defaultYaml,D),this.tags=Object.assign({},V2.defaultTags,$)}clone(){let D=new V2(this.yaml,this.tags);return D.docStart=this.docStart,D}atDocument(){let D=new V2(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:V2.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},V2.defaultTags);break}return D}add(D,$){if(this.atNextDocument)this.yaml={explicit:V2.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},V2.defaultTags),this.atNextDocument=!1;let F=D.trim().split(/[ \t]+/),X=F.shift();switch(X){case"%TAG":{if(F.length!==2){if($(0,"%TAG directive should contain exactly two parts"),F.length<2)return!1}let[J,G]=F;return this.tags[J]=G,!0}case"%YAML":{if(this.yaml.explicit=!0,F.length!==1)return $(0,"%YAML directive should contain exactly one part"),!1;let[J]=F;if(J==="1.1"||J==="1.2")return this.yaml.version=J,!0;else{let G=/^\d+\.\d+$/.test(J);return $(6,`Unsupported YAML version ${J}`,G),!1}}default:return $(0,`Unknown directive ${X}`,!0),!1}}tagName(D,$){if(D==="!")return"!";if(D[0]!=="!")return $(`Not a valid tag: ${D}`),null;if(D[1]==="<"){let G=D.slice(2,-1);if(G==="!"||G==="!!")return $(`Verbatim tags aren't resolved, so ${D} is invalid.`),null;if(D[D.length-1]!==">")$("Verbatim tags must end with a >");return G}let[,F,X]=D.match(/^(.*!)([^!]*)$/s);if(!X)$(`The ${D} tag has no suffix`);let J=this.tags[F];if(J)try{return J+decodeURIComponent(X)}catch(G){return $(String(G)),null}if(F==="!")return D;return $(`Could not resolve tag: ${D}`),null}tagString(D){for(let[$,F]of Object.entries(this.tags))if(D.startsWith(F))return $+mg(D.substring(F.length));return D[0]==="!"?D:`!<${D}>`}toString(D){let $=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],F=Object.entries(this.tags),X;if(D&&F.length>0&&iK.isNode(D.contents)){let J={};yg.visit(D.contents,(G,Y)=>{if(iK.isNode(Y)&&Y.tag)J[Y.tag]=!0}),X=Object.keys(J)}else X=[];for(let[J,G]of F){if(J==="!!"&&G==="tag:yaml.org,2002:")continue;if(!D||X.some((Y)=>Y.startsWith(G)))$.push(`%TAG ${J} ${G}`)}return $.join(`
73
- `)}}V2.defaultYaml={explicit:!1,version:"1.2"};V2.defaultTags={"!!":"tag:yaml.org,2002:"};cg.Directives=V2});var l5=u((ng)=>{var nK=ZD(),dg=h9();function lg(D){if(/[\x00-\x19\s,[\]{}]/.test(D)){let F=`Anchor must not contain whitespace or control characters: ${JSON.stringify(D)}`;throw Error(F)}return!0}function rK(D){let $=new Set;return dg.visit(D,{Value(F,X){if(X.anchor)$.add(X.anchor)}}),$}function sK(D,$){for(let F=1;;++F){let X=`${D}${F}`;if(!$.has(X))return X}}function ig(D,$){let F=[],X=new Map,J=null;return{onAnchor:(G)=>{F.push(G),J??(J=rK(D));let Y=sK($,J);return J.add(Y),Y},setAnchors:()=>{for(let G of F){let Y=X.get(G);if(typeof Y==="object"&&Y.anchor&&(nK.isScalar(Y.node)||nK.isCollection(Y.node)))Y.node.anchor=Y.anchor;else{let B=Error("Failed to resolve repeated object (this should not happen)");throw B.source=G,B}}},sourceObjects:X}}ng.anchorIsValid=lg;ng.anchorNames=rK;ng.createNodeAnchors=ig;ng.findNewAnchor=sK});var zG=u((tg)=>{function v9(D,$,F,X){if(X&&typeof X==="object")if(Array.isArray(X))for(let J=0,G=X.length;J<G;++J){let Y=X[J],B=v9(D,X,String(J),Y);if(B===void 0)delete X[J];else if(B!==Y)X[J]=B}else if(X instanceof Map)for(let J of Array.from(X.keys())){let G=X.get(J),Y=v9(D,X,J,G);if(Y===void 0)X.delete(J);else if(Y!==G)X.set(J,Y)}else if(X instanceof Set)for(let J of Array.from(X)){let G=v9(D,X,J,J);if(G===void 0)X.delete(J);else if(G!==J)X.delete(J),X.add(G)}else for(let[J,G]of Object.entries(X)){let Y=v9(D,X,J,G);if(Y===void 0)delete X[J];else if(Y!==G)X[J]=Y}return D.call($,F,X)}tg.applyReviver=v9});var s1=u(($h)=>{var Dh=ZD();function aK(D,$,F){if(Array.isArray(D))return D.map((X,J)=>aK(X,String(J),F));if(D&&typeof D.toJSON==="function"){if(!F||!Dh.hasAnchor(D))return D.toJSON($,F);let X={aliasCount:0,count:1,res:void 0};F.anchors.set(D,X),F.onCreate=(G)=>{X.res=G,delete F.onCreate};let J=D.toJSON($,F);if(F.onCreate)F.onCreate(J);return J}if(typeof D==="bigint"&&!F?.keep)return Number(D);return D}$h.toJS=aK});var i5=u((Gh)=>{var Xh=zG(),oK=ZD(),Jh=s1();class tK{constructor(D){Object.defineProperty(this,oK.NODE_TYPE,{value:D})}clone(){let D=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));if(this.range)D.range=this.range.slice();return D}toJS(D,{mapAsMap:$,maxAliasCount:F,onAnchor:X,reviver:J}={}){if(!oK.isDocument(D))throw TypeError("A document argument is required");let G={anchors:new Map,doc:D,keep:!0,mapAsMap:$===!0,mapKeyWarned:!1,maxAliasCount:typeof F==="number"?F:100},Y=Jh.toJS(this,"",G);if(typeof X==="function")for(let{count:B,res:H}of G.anchors.values())X(H,B);return typeof J==="function"?Xh.applyReviver(J,{"":Y},"",Y):Y}}Gh.NodeBase=tK});var x9=u((Qh)=>{var Bh=l5(),Hh=h9(),D3=ZD(),Wh=i5(),Uh=s1();class eK extends Wh.NodeBase{constructor(D){super(D3.ALIAS);this.source=D,Object.defineProperty(this,"tag",{set(){throw Error("Alias nodes cannot have tags")}})}resolve(D,$){let F;if($?.aliasResolveCache)F=$.aliasResolveCache;else if(F=[],Hh.visit(D,{Node:(J,G)=>{if(D3.isAlias(G)||D3.hasAnchor(G))F.push(G)}}),$)$.aliasResolveCache=F;let X=void 0;for(let J of F){if(J===this)break;if(J.anchor===this.source)X=J}return X}toJSON(D,$){if(!$)return{source:this.source};let{anchors:F,doc:X,maxAliasCount:J}=$,G=this.resolve(X,$);if(!G){let B=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(B)}let Y=F.get(G);if(!Y)Uh.toJS(G,null,$),Y=F.get(G);if(Y?.res===void 0)throw ReferenceError("This should not happen: Alias anchor was not resolved?");if(J>=0){if(Y.count+=1,Y.aliasCount===0)Y.aliasCount=n5(X,G,F);if(Y.count*Y.aliasCount>J)throw ReferenceError("Excessive alias count indicates a resource exhaustion attack")}return Y.res}toString(D,$,F){let X=`*${this.source}`;if(D){if(Bh.anchorIsValid(this.source),D.options.verifyAliasOrder&&!D.anchors.has(this.source)){let J=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw Error(J)}if(D.implicitKey)return`${X} `}return X}}function n5(D,$,F){if(D3.isAlias($)){let X=$.resolve(D),J=F&&X&&F.get(X);return J?J.count*J.aliasCount:0}else if(D3.isCollection($)){let X=0;for(let J of $.items){let G=n5(D,J,F);if(G>X)X=G}return X}else if(D3.isPair($)){let X=n5(D,$.key,F),J=n5(D,$.value,F);return Math.max(X,J)}return 1}Qh.Alias=eK});var H0=u((Mh)=>{var Ah=ZD(),Kh=i5(),_h=s1(),Ch=(D)=>!D||typeof D!=="function"&&typeof D!=="object";class f8 extends Kh.NodeBase{constructor(D){super(Ah.SCALAR);this.value=D}toJSON(D,$){return $?.keep?this.value:_h.toJS(this.value,D,$)}toString(){return String(this.value)}}f8.BLOCK_FOLDED="BLOCK_FOLDED";f8.BLOCK_LITERAL="BLOCK_LITERAL";f8.PLAIN="PLAIN";f8.QUOTE_DOUBLE="QUOTE_DOUBLE";f8.QUOTE_SINGLE="QUOTE_SINGLE";Mh.Scalar=f8;Mh.isScalarValue=Ch});var y9=u((Ph)=>{var Oh=x9(),g8=ZD(),D_=H0(),Eh="tag:yaml.org,2002:";function jh(D,$,F){if($){let X=F.filter((G)=>G.tag===$),J=X.find((G)=>!G.format)??X[0];if(!J)throw Error(`Tag ${$} not found`);return J}return F.find((X)=>X.identify?.(D)&&!X.format)}function Nh(D,$,F){if(g8.isDocument(D))D=D.contents;if(g8.isNode(D))return D;if(g8.isPair(D)){let V=F.schema[g8.MAP].createNode?.(F.schema,null,F);return V.items.push(D),V}if(D instanceof String||D instanceof Number||D instanceof Boolean||typeof BigInt<"u"&&D instanceof BigInt)D=D.valueOf();let{aliasDuplicateObjects:X,onAnchor:J,onTagObj:G,schema:Y,sourceObjects:B}=F,H=void 0;if(X&&D&&typeof D==="object")if(H=B.get(D),H)return H.anchor??(H.anchor=J(D)),new Oh.Alias(H.anchor);else H={anchor:null,node:null},B.set(D,H);if($?.startsWith("!!"))$=Eh+$.slice(2);let U=jh(D,$,Y.tags);if(!U){if(D&&typeof D.toJSON==="function")D=D.toJSON();if(!D||typeof D!=="object"){let V=new D_.Scalar(D);if(H)H.node=V;return V}U=D instanceof Map?Y[g8.MAP]:(Symbol.iterator in Object(D))?Y[g8.SEQ]:Y[g8.MAP]}if(G)G(U),delete F.onTagObj;let Q=U?.createNode?U.createNode(F.schema,D,F):typeof U?.nodeClass?.from==="function"?U.nodeClass.from(F.schema,D,F):new D_.Scalar(D);if($)Q.tag=$;else if(!U.default)Q.tag=U.tag;if(H)H.node=Q;return Q}Ph.createNode=Nh});var r5=u((Ih)=>{var qh=y9(),U1=ZD(),zh=i5();function IG(D,$,F){let X=F;for(let J=$.length-1;J>=0;--J){let G=$[J];if(typeof G==="number"&&Number.isInteger(G)&&G>=0){let Y=[];Y[G]=X,X=Y}else X=new Map([[G,X]])}return qh.createNode(X,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw Error("This should not happen, please report a bug.")},schema:D,sourceObjects:new Map})}var $_=(D)=>D==null||typeof D==="object"&&!!D[Symbol.iterator]().next().done;class F_ extends zh.NodeBase{constructor(D,$){super(D);Object.defineProperty(this,"schema",{value:$,configurable:!0,enumerable:!1,writable:!0})}clone(D){let $=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));if(D)$.schema=D;if($.items=$.items.map((F)=>U1.isNode(F)||U1.isPair(F)?F.clone(D):F),this.range)$.range=this.range.slice();return $}addIn(D,$){if($_(D))this.add($);else{let[F,...X]=D,J=this.get(F,!0);if(U1.isCollection(J))J.addIn(X,$);else if(J===void 0&&this.schema)this.set(F,IG(this.schema,X,$));else throw Error(`Expected YAML collection at ${F}. Remaining path: ${X}`)}}deleteIn(D){let[$,...F]=D;if(F.length===0)return this.delete($);let X=this.get($,!0);if(U1.isCollection(X))return X.deleteIn(F);else throw Error(`Expected YAML collection at ${$}. Remaining path: ${F}`)}getIn(D,$){let[F,...X]=D,J=this.get(F,!0);if(X.length===0)return!$&&U1.isScalar(J)?J.value:J;else return U1.isCollection(J)?J.getIn(X,$):void 0}hasAllNullValues(D){return this.items.every(($)=>{if(!U1.isPair($))return!1;let F=$.value;return F==null||D&&U1.isScalar(F)&&F.value==null&&!F.commentBefore&&!F.comment&&!F.tag})}hasIn(D){let[$,...F]=D;if(F.length===0)return this.has($);let X=this.get($,!0);return U1.isCollection(X)?X.hasIn(F):!1}setIn(D,$){let[F,...X]=D;if(X.length===0)this.set(F,$);else{let J=this.get(F,!0);if(U1.isCollection(J))J.setIn(X,$);else if(J===void 0&&this.schema)this.set(F,IG(this.schema,X,$));else throw Error(`Expected YAML collection at ${F}. Remaining path: ${X}`)}}}Ih.Collection=F_;Ih.collectionFromPath=IG;Ih.isEmptyPath=$_});var u9=u((fh)=>{var kh=(D)=>D.replace(/^(?!$)(?: $)?/gm,"#");function SG(D,$){if(/^\n+$/.test(D))return D.substring(1);return $?D.replace(/^(?! *$)/gm,$):D}var bh=(D,$,F)=>D.endsWith(`
72
+ `:U}};_=xb()});var _D,HG,c,Y1=(D)=>{switch(typeof D){case"undefined":return c.undefined;case"string":return c.string;case"number":return Number.isNaN(D)?c.nan:c.number;case"boolean":return c.boolean;case"function":return c.function;case"bigint":return c.bigint;case"symbol":return c.symbol;case"object":if(Array.isArray(D))return c.array;if(D===null)return c.null;if(D.then&&typeof D.then==="function"&&D.catch&&typeof D.catch==="function")return c.promise;if(typeof Map<"u"&&D instanceof Map)return c.map;if(typeof Set<"u"&&D instanceof Set)return c.set;if(typeof Date<"u"&&D instanceof Date)return c.date;return c.object;default:return c.unknown}};var q9=R(()=>{(function(D){D.assertEqual=(J)=>{};function $(J){}D.assertIs=$;function F(J){throw Error()}D.assertNever=F,D.arrayToEnum=(J)=>{let G={};for(let Y of J)G[Y]=Y;return G},D.getValidEnumValues=(J)=>{let G=D.objectKeys(J).filter((B)=>typeof J[J[B]]!=="number"),Y={};for(let B of G)Y[B]=J[B];return D.objectValues(Y)},D.objectValues=(J)=>{return D.objectKeys(J).map(function(G){return J[G]})},D.objectKeys=typeof Object.keys==="function"?(J)=>Object.keys(J):(J)=>{let G=[];for(let Y in J)if(Object.prototype.hasOwnProperty.call(J,Y))G.push(Y);return G},D.find=(J,G)=>{for(let Y of J)if(G(Y))return Y;return},D.isInteger=typeof Number.isInteger==="function"?(J)=>Number.isInteger(J):(J)=>typeof J==="number"&&Number.isFinite(J)&&Math.floor(J)===J;function X(J,G=" | "){return J.map((Y)=>typeof Y==="string"?`'${Y}'`:Y).join(G)}D.joinValues=X,D.jsonStringifyReplacer=(J,G)=>{if(typeof G==="bigint")return G.toString();return G}})(_D||(_D={}));(function(D){D.mergeShapes=($,F)=>{return{...$,...F}}})(HG||(HG={}));c=_D.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"])});var v,mb=(D)=>{return JSON.stringify(D,null,2).replace(/"([^"]+)":/g,"$1:")},l0;var K5=R(()=>{q9();v=_D.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);l0=class l0 extends Error{get errors(){return this.issues}constructor(D){super();this.issues=[],this.addIssue=(F)=>{this.issues=[...this.issues,F]},this.addIssues=(F=[])=>{this.issues=[...this.issues,...F]};let $=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,$);else this.__proto__=$;this.name="ZodError",this.issues=D}format(D){let $=D||function(J){return J.message},F={_errors:[]},X=(J)=>{for(let G of J.issues)if(G.code==="invalid_union")G.unionErrors.map(X);else if(G.code==="invalid_return_type")X(G.returnTypeError);else if(G.code==="invalid_arguments")X(G.argumentsError);else if(G.path.length===0)F._errors.push($(G));else{let Y=F,B=0;while(B<G.path.length){let H=G.path[B];if(B!==G.path.length-1)Y[H]=Y[H]||{_errors:[]};else Y[H]=Y[H]||{_errors:[]},Y[H]._errors.push($(G));Y=Y[H],B++}}};return X(this),F}static assert(D){if(!(D instanceof l0))throw Error(`Not a ZodError: ${D}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,_D.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(D=($)=>$.message){let $={},F=[];for(let X of this.issues)if(X.path.length>0){let J=X.path[0];$[J]=$[J]||[],$[J].push(D(X))}else F.push(D(X));return{formErrors:F,fieldErrors:$}}get formErrors(){return this.flatten()}};l0.create=(D)=>{return new l0(D)}});var cb=(D,$)=>{let F;switch(D.code){case v.invalid_type:if(D.received===c.undefined)F="Required";else F=`Expected ${D.expected}, received ${D.received}`;break;case v.invalid_literal:F=`Invalid literal value, expected ${JSON.stringify(D.expected,_D.jsonStringifyReplacer)}`;break;case v.unrecognized_keys:F=`Unrecognized key(s) in object: ${_D.joinValues(D.keys,", ")}`;break;case v.invalid_union:F="Invalid input";break;case v.invalid_union_discriminator:F=`Invalid discriminator value. Expected ${_D.joinValues(D.options)}`;break;case v.invalid_enum_value:F=`Invalid enum value. Expected ${_D.joinValues(D.options)}, received '${D.received}'`;break;case v.invalid_arguments:F="Invalid function arguments";break;case v.invalid_return_type:F="Invalid function return type";break;case v.invalid_date:F="Invalid date";break;case v.invalid_string:if(typeof D.validation==="object")if("includes"in D.validation){if(F=`Invalid input: must include "${D.validation.includes}"`,typeof D.validation.position==="number")F=`${F} at one or more positions greater than or equal to ${D.validation.position}`}else if("startsWith"in D.validation)F=`Invalid input: must start with "${D.validation.startsWith}"`;else if("endsWith"in D.validation)F=`Invalid input: must end with "${D.validation.endsWith}"`;else _D.assertNever(D.validation);else if(D.validation!=="regex")F=`Invalid ${D.validation}`;else F="Invalid";break;case v.too_small:if(D.type==="array")F=`Array must contain ${D.exact?"exactly":D.inclusive?"at least":"more than"} ${D.minimum} element(s)`;else if(D.type==="string")F=`String must contain ${D.exact?"exactly":D.inclusive?"at least":"over"} ${D.minimum} character(s)`;else if(D.type==="number")F=`Number must be ${D.exact?"exactly equal to ":D.inclusive?"greater than or equal to ":"greater than "}${D.minimum}`;else if(D.type==="bigint")F=`Number must be ${D.exact?"exactly equal to ":D.inclusive?"greater than or equal to ":"greater than "}${D.minimum}`;else if(D.type==="date")F=`Date must be ${D.exact?"exactly equal to ":D.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(D.minimum))}`;else F="Invalid input";break;case v.too_big:if(D.type==="array")F=`Array must contain ${D.exact?"exactly":D.inclusive?"at most":"less than"} ${D.maximum} element(s)`;else if(D.type==="string")F=`String must contain ${D.exact?"exactly":D.inclusive?"at most":"under"} ${D.maximum} character(s)`;else if(D.type==="number")F=`Number must be ${D.exact?"exactly":D.inclusive?"less than or equal to":"less than"} ${D.maximum}`;else if(D.type==="bigint")F=`BigInt must be ${D.exact?"exactly":D.inclusive?"less than or equal to":"less than"} ${D.maximum}`;else if(D.type==="date")F=`Date must be ${D.exact?"exactly":D.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(D.maximum))}`;else F="Invalid input";break;case v.custom:F="Invalid input";break;case v.invalid_intersection_types:F="Intersection results could not be merged";break;case v.not_multiple_of:F=`Number must be a multiple of ${D.multipleOf}`;break;case v.not_finite:F="Number must be finite";break;default:F=$.defaultError,_D.assertNever(D)}return{message:F}},O1;var WG=R(()=>{K5();q9();O1=cb});function pb(D){JK=D}function b6(){return JK}var JK;var _5=R(()=>{WG();JK=O1});function d(D,$){let F=b6(),X=z9({issueData:$,data:D.data,path:D.path,errorMaps:[D.common.contextualErrorMap,D.schemaErrorMap,F,F===O1?void 0:O1].filter((J)=>!!J)});D.common.issues.push(X)}class q0{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(D,$){let F=[];for(let X of $){if(X.status==="aborted")return t;if(X.status==="dirty")D.dirty();F.push(X.value)}return{status:D.value,value:F}}static async mergeObjectAsync(D,$){let F=[];for(let X of $){let J=await X.key,G=await X.value;F.push({key:J,value:G})}return q0.mergeObjectSync(D,F)}static mergeObjectSync(D,$){let F={};for(let X of $){let{key:J,value:G}=X;if(J.status==="aborted")return t;if(G.status==="aborted")return t;if(J.status==="dirty")D.dirty();if(G.status==="dirty")D.dirty();if(J.value!=="__proto__"&&(typeof G.value<"u"||X.alwaysSet))F[J.value]=G.value}return{status:D.value,value:F}}}var z9=(D)=>{let{data:$,path:F,errorMaps:X,issueData:J}=D,G=[...F,...J.path||[]],Y={...J,path:G};if(J.message!==void 0)return{...J,path:G,message:J.message};let B="",H=X.filter((U)=>!!U).slice().reverse();for(let U of H)B=U(Y,{data:$,defaultError:B}).message;return{...J,path:G,message:B}},db,t,S8=(D)=>({status:"dirty",value:D}),w0=(D)=>({status:"valid",value:D}),C5=(D)=>D.status==="aborted",M5=(D)=>D.status==="dirty",d1=(D)=>D.status==="valid",f6=(D)=>typeof Promise<"u"&&D instanceof Promise;var UG=R(()=>{_5();WG();db=[];t=Object.freeze({status:"aborted"})});var GK=()=>{};var s;var YK=R(()=>{(function(D){D.errToObj=($)=>typeof $==="string"?{message:$}:$||{},D.toString=($)=>typeof $==="string"?$:$?.message})(s||(s={}))});class u2{constructor(D,$,F,X){this._cachedPath=[],this.parent=D,this.data=$,this._path=F,this._key=X}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}function WD(D){if(!D)return{};let{errorMap:$,invalid_type_error:F,required_error:X,description:J}=D;if($&&(F||X))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if($)return{errorMap:$,description:J};return{errorMap:(Y,B)=>{let{message:H}=D;if(Y.code==="invalid_enum_value")return{message:H??B.defaultError};if(typeof B.data>"u")return{message:H??X??B.defaultError};if(Y.code!=="invalid_type")return{message:B.defaultError};return{message:H??F??B.defaultError}},description:J}}class QD{get description(){return this._def.description}_getType(D){return Y1(D.data)}_getOrReturnCtx(D,$){return $||{common:D.parent.common,data:D.data,parsedType:Y1(D.data),schemaErrorMap:this._def.errorMap,path:D.path,parent:D.parent}}_processInputParams(D){return{status:new q0,ctx:{common:D.parent.common,data:D.data,parsedType:Y1(D.data),schemaErrorMap:this._def.errorMap,path:D.path,parent:D.parent}}}_parseSync(D){let $=this._parse(D);if(f6($))throw Error("Synchronous parse encountered promise.");return $}_parseAsync(D){let $=this._parse(D);return Promise.resolve($)}parse(D,$){let F=this.safeParse(D,$);if(F.success)return F.data;throw F.error}safeParse(D,$){let F={common:{issues:[],async:$?.async??!1,contextualErrorMap:$?.errorMap},path:$?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:D,parsedType:Y1(D)},X=this._parseSync({data:D,path:F.path,parent:F});return BK(F,X)}"~validate"(D){let $={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:D,parsedType:Y1(D)};if(!this["~standard"].async)try{let F=this._parseSync({data:D,path:[],parent:$});return d1(F)?{value:F.value}:{issues:$.common.issues}}catch(F){if(F?.message?.toLowerCase()?.includes("encountered"))this["~standard"].async=!0;$.common={issues:[],async:!0}}return this._parseAsync({data:D,path:[],parent:$}).then((F)=>d1(F)?{value:F.value}:{issues:$.common.issues})}async parseAsync(D,$){let F=await this.safeParseAsync(D,$);if(F.success)return F.data;throw F.error}async safeParseAsync(D,$){let F={common:{issues:[],contextualErrorMap:$?.errorMap,async:!0},path:$?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:D,parsedType:Y1(D)},X=this._parse({data:D,path:F.path,parent:F}),J=await(f6(X)?X:Promise.resolve(X));return BK(F,J)}refine(D,$){let F=(X)=>{if(typeof $==="string"||typeof $>"u")return{message:$};else if(typeof $==="function")return $(X);else return $};return this._refinement((X,J)=>{let G=D(X),Y=()=>J.addIssue({code:v.custom,...F(X)});if(typeof Promise<"u"&&G instanceof Promise)return G.then((B)=>{if(!B)return Y(),!1;else return!0});if(!G)return Y(),!1;else return!0})}refinement(D,$){return this._refinement((F,X)=>{if(!D(F))return X.addIssue(typeof $==="function"?$(F,X):$),!1;else return!0})}_refinement(D){return new m2({schema:this,typeName:$D.ZodEffects,effect:{type:"refinement",refinement:D}})}superRefine(D){return this._refinement(D)}constructor(D){this.spa=this.safeParseAsync,this._def=D,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:($)=>this["~validate"]($)}}optional(){return y2.create(this,this._def)}nullable(){return j1.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return x2.create(this)}promise(){return b8.create(this,this._def)}or(D){return u6.create([this,D],this._def)}and(D){return m6.create(this,D,this._def)}transform(D){return new m2({...WD(this._def),schema:this,typeName:$D.ZodEffects,effect:{type:"transform",transform:D}})}default(D){let $=typeof D==="function"?D:()=>D;return new l6({...WD(this._def),innerType:this,defaultValue:$,typeName:$D.ZodDefault})}brand(){return new R5({typeName:$D.ZodBranded,type:this,...WD(this._def)})}catch(D){let $=typeof D==="function"?D:()=>D;return new i6({...WD(this._def),innerType:this,catchValue:$,typeName:$D.ZodCatch})}describe(D){return new this.constructor({...this._def,description:D})}pipe(D){return b9.create(this,D)}readonly(){return n6.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}function UK(D){let $="[0-5]\\d";if(D.precision)$=`${$}\\.\\d{${D.precision}}`;else if(D.precision==null)$=`${$}(\\.\\d+)?`;let F=D.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${$})${F}`}function Bf(D){return new RegExp(`^${UK(D)}$`)}function QK(D){let $=`${WK}T${UK(D)}`,F=[];if(F.push(D.local?"Z?":"Z"),D.offset)F.push("([+-]\\d{2}:?\\d{2})");return $=`${$}(${F.join("|")})`,new RegExp(`^${$}$`)}function Hf(D,$){if(($==="v4"||!$)&&Df.test(D))return!0;if(($==="v6"||!$)&&Ff.test(D))return!0;return!1}function Wf(D,$){if(!ab.test(D))return!1;try{let[F]=D.split(".");if(!F)return!1;let X=F.replace(/-/g,"+").replace(/_/g,"/").padEnd(F.length+(4-F.length%4)%4,"="),J=JSON.parse(atob(X));if(typeof J!=="object"||J===null)return!1;if("typ"in J&&J?.typ!=="JWT")return!1;if(!J.alg)return!1;if($&&J.alg!==$)return!1;return!0}catch{return!1}}function Uf(D,$){if(($==="v4"||!$)&&$f.test(D))return!0;if(($==="v6"||!$)&&Xf.test(D))return!0;return!1}function Qf(D,$){let F=(D.toString().split(".")[1]||"").length,X=($.toString().split(".")[1]||"").length,J=F>X?F:X,G=Number.parseInt(D.toFixed(J).replace(".","")),Y=Number.parseInt($.toFixed(J).replace(".",""));return G%Y/10**J}function g6(D){if(D instanceof oD){let $={};for(let F in D.shape){let X=D.shape[F];$[F]=y2.create(g6(X))}return new oD({...D._def,shape:()=>$})}else if(D instanceof x2)return new x2({...D._def,type:g6(D.element)});else if(D instanceof y2)return y2.create(g6(D.unwrap()));else if(D instanceof j1)return j1.create(g6(D.unwrap()));else if(D instanceof H1)return H1.create(D.items.map(($)=>g6($)));else return D}function VG(D,$){let F=Y1(D),X=Y1($);if(D===$)return{valid:!0,data:D};else if(F===c.object&&X===c.object){let J=_D.objectKeys($),G=_D.objectKeys(D).filter((B)=>J.indexOf(B)!==-1),Y={...D,...$};for(let B of G){let H=VG(D[B],$[B]);if(!H.valid)return{valid:!1};Y[B]=H.data}return{valid:!0,data:Y}}else if(F===c.array&&X===c.array){if(D.length!==$.length)return{valid:!1};let J=[];for(let G=0;G<D.length;G++){let Y=D[G],B=$[G],H=VG(Y,B);if(!H.valid)return{valid:!1};J.push(H.data)}return{valid:!0,data:J}}else if(F===c.date&&X===c.date&&+D===+$)return{valid:!0,data:D};else return{valid:!1}}function VK(D,$){return new r1({values:D,typeName:$D.ZodEnum,...WD($)})}function HK(D,$){let F=typeof D==="function"?D($):typeof D==="string"?{message:D}:D;return typeof F==="string"?{message:F}:F}function AK(D,$={},F){if(D)return w8.create().superRefine((X,J)=>{let G=D(X);if(G instanceof Promise)return G.then((Y)=>{if(!Y){let B=HK($,X),H=B.fatal??F??!0;J.addIssue({code:"custom",...B,fatal:H})}});if(!G){let Y=HK($,X),B=Y.fatal??F??!0;J.addIssue({code:"custom",...Y,fatal:B})}return});return w8.create()}var BK=(D,$)=>{if(d1($))return{success:!0,data:$.value};else{if(!D.common.issues.length)throw Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let F=new l0(D.common.issues);return this._error=F,this._error}}}},lb,ib,nb,rb,sb,ab,ob,tb,eb="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",QG,Df,$f,Ff,Xf,Jf,Gf,WK="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Yf,v2,i1,n1,v6,T8,I9,x6,y6,w8,l1,B1,S9,x2,oD,u6,E1=(D)=>{if(D instanceof c6)return E1(D.schema);else if(D instanceof m2)return E1(D.innerType());else if(D instanceof p6)return[D.value];else if(D instanceof r1)return D.options;else if(D instanceof d6)return _D.objectValues(D.enum);else if(D instanceof l6)return E1(D._def.innerType);else if(D instanceof x6)return[void 0];else if(D instanceof y6)return[null];else if(D instanceof y2)return[void 0,...E1(D.unwrap())];else if(D instanceof j1)return[null,...E1(D.unwrap())];else if(D instanceof R5)return E1(D.unwrap());else if(D instanceof n6)return E1(D.unwrap());else if(D instanceof i6)return E1(D._def.innerType);else return[]},Z5,m6,H1,T9,w9,k8,h6,c6,p6,r1,d6,b8,m2,y2,j1,l6,i6,k9,Vf,R5,b9,n6,Af,$D,Kf=(D,$={message:`Input not instance of ${D.name}`})=>AK((F)=>F instanceof D,$),KK,_K,_f,Cf,CK,Mf,Zf,Rf,Of,Ef,jf,Nf,Pf,Lf,qf,zf,If,Sf,Tf,wf,kf,bf,ff,gf,hf,vf,xf,yf,uf,mf,cf,pf,df,lf,nf=()=>KK().optional(),rf=()=>_K().optional(),sf=()=>CK().optional(),af,of;var MK=R(()=>{K5();_5();YK();UG();q9();lb=/^c[^\s-]{8,}$/i,ib=/^[0-9a-z]+$/,nb=/^[0-9A-HJKMNP-TV-Z]{26}$/i,rb=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,sb=/^[a-z0-9_-]{21}$/i,ab=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,ob=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,tb=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Df=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,$f=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Ff=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Xf=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Jf=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Gf=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Yf=new RegExp(`^${WK}$`);v2=class v2 extends QD{_parse(D){if(this._def.coerce)D.data=String(D.data);if(this._getType(D)!==c.string){let J=this._getOrReturnCtx(D);return d(J,{code:v.invalid_type,expected:c.string,received:J.parsedType}),t}let F=new q0,X=void 0;for(let J of this._def.checks)if(J.kind==="min"){if(D.data.length<J.value)X=this._getOrReturnCtx(D,X),d(X,{code:v.too_small,minimum:J.value,type:"string",inclusive:!0,exact:!1,message:J.message}),F.dirty()}else if(J.kind==="max"){if(D.data.length>J.value)X=this._getOrReturnCtx(D,X),d(X,{code:v.too_big,maximum:J.value,type:"string",inclusive:!0,exact:!1,message:J.message}),F.dirty()}else if(J.kind==="length"){let G=D.data.length>J.value,Y=D.data.length<J.value;if(G||Y){if(X=this._getOrReturnCtx(D,X),G)d(X,{code:v.too_big,maximum:J.value,type:"string",inclusive:!0,exact:!0,message:J.message});else if(Y)d(X,{code:v.too_small,minimum:J.value,type:"string",inclusive:!0,exact:!0,message:J.message});F.dirty()}}else if(J.kind==="email"){if(!tb.test(D.data))X=this._getOrReturnCtx(D,X),d(X,{validation:"email",code:v.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="emoji"){if(!QG)QG=new RegExp(eb,"u");if(!QG.test(D.data))X=this._getOrReturnCtx(D,X),d(X,{validation:"emoji",code:v.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="uuid"){if(!rb.test(D.data))X=this._getOrReturnCtx(D,X),d(X,{validation:"uuid",code:v.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="nanoid"){if(!sb.test(D.data))X=this._getOrReturnCtx(D,X),d(X,{validation:"nanoid",code:v.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cuid"){if(!lb.test(D.data))X=this._getOrReturnCtx(D,X),d(X,{validation:"cuid",code:v.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cuid2"){if(!ib.test(D.data))X=this._getOrReturnCtx(D,X),d(X,{validation:"cuid2",code:v.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="ulid"){if(!nb.test(D.data))X=this._getOrReturnCtx(D,X),d(X,{validation:"ulid",code:v.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="url")try{new URL(D.data)}catch{X=this._getOrReturnCtx(D,X),d(X,{validation:"url",code:v.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="regex"){if(J.regex.lastIndex=0,!J.regex.test(D.data))X=this._getOrReturnCtx(D,X),d(X,{validation:"regex",code:v.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="trim")D.data=D.data.trim();else if(J.kind==="includes"){if(!D.data.includes(J.value,J.position))X=this._getOrReturnCtx(D,X),d(X,{code:v.invalid_string,validation:{includes:J.value,position:J.position},message:J.message}),F.dirty()}else if(J.kind==="toLowerCase")D.data=D.data.toLowerCase();else if(J.kind==="toUpperCase")D.data=D.data.toUpperCase();else if(J.kind==="startsWith"){if(!D.data.startsWith(J.value))X=this._getOrReturnCtx(D,X),d(X,{code:v.invalid_string,validation:{startsWith:J.value},message:J.message}),F.dirty()}else if(J.kind==="endsWith"){if(!D.data.endsWith(J.value))X=this._getOrReturnCtx(D,X),d(X,{code:v.invalid_string,validation:{endsWith:J.value},message:J.message}),F.dirty()}else if(J.kind==="datetime"){if(!QK(J).test(D.data))X=this._getOrReturnCtx(D,X),d(X,{code:v.invalid_string,validation:"datetime",message:J.message}),F.dirty()}else if(J.kind==="date"){if(!Yf.test(D.data))X=this._getOrReturnCtx(D,X),d(X,{code:v.invalid_string,validation:"date",message:J.message}),F.dirty()}else if(J.kind==="time"){if(!Bf(J).test(D.data))X=this._getOrReturnCtx(D,X),d(X,{code:v.invalid_string,validation:"time",message:J.message}),F.dirty()}else if(J.kind==="duration"){if(!ob.test(D.data))X=this._getOrReturnCtx(D,X),d(X,{validation:"duration",code:v.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="ip"){if(!Hf(D.data,J.version))X=this._getOrReturnCtx(D,X),d(X,{validation:"ip",code:v.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="jwt"){if(!Wf(D.data,J.alg))X=this._getOrReturnCtx(D,X),d(X,{validation:"jwt",code:v.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cidr"){if(!Uf(D.data,J.version))X=this._getOrReturnCtx(D,X),d(X,{validation:"cidr",code:v.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="base64"){if(!Jf.test(D.data))X=this._getOrReturnCtx(D,X),d(X,{validation:"base64",code:v.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="base64url"){if(!Gf.test(D.data))X=this._getOrReturnCtx(D,X),d(X,{validation:"base64url",code:v.invalid_string,message:J.message}),F.dirty()}else _D.assertNever(J);return{status:F.value,value:D.data}}_regex(D,$,F){return this.refinement((X)=>D.test(X),{validation:$,code:v.invalid_string,...s.errToObj(F)})}_addCheck(D){return new v2({...this._def,checks:[...this._def.checks,D]})}email(D){return this._addCheck({kind:"email",...s.errToObj(D)})}url(D){return this._addCheck({kind:"url",...s.errToObj(D)})}emoji(D){return this._addCheck({kind:"emoji",...s.errToObj(D)})}uuid(D){return this._addCheck({kind:"uuid",...s.errToObj(D)})}nanoid(D){return this._addCheck({kind:"nanoid",...s.errToObj(D)})}cuid(D){return this._addCheck({kind:"cuid",...s.errToObj(D)})}cuid2(D){return this._addCheck({kind:"cuid2",...s.errToObj(D)})}ulid(D){return this._addCheck({kind:"ulid",...s.errToObj(D)})}base64(D){return this._addCheck({kind:"base64",...s.errToObj(D)})}base64url(D){return this._addCheck({kind:"base64url",...s.errToObj(D)})}jwt(D){return this._addCheck({kind:"jwt",...s.errToObj(D)})}ip(D){return this._addCheck({kind:"ip",...s.errToObj(D)})}cidr(D){return this._addCheck({kind:"cidr",...s.errToObj(D)})}datetime(D){if(typeof D==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:D});return this._addCheck({kind:"datetime",precision:typeof D?.precision>"u"?null:D?.precision,offset:D?.offset??!1,local:D?.local??!1,...s.errToObj(D?.message)})}date(D){return this._addCheck({kind:"date",message:D})}time(D){if(typeof D==="string")return this._addCheck({kind:"time",precision:null,message:D});return this._addCheck({kind:"time",precision:typeof D?.precision>"u"?null:D?.precision,...s.errToObj(D?.message)})}duration(D){return this._addCheck({kind:"duration",...s.errToObj(D)})}regex(D,$){return this._addCheck({kind:"regex",regex:D,...s.errToObj($)})}includes(D,$){return this._addCheck({kind:"includes",value:D,position:$?.position,...s.errToObj($?.message)})}startsWith(D,$){return this._addCheck({kind:"startsWith",value:D,...s.errToObj($)})}endsWith(D,$){return this._addCheck({kind:"endsWith",value:D,...s.errToObj($)})}min(D,$){return this._addCheck({kind:"min",value:D,...s.errToObj($)})}max(D,$){return this._addCheck({kind:"max",value:D,...s.errToObj($)})}length(D,$){return this._addCheck({kind:"length",value:D,...s.errToObj($)})}nonempty(D){return this.min(1,s.errToObj(D))}trim(){return new v2({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new v2({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new v2({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((D)=>D.kind==="datetime")}get isDate(){return!!this._def.checks.find((D)=>D.kind==="date")}get isTime(){return!!this._def.checks.find((D)=>D.kind==="time")}get isDuration(){return!!this._def.checks.find((D)=>D.kind==="duration")}get isEmail(){return!!this._def.checks.find((D)=>D.kind==="email")}get isURL(){return!!this._def.checks.find((D)=>D.kind==="url")}get isEmoji(){return!!this._def.checks.find((D)=>D.kind==="emoji")}get isUUID(){return!!this._def.checks.find((D)=>D.kind==="uuid")}get isNANOID(){return!!this._def.checks.find((D)=>D.kind==="nanoid")}get isCUID(){return!!this._def.checks.find((D)=>D.kind==="cuid")}get isCUID2(){return!!this._def.checks.find((D)=>D.kind==="cuid2")}get isULID(){return!!this._def.checks.find((D)=>D.kind==="ulid")}get isIP(){return!!this._def.checks.find((D)=>D.kind==="ip")}get isCIDR(){return!!this._def.checks.find((D)=>D.kind==="cidr")}get isBase64(){return!!this._def.checks.find((D)=>D.kind==="base64")}get isBase64url(){return!!this._def.checks.find((D)=>D.kind==="base64url")}get minLength(){let D=null;for(let $ of this._def.checks)if($.kind==="min"){if(D===null||$.value>D)D=$.value}return D}get maxLength(){let D=null;for(let $ of this._def.checks)if($.kind==="max"){if(D===null||$.value<D)D=$.value}return D}};v2.create=(D)=>{return new v2({checks:[],typeName:$D.ZodString,coerce:D?.coerce??!1,...WD(D)})};i1=class i1 extends QD{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(D){if(this._def.coerce)D.data=Number(D.data);if(this._getType(D)!==c.number){let J=this._getOrReturnCtx(D);return d(J,{code:v.invalid_type,expected:c.number,received:J.parsedType}),t}let F=void 0,X=new q0;for(let J of this._def.checks)if(J.kind==="int"){if(!_D.isInteger(D.data))F=this._getOrReturnCtx(D,F),d(F,{code:v.invalid_type,expected:"integer",received:"float",message:J.message}),X.dirty()}else if(J.kind==="min"){if(J.inclusive?D.data<J.value:D.data<=J.value)F=this._getOrReturnCtx(D,F),d(F,{code:v.too_small,minimum:J.value,type:"number",inclusive:J.inclusive,exact:!1,message:J.message}),X.dirty()}else if(J.kind==="max"){if(J.inclusive?D.data>J.value:D.data>=J.value)F=this._getOrReturnCtx(D,F),d(F,{code:v.too_big,maximum:J.value,type:"number",inclusive:J.inclusive,exact:!1,message:J.message}),X.dirty()}else if(J.kind==="multipleOf"){if(Qf(D.data,J.value)!==0)F=this._getOrReturnCtx(D,F),d(F,{code:v.not_multiple_of,multipleOf:J.value,message:J.message}),X.dirty()}else if(J.kind==="finite"){if(!Number.isFinite(D.data))F=this._getOrReturnCtx(D,F),d(F,{code:v.not_finite,message:J.message}),X.dirty()}else _D.assertNever(J);return{status:X.value,value:D.data}}gte(D,$){return this.setLimit("min",D,!0,s.toString($))}gt(D,$){return this.setLimit("min",D,!1,s.toString($))}lte(D,$){return this.setLimit("max",D,!0,s.toString($))}lt(D,$){return this.setLimit("max",D,!1,s.toString($))}setLimit(D,$,F,X){return new i1({...this._def,checks:[...this._def.checks,{kind:D,value:$,inclusive:F,message:s.toString(X)}]})}_addCheck(D){return new i1({...this._def,checks:[...this._def.checks,D]})}int(D){return this._addCheck({kind:"int",message:s.toString(D)})}positive(D){return this._addCheck({kind:"min",value:0,inclusive:!1,message:s.toString(D)})}negative(D){return this._addCheck({kind:"max",value:0,inclusive:!1,message:s.toString(D)})}nonpositive(D){return this._addCheck({kind:"max",value:0,inclusive:!0,message:s.toString(D)})}nonnegative(D){return this._addCheck({kind:"min",value:0,inclusive:!0,message:s.toString(D)})}multipleOf(D,$){return this._addCheck({kind:"multipleOf",value:D,message:s.toString($)})}finite(D){return this._addCheck({kind:"finite",message:s.toString(D)})}safe(D){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:s.toString(D)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:s.toString(D)})}get minValue(){let D=null;for(let $ of this._def.checks)if($.kind==="min"){if(D===null||$.value>D)D=$.value}return D}get maxValue(){let D=null;for(let $ of this._def.checks)if($.kind==="max"){if(D===null||$.value<D)D=$.value}return D}get isInt(){return!!this._def.checks.find((D)=>D.kind==="int"||D.kind==="multipleOf"&&_D.isInteger(D.value))}get isFinite(){let D=null,$=null;for(let F of this._def.checks)if(F.kind==="finite"||F.kind==="int"||F.kind==="multipleOf")return!0;else if(F.kind==="min"){if($===null||F.value>$)$=F.value}else if(F.kind==="max"){if(D===null||F.value<D)D=F.value}return Number.isFinite($)&&Number.isFinite(D)}};i1.create=(D)=>{return new i1({checks:[],typeName:$D.ZodNumber,coerce:D?.coerce||!1,...WD(D)})};n1=class n1 extends QD{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(D){if(this._def.coerce)try{D.data=BigInt(D.data)}catch{return this._getInvalidInput(D)}if(this._getType(D)!==c.bigint)return this._getInvalidInput(D);let F=void 0,X=new q0;for(let J of this._def.checks)if(J.kind==="min"){if(J.inclusive?D.data<J.value:D.data<=J.value)F=this._getOrReturnCtx(D,F),d(F,{code:v.too_small,type:"bigint",minimum:J.value,inclusive:J.inclusive,message:J.message}),X.dirty()}else if(J.kind==="max"){if(J.inclusive?D.data>J.value:D.data>=J.value)F=this._getOrReturnCtx(D,F),d(F,{code:v.too_big,type:"bigint",maximum:J.value,inclusive:J.inclusive,message:J.message}),X.dirty()}else if(J.kind==="multipleOf"){if(D.data%J.value!==BigInt(0))F=this._getOrReturnCtx(D,F),d(F,{code:v.not_multiple_of,multipleOf:J.value,message:J.message}),X.dirty()}else _D.assertNever(J);return{status:X.value,value:D.data}}_getInvalidInput(D){let $=this._getOrReturnCtx(D);return d($,{code:v.invalid_type,expected:c.bigint,received:$.parsedType}),t}gte(D,$){return this.setLimit("min",D,!0,s.toString($))}gt(D,$){return this.setLimit("min",D,!1,s.toString($))}lte(D,$){return this.setLimit("max",D,!0,s.toString($))}lt(D,$){return this.setLimit("max",D,!1,s.toString($))}setLimit(D,$,F,X){return new n1({...this._def,checks:[...this._def.checks,{kind:D,value:$,inclusive:F,message:s.toString(X)}]})}_addCheck(D){return new n1({...this._def,checks:[...this._def.checks,D]})}positive(D){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:s.toString(D)})}negative(D){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:s.toString(D)})}nonpositive(D){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:s.toString(D)})}nonnegative(D){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:s.toString(D)})}multipleOf(D,$){return this._addCheck({kind:"multipleOf",value:D,message:s.toString($)})}get minValue(){let D=null;for(let $ of this._def.checks)if($.kind==="min"){if(D===null||$.value>D)D=$.value}return D}get maxValue(){let D=null;for(let $ of this._def.checks)if($.kind==="max"){if(D===null||$.value<D)D=$.value}return D}};n1.create=(D)=>{return new n1({checks:[],typeName:$D.ZodBigInt,coerce:D?.coerce??!1,...WD(D)})};v6=class v6 extends QD{_parse(D){if(this._def.coerce)D.data=Boolean(D.data);if(this._getType(D)!==c.boolean){let F=this._getOrReturnCtx(D);return d(F,{code:v.invalid_type,expected:c.boolean,received:F.parsedType}),t}return w0(D.data)}};v6.create=(D)=>{return new v6({typeName:$D.ZodBoolean,coerce:D?.coerce||!1,...WD(D)})};T8=class T8 extends QD{_parse(D){if(this._def.coerce)D.data=new Date(D.data);if(this._getType(D)!==c.date){let J=this._getOrReturnCtx(D);return d(J,{code:v.invalid_type,expected:c.date,received:J.parsedType}),t}if(Number.isNaN(D.data.getTime())){let J=this._getOrReturnCtx(D);return d(J,{code:v.invalid_date}),t}let F=new q0,X=void 0;for(let J of this._def.checks)if(J.kind==="min"){if(D.data.getTime()<J.value)X=this._getOrReturnCtx(D,X),d(X,{code:v.too_small,message:J.message,inclusive:!0,exact:!1,minimum:J.value,type:"date"}),F.dirty()}else if(J.kind==="max"){if(D.data.getTime()>J.value)X=this._getOrReturnCtx(D,X),d(X,{code:v.too_big,message:J.message,inclusive:!0,exact:!1,maximum:J.value,type:"date"}),F.dirty()}else _D.assertNever(J);return{status:F.value,value:new Date(D.data.getTime())}}_addCheck(D){return new T8({...this._def,checks:[...this._def.checks,D]})}min(D,$){return this._addCheck({kind:"min",value:D.getTime(),message:s.toString($)})}max(D,$){return this._addCheck({kind:"max",value:D.getTime(),message:s.toString($)})}get minDate(){let D=null;for(let $ of this._def.checks)if($.kind==="min"){if(D===null||$.value>D)D=$.value}return D!=null?new Date(D):null}get maxDate(){let D=null;for(let $ of this._def.checks)if($.kind==="max"){if(D===null||$.value<D)D=$.value}return D!=null?new Date(D):null}};T8.create=(D)=>{return new T8({checks:[],coerce:D?.coerce||!1,typeName:$D.ZodDate,...WD(D)})};I9=class I9 extends QD{_parse(D){if(this._getType(D)!==c.symbol){let F=this._getOrReturnCtx(D);return d(F,{code:v.invalid_type,expected:c.symbol,received:F.parsedType}),t}return w0(D.data)}};I9.create=(D)=>{return new I9({typeName:$D.ZodSymbol,...WD(D)})};x6=class x6 extends QD{_parse(D){if(this._getType(D)!==c.undefined){let F=this._getOrReturnCtx(D);return d(F,{code:v.invalid_type,expected:c.undefined,received:F.parsedType}),t}return w0(D.data)}};x6.create=(D)=>{return new x6({typeName:$D.ZodUndefined,...WD(D)})};y6=class y6 extends QD{_parse(D){if(this._getType(D)!==c.null){let F=this._getOrReturnCtx(D);return d(F,{code:v.invalid_type,expected:c.null,received:F.parsedType}),t}return w0(D.data)}};y6.create=(D)=>{return new y6({typeName:$D.ZodNull,...WD(D)})};w8=class w8 extends QD{constructor(){super(...arguments);this._any=!0}_parse(D){return w0(D.data)}};w8.create=(D)=>{return new w8({typeName:$D.ZodAny,...WD(D)})};l1=class l1 extends QD{constructor(){super(...arguments);this._unknown=!0}_parse(D){return w0(D.data)}};l1.create=(D)=>{return new l1({typeName:$D.ZodUnknown,...WD(D)})};B1=class B1 extends QD{_parse(D){let $=this._getOrReturnCtx(D);return d($,{code:v.invalid_type,expected:c.never,received:$.parsedType}),t}};B1.create=(D)=>{return new B1({typeName:$D.ZodNever,...WD(D)})};S9=class S9 extends QD{_parse(D){if(this._getType(D)!==c.undefined){let F=this._getOrReturnCtx(D);return d(F,{code:v.invalid_type,expected:c.void,received:F.parsedType}),t}return w0(D.data)}};S9.create=(D)=>{return new S9({typeName:$D.ZodVoid,...WD(D)})};x2=class x2 extends QD{_parse(D){let{ctx:$,status:F}=this._processInputParams(D),X=this._def;if($.parsedType!==c.array)return d($,{code:v.invalid_type,expected:c.array,received:$.parsedType}),t;if(X.exactLength!==null){let G=$.data.length>X.exactLength.value,Y=$.data.length<X.exactLength.value;if(G||Y)d($,{code:G?v.too_big:v.too_small,minimum:Y?X.exactLength.value:void 0,maximum:G?X.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:X.exactLength.message}),F.dirty()}if(X.minLength!==null){if($.data.length<X.minLength.value)d($,{code:v.too_small,minimum:X.minLength.value,type:"array",inclusive:!0,exact:!1,message:X.minLength.message}),F.dirty()}if(X.maxLength!==null){if($.data.length>X.maxLength.value)d($,{code:v.too_big,maximum:X.maxLength.value,type:"array",inclusive:!0,exact:!1,message:X.maxLength.message}),F.dirty()}if($.common.async)return Promise.all([...$.data].map((G,Y)=>{return X.type._parseAsync(new u2($,G,$.path,Y))})).then((G)=>{return q0.mergeArray(F,G)});let J=[...$.data].map((G,Y)=>{return X.type._parseSync(new u2($,G,$.path,Y))});return q0.mergeArray(F,J)}get element(){return this._def.type}min(D,$){return new x2({...this._def,minLength:{value:D,message:s.toString($)}})}max(D,$){return new x2({...this._def,maxLength:{value:D,message:s.toString($)}})}length(D,$){return new x2({...this._def,exactLength:{value:D,message:s.toString($)}})}nonempty(D){return this.min(1,D)}};x2.create=(D,$)=>{return new x2({type:D,minLength:null,maxLength:null,exactLength:null,typeName:$D.ZodArray,...WD($)})};oD=class oD extends QD{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let D=this._def.shape(),$=_D.objectKeys(D);return this._cached={shape:D,keys:$},this._cached}_parse(D){if(this._getType(D)!==c.object){let H=this._getOrReturnCtx(D);return d(H,{code:v.invalid_type,expected:c.object,received:H.parsedType}),t}let{status:F,ctx:X}=this._processInputParams(D),{shape:J,keys:G}=this._getCached(),Y=[];if(!(this._def.catchall instanceof B1&&this._def.unknownKeys==="strip")){for(let H in X.data)if(!G.includes(H))Y.push(H)}let B=[];for(let H of G){let U=J[H],Q=X.data[H];B.push({key:{status:"valid",value:H},value:U._parse(new u2(X,Q,X.path,H)),alwaysSet:H in X.data})}if(this._def.catchall instanceof B1){let H=this._def.unknownKeys;if(H==="passthrough")for(let U of Y)B.push({key:{status:"valid",value:U},value:{status:"valid",value:X.data[U]}});else if(H==="strict"){if(Y.length>0)d(X,{code:v.unrecognized_keys,keys:Y}),F.dirty()}else if(H==="strip");else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let H=this._def.catchall;for(let U of Y){let Q=X.data[U];B.push({key:{status:"valid",value:U},value:H._parse(new u2(X,Q,X.path,U)),alwaysSet:U in X.data})}}if(X.common.async)return Promise.resolve().then(async()=>{let H=[];for(let U of B){let Q=await U.key,V=await U.value;H.push({key:Q,value:V,alwaysSet:U.alwaysSet})}return H}).then((H)=>{return q0.mergeObjectSync(F,H)});else return q0.mergeObjectSync(F,B)}get shape(){return this._def.shape()}strict(D){return s.errToObj,new oD({...this._def,unknownKeys:"strict",...D!==void 0?{errorMap:($,F)=>{let X=this._def.errorMap?.($,F).message??F.defaultError;if($.code==="unrecognized_keys")return{message:s.errToObj(D).message??X};return{message:X}}}:{}})}strip(){return new oD({...this._def,unknownKeys:"strip"})}passthrough(){return new oD({...this._def,unknownKeys:"passthrough"})}extend(D){return new oD({...this._def,shape:()=>({...this._def.shape(),...D})})}merge(D){return new oD({unknownKeys:D._def.unknownKeys,catchall:D._def.catchall,shape:()=>({...this._def.shape(),...D._def.shape()}),typeName:$D.ZodObject})}setKey(D,$){return this.augment({[D]:$})}catchall(D){return new oD({...this._def,catchall:D})}pick(D){let $={};for(let F of _D.objectKeys(D))if(D[F]&&this.shape[F])$[F]=this.shape[F];return new oD({...this._def,shape:()=>$})}omit(D){let $={};for(let F of _D.objectKeys(this.shape))if(!D[F])$[F]=this.shape[F];return new oD({...this._def,shape:()=>$})}deepPartial(){return g6(this)}partial(D){let $={};for(let F of _D.objectKeys(this.shape)){let X=this.shape[F];if(D&&!D[F])$[F]=X;else $[F]=X.optional()}return new oD({...this._def,shape:()=>$})}required(D){let $={};for(let F of _D.objectKeys(this.shape))if(D&&!D[F])$[F]=this.shape[F];else{let J=this.shape[F];while(J instanceof y2)J=J._def.innerType;$[F]=J}return new oD({...this._def,shape:()=>$})}keyof(){return VK(_D.objectKeys(this.shape))}};oD.create=(D,$)=>{return new oD({shape:()=>D,unknownKeys:"strip",catchall:B1.create(),typeName:$D.ZodObject,...WD($)})};oD.strictCreate=(D,$)=>{return new oD({shape:()=>D,unknownKeys:"strict",catchall:B1.create(),typeName:$D.ZodObject,...WD($)})};oD.lazycreate=(D,$)=>{return new oD({shape:D,unknownKeys:"strip",catchall:B1.create(),typeName:$D.ZodObject,...WD($)})};u6=class u6 extends QD{_parse(D){let{ctx:$}=this._processInputParams(D),F=this._def.options;function X(J){for(let Y of J)if(Y.result.status==="valid")return Y.result;for(let Y of J)if(Y.result.status==="dirty")return $.common.issues.push(...Y.ctx.common.issues),Y.result;let G=J.map((Y)=>new l0(Y.ctx.common.issues));return d($,{code:v.invalid_union,unionErrors:G}),t}if($.common.async)return Promise.all(F.map(async(J)=>{let G={...$,common:{...$.common,issues:[]},parent:null};return{result:await J._parseAsync({data:$.data,path:$.path,parent:G}),ctx:G}})).then(X);else{let J=void 0,G=[];for(let B of F){let H={...$,common:{...$.common,issues:[]},parent:null},U=B._parseSync({data:$.data,path:$.path,parent:H});if(U.status==="valid")return U;else if(U.status==="dirty"&&!J)J={result:U,ctx:H};if(H.common.issues.length)G.push(H.common.issues)}if(J)return $.common.issues.push(...J.ctx.common.issues),J.result;let Y=G.map((B)=>new l0(B));return d($,{code:v.invalid_union,unionErrors:Y}),t}}get options(){return this._def.options}};u6.create=(D,$)=>{return new u6({options:D,typeName:$D.ZodUnion,...WD($)})};Z5=class Z5 extends QD{_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==c.object)return d($,{code:v.invalid_type,expected:c.object,received:$.parsedType}),t;let F=this.discriminator,X=$.data[F],J=this.optionsMap.get(X);if(!J)return d($,{code:v.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[F]}),t;if($.common.async)return J._parseAsync({data:$.data,path:$.path,parent:$});else return J._parseSync({data:$.data,path:$.path,parent:$})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(D,$,F){let X=new Map;for(let J of $){let G=E1(J.shape[D]);if(!G.length)throw Error(`A discriminator value for key \`${D}\` could not be extracted from all schema options`);for(let Y of G){if(X.has(Y))throw Error(`Discriminator property ${String(D)} has duplicate value ${String(Y)}`);X.set(Y,J)}}return new Z5({typeName:$D.ZodDiscriminatedUnion,discriminator:D,options:$,optionsMap:X,...WD(F)})}};m6=class m6 extends QD{_parse(D){let{status:$,ctx:F}=this._processInputParams(D),X=(J,G)=>{if(C5(J)||C5(G))return t;let Y=VG(J.value,G.value);if(!Y.valid)return d(F,{code:v.invalid_intersection_types}),t;if(M5(J)||M5(G))$.dirty();return{status:$.value,value:Y.data}};if(F.common.async)return Promise.all([this._def.left._parseAsync({data:F.data,path:F.path,parent:F}),this._def.right._parseAsync({data:F.data,path:F.path,parent:F})]).then(([J,G])=>X(J,G));else return X(this._def.left._parseSync({data:F.data,path:F.path,parent:F}),this._def.right._parseSync({data:F.data,path:F.path,parent:F}))}};m6.create=(D,$,F)=>{return new m6({left:D,right:$,typeName:$D.ZodIntersection,...WD(F)})};H1=class H1 extends QD{_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==c.array)return d(F,{code:v.invalid_type,expected:c.array,received:F.parsedType}),t;if(F.data.length<this._def.items.length)return d(F,{code:v.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t;if(!this._def.rest&&F.data.length>this._def.items.length)d(F,{code:v.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),$.dirty();let J=[...F.data].map((G,Y)=>{let B=this._def.items[Y]||this._def.rest;if(!B)return null;return B._parse(new u2(F,G,F.path,Y))}).filter((G)=>!!G);if(F.common.async)return Promise.all(J).then((G)=>{return q0.mergeArray($,G)});else return q0.mergeArray($,J)}get items(){return this._def.items}rest(D){return new H1({...this._def,rest:D})}};H1.create=(D,$)=>{if(!Array.isArray(D))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new H1({items:D,typeName:$D.ZodTuple,rest:null,...WD($)})};T9=class T9 extends QD{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==c.object)return d(F,{code:v.invalid_type,expected:c.object,received:F.parsedType}),t;let X=[],J=this._def.keyType,G=this._def.valueType;for(let Y in F.data)X.push({key:J._parse(new u2(F,Y,F.path,Y)),value:G._parse(new u2(F,F.data[Y],F.path,Y)),alwaysSet:Y in F.data});if(F.common.async)return q0.mergeObjectAsync($,X);else return q0.mergeObjectSync($,X)}get element(){return this._def.valueType}static create(D,$,F){if($ instanceof QD)return new T9({keyType:D,valueType:$,typeName:$D.ZodRecord,...WD(F)});return new T9({keyType:v2.create(),valueType:D,typeName:$D.ZodRecord,...WD($)})}};w9=class w9 extends QD{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==c.map)return d(F,{code:v.invalid_type,expected:c.map,received:F.parsedType}),t;let X=this._def.keyType,J=this._def.valueType,G=[...F.data.entries()].map(([Y,B],H)=>{return{key:X._parse(new u2(F,Y,F.path,[H,"key"])),value:J._parse(new u2(F,B,F.path,[H,"value"]))}});if(F.common.async){let Y=new Map;return Promise.resolve().then(async()=>{for(let B of G){let H=await B.key,U=await B.value;if(H.status==="aborted"||U.status==="aborted")return t;if(H.status==="dirty"||U.status==="dirty")$.dirty();Y.set(H.value,U.value)}return{status:$.value,value:Y}})}else{let Y=new Map;for(let B of G){let{key:H,value:U}=B;if(H.status==="aborted"||U.status==="aborted")return t;if(H.status==="dirty"||U.status==="dirty")$.dirty();Y.set(H.value,U.value)}return{status:$.value,value:Y}}}};w9.create=(D,$,F)=>{return new w9({valueType:$,keyType:D,typeName:$D.ZodMap,...WD(F)})};k8=class k8 extends QD{_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==c.set)return d(F,{code:v.invalid_type,expected:c.set,received:F.parsedType}),t;let X=this._def;if(X.minSize!==null){if(F.data.size<X.minSize.value)d(F,{code:v.too_small,minimum:X.minSize.value,type:"set",inclusive:!0,exact:!1,message:X.minSize.message}),$.dirty()}if(X.maxSize!==null){if(F.data.size>X.maxSize.value)d(F,{code:v.too_big,maximum:X.maxSize.value,type:"set",inclusive:!0,exact:!1,message:X.maxSize.message}),$.dirty()}let J=this._def.valueType;function G(B){let H=new Set;for(let U of B){if(U.status==="aborted")return t;if(U.status==="dirty")$.dirty();H.add(U.value)}return{status:$.value,value:H}}let Y=[...F.data.values()].map((B,H)=>J._parse(new u2(F,B,F.path,H)));if(F.common.async)return Promise.all(Y).then((B)=>G(B));else return G(Y)}min(D,$){return new k8({...this._def,minSize:{value:D,message:s.toString($)}})}max(D,$){return new k8({...this._def,maxSize:{value:D,message:s.toString($)}})}size(D,$){return this.min(D,$).max(D,$)}nonempty(D){return this.min(1,D)}};k8.create=(D,$)=>{return new k8({valueType:D,minSize:null,maxSize:null,typeName:$D.ZodSet,...WD($)})};h6=class h6 extends QD{constructor(){super(...arguments);this.validate=this.implement}_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==c.function)return d($,{code:v.invalid_type,expected:c.function,received:$.parsedType}),t;function F(Y,B){return z9({data:Y,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,b6(),O1].filter((H)=>!!H),issueData:{code:v.invalid_arguments,argumentsError:B}})}function X(Y,B){return z9({data:Y,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,b6(),O1].filter((H)=>!!H),issueData:{code:v.invalid_return_type,returnTypeError:B}})}let J={errorMap:$.common.contextualErrorMap},G=$.data;if(this._def.returns instanceof b8){let Y=this;return w0(async function(...B){let H=new l0([]),U=await Y._def.args.parseAsync(B,J).catch((A)=>{throw H.addIssue(F(B,A)),H}),Q=await Reflect.apply(G,this,U);return await Y._def.returns._def.type.parseAsync(Q,J).catch((A)=>{throw H.addIssue(X(Q,A)),H})})}else{let Y=this;return w0(function(...B){let H=Y._def.args.safeParse(B,J);if(!H.success)throw new l0([F(B,H.error)]);let U=Reflect.apply(G,this,H.data),Q=Y._def.returns.safeParse(U,J);if(!Q.success)throw new l0([X(U,Q.error)]);return Q.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...D){return new h6({...this._def,args:H1.create(D).rest(l1.create())})}returns(D){return new h6({...this._def,returns:D})}implement(D){return this.parse(D)}strictImplement(D){return this.parse(D)}static create(D,$,F){return new h6({args:D?D:H1.create([]).rest(l1.create()),returns:$||l1.create(),typeName:$D.ZodFunction,...WD(F)})}};c6=class c6 extends QD{get schema(){return this._def.getter()}_parse(D){let{ctx:$}=this._processInputParams(D);return this._def.getter()._parse({data:$.data,path:$.path,parent:$})}};c6.create=(D,$)=>{return new c6({getter:D,typeName:$D.ZodLazy,...WD($)})};p6=class p6 extends QD{_parse(D){if(D.data!==this._def.value){let $=this._getOrReturnCtx(D);return d($,{received:$.data,code:v.invalid_literal,expected:this._def.value}),t}return{status:"valid",value:D.data}}get value(){return this._def.value}};p6.create=(D,$)=>{return new p6({value:D,typeName:$D.ZodLiteral,...WD($)})};r1=class r1 extends QD{_parse(D){if(typeof D.data!=="string"){let $=this._getOrReturnCtx(D),F=this._def.values;return d($,{expected:_D.joinValues(F),received:$.parsedType,code:v.invalid_type}),t}if(!this._cache)this._cache=new Set(this._def.values);if(!this._cache.has(D.data)){let $=this._getOrReturnCtx(D),F=this._def.values;return d($,{received:$.data,code:v.invalid_enum_value,options:F}),t}return w0(D.data)}get options(){return this._def.values}get enum(){let D={};for(let $ of this._def.values)D[$]=$;return D}get Values(){let D={};for(let $ of this._def.values)D[$]=$;return D}get Enum(){let D={};for(let $ of this._def.values)D[$]=$;return D}extract(D,$=this._def){return r1.create(D,{...this._def,...$})}exclude(D,$=this._def){return r1.create(this.options.filter((F)=>!D.includes(F)),{...this._def,...$})}};r1.create=VK;d6=class d6 extends QD{_parse(D){let $=_D.getValidEnumValues(this._def.values),F=this._getOrReturnCtx(D);if(F.parsedType!==c.string&&F.parsedType!==c.number){let X=_D.objectValues($);return d(F,{expected:_D.joinValues(X),received:F.parsedType,code:v.invalid_type}),t}if(!this._cache)this._cache=new Set(_D.getValidEnumValues(this._def.values));if(!this._cache.has(D.data)){let X=_D.objectValues($);return d(F,{received:F.data,code:v.invalid_enum_value,options:X}),t}return w0(D.data)}get enum(){return this._def.values}};d6.create=(D,$)=>{return new d6({values:D,typeName:$D.ZodNativeEnum,...WD($)})};b8=class b8 extends QD{unwrap(){return this._def.type}_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==c.promise&&$.common.async===!1)return d($,{code:v.invalid_type,expected:c.promise,received:$.parsedType}),t;let F=$.parsedType===c.promise?$.data:Promise.resolve($.data);return w0(F.then((X)=>{return this._def.type.parseAsync(X,{path:$.path,errorMap:$.common.contextualErrorMap})}))}};b8.create=(D,$)=>{return new b8({type:D,typeName:$D.ZodPromise,...WD($)})};m2=class m2 extends QD{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===$D.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(D){let{status:$,ctx:F}=this._processInputParams(D),X=this._def.effect||null,J={addIssue:(G)=>{if(d(F,G),G.fatal)$.abort();else $.dirty()},get path(){return F.path}};if(J.addIssue=J.addIssue.bind(J),X.type==="preprocess"){let G=X.transform(F.data,J);if(F.common.async)return Promise.resolve(G).then(async(Y)=>{if($.value==="aborted")return t;let B=await this._def.schema._parseAsync({data:Y,path:F.path,parent:F});if(B.status==="aborted")return t;if(B.status==="dirty")return S8(B.value);if($.value==="dirty")return S8(B.value);return B});else{if($.value==="aborted")return t;let Y=this._def.schema._parseSync({data:G,path:F.path,parent:F});if(Y.status==="aborted")return t;if(Y.status==="dirty")return S8(Y.value);if($.value==="dirty")return S8(Y.value);return Y}}if(X.type==="refinement"){let G=(Y)=>{let B=X.refinement(Y,J);if(F.common.async)return Promise.resolve(B);if(B instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return Y};if(F.common.async===!1){let Y=this._def.schema._parseSync({data:F.data,path:F.path,parent:F});if(Y.status==="aborted")return t;if(Y.status==="dirty")$.dirty();return G(Y.value),{status:$.value,value:Y.value}}else return this._def.schema._parseAsync({data:F.data,path:F.path,parent:F}).then((Y)=>{if(Y.status==="aborted")return t;if(Y.status==="dirty")$.dirty();return G(Y.value).then(()=>{return{status:$.value,value:Y.value}})})}if(X.type==="transform")if(F.common.async===!1){let G=this._def.schema._parseSync({data:F.data,path:F.path,parent:F});if(!d1(G))return t;let Y=X.transform(G.value,J);if(Y instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:$.value,value:Y}}else return this._def.schema._parseAsync({data:F.data,path:F.path,parent:F}).then((G)=>{if(!d1(G))return t;return Promise.resolve(X.transform(G.value,J)).then((Y)=>({status:$.value,value:Y}))});_D.assertNever(X)}};m2.create=(D,$,F)=>{return new m2({schema:D,typeName:$D.ZodEffects,effect:$,...WD(F)})};m2.createWithPreprocess=(D,$,F)=>{return new m2({schema:$,effect:{type:"preprocess",transform:D},typeName:$D.ZodEffects,...WD(F)})};y2=class y2 extends QD{_parse(D){if(this._getType(D)===c.undefined)return w0(void 0);return this._def.innerType._parse(D)}unwrap(){return this._def.innerType}};y2.create=(D,$)=>{return new y2({innerType:D,typeName:$D.ZodOptional,...WD($)})};j1=class j1 extends QD{_parse(D){if(this._getType(D)===c.null)return w0(null);return this._def.innerType._parse(D)}unwrap(){return this._def.innerType}};j1.create=(D,$)=>{return new j1({innerType:D,typeName:$D.ZodNullable,...WD($)})};l6=class l6 extends QD{_parse(D){let{ctx:$}=this._processInputParams(D),F=$.data;if($.parsedType===c.undefined)F=this._def.defaultValue();return this._def.innerType._parse({data:F,path:$.path,parent:$})}removeDefault(){return this._def.innerType}};l6.create=(D,$)=>{return new l6({innerType:D,typeName:$D.ZodDefault,defaultValue:typeof $.default==="function"?$.default:()=>$.default,...WD($)})};i6=class i6 extends QD{_parse(D){let{ctx:$}=this._processInputParams(D),F={...$,common:{...$.common,issues:[]}},X=this._def.innerType._parse({data:F.data,path:F.path,parent:{...F}});if(f6(X))return X.then((J)=>{return{status:"valid",value:J.status==="valid"?J.value:this._def.catchValue({get error(){return new l0(F.common.issues)},input:F.data})}});else return{status:"valid",value:X.status==="valid"?X.value:this._def.catchValue({get error(){return new l0(F.common.issues)},input:F.data})}}removeCatch(){return this._def.innerType}};i6.create=(D,$)=>{return new i6({innerType:D,typeName:$D.ZodCatch,catchValue:typeof $.catch==="function"?$.catch:()=>$.catch,...WD($)})};k9=class k9 extends QD{_parse(D){if(this._getType(D)!==c.nan){let F=this._getOrReturnCtx(D);return d(F,{code:v.invalid_type,expected:c.nan,received:F.parsedType}),t}return{status:"valid",value:D.data}}};k9.create=(D)=>{return new k9({typeName:$D.ZodNaN,...WD(D)})};Vf=Symbol("zod_brand");R5=class R5 extends QD{_parse(D){let{ctx:$}=this._processInputParams(D),F=$.data;return this._def.type._parse({data:F,path:$.path,parent:$})}unwrap(){return this._def.type}};b9=class b9 extends QD{_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.common.async)return(async()=>{let J=await this._def.in._parseAsync({data:F.data,path:F.path,parent:F});if(J.status==="aborted")return t;if(J.status==="dirty")return $.dirty(),S8(J.value);else return this._def.out._parseAsync({data:J.value,path:F.path,parent:F})})();else{let X=this._def.in._parseSync({data:F.data,path:F.path,parent:F});if(X.status==="aborted")return t;if(X.status==="dirty")return $.dirty(),{status:"dirty",value:X.value};else return this._def.out._parseSync({data:X.value,path:F.path,parent:F})}}static create(D,$){return new b9({in:D,out:$,typeName:$D.ZodPipeline})}};n6=class n6 extends QD{_parse(D){let $=this._def.innerType._parse(D),F=(X)=>{if(d1(X))X.value=Object.freeze(X.value);return X};return f6($)?$.then((X)=>F(X)):F($)}unwrap(){return this._def.innerType}};n6.create=(D,$)=>{return new n6({innerType:D,typeName:$D.ZodReadonly,...WD($)})};Af={object:oD.lazycreate};(function(D){D.ZodString="ZodString",D.ZodNumber="ZodNumber",D.ZodNaN="ZodNaN",D.ZodBigInt="ZodBigInt",D.ZodBoolean="ZodBoolean",D.ZodDate="ZodDate",D.ZodSymbol="ZodSymbol",D.ZodUndefined="ZodUndefined",D.ZodNull="ZodNull",D.ZodAny="ZodAny",D.ZodUnknown="ZodUnknown",D.ZodNever="ZodNever",D.ZodVoid="ZodVoid",D.ZodArray="ZodArray",D.ZodObject="ZodObject",D.ZodUnion="ZodUnion",D.ZodDiscriminatedUnion="ZodDiscriminatedUnion",D.ZodIntersection="ZodIntersection",D.ZodTuple="ZodTuple",D.ZodRecord="ZodRecord",D.ZodMap="ZodMap",D.ZodSet="ZodSet",D.ZodFunction="ZodFunction",D.ZodLazy="ZodLazy",D.ZodLiteral="ZodLiteral",D.ZodEnum="ZodEnum",D.ZodEffects="ZodEffects",D.ZodNativeEnum="ZodNativeEnum",D.ZodOptional="ZodOptional",D.ZodNullable="ZodNullable",D.ZodDefault="ZodDefault",D.ZodCatch="ZodCatch",D.ZodPromise="ZodPromise",D.ZodBranded="ZodBranded",D.ZodPipeline="ZodPipeline",D.ZodReadonly="ZodReadonly"})($D||($D={}));KK=v2.create,_K=i1.create,_f=k9.create,Cf=n1.create,CK=v6.create,Mf=T8.create,Zf=I9.create,Rf=x6.create,Of=y6.create,Ef=w8.create,jf=l1.create,Nf=B1.create,Pf=S9.create,Lf=x2.create,qf=oD.create,zf=oD.strictCreate,If=u6.create,Sf=Z5.create,Tf=m6.create,wf=H1.create,kf=T9.create,bf=w9.create,ff=k8.create,gf=h6.create,hf=c6.create,vf=p6.create,xf=r1.create,yf=d6.create,uf=b8.create,mf=m2.create,cf=y2.create,pf=j1.create,df=m2.createWithPreprocess,lf=b9.create,af={string:(D)=>v2.create({...D,coerce:!0}),number:(D)=>i1.create({...D,coerce:!0}),boolean:(D)=>v6.create({...D,coerce:!0}),bigint:(D)=>n1.create({...D,coerce:!0}),date:(D)=>T8.create({...D,coerce:!0})},of=t});var W={};z8(W,{void:()=>Pf,util:()=>_D,unknown:()=>jf,union:()=>If,undefined:()=>Rf,tuple:()=>wf,transformer:()=>mf,symbol:()=>Zf,string:()=>KK,strictObject:()=>zf,setErrorMap:()=>pb,set:()=>ff,record:()=>kf,quotelessJson:()=>mb,promise:()=>uf,preprocess:()=>df,pipeline:()=>lf,ostring:()=>nf,optional:()=>cf,onumber:()=>rf,oboolean:()=>sf,objectUtil:()=>HG,object:()=>qf,number:()=>_K,nullable:()=>pf,null:()=>Of,never:()=>Nf,nativeEnum:()=>yf,nan:()=>_f,map:()=>bf,makeIssue:()=>z9,literal:()=>vf,lazy:()=>hf,late:()=>Af,isValid:()=>d1,isDirty:()=>M5,isAsync:()=>f6,isAborted:()=>C5,intersection:()=>Tf,instanceof:()=>Kf,getParsedType:()=>Y1,getErrorMap:()=>b6,function:()=>gf,enum:()=>xf,effect:()=>mf,discriminatedUnion:()=>Sf,defaultErrorMap:()=>O1,datetimeRegex:()=>QK,date:()=>Mf,custom:()=>AK,coerce:()=>af,boolean:()=>CK,bigint:()=>Cf,array:()=>Lf,any:()=>Ef,addIssueToContext:()=>d,ZodVoid:()=>S9,ZodUnknown:()=>l1,ZodUnion:()=>u6,ZodUndefined:()=>x6,ZodType:()=>QD,ZodTuple:()=>H1,ZodTransformer:()=>m2,ZodSymbol:()=>I9,ZodString:()=>v2,ZodSet:()=>k8,ZodSchema:()=>QD,ZodRecord:()=>T9,ZodReadonly:()=>n6,ZodPromise:()=>b8,ZodPipeline:()=>b9,ZodParsedType:()=>c,ZodOptional:()=>y2,ZodObject:()=>oD,ZodNumber:()=>i1,ZodNullable:()=>j1,ZodNull:()=>y6,ZodNever:()=>B1,ZodNativeEnum:()=>d6,ZodNaN:()=>k9,ZodMap:()=>w9,ZodLiteral:()=>p6,ZodLazy:()=>c6,ZodIssueCode:()=>v,ZodIntersection:()=>m6,ZodFunction:()=>h6,ZodFirstPartyTypeKind:()=>$D,ZodError:()=>l0,ZodEnum:()=>r1,ZodEffects:()=>m2,ZodDiscriminatedUnion:()=>Z5,ZodDefault:()=>l6,ZodDate:()=>T8,ZodCatch:()=>i6,ZodBranded:()=>R5,ZodBoolean:()=>v6,ZodBigInt:()=>n1,ZodArray:()=>x2,ZodAny:()=>w8,Schema:()=>QD,ParseStatus:()=>q0,OK:()=>w0,NEVER:()=>of,INVALID:()=>t,EMPTY_PATH:()=>db,DIRTY:()=>S8,BRAND:()=>Vf});var AG=R(()=>{_5();UG();GK();q9();MK();K5()});var jD=R(()=>{AG();AG()});function KG(D){return Object.prototype.hasOwnProperty.call(IK,D)}var YD,Q2,ZK,RK,OK,EK,jK,NK,PK,LK,qK,O5,E5,zK,IK;var SK=R(()=>{jD();YD={WORKER_ONLINE:"worker.online",WORKER_OFFLINE:"worker.offline",CHAT_MESSAGE:"chat.message",AGENT_THINKING:"agent.thinking",AGENT_TOOL_CALL:"agent.tool_call",AGENT_DONE:"agent.done",CONFIG_CHANGED:"config.changed",LOGS_LINE:"logs.line",APPROVAL_REQUESTED:"approval.requested",ENROLLMENT_OTP:"enrollment.otp",ENROLLMENT_APPROVED:"enrollment.approved",ENROLLMENT_PENDING:"enrollment.pending"},Q2=W.object({workerId:W.string().min(1)}),ZK=Q2.extend({displayName:W.string().optional(),deviceId:W.string().min(1),connectedAt:W.number().int()}),RK=Q2.extend({deviceId:W.string().min(1),reason:W.enum(["disconnected","expired","kicked"]).optional(),disconnectedAt:W.number().int()}),OK=Q2.extend({conversationId:W.string().min(1),role:W.enum(["user","assistant","system"]),content:W.string(),createdAt:W.number().int()}),EK=Q2.extend({conversationId:W.string().min(1),taskId:W.string().min(1).optional(),chunk:W.string().optional()}),jK=Q2.extend({conversationId:W.string().min(1),taskId:W.string().min(1).optional(),toolCallId:W.string().min(1),toolName:W.string().min(1),status:W.enum(["pending","running","success","error"]),args:W.unknown().optional(),result:W.unknown().optional()}),NK=Q2.extend({conversationId:W.string().min(1),taskId:W.string().min(1).optional(),finishReason:W.enum(["stop","length","tool_use","error","cancelled"]),usage:W.object({inputTokens:W.number().int().nonnegative().optional(),outputTokens:W.number().int().nonnegative().optional(),totalTokens:W.number().int().nonnegative().optional()}).optional()}),PK=Q2.extend({version:W.number().int().nonnegative(),changedAt:W.number().int()}),LK=Q2.extend({stream:W.enum(["stdout","stderr"]),line:W.string(),ts:W.number().int()}),qK=Q2.extend({taskId:W.string().min(1),toolCallId:W.string().min(1),toolName:W.string().min(1),params:W.record(W.unknown()),expiresAt:W.number().int()}),O5=Q2.extend({otp:W.string().min(1),expiresAt:W.number().int()}),E5=Q2.extend({deviceToken:W.string().min(1)}),zK=Q2.extend({otp:W.string().min(1),displayName:W.string().min(1).optional(),submittedAt:W.number().int(),expiresAt:W.number().int(),reason:W.enum(["submitted","approved","rejected","expired","abandoned"])}),IK={[YD.WORKER_ONLINE]:ZK,[YD.WORKER_OFFLINE]:RK,[YD.CHAT_MESSAGE]:OK,[YD.AGENT_THINKING]:EK,[YD.AGENT_TOOL_CALL]:jK,[YD.AGENT_DONE]:NK,[YD.CONFIG_CHANGED]:PK,[YD.LOGS_LINE]:LK,[YD.APPROVAL_REQUESTED]:qK,[YD.ENROLLMENT_OTP]:O5,[YD.ENROLLMENT_APPROVED]:E5,[YD.ENROLLMENT_PENDING]:zK}});function r6(D){if(typeof D!=="string"||D.length===0)return{hits:[]};let $=[];for(let J of wK){J.regex.lastIndex=0;let G=J.regex.exec(D);while(G!==null)$.push({rule:J.id,label:J.label,preview:TK(G[0]),index:G.index}),G=J.regex.exec(D)}let F=$.map((J)=>({start:J.index,end:J.index+J.preview.length}));f9.lastIndex=0;let X=f9.exec(D);while(X!==null){let J=X[0],G=X.index;if(!tf(G,G+J.length,F)&&ef(J)>=4)$.push({rule:"high-entropy",label:"high-entropy token-like string",preview:TK(J),index:G});X=f9.exec(D)}return $.sort((J,G)=>J.index-G.index),{hits:$}}function z0(D){let $=r6(D);if($.hits.length===0)return{body:D,hits:[]};let F=[...$.hits].sort((J,G)=>G.index-J.index),X=D;for(let J of F){let G=J.index,Y=Dg(X,G,J.rule);if(Y===null)continue;X=`${X.slice(0,G)}[REDACTED:${J.rule}]${X.slice(G+Y.length)}`}return{body:X,hits:$.hits}}function TK(D){if(D.length<=6)return"*".repeat(D.length);return`${D.slice(0,3)}\u2026${D.slice(-3)}`}function tf(D,$,F){for(let X of F)if(D<X.end&&$>X.start)return!0;return!1}function ef(D){if(D.length===0)return 0;let $=new Map;for(let X of D)$.set(X,($.get(X)??0)+1);let F=0;for(let X of $.values()){let J=X/D.length;F-=J*Math.log2(J)}return F}function Dg(D,$,F){if(F==="high-entropy"){f9.lastIndex=$;let G=f9.exec(D);return G&&G.index===$?G[0]:null}let X=wK.find((G)=>G.id===F);if(!X)return null;X.regex.lastIndex=$;let J=X.regex.exec(D);return J&&J.index===$?J[0]:null}var wK,f9;var _G=R(()=>{wK=[{id:"sk-token",label:"OpenAI/Anthropic-style sk- token",regex:/sk-[\w-]{20,}/g},{id:"jwt",label:"JWT-like token",regex:/eyJ[\w=.-]{20,}/g},{id:"bearer-token",label:"Bearer authorization token",regex:/\b[Bb]earer\s+[\w.-]{20,}/g},{id:"aws-access-key",label:"AWS access key id",regex:/\b(?:AKIA|ASIA)[0-9A-Z]{16}\b/g},{id:"github-token",label:"GitHub-style token (ghp / gho / ghs / ghu / ghr)",regex:/\bgh[posur]_[A-Za-z0-9]{36,}\b/g},{id:"slack-token",label:"Slack token (xoxa / xoxb / xoxp / xoxr / xoxs)",regex:/\bxox[abprs]-[A-Za-z0-9-]{10,}/g},{id:"stripe-live",label:"Stripe live secret key",regex:/\bsk_live_[A-Za-z0-9]{16,}/g},{id:"gcp-api-key",label:"Google Cloud / Firebase API key",regex:/\bAIza[\w-]{35}\b/g},{id:"pem-private-key",label:"PEM-formatted private key block",regex:/-----BEGIN (?:RSA |EC |DSA |OPENSSH )?PRIVATE KEY-----[\s\S]+?-----END (?:RSA |EC |DSA |OPENSSH )?PRIVATE KEY-----/g}],f9=/[\w+/=-]{32,}/g});function q5(D){return RG.includes(D)}function Bg(D){return Gg.test(D)}function s6(D){if(Array.isArray(D))return D.map(s6);if(D!==null&&typeof D==="object"){let $={};for(let[F,X]of Object.entries(D))if(typeof X==="string"&&Bg(F))$[F]=Yg;else if(typeof X==="string")$[F]=z0(X).body;else $[F]=s6(X);return $}if(typeof D==="string")return z0(D).body;return D}function I5(D){return{...D,summary:z0(D.summary).body,rollback:z0(D.rollback).body,target:z0(D.target).body,evidence:D.evidence.map((F)=>s6(F)),...D.payload===void 0?{}:{payload:s6(D.payload)}}}var $g,Fg,kK,g9,j5,a6,CG,MG,ZG,N5,P5,L5,bK,RG,Xg,o6,Jg,z5,Gg,Yg="<redacted>";var OG=R(()=>{jD();_G();$g=/^[a-z0-9][a-z0-9._-]*$/,Fg=/^[a-z][a-z0-9-]*$/,kK=/^[a-z][a-z0-9-]*$/,g9=W.string().min(1).regex($g,"admission id must be lowercase alphanumeric with . _ -"),j5=W.string().min(1).regex(Fg,"admission kind must be kebab-case"),a6=W.enum(["low","medium","high"]),CG=W.enum(["pending","approved","rejected","applied","failed"]),MG=W.enum(["approved","rejected","applied","failed"]),ZG=W.enum(["conversation","message","tool-call","observation","artifact","memory","log"]),N5=W.object({at:W.string().min(1),kind:ZG,summary:W.string().max(500).optional(),notes:W.string().max(2000).optional(),ref:W.string().min(1)}),P5=W.object({confidence:W.number().min(0).max(1),createdAt:W.string().min(1),evidence:W.array(N5).readonly(),id:g9,kind:j5,payload:W.record(W.string(),W.unknown()).optional(),risk:a6,rollback:W.string().min(1),scopeId:W.string().min(1).optional(),soulId:W.string().min(1).regex(kK),status:CG,summary:W.string().min(1).max(2000),target:W.string().min(1),updatedAt:W.string().min(1)}),L5=W.object({confidence:W.number().min(0).max(1),evidence:W.array(N5).readonly().optional(),id:g9,kind:j5,payload:W.record(W.string(),W.unknown()).optional(),risk:a6.default("high"),rollback:W.string().min(1),scopeId:W.string().min(1).optional(),soulId:W.string().min(1).regex(kK),summary:W.string().min(1).max(2000),target:W.string().min(1)}),bK=W.object({appliedAt:W.string().min(1).optional(),decidedAt:W.string().min(1),decidedBy:W.string().min(1),decision:MG,failureReason:W.string().max(4000).optional(),id:W.number().int().positive(),proposalId:g9,reason:W.string().max(2000).optional()}),RG=["memory-add","brain-skill-add"];Xg=/^[a-z0-9][a-z0-9._-]*$/,o6=W.object({body:W.string().min(1).max(20000),topic:W.string().min(1).regex(Xg).optional(),indexEntry:W.string().min(1).max(280).optional()}),Jg=/^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$/,z5=W.object({body:W.string().min(1).max(20000),skillId:W.string().min(1).regex(Jg),overwrite:W.boolean().optional()}),Gg=/token|api[-_ ]?key|password|secret|bearer|auth(?:orization)?|credential/i});function h5(D){if(!Ug.has(D.sensitivity))return D;let $={...D,ref:fK};if(D.hash!==void 0)$.hash=fK;return $}var Hg,Wg,S5,T5,w5,k5,b5,f5,g5,Ug,fK="<redacted>";var gK=R(()=>{jD();Hg=/^[a-z0-9][a-z0-9._-]*$/,Wg=/^[a-z][a-z0-9-]*$/,S5=W.string().min(1).regex(Hg,"artifact id must be lowercase alphanumeric with . _ -"),T5=W.string().min(1).regex(Wg,"artifact type must be kebab-case"),w5=W.enum(["public","internal","confidential","secret"]),k5=W.enum(["active","archived","removed"]),b5=W.enum(["operator","brain-runtime","executor","channel-import"]),f5=W.object({createdAt:W.string().min(1),evidenceRefs:W.array(W.string().min(1)).readonly(),hash:W.string().regex(/^[a-f0-9]{64}$/).optional(),id:S5,metadata:W.record(W.string(),W.unknown()).optional(),ref:W.string().min(1),retention:W.string().min(1).optional(),scopeId:W.string().min(1).optional(),sensitivity:w5,source:b5,status:k5,summary:W.string().max(2000).optional(),type:T5,updatedAt:W.string().min(1)}),g5=W.object({evidenceRefs:W.array(W.string().min(1)).readonly().optional(),hash:W.string().regex(/^[a-f0-9]{64}$/).optional(),id:S5,metadata:W.record(W.string(),W.unknown()).optional(),ref:W.string().min(1),retention:W.string().min(1).optional(),scopeId:W.string().min(1).optional(),sensitivity:w5.default("internal"),source:b5,status:k5.default("active"),summary:W.string().max(2000).optional(),type:T5}),Ug=new Set(["confidential","secret"])});function u5(D){if(D.length===0)return 0;return Math.max(1,Math.ceil(D.length/4))}var Qg,v5,EG,jG,NG,x5,hK,y5=4000;var vK=R(()=>{jD();OG();Qg=/^[a-z][a-z0-9-]*$/,v5=W.string().min(1).regex(Qg,"brief section id must be kebab-case"),EG=W.enum(["agent-doc","soul-doc","memory-doc","rollup-doc","risk-policy","admission-summary","artifact-summary","scope-manifest","soul-skeleton"]),jG=W.object({body:W.string().min(1),id:v5,protected:W.boolean(),source:EG,tokens:W.number().int().nonnegative()}),NG=W.object({estimatedTokens:W.number().int().nonnegative(),id:v5,reason:W.string().min(1)}),x5=W.object({artifactRefs:W.array(W.unknown()).transform((D)=>D.filter(($)=>typeof $==="string").map(($)=>$.trim()).filter(($)=>$.length>0)).pipe(W.array(W.string().min(1)).readonly()).optional(),executor:W.string().min(1).optional(),risk:a6.optional(),scopeId:W.string().min(1).optional(),soulId:W.string().min(1).optional(),task:W.string().min(1).max(4000),tokenBudget:W.number().int().min(200).max(50000).optional()}),hK=W.object({compiledAt:W.string().min(1),droppedSections:W.array(NG).readonly(),executor:W.string().min(1).optional(),scopeId:W.string().min(1).optional(),sections:W.array(jG).readonly(),soulId:W.string().min(1),task:W.string().min(1),tokensBudget:W.number().int().positive(),tokensUsed:W.number().int().nonnegative(),warnings:W.array(W.string().min(1)).readonly()})});var RD=u((Rg)=>{var PG=Symbol.for("yaml.alias"),xK=Symbol.for("yaml.document"),m5=Symbol.for("yaml.map"),yK=Symbol.for("yaml.pair"),LG=Symbol.for("yaml.scalar"),c5=Symbol.for("yaml.seq"),N1=Symbol.for("yaml.node.type"),Vg=(D)=>!!D&&typeof D==="object"&&D[N1]===PG,Ag=(D)=>!!D&&typeof D==="object"&&D[N1]===xK,Kg=(D)=>!!D&&typeof D==="object"&&D[N1]===m5,_g=(D)=>!!D&&typeof D==="object"&&D[N1]===yK,uK=(D)=>!!D&&typeof D==="object"&&D[N1]===LG,Cg=(D)=>!!D&&typeof D==="object"&&D[N1]===c5;function mK(D){if(D&&typeof D==="object")switch(D[N1]){case m5:case c5:return!0}return!1}function Mg(D){if(D&&typeof D==="object")switch(D[N1]){case PG:case m5:case LG:case c5:return!0}return!1}var Zg=(D)=>(uK(D)||mK(D))&&!!D.anchor;Rg.ALIAS=PG;Rg.DOC=xK;Rg.MAP=m5;Rg.NODE_TYPE=N1;Rg.PAIR=yK;Rg.SCALAR=LG;Rg.SEQ=c5;Rg.hasAnchor=Zg;Rg.isAlias=Vg;Rg.isCollection=mK;Rg.isDocument=Ag;Rg.isMap=Kg;Rg.isNode=Mg;Rg.isPair=_g;Rg.isScalar=uK;Rg.isSeq=Cg});var h9=u((hg)=>{var _0=RD(),i0=Symbol("break visit"),cK=Symbol("skip children"),W1=Symbol("remove node");function p5(D,$){let F=pK($);if(_0.isDocument(D)){if(t6(null,D.contents,F,Object.freeze([D]))===W1)D.contents=null}else t6(null,D,F,Object.freeze([]))}p5.BREAK=i0;p5.SKIP=cK;p5.REMOVE=W1;function t6(D,$,F,X){let J=dK(D,$,F,X);if(_0.isNode(J)||_0.isPair(J))return lK(D,X,J),t6(D,J,F,X);if(typeof J!=="symbol"){if(_0.isCollection($)){X=Object.freeze(X.concat($));for(let G=0;G<$.items.length;++G){let Y=t6(G,$.items[G],F,X);if(typeof Y==="number")G=Y-1;else if(Y===i0)return i0;else if(Y===W1)$.items.splice(G,1),G-=1}}else if(_0.isPair($)){X=Object.freeze(X.concat($));let G=t6("key",$.key,F,X);if(G===i0)return i0;else if(G===W1)$.key=null;let Y=t6("value",$.value,F,X);if(Y===i0)return i0;else if(Y===W1)$.value=null}}return J}async function d5(D,$){let F=pK($);if(_0.isDocument(D)){if(await e6(null,D.contents,F,Object.freeze([D]))===W1)D.contents=null}else await e6(null,D,F,Object.freeze([]))}d5.BREAK=i0;d5.SKIP=cK;d5.REMOVE=W1;async function e6(D,$,F,X){let J=await dK(D,$,F,X);if(_0.isNode(J)||_0.isPair(J))return lK(D,X,J),e6(D,J,F,X);if(typeof J!=="symbol"){if(_0.isCollection($)){X=Object.freeze(X.concat($));for(let G=0;G<$.items.length;++G){let Y=await e6(G,$.items[G],F,X);if(typeof Y==="number")G=Y-1;else if(Y===i0)return i0;else if(Y===W1)$.items.splice(G,1),G-=1}}else if(_0.isPair($)){X=Object.freeze(X.concat($));let G=await e6("key",$.key,F,X);if(G===i0)return i0;else if(G===W1)$.key=null;let Y=await e6("value",$.value,F,X);if(Y===i0)return i0;else if(Y===W1)$.value=null}}return J}function pK(D){if(typeof D==="object"&&(D.Collection||D.Node||D.Value))return Object.assign({Alias:D.Node,Map:D.Node,Scalar:D.Node,Seq:D.Node},D.Value&&{Map:D.Value,Scalar:D.Value,Seq:D.Value},D.Collection&&{Map:D.Collection,Seq:D.Collection},D);return D}function dK(D,$,F,X){if(typeof F==="function")return F(D,$,X);if(_0.isMap($))return F.Map?.(D,$,X);if(_0.isSeq($))return F.Seq?.(D,$,X);if(_0.isPair($))return F.Pair?.(D,$,X);if(_0.isScalar($))return F.Scalar?.(D,$,X);if(_0.isAlias($))return F.Alias?.(D,$,X);return}function lK(D,$,F){let X=$[$.length-1];if(_0.isCollection(X))X.items[D]=F;else if(_0.isPair(X))if(D==="key")X.key=F;else X.value=F;else if(_0.isDocument(X))X.contents=F;else{let J=_0.isAlias(X)?"alias":"scalar";throw Error(`Cannot replace node with ${J} parent`)}}hg.visit=p5;hg.visitAsync=d5});var qG=u((cg)=>{var iK=RD(),yg=h9(),ug={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},mg=(D)=>D.replace(/[!,[\]{}]/g,($)=>ug[$]);class V2{constructor(D,$){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},V2.defaultYaml,D),this.tags=Object.assign({},V2.defaultTags,$)}clone(){let D=new V2(this.yaml,this.tags);return D.docStart=this.docStart,D}atDocument(){let D=new V2(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:V2.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},V2.defaultTags);break}return D}add(D,$){if(this.atNextDocument)this.yaml={explicit:V2.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},V2.defaultTags),this.atNextDocument=!1;let F=D.trim().split(/[ \t]+/),X=F.shift();switch(X){case"%TAG":{if(F.length!==2){if($(0,"%TAG directive should contain exactly two parts"),F.length<2)return!1}let[J,G]=F;return this.tags[J]=G,!0}case"%YAML":{if(this.yaml.explicit=!0,F.length!==1)return $(0,"%YAML directive should contain exactly one part"),!1;let[J]=F;if(J==="1.1"||J==="1.2")return this.yaml.version=J,!0;else{let G=/^\d+\.\d+$/.test(J);return $(6,`Unsupported YAML version ${J}`,G),!1}}default:return $(0,`Unknown directive ${X}`,!0),!1}}tagName(D,$){if(D==="!")return"!";if(D[0]!=="!")return $(`Not a valid tag: ${D}`),null;if(D[1]==="<"){let G=D.slice(2,-1);if(G==="!"||G==="!!")return $(`Verbatim tags aren't resolved, so ${D} is invalid.`),null;if(D[D.length-1]!==">")$("Verbatim tags must end with a >");return G}let[,F,X]=D.match(/^(.*!)([^!]*)$/s);if(!X)$(`The ${D} tag has no suffix`);let J=this.tags[F];if(J)try{return J+decodeURIComponent(X)}catch(G){return $(String(G)),null}if(F==="!")return D;return $(`Could not resolve tag: ${D}`),null}tagString(D){for(let[$,F]of Object.entries(this.tags))if(D.startsWith(F))return $+mg(D.substring(F.length));return D[0]==="!"?D:`!<${D}>`}toString(D){let $=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],F=Object.entries(this.tags),X;if(D&&F.length>0&&iK.isNode(D.contents)){let J={};yg.visit(D.contents,(G,Y)=>{if(iK.isNode(Y)&&Y.tag)J[Y.tag]=!0}),X=Object.keys(J)}else X=[];for(let[J,G]of F){if(J==="!!"&&G==="tag:yaml.org,2002:")continue;if(!D||X.some((Y)=>Y.startsWith(G)))$.push(`%TAG ${J} ${G}`)}return $.join(`
73
+ `)}}V2.defaultYaml={explicit:!1,version:"1.2"};V2.defaultTags={"!!":"tag:yaml.org,2002:"};cg.Directives=V2});var l5=u((ng)=>{var nK=RD(),dg=h9();function lg(D){if(/[\x00-\x19\s,[\]{}]/.test(D)){let F=`Anchor must not contain whitespace or control characters: ${JSON.stringify(D)}`;throw Error(F)}return!0}function rK(D){let $=new Set;return dg.visit(D,{Value(F,X){if(X.anchor)$.add(X.anchor)}}),$}function sK(D,$){for(let F=1;;++F){let X=`${D}${F}`;if(!$.has(X))return X}}function ig(D,$){let F=[],X=new Map,J=null;return{onAnchor:(G)=>{F.push(G),J??(J=rK(D));let Y=sK($,J);return J.add(Y),Y},setAnchors:()=>{for(let G of F){let Y=X.get(G);if(typeof Y==="object"&&Y.anchor&&(nK.isScalar(Y.node)||nK.isCollection(Y.node)))Y.node.anchor=Y.anchor;else{let B=Error("Failed to resolve repeated object (this should not happen)");throw B.source=G,B}}},sourceObjects:X}}ng.anchorIsValid=lg;ng.anchorNames=rK;ng.createNodeAnchors=ig;ng.findNewAnchor=sK});var zG=u((tg)=>{function v9(D,$,F,X){if(X&&typeof X==="object")if(Array.isArray(X))for(let J=0,G=X.length;J<G;++J){let Y=X[J],B=v9(D,X,String(J),Y);if(B===void 0)delete X[J];else if(B!==Y)X[J]=B}else if(X instanceof Map)for(let J of Array.from(X.keys())){let G=X.get(J),Y=v9(D,X,J,G);if(Y===void 0)X.delete(J);else if(Y!==G)X.set(J,Y)}else if(X instanceof Set)for(let J of Array.from(X)){let G=v9(D,X,J,J);if(G===void 0)X.delete(J);else if(G!==J)X.delete(J),X.add(G)}else for(let[J,G]of Object.entries(X)){let Y=v9(D,X,J,G);if(Y===void 0)delete X[J];else if(Y!==G)X[J]=Y}return D.call($,F,X)}tg.applyReviver=v9});var s1=u(($h)=>{var Dh=RD();function aK(D,$,F){if(Array.isArray(D))return D.map((X,J)=>aK(X,String(J),F));if(D&&typeof D.toJSON==="function"){if(!F||!Dh.hasAnchor(D))return D.toJSON($,F);let X={aliasCount:0,count:1,res:void 0};F.anchors.set(D,X),F.onCreate=(G)=>{X.res=G,delete F.onCreate};let J=D.toJSON($,F);if(F.onCreate)F.onCreate(J);return J}if(typeof D==="bigint"&&!F?.keep)return Number(D);return D}$h.toJS=aK});var i5=u((Gh)=>{var Xh=zG(),oK=RD(),Jh=s1();class tK{constructor(D){Object.defineProperty(this,oK.NODE_TYPE,{value:D})}clone(){let D=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));if(this.range)D.range=this.range.slice();return D}toJS(D,{mapAsMap:$,maxAliasCount:F,onAnchor:X,reviver:J}={}){if(!oK.isDocument(D))throw TypeError("A document argument is required");let G={anchors:new Map,doc:D,keep:!0,mapAsMap:$===!0,mapKeyWarned:!1,maxAliasCount:typeof F==="number"?F:100},Y=Jh.toJS(this,"",G);if(typeof X==="function")for(let{count:B,res:H}of G.anchors.values())X(H,B);return typeof J==="function"?Xh.applyReviver(J,{"":Y},"",Y):Y}}Gh.NodeBase=tK});var x9=u((Qh)=>{var Bh=l5(),Hh=h9(),D3=RD(),Wh=i5(),Uh=s1();class eK extends Wh.NodeBase{constructor(D){super(D3.ALIAS);this.source=D,Object.defineProperty(this,"tag",{set(){throw Error("Alias nodes cannot have tags")}})}resolve(D,$){let F;if($?.aliasResolveCache)F=$.aliasResolveCache;else if(F=[],Hh.visit(D,{Node:(J,G)=>{if(D3.isAlias(G)||D3.hasAnchor(G))F.push(G)}}),$)$.aliasResolveCache=F;let X=void 0;for(let J of F){if(J===this)break;if(J.anchor===this.source)X=J}return X}toJSON(D,$){if(!$)return{source:this.source};let{anchors:F,doc:X,maxAliasCount:J}=$,G=this.resolve(X,$);if(!G){let B=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(B)}let Y=F.get(G);if(!Y)Uh.toJS(G,null,$),Y=F.get(G);if(Y?.res===void 0)throw ReferenceError("This should not happen: Alias anchor was not resolved?");if(J>=0){if(Y.count+=1,Y.aliasCount===0)Y.aliasCount=n5(X,G,F);if(Y.count*Y.aliasCount>J)throw ReferenceError("Excessive alias count indicates a resource exhaustion attack")}return Y.res}toString(D,$,F){let X=`*${this.source}`;if(D){if(Bh.anchorIsValid(this.source),D.options.verifyAliasOrder&&!D.anchors.has(this.source)){let J=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw Error(J)}if(D.implicitKey)return`${X} `}return X}}function n5(D,$,F){if(D3.isAlias($)){let X=$.resolve(D),J=F&&X&&F.get(X);return J?J.count*J.aliasCount:0}else if(D3.isCollection($)){let X=0;for(let J of $.items){let G=n5(D,J,F);if(G>X)X=G}return X}else if(D3.isPair($)){let X=n5(D,$.key,F),J=n5(D,$.value,F);return Math.max(X,J)}return 1}Qh.Alias=eK});var H0=u((Mh)=>{var Ah=RD(),Kh=i5(),_h=s1(),Ch=(D)=>!D||typeof D!=="function"&&typeof D!=="object";class f8 extends Kh.NodeBase{constructor(D){super(Ah.SCALAR);this.value=D}toJSON(D,$){return $?.keep?this.value:_h.toJS(this.value,D,$)}toString(){return String(this.value)}}f8.BLOCK_FOLDED="BLOCK_FOLDED";f8.BLOCK_LITERAL="BLOCK_LITERAL";f8.PLAIN="PLAIN";f8.QUOTE_DOUBLE="QUOTE_DOUBLE";f8.QUOTE_SINGLE="QUOTE_SINGLE";Mh.Scalar=f8;Mh.isScalarValue=Ch});var y9=u((Ph)=>{var Oh=x9(),g8=RD(),D_=H0(),Eh="tag:yaml.org,2002:";function jh(D,$,F){if($){let X=F.filter((G)=>G.tag===$),J=X.find((G)=>!G.format)??X[0];if(!J)throw Error(`Tag ${$} not found`);return J}return F.find((X)=>X.identify?.(D)&&!X.format)}function Nh(D,$,F){if(g8.isDocument(D))D=D.contents;if(g8.isNode(D))return D;if(g8.isPair(D)){let V=F.schema[g8.MAP].createNode?.(F.schema,null,F);return V.items.push(D),V}if(D instanceof String||D instanceof Number||D instanceof Boolean||typeof BigInt<"u"&&D instanceof BigInt)D=D.valueOf();let{aliasDuplicateObjects:X,onAnchor:J,onTagObj:G,schema:Y,sourceObjects:B}=F,H=void 0;if(X&&D&&typeof D==="object")if(H=B.get(D),H)return H.anchor??(H.anchor=J(D)),new Oh.Alias(H.anchor);else H={anchor:null,node:null},B.set(D,H);if($?.startsWith("!!"))$=Eh+$.slice(2);let U=jh(D,$,Y.tags);if(!U){if(D&&typeof D.toJSON==="function")D=D.toJSON();if(!D||typeof D!=="object"){let V=new D_.Scalar(D);if(H)H.node=V;return V}U=D instanceof Map?Y[g8.MAP]:(Symbol.iterator in Object(D))?Y[g8.SEQ]:Y[g8.MAP]}if(G)G(U),delete F.onTagObj;let Q=U?.createNode?U.createNode(F.schema,D,F):typeof U?.nodeClass?.from==="function"?U.nodeClass.from(F.schema,D,F):new D_.Scalar(D);if($)Q.tag=$;else if(!U.default)Q.tag=U.tag;if(H)H.node=Q;return Q}Ph.createNode=Nh});var r5=u((Ih)=>{var qh=y9(),U1=RD(),zh=i5();function IG(D,$,F){let X=F;for(let J=$.length-1;J>=0;--J){let G=$[J];if(typeof G==="number"&&Number.isInteger(G)&&G>=0){let Y=[];Y[G]=X,X=Y}else X=new Map([[G,X]])}return qh.createNode(X,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw Error("This should not happen, please report a bug.")},schema:D,sourceObjects:new Map})}var $_=(D)=>D==null||typeof D==="object"&&!!D[Symbol.iterator]().next().done;class F_ extends zh.NodeBase{constructor(D,$){super(D);Object.defineProperty(this,"schema",{value:$,configurable:!0,enumerable:!1,writable:!0})}clone(D){let $=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));if(D)$.schema=D;if($.items=$.items.map((F)=>U1.isNode(F)||U1.isPair(F)?F.clone(D):F),this.range)$.range=this.range.slice();return $}addIn(D,$){if($_(D))this.add($);else{let[F,...X]=D,J=this.get(F,!0);if(U1.isCollection(J))J.addIn(X,$);else if(J===void 0&&this.schema)this.set(F,IG(this.schema,X,$));else throw Error(`Expected YAML collection at ${F}. Remaining path: ${X}`)}}deleteIn(D){let[$,...F]=D;if(F.length===0)return this.delete($);let X=this.get($,!0);if(U1.isCollection(X))return X.deleteIn(F);else throw Error(`Expected YAML collection at ${$}. Remaining path: ${F}`)}getIn(D,$){let[F,...X]=D,J=this.get(F,!0);if(X.length===0)return!$&&U1.isScalar(J)?J.value:J;else return U1.isCollection(J)?J.getIn(X,$):void 0}hasAllNullValues(D){return this.items.every(($)=>{if(!U1.isPair($))return!1;let F=$.value;return F==null||D&&U1.isScalar(F)&&F.value==null&&!F.commentBefore&&!F.comment&&!F.tag})}hasIn(D){let[$,...F]=D;if(F.length===0)return this.has($);let X=this.get($,!0);return U1.isCollection(X)?X.hasIn(F):!1}setIn(D,$){let[F,...X]=D;if(X.length===0)this.set(F,$);else{let J=this.get(F,!0);if(U1.isCollection(J))J.setIn(X,$);else if(J===void 0&&this.schema)this.set(F,IG(this.schema,X,$));else throw Error(`Expected YAML collection at ${F}. Remaining path: ${X}`)}}}Ih.Collection=F_;Ih.collectionFromPath=IG;Ih.isEmptyPath=$_});var u9=u((fh)=>{var kh=(D)=>D.replace(/^(?!$)(?: $)?/gm,"#");function SG(D,$){if(/^\n+$/.test(D))return D.substring(1);return $?D.replace(/^(?! *$)/gm,$):D}var bh=(D,$,F)=>D.endsWith(`
74
74
  `)?SG(F,$):F.includes(`
75
75
  `)?`
76
76
  `+SG(F,$):(D.endsWith(" ")?"":" ")+F;fh.indentComment=SG;fh.lineComment=bh;fh.stringifyComment=kh});var J_=u((yh)=>{function xh(D,$,F="flow",{indentAtStart:X,lineWidth:J=80,minContentWidth:G=20,onFold:Y,onOverflow:B}={}){if(!J||J<0)return D;if(J<G)G=0;let H=Math.max(1+G,1+J-$.length);if(D.length<=H)return D;let U=[],Q={},V=J-$.length;if(typeof X==="number")if(X>J-Math.max(2,G))U.push(0);else V=J-X;let A=void 0,K=void 0,M=!1,C=-1,Z=-1,O=-1;if(F==="block"){if(C=X_(D,C,$.length),C!==-1)V=C+H}for(let P;P=D[C+=1];){if(F==="quoted"&&P==="\\"){switch(Z=C,D[C+1]){case"x":C+=3;break;case"u":C+=5;break;case"U":C+=9;break;default:C+=1}O=C}if(P===`
@@ -101,8 +101,8 @@ ${U}${j}${F}${K}`}function lh(D,$,F,X){let{type:J,value:G}=D,{actualString:Y,imp
101
101
  `)||Q&&/[[\]{},]/.test(G))return $3(G,$);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(G))return B||Q||!G.includes(`
102
102
  `)?$3(G,$):s5(D,$,F,X);if(!B&&!Q&&J!==c2.Scalar.PLAIN&&G.includes(`
103
103
  `))return s5(D,$,F,X);if(o5(G)){if(H==="")return $.forceBlockIndent=!0,s5(D,$,F,X);else if(B&&H===U)return $3(G,$)}let V=G.replace(/\n+/g,`$&
104
- ${H}`);if(Y){let A=(C)=>C.default&&C.tag!=="tag:yaml.org,2002:str"&&C.test?.test(V),{compat:K,tags:M}=$.doc.schema;if(M.some(A)||K?.some(A))return $3(G,$)}return B?V:a1.foldFlowLines(V,H,a1.FOLD_FLOW,a5($,!1))}function ih(D,$,F,X){let{implicitKey:J,inFlow:G}=$,Y=typeof D.value==="string"?D:Object.assign({},D,{value:String(D.value)}),{type:B}=D;if(B!==c2.Scalar.QUOTE_DOUBLE){if(/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(Y.value))B=c2.Scalar.QUOTE_DOUBLE}let H=(Q)=>{switch(Q){case c2.Scalar.BLOCK_FOLDED:case c2.Scalar.BLOCK_LITERAL:return J||G?$3(Y.value,$):s5(Y,$,F,X);case c2.Scalar.QUOTE_DOUBLE:return m9(Y.value,$);case c2.Scalar.QUOTE_SINGLE:return TG(Y.value,$);case c2.Scalar.PLAIN:return lh(Y,$,F,X);default:return null}},U=H(B);if(U===null){let{defaultKeyType:Q,defaultStringType:V}=$.options,A=J&&Q||V;if(U=H(A),U===null)throw Error(`Unsupported default string type ${A}`)}return U}nh.stringifyString=ih});var p9=u((Fv)=>{var sh=l5(),o1=ZD(),ah=u9(),oh=c9();function th(D,$){let F=Object.assign({blockQuote:!0,commentString:ah.stringifyComment,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:"true",verifyAliasOrder:!0},D.schema.toStringOptions,$),X;switch(F.collectionStyle){case"block":X=!1;break;case"flow":X=!0;break;default:X=null}return{anchors:new Set,doc:D,flowCollectionPadding:F.flowCollectionPadding?" ":"",indent:"",indentStep:typeof F.indent==="number"?" ".repeat(F.indent):" ",inFlow:X,options:F}}function eh(D,$){if($.tag){let J=D.filter((G)=>G.tag===$.tag);if(J.length>0)return J.find((G)=>G.format===$.format)??J[0]}let F=void 0,X;if(o1.isScalar($)){X=$.value;let J=D.filter((G)=>G.identify?.(X));if(J.length>1){let G=J.filter((Y)=>Y.test);if(G.length>0)J=G}F=J.find((G)=>G.format===$.format)??J.find((G)=>!G.format)}else X=$,F=D.find((J)=>J.nodeClass&&X instanceof J.nodeClass);if(!F){let J=X?.constructor?.name??(X===null?"null":typeof X);throw Error(`Tag not resolved for ${J} value`)}return F}function Dv(D,$,{anchors:F,doc:X}){if(!X.directives)return"";let J=[],G=(o1.isScalar(D)||o1.isCollection(D))&&D.anchor;if(G&&sh.anchorIsValid(G))F.add(G),J.push(`&${G}`);let Y=D.tag??($.default?null:$.tag);if(Y)J.push(X.directives.tagString(Y));return J.join(" ")}function $v(D,$,F,X){if(o1.isPair(D))return D.toString($,F,X);if(o1.isAlias(D)){if($.doc.directives)return D.toString($);if($.resolvedAliases?.has(D))throw TypeError("Cannot stringify circular structure without alias nodes");else{if($.resolvedAliases)$.resolvedAliases.add(D);else $.resolvedAliases=new Set([D]);D=D.resolve($.doc)}}let J=void 0,G=o1.isNode(D)?D:$.doc.createNode(D,{onTagObj:(H)=>J=H});J??(J=eh($.doc.schema.tags,G));let Y=Dv(G,J,$);if(Y.length>0)$.indentAtStart=($.indentAtStart??0)+Y.length+1;let B=typeof J.stringify==="function"?J.stringify(G,$,F,X):o1.isScalar(G)?oh.stringifyString(G,$,F,X):G.toString($,F,X);if(!Y)return B;return o1.isScalar(G)||B[0]==="{"||B[0]==="["?`${Y} ${B}`:`${Y}
105
- ${$.indent}${B}`}Fv.createStringifyContext=th;Fv.stringify=$v});var B_=u((Yv)=>{var P1=ZD(),G_=H0(),Y_=p9(),d9=u9();function Gv({key:D,value:$},F,X,J){let{allNullValues:G,doc:Y,indent:B,indentStep:H,options:{commentString:U,indentSeq:Q,simpleKeys:V}}=F,A=P1.isNode(D)&&D.comment||null;if(V){if(A)throw Error("With simple keys, key nodes cannot have comments");if(P1.isCollection(D)||!P1.isNode(D)&&typeof D==="object")throw Error("With simple keys, collection cannot be used as a key value")}let K=!V&&(!D||A&&$==null&&!F.inFlow||P1.isCollection(D)||(P1.isScalar(D)?D.type===G_.Scalar.BLOCK_FOLDED||D.type===G_.Scalar.BLOCK_LITERAL:typeof D==="object"));F=Object.assign({},F,{allNullValues:!1,implicitKey:!K&&(V||!G),indent:B+H});let M=!1,C=!1,Z=Y_.stringify(D,F,()=>M=!0,()=>C=!0);if(!K&&!F.inFlow&&Z.length>1024){if(V)throw Error("With simple keys, single line scalar must not span more than 1024 characters");K=!0}if(F.inFlow){if(G||$==null){if(M&&X)X();return Z===""?"?":K?`? ${Z}`:Z}}else if(G&&!V||$==null&&K){if(Z=`? ${Z}`,A&&!M)Z+=d9.lineComment(Z,F.indent,U(A));else if(C&&J)J();return Z}if(M)A=null;if(K){if(A)Z+=d9.lineComment(Z,F.indent,U(A));Z=`? ${Z}
104
+ ${H}`);if(Y){let A=(C)=>C.default&&C.tag!=="tag:yaml.org,2002:str"&&C.test?.test(V),{compat:K,tags:M}=$.doc.schema;if(M.some(A)||K?.some(A))return $3(G,$)}return B?V:a1.foldFlowLines(V,H,a1.FOLD_FLOW,a5($,!1))}function ih(D,$,F,X){let{implicitKey:J,inFlow:G}=$,Y=typeof D.value==="string"?D:Object.assign({},D,{value:String(D.value)}),{type:B}=D;if(B!==c2.Scalar.QUOTE_DOUBLE){if(/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(Y.value))B=c2.Scalar.QUOTE_DOUBLE}let H=(Q)=>{switch(Q){case c2.Scalar.BLOCK_FOLDED:case c2.Scalar.BLOCK_LITERAL:return J||G?$3(Y.value,$):s5(Y,$,F,X);case c2.Scalar.QUOTE_DOUBLE:return m9(Y.value,$);case c2.Scalar.QUOTE_SINGLE:return TG(Y.value,$);case c2.Scalar.PLAIN:return lh(Y,$,F,X);default:return null}},U=H(B);if(U===null){let{defaultKeyType:Q,defaultStringType:V}=$.options,A=J&&Q||V;if(U=H(A),U===null)throw Error(`Unsupported default string type ${A}`)}return U}nh.stringifyString=ih});var p9=u((Fv)=>{var sh=l5(),o1=RD(),ah=u9(),oh=c9();function th(D,$){let F=Object.assign({blockQuote:!0,commentString:ah.stringifyComment,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:"true",verifyAliasOrder:!0},D.schema.toStringOptions,$),X;switch(F.collectionStyle){case"block":X=!1;break;case"flow":X=!0;break;default:X=null}return{anchors:new Set,doc:D,flowCollectionPadding:F.flowCollectionPadding?" ":"",indent:"",indentStep:typeof F.indent==="number"?" ".repeat(F.indent):" ",inFlow:X,options:F}}function eh(D,$){if($.tag){let J=D.filter((G)=>G.tag===$.tag);if(J.length>0)return J.find((G)=>G.format===$.format)??J[0]}let F=void 0,X;if(o1.isScalar($)){X=$.value;let J=D.filter((G)=>G.identify?.(X));if(J.length>1){let G=J.filter((Y)=>Y.test);if(G.length>0)J=G}F=J.find((G)=>G.format===$.format)??J.find((G)=>!G.format)}else X=$,F=D.find((J)=>J.nodeClass&&X instanceof J.nodeClass);if(!F){let J=X?.constructor?.name??(X===null?"null":typeof X);throw Error(`Tag not resolved for ${J} value`)}return F}function Dv(D,$,{anchors:F,doc:X}){if(!X.directives)return"";let J=[],G=(o1.isScalar(D)||o1.isCollection(D))&&D.anchor;if(G&&sh.anchorIsValid(G))F.add(G),J.push(`&${G}`);let Y=D.tag??($.default?null:$.tag);if(Y)J.push(X.directives.tagString(Y));return J.join(" ")}function $v(D,$,F,X){if(o1.isPair(D))return D.toString($,F,X);if(o1.isAlias(D)){if($.doc.directives)return D.toString($);if($.resolvedAliases?.has(D))throw TypeError("Cannot stringify circular structure without alias nodes");else{if($.resolvedAliases)$.resolvedAliases.add(D);else $.resolvedAliases=new Set([D]);D=D.resolve($.doc)}}let J=void 0,G=o1.isNode(D)?D:$.doc.createNode(D,{onTagObj:(H)=>J=H});J??(J=eh($.doc.schema.tags,G));let Y=Dv(G,J,$);if(Y.length>0)$.indentAtStart=($.indentAtStart??0)+Y.length+1;let B=typeof J.stringify==="function"?J.stringify(G,$,F,X):o1.isScalar(G)?oh.stringifyString(G,$,F,X):G.toString($,F,X);if(!Y)return B;return o1.isScalar(G)||B[0]==="{"||B[0]==="["?`${Y} ${B}`:`${Y}
105
+ ${$.indent}${B}`}Fv.createStringifyContext=th;Fv.stringify=$v});var B_=u((Yv)=>{var P1=RD(),G_=H0(),Y_=p9(),d9=u9();function Gv({key:D,value:$},F,X,J){let{allNullValues:G,doc:Y,indent:B,indentStep:H,options:{commentString:U,indentSeq:Q,simpleKeys:V}}=F,A=P1.isNode(D)&&D.comment||null;if(V){if(A)throw Error("With simple keys, key nodes cannot have comments");if(P1.isCollection(D)||!P1.isNode(D)&&typeof D==="object")throw Error("With simple keys, collection cannot be used as a key value")}let K=!V&&(!D||A&&$==null&&!F.inFlow||P1.isCollection(D)||(P1.isScalar(D)?D.type===G_.Scalar.BLOCK_FOLDED||D.type===G_.Scalar.BLOCK_LITERAL:typeof D==="object"));F=Object.assign({},F,{allNullValues:!1,implicitKey:!K&&(V||!G),indent:B+H});let M=!1,C=!1,Z=Y_.stringify(D,F,()=>M=!0,()=>C=!0);if(!K&&!F.inFlow&&Z.length>1024){if(V)throw Error("With simple keys, single line scalar must not span more than 1024 characters");K=!0}if(F.inFlow){if(G||$==null){if(M&&X)X();return Z===""?"?":K?`? ${Z}`:Z}}else if(G&&!V||$==null&&K){if(Z=`? ${Z}`,A&&!M)Z+=d9.lineComment(Z,F.indent,U(A));else if(C&&J)J();return Z}if(M)A=null;if(K){if(A)Z+=d9.lineComment(Z,F.indent,U(A));Z=`? ${Z}
106
106
  ${B}:`}else if(Z=`${Z}:`,A)Z+=d9.lineComment(Z,F.indent,U(A));let O,j,P;if(P1.isNode($))O=!!$.spaceBefore,j=$.commentBefore,P=$.comment;else if(O=!1,j=null,P=null,$&&typeof $==="object")$=Y.createNode($);if(F.implicitKey=!1,!K&&!A&&P1.isScalar($))F.indentAtStart=Z.length+1;if(C=!1,!Q&&H.length>=2&&!F.inFlow&&!K&&P1.isSeq($)&&!$.flow&&!$.tag&&!$.anchor)F.indent=F.indent.substring(2);let T=!1,h=Y_.stringify($,F,()=>T=!0,()=>C=!0),q=" ";if(A||O||j){if(q=O?`
107
107
  `:"",j){let N=U(j);q+=`
108
108
  ${d9.indentComment(N,F.indent)}`}if(h===""&&!F.inFlow){if(q===`
@@ -112,32 +112,32 @@ ${d9.indentComment(N,F.indent)}`}if(h===""&&!F.inFlow){if(q===`
112
112
  ${F.indent}`}else if(!K&&P1.isCollection($)){let N=h[0],w=h.indexOf(`
113
113
  `),i=w!==-1,I=F.inFlow??$.flow??$.items.length===0;if(i||!I){let x=!1;if(i&&(N==="&"||N==="!")){let y=h.indexOf(" ");if(N==="&"&&y!==-1&&y<w&&h[y+1]==="!")y=h.indexOf(" ",y+1);if(y===-1||w<y)x=!0}if(!x)q=`
114
114
  ${F.indent}`}}else if(h===""||h[0]===`
115
- `)q="";if(Z+=q+h,F.inFlow){if(T&&X)X()}else if(P&&!T)Z+=d9.lineComment(Z,F.indent,U(P));else if(C&&J)J();return Z}Yv.stringifyPair=Gv});var kG=u((Uv)=>{var H_=R1("process");function Hv(D,...$){if(D==="debug")console.log(...$)}function Wv(D,$){if(D==="debug"||D==="warn")if(typeof H_.emitWarning==="function")H_.emitWarning($);else console.warn($)}Uv.debug=Hv;Uv.warn=Wv});var D$=u((Kv)=>{var l9=ZD(),W_=H0(),t5="<<",e5={identify:(D)=>D===t5||typeof D==="symbol"&&D.description===t5,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new W_.Scalar(Symbol(t5)),{addToJSMap:U_}),stringify:()=>t5},Av=(D,$)=>(e5.identify($)||l9.isScalar($)&&(!$.type||$.type===W_.Scalar.PLAIN)&&e5.identify($.value))&&D?.doc.schema.tags.some((F)=>F.tag===e5.tag&&F.default);function U_(D,$,F){if(F=D&&l9.isAlias(F)?F.resolve(D.doc):F,l9.isSeq(F))for(let X of F.items)bG(D,$,X);else if(Array.isArray(F))for(let X of F)bG(D,$,X);else bG(D,$,F)}function bG(D,$,F){let X=D&&l9.isAlias(F)?F.resolve(D.doc):F;if(!l9.isMap(X))throw Error("Merge sources must be maps or map aliases");let J=X.toJSON(null,D,Map);for(let[G,Y]of J)if($ instanceof Map){if(!$.has(G))$.set(G,Y)}else if($ instanceof Set)$.add(G);else if(!Object.prototype.hasOwnProperty.call($,G))Object.defineProperty($,G,{value:Y,writable:!0,enumerable:!0,configurable:!0});return $}Kv.addMergeToJSMap=U_;Kv.isMergeKey=Av;Kv.merge=e5});var gG=u((jv)=>{var Zv=kG(),Q_=D$(),Rv=p9(),V_=ZD(),fG=s1();function Ov(D,$,{key:F,value:X}){if(V_.isNode(F)&&F.addToJSMap)F.addToJSMap(D,$,X);else if(Q_.isMergeKey(D,F))Q_.addMergeToJSMap(D,$,X);else{let J=fG.toJS(F,"",D);if($ instanceof Map)$.set(J,fG.toJS(X,J,D));else if($ instanceof Set)$.add(J);else{let G=Ev(F,J,D),Y=fG.toJS(X,G,D);if(G in $)Object.defineProperty($,G,{value:Y,writable:!0,enumerable:!0,configurable:!0});else $[G]=Y}}return $}function Ev(D,$,F){if($===null)return"";if(typeof $!=="object")return String($);if(V_.isNode(D)&&F?.doc){let X=Rv.createStringifyContext(F.doc,{});X.anchors=new Set;for(let G of F.anchors.keys())X.anchors.add(G.anchor);X.inFlow=!0,X.inStringifyKey=!0;let J=D.toString(X);if(!F.mapKeyWarned){let G=JSON.stringify(J);if(G.length>40)G=G.substring(0,36)+'..."';Zv.warn(F.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${G}. Set mapAsMap: true to use object keys.`),F.mapKeyWarned=!0}return J}return JSON.stringify($)}jv.addPairToJSMap=Ov});var t1=u((zv)=>{var A_=y9(),Pv=B_(),Lv=gG(),$$=ZD();function qv(D,$,F){let X=A_.createNode(D,void 0,F),J=A_.createNode($,void 0,F);return new F$(X,J)}class F${constructor(D,$=null){Object.defineProperty(this,$$.NODE_TYPE,{value:$$.PAIR}),this.key=D,this.value=$}clone(D){let{key:$,value:F}=this;if($$.isNode($))$=$.clone(D);if($$.isNode(F))F=F.clone(D);return new F$($,F)}toJSON(D,$){let F=$?.mapAsMap?new Map:{};return Lv.addPairToJSMap($,F,this)}toString(D,$,F){return D?.doc?Pv.stringifyPair(this,D,$,F):JSON.stringify(this)}}zv.Pair=F$;zv.createPair=qv});var hG=u((bv)=>{var h8=ZD(),K_=p9(),X$=u9();function Tv(D,$,F){return($.inFlow??D.flow?kv:wv)(D,$,F)}function wv({comment:D,items:$},F,{blockItemPrefix:X,flowChars:J,itemIndent:G,onChompKeep:Y,onComment:B}){let{indent:H,options:{commentString:U}}=F,Q=Object.assign({},F,{indent:G,type:null}),V=!1,A=[];for(let M=0;M<$.length;++M){let C=$[M],Z=null;if(h8.isNode(C)){if(!V&&C.spaceBefore)A.push("");if(J$(F,A,C.commentBefore,V),C.comment)Z=C.comment}else if(h8.isPair(C)){let j=h8.isNode(C.key)?C.key:null;if(j){if(!V&&j.spaceBefore)A.push("");J$(F,A,j.commentBefore,V)}}V=!1;let O=K_.stringify(C,Q,()=>Z=null,()=>V=!0);if(Z)O+=X$.lineComment(O,G,U(Z));if(V&&Z)V=!1;A.push(X+O)}let K;if(A.length===0)K=J.start+J.end;else{K=A[0];for(let M=1;M<A.length;++M){let C=A[M];K+=C?`
115
+ `)q="";if(Z+=q+h,F.inFlow){if(T&&X)X()}else if(P&&!T)Z+=d9.lineComment(Z,F.indent,U(P));else if(C&&J)J();return Z}Yv.stringifyPair=Gv});var kG=u((Uv)=>{var H_=R1("process");function Hv(D,...$){if(D==="debug")console.log(...$)}function Wv(D,$){if(D==="debug"||D==="warn")if(typeof H_.emitWarning==="function")H_.emitWarning($);else console.warn($)}Uv.debug=Hv;Uv.warn=Wv});var D$=u((Kv)=>{var l9=RD(),W_=H0(),t5="<<",e5={identify:(D)=>D===t5||typeof D==="symbol"&&D.description===t5,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new W_.Scalar(Symbol(t5)),{addToJSMap:U_}),stringify:()=>t5},Av=(D,$)=>(e5.identify($)||l9.isScalar($)&&(!$.type||$.type===W_.Scalar.PLAIN)&&e5.identify($.value))&&D?.doc.schema.tags.some((F)=>F.tag===e5.tag&&F.default);function U_(D,$,F){if(F=D&&l9.isAlias(F)?F.resolve(D.doc):F,l9.isSeq(F))for(let X of F.items)bG(D,$,X);else if(Array.isArray(F))for(let X of F)bG(D,$,X);else bG(D,$,F)}function bG(D,$,F){let X=D&&l9.isAlias(F)?F.resolve(D.doc):F;if(!l9.isMap(X))throw Error("Merge sources must be maps or map aliases");let J=X.toJSON(null,D,Map);for(let[G,Y]of J)if($ instanceof Map){if(!$.has(G))$.set(G,Y)}else if($ instanceof Set)$.add(G);else if(!Object.prototype.hasOwnProperty.call($,G))Object.defineProperty($,G,{value:Y,writable:!0,enumerable:!0,configurable:!0});return $}Kv.addMergeToJSMap=U_;Kv.isMergeKey=Av;Kv.merge=e5});var gG=u((jv)=>{var Zv=kG(),Q_=D$(),Rv=p9(),V_=RD(),fG=s1();function Ov(D,$,{key:F,value:X}){if(V_.isNode(F)&&F.addToJSMap)F.addToJSMap(D,$,X);else if(Q_.isMergeKey(D,F))Q_.addMergeToJSMap(D,$,X);else{let J=fG.toJS(F,"",D);if($ instanceof Map)$.set(J,fG.toJS(X,J,D));else if($ instanceof Set)$.add(J);else{let G=Ev(F,J,D),Y=fG.toJS(X,G,D);if(G in $)Object.defineProperty($,G,{value:Y,writable:!0,enumerable:!0,configurable:!0});else $[G]=Y}}return $}function Ev(D,$,F){if($===null)return"";if(typeof $!=="object")return String($);if(V_.isNode(D)&&F?.doc){let X=Rv.createStringifyContext(F.doc,{});X.anchors=new Set;for(let G of F.anchors.keys())X.anchors.add(G.anchor);X.inFlow=!0,X.inStringifyKey=!0;let J=D.toString(X);if(!F.mapKeyWarned){let G=JSON.stringify(J);if(G.length>40)G=G.substring(0,36)+'..."';Zv.warn(F.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${G}. Set mapAsMap: true to use object keys.`),F.mapKeyWarned=!0}return J}return JSON.stringify($)}jv.addPairToJSMap=Ov});var t1=u((zv)=>{var A_=y9(),Pv=B_(),Lv=gG(),$$=RD();function qv(D,$,F){let X=A_.createNode(D,void 0,F),J=A_.createNode($,void 0,F);return new F$(X,J)}class F${constructor(D,$=null){Object.defineProperty(this,$$.NODE_TYPE,{value:$$.PAIR}),this.key=D,this.value=$}clone(D){let{key:$,value:F}=this;if($$.isNode($))$=$.clone(D);if($$.isNode(F))F=F.clone(D);return new F$($,F)}toJSON(D,$){let F=$?.mapAsMap?new Map:{};return Lv.addPairToJSMap($,F,this)}toString(D,$,F){return D?.doc?Pv.stringifyPair(this,D,$,F):JSON.stringify(this)}}zv.Pair=F$;zv.createPair=qv});var hG=u((bv)=>{var h8=RD(),K_=p9(),X$=u9();function Tv(D,$,F){return($.inFlow??D.flow?kv:wv)(D,$,F)}function wv({comment:D,items:$},F,{blockItemPrefix:X,flowChars:J,itemIndent:G,onChompKeep:Y,onComment:B}){let{indent:H,options:{commentString:U}}=F,Q=Object.assign({},F,{indent:G,type:null}),V=!1,A=[];for(let M=0;M<$.length;++M){let C=$[M],Z=null;if(h8.isNode(C)){if(!V&&C.spaceBefore)A.push("");if(J$(F,A,C.commentBefore,V),C.comment)Z=C.comment}else if(h8.isPair(C)){let j=h8.isNode(C.key)?C.key:null;if(j){if(!V&&j.spaceBefore)A.push("");J$(F,A,j.commentBefore,V)}}V=!1;let O=K_.stringify(C,Q,()=>Z=null,()=>V=!0);if(Z)O+=X$.lineComment(O,G,U(Z));if(V&&Z)V=!1;A.push(X+O)}let K;if(A.length===0)K=J.start+J.end;else{K=A[0];for(let M=1;M<A.length;++M){let C=A[M];K+=C?`
116
116
  ${H}${C}`:`
117
117
  `}}if(D){if(K+=`
118
118
  `+X$.indentComment(U(D),H),B)B()}else if(V&&Y)Y();return K}function kv({items:D},$,{flowChars:F,itemIndent:X}){let{indent:J,indentStep:G,flowCollectionPadding:Y,options:{commentString:B}}=$;X+=G;let H=Object.assign({},$,{indent:X,inFlow:!0,type:null}),U=!1,Q=0,V=[];for(let M=0;M<D.length;++M){let C=D[M],Z=null;if(h8.isNode(C)){if(C.spaceBefore)V.push("");if(J$($,V,C.commentBefore,!1),C.comment)Z=C.comment}else if(h8.isPair(C)){let j=h8.isNode(C.key)?C.key:null;if(j){if(j.spaceBefore)V.push("");if(J$($,V,j.commentBefore,!1),j.comment)U=!0}let P=h8.isNode(C.value)?C.value:null;if(P){if(P.comment)Z=P.comment;if(P.commentBefore)U=!0}else if(C.value==null&&j?.comment)Z=j.comment}if(Z)U=!0;let O=K_.stringify(C,H,()=>Z=null);if(U||(U=V.length>Q||O.includes(`
119
119
  `)),M<D.length-1)O+=",";else if($.options.trailingComma){if($.options.lineWidth>0)U||(U=V.reduce((j,P)=>j+P.length+2,2)+(O.length+2)>$.options.lineWidth);if(U)O+=","}if(Z)O+=X$.lineComment(O,X,B(Z));V.push(O),Q=V.length}let{start:A,end:K}=F;if(V.length===0)return A+K;else{if(!U){let M=V.reduce((C,Z)=>C+Z.length+2,2);U=$.options.lineWidth>0&&M>$.options.lineWidth}if(U){let M=A;for(let C of V)M+=C?`
120
120
  ${G}${J}${C}`:`
121
121
  `;return`${M}
122
- ${J}${K}`}else return`${A}${Y}${V.join(" ")}${Y}${K}`}}function J$({indent:D,options:{commentString:$}},F,X,J){if(X&&J)X=X.replace(/^\n+/,"");if(X){let G=X$.indentComment($(X),D);F.push(G.trimStart())}}bv.stringifyCollection=Tv});var D8=u((yv)=>{var gv=hG(),hv=gG(),vv=r5(),e1=ZD(),G$=t1(),xv=H0();function i9(D,$){let F=e1.isScalar($)?$.value:$;for(let X of D)if(e1.isPair(X)){if(X.key===$||X.key===F)return X;if(e1.isScalar(X.key)&&X.key.value===F)return X}return}class __ extends vv.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(D){super(e1.MAP,D);this.items=[]}static from(D,$,F){let{keepUndefined:X,replacer:J}=F,G=new this(D),Y=(B,H)=>{if(typeof J==="function")H=J.call($,B,H);else if(Array.isArray(J)&&!J.includes(B))return;if(H!==void 0||X)G.items.push(G$.createPair(B,H,F))};if($ instanceof Map)for(let[B,H]of $)Y(B,H);else if($&&typeof $==="object")for(let B of Object.keys($))Y(B,$[B]);if(typeof D.sortMapEntries==="function")G.items.sort(D.sortMapEntries);return G}add(D,$){let F;if(e1.isPair(D))F=D;else if(!D||typeof D!=="object"||!("key"in D))F=new G$.Pair(D,D?.value);else F=new G$.Pair(D.key,D.value);let X=i9(this.items,F.key),J=this.schema?.sortMapEntries;if(X){if(!$)throw Error(`Key ${F.key} already set`);if(e1.isScalar(X.value)&&xv.isScalarValue(F.value))X.value.value=F.value;else X.value=F.value}else if(J){let G=this.items.findIndex((Y)=>J(F,Y)<0);if(G===-1)this.items.push(F);else this.items.splice(G,0,F)}else this.items.push(F)}delete(D){let $=i9(this.items,D);if(!$)return!1;return this.items.splice(this.items.indexOf($),1).length>0}get(D,$){let X=i9(this.items,D)?.value;return(!$&&e1.isScalar(X)?X.value:X)??void 0}has(D){return!!i9(this.items,D)}set(D,$){this.add(new G$.Pair(D,$),!0)}toJSON(D,$,F){let X=F?new F:$?.mapAsMap?new Map:{};if($?.onCreate)$.onCreate(X);for(let J of this.items)hv.addPairToJSMap($,X,J);return X}toString(D,$,F){if(!D)return JSON.stringify(this);for(let X of this.items)if(!e1.isPair(X))throw Error(`Map items must all be pairs; found ${JSON.stringify(X)} instead`);if(!D.allNullValues&&this.hasAllNullValues(!1))D=Object.assign({},D,{allNullValues:!0});return gv.stringifyCollection(this,D,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:D.indent||"",onChompKeep:F,onComment:$})}}yv.YAMLMap=__;yv.findPair=i9});var F3=u((dv)=>{var cv=ZD(),C_=D8(),pv={collection:"map",default:!0,nodeClass:C_.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(D,$){if(!cv.isMap(D))$("Expected a mapping for this tag");return D},createNode:(D,$,F)=>C_.YAMLMap.from(D,$,F)};dv.map=pv});var $8=u((ov)=>{var iv=y9(),nv=hG(),rv=r5(),B$=ZD(),sv=H0(),av=s1();class M_ extends rv.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(D){super(B$.SEQ,D);this.items=[]}add(D){this.items.push(D)}delete(D){let $=Y$(D);if(typeof $!=="number")return!1;return this.items.splice($,1).length>0}get(D,$){let F=Y$(D);if(typeof F!=="number")return;let X=this.items[F];return!$&&B$.isScalar(X)?X.value:X}has(D){let $=Y$(D);return typeof $==="number"&&$<this.items.length}set(D,$){let F=Y$(D);if(typeof F!=="number")throw Error(`Expected a valid index, not ${D}.`);let X=this.items[F];if(B$.isScalar(X)&&sv.isScalarValue($))X.value=$;else this.items[F]=$}toJSON(D,$){let F=[];if($?.onCreate)$.onCreate(F);let X=0;for(let J of this.items)F.push(av.toJS(J,String(X++),$));return F}toString(D,$,F){if(!D)return JSON.stringify(this);return nv.stringifyCollection(this,D,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(D.indent||"")+" ",onChompKeep:F,onComment:$})}static from(D,$,F){let{replacer:X}=F,J=new this(D);if($&&Symbol.iterator in Object($)){let G=0;for(let Y of $){if(typeof X==="function"){let B=$ instanceof Set?Y:String(G++);Y=X.call($,B,Y)}J.items.push(iv.createNode(Y,void 0,F))}}return J}}function Y$(D){let $=B$.isScalar(D)?D.value:D;if($&&typeof $==="string")$=Number($);return typeof $==="number"&&Number.isInteger($)&&$>=0?$:null}ov.YAMLSeq=M_});var X3=u(($x)=>{var ev=ZD(),Z_=$8(),Dx={collection:"seq",default:!0,nodeClass:Z_.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(D,$){if(!ev.isSeq(D))$("Expected a sequence for this tag");return D},createNode:(D,$,F)=>Z_.YAMLSeq.from(D,$,F)};$x.seq=Dx});var n9=u((Gx)=>{var Xx=c9(),Jx={identify:(D)=>typeof D==="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:(D)=>D,stringify(D,$,F,X){return $=Object.assign({actualString:!0},$),Xx.stringifyString(D,$,F,X)}};Gx.string=Jx});var H$=u((Bx)=>{var R_=H0(),O_={identify:(D)=>D==null,createNode:()=>new R_.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new R_.Scalar(null),stringify:({source:D},$)=>typeof D==="string"&&O_.test.test(D)?D:$.options.nullStr};Bx.nullTag=O_});var vG=u((Ux)=>{var Wx=H0(),E_={identify:(D)=>typeof D==="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:(D)=>new Wx.Scalar(D[0]==="t"||D[0]==="T"),stringify({source:D,value:$},F){if(D&&E_.test.test(D)){let X=D[0]==="t"||D[0]==="T";if($===X)return D}return $?F.options.trueStr:F.options.falseStr}};Ux.boolTag=E_});var J3=u((Ax)=>{function Vx({format:D,minFractionDigits:$,tag:F,value:X}){if(typeof X==="bigint")return String(X);let J=typeof X==="number"?X:Number(X);if(!isFinite(J))return isNaN(J)?".nan":J<0?"-.inf":".inf";let G=Object.is(X,-0)?"-0":JSON.stringify(X);if(!D&&$&&(!F||F==="tag:yaml.org,2002:float")&&/^\d/.test(G)){let Y=G.indexOf(".");if(Y<0)Y=G.length,G+=".";let B=$-(G.length-Y-1);while(B-- >0)G+="0"}return G}Ax.stringifyNumber=Vx});var yG=u((Rx)=>{var _x=H0(),xG=J3(),Cx={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:(D)=>D.slice(-3).toLowerCase()==="nan"?NaN:D[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:xG.stringifyNumber},Mx={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:(D)=>parseFloat(D),stringify(D){let $=Number(D.value);return isFinite($)?$.toExponential():xG.stringifyNumber(D)}},Zx={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(D){let $=new _x.Scalar(parseFloat(D)),F=D.indexOf(".");if(F!==-1&&D[D.length-1]==="0")$.minFractionDigits=D.length-F-1;return $},stringify:xG.stringifyNumber};Rx.float=Zx;Rx.floatExp=Mx;Rx.floatNaN=Cx});var mG=u((qx)=>{var j_=J3(),W$=(D)=>typeof D==="bigint"||Number.isInteger(D),uG=(D,$,F,{intAsBigInt:X})=>X?BigInt(D):parseInt(D.substring($),F);function N_(D,$,F){let{value:X}=D;if(W$(X)&&X>=0)return F+X.toString($);return j_.stringifyNumber(D)}var Nx={identify:(D)=>W$(D)&&D>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(D,$,F)=>uG(D,2,8,F),stringify:(D)=>N_(D,8,"0o")},Px={identify:W$,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(D,$,F)=>uG(D,0,10,F),stringify:j_.stringifyNumber},Lx={identify:(D)=>W$(D)&&D>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(D,$,F)=>uG(D,2,16,F),stringify:(D)=>N_(D,16,"0x")};qx.int=Px;qx.intHex=Lx;qx.intOct=Nx});var P_=u((hx)=>{var Tx=F3(),wx=H$(),kx=X3(),bx=n9(),fx=vG(),cG=yG(),pG=mG(),gx=[Tx.map,kx.seq,bx.string,wx.nullTag,fx.boolTag,pG.intOct,pG.int,pG.intHex,cG.floatNaN,cG.floatExp,cG.float];hx.schema=gx});var q_=u((dx)=>{var xx=H0(),yx=F3(),ux=X3();function L_(D){return typeof D==="bigint"||Number.isInteger(D)}var U$=({value:D})=>JSON.stringify(D),mx=[{identify:(D)=>typeof D==="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:(D)=>D,stringify:U$},{identify:(D)=>D==null,createNode:()=>new xx.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:U$},{identify:(D)=>typeof D==="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:(D)=>D==="true",stringify:U$},{identify:L_,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(D,$,{intAsBigInt:F})=>F?BigInt(D):parseInt(D,10),stringify:({value:D})=>L_(D)?D.toString():JSON.stringify(D)},{identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:(D)=>parseFloat(D),stringify:U$}],cx={default:!0,tag:"",test:/^/,resolve(D,$){return $(`Unresolved plain scalar ${JSON.stringify(D)}`),D}},px=[yx.map,ux.seq].concat(mx,cx);dx.schema=px});var lG=u((rx)=>{var r9=R1("buffer"),dG=H0(),ix=c9(),nx={identify:(D)=>D instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(D,$){if(typeof r9.Buffer==="function")return r9.Buffer.from(D,"base64");else if(typeof atob==="function"){let F=atob(D.replace(/[\n\r]/g,"")),X=new Uint8Array(F.length);for(let J=0;J<F.length;++J)X[J]=F.charCodeAt(J);return X}else return $("This environment does not support reading binary tags; either Buffer or atob is required"),D},stringify({comment:D,type:$,value:F},X,J,G){if(!F)return"";let Y=F,B;if(typeof r9.Buffer==="function")B=Y instanceof r9.Buffer?Y.toString("base64"):r9.Buffer.from(Y.buffer).toString("base64");else if(typeof btoa==="function"){let H="";for(let U=0;U<Y.length;++U)H+=String.fromCharCode(Y[U]);B=btoa(H)}else throw Error("This environment does not support writing binary tags; either Buffer or btoa is required");if($??($=dG.Scalar.BLOCK_LITERAL),$!==dG.Scalar.QUOTE_DOUBLE){let H=Math.max(X.options.lineWidth-X.indent.length,X.options.minContentWidth),U=Math.ceil(B.length/H),Q=Array(U);for(let V=0,A=0;V<U;++V,A+=H)Q[V]=B.substr(A,H);B=Q.join($===dG.Scalar.BLOCK_LITERAL?`
123
- `:" ")}return ix.stringifyString({comment:D,type:$,value:B},X,J,G)}};rx.binary=nx});var V$=u((ex)=>{var Q$=ZD(),iG=t1(),ax=H0(),ox=$8();function z_(D,$){if(Q$.isSeq(D))for(let F=0;F<D.items.length;++F){let X=D.items[F];if(Q$.isPair(X))continue;else if(Q$.isMap(X)){if(X.items.length>1)$("Each pair must have its own sequence indicator");let J=X.items[0]||new iG.Pair(new ax.Scalar(null));if(X.commentBefore)J.key.commentBefore=J.key.commentBefore?`${X.commentBefore}
122
+ ${J}${K}`}else return`${A}${Y}${V.join(" ")}${Y}${K}`}}function J$({indent:D,options:{commentString:$}},F,X,J){if(X&&J)X=X.replace(/^\n+/,"");if(X){let G=X$.indentComment($(X),D);F.push(G.trimStart())}}bv.stringifyCollection=Tv});var D8=u((yv)=>{var gv=hG(),hv=gG(),vv=r5(),e1=RD(),G$=t1(),xv=H0();function i9(D,$){let F=e1.isScalar($)?$.value:$;for(let X of D)if(e1.isPair(X)){if(X.key===$||X.key===F)return X;if(e1.isScalar(X.key)&&X.key.value===F)return X}return}class __ extends vv.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(D){super(e1.MAP,D);this.items=[]}static from(D,$,F){let{keepUndefined:X,replacer:J}=F,G=new this(D),Y=(B,H)=>{if(typeof J==="function")H=J.call($,B,H);else if(Array.isArray(J)&&!J.includes(B))return;if(H!==void 0||X)G.items.push(G$.createPair(B,H,F))};if($ instanceof Map)for(let[B,H]of $)Y(B,H);else if($&&typeof $==="object")for(let B of Object.keys($))Y(B,$[B]);if(typeof D.sortMapEntries==="function")G.items.sort(D.sortMapEntries);return G}add(D,$){let F;if(e1.isPair(D))F=D;else if(!D||typeof D!=="object"||!("key"in D))F=new G$.Pair(D,D?.value);else F=new G$.Pair(D.key,D.value);let X=i9(this.items,F.key),J=this.schema?.sortMapEntries;if(X){if(!$)throw Error(`Key ${F.key} already set`);if(e1.isScalar(X.value)&&xv.isScalarValue(F.value))X.value.value=F.value;else X.value=F.value}else if(J){let G=this.items.findIndex((Y)=>J(F,Y)<0);if(G===-1)this.items.push(F);else this.items.splice(G,0,F)}else this.items.push(F)}delete(D){let $=i9(this.items,D);if(!$)return!1;return this.items.splice(this.items.indexOf($),1).length>0}get(D,$){let X=i9(this.items,D)?.value;return(!$&&e1.isScalar(X)?X.value:X)??void 0}has(D){return!!i9(this.items,D)}set(D,$){this.add(new G$.Pair(D,$),!0)}toJSON(D,$,F){let X=F?new F:$?.mapAsMap?new Map:{};if($?.onCreate)$.onCreate(X);for(let J of this.items)hv.addPairToJSMap($,X,J);return X}toString(D,$,F){if(!D)return JSON.stringify(this);for(let X of this.items)if(!e1.isPair(X))throw Error(`Map items must all be pairs; found ${JSON.stringify(X)} instead`);if(!D.allNullValues&&this.hasAllNullValues(!1))D=Object.assign({},D,{allNullValues:!0});return gv.stringifyCollection(this,D,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:D.indent||"",onChompKeep:F,onComment:$})}}yv.YAMLMap=__;yv.findPair=i9});var F3=u((dv)=>{var cv=RD(),C_=D8(),pv={collection:"map",default:!0,nodeClass:C_.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(D,$){if(!cv.isMap(D))$("Expected a mapping for this tag");return D},createNode:(D,$,F)=>C_.YAMLMap.from(D,$,F)};dv.map=pv});var $8=u((ov)=>{var iv=y9(),nv=hG(),rv=r5(),B$=RD(),sv=H0(),av=s1();class M_ extends rv.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(D){super(B$.SEQ,D);this.items=[]}add(D){this.items.push(D)}delete(D){let $=Y$(D);if(typeof $!=="number")return!1;return this.items.splice($,1).length>0}get(D,$){let F=Y$(D);if(typeof F!=="number")return;let X=this.items[F];return!$&&B$.isScalar(X)?X.value:X}has(D){let $=Y$(D);return typeof $==="number"&&$<this.items.length}set(D,$){let F=Y$(D);if(typeof F!=="number")throw Error(`Expected a valid index, not ${D}.`);let X=this.items[F];if(B$.isScalar(X)&&sv.isScalarValue($))X.value=$;else this.items[F]=$}toJSON(D,$){let F=[];if($?.onCreate)$.onCreate(F);let X=0;for(let J of this.items)F.push(av.toJS(J,String(X++),$));return F}toString(D,$,F){if(!D)return JSON.stringify(this);return nv.stringifyCollection(this,D,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(D.indent||"")+" ",onChompKeep:F,onComment:$})}static from(D,$,F){let{replacer:X}=F,J=new this(D);if($&&Symbol.iterator in Object($)){let G=0;for(let Y of $){if(typeof X==="function"){let B=$ instanceof Set?Y:String(G++);Y=X.call($,B,Y)}J.items.push(iv.createNode(Y,void 0,F))}}return J}}function Y$(D){let $=B$.isScalar(D)?D.value:D;if($&&typeof $==="string")$=Number($);return typeof $==="number"&&Number.isInteger($)&&$>=0?$:null}ov.YAMLSeq=M_});var X3=u(($x)=>{var ev=RD(),Z_=$8(),Dx={collection:"seq",default:!0,nodeClass:Z_.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(D,$){if(!ev.isSeq(D))$("Expected a sequence for this tag");return D},createNode:(D,$,F)=>Z_.YAMLSeq.from(D,$,F)};$x.seq=Dx});var n9=u((Gx)=>{var Xx=c9(),Jx={identify:(D)=>typeof D==="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:(D)=>D,stringify(D,$,F,X){return $=Object.assign({actualString:!0},$),Xx.stringifyString(D,$,F,X)}};Gx.string=Jx});var H$=u((Bx)=>{var R_=H0(),O_={identify:(D)=>D==null,createNode:()=>new R_.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new R_.Scalar(null),stringify:({source:D},$)=>typeof D==="string"&&O_.test.test(D)?D:$.options.nullStr};Bx.nullTag=O_});var vG=u((Ux)=>{var Wx=H0(),E_={identify:(D)=>typeof D==="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:(D)=>new Wx.Scalar(D[0]==="t"||D[0]==="T"),stringify({source:D,value:$},F){if(D&&E_.test.test(D)){let X=D[0]==="t"||D[0]==="T";if($===X)return D}return $?F.options.trueStr:F.options.falseStr}};Ux.boolTag=E_});var J3=u((Ax)=>{function Vx({format:D,minFractionDigits:$,tag:F,value:X}){if(typeof X==="bigint")return String(X);let J=typeof X==="number"?X:Number(X);if(!isFinite(J))return isNaN(J)?".nan":J<0?"-.inf":".inf";let G=Object.is(X,-0)?"-0":JSON.stringify(X);if(!D&&$&&(!F||F==="tag:yaml.org,2002:float")&&/^\d/.test(G)){let Y=G.indexOf(".");if(Y<0)Y=G.length,G+=".";let B=$-(G.length-Y-1);while(B-- >0)G+="0"}return G}Ax.stringifyNumber=Vx});var yG=u((Rx)=>{var _x=H0(),xG=J3(),Cx={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:(D)=>D.slice(-3).toLowerCase()==="nan"?NaN:D[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:xG.stringifyNumber},Mx={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:(D)=>parseFloat(D),stringify(D){let $=Number(D.value);return isFinite($)?$.toExponential():xG.stringifyNumber(D)}},Zx={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(D){let $=new _x.Scalar(parseFloat(D)),F=D.indexOf(".");if(F!==-1&&D[D.length-1]==="0")$.minFractionDigits=D.length-F-1;return $},stringify:xG.stringifyNumber};Rx.float=Zx;Rx.floatExp=Mx;Rx.floatNaN=Cx});var mG=u((qx)=>{var j_=J3(),W$=(D)=>typeof D==="bigint"||Number.isInteger(D),uG=(D,$,F,{intAsBigInt:X})=>X?BigInt(D):parseInt(D.substring($),F);function N_(D,$,F){let{value:X}=D;if(W$(X)&&X>=0)return F+X.toString($);return j_.stringifyNumber(D)}var Nx={identify:(D)=>W$(D)&&D>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(D,$,F)=>uG(D,2,8,F),stringify:(D)=>N_(D,8,"0o")},Px={identify:W$,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(D,$,F)=>uG(D,0,10,F),stringify:j_.stringifyNumber},Lx={identify:(D)=>W$(D)&&D>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(D,$,F)=>uG(D,2,16,F),stringify:(D)=>N_(D,16,"0x")};qx.int=Px;qx.intHex=Lx;qx.intOct=Nx});var P_=u((hx)=>{var Tx=F3(),wx=H$(),kx=X3(),bx=n9(),fx=vG(),cG=yG(),pG=mG(),gx=[Tx.map,kx.seq,bx.string,wx.nullTag,fx.boolTag,pG.intOct,pG.int,pG.intHex,cG.floatNaN,cG.floatExp,cG.float];hx.schema=gx});var q_=u((dx)=>{var xx=H0(),yx=F3(),ux=X3();function L_(D){return typeof D==="bigint"||Number.isInteger(D)}var U$=({value:D})=>JSON.stringify(D),mx=[{identify:(D)=>typeof D==="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:(D)=>D,stringify:U$},{identify:(D)=>D==null,createNode:()=>new xx.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:U$},{identify:(D)=>typeof D==="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:(D)=>D==="true",stringify:U$},{identify:L_,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(D,$,{intAsBigInt:F})=>F?BigInt(D):parseInt(D,10),stringify:({value:D})=>L_(D)?D.toString():JSON.stringify(D)},{identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:(D)=>parseFloat(D),stringify:U$}],cx={default:!0,tag:"",test:/^/,resolve(D,$){return $(`Unresolved plain scalar ${JSON.stringify(D)}`),D}},px=[yx.map,ux.seq].concat(mx,cx);dx.schema=px});var lG=u((rx)=>{var r9=R1("buffer"),dG=H0(),ix=c9(),nx={identify:(D)=>D instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(D,$){if(typeof r9.Buffer==="function")return r9.Buffer.from(D,"base64");else if(typeof atob==="function"){let F=atob(D.replace(/[\n\r]/g,"")),X=new Uint8Array(F.length);for(let J=0;J<F.length;++J)X[J]=F.charCodeAt(J);return X}else return $("This environment does not support reading binary tags; either Buffer or atob is required"),D},stringify({comment:D,type:$,value:F},X,J,G){if(!F)return"";let Y=F,B;if(typeof r9.Buffer==="function")B=Y instanceof r9.Buffer?Y.toString("base64"):r9.Buffer.from(Y.buffer).toString("base64");else if(typeof btoa==="function"){let H="";for(let U=0;U<Y.length;++U)H+=String.fromCharCode(Y[U]);B=btoa(H)}else throw Error("This environment does not support writing binary tags; either Buffer or btoa is required");if($??($=dG.Scalar.BLOCK_LITERAL),$!==dG.Scalar.QUOTE_DOUBLE){let H=Math.max(X.options.lineWidth-X.indent.length,X.options.minContentWidth),U=Math.ceil(B.length/H),Q=Array(U);for(let V=0,A=0;V<U;++V,A+=H)Q[V]=B.substr(A,H);B=Q.join($===dG.Scalar.BLOCK_LITERAL?`
123
+ `:" ")}return ix.stringifyString({comment:D,type:$,value:B},X,J,G)}};rx.binary=nx});var V$=u((ex)=>{var Q$=RD(),iG=t1(),ax=H0(),ox=$8();function z_(D,$){if(Q$.isSeq(D))for(let F=0;F<D.items.length;++F){let X=D.items[F];if(Q$.isPair(X))continue;else if(Q$.isMap(X)){if(X.items.length>1)$("Each pair must have its own sequence indicator");let J=X.items[0]||new iG.Pair(new ax.Scalar(null));if(X.commentBefore)J.key.commentBefore=J.key.commentBefore?`${X.commentBefore}
124
124
  ${J.key.commentBefore}`:X.commentBefore;if(X.comment){let G=J.value??J.key;G.comment=G.comment?`${X.comment}
125
- ${G.comment}`:X.comment}X=J}D.items[F]=Q$.isPair(X)?X:new iG.Pair(X)}else $("Expected a sequence for this tag");return D}function I_(D,$,F){let{replacer:X}=F,J=new ox.YAMLSeq(D);J.tag="tag:yaml.org,2002:pairs";let G=0;if($&&Symbol.iterator in Object($))for(let Y of $){if(typeof X==="function")Y=X.call($,String(G++),Y);let B,H;if(Array.isArray(Y))if(Y.length===2)B=Y[0],H=Y[1];else throw TypeError(`Expected [key, value] tuple: ${Y}`);else if(Y&&Y instanceof Object){let U=Object.keys(Y);if(U.length===1)B=U[0],H=Y[B];else throw TypeError(`Expected tuple with one key, not ${U.length} keys`)}else B=Y;J.items.push(iG.createPair(B,H,F))}return J}var tx={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:z_,createNode:I_};ex.createPairs=I_;ex.pairs=tx;ex.resolvePairs=z_});var rG=u((Gy)=>{var S_=ZD(),nG=s1(),s9=D8(),Xy=$8(),T_=V$();class v8 extends Xy.YAMLSeq{constructor(){super();this.add=s9.YAMLMap.prototype.add.bind(this),this.delete=s9.YAMLMap.prototype.delete.bind(this),this.get=s9.YAMLMap.prototype.get.bind(this),this.has=s9.YAMLMap.prototype.has.bind(this),this.set=s9.YAMLMap.prototype.set.bind(this),this.tag=v8.tag}toJSON(D,$){if(!$)return super.toJSON(D);let F=new Map;if($?.onCreate)$.onCreate(F);for(let X of this.items){let J,G;if(S_.isPair(X))J=nG.toJS(X.key,"",$),G=nG.toJS(X.value,J,$);else J=nG.toJS(X,"",$);if(F.has(J))throw Error("Ordered maps must not include duplicate keys");F.set(J,G)}return F}static from(D,$,F){let X=T_.createPairs(D,$,F),J=new this;return J.items=X.items,J}}v8.tag="tag:yaml.org,2002:omap";var Jy={collection:"seq",identify:(D)=>D instanceof Map,nodeClass:v8,default:!1,tag:"tag:yaml.org,2002:omap",resolve(D,$){let F=T_.resolvePairs(D,$),X=[];for(let{key:J}of F.items)if(S_.isScalar(J))if(X.includes(J.value))$(`Ordered maps must not include duplicate keys: ${J.value}`);else X.push(J.value);return Object.assign(new v8,F)},createNode:(D,$,F)=>v8.from(D,$,F)};Gy.YAMLOMap=v8;Gy.omap=Jy});var g_=u((Hy)=>{var w_=H0();function k_({value:D,source:$},F){if($&&(D?b_:f_).test.test($))return $;return D?F.options.trueStr:F.options.falseStr}var b_={identify:(D)=>D===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new w_.Scalar(!0),stringify:k_},f_={identify:(D)=>D===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new w_.Scalar(!1),stringify:k_};Hy.falseTag=f_;Hy.trueTag=b_});var h_=u((_y)=>{var Qy=H0(),sG=J3(),Vy={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:(D)=>D.slice(-3).toLowerCase()==="nan"?NaN:D[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:sG.stringifyNumber},Ay={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:(D)=>parseFloat(D.replace(/_/g,"")),stringify(D){let $=Number(D.value);return isFinite($)?$.toExponential():sG.stringifyNumber(D)}},Ky={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(D){let $=new Qy.Scalar(parseFloat(D.replace(/_/g,""))),F=D.indexOf(".");if(F!==-1){let X=D.substring(F+1).replace(/_/g,"");if(X[X.length-1]==="0")$.minFractionDigits=X.length}return $},stringify:sG.stringifyNumber};_y.float=Ky;_y.floatExp=Ay;_y.floatNaN=Vy});var x_=u((Ny)=>{var v_=J3(),a9=(D)=>typeof D==="bigint"||Number.isInteger(D);function A$(D,$,F,{intAsBigInt:X}){let J=D[0];if(J==="-"||J==="+")$+=1;if(D=D.substring($).replace(/_/g,""),X){switch(F){case 2:D=`0b${D}`;break;case 8:D=`0o${D}`;break;case 16:D=`0x${D}`;break}let Y=BigInt(D);return J==="-"?BigInt(-1)*Y:Y}let G=parseInt(D,F);return J==="-"?-1*G:G}function aG(D,$,F){let{value:X}=D;if(a9(X)){let J=X.toString($);return X<0?"-"+F+J.substr(1):F+J}return v_.stringifyNumber(D)}var Ry={identify:a9,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(D,$,F)=>A$(D,2,2,F),stringify:(D)=>aG(D,2,"0b")},Oy={identify:a9,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(D,$,F)=>A$(D,1,8,F),stringify:(D)=>aG(D,8,"0")},Ey={identify:a9,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(D,$,F)=>A$(D,0,10,F),stringify:v_.stringifyNumber},jy={identify:a9,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(D,$,F)=>A$(D,2,16,F),stringify:(D)=>aG(D,16,"0x")};Ny.int=Ey;Ny.intBin=Ry;Ny.intHex=jy;Ny.intOct=Oy});var oG=u((Sy)=>{var C$=ZD(),K$=t1(),_$=D8();class x8 extends _$.YAMLMap{constructor(D){super(D);this.tag=x8.tag}add(D){let $;if(C$.isPair(D))$=D;else if(D&&typeof D==="object"&&"key"in D&&"value"in D&&D.value===null)$=new K$.Pair(D.key,null);else $=new K$.Pair(D,null);if(!_$.findPair(this.items,$.key))this.items.push($)}get(D,$){let F=_$.findPair(this.items,D);return!$&&C$.isPair(F)?C$.isScalar(F.key)?F.key.value:F.key:F}set(D,$){if(typeof $!=="boolean")throw Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof $}`);let F=_$.findPair(this.items,D);if(F&&!$)this.items.splice(this.items.indexOf(F),1);else if(!F&&$)this.items.push(new K$.Pair(D))}toJSON(D,$){return super.toJSON(D,$,Set)}toString(D,$,F){if(!D)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},D,{allNullValues:!0}),$,F);else throw Error("Set items must all have null values")}static from(D,$,F){let{replacer:X}=F,J=new this(D);if($&&Symbol.iterator in Object($))for(let G of $){if(typeof X==="function")G=X.call($,G,G);J.items.push(K$.createPair(G,null,F))}return J}}x8.tag="tag:yaml.org,2002:set";var Iy={collection:"map",identify:(D)=>D instanceof Set,nodeClass:x8,default:!1,tag:"tag:yaml.org,2002:set",createNode:(D,$,F)=>x8.from(D,$,F),resolve(D,$){if(C$.isMap(D))if(D.hasAllNullValues(!0))return Object.assign(new x8,D);else $("Set items must all have null values");else $("Expected a mapping for this tag");return D}};Sy.YAMLSet=x8;Sy.set=Iy});var eG=u((gy)=>{var ky=J3();function tG(D,$){let F=D[0],X=F==="-"||F==="+"?D.substring(1):D,J=(Y)=>$?BigInt(Y):Number(Y),G=X.replace(/_/g,"").split(":").reduce((Y,B)=>Y*J(60)+J(B),J(0));return F==="-"?J(-1)*G:G}function y_(D){let{value:$}=D,F=(Y)=>Y;if(typeof $==="bigint")F=(Y)=>BigInt(Y);else if(isNaN($)||!isFinite($))return ky.stringifyNumber(D);let X="";if($<0)X="-",$*=F(-1);let J=F(60),G=[$%J];if($<60)G.unshift(0);else if($=($-G[0])/J,G.unshift($%J),$>=60)$=($-G[0])/J,G.unshift($);return X+G.map((Y)=>String(Y).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var by={identify:(D)=>typeof D==="bigint"||Number.isInteger(D),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(D,$,{intAsBigInt:F})=>tG(D,F),stringify:y_},fy={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:(D)=>tG(D,!1),stringify:y_},u_={identify:(D)=>D instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(D){let $=D.match(u_.test);if(!$)throw Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,F,X,J,G,Y,B]=$.map(Number),H=$[7]?Number(($[7]+"00").substr(1,3)):0,U=Date.UTC(F,X-1,J,G||0,Y||0,B||0,H),Q=$[8];if(Q&&Q!=="Z"){let V=tG(Q,!1);if(Math.abs(V)<30)V*=60;U-=60000*V}return new Date(U)},stringify:({value:D})=>D?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};gy.floatTime=fy;gy.intTime=by;gy.timestamp=u_});var c_=u((sy)=>{var yy=F3(),uy=H$(),my=X3(),cy=n9(),py=lG(),m_=g_(),DY=h_(),M$=x_(),dy=D$(),ly=rG(),iy=V$(),ny=oG(),$Y=eG(),ry=[yy.map,my.seq,cy.string,uy.nullTag,m_.trueTag,m_.falseTag,M$.intBin,M$.intOct,M$.int,M$.intHex,DY.floatNaN,DY.floatExp,DY.float,py.binary,dy.merge,ly.omap,iy.pairs,ny.set,$Y.intTime,$Y.floatTime,$Y.timestamp];sy.schema=ry});var t_=u((Ju)=>{var i_=F3(),oy=H$(),n_=X3(),ty=n9(),ey=vG(),FY=yG(),XY=mG(),Du=P_(),$u=q_(),r_=lG(),o9=D$(),s_=rG(),a_=V$(),p_=c_(),o_=oG(),Z$=eG(),d_=new Map([["core",Du.schema],["failsafe",[i_.map,n_.seq,ty.string]],["json",$u.schema],["yaml11",p_.schema],["yaml-1.1",p_.schema]]),l_={binary:r_.binary,bool:ey.boolTag,float:FY.float,floatExp:FY.floatExp,floatNaN:FY.floatNaN,floatTime:Z$.floatTime,int:XY.int,intHex:XY.intHex,intOct:XY.intOct,intTime:Z$.intTime,map:i_.map,merge:o9.merge,null:oy.nullTag,omap:s_.omap,pairs:a_.pairs,seq:n_.seq,set:o_.set,timestamp:Z$.timestamp},Fu={"tag:yaml.org,2002:binary":r_.binary,"tag:yaml.org,2002:merge":o9.merge,"tag:yaml.org,2002:omap":s_.omap,"tag:yaml.org,2002:pairs":a_.pairs,"tag:yaml.org,2002:set":o_.set,"tag:yaml.org,2002:timestamp":Z$.timestamp};function Xu(D,$,F){let X=d_.get($);if(X&&!D)return F&&!X.includes(o9.merge)?X.concat(o9.merge):X.slice();let J=X;if(!J)if(Array.isArray(D))J=[];else{let G=Array.from(d_.keys()).filter((Y)=>Y!=="yaml11").map((Y)=>JSON.stringify(Y)).join(", ");throw Error(`Unknown schema "${$}"; use one of ${G} or define customTags array`)}if(Array.isArray(D))for(let G of D)J=J.concat(G);else if(typeof D==="function")J=D(J.slice());if(F)J=J.concat(o9.merge);return J.reduce((G,Y)=>{let B=typeof Y==="string"?l_[Y]:Y;if(!B){let H=JSON.stringify(Y),U=Object.keys(l_).map((Q)=>JSON.stringify(Q)).join(", ");throw Error(`Unknown custom tag ${H}; use one of ${U}`)}if(!G.includes(B))G.push(B);return G},[])}Ju.coreKnownTags=Fu;Ju.getTags=Xu});var YY=u((Qu)=>{var JY=ZD(),Bu=F3(),Hu=X3(),Wu=n9(),R$=t_(),Uu=(D,$)=>D.key<$.key?-1:D.key>$.key?1:0;class GY{constructor({compat:D,customTags:$,merge:F,resolveKnownTags:X,schema:J,sortMapEntries:G,toStringDefaults:Y}){this.compat=Array.isArray(D)?R$.getTags(D,"compat"):D?R$.getTags(null,D):null,this.name=typeof J==="string"&&J||"core",this.knownTags=X?R$.coreKnownTags:{},this.tags=R$.getTags($,this.name,F),this.toStringOptions=Y??null,Object.defineProperty(this,JY.MAP,{value:Bu.map}),Object.defineProperty(this,JY.SCALAR,{value:Wu.string}),Object.defineProperty(this,JY.SEQ,{value:Hu.seq}),this.sortMapEntries=typeof G==="function"?G:G===!0?Uu:null}clone(){let D=Object.create(GY.prototype,Object.getOwnPropertyDescriptors(this));return D.tags=this.tags.slice(),D}}Qu.Schema=GY});var e_=u((_u)=>{var Au=ZD(),BY=p9(),t9=u9();function Ku(D,$){let F=[],X=$.directives===!0;if($.directives!==!1&&D.directives){let H=D.directives.toString(D);if(H)F.push(H),X=!0;else if(D.directives.docStart)X=!0}if(X)F.push("---");let J=BY.createStringifyContext(D,$),{commentString:G}=J.options;if(D.commentBefore){if(F.length!==1)F.unshift("");let H=G(D.commentBefore);F.unshift(t9.indentComment(H,""))}let Y=!1,B=null;if(D.contents){if(Au.isNode(D.contents)){if(D.contents.spaceBefore&&X)F.push("");if(D.contents.commentBefore){let Q=G(D.contents.commentBefore);F.push(t9.indentComment(Q,""))}J.forceBlockIndent=!!D.comment,B=D.contents.comment}let H=B?void 0:()=>Y=!0,U=BY.stringify(D.contents,J,()=>B=null,H);if(B)U+=t9.lineComment(U,"",G(B));if((U[0]==="|"||U[0]===">")&&F[F.length-1]==="---")F[F.length-1]=`--- ${U}`;else F.push(U)}else F.push(BY.stringify(D.contents,J));if(D.directives?.docEnd)if(D.comment){let H=G(D.comment);if(H.includes(`
125
+ ${G.comment}`:X.comment}X=J}D.items[F]=Q$.isPair(X)?X:new iG.Pair(X)}else $("Expected a sequence for this tag");return D}function I_(D,$,F){let{replacer:X}=F,J=new ox.YAMLSeq(D);J.tag="tag:yaml.org,2002:pairs";let G=0;if($&&Symbol.iterator in Object($))for(let Y of $){if(typeof X==="function")Y=X.call($,String(G++),Y);let B,H;if(Array.isArray(Y))if(Y.length===2)B=Y[0],H=Y[1];else throw TypeError(`Expected [key, value] tuple: ${Y}`);else if(Y&&Y instanceof Object){let U=Object.keys(Y);if(U.length===1)B=U[0],H=Y[B];else throw TypeError(`Expected tuple with one key, not ${U.length} keys`)}else B=Y;J.items.push(iG.createPair(B,H,F))}return J}var tx={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:z_,createNode:I_};ex.createPairs=I_;ex.pairs=tx;ex.resolvePairs=z_});var rG=u((Gy)=>{var S_=RD(),nG=s1(),s9=D8(),Xy=$8(),T_=V$();class v8 extends Xy.YAMLSeq{constructor(){super();this.add=s9.YAMLMap.prototype.add.bind(this),this.delete=s9.YAMLMap.prototype.delete.bind(this),this.get=s9.YAMLMap.prototype.get.bind(this),this.has=s9.YAMLMap.prototype.has.bind(this),this.set=s9.YAMLMap.prototype.set.bind(this),this.tag=v8.tag}toJSON(D,$){if(!$)return super.toJSON(D);let F=new Map;if($?.onCreate)$.onCreate(F);for(let X of this.items){let J,G;if(S_.isPair(X))J=nG.toJS(X.key,"",$),G=nG.toJS(X.value,J,$);else J=nG.toJS(X,"",$);if(F.has(J))throw Error("Ordered maps must not include duplicate keys");F.set(J,G)}return F}static from(D,$,F){let X=T_.createPairs(D,$,F),J=new this;return J.items=X.items,J}}v8.tag="tag:yaml.org,2002:omap";var Jy={collection:"seq",identify:(D)=>D instanceof Map,nodeClass:v8,default:!1,tag:"tag:yaml.org,2002:omap",resolve(D,$){let F=T_.resolvePairs(D,$),X=[];for(let{key:J}of F.items)if(S_.isScalar(J))if(X.includes(J.value))$(`Ordered maps must not include duplicate keys: ${J.value}`);else X.push(J.value);return Object.assign(new v8,F)},createNode:(D,$,F)=>v8.from(D,$,F)};Gy.YAMLOMap=v8;Gy.omap=Jy});var g_=u((Hy)=>{var w_=H0();function k_({value:D,source:$},F){if($&&(D?b_:f_).test.test($))return $;return D?F.options.trueStr:F.options.falseStr}var b_={identify:(D)=>D===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new w_.Scalar(!0),stringify:k_},f_={identify:(D)=>D===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new w_.Scalar(!1),stringify:k_};Hy.falseTag=f_;Hy.trueTag=b_});var h_=u((_y)=>{var Qy=H0(),sG=J3(),Vy={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:(D)=>D.slice(-3).toLowerCase()==="nan"?NaN:D[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:sG.stringifyNumber},Ay={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:(D)=>parseFloat(D.replace(/_/g,"")),stringify(D){let $=Number(D.value);return isFinite($)?$.toExponential():sG.stringifyNumber(D)}},Ky={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(D){let $=new Qy.Scalar(parseFloat(D.replace(/_/g,""))),F=D.indexOf(".");if(F!==-1){let X=D.substring(F+1).replace(/_/g,"");if(X[X.length-1]==="0")$.minFractionDigits=X.length}return $},stringify:sG.stringifyNumber};_y.float=Ky;_y.floatExp=Ay;_y.floatNaN=Vy});var x_=u((Ny)=>{var v_=J3(),a9=(D)=>typeof D==="bigint"||Number.isInteger(D);function A$(D,$,F,{intAsBigInt:X}){let J=D[0];if(J==="-"||J==="+")$+=1;if(D=D.substring($).replace(/_/g,""),X){switch(F){case 2:D=`0b${D}`;break;case 8:D=`0o${D}`;break;case 16:D=`0x${D}`;break}let Y=BigInt(D);return J==="-"?BigInt(-1)*Y:Y}let G=parseInt(D,F);return J==="-"?-1*G:G}function aG(D,$,F){let{value:X}=D;if(a9(X)){let J=X.toString($);return X<0?"-"+F+J.substr(1):F+J}return v_.stringifyNumber(D)}var Ry={identify:a9,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(D,$,F)=>A$(D,2,2,F),stringify:(D)=>aG(D,2,"0b")},Oy={identify:a9,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(D,$,F)=>A$(D,1,8,F),stringify:(D)=>aG(D,8,"0")},Ey={identify:a9,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(D,$,F)=>A$(D,0,10,F),stringify:v_.stringifyNumber},jy={identify:a9,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(D,$,F)=>A$(D,2,16,F),stringify:(D)=>aG(D,16,"0x")};Ny.int=Ey;Ny.intBin=Ry;Ny.intHex=jy;Ny.intOct=Oy});var oG=u((Sy)=>{var C$=RD(),K$=t1(),_$=D8();class x8 extends _$.YAMLMap{constructor(D){super(D);this.tag=x8.tag}add(D){let $;if(C$.isPair(D))$=D;else if(D&&typeof D==="object"&&"key"in D&&"value"in D&&D.value===null)$=new K$.Pair(D.key,null);else $=new K$.Pair(D,null);if(!_$.findPair(this.items,$.key))this.items.push($)}get(D,$){let F=_$.findPair(this.items,D);return!$&&C$.isPair(F)?C$.isScalar(F.key)?F.key.value:F.key:F}set(D,$){if(typeof $!=="boolean")throw Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof $}`);let F=_$.findPair(this.items,D);if(F&&!$)this.items.splice(this.items.indexOf(F),1);else if(!F&&$)this.items.push(new K$.Pair(D))}toJSON(D,$){return super.toJSON(D,$,Set)}toString(D,$,F){if(!D)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},D,{allNullValues:!0}),$,F);else throw Error("Set items must all have null values")}static from(D,$,F){let{replacer:X}=F,J=new this(D);if($&&Symbol.iterator in Object($))for(let G of $){if(typeof X==="function")G=X.call($,G,G);J.items.push(K$.createPair(G,null,F))}return J}}x8.tag="tag:yaml.org,2002:set";var Iy={collection:"map",identify:(D)=>D instanceof Set,nodeClass:x8,default:!1,tag:"tag:yaml.org,2002:set",createNode:(D,$,F)=>x8.from(D,$,F),resolve(D,$){if(C$.isMap(D))if(D.hasAllNullValues(!0))return Object.assign(new x8,D);else $("Set items must all have null values");else $("Expected a mapping for this tag");return D}};Sy.YAMLSet=x8;Sy.set=Iy});var eG=u((gy)=>{var ky=J3();function tG(D,$){let F=D[0],X=F==="-"||F==="+"?D.substring(1):D,J=(Y)=>$?BigInt(Y):Number(Y),G=X.replace(/_/g,"").split(":").reduce((Y,B)=>Y*J(60)+J(B),J(0));return F==="-"?J(-1)*G:G}function y_(D){let{value:$}=D,F=(Y)=>Y;if(typeof $==="bigint")F=(Y)=>BigInt(Y);else if(isNaN($)||!isFinite($))return ky.stringifyNumber(D);let X="";if($<0)X="-",$*=F(-1);let J=F(60),G=[$%J];if($<60)G.unshift(0);else if($=($-G[0])/J,G.unshift($%J),$>=60)$=($-G[0])/J,G.unshift($);return X+G.map((Y)=>String(Y).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var by={identify:(D)=>typeof D==="bigint"||Number.isInteger(D),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(D,$,{intAsBigInt:F})=>tG(D,F),stringify:y_},fy={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:(D)=>tG(D,!1),stringify:y_},u_={identify:(D)=>D instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(D){let $=D.match(u_.test);if(!$)throw Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,F,X,J,G,Y,B]=$.map(Number),H=$[7]?Number(($[7]+"00").substr(1,3)):0,U=Date.UTC(F,X-1,J,G||0,Y||0,B||0,H),Q=$[8];if(Q&&Q!=="Z"){let V=tG(Q,!1);if(Math.abs(V)<30)V*=60;U-=60000*V}return new Date(U)},stringify:({value:D})=>D?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};gy.floatTime=fy;gy.intTime=by;gy.timestamp=u_});var c_=u((sy)=>{var yy=F3(),uy=H$(),my=X3(),cy=n9(),py=lG(),m_=g_(),DY=h_(),M$=x_(),dy=D$(),ly=rG(),iy=V$(),ny=oG(),$Y=eG(),ry=[yy.map,my.seq,cy.string,uy.nullTag,m_.trueTag,m_.falseTag,M$.intBin,M$.intOct,M$.int,M$.intHex,DY.floatNaN,DY.floatExp,DY.float,py.binary,dy.merge,ly.omap,iy.pairs,ny.set,$Y.intTime,$Y.floatTime,$Y.timestamp];sy.schema=ry});var t_=u((Ju)=>{var i_=F3(),oy=H$(),n_=X3(),ty=n9(),ey=vG(),FY=yG(),XY=mG(),Du=P_(),$u=q_(),r_=lG(),o9=D$(),s_=rG(),a_=V$(),p_=c_(),o_=oG(),Z$=eG(),d_=new Map([["core",Du.schema],["failsafe",[i_.map,n_.seq,ty.string]],["json",$u.schema],["yaml11",p_.schema],["yaml-1.1",p_.schema]]),l_={binary:r_.binary,bool:ey.boolTag,float:FY.float,floatExp:FY.floatExp,floatNaN:FY.floatNaN,floatTime:Z$.floatTime,int:XY.int,intHex:XY.intHex,intOct:XY.intOct,intTime:Z$.intTime,map:i_.map,merge:o9.merge,null:oy.nullTag,omap:s_.omap,pairs:a_.pairs,seq:n_.seq,set:o_.set,timestamp:Z$.timestamp},Fu={"tag:yaml.org,2002:binary":r_.binary,"tag:yaml.org,2002:merge":o9.merge,"tag:yaml.org,2002:omap":s_.omap,"tag:yaml.org,2002:pairs":a_.pairs,"tag:yaml.org,2002:set":o_.set,"tag:yaml.org,2002:timestamp":Z$.timestamp};function Xu(D,$,F){let X=d_.get($);if(X&&!D)return F&&!X.includes(o9.merge)?X.concat(o9.merge):X.slice();let J=X;if(!J)if(Array.isArray(D))J=[];else{let G=Array.from(d_.keys()).filter((Y)=>Y!=="yaml11").map((Y)=>JSON.stringify(Y)).join(", ");throw Error(`Unknown schema "${$}"; use one of ${G} or define customTags array`)}if(Array.isArray(D))for(let G of D)J=J.concat(G);else if(typeof D==="function")J=D(J.slice());if(F)J=J.concat(o9.merge);return J.reduce((G,Y)=>{let B=typeof Y==="string"?l_[Y]:Y;if(!B){let H=JSON.stringify(Y),U=Object.keys(l_).map((Q)=>JSON.stringify(Q)).join(", ");throw Error(`Unknown custom tag ${H}; use one of ${U}`)}if(!G.includes(B))G.push(B);return G},[])}Ju.coreKnownTags=Fu;Ju.getTags=Xu});var YY=u((Qu)=>{var JY=RD(),Bu=F3(),Hu=X3(),Wu=n9(),R$=t_(),Uu=(D,$)=>D.key<$.key?-1:D.key>$.key?1:0;class GY{constructor({compat:D,customTags:$,merge:F,resolveKnownTags:X,schema:J,sortMapEntries:G,toStringDefaults:Y}){this.compat=Array.isArray(D)?R$.getTags(D,"compat"):D?R$.getTags(null,D):null,this.name=typeof J==="string"&&J||"core",this.knownTags=X?R$.coreKnownTags:{},this.tags=R$.getTags($,this.name,F),this.toStringOptions=Y??null,Object.defineProperty(this,JY.MAP,{value:Bu.map}),Object.defineProperty(this,JY.SCALAR,{value:Wu.string}),Object.defineProperty(this,JY.SEQ,{value:Hu.seq}),this.sortMapEntries=typeof G==="function"?G:G===!0?Uu:null}clone(){let D=Object.create(GY.prototype,Object.getOwnPropertyDescriptors(this));return D.tags=this.tags.slice(),D}}Qu.Schema=GY});var e_=u((_u)=>{var Au=RD(),BY=p9(),t9=u9();function Ku(D,$){let F=[],X=$.directives===!0;if($.directives!==!1&&D.directives){let H=D.directives.toString(D);if(H)F.push(H),X=!0;else if(D.directives.docStart)X=!0}if(X)F.push("---");let J=BY.createStringifyContext(D,$),{commentString:G}=J.options;if(D.commentBefore){if(F.length!==1)F.unshift("");let H=G(D.commentBefore);F.unshift(t9.indentComment(H,""))}let Y=!1,B=null;if(D.contents){if(Au.isNode(D.contents)){if(D.contents.spaceBefore&&X)F.push("");if(D.contents.commentBefore){let Q=G(D.contents.commentBefore);F.push(t9.indentComment(Q,""))}J.forceBlockIndent=!!D.comment,B=D.contents.comment}let H=B?void 0:()=>Y=!0,U=BY.stringify(D.contents,J,()=>B=null,H);if(B)U+=t9.lineComment(U,"",G(B));if((U[0]==="|"||U[0]===">")&&F[F.length-1]==="---")F[F.length-1]=`--- ${U}`;else F.push(U)}else F.push(BY.stringify(D.contents,J));if(D.directives?.docEnd)if(D.comment){let H=G(D.comment);if(H.includes(`
126
126
  `))F.push("..."),F.push(t9.indentComment(H,""));else F.push(`... ${H}`)}else F.push("...");else{let H=D.comment;if(H&&Y)H=H.replace(/^\n+/,"");if(H){if((!Y||B)&&F[F.length-1]!=="")F.push("");F.push(t9.indentComment(G(H),""))}}return F.join(`
127
127
  `)+`
128
- `}_u.stringifyDocument=Ku});var e9=u((Pu)=>{var Mu=x9(),G3=r5(),A2=ZD(),Zu=t1(),Ru=s1(),Ou=YY(),Eu=e_(),HY=l5(),ju=zG(),Nu=y9(),WY=qG();class UY{constructor(D,$,F){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,A2.NODE_TYPE,{value:A2.DOC});let X=null;if(typeof $==="function"||Array.isArray($))X=$;else if(F===void 0&&$)F=$,$=void 0;let J=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},F);this.options=J;let{version:G}=J;if(F?._directives){if(this.directives=F._directives.atDocument(),this.directives.yaml.explicit)G=this.directives.yaml.version}else this.directives=new WY.Directives({version:G});this.setSchema(G,F),this.contents=D===void 0?null:this.createNode(D,X,F)}clone(){let D=Object.create(UY.prototype,{[A2.NODE_TYPE]:{value:A2.DOC}});if(D.commentBefore=this.commentBefore,D.comment=this.comment,D.errors=this.errors.slice(),D.warnings=this.warnings.slice(),D.options=Object.assign({},this.options),this.directives)D.directives=this.directives.clone();if(D.schema=this.schema.clone(),D.contents=A2.isNode(this.contents)?this.contents.clone(D.schema):this.contents,this.range)D.range=this.range.slice();return D}add(D){if(Y3(this.contents))this.contents.add(D)}addIn(D,$){if(Y3(this.contents))this.contents.addIn(D,$)}createAlias(D,$){if(!D.anchor){let F=HY.anchorNames(this);D.anchor=!$||F.has($)?HY.findNewAnchor($||"a",F):$}return new Mu.Alias(D.anchor)}createNode(D,$,F){let X=void 0;if(typeof $==="function")D=$.call({"":D},"",D),X=$;else if(Array.isArray($)){let C=(O)=>typeof O==="number"||O instanceof String||O instanceof Number,Z=$.filter(C).map(String);if(Z.length>0)$=$.concat(Z);X=$}else if(F===void 0&&$)F=$,$=void 0;let{aliasDuplicateObjects:J,anchorPrefix:G,flow:Y,keepUndefined:B,onTagObj:H,tag:U}=F??{},{onAnchor:Q,setAnchors:V,sourceObjects:A}=HY.createNodeAnchors(this,G||"a"),K={aliasDuplicateObjects:J??!0,keepUndefined:B??!1,onAnchor:Q,onTagObj:H,replacer:X,schema:this.schema,sourceObjects:A},M=Nu.createNode(D,U,K);if(Y&&A2.isCollection(M))M.flow=!0;return V(),M}createPair(D,$,F={}){let X=this.createNode(D,null,F),J=this.createNode($,null,F);return new Zu.Pair(X,J)}delete(D){return Y3(this.contents)?this.contents.delete(D):!1}deleteIn(D){if(G3.isEmptyPath(D)){if(this.contents==null)return!1;return this.contents=null,!0}return Y3(this.contents)?this.contents.deleteIn(D):!1}get(D,$){return A2.isCollection(this.contents)?this.contents.get(D,$):void 0}getIn(D,$){if(G3.isEmptyPath(D))return!$&&A2.isScalar(this.contents)?this.contents.value:this.contents;return A2.isCollection(this.contents)?this.contents.getIn(D,$):void 0}has(D){return A2.isCollection(this.contents)?this.contents.has(D):!1}hasIn(D){if(G3.isEmptyPath(D))return this.contents!==void 0;return A2.isCollection(this.contents)?this.contents.hasIn(D):!1}set(D,$){if(this.contents==null)this.contents=G3.collectionFromPath(this.schema,[D],$);else if(Y3(this.contents))this.contents.set(D,$)}setIn(D,$){if(G3.isEmptyPath(D))this.contents=$;else if(this.contents==null)this.contents=G3.collectionFromPath(this.schema,Array.from(D),$);else if(Y3(this.contents))this.contents.setIn(D,$)}setSchema(D,$={}){if(typeof D==="number")D=String(D);let F;switch(D){case"1.1":if(this.directives)this.directives.yaml.version="1.1";else this.directives=new WY.Directives({version:"1.1"});F={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":if(this.directives)this.directives.yaml.version=D;else this.directives=new WY.Directives({version:D});F={resolveKnownTags:!0,schema:"core"};break;case null:if(this.directives)delete this.directives;F=null;break;default:{let X=JSON.stringify(D);throw Error(`Expected '1.1', '1.2' or null as first argument, but found: ${X}`)}}if($.schema instanceof Object)this.schema=$.schema;else if(F)this.schema=new Ou.Schema(Object.assign(F,$));else throw Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:D,jsonArg:$,mapAsMap:F,maxAliasCount:X,onAnchor:J,reviver:G}={}){let Y={anchors:new Map,doc:this,keep:!D,mapAsMap:F===!0,mapKeyWarned:!1,maxAliasCount:typeof X==="number"?X:100},B=Ru.toJS(this.contents,$??"",Y);if(typeof J==="function")for(let{count:H,res:U}of Y.anchors.values())J(U,H);return typeof G==="function"?ju.applyReviver(G,{"":B},"",B):B}toJSON(D,$){return this.toJS({json:!0,jsonArg:D,mapAsMap:!1,onAnchor:$})}toString(D={}){if(this.errors.length>0)throw Error("Document with errors cannot be stringified");if("indent"in D&&(!Number.isInteger(D.indent)||Number(D.indent)<=0)){let $=JSON.stringify(D.indent);throw Error(`"indent" option must be a positive integer, not ${$}`)}return Eu.stringifyDocument(this,D)}}function Y3(D){if(A2.isCollection(D))return!0;throw Error("Expected a YAML collection as document contents")}Pu.Document=UY});var D7=u((zu)=>{class O$ extends Error{constructor(D,$,F,X){super();this.name=D,this.code=F,this.message=X,this.pos=$}}class DC extends O${constructor(D,$,F){super("YAMLParseError",D,$,F)}}class $C extends O${constructor(D,$,F){super("YAMLWarning",D,$,F)}}var qu=(D,$)=>(F)=>{if(F.pos[0]===-1)return;F.linePos=F.pos.map((B)=>$.linePos(B));let{line:X,col:J}=F.linePos[0];F.message+=` at line ${X}, column ${J}`;let G=J-1,Y=D.substring($.lineStarts[X-1],$.lineStarts[X]).replace(/[\n\r]+$/,"");if(G>=60&&Y.length>80){let B=Math.min(G-39,Y.length-79);Y="\u2026"+Y.substring(B),G-=B-1}if(Y.length>80)Y=Y.substring(0,79)+"\u2026";if(X>1&&/^ *$/.test(Y.substring(0,G))){let B=D.substring($.lineStarts[X-2],$.lineStarts[X-1]);if(B.length>80)B=B.substring(0,79)+`\u2026
128
+ `}_u.stringifyDocument=Ku});var e9=u((Pu)=>{var Mu=x9(),G3=r5(),A2=RD(),Zu=t1(),Ru=s1(),Ou=YY(),Eu=e_(),HY=l5(),ju=zG(),Nu=y9(),WY=qG();class UY{constructor(D,$,F){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,A2.NODE_TYPE,{value:A2.DOC});let X=null;if(typeof $==="function"||Array.isArray($))X=$;else if(F===void 0&&$)F=$,$=void 0;let J=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},F);this.options=J;let{version:G}=J;if(F?._directives){if(this.directives=F._directives.atDocument(),this.directives.yaml.explicit)G=this.directives.yaml.version}else this.directives=new WY.Directives({version:G});this.setSchema(G,F),this.contents=D===void 0?null:this.createNode(D,X,F)}clone(){let D=Object.create(UY.prototype,{[A2.NODE_TYPE]:{value:A2.DOC}});if(D.commentBefore=this.commentBefore,D.comment=this.comment,D.errors=this.errors.slice(),D.warnings=this.warnings.slice(),D.options=Object.assign({},this.options),this.directives)D.directives=this.directives.clone();if(D.schema=this.schema.clone(),D.contents=A2.isNode(this.contents)?this.contents.clone(D.schema):this.contents,this.range)D.range=this.range.slice();return D}add(D){if(Y3(this.contents))this.contents.add(D)}addIn(D,$){if(Y3(this.contents))this.contents.addIn(D,$)}createAlias(D,$){if(!D.anchor){let F=HY.anchorNames(this);D.anchor=!$||F.has($)?HY.findNewAnchor($||"a",F):$}return new Mu.Alias(D.anchor)}createNode(D,$,F){let X=void 0;if(typeof $==="function")D=$.call({"":D},"",D),X=$;else if(Array.isArray($)){let C=(O)=>typeof O==="number"||O instanceof String||O instanceof Number,Z=$.filter(C).map(String);if(Z.length>0)$=$.concat(Z);X=$}else if(F===void 0&&$)F=$,$=void 0;let{aliasDuplicateObjects:J,anchorPrefix:G,flow:Y,keepUndefined:B,onTagObj:H,tag:U}=F??{},{onAnchor:Q,setAnchors:V,sourceObjects:A}=HY.createNodeAnchors(this,G||"a"),K={aliasDuplicateObjects:J??!0,keepUndefined:B??!1,onAnchor:Q,onTagObj:H,replacer:X,schema:this.schema,sourceObjects:A},M=Nu.createNode(D,U,K);if(Y&&A2.isCollection(M))M.flow=!0;return V(),M}createPair(D,$,F={}){let X=this.createNode(D,null,F),J=this.createNode($,null,F);return new Zu.Pair(X,J)}delete(D){return Y3(this.contents)?this.contents.delete(D):!1}deleteIn(D){if(G3.isEmptyPath(D)){if(this.contents==null)return!1;return this.contents=null,!0}return Y3(this.contents)?this.contents.deleteIn(D):!1}get(D,$){return A2.isCollection(this.contents)?this.contents.get(D,$):void 0}getIn(D,$){if(G3.isEmptyPath(D))return!$&&A2.isScalar(this.contents)?this.contents.value:this.contents;return A2.isCollection(this.contents)?this.contents.getIn(D,$):void 0}has(D){return A2.isCollection(this.contents)?this.contents.has(D):!1}hasIn(D){if(G3.isEmptyPath(D))return this.contents!==void 0;return A2.isCollection(this.contents)?this.contents.hasIn(D):!1}set(D,$){if(this.contents==null)this.contents=G3.collectionFromPath(this.schema,[D],$);else if(Y3(this.contents))this.contents.set(D,$)}setIn(D,$){if(G3.isEmptyPath(D))this.contents=$;else if(this.contents==null)this.contents=G3.collectionFromPath(this.schema,Array.from(D),$);else if(Y3(this.contents))this.contents.setIn(D,$)}setSchema(D,$={}){if(typeof D==="number")D=String(D);let F;switch(D){case"1.1":if(this.directives)this.directives.yaml.version="1.1";else this.directives=new WY.Directives({version:"1.1"});F={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":if(this.directives)this.directives.yaml.version=D;else this.directives=new WY.Directives({version:D});F={resolveKnownTags:!0,schema:"core"};break;case null:if(this.directives)delete this.directives;F=null;break;default:{let X=JSON.stringify(D);throw Error(`Expected '1.1', '1.2' or null as first argument, but found: ${X}`)}}if($.schema instanceof Object)this.schema=$.schema;else if(F)this.schema=new Ou.Schema(Object.assign(F,$));else throw Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:D,jsonArg:$,mapAsMap:F,maxAliasCount:X,onAnchor:J,reviver:G}={}){let Y={anchors:new Map,doc:this,keep:!D,mapAsMap:F===!0,mapKeyWarned:!1,maxAliasCount:typeof X==="number"?X:100},B=Ru.toJS(this.contents,$??"",Y);if(typeof J==="function")for(let{count:H,res:U}of Y.anchors.values())J(U,H);return typeof G==="function"?ju.applyReviver(G,{"":B},"",B):B}toJSON(D,$){return this.toJS({json:!0,jsonArg:D,mapAsMap:!1,onAnchor:$})}toString(D={}){if(this.errors.length>0)throw Error("Document with errors cannot be stringified");if("indent"in D&&(!Number.isInteger(D.indent)||Number(D.indent)<=0)){let $=JSON.stringify(D.indent);throw Error(`"indent" option must be a positive integer, not ${$}`)}return Eu.stringifyDocument(this,D)}}function Y3(D){if(A2.isCollection(D))return!0;throw Error("Expected a YAML collection as document contents")}Pu.Document=UY});var D7=u((zu)=>{class O$ extends Error{constructor(D,$,F,X){super();this.name=D,this.code=F,this.message=X,this.pos=$}}class DC extends O${constructor(D,$,F){super("YAMLParseError",D,$,F)}}class $C extends O${constructor(D,$,F){super("YAMLWarning",D,$,F)}}var qu=(D,$)=>(F)=>{if(F.pos[0]===-1)return;F.linePos=F.pos.map((B)=>$.linePos(B));let{line:X,col:J}=F.linePos[0];F.message+=` at line ${X}, column ${J}`;let G=J-1,Y=D.substring($.lineStarts[X-1],$.lineStarts[X]).replace(/[\n\r]+$/,"");if(G>=60&&Y.length>80){let B=Math.min(G-39,Y.length-79);Y="\u2026"+Y.substring(B),G-=B-1}if(Y.length>80)Y=Y.substring(0,79)+"\u2026";if(X>1&&/^ *$/.test(Y.substring(0,G))){let B=D.substring($.lineStarts[X-2],$.lineStarts[X-1]);if(B.length>80)B=B.substring(0,79)+`\u2026
129
129
  `;Y=B+Y}if(/[^ ]/.test(Y)){let B=1,H=F.linePos[1];if(H?.line===X&&H.col>J)B=Math.max(1,Math.min(H.col-J,80-G));let U=" ".repeat(G)+"^".repeat(B);F.message+=`:
130
130
 
131
131
  ${Y}
132
132
  ${U}
133
133
  `}};zu.YAMLError=O$;zu.YAMLParseError=DC;zu.YAMLWarning=$C;zu.prettifyError=qu});var $7=u((bu)=>{function ku(D,{flow:$,indicator:F,next:X,offset:J,onError:G,parentIndent:Y,startOnNewline:B}){let H=!1,U=B,Q=B,V="",A="",K=!1,M=!1,C=null,Z=null,O=null,j=null,P=null,T=null,h=null;for(let w of D){if(M){if(w.type!=="space"&&w.type!=="newline"&&w.type!=="comma")G(w.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space");M=!1}if(C){if(U&&w.type!=="comment"&&w.type!=="newline")G(C,"TAB_AS_INDENT","Tabs are not allowed as indentation");C=null}switch(w.type){case"space":if(!$&&(F!=="doc-start"||X?.type!=="flow-collection")&&w.source.includes("\t"))C=w;Q=!0;break;case"comment":{if(!Q)G(w,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let i=w.source.substring(1)||" ";if(!V)V=i;else V+=A+i;A="",U=!1;break}case"newline":if(U){if(V)V+=w.source;else if(!T||F!=="seq-item-ind")H=!0}else A+=w.source;if(U=!0,K=!0,Z||O)j=w;Q=!0;break;case"anchor":if(Z)G(w,"MULTIPLE_ANCHORS","A node can have at most one anchor");if(w.source.endsWith(":"))G(w.offset+w.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0);Z=w,h??(h=w.offset),U=!1,Q=!1,M=!0;break;case"tag":{if(O)G(w,"MULTIPLE_TAGS","A node can have at most one tag");O=w,h??(h=w.offset),U=!1,Q=!1,M=!0;break}case F:if(Z||O)G(w,"BAD_PROP_ORDER",`Anchors and tags must be after the ${w.source} indicator`);if(T)G(w,"UNEXPECTED_TOKEN",`Unexpected ${w.source} in ${$??"collection"}`);T=w,U=F==="seq-item-ind"||F==="explicit-key-ind",Q=!1;break;case"comma":if($){if(P)G(w,"UNEXPECTED_TOKEN",`Unexpected , in ${$}`);P=w,U=!1,Q=!1;break}default:G(w,"UNEXPECTED_TOKEN",`Unexpected ${w.type} token`),U=!1,Q=!1}}let q=D[D.length-1],N=q?q.offset+q.source.length:J;if(M&&X&&X.type!=="space"&&X.type!=="newline"&&X.type!=="comma"&&(X.type!=="scalar"||X.source!==""))G(X.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space");if(C&&(U&&C.indent<=Y||X?.type==="block-map"||X?.type==="block-seq"))G(C,"TAB_AS_INDENT","Tabs are not allowed as indentation");return{comma:P,found:T,spaceBefore:H,comment:V,hasNewline:K,anchor:Z,tag:O,newlineAfterProp:j,end:N,start:h??N}}bu.resolveProps=ku});var E$=u((gu)=>{function QY(D){if(!D)return null;switch(D.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(D.source.includes(`
134
- `))return!0;if(D.end){for(let $ of D.end)if($.type==="newline")return!0}return!1;case"flow-collection":for(let $ of D.items){for(let F of $.start)if(F.type==="newline")return!0;if($.sep){for(let F of $.sep)if(F.type==="newline")return!0}if(QY($.key)||QY($.value))return!0}return!1;default:return!0}}gu.containsNewline=QY});var VY=u((yu)=>{var vu=E$();function xu(D,$,F){if($?.type==="flow-collection"){let X=$.end[0];if(X.indent===D&&(X.source==="]"||X.source==="}")&&vu.containsNewline($))F(X,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}yu.flowIndentCheck=xu});var AY=u((cu)=>{var FC=ZD();function mu(D,$,F){let{uniqueKeys:X}=D.options;if(X===!1)return!1;let J=typeof X==="function"?X:(G,Y)=>G===Y||FC.isScalar(G)&&FC.isScalar(Y)&&G.value===Y.value;return $.some((G)=>J(G.key,F))}cu.mapIncludes=mu});var BC=u((ru)=>{var XC=t1(),du=D8(),JC=$7(),lu=E$(),GC=VY(),iu=AY(),YC="All mapping items must start at the same column";function nu({composeNode:D,composeEmptyNode:$},F,X,J,G){let B=new(G?.nodeClass??du.YAMLMap)(F.schema);if(F.atRoot)F.atRoot=!1;let H=X.offset,U=null;for(let Q of X.items){let{start:V,key:A,sep:K,value:M}=Q,C=JC.resolveProps(V,{indicator:"explicit-key-ind",next:A??K?.[0],offset:H,onError:J,parentIndent:X.indent,startOnNewline:!0}),Z=!C.found;if(Z){if(A){if(A.type==="block-seq")J(H,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key");else if("indent"in A&&A.indent!==X.indent)J(H,"BAD_INDENT",YC)}if(!C.anchor&&!C.tag&&!K){if(U=C.end,C.comment)if(B.comment)B.comment+=`
134
+ `))return!0;if(D.end){for(let $ of D.end)if($.type==="newline")return!0}return!1;case"flow-collection":for(let $ of D.items){for(let F of $.start)if(F.type==="newline")return!0;if($.sep){for(let F of $.sep)if(F.type==="newline")return!0}if(QY($.key)||QY($.value))return!0}return!1;default:return!0}}gu.containsNewline=QY});var VY=u((yu)=>{var vu=E$();function xu(D,$,F){if($?.type==="flow-collection"){let X=$.end[0];if(X.indent===D&&(X.source==="]"||X.source==="}")&&vu.containsNewline($))F(X,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}yu.flowIndentCheck=xu});var AY=u((cu)=>{var FC=RD();function mu(D,$,F){let{uniqueKeys:X}=D.options;if(X===!1)return!1;let J=typeof X==="function"?X:(G,Y)=>G===Y||FC.isScalar(G)&&FC.isScalar(Y)&&G.value===Y.value;return $.some((G)=>J(G.key,F))}cu.mapIncludes=mu});var BC=u((ru)=>{var XC=t1(),du=D8(),JC=$7(),lu=E$(),GC=VY(),iu=AY(),YC="All mapping items must start at the same column";function nu({composeNode:D,composeEmptyNode:$},F,X,J,G){let B=new(G?.nodeClass??du.YAMLMap)(F.schema);if(F.atRoot)F.atRoot=!1;let H=X.offset,U=null;for(let Q of X.items){let{start:V,key:A,sep:K,value:M}=Q,C=JC.resolveProps(V,{indicator:"explicit-key-ind",next:A??K?.[0],offset:H,onError:J,parentIndent:X.indent,startOnNewline:!0}),Z=!C.found;if(Z){if(A){if(A.type==="block-seq")J(H,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key");else if("indent"in A&&A.indent!==X.indent)J(H,"BAD_INDENT",YC)}if(!C.anchor&&!C.tag&&!K){if(U=C.end,C.comment)if(B.comment)B.comment+=`
135
135
  `+C.comment;else B.comment=C.comment;continue}if(C.newlineAfterProp||lu.containsNewline(A))J(A??V[V.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else if(C.found?.indent!==X.indent)J(H,"BAD_INDENT",YC);F.atKey=!0;let O=C.end,j=A?D(F,A,C,J):$(F,O,V,null,C,J);if(F.schema.compat)GC.flowIndentCheck(X.indent,A,J);if(F.atKey=!1,iu.mapIncludes(F,B.items,j))J(O,"DUPLICATE_KEY","Map keys must be unique");let P=JC.resolveProps(K??[],{indicator:"map-value-ind",next:M,offset:j.range[2],onError:J,parentIndent:X.indent,startOnNewline:!A||A.type==="block-scalar"});if(H=P.end,P.found){if(Z){if(M?.type==="block-map"&&!P.hasNewline)J(H,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings");if(F.options.strict&&C.start<P.found.offset-1024)J(j.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key")}let T=M?D(F,M,P,J):$(F,H,K,null,P,J);if(F.schema.compat)GC.flowIndentCheck(X.indent,M,J);H=T.range[2];let h=new XC.Pair(j,T);if(F.options.keepSourceTokens)h.srcToken=Q;B.items.push(h)}else{if(Z)J(j.range,"MISSING_CHAR","Implicit map keys need to be followed by map values");if(P.comment)if(j.comment)j.comment+=`
136
- `+P.comment;else j.comment=P.comment;let T=new XC.Pair(j);if(F.options.keepSourceTokens)T.srcToken=Q;B.items.push(T)}}if(U&&U<H)J(U,"IMPOSSIBLE","Map comment with trailing content");return B.range=[X.offset,H,U??H],B}ru.resolveBlockMap=nu});var HC=u((Dm)=>{var au=$8(),ou=$7(),tu=VY();function eu({composeNode:D,composeEmptyNode:$},F,X,J,G){let B=new(G?.nodeClass??au.YAMLSeq)(F.schema);if(F.atRoot)F.atRoot=!1;if(F.atKey)F.atKey=!1;let H=X.offset,U=null;for(let{start:Q,value:V}of X.items){let A=ou.resolveProps(Q,{indicator:"seq-item-ind",next:V,offset:H,onError:J,parentIndent:X.indent,startOnNewline:!0});if(!A.found)if(A.anchor||A.tag||V)if(V?.type==="block-seq")J(A.end,"BAD_INDENT","All sequence items must start at the same column");else J(H,"MISSING_CHAR","Sequence item without - indicator");else{if(U=A.end,A.comment)B.comment=A.comment;continue}let K=V?D(F,V,A,J):$(F,A.end,Q,null,A,J);if(F.schema.compat)tu.flowIndentCheck(X.indent,V,J);H=K.range[2],B.items.push(K)}return B.range=[X.offset,H,U??H],B}Dm.resolveBlockSeq=eu});var B3=u((Xm)=>{function Fm(D,$,F,X){let J="";if(D){let G=!1,Y="";for(let B of D){let{source:H,type:U}=B;switch(U){case"space":G=!0;break;case"comment":{if(F&&!G)X(B,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let Q=H.substring(1)||" ";if(!J)J=Q;else J+=Y+Q;Y="";break}case"newline":if(J)Y+=H;G=!0;break;default:X(B,"UNEXPECTED_TOKEN",`Unexpected ${U} at node end`)}$+=H.length}}return{comment:J,offset:$}}Xm.resolveEnd=Fm});var QC=u((Vm)=>{var Gm=ZD(),Ym=t1(),WC=D8(),Bm=$8(),Hm=B3(),UC=$7(),Wm=E$(),Um=AY(),KY="Block collections are not allowed within flow collections",_Y=(D)=>D&&(D.type==="block-map"||D.type==="block-seq");function Qm({composeNode:D,composeEmptyNode:$},F,X,J,G){let Y=X.start.source==="{",B=Y?"flow map":"flow sequence",U=new(G?.nodeClass??(Y?WC.YAMLMap:Bm.YAMLSeq))(F.schema);U.flow=!0;let Q=F.atRoot;if(Q)F.atRoot=!1;if(F.atKey)F.atKey=!1;let V=X.offset+X.start.source.length;for(let Z=0;Z<X.items.length;++Z){let O=X.items[Z],{start:j,key:P,sep:T,value:h}=O,q=UC.resolveProps(j,{flow:B,indicator:"explicit-key-ind",next:P??T?.[0],offset:V,onError:J,parentIndent:X.indent,startOnNewline:!1});if(!q.found){if(!q.anchor&&!q.tag&&!T&&!h){if(Z===0&&q.comma)J(q.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${B}`);else if(Z<X.items.length-1)J(q.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${B}`);if(q.comment)if(U.comment)U.comment+=`
136
+ `+P.comment;else j.comment=P.comment;let T=new XC.Pair(j);if(F.options.keepSourceTokens)T.srcToken=Q;B.items.push(T)}}if(U&&U<H)J(U,"IMPOSSIBLE","Map comment with trailing content");return B.range=[X.offset,H,U??H],B}ru.resolveBlockMap=nu});var HC=u((Dm)=>{var au=$8(),ou=$7(),tu=VY();function eu({composeNode:D,composeEmptyNode:$},F,X,J,G){let B=new(G?.nodeClass??au.YAMLSeq)(F.schema);if(F.atRoot)F.atRoot=!1;if(F.atKey)F.atKey=!1;let H=X.offset,U=null;for(let{start:Q,value:V}of X.items){let A=ou.resolveProps(Q,{indicator:"seq-item-ind",next:V,offset:H,onError:J,parentIndent:X.indent,startOnNewline:!0});if(!A.found)if(A.anchor||A.tag||V)if(V?.type==="block-seq")J(A.end,"BAD_INDENT","All sequence items must start at the same column");else J(H,"MISSING_CHAR","Sequence item without - indicator");else{if(U=A.end,A.comment)B.comment=A.comment;continue}let K=V?D(F,V,A,J):$(F,A.end,Q,null,A,J);if(F.schema.compat)tu.flowIndentCheck(X.indent,V,J);H=K.range[2],B.items.push(K)}return B.range=[X.offset,H,U??H],B}Dm.resolveBlockSeq=eu});var B3=u((Xm)=>{function Fm(D,$,F,X){let J="";if(D){let G=!1,Y="";for(let B of D){let{source:H,type:U}=B;switch(U){case"space":G=!0;break;case"comment":{if(F&&!G)X(B,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let Q=H.substring(1)||" ";if(!J)J=Q;else J+=Y+Q;Y="";break}case"newline":if(J)Y+=H;G=!0;break;default:X(B,"UNEXPECTED_TOKEN",`Unexpected ${U} at node end`)}$+=H.length}}return{comment:J,offset:$}}Xm.resolveEnd=Fm});var QC=u((Vm)=>{var Gm=RD(),Ym=t1(),WC=D8(),Bm=$8(),Hm=B3(),UC=$7(),Wm=E$(),Um=AY(),KY="Block collections are not allowed within flow collections",_Y=(D)=>D&&(D.type==="block-map"||D.type==="block-seq");function Qm({composeNode:D,composeEmptyNode:$},F,X,J,G){let Y=X.start.source==="{",B=Y?"flow map":"flow sequence",U=new(G?.nodeClass??(Y?WC.YAMLMap:Bm.YAMLSeq))(F.schema);U.flow=!0;let Q=F.atRoot;if(Q)F.atRoot=!1;if(F.atKey)F.atKey=!1;let V=X.offset+X.start.source.length;for(let Z=0;Z<X.items.length;++Z){let O=X.items[Z],{start:j,key:P,sep:T,value:h}=O,q=UC.resolveProps(j,{flow:B,indicator:"explicit-key-ind",next:P??T?.[0],offset:V,onError:J,parentIndent:X.indent,startOnNewline:!1});if(!q.found){if(!q.anchor&&!q.tag&&!T&&!h){if(Z===0&&q.comma)J(q.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${B}`);else if(Z<X.items.length-1)J(q.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${B}`);if(q.comment)if(U.comment)U.comment+=`
137
137
  `+q.comment;else U.comment=q.comment;V=q.end;continue}if(!Y&&F.options.strict&&Wm.containsNewline(P))J(P,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(Z===0){if(q.comma)J(q.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${B}`)}else{if(!q.comma)J(q.start,"MISSING_CHAR",`Missing , between ${B} items`);if(q.comment){let N="";D:for(let w of j)switch(w.type){case"comma":case"space":break;case"comment":N=w.source.substring(1);break D;default:break D}if(N){let w=U.items[U.items.length-1];if(Gm.isPair(w))w=w.value??w.key;if(w.comment)w.comment+=`
138
138
  `+N;else w.comment=N;q.comment=q.comment.substring(N.length+1)}}}if(!Y&&!T&&!q.found){let N=h?D(F,h,q,J):$(F,q.end,T,null,q,J);if(U.items.push(N),V=N.range[2],_Y(h))J(N.range,"BLOCK_IN_FLOW",KY)}else{F.atKey=!0;let N=q.end,w=P?D(F,P,q,J):$(F,N,j,null,q,J);if(_Y(P))J(w.range,"BLOCK_IN_FLOW",KY);F.atKey=!1;let i=UC.resolveProps(T??[],{flow:B,indicator:"map-value-ind",next:h,offset:w.range[2],onError:J,parentIndent:X.indent,startOnNewline:!1});if(i.found){if(!Y&&!q.found&&F.options.strict){if(T)for(let y of T){if(y===i.found)break;if(y.type==="newline"){J(y,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}if(q.start<i.found.offset-1024)J(i.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else if(h)if("source"in h&&h.source?.[0]===":")J(h,"MISSING_CHAR",`Missing space after : in ${B}`);else J(i.start,"MISSING_CHAR",`Missing , or : between ${B} items`);let I=h?D(F,h,i,J):i.found?$(F,i.end,T,null,i,J):null;if(I){if(_Y(h))J(I.range,"BLOCK_IN_FLOW",KY)}else if(i.comment)if(w.comment)w.comment+=`
139
139
  `+i.comment;else w.comment=i.comment;let x=new Ym.Pair(w,I);if(F.options.keepSourceTokens)x.srcToken=O;if(Y){let y=U;if(Um.mapIncludes(F,y.items,w))J(N,"DUPLICATE_KEY","Map keys must be unique");y.items.push(x)}else{let y=new WC.YAMLMap(F.schema);y.flow=!0,y.items.push(x);let XD=(I??w).range;y.range=[w.range[0],XD[1],XD[2]],U.items.push(y)}V=I?I.range[2]:i.end}}let A=Y?"}":"]",[K,...M]=X.end,C=V;if(K?.source===A)C=K.offset+K.source.length;else{let Z=B[0].toUpperCase()+B.substring(1),O=Q?`${Z} must end with a ${A}`:`${Z} in block collection must be sufficiently indented and end with a ${A}`;if(J(V,Q?"MISSING_CHAR":"BAD_INDENT",O),K&&K.source.length!==1)M.unshift(K)}if(M.length>0){let Z=Hm.resolveEnd(M,C,F.options.strict,J);if(Z.comment)if(U.comment)U.comment+=`
140
- `+Z.comment;else U.comment=Z.comment;U.range=[X.offset,C,Z.offset]}else U.range=[X.offset,C,C];return U}Vm.resolveFlowCollection=Qm});var VC=u((jm)=>{var Km=ZD(),_m=H0(),Cm=D8(),Mm=$8(),Zm=BC(),Rm=HC(),Om=QC();function CY(D,$,F,X,J,G){let Y=F.type==="block-map"?Zm.resolveBlockMap(D,$,F,X,G):F.type==="block-seq"?Rm.resolveBlockSeq(D,$,F,X,G):Om.resolveFlowCollection(D,$,F,X,G),B=Y.constructor;if(J==="!"||J===B.tagName)return Y.tag=B.tagName,Y;if(J)Y.tag=J;return Y}function Em(D,$,F,X,J){let G=X.tag,Y=!G?null:$.directives.tagName(G.source,(A)=>J(G,"TAG_RESOLVE_FAILED",A));if(F.type==="block-seq"){let{anchor:A,newlineAfterProp:K}=X,M=A&&G?A.offset>G.offset?A:G:A??G;if(M&&(!K||K.offset<M.offset))J(M,"MISSING_CHAR","Missing newline after block sequence props")}let B=F.type==="block-map"?"map":F.type==="block-seq"?"seq":F.start.source==="{"?"map":"seq";if(!G||!Y||Y==="!"||Y===Cm.YAMLMap.tagName&&B==="map"||Y===Mm.YAMLSeq.tagName&&B==="seq")return CY(D,$,F,J,Y);let H=$.schema.tags.find((A)=>A.tag===Y&&A.collection===B);if(!H){let A=$.schema.knownTags[Y];if(A?.collection===B)$.schema.tags.push(Object.assign({},A,{default:!1})),H=A;else{if(A)J(G,"BAD_COLLECTION_TYPE",`${A.tag} used for ${B} collection, but expects ${A.collection??"scalar"}`,!0);else J(G,"TAG_RESOLVE_FAILED",`Unresolved tag: ${Y}`,!0);return CY(D,$,F,J,Y)}}let U=CY(D,$,F,J,Y,H),Q=H.resolve?.(U,(A)=>J(G,"TAG_RESOLVE_FAILED",A),$.options)??U,V=Km.isNode(Q)?Q:new _m.Scalar(Q);if(V.range=U.range,V.tag=Y,H?.format)V.format=H.format;return V}jm.composeCollection=Em});var ZY=u((zm)=>{var MY=H0();function Pm(D,$,F){let X=$.offset,J=Lm($,D.options.strict,F);if(!J)return{value:"",type:null,comment:"",range:[X,X,X]};let G=J.mode===">"?MY.Scalar.BLOCK_FOLDED:MY.Scalar.BLOCK_LITERAL,Y=$.source?qm($.source):[],B=Y.length;for(let C=Y.length-1;C>=0;--C){let Z=Y[C][1];if(Z===""||Z==="\r")B=C;else break}if(B===0){let C=J.chomp==="+"&&Y.length>0?`
140
+ `+Z.comment;else U.comment=Z.comment;U.range=[X.offset,C,Z.offset]}else U.range=[X.offset,C,C];return U}Vm.resolveFlowCollection=Qm});var VC=u((jm)=>{var Km=RD(),_m=H0(),Cm=D8(),Mm=$8(),Zm=BC(),Rm=HC(),Om=QC();function CY(D,$,F,X,J,G){let Y=F.type==="block-map"?Zm.resolveBlockMap(D,$,F,X,G):F.type==="block-seq"?Rm.resolveBlockSeq(D,$,F,X,G):Om.resolveFlowCollection(D,$,F,X,G),B=Y.constructor;if(J==="!"||J===B.tagName)return Y.tag=B.tagName,Y;if(J)Y.tag=J;return Y}function Em(D,$,F,X,J){let G=X.tag,Y=!G?null:$.directives.tagName(G.source,(A)=>J(G,"TAG_RESOLVE_FAILED",A));if(F.type==="block-seq"){let{anchor:A,newlineAfterProp:K}=X,M=A&&G?A.offset>G.offset?A:G:A??G;if(M&&(!K||K.offset<M.offset))J(M,"MISSING_CHAR","Missing newline after block sequence props")}let B=F.type==="block-map"?"map":F.type==="block-seq"?"seq":F.start.source==="{"?"map":"seq";if(!G||!Y||Y==="!"||Y===Cm.YAMLMap.tagName&&B==="map"||Y===Mm.YAMLSeq.tagName&&B==="seq")return CY(D,$,F,J,Y);let H=$.schema.tags.find((A)=>A.tag===Y&&A.collection===B);if(!H){let A=$.schema.knownTags[Y];if(A?.collection===B)$.schema.tags.push(Object.assign({},A,{default:!1})),H=A;else{if(A)J(G,"BAD_COLLECTION_TYPE",`${A.tag} used for ${B} collection, but expects ${A.collection??"scalar"}`,!0);else J(G,"TAG_RESOLVE_FAILED",`Unresolved tag: ${Y}`,!0);return CY(D,$,F,J,Y)}}let U=CY(D,$,F,J,Y,H),Q=H.resolve?.(U,(A)=>J(G,"TAG_RESOLVE_FAILED",A),$.options)??U,V=Km.isNode(Q)?Q:new _m.Scalar(Q);if(V.range=U.range,V.tag=Y,H?.format)V.format=H.format;return V}jm.composeCollection=Em});var ZY=u((zm)=>{var MY=H0();function Pm(D,$,F){let X=$.offset,J=Lm($,D.options.strict,F);if(!J)return{value:"",type:null,comment:"",range:[X,X,X]};let G=J.mode===">"?MY.Scalar.BLOCK_FOLDED:MY.Scalar.BLOCK_LITERAL,Y=$.source?qm($.source):[],B=Y.length;for(let C=Y.length-1;C>=0;--C){let Z=Y[C][1];if(Z===""||Z==="\r")B=C;else break}if(B===0){let C=J.chomp==="+"&&Y.length>0?`
141
141
  `.repeat(Math.max(1,Y.length-1)):"",Z=X+J.length;if($.source)Z+=$.source.length;return{value:C,type:G,comment:J.comment,range:[X,Z,Z]}}let H=$.indent+J.indent,U=$.offset+J.length,Q=0;for(let C=0;C<B;++C){let[Z,O]=Y[C];if(O===""||O==="\r"){if(J.indent===0&&Z.length>H)H=Z.length}else{if(Z.length<H)F(U+Z.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator");if(J.indent===0)H=Z.length;if(Q=C,H===0&&!D.atRoot)F(U,"BAD_INDENT","Block scalar values in collections must be indented");break}U+=Z.length+O.length+1}for(let C=Y.length-1;C>=B;--C)if(Y[C][0].length>H)B=C+1;let V="",A="",K=!1;for(let C=0;C<Q;++C)V+=Y[C][0].slice(H)+`
142
142
  `;for(let C=Q;C<B;++C){let[Z,O]=Y[C];U+=Z.length+O.length+1;let j=O[O.length-1]==="\r";if(j)O=O.slice(0,-1);if(O&&Z.length<H){let T=`Block scalar lines must not be less indented than their ${J.indent?"explicit indentation indicator":"first line"}`;F(U-O.length-(j?2:1),"BAD_INDENT",T),Z=""}if(G===MY.Scalar.BLOCK_LITERAL)V+=A+Z.slice(H)+O,A=`
143
143
  `;else if(Z.length>H||O[0]==="\t"){if(A===" ")A=`
@@ -167,7 +167,7 @@ ${U}
167
167
  `)break;if(X===`
168
168
  `)F+=`
169
169
  `;$+=1,X=D[$+1]}if(!F)F=" ";return{fold:F,offset:$}}var gm={"0":"\x00",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
170
- `,r:"\r",t:"\t",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\","\t":"\t"};function hm(D,$,F,X){let J=D.substr($,F),Y=J.length===F&&/^[0-9a-fA-F]+$/.test(J)?parseInt(J,16):NaN;if(isNaN(Y)){let B=D.substr($-2,F+2);return X($-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${B}`),B}return String.fromCodePoint(Y)}vm.resolveFlowScalar=Tm});var _C=u((dm)=>{var y8=ZD(),KC=H0(),ym=ZY(),um=OY();function mm(D,$,F,X){let{value:J,type:G,comment:Y,range:B}=$.type==="block-scalar"?ym.resolveBlockScalar(D,$,X):um.resolveFlowScalar($,D.options.strict,X),H=F?D.directives.tagName(F.source,(V)=>X(F,"TAG_RESOLVE_FAILED",V)):null,U;if(D.options.stringKeys&&D.atKey)U=D.schema[y8.SCALAR];else if(H)U=cm(D.schema,J,H,F,X);else if($.type==="scalar")U=pm(D,J,$,X);else U=D.schema[y8.SCALAR];let Q;try{let V=U.resolve(J,(A)=>X(F??$,"TAG_RESOLVE_FAILED",A),D.options);Q=y8.isScalar(V)?V:new KC.Scalar(V)}catch(V){let A=V instanceof Error?V.message:String(V);X(F??$,"TAG_RESOLVE_FAILED",A),Q=new KC.Scalar(J)}if(Q.range=B,Q.source=J,G)Q.type=G;if(H)Q.tag=H;if(U.format)Q.format=U.format;if(Y)Q.comment=Y;return Q}function cm(D,$,F,X,J){if(F==="!")return D[y8.SCALAR];let G=[];for(let B of D.tags)if(!B.collection&&B.tag===F)if(B.default&&B.test)G.push(B);else return B;for(let B of G)if(B.test?.test($))return B;let Y=D.knownTags[F];if(Y&&!Y.collection)return D.tags.push(Object.assign({},Y,{default:!1,test:void 0})),Y;return J(X,"TAG_RESOLVE_FAILED",`Unresolved tag: ${F}`,F!=="tag:yaml.org,2002:str"),D[y8.SCALAR]}function pm({atKey:D,directives:$,schema:F},X,J,G){let Y=F.tags.find((B)=>(B.default===!0||D&&B.default==="key")&&B.test?.test(X))||F[y8.SCALAR];if(F.compat){let B=F.compat.find((H)=>H.default&&H.test?.test(X))??F[y8.SCALAR];if(Y.tag!==B.tag){let H=$.tagString(Y.tag),U=$.tagString(B.tag),Q=`Value may be parsed as either ${H} or ${U}`;G(J,"TAG_RESOLVE_FAILED",Q,!0)}}return Y}dm.composeScalar=mm});var CC=u((nm)=>{function im(D,$,F){if($){F??(F=$.length);for(let X=F-1;X>=0;--X){let J=$[X];switch(J.type){case"space":case"comment":case"newline":D-=J.source.length;continue}J=$[++X];while(J?.type==="space")D+=J.source.length,J=$[++X];break}}return D}nm.emptyScalarPosition=im});var RC=u((Fc)=>{var sm=x9(),am=ZD(),om=VC(),MC=_C(),tm=B3(),em=CC(),Dc={composeNode:ZC,composeEmptyNode:EY};function ZC(D,$,F,X){let J=D.atKey,{spaceBefore:G,comment:Y,anchor:B,tag:H}=F,U,Q=!0;switch($.type){case"alias":if(U=$c(D,$,X),B||H)X($,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":if(U=MC.composeScalar(D,$,H,X),B)U.anchor=B.source.substring(1);break;case"block-map":case"block-seq":case"flow-collection":try{if(U=om.composeCollection(Dc,D,$,F,X),B)U.anchor=B.source.substring(1)}catch(V){let A=V instanceof Error?V.message:String(V);X($,"RESOURCE_EXHAUSTION",A)}break;default:{let V=$.type==="error"?$.message:`Unsupported token (type: ${$.type})`;X($,"UNEXPECTED_TOKEN",V),Q=!1}}if(U??(U=EY(D,$.offset,void 0,null,F,X)),B&&U.anchor==="")X(B,"BAD_ALIAS","Anchor cannot be an empty string");if(J&&D.options.stringKeys&&(!am.isScalar(U)||typeof U.value!=="string"||U.tag&&U.tag!=="tag:yaml.org,2002:str"))X(H??$,"NON_STRING_KEY","With stringKeys, all keys must be strings");if(G)U.spaceBefore=!0;if(Y)if($.type==="scalar"&&$.source==="")U.comment=Y;else U.commentBefore=Y;if(D.options.keepSourceTokens&&Q)U.srcToken=$;return U}function EY(D,$,F,X,{spaceBefore:J,comment:G,anchor:Y,tag:B,end:H},U){let Q={type:"scalar",offset:em.emptyScalarPosition($,F,X),indent:-1,source:""},V=MC.composeScalar(D,Q,B,U);if(Y){if(V.anchor=Y.source.substring(1),V.anchor==="")U(Y,"BAD_ALIAS","Anchor cannot be an empty string")}if(J)V.spaceBefore=!0;if(G)V.comment=G,V.range[2]=H;return V}function $c({options:D},{offset:$,source:F,end:X},J){let G=new sm.Alias(F.substring(1));if(G.source==="")J($,"BAD_ALIAS","Alias cannot be an empty string");if(G.source.endsWith(":"))J($+F.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let Y=$+F.length,B=tm.resolveEnd(X,Y,D.strict,J);if(G.range=[$,Y,B.offset],B.comment)G.comment=B.comment;return G}Fc.composeEmptyNode=EY;Fc.composeNode=ZC});var EC=u((Wc)=>{var Gc=e9(),OC=RC(),Yc=B3(),Bc=$7();function Hc(D,$,{offset:F,start:X,value:J,end:G},Y){let B=Object.assign({_directives:$},D),H=new Gc.Document(void 0,B),U={atKey:!1,atRoot:!0,directives:H.directives,options:H.options,schema:H.schema},Q=Bc.resolveProps(X,{indicator:"doc-start",next:J??G?.[0],offset:F,onError:Y,parentIndent:0,startOnNewline:!0});if(Q.found){if(H.directives.docStart=!0,J&&(J.type==="block-map"||J.type==="block-seq")&&!Q.hasNewline)Y(Q.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")}H.contents=J?OC.composeNode(U,J,Q,Y):OC.composeEmptyNode(U,Q.end,X,null,Q,Y);let V=H.contents.range[2],A=Yc.resolveEnd(G,V,!1,Y);if(A.comment)H.comment=A.comment;return H.range=[F,V,A.offset],H}Wc.composeDoc=Hc});var jY=u((Cc)=>{var Qc=R1("process"),Vc=qG(),Ac=e9(),F7=D7(),jC=ZD(),Kc=EC(),_c=B3();function X7(D){if(typeof D==="number")return[D,D+1];if(Array.isArray(D))return D.length===2?D:[D[0],D[1]];let{offset:$,source:F}=D;return[$,$+(typeof F==="string"?F.length:1)]}function NC(D){let $="",F=!1,X=!1;for(let J=0;J<D.length;++J){let G=D[J];switch(G[0]){case"#":$+=($===""?"":X?`
170
+ `,r:"\r",t:"\t",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\","\t":"\t"};function hm(D,$,F,X){let J=D.substr($,F),Y=J.length===F&&/^[0-9a-fA-F]+$/.test(J)?parseInt(J,16):NaN;if(isNaN(Y)){let B=D.substr($-2,F+2);return X($-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${B}`),B}return String.fromCodePoint(Y)}vm.resolveFlowScalar=Tm});var _C=u((dm)=>{var y8=RD(),KC=H0(),ym=ZY(),um=OY();function mm(D,$,F,X){let{value:J,type:G,comment:Y,range:B}=$.type==="block-scalar"?ym.resolveBlockScalar(D,$,X):um.resolveFlowScalar($,D.options.strict,X),H=F?D.directives.tagName(F.source,(V)=>X(F,"TAG_RESOLVE_FAILED",V)):null,U;if(D.options.stringKeys&&D.atKey)U=D.schema[y8.SCALAR];else if(H)U=cm(D.schema,J,H,F,X);else if($.type==="scalar")U=pm(D,J,$,X);else U=D.schema[y8.SCALAR];let Q;try{let V=U.resolve(J,(A)=>X(F??$,"TAG_RESOLVE_FAILED",A),D.options);Q=y8.isScalar(V)?V:new KC.Scalar(V)}catch(V){let A=V instanceof Error?V.message:String(V);X(F??$,"TAG_RESOLVE_FAILED",A),Q=new KC.Scalar(J)}if(Q.range=B,Q.source=J,G)Q.type=G;if(H)Q.tag=H;if(U.format)Q.format=U.format;if(Y)Q.comment=Y;return Q}function cm(D,$,F,X,J){if(F==="!")return D[y8.SCALAR];let G=[];for(let B of D.tags)if(!B.collection&&B.tag===F)if(B.default&&B.test)G.push(B);else return B;for(let B of G)if(B.test?.test($))return B;let Y=D.knownTags[F];if(Y&&!Y.collection)return D.tags.push(Object.assign({},Y,{default:!1,test:void 0})),Y;return J(X,"TAG_RESOLVE_FAILED",`Unresolved tag: ${F}`,F!=="tag:yaml.org,2002:str"),D[y8.SCALAR]}function pm({atKey:D,directives:$,schema:F},X,J,G){let Y=F.tags.find((B)=>(B.default===!0||D&&B.default==="key")&&B.test?.test(X))||F[y8.SCALAR];if(F.compat){let B=F.compat.find((H)=>H.default&&H.test?.test(X))??F[y8.SCALAR];if(Y.tag!==B.tag){let H=$.tagString(Y.tag),U=$.tagString(B.tag),Q=`Value may be parsed as either ${H} or ${U}`;G(J,"TAG_RESOLVE_FAILED",Q,!0)}}return Y}dm.composeScalar=mm});var CC=u((nm)=>{function im(D,$,F){if($){F??(F=$.length);for(let X=F-1;X>=0;--X){let J=$[X];switch(J.type){case"space":case"comment":case"newline":D-=J.source.length;continue}J=$[++X];while(J?.type==="space")D+=J.source.length,J=$[++X];break}}return D}nm.emptyScalarPosition=im});var RC=u((Fc)=>{var sm=x9(),am=RD(),om=VC(),MC=_C(),tm=B3(),em=CC(),Dc={composeNode:ZC,composeEmptyNode:EY};function ZC(D,$,F,X){let J=D.atKey,{spaceBefore:G,comment:Y,anchor:B,tag:H}=F,U,Q=!0;switch($.type){case"alias":if(U=$c(D,$,X),B||H)X($,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":if(U=MC.composeScalar(D,$,H,X),B)U.anchor=B.source.substring(1);break;case"block-map":case"block-seq":case"flow-collection":try{if(U=om.composeCollection(Dc,D,$,F,X),B)U.anchor=B.source.substring(1)}catch(V){let A=V instanceof Error?V.message:String(V);X($,"RESOURCE_EXHAUSTION",A)}break;default:{let V=$.type==="error"?$.message:`Unsupported token (type: ${$.type})`;X($,"UNEXPECTED_TOKEN",V),Q=!1}}if(U??(U=EY(D,$.offset,void 0,null,F,X)),B&&U.anchor==="")X(B,"BAD_ALIAS","Anchor cannot be an empty string");if(J&&D.options.stringKeys&&(!am.isScalar(U)||typeof U.value!=="string"||U.tag&&U.tag!=="tag:yaml.org,2002:str"))X(H??$,"NON_STRING_KEY","With stringKeys, all keys must be strings");if(G)U.spaceBefore=!0;if(Y)if($.type==="scalar"&&$.source==="")U.comment=Y;else U.commentBefore=Y;if(D.options.keepSourceTokens&&Q)U.srcToken=$;return U}function EY(D,$,F,X,{spaceBefore:J,comment:G,anchor:Y,tag:B,end:H},U){let Q={type:"scalar",offset:em.emptyScalarPosition($,F,X),indent:-1,source:""},V=MC.composeScalar(D,Q,B,U);if(Y){if(V.anchor=Y.source.substring(1),V.anchor==="")U(Y,"BAD_ALIAS","Anchor cannot be an empty string")}if(J)V.spaceBefore=!0;if(G)V.comment=G,V.range[2]=H;return V}function $c({options:D},{offset:$,source:F,end:X},J){let G=new sm.Alias(F.substring(1));if(G.source==="")J($,"BAD_ALIAS","Alias cannot be an empty string");if(G.source.endsWith(":"))J($+F.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let Y=$+F.length,B=tm.resolveEnd(X,Y,D.strict,J);if(G.range=[$,Y,B.offset],B.comment)G.comment=B.comment;return G}Fc.composeEmptyNode=EY;Fc.composeNode=ZC});var EC=u((Wc)=>{var Gc=e9(),OC=RC(),Yc=B3(),Bc=$7();function Hc(D,$,{offset:F,start:X,value:J,end:G},Y){let B=Object.assign({_directives:$},D),H=new Gc.Document(void 0,B),U={atKey:!1,atRoot:!0,directives:H.directives,options:H.options,schema:H.schema},Q=Bc.resolveProps(X,{indicator:"doc-start",next:J??G?.[0],offset:F,onError:Y,parentIndent:0,startOnNewline:!0});if(Q.found){if(H.directives.docStart=!0,J&&(J.type==="block-map"||J.type==="block-seq")&&!Q.hasNewline)Y(Q.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")}H.contents=J?OC.composeNode(U,J,Q,Y):OC.composeEmptyNode(U,Q.end,X,null,Q,Y);let V=H.contents.range[2],A=Yc.resolveEnd(G,V,!1,Y);if(A.comment)H.comment=A.comment;return H.range=[F,V,A.offset],H}Wc.composeDoc=Hc});var jY=u((Cc)=>{var Qc=R1("process"),Vc=qG(),Ac=e9(),F7=D7(),jC=RD(),Kc=EC(),_c=B3();function X7(D){if(typeof D==="number")return[D,D+1];if(Array.isArray(D))return D.length===2?D:[D[0],D[1]];let{offset:$,source:F}=D;return[$,$+(typeof F==="string"?F.length:1)]}function NC(D){let $="",F=!1,X=!1;for(let J=0;J<D.length;++J){let G=D[J];switch(G[0]){case"#":$+=($===""?"":X?`
171
171
 
172
172
  `:`
173
173
  `)+(G.substring(1)||" "),F=!0,X=!1;break;case"%":if(D[J+1]?.[0]!=="#")J+=1;F=!1;break;default:if(!F)X=!0;F=!1}}return{comment:$,afterEmptyLine:X}}class PC{constructor(D={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=($,F,X,J)=>{let G=X7($);if(J)this.warnings.push(new F7.YAMLWarning(G,F,X));else this.errors.push(new F7.YAMLParseError(G,F,X))},this.directives=new Vc.Directives({version:D.version||"1.2"}),this.options=D}decorate(D,$){let{comment:F,afterEmptyLine:X}=NC(this.prelude);if(F){let J=D.contents;if($)D.comment=D.comment?`${D.comment}
@@ -207,7 +207,7 @@ ${$.comment}`:$.comment}this.doc.range[2]=$.offset;break}default:this.errors.pus
207
207
  `)+1;while($!==0)this.onNewLine(this.offset+$),$=this.source.indexOf(`
208
208
  `,$)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(D){let $=D.items[D.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,$.value){let F="end"in $.value?$.value.end:void 0;if((Array.isArray(F)?F[F.length-1]:void 0)?.type==="comment")F?.push(this.sourceToken);else D.items.push({start:[this.sourceToken]})}else if($.sep)$.sep.push(this.sourceToken);else $.start.push(this.sourceToken);return;case"space":case"comment":if($.value)D.items.push({start:[this.sourceToken]});else if($.sep)$.sep.push(this.sourceToken);else{if(this.atIndentedComment($.start,D.indent)){let X=D.items[D.items.length-2]?.value?.end;if(Array.isArray(X)){Array.prototype.push.apply(X,$.start),X.push(this.sourceToken),D.items.pop();return}}$.start.push(this.sourceToken)}return}if(this.indent>=D.indent){let F=!this.onKeyLine&&this.indent===D.indent,X=F&&($.sep||$.explicitKey)&&this.type!=="seq-item-ind",J=[];if(X&&$.sep&&!$.value){let G=[];for(let Y=0;Y<$.sep.length;++Y){let B=$.sep[Y];switch(B.type){case"newline":G.push(Y);break;case"space":break;case"comment":if(B.indent>D.indent)G.length=0;break;default:G.length=0}}if(G.length>=2)J=$.sep.splice(G[1])}switch(this.type){case"anchor":case"tag":if(X||$.value)J.push(this.sourceToken),D.items.push({start:J}),this.onKeyLine=!0;else if($.sep)$.sep.push(this.sourceToken);else $.start.push(this.sourceToken);return;case"explicit-key-ind":if(!$.sep&&!$.explicitKey)$.start.push(this.sourceToken),$.explicitKey=!0;else if(X||$.value)J.push(this.sourceToken),D.items.push({start:J,explicitKey:!0});else this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]});this.onKeyLine=!0;return;case"map-value-ind":if($.explicitKey)if(!$.sep)if(F8($.start,"newline"))Object.assign($,{key:null,sep:[this.sourceToken]});else{let G=H3($.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:G,key:null,sep:[this.sourceToken]}]})}else if($.value)D.items.push({start:[],key:null,sep:[this.sourceToken]});else if(F8($.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:J,key:null,sep:[this.sourceToken]}]});else if(xC($.key)&&!F8($.sep,"newline")){let G=H3($.start),Y=$.key,B=$.sep;B.push(this.sourceToken),delete $.key,delete $.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:G,key:Y,sep:B}]})}else if(J.length>0)$.sep=$.sep.concat(J,this.sourceToken);else $.sep.push(this.sourceToken);else if(!$.sep)Object.assign($,{key:null,sep:[this.sourceToken]});else if($.value||X)D.items.push({start:J,key:null,sep:[this.sourceToken]});else if(F8($.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]});else $.sep.push(this.sourceToken);this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let G=this.flowScalar(this.type);if(X||$.value)D.items.push({start:J,key:G,sep:[]}),this.onKeyLine=!0;else if($.sep)this.stack.push(G);else Object.assign($,{key:G,sep:[]}),this.onKeyLine=!0;return}default:{let G=this.startBlockValue(D);if(G){if(G.type==="block-seq"){if(!$.explicitKey&&$.sep&&!F8($.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else if(F)D.items.push({start:J});this.stack.push(G);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(D){let $=D.items[D.items.length-1];switch(this.type){case"newline":if($.value){let F="end"in $.value?$.value.end:void 0;if((Array.isArray(F)?F[F.length-1]:void 0)?.type==="comment")F?.push(this.sourceToken);else D.items.push({start:[this.sourceToken]})}else $.start.push(this.sourceToken);return;case"space":case"comment":if($.value)D.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment($.start,D.indent)){let X=D.items[D.items.length-2]?.value?.end;if(Array.isArray(X)){Array.prototype.push.apply(X,$.start),X.push(this.sourceToken),D.items.pop();return}}$.start.push(this.sourceToken)}return;case"anchor":case"tag":if($.value||this.indent<=D.indent)break;$.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==D.indent)break;if($.value||F8($.start,"seq-item-ind"))D.items.push({start:[this.sourceToken]});else $.start.push(this.sourceToken);return}if(this.indent>D.indent){let F=this.startBlockValue(D);if(F){this.stack.push(F);return}}yield*this.pop(),yield*this.step()}*flowCollection(D){let $=D.items[D.items.length-1];if(this.type==="flow-error-end"){let F;do yield*this.pop(),F=this.peek(1);while(F?.type==="flow-collection")}else if(D.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":if(!$||$.sep)D.items.push({start:[this.sourceToken]});else $.start.push(this.sourceToken);return;case"map-value-ind":if(!$||$.value)D.items.push({start:[],key:null,sep:[this.sourceToken]});else if($.sep)$.sep.push(this.sourceToken);else Object.assign($,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":if(!$||$.value)D.items.push({start:[this.sourceToken]});else if($.sep)$.sep.push(this.sourceToken);else $.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let X=this.flowScalar(this.type);if(!$||$.value)D.items.push({start:[],key:X,sep:[]});else if($.sep)this.stack.push(X);else Object.assign($,{key:X,sep:[]});return}case"flow-map-end":case"flow-seq-end":D.end.push(this.sourceToken);return}let F=this.startBlockValue(D);if(F)this.stack.push(F);else yield*this.pop(),yield*this.step()}else{let F=this.peek(2);if(F.type==="block-map"&&(this.type==="map-value-ind"&&F.indent===D.indent||this.type==="newline"&&!F.items[F.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&F.type!=="flow-collection"){let X=q$(F),J=H3(X);vC(D);let G=D.end.splice(1,D.end.length);G.push(this.sourceToken);let Y={type:"block-map",offset:D.offset,indent:D.indent,items:[{start:J,key:D,sep:G}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=Y}else yield*this.lineEnd(D)}}flowScalar(D){if(this.onNewLine){let $=this.source.indexOf(`
209
209
  `)+1;while($!==0)this.onNewLine(this.offset+$),$=this.source.indexOf(`
210
- `,$)+1}return{type:D,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(D){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let $=q$(D),F=H3($);return F.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:F,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let $=q$(D),F=H3($);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:F,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(D,$){if(this.type!=="comment")return!1;if(this.indent<=$)return!1;return D.every((F)=>F.type==="newline"||F.type==="space")}*documentEnd(D){if(this.type!=="doc-mode"){if(D.end)D.end.push(this.sourceToken);else D.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}*lineEnd(D){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:if(D.end)D.end.push(this.sourceToken);else D.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}}Wp.Parser=yC});var dC=u((Zp)=>{var uC=jY(),Qp=e9(),G7=D7(),Vp=kG(),Ap=ZD(),Kp=kY(),mC=bY();function cC(D){let $=D.prettyErrors!==!1;return{lineCounter:D.lineCounter||$&&new Kp.LineCounter||null,prettyErrors:$}}function _p(D,$={}){let{lineCounter:F,prettyErrors:X}=cC($),J=new mC.Parser(F?.addNewLine),G=new uC.Composer($),Y=Array.from(G.compose(J.parse(D)));if(X&&F)for(let B of Y)B.errors.forEach(G7.prettifyError(D,F)),B.warnings.forEach(G7.prettifyError(D,F));if(Y.length>0)return Y;return Object.assign([],{empty:!0},G.streamInfo())}function pC(D,$={}){let{lineCounter:F,prettyErrors:X}=cC($),J=new mC.Parser(F?.addNewLine),G=new uC.Composer($),Y=null;for(let B of G.compose(J.parse(D),!0,D.length))if(!Y)Y=B;else if(Y.options.logLevel!=="silent"){Y.errors.push(new G7.YAMLParseError(B.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}if(X&&F)Y.errors.forEach(G7.prettifyError(D,F)),Y.warnings.forEach(G7.prettifyError(D,F));return Y}function Cp(D,$,F){let X=void 0;if(typeof $==="function")X=$;else if(F===void 0&&$&&typeof $==="object")F=$;let J=pC(D,F);if(!J)return null;if(J.warnings.forEach((G)=>Vp.warn(J.options.logLevel,G)),J.errors.length>0)if(J.options.logLevel!=="silent")throw J.errors[0];else J.errors=[];return J.toJS(Object.assign({reviver:X},F))}function Mp(D,$,F){let X=null;if(typeof $==="function"||Array.isArray($))X=$;else if(F===void 0&&$)F=$;if(typeof F==="string")F=F.length;if(typeof F==="number"){let J=Math.round(F);F=J<1?void 0:J>8?{indent:8}:{indent:J}}if(D===void 0){let{keepUndefined:J}=F??$??{};if(!J)return}if(Ap.isDocument(D)&&!X)return D.toString(F);return new Qp.Document(D,X,F).toString(F)}Zp.parse=Cp;Zp.parseAllDocuments=_p;Zp.parseDocument=pC;Zp.stringify=Mp});var Np,Pp,Lp,fY,qp,X8,zp,Ip,Sp,Tp,W5D,wp,kp,bp,z$,lC,fp,gp,hp,vp,xp,yp,up,mp,cp,pp,dp,lp,ip,np,rp,sp,ap,op,tp,ep,Dd,$d,K2,Fd,Xd,gY,Jd,Gd;var m8=R(()=>{Np=jY(),Pp=e9(),Lp=YY(),fY=D7(),qp=x9(),X8=ZD(),zp=t1(),Ip=H0(),Sp=D8(),Tp=$8(),W5D=P$(),wp=wY(),kp=kY(),bp=bY(),z$=dC(),lC=h9();fp=Np.Composer,gp=Pp.Document,hp=Lp.Schema,vp=fY.YAMLError,xp=fY.YAMLParseError,yp=fY.YAMLWarning,up=qp.Alias,mp=X8.isAlias,cp=X8.isCollection,pp=X8.isDocument,dp=X8.isMap,lp=X8.isNode,ip=X8.isPair,np=X8.isScalar,rp=X8.isSeq,sp=zp.Pair,ap=Ip.Scalar,op=Sp.YAMLMap,tp=Tp.YAMLSeq,ep=wp.Lexer,Dd=kp.LineCounter,$d=bp.Parser,K2=z$.parse,Fd=z$.parseAllDocuments,Xd=z$.parseDocument,gY=z$.stringify,Jd=lC.visit,Gd=lC.visitAsync});var W3,iC,hY,Y7,nC,rC,vY,sC,xY,yY,aC,uY,oC,mY,B7,tC,eC,cY,DM,c8;var I$=R(()=>{jD();W3=W.string().min(1).regex(/^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$/),iC=W.enum(["info","warning","error"]),hY=W.enum(["pending","pass","warn","fail"]),Y7=W.enum(["draft","enabled","disabled"]),nC=W.object({code:W.string().min(1),message:W.string().min(1),path:W.string().min(1).optional(),severity:iC}),rC=W.object({checkedAt:W.string().min(1).optional(),issues:W.array(nC),status:hY}),vY=W.union([hY,rC]),sC=W.object({id:W3,status:Y7,validation:vY}),xY=W.object({packs:W.array(sC),schemaVersion:W.literal(1),soul:W3.optional(),status:Y7}),yY=W.enum(["auto","ask","deny"]),aC=W.object({action:yY,pattern:W.string().min(1),reason:W.string().min(1).optional()}),uY=W.object({outOfScope:W.object({default:W.string().min(1).optional(),strategy:W.string().min(1).optional()}).passthrough().refine((D)=>typeof D.default==="string"||typeof D.strategy==="string","outOfScope requires either default or strategy"),risk:W.object({highRiskRequiresApproval:W.boolean(),policy:W.string().min(1).optional()}).passthrough(),schemaVersion:W.literal(1),soul:W.object({label:W.string().min(1).optional(),preset:W3,source:W.string().min(1).optional()}).passthrough().optional(),status:Y7,toolPolicy:W.object({default:yY,rules:W.array(aC)}).passthrough().optional()}),oC=W.object({description:W.string().min(1).optional(),risk:W.enum(["low","medium","high"]).optional(),tools:W.array(W.string().min(1)).optional()}).passthrough(),mY=W.object({defaultToolsets:W.array(W3),schemaVersion:W.literal(1),soul:W3.optional(),status:Y7,toolsets:W.record(oC).optional(),validation:vY.optional()}),B7=W.object({secretRef:W.string().min(1)}),tC=W.object({description:W.string().min(1).optional(),inputSchema:W.record(W.unknown()).optional(),name:W.string().min(1)}).passthrough(),eC=W.object({args:W.array(W.string()).optional(),command:W.string().min(1).optional(),description:W.string().min(1).optional(),disabled:W.boolean().optional(),env:W.record(W.unknown()).optional(),headers:W.record(W.unknown()).optional(),tools:W.array(tC).optional(),transport:W.enum(["stdio","streamable-http","sse"]).optional(),url:W.string().min(1).optional()}).passthrough(),cY=W.object({schemaVersion:W.literal(1).optional(),servers:W.record(eC)}),DM=W.enum(["filesystem-read","filesystem-write","shell","network","browser","mcp"]),c8=W.object({capabilities:W.array(W.string().min(1)).optional(),description:W.string().min(1),name:W.string().min(1),permissions:W.array(DM).optional(),version:W.string().min(1).optional()}).passthrough()});function Wd(D,$){let F=Yd.exec(D);if(!F)throw Error(`Brain skill pack ${$} is missing YAML frontmatter`);let X;try{X=K2(F[1]??"")}catch(J){throw Error(`Brain skill pack ${$} has invalid YAML frontmatter: ${J instanceof Error?J.message:String(J)}`)}try{return Bd.parse(X)}catch(J){if(J instanceof W.ZodError)throw Error(`Brain skill pack ${$} does not satisfy SkillMetadata: ${J.issues.map((G)=>G.message).join("; ")}`);throw J}}function n0(D){let $=Hd.parse(D),F=Wd($.skillMd,$.sourcePath);if(F.id!==$.expectedId)throw Error(`Brain skill pack ${$.sourcePath} declares id "${F.id}" but expected "${$.expectedId}"`);return{id:F.id,installPath:`${F.id}/SKILL.md`,metadata:F,skillMd:$.skillMd.trimEnd(),sourcePath:$.sourcePath}}function S$(D){return Object.fromEntries(D.map(($)=>[$.installPath,`${$.skillMd}
210
+ `,$)+1}return{type:D,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(D){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let $=q$(D),F=H3($);return F.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:F,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let $=q$(D),F=H3($);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:F,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(D,$){if(this.type!=="comment")return!1;if(this.indent<=$)return!1;return D.every((F)=>F.type==="newline"||F.type==="space")}*documentEnd(D){if(this.type!=="doc-mode"){if(D.end)D.end.push(this.sourceToken);else D.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}*lineEnd(D){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:if(D.end)D.end.push(this.sourceToken);else D.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}}Wp.Parser=yC});var dC=u((Zp)=>{var uC=jY(),Qp=e9(),G7=D7(),Vp=kG(),Ap=RD(),Kp=kY(),mC=bY();function cC(D){let $=D.prettyErrors!==!1;return{lineCounter:D.lineCounter||$&&new Kp.LineCounter||null,prettyErrors:$}}function _p(D,$={}){let{lineCounter:F,prettyErrors:X}=cC($),J=new mC.Parser(F?.addNewLine),G=new uC.Composer($),Y=Array.from(G.compose(J.parse(D)));if(X&&F)for(let B of Y)B.errors.forEach(G7.prettifyError(D,F)),B.warnings.forEach(G7.prettifyError(D,F));if(Y.length>0)return Y;return Object.assign([],{empty:!0},G.streamInfo())}function pC(D,$={}){let{lineCounter:F,prettyErrors:X}=cC($),J=new mC.Parser(F?.addNewLine),G=new uC.Composer($),Y=null;for(let B of G.compose(J.parse(D),!0,D.length))if(!Y)Y=B;else if(Y.options.logLevel!=="silent"){Y.errors.push(new G7.YAMLParseError(B.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}if(X&&F)Y.errors.forEach(G7.prettifyError(D,F)),Y.warnings.forEach(G7.prettifyError(D,F));return Y}function Cp(D,$,F){let X=void 0;if(typeof $==="function")X=$;else if(F===void 0&&$&&typeof $==="object")F=$;let J=pC(D,F);if(!J)return null;if(J.warnings.forEach((G)=>Vp.warn(J.options.logLevel,G)),J.errors.length>0)if(J.options.logLevel!=="silent")throw J.errors[0];else J.errors=[];return J.toJS(Object.assign({reviver:X},F))}function Mp(D,$,F){let X=null;if(typeof $==="function"||Array.isArray($))X=$;else if(F===void 0&&$)F=$;if(typeof F==="string")F=F.length;if(typeof F==="number"){let J=Math.round(F);F=J<1?void 0:J>8?{indent:8}:{indent:J}}if(D===void 0){let{keepUndefined:J}=F??$??{};if(!J)return}if(Ap.isDocument(D)&&!X)return D.toString(F);return new Qp.Document(D,X,F).toString(F)}Zp.parse=Cp;Zp.parseAllDocuments=_p;Zp.parseDocument=pC;Zp.stringify=Mp});var Np,Pp,Lp,fY,qp,X8,zp,Ip,Sp,Tp,W5D,wp,kp,bp,z$,lC,fp,gp,hp,vp,xp,yp,up,mp,cp,pp,dp,lp,ip,np,rp,sp,ap,op,tp,ep,Dd,$d,K2,Fd,Xd,gY,Jd,Gd;var m8=R(()=>{Np=jY(),Pp=e9(),Lp=YY(),fY=D7(),qp=x9(),X8=RD(),zp=t1(),Ip=H0(),Sp=D8(),Tp=$8(),W5D=P$(),wp=wY(),kp=kY(),bp=bY(),z$=dC(),lC=h9();fp=Np.Composer,gp=Pp.Document,hp=Lp.Schema,vp=fY.YAMLError,xp=fY.YAMLParseError,yp=fY.YAMLWarning,up=qp.Alias,mp=X8.isAlias,cp=X8.isCollection,pp=X8.isDocument,dp=X8.isMap,lp=X8.isNode,ip=X8.isPair,np=X8.isScalar,rp=X8.isSeq,sp=zp.Pair,ap=Ip.Scalar,op=Sp.YAMLMap,tp=Tp.YAMLSeq,ep=wp.Lexer,Dd=kp.LineCounter,$d=bp.Parser,K2=z$.parse,Fd=z$.parseAllDocuments,Xd=z$.parseDocument,gY=z$.stringify,Jd=lC.visit,Gd=lC.visitAsync});var W3,iC,hY,Y7,nC,rC,vY,sC,xY,yY,aC,uY,oC,mY,B7,tC,eC,cY,DM,c8;var I$=R(()=>{jD();W3=W.string().min(1).regex(/^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$/),iC=W.enum(["info","warning","error"]),hY=W.enum(["pending","pass","warn","fail"]),Y7=W.enum(["draft","enabled","disabled"]),nC=W.object({code:W.string().min(1),message:W.string().min(1),path:W.string().min(1).optional(),severity:iC}),rC=W.object({checkedAt:W.string().min(1).optional(),issues:W.array(nC),status:hY}),vY=W.union([hY,rC]),sC=W.object({id:W3,status:Y7,validation:vY}),xY=W.object({packs:W.array(sC),schemaVersion:W.literal(1),soul:W3.optional(),status:Y7}),yY=W.enum(["auto","ask","deny"]),aC=W.object({action:yY,pattern:W.string().min(1),reason:W.string().min(1).optional()}),uY=W.object({outOfScope:W.object({default:W.string().min(1).optional(),strategy:W.string().min(1).optional()}).passthrough().refine((D)=>typeof D.default==="string"||typeof D.strategy==="string","outOfScope requires either default or strategy"),risk:W.object({highRiskRequiresApproval:W.boolean(),policy:W.string().min(1).optional()}).passthrough(),schemaVersion:W.literal(1),soul:W.object({label:W.string().min(1).optional(),preset:W3,source:W.string().min(1).optional()}).passthrough().optional(),status:Y7,toolPolicy:W.object({default:yY,rules:W.array(aC)}).passthrough().optional()}),oC=W.object({description:W.string().min(1).optional(),risk:W.enum(["low","medium","high"]).optional(),tools:W.array(W.string().min(1)).optional()}).passthrough(),mY=W.object({defaultToolsets:W.array(W3),schemaVersion:W.literal(1),soul:W3.optional(),status:Y7,toolsets:W.record(oC).optional(),validation:vY.optional()}),B7=W.object({secretRef:W.string().min(1)}),tC=W.object({description:W.string().min(1).optional(),inputSchema:W.record(W.unknown()).optional(),name:W.string().min(1)}).passthrough(),eC=W.object({args:W.array(W.string()).optional(),command:W.string().min(1).optional(),description:W.string().min(1).optional(),disabled:W.boolean().optional(),env:W.record(W.unknown()).optional(),headers:W.record(W.unknown()).optional(),tools:W.array(tC).optional(),transport:W.enum(["stdio","streamable-http","sse"]).optional(),url:W.string().min(1).optional()}).passthrough(),cY=W.object({schemaVersion:W.literal(1).optional(),servers:W.record(eC)}),DM=W.enum(["filesystem-read","filesystem-write","shell","network","browser","mcp"]),c8=W.object({capabilities:W.array(W.string().min(1)).optional(),description:W.string().min(1),name:W.string().min(1),permissions:W.array(DM).optional(),version:W.string().min(1).optional()}).passthrough()});function Wd(D,$){let F=Yd.exec(D);if(!F)throw Error(`Brain skill pack ${$} is missing YAML frontmatter`);let X;try{X=K2(F[1]??"")}catch(J){throw Error(`Brain skill pack ${$} has invalid YAML frontmatter: ${J instanceof Error?J.message:String(J)}`)}try{return Bd.parse(X)}catch(J){if(J instanceof W.ZodError)throw Error(`Brain skill pack ${$} does not satisfy SkillMetadata: ${J.issues.map((G)=>G.message).join("; ")}`);throw J}}function n0(D){let $=Hd.parse(D),F=Wd($.skillMd,$.sourcePath);if(F.id!==$.expectedId)throw Error(`Brain skill pack ${$.sourcePath} declares id "${F.id}" but expected "${$.expectedId}"`);return{id:F.id,installPath:`${F.id}/SKILL.md`,metadata:F,skillMd:$.skillMd.trimEnd(),sourcePath:$.sourcePath}}function S$(D){return Object.fromEntries(D.map(($)=>[$.installPath,`${$.skillMd}
211
211
  `]))}var Yd,Bd,Hd;var pY=R(()=>{m8();jD();I$();Yd=/^---\r?\n([\s\S]*?)\r?\n---\r?\n?/,Bd=c8.extend({id:W.string().min(1)}),Hd=W.object({expectedId:W.string().min(1),skillMd:W.string().min(1),sourcePath:W.string().min(1)})});var FM=`---
212
212
  id: developer.codebase-orientation
213
213
  name: Codebase Orientation
@@ -1575,7 +1575,7 @@ retentionDefaults: []
1575
1575
  ## \u6A21\u7CCA\u6216\u7F3A\u5931\u4E0A\u4E0B\u6587
1576
1576
 
1577
1577
  \u4E0D\u76F4\u63A5\u627F\u8BFA\u8865\u507F\u6216\u56DE\u590D\u6A21\u677F\uFF1B\u5148\u4E00\u53E5\u8BDD\u53CD\u95EE\u5173\u952E\u7F3A\u5931\uFF1A\u7528\u6237\u6807\u8BC6 / \u4EA7\u54C1\u6216\u670D\u52A1 / \u671F\u671B\u7ED3\u679C / \u5386\u53F2\u5DE5\u5355 ID / \u662F\u5426\u9700\u8981\u5347\u7EA7\u3002
1578
- `;var MZ=()=>{};function $2(){return l$(U3)}function n$(D){return i$.find(($)=>$.module.manifest.id===D)}var V7,A7,K7,_7,C7,M7,Z7,R7,O7,i$,U3;var qB=R(()=>{w$();PB();LB();vM();yM();mM();pM();lM();nM();sM();oM();eM();$Z();XZ();GZ();BZ();WZ();QZ();AZ();_Z();MZ();V7=M2({agentMd:xM,brainSkillPacks:_2("developer"),expectedId:"developer",soulMd:uM,sourcePath:"packages/shared/src/soul/packs/developer/SOUL.md"}),A7=M2({agentMd:HZ,brainSkillPacks:_2("project-manager"),expectedId:"project-manager",soulMd:UZ,sourcePath:"packages/shared/src/soul/packs/project-manager/SOUL.md"}),K7=M2({agentMd:cM,brainSkillPacks:_2("devops-sre"),expectedId:"devops-sre",soulMd:dM,sourcePath:"packages/shared/src/soul/packs/devops-sre/SOUL.md"}),_7=M2({agentMd:JZ,brainSkillPacks:_2("product-designer"),expectedId:"product-designer",soulMd:YZ,sourcePath:"packages/shared/src/soul/packs/product-designer/SOUL.md"}),C7=M2({agentMd:VZ,brainSkillPacks:_2("qa-reviewer"),expectedId:"qa-reviewer",soulMd:KZ,sourcePath:"packages/shared/src/soul/packs/qa-reviewer/SOUL.md"}),M7=M2({agentMd:CZ,brainSkillPacks:_2("support-operator"),expectedId:"support-operator",soulMd:ZZ,sourcePath:"packages/shared/src/soul/packs/support-operator/SOUL.md"}),Z7=M2({agentMd:iM,brainSkillPacks:_2("finance-ops"),expectedId:"finance-ops",soulMd:rM,sourcePath:"packages/shared/src/soul/packs/finance-ops/SOUL.md"}),R7=M2({agentMd:DZ,brainSkillPacks:_2("hr-recruiting"),expectedId:"hr-recruiting",soulMd:FZ,sourcePath:"packages/shared/src/soul/packs/hr-recruiting/SOUL.md"}),O7=M2({agentMd:aM,brainSkillPacks:_2("general-assistant"),expectedId:"general-assistant",soulMd:tM,sourcePath:"packages/shared/src/soul/packs/general-assistant/SOUL.md"}),i$=[V7,A7,K7,_7,C7,M7,Z7,R7,O7],U3=i$.map((D)=>D.module)});var RZ,OZ,EZ,jZ,NZ,PZ,LZ,qZ,zZ;var IZ=R(()=>{qB();RZ=V7.module,OZ=K7.module,EZ=Z7.module,jZ=O7.module,NZ=R7.module,PZ=_7.module,LZ=A7.module,qZ=C7.module,zZ=M7.module});var SZ=R(()=>{p$();IZ();PB();qB();LB()});var MD=R(()=>{w$();w$();I$();PM();qM();GB();SM();kM();fM();SZ()});var l8,zB;var IB=R(()=>{jD();l8={OPERATOR:"operator",NODE:"node"},zB=W.union([W.literal(l8.OPERATOR),W.literal(l8.NODE)])});function Q1(D){let $;try{$=JSON.parse(D)}catch(X){return{ok:!1,error:`invalid_json:${X instanceof Error?X.message:String(X)}`}}let F=gZ.safeParse($);if(!F.success)return{ok:!1,error:`schema:${F.error.message}`};return{ok:!0,frame:F.data}}function dD(D){return JSON.stringify(D)}var TZ,wZ,kZ,Dl,$l,bZ,fZ,gZ;var hZ=R(()=>{MD();jD();IB();TZ=W.object({type:W.literal("connect"),role:zB,agentId:W.string().min(1),deviceId:W.string().min(1),auth:W.object({token:W.string()}),meta:W.record(W.string()).optional(),enroll:W.object({apiToken:W.string().regex(L1,"apiToken must match wtk_<base64url>"),displayName:W.string().min(1).max(80).optional(),mode:W.enum(["join-token","otp"]).optional(),joinToken:W.string().min(1).optional()}).optional().refine((D)=>D===void 0||((D.mode??"join-token")==="otp"?D.joinToken===void 0:!!D.joinToken),{message:"mode=join-token requires joinToken; mode=otp must omit joinToken"})}),wZ=W.object({type:W.literal("request"),id:W.string().min(1),method:W.string().min(1),params:W.unknown().optional()}),kZ=W.object({code:W.string().min(1),message:W.string(),details:W.unknown().optional()}),Dl=W.object({type:W.literal("response"),id:W.string().min(1),ok:W.literal(!0),result:W.unknown()}),$l=W.object({type:W.literal("response"),id:W.string().min(1),ok:W.literal(!1),error:kZ}),bZ=W.discriminatedUnion("ok",[Dl,$l]),fZ=W.object({type:W.literal("event"),name:W.string().min(1),payload:W.unknown(),ts:W.number().int()}),gZ=W.union([TZ,wZ,bZ,fZ])});function VD(D){return D}function o$(D){return Object.prototype.hasOwnProperty.call(CD,D)}function E7(D){if(!o$(D))return;return CD[D]}var i8,Fl,Xl,vZ,Q3,Jl,Gl,Yl,Bl,r$,Hl,Wl,Ul,s$,Ql,Vl,Al,Kl,_l,Cl,xZ,yZ,Ml,Zl,uZ,mZ,Rl,Ol,El,jl,Nl,Pl,Ll,ql,zl,Il,Sl,Tl,cZ,wl,kl,bl,fl,gl,hl,vl,xl,yl,ul,ml,cl,SB,a$,pZ,dZ,pl,dl,ll,il,CD;var lZ=R(()=>{jD();i8=W.object({workerId:W.string().min(1),displayName:W.string().optional(),online:W.boolean(),deviceId:W.string().min(1).optional(),baseUrl:W.string().optional(),lastSeenAt:W.number().int().nullable().optional()}),Fl=VD({method:"workers.list",description:"\u5217\u51FA fleet \u5185\u6240\u6709\u5DF2\u6CE8\u518C worker\uFF08\u542B online \u72B6\u6001\uFF09\u3002",params:W.object({}).optional().default({}),result:W.object({workers:W.array(i8)}),routing:"operator-to-gateway"}),Xl=VD({method:"workers.info",description:"\u8BFB\u53D6\u67D0\u4E2A worker \u7684\u8FD0\u884C\u65F6\u5FEB\u7167\uFF08/worker/info \u7B49\u4EF7\u7269\uFF09\u3002",params:W.object({workerId:W.string().min(1)}),result:W.unknown(),routing:"operator-to-node"}),vZ=W.object({workerBaseUrl:W.string().min(1),bootstrapToken:W.string().min(1),displayName:W.string().optional()}),Q3=W.object({workerId:W.string().min(1),deviceToken:W.string().min(1)}),Jl=VD({method:"workers.pair",description:"\u628A\u4E00\u4E2A\u5DF2\u542F\u52A8\u7684 worker \u901A\u8FC7 bootstrap token \u6CE8\u518C\u5230 fleet\u3002",params:vZ,result:Q3,routing:"operator-to-gateway"}),Gl=VD({method:"workers.launch",description:"\u7531 gateway/supervisor \u672C\u5730\u62C9\u8D77\u4E00\u4E2A worker \u5BB9\u5668\u5E76\u5B8C\u6210\u6CE8\u518C\u3002",params:W.object({displayName:W.string().optional(),image:W.string().optional(),env:W.record(W.string()).optional()}),result:Q3,routing:"operator-to-gateway"}),Yl=VD({method:"workers.stop",description:"\u5411\u76EE\u6807 worker \u4E0B\u53D1\u505C\u6B62\u6307\u4EE4\uFF08\u4E0D\u4ECE fleet \u91CC\u5220\u9664\uFF09\u3002",params:W.object({workerId:W.string().min(1)}),result:W.object({stopped:W.boolean()}),routing:"operator-to-node"}),Bl=VD({method:"workers.remove",description:"\u628A worker \u4ECE fleet \u4E2D\u6458\u9664\uFF08\u5B58\u91CF deviceToken \u4F5C\u5E9F\uFF09\u3002",params:W.object({workerId:W.string().min(1)}),result:W.object({removed:W.boolean()}),routing:"operator-to-gateway"}),r$=W.object({otp:W.string().min(1),workerId:W.string().min(1),displayName:W.string().min(1).optional(),submittedAt:W.number().int(),expiresAt:W.number().int()}),Hl=VD({method:"enroll.list",description:"\u5217\u51FA gateway \u5F53\u524D\u6240\u6709 pending OTP enrollment \u8BF7\u6C42\u3002",params:W.object({}).optional().default({}),result:W.object({pending:W.array(r$)}),routing:"operator-to-gateway"}),Wl=VD({method:"enroll.approve",description:"\u6279\u51C6\u67D0\u6761 pending OTP enrollment\uFF1Afleet.db \u843D row + \u63A8 enrollment.approved \u4E8B\u4EF6\u7ED9\u7B49\u5F85\u4E2D\u7684 worker\u3002",params:W.object({otp:W.string().min(1)}),result:W.object({workerId:W.string().min(1),deviceToken:W.string().min(1)}),routing:"operator-to-gateway"}),Ul=VD({method:"enroll.reject",description:"\u62D2\u7EDD\u67D0\u6761 pending OTP\uFF1Aclose 4403 \u7ED9 worker\uFF0Caudit gateway.enrollment.rejected\u3002",params:W.object({otp:W.string().min(1)}),result:W.object({rejected:W.boolean()}),routing:"operator-to-gateway"}),s$=W.object({id:W.number().int().positive(),at:W.string().min(1),actor:W.string().min(1),action:W.string().min(1),workerId:W.string().min(1).nullable(),detail:W.record(W.unknown()).nullable()}),Ql=VD({method:"audit.list",description:"fleet.db audit_events \u6D4F\u89C8\uFF1A\u6309 id \u5012\u5E8F\u5206\u9875\uFF0C\u53EF\u6309 action \u524D\u7F00 / workerId \u8FC7\u6EE4\u3002",params:W.object({limit:W.number().int().positive().max(200).optional(),before:W.number().int().positive().optional(),action:W.string().min(1).optional(),workerId:W.string().min(1).optional()}).optional().default({}),result:W.object({events:W.array(s$),hasMore:W.boolean()}),routing:"operator-to-gateway"}),Vl=VD({method:"chat.send",description:"\u5411\u76EE\u6807 worker \u7684\u67D0\u4F1A\u8BDD\u8FFD\u52A0\u4E00\u6761\u7528\u6237\u6D88\u606F\u5E76\u89E6\u53D1\u4E00\u6B21 run\u3002",params:W.object({workerId:W.string().min(1),conversationId:W.string().min(1).optional(),content:W.string().min(1),metadata:W.record(W.unknown()).optional()}),result:W.object({conversationId:W.string().min(1),taskId:W.string().min(1).optional(),accepted:W.boolean()}),routing:"operator-to-node"}),Al=VD({method:"config.get",description:"\u8BFB\u53D6 worker \u5F53\u524D\u914D\u7F6E\uFF08\u542B version\uFF09\u3002",params:W.object({workerId:W.string().min(1)}),result:W.object({version:W.number().int().nonnegative(),config:W.unknown()}),routing:"operator-to-node"}),Kl=VD({method:"config.put",description:"\u66F4\u65B0 worker \u914D\u7F6E\uFF0C\u4F7F\u7528 ifMatch \u8FDB\u884C\u4E50\u89C2\u9501\u3002",params:W.object({workerId:W.string().min(1),ifMatch:W.number().int().nonnegative(),config:W.unknown()}),result:W.object({version:W.number().int().nonnegative(),appliedAt:W.number().int()}),routing:"operator-to-node"}),_l=VD({method:"token.rotate",description:"\u4E3A\u76EE\u6807 worker \u8F6E\u6362 deviceToken\uFF0C\u65E7 token \u7ACB\u5373\u5931\u6548\u3002",params:W.object({workerId:W.string().min(1)}),result:W.object({deviceToken:W.string().min(1)}),routing:"operator-to-gateway"}),Cl=VD({method:"logs.tail",description:"\u8BA2\u9605 worker \u7684\u65E5\u5FD7\u5C3E\u90E8\uFF08\u901A\u8FC7\u540E\u7EED logs.line \u4E8B\u4EF6\u63A8\u9001\uFF09\u3002",params:W.object({workerId:W.string().min(1),follow:W.boolean().optional(),lines:W.number().int().positive().max(1000).optional()}),result:W.object({subscribed:W.boolean()}),routing:"operator-to-node"}),xZ=W.enum(["allow","deny"]),yZ=W.object({workerId:W.string().min(1),taskId:W.string().min(1),toolCallId:W.string().min(1),toolName:W.string().min(1),params:W.record(W.unknown()),expiresAt:W.number().int()}),Ml=VD({method:"approval.list",description:"\u5217\u51FA\u76EE\u6807 worker \u5F53\u524D\u6240\u6709\u6302\u8D77\u7684 per-tool \u5BA1\u6279\u8BF7\u6C42\u3002",params:W.object({workerId:W.string().min(1)}),result:W.object({approvals:W.array(yZ)}),routing:"operator-to-node"}),Zl=VD({method:"approval.grant",description:"\u89E3\u9501\u67D0\u6761\u6302\u8D77\u7684 tool \u5BA1\u6279\uFF1Aallow \u8BA9 orchestrator \u7EE7\u7EED\u6267\u884C\uFF0Cdeny \u7ACB\u5373\u77ED\u8DEF\u3002",params:W.object({workerId:W.string().min(1),taskId:W.string().min(1),toolCallId:W.string().min(1),decision:xZ}),result:W.object({granted:W.boolean()}),routing:"operator-to-node"}),uZ=W.enum(["web","line","telegram","lark","whatsapp"]),mZ=W.string().regex(/^[\w.-]{1,128}$/),Rl=VD({method:"secrets.list",description:"\u5217\u51FA\u76EE\u6807 worker vault \u91CC\u7684 secret key\uFF0C\u4E0D\u8FD4\u56DE secret value\u3002",params:W.object({workerId:W.string().min(1)}),result:W.object({keys:W.array(W.string())}),routing:"operator-to-node"}),Ol=VD({method:"secrets.put",description:"\u5199\u5165\u6216\u8986\u76D6\u76EE\u6807 worker \u7684\u4E00\u4E2A secret value\u3002",params:W.object({workerId:W.string().min(1),key:mZ,value:W.string().min(1)}),result:W.object({ok:W.literal(!0)}),routing:"operator-to-node"}),El=VD({method:"secrets.delete",description:"\u5220\u9664\u76EE\u6807 worker \u7684\u4E00\u4E2A secret key\u3002",params:W.object({workerId:W.string().min(1),key:mZ}),result:W.object({ok:W.literal(!0)}),routing:"operator-to-node"}),jl=VD({method:"engines.list",description:"\u8BFB\u53D6\u76EE\u6807 worker \u7684 executor engine availability \u5217\u8868\u3002",params:W.object({workerId:W.string().min(1),refresh:W.boolean().optional()}),result:W.object({engines:W.array(W.unknown())}),routing:"operator-to-node"}),Nl=VD({method:"brain.test",description:"\u5728\u76EE\u6807 worker \u4E0A\u6267\u884C brain health probe\u3002",params:W.object({workerId:W.string().min(1)}),result:W.unknown(),routing:"operator-to-node"}),Pl=W.enum(["pending","approved","rejected","applied","failed"]),Ll=W.enum(["active","archived","removed"]),ql=W.enum(["public","internal","confidential","secret"]),zl=W.enum(["block","redact","raw"]),Il=VD({method:"brain.summary",description:"\u8BFB\u53D6\u76EE\u6807 worker \u7684 Brain summary aggregate\u3002",params:W.object({workerId:W.string().min(1)}),result:W.unknown(),routing:"operator-to-node"}),Sl=VD({method:"brain.admission.list",description:"\u5217\u51FA\u76EE\u6807 worker \u7684 Brain admission proposals\u3002",params:W.object({workerId:W.string().min(1),status:Pl.optional(),kind:W.string().min(1).optional(),scopeId:W.string().min(1).optional(),soulId:W.string().min(1).optional(),limit:W.number().int().min(1).max(500).optional(),showSensitive:W.boolean().optional()}),result:W.unknown(),routing:"operator-to-node"}),Tl=VD({method:"brain.admission.show",description:"\u8BFB\u53D6\u76EE\u6807 worker \u7684\u5355\u6761 Brain admission proposal\u3002",params:W.object({workerId:W.string().min(1),id:W.string().min(1),showSensitive:W.boolean().optional()}),result:W.unknown(),routing:"operator-to-node"}),cZ=W.object({workerId:W.string().min(1),id:W.string().min(1),decidedBy:W.string().min(1).max(200),reason:W.string().min(1).max(2000).optional()}),wl=VD({method:"brain.admission.approve",description:"\u6279\u51C6\u76EE\u6807 worker \u7684 pending Brain admission proposal\u3002",params:cZ,result:W.unknown(),routing:"operator-to-node"}),kl=VD({method:"brain.admission.reject",description:"\u62D2\u7EDD\u76EE\u6807 worker \u7684 pending Brain admission proposal\u3002",params:cZ,result:W.unknown(),routing:"operator-to-node"}),bl=VD({method:"brain.admission.apply",description:"\u6267\u884C\u76EE\u6807 worker \u7684 approved Brain admission proposal\u3002",params:W.object({workerId:W.string().min(1),id:W.string().min(1),decidedBy:W.string().min(1).max(200),commit:W.boolean().optional(),allowSecretBody:zl.optional()}),result:W.unknown(),routing:"operator-to-node"}),fl=VD({method:"brain.artifacts.list",description:"\u5217\u51FA\u76EE\u6807 worker \u7684 Brain artifact registry\u3002",params:W.object({workerId:W.string().min(1),scopeId:W.string().min(1).optional(),type:W.string().min(1).optional(),status:Ll.optional(),minSensitivity:ql.optional(),limit:W.number().int().min(1).max(500).optional(),showSensitive:W.boolean().optional()}),result:W.unknown(),routing:"operator-to-node"}),gl=VD({method:"brain.artifacts.show",description:"\u8BFB\u53D6\u76EE\u6807 worker \u7684\u5355\u6761 Brain artifact\u3002",params:W.object({workerId:W.string().min(1),id:W.string().min(1),showSensitive:W.boolean().optional()}),result:W.unknown(),routing:"operator-to-node"}),hl=VD({method:"executor.test",description:"\u5728\u76EE\u6807 worker \u4E0A\u6267\u884C executor health / tiny probe\u3002",params:W.object({workerId:W.string().min(1),probe:W.boolean().optional()}),result:W.unknown(),routing:"operator-to-node"}),vl=VD({method:"channel.test",description:"\u5728\u76EE\u6807 worker \u4E0A\u6267\u884C channel binding probe\u3002",params:W.object({workerId:W.string().min(1),channel:uZ,body:W.object({chatId:W.string().optional(),text:W.string().optional()}).optional()}),result:W.unknown(),routing:"operator-to-node"}),xl=VD({method:"orchestrator.tasks.list",description:"\u5217\u51FA\u76EE\u6807 worker \u7684\u6700\u8FD1 orchestrator task\u3002",params:W.object({workerId:W.string().min(1)}),result:W.object({tasks:W.array(W.unknown())}),routing:"operator-to-node"}),yl=VD({method:"orchestrator.tasks.create",description:"\u5728\u76EE\u6807 worker \u4E0A\u521B\u5EFA\u4E00\u4E2A orchestrator task\u3002",params:W.object({workerId:W.string().min(1),prompt:W.string().trim().min(1).max(8000)}),result:W.object({task:W.unknown()}),routing:"operator-to-node"}),ul=VD({method:"orchestrator.conversations.list",description:"\u5217\u51FA\u76EE\u6807 worker \u7684\u6700\u8FD1 conversations\u3002",params:W.object({workerId:W.string().min(1)}),result:W.object({conversations:W.array(W.unknown())}),routing:"operator-to-node"}),ml=VD({method:"orchestrator.messages.list",description:"\u5217\u51FA\u76EE\u6807 worker \u67D0 conversation \u7684 messages\u3002",params:W.object({workerId:W.string().min(1),conversationId:W.string().min(1)}),result:W.object({messages:W.array(W.unknown())}),routing:"operator-to-node"}),cl=VD({method:"system.presence",description:"operator \u5FC3\u8DF3 / \u8BE2\u95EE\u5F53\u524D online \u7684\u6240\u6709 node \u5217\u8868\u3002",params:W.object({}).optional().default({}),result:W.object({now:W.number().int(),online:W.array(i8)}),routing:"operator-to-gateway"}),SB=uZ,a$=W.object({id:W.string().min(1),expression:W.string().min(1),prompt:W.string().min(1),channel:SB,chatId:W.string().min(1),accountId:W.string().min(1),enabled:W.boolean(),lastRunAt:W.string().nullable(),nextRunAt:W.string().nullable(),createdAt:W.string(),updatedAt:W.string()}),pZ=W.object({expression:W.string().min(1),prompt:W.string().min(1),channel:SB,chatId:W.string().min(1),accountId:W.string().min(1).optional(),enabled:W.boolean().optional()}),dZ=W.object({expression:W.string().min(1).optional(),prompt:W.string().min(1).optional(),channel:SB.optional(),chatId:W.string().min(1).optional(),accountId:W.string().min(1).optional(),enabled:W.boolean().optional()}).refine((D)=>Object.keys(D).length>0,{message:"\u81F3\u5C11\u63D0\u4F9B\u4E00\u4E2A\u5F85\u66F4\u65B0\u5B57\u6BB5"}),pl=VD({method:"cron.list",description:"\u5217\u51FA\u76EE\u6807 worker \u4E0A\u6240\u6709 cron \u4EFB\u52A1\uFF08\u542B enabled / lastRunAt / nextRunAt\uFF09\u3002",params:W.object({workerId:W.string().min(1)}),result:W.object({jobs:W.array(a$)}),routing:"operator-to-node"}),dl=VD({method:"cron.add",description:"\u5728\u76EE\u6807 worker \u4E0A\u65B0\u589E\u4E00\u6761 cron \u4EFB\u52A1\uFF1B\u975E\u6CD5 expression \u76F4\u63A5\u5931\u8D25\u3002",params:W.object({workerId:W.string().min(1),job:pZ}),result:W.object({job:a$}),routing:"operator-to-node"}),ll=VD({method:"cron.remove",description:"\u5220\u9664\u76EE\u6807 worker \u4E0A\u7684\u67D0\u6761 cron \u4EFB\u52A1\u3002",params:W.object({workerId:W.string().min(1),jobId:W.string().min(1)}),result:W.object({removed:W.boolean()}),routing:"operator-to-node"}),il=VD({method:"cron.update",description:"\u5C40\u90E8\u66F4\u65B0\u76EE\u6807 worker \u4E0A\u67D0\u6761 cron \u4EFB\u52A1\uFF1B\u6539 expression \u6216 enabled \u4F1A\u91CD\u7B97 nextRunAt\u3002",params:W.object({workerId:W.string().min(1),jobId:W.string().min(1),patch:dZ}),result:W.object({job:a$}),routing:"operator-to-node"}),CD={"workers.list":Fl,"workers.info":Xl,"workers.pair":Jl,"workers.launch":Gl,"workers.stop":Yl,"workers.remove":Bl,"enroll.list":Hl,"enroll.approve":Wl,"enroll.reject":Ul,"audit.list":Ql,"chat.send":Vl,"config.get":Al,"config.put":Kl,"token.rotate":_l,"logs.tail":Cl,"system.presence":cl,"approval.list":Ml,"approval.grant":Zl,"secrets.list":Rl,"secrets.put":Ol,"secrets.delete":El,"engines.list":jl,"brain.test":Nl,"brain.summary":Il,"brain.admission.list":Sl,"brain.admission.show":Tl,"brain.admission.approve":wl,"brain.admission.reject":kl,"brain.admission.apply":bl,"brain.artifacts.list":fl,"brain.artifacts.show":gl,"executor.test":hl,"channel.test":vl,"orchestrator.tasks.list":xl,"orchestrator.tasks.create":yl,"orchestrator.conversations.list":ul,"orchestrator.messages.list":ml,"cron.list":pl,"cron.add":dl,"cron.remove":ll,"cron.update":il}});var Z0=R(()=>{SK();hZ();lZ();IB()});import{realpathSync as nl,statSync as oZ}from"fs";import{access as rl,mkdir as sl,stat as rFD,writeFile as al}from"fs/promises";import{homedir as ol}from"os";import e from"path";import j7 from"process";function nZ(D){return D.startsWith("~")?e.join(wB(),D.slice(1)):D}function wB(){return j7.env.HOME&&j7.env.HOME.length>0?j7.env.HOME:ol()}function rZ(D){try{return oZ(D).isDirectory()}catch{return!1}}function sZ(D){try{return oZ(D).isFile()}catch{return!1}}function aZ(D){try{return nl(D)}catch{return e.resolve(D)}}function el(D,$){return aZ(D)===aZ($)}function Di(D){let $=e.join(D,G8);return sZ(e.join($,"AGENT.md"))&&sZ(e.join($,"SOUL.md"))}function $i(D){return el(D,wB())&&!Di(D)}function kB(D){let $=e.resolve(D??j7.cwd());if(!$)return null;while(!0){let F=e.join($,G8);if(rZ(F)){if($i($))return null;return $}let X=e.join($,".git");if(rZ(X))return null;let J=e.dirname($);if(J===$)return null;$=J}}function mD(D={}){if(D.explicitHome&&D.explicitHome.length>0)return{scope:"explicit",home:e.resolve(nZ(D.explicitHome)),source:"cli-flag"};let $=j7.env[tl];if($&&$.length>0)return{scope:"explicit",home:e.resolve(nZ($)),source:"env"};if(!D.disableProjectDetect){let F=kB(D.cwd);if(F)return{scope:"project",home:e.join(F,G8,TB),projectRoot:F,source:"project-detect"}}return{scope:"user",home:e.resolve(wB(),G8),source:"user-default"}}function d2(){return mD().home}function X2(D){let $=mD();if($.scope==="project"&&$.projectRoot)return e.join($.projectRoot,G8);return e.join($.home,"workers",D)}function u0(D){let $=mD();if($.scope==="project"&&$.projectRoot)return e.join($.projectRoot,G8);return e.join(X2(D),"brain")}function Fi(D){return e.join(u0(D),"skills")}function Xi(D){return e.join(u0(D),"memories")}function N7(D){return e.join(u0(D),"MEMORY.md")}function t$(D){let $=mD();if($.scope==="project"&&$.projectRoot)return e.join($.home,"workspaces");return e.join(X2(D),"workspaces")}function tZ(D){return e.join(X2(D),"config.yaml")}function P7(D){return e.join(X2(D),"AGENT.md")}function L7(D){return e.join(X2(D),"SOUL.md")}function q7(D){return e.join(X2(D),"USER.md")}function e$(D){return e.join(X2(D),"ROLLUP.md")}function DF(D){return e.join(X2(D),"mcp.json")}function eZ(D){return e.join(D,G8,"scope.json")}async function F2(D,$){await sl(D,{recursive:!0,...$===void 0?{}:{mode:$}})}async function R0(D,$){try{await rl(D)}catch{await al(D,$,{encoding:"utf8"})}}async function bB(D){let $=mD();if($.scope==="project"){await F2($.home,448),await F2(t$(D));return}let F=X2(D);await F2(F),await F2(u0(D)),await F2(Fi(D)),await F2(Xi(D)),await F2(t$(D)),await R0(P7(D),`# Agent ${D}
1578
+ `;var MZ=()=>{};function $2(){return l$(U3)}function n$(D){return i$.find(($)=>$.module.manifest.id===D)}var V7,A7,K7,_7,C7,M7,Z7,R7,O7,i$,U3;var qB=R(()=>{w$();PB();LB();vM();yM();mM();pM();lM();nM();sM();oM();eM();$Z();XZ();GZ();BZ();WZ();QZ();AZ();_Z();MZ();V7=M2({agentMd:xM,brainSkillPacks:_2("developer"),expectedId:"developer",soulMd:uM,sourcePath:"packages/shared/src/soul/packs/developer/SOUL.md"}),A7=M2({agentMd:HZ,brainSkillPacks:_2("project-manager"),expectedId:"project-manager",soulMd:UZ,sourcePath:"packages/shared/src/soul/packs/project-manager/SOUL.md"}),K7=M2({agentMd:cM,brainSkillPacks:_2("devops-sre"),expectedId:"devops-sre",soulMd:dM,sourcePath:"packages/shared/src/soul/packs/devops-sre/SOUL.md"}),_7=M2({agentMd:JZ,brainSkillPacks:_2("product-designer"),expectedId:"product-designer",soulMd:YZ,sourcePath:"packages/shared/src/soul/packs/product-designer/SOUL.md"}),C7=M2({agentMd:VZ,brainSkillPacks:_2("qa-reviewer"),expectedId:"qa-reviewer",soulMd:KZ,sourcePath:"packages/shared/src/soul/packs/qa-reviewer/SOUL.md"}),M7=M2({agentMd:CZ,brainSkillPacks:_2("support-operator"),expectedId:"support-operator",soulMd:ZZ,sourcePath:"packages/shared/src/soul/packs/support-operator/SOUL.md"}),Z7=M2({agentMd:iM,brainSkillPacks:_2("finance-ops"),expectedId:"finance-ops",soulMd:rM,sourcePath:"packages/shared/src/soul/packs/finance-ops/SOUL.md"}),R7=M2({agentMd:DZ,brainSkillPacks:_2("hr-recruiting"),expectedId:"hr-recruiting",soulMd:FZ,sourcePath:"packages/shared/src/soul/packs/hr-recruiting/SOUL.md"}),O7=M2({agentMd:aM,brainSkillPacks:_2("general-assistant"),expectedId:"general-assistant",soulMd:tM,sourcePath:"packages/shared/src/soul/packs/general-assistant/SOUL.md"}),i$=[V7,A7,K7,_7,C7,M7,Z7,R7,O7],U3=i$.map((D)=>D.module)});var RZ,OZ,EZ,jZ,NZ,PZ,LZ,qZ,zZ;var IZ=R(()=>{qB();RZ=V7.module,OZ=K7.module,EZ=Z7.module,jZ=O7.module,NZ=R7.module,PZ=_7.module,LZ=A7.module,qZ=C7.module,zZ=M7.module});var SZ=R(()=>{p$();IZ();PB();qB();LB()});var ZD=R(()=>{w$();w$();I$();PM();qM();GB();SM();kM();fM();SZ()});var l8,zB;var IB=R(()=>{jD();l8={OPERATOR:"operator",NODE:"node"},zB=W.union([W.literal(l8.OPERATOR),W.literal(l8.NODE)])});function Q1(D){let $;try{$=JSON.parse(D)}catch(X){return{ok:!1,error:`invalid_json:${X instanceof Error?X.message:String(X)}`}}let F=gZ.safeParse($);if(!F.success)return{ok:!1,error:`schema:${F.error.message}`};return{ok:!0,frame:F.data}}function dD(D){return JSON.stringify(D)}var TZ,wZ,kZ,Dl,$l,bZ,fZ,gZ;var hZ=R(()=>{ZD();jD();IB();TZ=W.object({type:W.literal("connect"),role:zB,agentId:W.string().min(1),deviceId:W.string().min(1),auth:W.object({token:W.string()}),meta:W.record(W.string()).optional(),enroll:W.object({apiToken:W.string().regex(L1,"apiToken must match wtk_<base64url>"),displayName:W.string().min(1).max(80).optional(),mode:W.enum(["join-token","otp"]).optional(),joinToken:W.string().min(1).optional()}).optional().refine((D)=>D===void 0||((D.mode??"join-token")==="otp"?D.joinToken===void 0:!!D.joinToken),{message:"mode=join-token requires joinToken; mode=otp must omit joinToken"})}),wZ=W.object({type:W.literal("request"),id:W.string().min(1),method:W.string().min(1),params:W.unknown().optional()}),kZ=W.object({code:W.string().min(1),message:W.string(),details:W.unknown().optional()}),Dl=W.object({type:W.literal("response"),id:W.string().min(1),ok:W.literal(!0),result:W.unknown()}),$l=W.object({type:W.literal("response"),id:W.string().min(1),ok:W.literal(!1),error:kZ}),bZ=W.discriminatedUnion("ok",[Dl,$l]),fZ=W.object({type:W.literal("event"),name:W.string().min(1),payload:W.unknown(),ts:W.number().int()}),gZ=W.union([TZ,wZ,bZ,fZ])});function VD(D){return D}function o$(D){return Object.prototype.hasOwnProperty.call(CD,D)}function E7(D){if(!o$(D))return;return CD[D]}var i8,Fl,Xl,vZ,Q3,Jl,Gl,Yl,Bl,r$,Hl,Wl,Ul,s$,Ql,Vl,Al,Kl,_l,Cl,xZ,yZ,Ml,Zl,uZ,mZ,Rl,Ol,El,jl,Nl,Pl,Ll,ql,zl,Il,Sl,Tl,cZ,wl,kl,bl,fl,gl,hl,vl,xl,yl,ul,ml,cl,SB,a$,pZ,dZ,pl,dl,ll,il,CD;var lZ=R(()=>{jD();i8=W.object({workerId:W.string().min(1),displayName:W.string().optional(),online:W.boolean(),deviceId:W.string().min(1).optional(),baseUrl:W.string().optional(),lastSeenAt:W.number().int().nullable().optional()}),Fl=VD({method:"workers.list",description:"\u5217\u51FA fleet \u5185\u6240\u6709\u5DF2\u6CE8\u518C worker\uFF08\u542B online \u72B6\u6001\uFF09\u3002",params:W.object({}).optional().default({}),result:W.object({workers:W.array(i8)}),routing:"operator-to-gateway"}),Xl=VD({method:"workers.info",description:"\u8BFB\u53D6\u67D0\u4E2A worker \u7684\u8FD0\u884C\u65F6\u5FEB\u7167\uFF08/worker/info \u7B49\u4EF7\u7269\uFF09\u3002",params:W.object({workerId:W.string().min(1)}),result:W.unknown(),routing:"operator-to-node"}),vZ=W.object({workerBaseUrl:W.string().min(1),bootstrapToken:W.string().min(1),displayName:W.string().optional()}),Q3=W.object({workerId:W.string().min(1),deviceToken:W.string().min(1)}),Jl=VD({method:"workers.pair",description:"\u628A\u4E00\u4E2A\u5DF2\u542F\u52A8\u7684 worker \u901A\u8FC7 bootstrap token \u6CE8\u518C\u5230 fleet\u3002",params:vZ,result:Q3,routing:"operator-to-gateway"}),Gl=VD({method:"workers.launch",description:"\u7531 gateway/supervisor \u672C\u5730\u62C9\u8D77\u4E00\u4E2A worker \u5BB9\u5668\u5E76\u5B8C\u6210\u6CE8\u518C\u3002",params:W.object({displayName:W.string().optional(),image:W.string().optional(),env:W.record(W.string()).optional()}),result:Q3,routing:"operator-to-gateway"}),Yl=VD({method:"workers.stop",description:"\u5411\u76EE\u6807 worker \u4E0B\u53D1\u505C\u6B62\u6307\u4EE4\uFF08\u4E0D\u4ECE fleet \u91CC\u5220\u9664\uFF09\u3002",params:W.object({workerId:W.string().min(1)}),result:W.object({stopped:W.boolean()}),routing:"operator-to-node"}),Bl=VD({method:"workers.remove",description:"\u628A worker \u4ECE fleet \u4E2D\u6458\u9664\uFF08\u5B58\u91CF deviceToken \u4F5C\u5E9F\uFF09\u3002",params:W.object({workerId:W.string().min(1)}),result:W.object({removed:W.boolean()}),routing:"operator-to-gateway"}),r$=W.object({otp:W.string().min(1),workerId:W.string().min(1),displayName:W.string().min(1).optional(),submittedAt:W.number().int(),expiresAt:W.number().int()}),Hl=VD({method:"enroll.list",description:"\u5217\u51FA gateway \u5F53\u524D\u6240\u6709 pending OTP enrollment \u8BF7\u6C42\u3002",params:W.object({}).optional().default({}),result:W.object({pending:W.array(r$)}),routing:"operator-to-gateway"}),Wl=VD({method:"enroll.approve",description:"\u6279\u51C6\u67D0\u6761 pending OTP enrollment\uFF1Afleet.db \u843D row + \u63A8 enrollment.approved \u4E8B\u4EF6\u7ED9\u7B49\u5F85\u4E2D\u7684 worker\u3002",params:W.object({otp:W.string().min(1)}),result:W.object({workerId:W.string().min(1),deviceToken:W.string().min(1)}),routing:"operator-to-gateway"}),Ul=VD({method:"enroll.reject",description:"\u62D2\u7EDD\u67D0\u6761 pending OTP\uFF1Aclose 4403 \u7ED9 worker\uFF0Caudit gateway.enrollment.rejected\u3002",params:W.object({otp:W.string().min(1)}),result:W.object({rejected:W.boolean()}),routing:"operator-to-gateway"}),s$=W.object({id:W.number().int().positive(),at:W.string().min(1),actor:W.string().min(1),action:W.string().min(1),workerId:W.string().min(1).nullable(),detail:W.record(W.unknown()).nullable()}),Ql=VD({method:"audit.list",description:"fleet.db audit_events \u6D4F\u89C8\uFF1A\u6309 id \u5012\u5E8F\u5206\u9875\uFF0C\u53EF\u6309 action \u524D\u7F00 / workerId \u8FC7\u6EE4\u3002",params:W.object({limit:W.number().int().positive().max(200).optional(),before:W.number().int().positive().optional(),action:W.string().min(1).optional(),workerId:W.string().min(1).optional()}).optional().default({}),result:W.object({events:W.array(s$),hasMore:W.boolean()}),routing:"operator-to-gateway"}),Vl=VD({method:"chat.send",description:"\u5411\u76EE\u6807 worker \u7684\u67D0\u4F1A\u8BDD\u8FFD\u52A0\u4E00\u6761\u7528\u6237\u6D88\u606F\u5E76\u89E6\u53D1\u4E00\u6B21 run\u3002",params:W.object({workerId:W.string().min(1),conversationId:W.string().min(1).optional(),content:W.string().min(1),metadata:W.record(W.unknown()).optional()}),result:W.object({conversationId:W.string().min(1),taskId:W.string().min(1).optional(),accepted:W.boolean()}),routing:"operator-to-node"}),Al=VD({method:"config.get",description:"\u8BFB\u53D6 worker \u5F53\u524D\u914D\u7F6E\uFF08\u542B version\uFF09\u3002",params:W.object({workerId:W.string().min(1)}),result:W.object({version:W.number().int().nonnegative(),config:W.unknown()}),routing:"operator-to-node"}),Kl=VD({method:"config.put",description:"\u66F4\u65B0 worker \u914D\u7F6E\uFF0C\u4F7F\u7528 ifMatch \u8FDB\u884C\u4E50\u89C2\u9501\u3002",params:W.object({workerId:W.string().min(1),ifMatch:W.number().int().nonnegative(),config:W.unknown()}),result:W.object({version:W.number().int().nonnegative(),appliedAt:W.number().int()}),routing:"operator-to-node"}),_l=VD({method:"token.rotate",description:"\u4E3A\u76EE\u6807 worker \u8F6E\u6362 deviceToken\uFF0C\u65E7 token \u7ACB\u5373\u5931\u6548\u3002",params:W.object({workerId:W.string().min(1)}),result:W.object({deviceToken:W.string().min(1)}),routing:"operator-to-gateway"}),Cl=VD({method:"logs.tail",description:"\u8BA2\u9605 worker \u7684\u65E5\u5FD7\u5C3E\u90E8\uFF08\u901A\u8FC7\u540E\u7EED logs.line \u4E8B\u4EF6\u63A8\u9001\uFF09\u3002",params:W.object({workerId:W.string().min(1),follow:W.boolean().optional(),lines:W.number().int().positive().max(1000).optional()}),result:W.object({subscribed:W.boolean()}),routing:"operator-to-node"}),xZ=W.enum(["allow","deny"]),yZ=W.object({workerId:W.string().min(1),taskId:W.string().min(1),toolCallId:W.string().min(1),toolName:W.string().min(1),params:W.record(W.unknown()),expiresAt:W.number().int()}),Ml=VD({method:"approval.list",description:"\u5217\u51FA\u76EE\u6807 worker \u5F53\u524D\u6240\u6709\u6302\u8D77\u7684 per-tool \u5BA1\u6279\u8BF7\u6C42\u3002",params:W.object({workerId:W.string().min(1)}),result:W.object({approvals:W.array(yZ)}),routing:"operator-to-node"}),Zl=VD({method:"approval.grant",description:"\u89E3\u9501\u67D0\u6761\u6302\u8D77\u7684 tool \u5BA1\u6279\uFF1Aallow \u8BA9 orchestrator \u7EE7\u7EED\u6267\u884C\uFF0Cdeny \u7ACB\u5373\u77ED\u8DEF\u3002",params:W.object({workerId:W.string().min(1),taskId:W.string().min(1),toolCallId:W.string().min(1),decision:xZ}),result:W.object({granted:W.boolean()}),routing:"operator-to-node"}),uZ=W.enum(["web","line","telegram","lark","whatsapp"]),mZ=W.string().regex(/^[\w.-]{1,128}$/),Rl=VD({method:"secrets.list",description:"\u5217\u51FA\u76EE\u6807 worker vault \u91CC\u7684 secret key\uFF0C\u4E0D\u8FD4\u56DE secret value\u3002",params:W.object({workerId:W.string().min(1)}),result:W.object({keys:W.array(W.string())}),routing:"operator-to-node"}),Ol=VD({method:"secrets.put",description:"\u5199\u5165\u6216\u8986\u76D6\u76EE\u6807 worker \u7684\u4E00\u4E2A secret value\u3002",params:W.object({workerId:W.string().min(1),key:mZ,value:W.string().min(1)}),result:W.object({ok:W.literal(!0)}),routing:"operator-to-node"}),El=VD({method:"secrets.delete",description:"\u5220\u9664\u76EE\u6807 worker \u7684\u4E00\u4E2A secret key\u3002",params:W.object({workerId:W.string().min(1),key:mZ}),result:W.object({ok:W.literal(!0)}),routing:"operator-to-node"}),jl=VD({method:"engines.list",description:"\u8BFB\u53D6\u76EE\u6807 worker \u7684 executor engine availability \u5217\u8868\u3002",params:W.object({workerId:W.string().min(1),refresh:W.boolean().optional()}),result:W.object({engines:W.array(W.unknown())}),routing:"operator-to-node"}),Nl=VD({method:"brain.test",description:"\u5728\u76EE\u6807 worker \u4E0A\u6267\u884C brain health probe\u3002",params:W.object({workerId:W.string().min(1)}),result:W.unknown(),routing:"operator-to-node"}),Pl=W.enum(["pending","approved","rejected","applied","failed"]),Ll=W.enum(["active","archived","removed"]),ql=W.enum(["public","internal","confidential","secret"]),zl=W.enum(["block","redact","raw"]),Il=VD({method:"brain.summary",description:"\u8BFB\u53D6\u76EE\u6807 worker \u7684 Brain summary aggregate\u3002",params:W.object({workerId:W.string().min(1)}),result:W.unknown(),routing:"operator-to-node"}),Sl=VD({method:"brain.admission.list",description:"\u5217\u51FA\u76EE\u6807 worker \u7684 Brain admission proposals\u3002",params:W.object({workerId:W.string().min(1),status:Pl.optional(),kind:W.string().min(1).optional(),scopeId:W.string().min(1).optional(),soulId:W.string().min(1).optional(),limit:W.number().int().min(1).max(500).optional(),showSensitive:W.boolean().optional()}),result:W.unknown(),routing:"operator-to-node"}),Tl=VD({method:"brain.admission.show",description:"\u8BFB\u53D6\u76EE\u6807 worker \u7684\u5355\u6761 Brain admission proposal\u3002",params:W.object({workerId:W.string().min(1),id:W.string().min(1),showSensitive:W.boolean().optional()}),result:W.unknown(),routing:"operator-to-node"}),cZ=W.object({workerId:W.string().min(1),id:W.string().min(1),decidedBy:W.string().min(1).max(200),reason:W.string().min(1).max(2000).optional()}),wl=VD({method:"brain.admission.approve",description:"\u6279\u51C6\u76EE\u6807 worker \u7684 pending Brain admission proposal\u3002",params:cZ,result:W.unknown(),routing:"operator-to-node"}),kl=VD({method:"brain.admission.reject",description:"\u62D2\u7EDD\u76EE\u6807 worker \u7684 pending Brain admission proposal\u3002",params:cZ,result:W.unknown(),routing:"operator-to-node"}),bl=VD({method:"brain.admission.apply",description:"\u6267\u884C\u76EE\u6807 worker \u7684 approved Brain admission proposal\u3002",params:W.object({workerId:W.string().min(1),id:W.string().min(1),decidedBy:W.string().min(1).max(200),commit:W.boolean().optional(),allowSecretBody:zl.optional()}),result:W.unknown(),routing:"operator-to-node"}),fl=VD({method:"brain.artifacts.list",description:"\u5217\u51FA\u76EE\u6807 worker \u7684 Brain artifact registry\u3002",params:W.object({workerId:W.string().min(1),scopeId:W.string().min(1).optional(),type:W.string().min(1).optional(),status:Ll.optional(),minSensitivity:ql.optional(),limit:W.number().int().min(1).max(500).optional(),showSensitive:W.boolean().optional()}),result:W.unknown(),routing:"operator-to-node"}),gl=VD({method:"brain.artifacts.show",description:"\u8BFB\u53D6\u76EE\u6807 worker \u7684\u5355\u6761 Brain artifact\u3002",params:W.object({workerId:W.string().min(1),id:W.string().min(1),showSensitive:W.boolean().optional()}),result:W.unknown(),routing:"operator-to-node"}),hl=VD({method:"executor.test",description:"\u5728\u76EE\u6807 worker \u4E0A\u6267\u884C executor health / tiny probe\u3002",params:W.object({workerId:W.string().min(1),probe:W.boolean().optional()}),result:W.unknown(),routing:"operator-to-node"}),vl=VD({method:"channel.test",description:"\u5728\u76EE\u6807 worker \u4E0A\u6267\u884C channel binding probe\u3002",params:W.object({workerId:W.string().min(1),channel:uZ,body:W.object({chatId:W.string().optional(),text:W.string().optional()}).optional()}),result:W.unknown(),routing:"operator-to-node"}),xl=VD({method:"orchestrator.tasks.list",description:"\u5217\u51FA\u76EE\u6807 worker \u7684\u6700\u8FD1 orchestrator task\u3002",params:W.object({workerId:W.string().min(1)}),result:W.object({tasks:W.array(W.unknown())}),routing:"operator-to-node"}),yl=VD({method:"orchestrator.tasks.create",description:"\u5728\u76EE\u6807 worker \u4E0A\u521B\u5EFA\u4E00\u4E2A orchestrator task\u3002",params:W.object({workerId:W.string().min(1),prompt:W.string().trim().min(1).max(8000)}),result:W.object({task:W.unknown()}),routing:"operator-to-node"}),ul=VD({method:"orchestrator.conversations.list",description:"\u5217\u51FA\u76EE\u6807 worker \u7684\u6700\u8FD1 conversations\u3002",params:W.object({workerId:W.string().min(1)}),result:W.object({conversations:W.array(W.unknown())}),routing:"operator-to-node"}),ml=VD({method:"orchestrator.messages.list",description:"\u5217\u51FA\u76EE\u6807 worker \u67D0 conversation \u7684 messages\u3002",params:W.object({workerId:W.string().min(1),conversationId:W.string().min(1)}),result:W.object({messages:W.array(W.unknown())}),routing:"operator-to-node"}),cl=VD({method:"system.presence",description:"operator \u5FC3\u8DF3 / \u8BE2\u95EE\u5F53\u524D online \u7684\u6240\u6709 node \u5217\u8868\u3002",params:W.object({}).optional().default({}),result:W.object({now:W.number().int(),online:W.array(i8)}),routing:"operator-to-gateway"}),SB=uZ,a$=W.object({id:W.string().min(1),expression:W.string().min(1),prompt:W.string().min(1),channel:SB,chatId:W.string().min(1),accountId:W.string().min(1),enabled:W.boolean(),lastRunAt:W.string().nullable(),nextRunAt:W.string().nullable(),createdAt:W.string(),updatedAt:W.string()}),pZ=W.object({expression:W.string().min(1),prompt:W.string().min(1),channel:SB,chatId:W.string().min(1),accountId:W.string().min(1).optional(),enabled:W.boolean().optional()}),dZ=W.object({expression:W.string().min(1).optional(),prompt:W.string().min(1).optional(),channel:SB.optional(),chatId:W.string().min(1).optional(),accountId:W.string().min(1).optional(),enabled:W.boolean().optional()}).refine((D)=>Object.keys(D).length>0,{message:"\u81F3\u5C11\u63D0\u4F9B\u4E00\u4E2A\u5F85\u66F4\u65B0\u5B57\u6BB5"}),pl=VD({method:"cron.list",description:"\u5217\u51FA\u76EE\u6807 worker \u4E0A\u6240\u6709 cron \u4EFB\u52A1\uFF08\u542B enabled / lastRunAt / nextRunAt\uFF09\u3002",params:W.object({workerId:W.string().min(1)}),result:W.object({jobs:W.array(a$)}),routing:"operator-to-node"}),dl=VD({method:"cron.add",description:"\u5728\u76EE\u6807 worker \u4E0A\u65B0\u589E\u4E00\u6761 cron \u4EFB\u52A1\uFF1B\u975E\u6CD5 expression \u76F4\u63A5\u5931\u8D25\u3002",params:W.object({workerId:W.string().min(1),job:pZ}),result:W.object({job:a$}),routing:"operator-to-node"}),ll=VD({method:"cron.remove",description:"\u5220\u9664\u76EE\u6807 worker \u4E0A\u7684\u67D0\u6761 cron \u4EFB\u52A1\u3002",params:W.object({workerId:W.string().min(1),jobId:W.string().min(1)}),result:W.object({removed:W.boolean()}),routing:"operator-to-node"}),il=VD({method:"cron.update",description:"\u5C40\u90E8\u66F4\u65B0\u76EE\u6807 worker \u4E0A\u67D0\u6761 cron \u4EFB\u52A1\uFF1B\u6539 expression \u6216 enabled \u4F1A\u91CD\u7B97 nextRunAt\u3002",params:W.object({workerId:W.string().min(1),jobId:W.string().min(1),patch:dZ}),result:W.object({job:a$}),routing:"operator-to-node"}),CD={"workers.list":Fl,"workers.info":Xl,"workers.pair":Jl,"workers.launch":Gl,"workers.stop":Yl,"workers.remove":Bl,"enroll.list":Hl,"enroll.approve":Wl,"enroll.reject":Ul,"audit.list":Ql,"chat.send":Vl,"config.get":Al,"config.put":Kl,"token.rotate":_l,"logs.tail":Cl,"system.presence":cl,"approval.list":Ml,"approval.grant":Zl,"secrets.list":Rl,"secrets.put":Ol,"secrets.delete":El,"engines.list":jl,"brain.test":Nl,"brain.summary":Il,"brain.admission.list":Sl,"brain.admission.show":Tl,"brain.admission.approve":wl,"brain.admission.reject":kl,"brain.admission.apply":bl,"brain.artifacts.list":fl,"brain.artifacts.show":gl,"executor.test":hl,"channel.test":vl,"orchestrator.tasks.list":xl,"orchestrator.tasks.create":yl,"orchestrator.conversations.list":ul,"orchestrator.messages.list":ml,"cron.list":pl,"cron.add":dl,"cron.remove":ll,"cron.update":il}});var Z0=R(()=>{SK();hZ();lZ();IB()});import{realpathSync as nl,statSync as oZ}from"fs";import{access as rl,mkdir as sl,stat as rFD,writeFile as al}from"fs/promises";import{homedir as ol}from"os";import e from"path";import j7 from"process";function nZ(D){return D.startsWith("~")?e.join(wB(),D.slice(1)):D}function wB(){return j7.env.HOME&&j7.env.HOME.length>0?j7.env.HOME:ol()}function rZ(D){try{return oZ(D).isDirectory()}catch{return!1}}function sZ(D){try{return oZ(D).isFile()}catch{return!1}}function aZ(D){try{return nl(D)}catch{return e.resolve(D)}}function el(D,$){return aZ(D)===aZ($)}function Di(D){let $=e.join(D,G8);return sZ(e.join($,"AGENT.md"))&&sZ(e.join($,"SOUL.md"))}function $i(D){return el(D,wB())&&!Di(D)}function kB(D){let $=e.resolve(D??j7.cwd());if(!$)return null;while(!0){let F=e.join($,G8);if(rZ(F)){if($i($))return null;return $}let X=e.join($,".git");if(rZ(X))return null;let J=e.dirname($);if(J===$)return null;$=J}}function mD(D={}){if(D.explicitHome&&D.explicitHome.length>0)return{scope:"explicit",home:e.resolve(nZ(D.explicitHome)),source:"cli-flag"};let $=j7.env[tl];if($&&$.length>0)return{scope:"explicit",home:e.resolve(nZ($)),source:"env"};if(!D.disableProjectDetect){let F=kB(D.cwd);if(F)return{scope:"project",home:e.join(F,G8,TB),projectRoot:F,source:"project-detect"}}return{scope:"user",home:e.resolve(wB(),G8),source:"user-default"}}function d2(){return mD().home}function X2(D){let $=mD();if($.scope==="project"&&$.projectRoot)return e.join($.projectRoot,G8);return e.join($.home,"workers",D)}function u0(D){let $=mD();if($.scope==="project"&&$.projectRoot)return e.join($.projectRoot,G8);return e.join(X2(D),"brain")}function Fi(D){return e.join(u0(D),"skills")}function Xi(D){return e.join(u0(D),"memories")}function N7(D){return e.join(u0(D),"MEMORY.md")}function t$(D){let $=mD();if($.scope==="project"&&$.projectRoot)return e.join($.home,"workspaces");return e.join(X2(D),"workspaces")}function tZ(D){return e.join(X2(D),"config.yaml")}function P7(D){return e.join(X2(D),"AGENT.md")}function L7(D){return e.join(X2(D),"SOUL.md")}function q7(D){return e.join(X2(D),"USER.md")}function e$(D){return e.join(X2(D),"ROLLUP.md")}function DF(D){return e.join(X2(D),"mcp.json")}function eZ(D){return e.join(D,G8,"scope.json")}async function F2(D,$){await sl(D,{recursive:!0,...$===void 0?{}:{mode:$}})}async function R0(D,$){try{await rl(D)}catch{await al(D,$,{encoding:"utf8"})}}async function bB(D){let $=mD();if($.scope==="project"){await F2($.home,448),await F2(t$(D));return}let F=X2(D);await F2(F),await F2(u0(D)),await F2(Fi(D)),await F2(Xi(D)),await F2(t$(D)),await R0(P7(D),`# Agent ${D}
1579
1579
 
1580
1580
  > Draft persona document. Describe the role, responsibilities, and tone that this agent should adopt. The orchestrator may inject this file into the system prompt.
1581
1581
  `),await R0(L7(D),`# Voice of ${D}
@@ -1611,18 +1611,18 @@ retentionDefaults: []
1611
1611
  `,capabilityPacksJson:`${JSON.stringify({schemaVersion:1,status:"draft",packs:[]},null,2)}
1612
1612
  `,executorCapabilitiesJson:`${JSON.stringify({schemaVersion:1,engines:{}},null,2)}
1613
1613
  `}});var vB={};z8(vB,{saveOperatorState:()=>hB,resolveOperatorStatePath:()=>gB,resolveGatewayPidPath:()=>XF,resolveGatewayLogPath:()=>JF,patchOperatorState:()=>n8,normalizeGatewayWsUrl:()=>z7,loadOperatorState:()=>GF,gatewayWsUrlForLocalPort:()=>FF,DEFAULT_GATEWAY_URL:()=>DR});import{chmod as Yi,mkdir as Bi,readFile as Hi,rename as Wi,writeFile as Ui}from"fs/promises";import $F from"path";function FF(D){return`ws://localhost:${D}/ws`}function z7(D){try{let $=new URL(D);if(($.protocol==="ws:"||$.protocol==="wss:")&&($.pathname===""||$.pathname==="/"))return $.pathname="/ws",$.toString()}catch{}return D}function gB(){return $F.join(d2(),"aiworker.json")}function XF(){return $F.join(d2(),"aiworker-gateway.pid")}function JF(){return $F.join(d2(),"aiworker-gateway.log")}function Qi(){return`op-${crypto.randomUUID()}`}function Vi(){return{gatewayUrl:DR,deviceId:Qi(),deviceToken:""}}function Ai(D){if(D===null||typeof D!=="object")return!1;let $=D;return typeof $.gatewayUrl==="string"&&typeof $.deviceId==="string"&&typeof $.deviceToken==="string"&&($.defaultWorkerId===void 0||typeof $.defaultWorkerId==="string")}async function GF(){let D=gB(),$;try{$=await Hi(D,"utf8")}catch(X){if(X.code==="ENOENT")return Vi();throw X}let F;try{F=JSON.parse($)}catch(X){let J=X instanceof Error?X.message:String(X);throw Error(`aiworker.json \u89E3\u6790\u5931\u8D25 (${D}): ${J}`)}if(!Ai(F))throw Error(`aiworker.json \u7ED3\u6784\u4E0D\u7B26\u5408 OperatorState (${D})`);return{...F,gatewayUrl:z7(F.gatewayUrl)}}async function hB(D){let $=gB();await Bi($F.dirname($),{recursive:!0});let F=`${$}.tmp`;await Ui(F,`${JSON.stringify(D,null,2)}
1614
- `,{encoding:"utf8",mode:384}),await Wi(F,$);try{await Yi($,384)}catch{}}async function n8(D){let F={...await GF()};for(let[X,J]of Object.entries(D)){if(J===void 0)continue;let G=X==="gatewayUrl"&&typeof J==="string"?z7(J):J;F[X]=G}return await hB(F),F}var DR="ws://localhost:9218/ws";var r8=R(()=>{$0()});function f(D,$){if(!D||typeof D!=="object")return!1;if(D instanceof $)return!0;if(!Object.prototype.hasOwnProperty.call($,z))throw Error(`Class "${$.name??"<unknown>"}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let F=Object.getPrototypeOf(D).constructor;if(F)while(F){if(z in F&&F[z]===$[z])return!0;F=Object.getPrototypeOf(F)}return!1}var z;var JD=R(()=>{z=Symbol.for("drizzle:entityKind")});var jR,xB,yB;var YF=R(()=>{JD();jR=class jR{static[z]="ConsoleLogWriter";write(D){console.log(D)}};xB=class xB{static[z]="DefaultLogger";writer;constructor(D){this.writer=D?.writer??new jR}logQuery(D,$){let F=$.map((J)=>{try{return JSON.stringify(J)}catch{return String(J)}}),X=F.length?` -- params: [${F.join(", ")}]`:"";this.writer.write(`Query: ${D}${X}`)}};yB=class yB{static[z]="NoopLogger";logQuery(){}}});var J2;var I7=R(()=>{J2=Symbol.for("drizzle:Name")});function Y8(D){return D[J2]}function s8(D){return`${D[BF]??"public"}.${D[J2]}`}var BF,HF,NR,uB,mB,S7,PR,_i,p;var k0=R(()=>{JD();I7();BF=Symbol.for("drizzle:Schema"),HF=Symbol.for("drizzle:Columns"),NR=Symbol.for("drizzle:ExtraConfigColumns"),uB=Symbol.for("drizzle:OriginalName"),mB=Symbol.for("drizzle:BaseName"),S7=Symbol.for("drizzle:IsAlias"),PR=Symbol.for("drizzle:ExtraConfigBuilder"),_i=Symbol.for("drizzle:IsDrizzleTable");p=class p{static[z]="Table";static Symbol={Name:J2,Schema:BF,OriginalName:uB,Columns:HF,ExtraConfigColumns:NR,BaseName:mB,IsAlias:S7,ExtraConfigBuilder:PR};[J2];[uB];[BF];[HF];[NR];[mB];[S7]=!1;[_i]=!0;[PR]=void 0;constructor(D,$,F){this[J2]=this[uB]=D,this[BF]=$,this[mB]=F}}});var qD;var i2=R(()=>{JD();qD=class qD{constructor(D,$){this.table=D,this.config=$,this.name=$.name,this.keyAsName=$.keyAsName,this.notNull=$.notNull,this.default=$.default,this.defaultFn=$.defaultFn,this.onUpdateFn=$.onUpdateFn,this.hasDefault=$.hasDefault,this.primary=$.primaryKey,this.isUnique=$.isUnique,this.uniqueName=$.uniqueName,this.uniqueType=$.uniqueType,this.dataType=$.dataType,this.columnType=$.columnType,this.generated=$.generated,this.generatedIdentity=$.generatedIdentity}static[z]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(D){return D}mapToDriverValue(D){return D}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}});var cB;var pB=R(()=>{JD();cB=class cB{static[z]="ColumnBuilder";config;constructor(D,$,F){this.config={name:D,keyAsName:D==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:$,columnType:F,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(D){return this.config.default=D,this.config.hasDefault=!0,this}$defaultFn(D){return this.config.defaultFn=D,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(D){return this.config.onUpdateFn=D,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(D){if(this.config.name!=="")return;this.config.name=D}}});function LR(D,...$){return D(...$)}var qR=()=>{};function zR(D,$){return`${D[J2]}_${$.join("_")}_unique`}var IR=R(()=>{I7()});var T7,Ci;var SR=R(()=>{i2();JD();IR();T7=class T7 extends qD{constructor(D,$){if(!$.uniqueName)$.uniqueName=zR(D,[$.name]);super(D,$);this.table=D}static[z]="PgColumn"};Ci=class Ci extends T7{static[z]="ExtraConfigColumn";getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??"asc",nulls:this.config.nulls??"last",opClass:this.config.opClass};defaultConfig={order:"asc",nulls:"last",opClass:void 0};asc(){return this.indexConfig.order="asc",this}desc(){return this.indexConfig.order="desc",this}nullsFirst(){return this.indexConfig.nulls="first",this}nullsLast(){return this.indexConfig.nulls="last",this}op(D){return this.indexConfig.opClass=D,this}}});function wR(D){return!!D&&typeof D==="function"&&TR in D&&D[TR]===!0}var Mi,TR,Zi;var kR=R(()=>{JD();SR();Mi=class Mi extends T7{static[z]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(D,$){super(D,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}};TR=Symbol.for("drizzle:isPgEnum");Zi=class Zi extends T7{static[z]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(D,$){super(D,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}}});var W0,w7;var n2=R(()=>{JD();W0=class W0{static[z]="Subquery";constructor(D,$,F,X=!1,J=[]){this._={brand:"Subquery",sql:D,selectedFields:$,alias:F,isWith:X,usedTables:J}}};w7=class w7 extends W0{static[z]="WithSubquery"}});var bR="0.44.7";var fR=()=>{};var dB,lB,gR;var hR=R(()=>{qR();fR();gR={startActiveSpan(D,$){if(!dB)return $();if(!lB)lB=dB.trace.getTracer("drizzle-orm",bR);return LR((F,X)=>X.startActiveSpan(D,(J)=>{try{return $(J)}catch(G){throw J.setStatus({code:F.SpanStatusCode.ERROR,message:G instanceof Error?G.message:"Unknown error"}),G}finally{J.end()}}),dB,lB)}}});var tD;var z1=R(()=>{tD=Symbol.for("drizzle:ViewBaseConfig")});function iB(D){return D!==null&&D!==void 0&&typeof D.getSQL==="function"}function Ri(D){let $={sql:"",params:[]};for(let F of D)if($.sql+=F.sql,$.params.push(...F.params),F.typings?.length){if(!$.typings)$.typings=[];$.typings.push(...F.typings)}return $}function vR(D){return typeof D==="object"&&D!==null&&"mapToDriverValue"in D&&typeof D.mapToDriverValue==="function"}function E(D,...$){let F=[];if($.length>0||D.length>0&&D[0]!=="")F.push(new C0(D[0]));for(let[X,J]of $.entries())F.push(J,new C0(D[X+1]));return new r(F)}function k7(D,$){return D.map((F)=>{if(f(F,B8)){if(!(F.name in $))throw Error(`No value for placeholder "${F.name}" was provided`);return $[F.name]}if(f(F,G2)&&f(F.value,B8)){if(!(F.value.name in $))throw Error(`No value for placeholder "${F.value.name}" was provided`);return F.encoder.mapToDriverValue($[F.value.name])}return F})}var C0,r,WF,xR,yR,ZJD,G2,B8,Oi,Z2;var O0=R(()=>{JD();kR();n2();hR();z1();i2();k0();C0=class C0{static[z]="StringChunk";value;constructor(D){this.value=Array.isArray(D)?D:[D]}getSQL(){return new r([this])}};r=class r{constructor(D){this.queryChunks=D;for(let $ of D)if(f($,p)){let F=$[p.Symbol.Schema];this.usedTables.push(F===void 0?$[p.Symbol.Name]:F+"."+$[p.Symbol.Name])}}static[z]="SQL";decoder=xR;shouldInlineParams=!1;usedTables=[];append(D){return this.queryChunks.push(...D.queryChunks),this}toQuery(D){return gR.startActiveSpan("drizzle.buildSQL",($)=>{let F=this.buildQueryFromSourceParams(this.queryChunks,D);return $?.setAttributes({"drizzle.query.text":F.sql,"drizzle.query.params":JSON.stringify(F.params)}),F})}buildQueryFromSourceParams(D,$){let F=Object.assign({},$,{inlineParams:$.inlineParams||this.shouldInlineParams,paramStartIndex:$.paramStartIndex||{value:0}}),{casing:X,escapeName:J,escapeParam:G,prepareTyping:Y,inlineParams:B,paramStartIndex:H}=F;return Ri(D.map((U)=>{if(f(U,C0))return{sql:U.value.join(""),params:[]};if(f(U,WF))return{sql:J(U.value),params:[]};if(U===void 0)return{sql:"",params:[]};if(Array.isArray(U)){let Q=[new C0("(")];for(let[V,A]of U.entries())if(Q.push(A),V<U.length-1)Q.push(new C0(", "));return Q.push(new C0(")")),this.buildQueryFromSourceParams(Q,F)}if(f(U,r))return this.buildQueryFromSourceParams(U.queryChunks,{...F,inlineParams:B||U.shouldInlineParams});if(f(U,p)){let Q=U[p.Symbol.Schema],V=U[p.Symbol.Name];return{sql:Q===void 0||U[S7]?J(V):J(Q)+"."+J(V),params:[]}}if(f(U,qD)){let Q=X.getColumnCasing(U);if($.invokeSource==="indexes")return{sql:J(Q),params:[]};let V=U.table[p.Symbol.Schema];return{sql:U.table[S7]||V===void 0?J(U.table[p.Symbol.Name])+"."+J(Q):J(V)+"."+J(U.table[p.Symbol.Name])+"."+J(Q),params:[]}}if(f(U,Z2)){let Q=U[tD].schema,V=U[tD].name;return{sql:Q===void 0||U[tD].isAlias?J(V):J(Q)+"."+J(V),params:[]}}if(f(U,G2)){if(f(U.value,B8))return{sql:G(H.value++,U),params:[U],typings:["none"]};let Q=U.value===null?null:U.encoder.mapToDriverValue(U.value);if(f(Q,r))return this.buildQueryFromSourceParams([Q],F);if(B)return{sql:this.mapInlineParam(Q,F),params:[]};let V=["none"];if(Y)V=[Y(U.encoder)];return{sql:G(H.value++,Q),params:[Q],typings:V}}if(f(U,B8))return{sql:G(H.value++,U),params:[U],typings:["none"]};if(f(U,r.Aliased)&&U.fieldAlias!==void 0)return{sql:J(U.fieldAlias),params:[]};if(f(U,W0)){if(U._.isWith)return{sql:J(U._.alias),params:[]};return this.buildQueryFromSourceParams([new C0("("),U._.sql,new C0(") "),new WF(U._.alias)],F)}if(wR(U)){if(U.schema)return{sql:J(U.schema)+"."+J(U.enumName),params:[]};return{sql:J(U.enumName),params:[]}}if(iB(U)){if(U.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([U.getSQL()],F);return this.buildQueryFromSourceParams([new C0("("),U.getSQL(),new C0(")")],F)}if(B)return{sql:this.mapInlineParam(U,F),params:[]};return{sql:G(H.value++,U),params:[U],typings:["none"]}}))}mapInlineParam(D,{escapeString:$}){if(D===null)return"null";if(typeof D==="number"||typeof D==="boolean")return D.toString();if(typeof D==="string")return $(D);if(typeof D==="object"){let F=D.toString();if(F==="[object Object]")return $(JSON.stringify(D));return $(F)}throw Error("Unexpected param value: "+D)}getSQL(){return this}as(D){if(D===void 0)return this;return new r.Aliased(this,D)}mapWith(D){return this.decoder=typeof D==="function"?{mapFromDriverValue:D}:D,this}inlineParams(){return this.shouldInlineParams=!0,this}if(D){return D?this:void 0}};WF=class WF{constructor(D){this.value=D}static[z]="Name";brand;getSQL(){return new r([this])}};xR={mapFromDriverValue:(D)=>D},yR={mapToDriverValue:(D)=>D},ZJD={...xR,...yR};G2=class G2{constructor(D,$=yR){this.value=D,this.encoder=$}static[z]="Param";brand;getSQL(){return new r([this])}};((D)=>{function $(){return new r([])}D.empty=$;function F(H){return new r(H)}D.fromList=F;function X(H){return new r([new C0(H)])}D.raw=X;function J(H,U){let Q=[];for(let[V,A]of H.entries()){if(V>0&&U!==void 0)Q.push(U);Q.push(A)}return new r(Q)}D.join=J;function G(H){return new WF(H)}D.identifier=G;function Y(H){return new B8(H)}D.placeholder=Y;function B(H,U){return new G2(H,U)}D.param=B})(E||(E={}));((D)=>{class ${constructor(F,X){this.sql=F,this.fieldAlias=X}static[z]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new $(this.sql,this.fieldAlias)}}D.Aliased=$})(r||(r={}));B8=class B8{constructor(D){this.name=D}static[z]="Placeholder";getSQL(){return new r([this])}};Oi=Symbol.for("drizzle:IsDrizzleView");Z2=class Z2{static[z]="View";[tD];[Oi]=!0;constructor({name:D,schema:$,selectedFields:F,query:X}){this[tD]={name:D,originalName:D,schema:$,selectedFields:F,query:X,isExisting:!X,isAlias:!1}}getSQL(){return new r([this])}};qD.prototype.getSQL=function(){return new r([this])};p.prototype.getSQL=function(){return new r([this])};W0.prototype.getSQL=function(){return new r([this])}});function nB(D,$,F){let X={},J=D.reduce((G,{path:Y,field:B},H)=>{let U;if(f(B,qD))U=B;else if(f(B,r))U=B.decoder;else U=B.sql.decoder;let Q=G;for(let[V,A]of Y.entries())if(V<Y.length-1){if(!(A in Q))Q[A]={};Q=Q[A]}else{let K=$[H],M=Q[A]=K===null?null:U.mapFromDriverValue(K);if(F&&f(B,qD)&&Y.length===2){let C=Y[0];if(!(C in X))X[C]=M===null?Y8(B.table):!1;else if(typeof X[C]==="string"&&X[C]!==Y8(B.table))X[C]=!1}}return G},{});if(F&&Object.keys(X).length>0){for(let[G,Y]of Object.entries(X))if(typeof Y==="string"&&!F[Y])J[G]=null}return J}function R2(D,$){return Object.entries(D).reduce((F,[X,J])=>{if(typeof X!=="string")return F;let G=$?[...$,X]:[X];if(f(J,qD)||f(J,r)||f(J,r.Aliased))F.push({path:G,field:J});else if(f(J,p))F.push(...R2(J[p.Symbol.Columns],G));else F.push(...R2(J,G));return F},[])}function b7(D,$){let F=Object.keys(D),X=Object.keys($);if(F.length!==X.length)return!1;for(let[J,G]of F.entries())if(G!==X[J])return!1;return!0}function UF(D,$){let F=Object.entries($).filter(([,X])=>X!==void 0).map(([X,J])=>{if(f(J,r)||f(J,qD))return[X,J];else return[X,new G2(J,D[p.Symbol.Columns][X])]});if(F.length===0)throw Error("No values to set");return Object.fromEntries(F)}function uR(D,$){for(let F of $)for(let X of Object.getOwnPropertyNames(F.prototype)){if(X==="constructor")continue;Object.defineProperty(D.prototype,X,Object.getOwnPropertyDescriptor(F.prototype,X)||Object.create(null))}}function mR(D){return D[p.Symbol.Columns]}function f7(D){return f(D,W0)?D._.alias:f(D,Z2)?D[tD].name:f(D,r)?void 0:D[p.Symbol.IsAlias]?D[p.Symbol.Name]:D[p.Symbol.BaseName]}function V1(D,$){return{name:typeof D==="string"&&D.length>0?D:"",config:typeof D==="object"?D:$}}function cR(D){if(typeof D!=="object"||D===null)return!1;if(D.constructor.name!=="Object")return!1;if("logger"in D){let $=typeof D.logger;if($!=="boolean"&&($!=="object"||typeof D.logger.logQuery!=="function")&&$!=="undefined")return!1;return!0}if("schema"in D){let $=typeof D.schema;if($!=="object"&&$!=="undefined")return!1;return!0}if("casing"in D){let $=typeof D.casing;if($!=="string"&&$!=="undefined")return!1;return!0}if("mode"in D){if(D.mode!=="default"||D.mode!=="planetscale"||D.mode!==void 0)return!1;return!0}if("connection"in D){let $=typeof D.connection;if($!=="string"&&$!=="object"&&$!=="undefined")return!1;return!0}if("client"in D){let $=typeof D.client;if($!=="object"&&$!=="function"&&$!=="undefined")return!1;return!0}if(Object.keys(D).length===0)return!0;return!1}var rB;var r0=R(()=>{i2();JD();O0();n2();k0();z1();rB=typeof TextDecoder>"u"?null:new TextDecoder});var pR,dR,sB;var lR=R(()=>{JD();k0();pR=Symbol.for("drizzle:PgInlineForeignKeys"),dR=Symbol.for("drizzle:EnableRLS");sB=class sB extends p{static[z]="PgTable";static Symbol=Object.assign({},p.Symbol,{InlineForeignKeys:pR,EnableRLS:dR});[pR]=[];[dR]=!1;[p.Symbol.ExtraConfigBuilder]=void 0;[p.Symbol.ExtraConfigColumns]={}}});var aB,iR;var nR=R(()=>{JD();lR();aB=class aB{static[z]="PgPrimaryKeyBuilder";columns;name;constructor(D,$){this.columns=D,this.name=$}build(D){return new iR(D,this.columns,this.name)}};iR=class iR{constructor(D,$,F){this.table=D,this.columns=$,this.name=F}static[z]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[sB.Symbol.Name]}_${this.columns.map((D)=>D.name).join("_")}_pk`}}});function s0(D,$){if(vR($)&&!iB(D)&&!f(D,G2)&&!f(D,B8)&&!f(D,qD)&&!f(D,p)&&!f(D,Z2))return new G2(D,$);return D}function TD(...D){let $=D.filter((F)=>F!==void 0);if($.length===0)return;if($.length===1)return new r($);return new r([new C0("("),E.join($,new C0(" and ")),new C0(")")])}function sR(...D){let $=D.filter((F)=>F!==void 0);if($.length===0)return;if($.length===1)return new r($);return new r([new C0("("),E.join($,new C0(" or ")),new C0(")")])}function aR(D){return E`not ${D}`}function I1(D,$){if(Array.isArray($)){if($.length===0)return E`false`;return E`${D} in ${$.map((F)=>s0(F,D))}`}return E`${D} in ${s0($,D)}`}function tR(D,$){if(Array.isArray($)){if($.length===0)return E`true`;return E`${D} not in ${$.map((F)=>s0(F,D))}`}return E`${D} not in ${s0($,D)}`}function h7(D){return E`${D} is null`}function eR(D){return E`${D} is not null`}function DO(D){return E`exists ${D}`}function $O(D){return E`not exists ${D}`}function FO(D,$,F){return E`${D} between ${s0($,D)} and ${s0(F,D)}`}function XO(D,$,F){return E`${D} not between ${s0($,D)} and ${s0(F,D)}`}function JO(D,$){return E`${D} like ${$}`}function GO(D,$){return E`${D} not like ${$}`}function YO(D,$){return E`${D} ilike ${$}`}function BO(D,$){return E`${D} not ilike ${$}`}var S=(D,$)=>{return E`${D} = ${s0($,D)}`},rR=(D,$)=>{return E`${D} <> ${s0($,D)}`},g7=(D,$)=>{return E`${D} > ${s0($,D)}`},oR=(D,$)=>{return E`${D} >= ${s0($,D)}`},QF=(D,$)=>{return E`${D} < ${s0($,D)}`},VF=(D,$)=>{return E`${D} <= ${s0($,D)}`};var HO=R(()=>{i2();JD();k0();O0()});function A1(D){return E`${D} asc`}function RD(D){return E`${D} desc`}var WO=R(()=>{O0()});var oB=R(()=>{HO();WO()});function QO(){return{and:TD,between:FO,eq:S,exists:DO,gt:g7,gte:oR,ilike:YO,inArray:I1,isNull:h7,isNotNull:eR,like:JO,lt:QF,lte:VF,ne:rR,not:aR,notBetween:XO,notExists:$O,notLike:GO,notIlike:BO,notInArray:tR,or:sR,sql:E}}function VO(){return{sql:E,asc:A1,desc:RD}}function AO(D,$){if(Object.keys(D).length===1&&"default"in D&&!f(D.default,p))D=D.default;let F={},X={},J={};for(let[G,Y]of Object.entries(D))if(f(Y,p)){let B=s8(Y),H=X[B];F[B]=G,J[G]={tsName:G,dbName:Y[p.Symbol.Name],schema:Y[p.Symbol.Schema],columns:Y[p.Symbol.Columns],relations:H?.relations??{},primaryKey:H?.primaryKey??[]};for(let Q of Object.values(Y[p.Symbol.Columns]))if(Q.primary)J[G].primaryKey.push(Q);let U=Y[p.Symbol.ExtraConfigBuilder]?.(Y[p.Symbol.ExtraConfigColumns]);if(U){for(let Q of Object.values(U))if(f(Q,aB))J[G].primaryKey.push(...Q.columns)}}else if(f(Y,UO)){let B=s8(Y.table),H=F[B],U=Y.config($(Y.table)),Q;for(let[V,A]of Object.entries(U))if(H){let K=J[H];if(K.relations[V]=A,Q)K.primaryKey.push(...Q)}else{if(!(B in X))X[B]={relations:{},primaryKey:Q};X[B].relations[V]=A}}return{tables:J,tableNamesMap:F}}function Ei(D){return function(F,X){return new H8(D,F,X,X?.fields.reduce((J,G)=>J&&G.notNull,!0)??!1)}}function ji(D){return function(F,X){return new v7(D,F,X)}}function KO(D,$,F){if(f(F,H8)&&F.config)return{fields:F.config.fields,references:F.config.references};let X=$[s8(F.referencedTable)];if(!X)throw Error(`Table "${F.referencedTable[p.Symbol.Name]}" not found in schema`);let J=D[X];if(!J)throw Error(`Table "${X}" not found in schema`);let G=F.sourceTable,Y=$[s8(G)];if(!Y)throw Error(`Table "${G[p.Symbol.Name]}" not found in schema`);let B=[];for(let H of Object.values(J.relations))if(F.relationName&&F!==H&&H.relationName===F.relationName||!F.relationName&&H.referencedTable===F.sourceTable)B.push(H);if(B.length>1)throw F.relationName?Error(`There are multiple relations with name "${F.relationName}" in table "${X}"`):Error(`There are multiple relations between "${X}" and "${F.sourceTable[p.Symbol.Name]}". Please specify relation name`);if(B[0]&&f(B[0],H8)&&B[0].config)return{fields:B[0].config.references,references:B[0].config.fields};throw Error(`There is not enough information to infer relation "${Y}.${F.fieldName}"`)}function _O(D){return{one:Ei(D),many:ji(D)}}function AF(D,$,F,X,J=(G)=>G){let G={};for(let[Y,B]of X.entries())if(B.isJson){let H=$.relations[B.tsKey],U=F[Y],Q=typeof U==="string"?JSON.parse(U):U;G[B.tsKey]=f(H,H8)?Q&&AF(D,D[B.relationTableTsKey],Q,B.selection,J):Q.map((V)=>AF(D,D[B.relationTableTsKey],V,B.selection,J))}else{let H=J(F[Y]),U=B.field,Q;if(f(U,qD))Q=U;else if(f(U,r))Q=U.decoder;else Q=U.sql.decoder;G[B.tsKey]=H===null?null:Q.mapFromDriverValue(H)}return G}var tB,UO,H8,v7;var x7=R(()=>{k0();i2();JD();nR();oB();O0();tB=class tB{constructor(D,$,F){this.sourceTable=D,this.referencedTable=$,this.relationName=F,this.referencedTableName=$[p.Symbol.Name]}static[z]="Relation";referencedTableName;fieldName};UO=class UO{constructor(D,$){this.table=D,this.config=$}static[z]="Relations"};H8=class H8 extends tB{constructor(D,$,F,X){super(D,$,F?.relationName);this.config=F,this.isNullable=X}static[z]="One";withFieldName(D){let $=new H8(this.sourceTable,this.referencedTable,this.config,this.isNullable);return $.fieldName=D,$}};v7=class v7 extends tB{constructor(D,$,F){super(D,$,F?.relationName);this.config=F}static[z]="Many";withFieldName(D){let $=new v7(this.sourceTable,this.referencedTable,this.config);return $.fieldName=D,$}}});function KF(D,$){return new Proxy(D,new y7($,!1))}function K1(D,$){return new Proxy(D,new V3(new Proxy(D.table,new y7($,!1))))}function eB(D,$){return new r.Aliased(u7(D.sql,$),D.fieldAlias)}function u7(D,$){return E.join(D.queryChunks.map((F)=>{if(f(F,qD))return K1(F,$);if(f(F,r))return u7(F,$);if(f(F,r.Aliased))return eB(F,$);return F}))}var V3,y7;var _F=R(()=>{i2();JD();O0();k0();z1();V3=class V3{constructor(D){this.table=D}static[z]="ColumnAliasProxyHandler";get(D,$){if($==="table")return this.table;return D[$]}};y7=class y7{constructor(D,$){this.alias=D,this.replaceOriginalName=$}static[z]="TableAliasProxyHandler";get(D,$){if($===p.Symbol.IsAlias)return!0;if($===p.Symbol.Name)return this.alias;if(this.replaceOriginalName&&$===p.Symbol.OriginalName)return this.alias;if($===tD)return{...D[tD],name:this.alias,isAlias:!0};if($===p.Symbol.Columns){let X=D[p.Symbol.Columns];if(!X)return X;let J={};return Object.keys(X).map((G)=>{J[G]=new Proxy(X[G],new V3(new Proxy(D,this)))}),J}let F=D[$];if(f(F,qD))return new Proxy(F,new V3(new Proxy(D,this)));return F}}});var U0;var A3=R(()=>{_F();i2();JD();O0();n2();z1();U0=class U0{static[z]="SelectionProxyHandler";config;constructor(D){this.config={...D}}get(D,$){if($==="_")return{...D._,selectedFields:new Proxy(D._.selectedFields,this)};if($===tD)return{...D[tD],selectedFields:new Proxy(D[tD].selectedFields,this)};if(typeof $==="symbol")return D[$];let X=(f(D,W0)?D._.selectedFields:f(D,Z2)?D[tD].selectedFields:D)[$];if(f(X,r.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!X.isSelectionField)return X.sql;let J=X.clone();return J.isSelectionField=!0,J}if(f(X,r)){if(this.config.sqlBehavior==="sql")return X;throw Error(`You tried to reference "${$}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}if(f(X,qD)){if(this.config.alias)return new Proxy(X,new V3(new Proxy(X.table,new y7(this.config.alias,this.config.replaceOriginalName??!1))));return X}if(typeof X!=="object"||X===null)return X;return new Proxy(X,new U0(this.config))}}});var m0;var S1=R(()=>{JD();m0=class m0{static[z]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(D){return this.then(void 0,D)}finally(D){return this.then(($)=>{return D?.(),$},($)=>{throw D?.(),$})}then(D,$){return this.execute().then(D,$)}}});var DH,CO;var $H=R(()=>{JD();I7();DH=class DH{static[z]="SQLiteForeignKeyBuilder";reference;_onUpdate;_onDelete;constructor(D,$){if(this.reference=()=>{let{name:F,columns:X,foreignColumns:J}=D();return{name:F,columns:X,foreignTable:J[0].table,foreignColumns:J}},$)this._onUpdate=$.onUpdate,this._onDelete=$.onDelete}onUpdate(D){return this._onUpdate=D,this}onDelete(D){return this._onDelete=D,this}build(D){return new CO(D,this)}};CO=class CO{constructor(D,$){this.table=D,this.reference=$.reference,this.onUpdate=$._onUpdate,this.onDelete=$._onDelete}static[z]="SQLiteForeignKey";reference;onUpdate;onDelete;getName(){let{name:D,columns:$,foreignColumns:F}=this.reference(),X=$.map((Y)=>Y.name),J=F.map((Y)=>Y.name),G=[this.table[J2],...X,F[0].table[J2],...J];return D??`${G.join("_")}_fk`}}});function MO(D,$){return`${D[J2]}_${$.join("_")}_unique`}var FH=R(()=>{I7()});var E0,F0;var W8=R(()=>{pB();i2();JD();$H();FH();E0=class E0 extends cB{static[z]="SQLiteColumnBuilder";foreignKeyConfigs=[];references(D,$={}){return this.foreignKeyConfigs.push({ref:D,actions:$}),this}unique(D){return this.config.isUnique=!0,this.config.uniqueName=D,this}generatedAlwaysAs(D,$){return this.config.generated={as:D,type:"always",mode:$?.mode??"virtual"},this}buildForeignKeys(D,$){return this.foreignKeyConfigs.map(({ref:F,actions:X})=>{return((J,G)=>{let Y=new DH(()=>{let B=J();return{columns:[D],foreignColumns:[B]}});if(G.onUpdate)Y.onUpdate(G.onUpdate);if(G.onDelete)Y.onDelete(G.onDelete);return Y.build($)})(F,X)})}};F0=class F0 extends qD{constructor(D,$){if(!$.uniqueName)$.uniqueName=MO(D,[$.name]);super(D,$);this.table=D}static[z]="SQLiteColumn"}});function PO(D,$){let{name:F,config:X}=V1(D,$);if(X?.mode==="json")return new OO(F);if(X?.mode==="bigint")return new ZO(F);return new jO(F)}var ZO,RO,OO,EO,jO,NO;var XH=R(()=>{JD();r0();W8();ZO=class ZO extends E0{static[z]="SQLiteBigIntBuilder";constructor(D){super(D,"bigint","SQLiteBigInt")}build(D){return new RO(D,this.config)}};RO=class RO extends F0{static[z]="SQLiteBigInt";getSQLType(){return"blob"}mapFromDriverValue(D){if(typeof Buffer<"u"&&Buffer.from){let $=Buffer.isBuffer(D)?D:D instanceof ArrayBuffer?Buffer.from(D):D.buffer?Buffer.from(D.buffer,D.byteOffset,D.byteLength):Buffer.from(D);return BigInt($.toString("utf8"))}return BigInt(rB.decode(D))}mapToDriverValue(D){return Buffer.from(D.toString())}};OO=class OO extends E0{static[z]="SQLiteBlobJsonBuilder";constructor(D){super(D,"json","SQLiteBlobJson")}build(D){return new EO(D,this.config)}};EO=class EO extends F0{static[z]="SQLiteBlobJson";getSQLType(){return"blob"}mapFromDriverValue(D){if(typeof Buffer<"u"&&Buffer.from){let $=Buffer.isBuffer(D)?D:D instanceof ArrayBuffer?Buffer.from(D):D.buffer?Buffer.from(D.buffer,D.byteOffset,D.byteLength):Buffer.from(D);return JSON.parse($.toString("utf8"))}return JSON.parse(rB.decode(D))}mapToDriverValue(D){return Buffer.from(JSON.stringify(D))}};jO=class jO extends E0{static[z]="SQLiteBlobBufferBuilder";constructor(D){super(D,"buffer","SQLiteBlobBuffer")}build(D){return new NO(D,this.config)}};NO=class NO extends F0{static[z]="SQLiteBlobBuffer";mapFromDriverValue(D){if(Buffer.isBuffer(D))return D;return Buffer.from(D)}getSQLType(){return"blob"}}});function zO(D){return($,F)=>{let{name:X,config:J}=V1($,F);return new LO(X,J,D)}}var LO,qO;var JH=R(()=>{JD();r0();W8();LO=class LO extends E0{static[z]="SQLiteCustomColumnBuilder";constructor(D,$,F){super(D,"custom","SQLiteCustomColumn");this.config.fieldConfig=$,this.config.customTypeParams=F}build(D){return new qO(D,this.config)}};qO=class qO extends F0{static[z]="SQLiteCustomColumn";sqlName;mapTo;mapFrom;constructor(D,$){super(D,$);this.sqlName=$.customTypeParams.dataType($.fieldConfig),this.mapTo=$.customTypeParams.toDriver,this.mapFrom=$.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(D){return typeof this.mapFrom==="function"?this.mapFrom(D):D}mapToDriverValue(D){return typeof this.mapTo==="function"?this.mapTo(D):D}}});function vD(D,$){let{name:F,config:X}=V1(D,$);if(X?.mode==="timestamp"||X?.mode==="timestamp_ms")return new TO(F,X.mode);if(X?.mode==="boolean")return new kO(F,X.mode);return new IO(F)}var CF,MF,IO,SO,TO,wO,kO,bO;var GH=R(()=>{JD();O0();r0();W8();CF=class CF extends E0{static[z]="SQLiteBaseIntegerBuilder";constructor(D,$,F){super(D,$,F);this.config.autoIncrement=!1}primaryKey(D){if(D?.autoIncrement)this.config.autoIncrement=!0;return this.config.hasDefault=!0,super.primaryKey()}};MF=class MF extends F0{static[z]="SQLiteBaseInteger";autoIncrement=this.config.autoIncrement;getSQLType(){return"integer"}};IO=class IO extends CF{static[z]="SQLiteIntegerBuilder";constructor(D){super(D,"number","SQLiteInteger")}build(D){return new SO(D,this.config)}};SO=class SO extends MF{static[z]="SQLiteInteger"};TO=class TO extends CF{static[z]="SQLiteTimestampBuilder";constructor(D,$){super(D,"date","SQLiteTimestamp");this.config.mode=$}defaultNow(){return this.default(E`(cast((julianday('now') - 2440587.5)*86400000 as integer))`)}build(D){return new wO(D,this.config)}};wO=class wO extends MF{static[z]="SQLiteTimestamp";mode=this.config.mode;mapFromDriverValue(D){if(this.config.mode==="timestamp")return new Date(D*1000);return new Date(D)}mapToDriverValue(D){let $=D.getTime();if(this.config.mode==="timestamp")return Math.floor($/1000);return $}};kO=class kO extends CF{static[z]="SQLiteBooleanBuilder";constructor(D,$){super(D,"boolean","SQLiteBoolean");this.config.mode=$}build(D){return new bO(D,this.config)}};bO=class bO extends MF{static[z]="SQLiteBoolean";mode=this.config.mode;mapFromDriverValue(D){return Number(D)===1}mapToDriverValue(D){return D?1:0}}});function uO(D,$){let{name:F,config:X}=V1(D,$),J=X?.mode;return J==="number"?new hO(F):J==="bigint"?new xO(F):new fO(F)}var fO,gO,hO,vO,xO,yO;var YH=R(()=>{JD();r0();W8();fO=class fO extends E0{static[z]="SQLiteNumericBuilder";constructor(D){super(D,"string","SQLiteNumeric")}build(D){return new gO(D,this.config)}};gO=class gO extends F0{static[z]="SQLiteNumeric";mapFromDriverValue(D){if(typeof D==="string")return D;return String(D)}getSQLType(){return"numeric"}};hO=class hO extends E0{static[z]="SQLiteNumericNumberBuilder";constructor(D){super(D,"number","SQLiteNumericNumber")}build(D){return new vO(D,this.config)}};vO=class vO extends F0{static[z]="SQLiteNumericNumber";mapFromDriverValue(D){if(typeof D==="number")return D;return Number(D)}mapToDriverValue=String;getSQLType(){return"numeric"}};xO=class xO extends E0{static[z]="SQLiteNumericBigIntBuilder";constructor(D){super(D,"bigint","SQLiteNumericBigInt")}build(D){return new yO(D,this.config)}};yO=class yO extends F0{static[z]="SQLiteNumericBigInt";mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){return"numeric"}}});function ZF(D){return new mO(D??"")}var mO,cO;var BH=R(()=>{JD();W8();mO=class mO extends E0{static[z]="SQLiteRealBuilder";constructor(D){super(D,"number","SQLiteReal")}build(D){return new cO(D,this.config)}};cO=class cO extends F0{static[z]="SQLiteReal";getSQLType(){return"real"}}});function L(D,$={}){let{name:F,config:X}=V1(D,$);if(X.mode==="json")return new lO(F);return new pO(F,X)}var pO,dO,lO,iO;var HH=R(()=>{JD();r0();W8();pO=class pO extends E0{static[z]="SQLiteTextBuilder";constructor(D,$){super(D,"string","SQLiteText");this.config.enumValues=$.enum,this.config.length=$.length}build(D){return new dO(D,this.config)}};dO=class dO extends F0{static[z]="SQLiteText";enumValues=this.config.enumValues;length=this.config.length;constructor(D,$){super(D,$)}getSQLType(){return`text${this.config.length?`(${this.config.length})`:""}`}};lO=class lO extends E0{static[z]="SQLiteTextJsonBuilder";constructor(D){super(D,"json","SQLiteTextJson")}build(D){return new iO(D,this.config)}};iO=class iO extends F0{static[z]="SQLiteTextJson";getSQLType(){return"text"}mapFromDriverValue(D){return JSON.parse(D)}mapToDriverValue(D){return JSON.stringify(D)}}});function nO(){return{blob:PO,customType:zO,integer:vD,numeric:uO,real:ZF,text:L}}var rO=R(()=>{XH();JH();GH();YH();BH();HH()});function Ni(D,$,F,X,J=D){let G=new j0(D,X,J),Y=typeof $==="function"?$(nO()):$,B=Object.fromEntries(Object.entries(Y).map(([U,Q])=>{let V=Q;V.setName(U);let A=V.build(G);return G[WH].push(...V.buildForeignKeys(A,G)),[U,A]})),H=Object.assign(G,B);if(H[p.Symbol.Columns]=B,H[p.Symbol.ExtraConfigColumns]=B,F)H[j0.Symbol.ExtraConfigBuilder]=F;return H}var WH,j0,Q0=(D,$,F)=>{return Ni(D,$,F)};var a8=R(()=>{JD();k0();rO();WH=Symbol.for("drizzle:SQLiteInlineForeignKeys");j0=class j0 extends p{static[z]="SQLiteTable";static Symbol=Object.assign({},p.Symbol,{InlineForeignKeys:WH});[p.Symbol.Columns];[WH]=[];[p.Symbol.ExtraConfigBuilder]=void 0}});var sO=()=>{};function Y0(D){return new UH(D,!1)}function tO(D){return new UH(D,!0)}var UH,aO,oO;var eO=R(()=>{JD();UH=class UH{constructor(D,$){this.name=D,this.unique=$}static[z]="SQLiteIndexBuilderOn";on(...D){return new aO(this.name,D,this.unique)}};aO=class aO{static[z]="SQLiteIndexBuilder";config;constructor(D,$,F){this.config={name:D,columns:$,unique:F,where:void 0}}where(D){return this.config.where=D,this}build(D){return new oO(this.config,D)}};oO=class oO{static[z]="SQLiteIndex";config;constructor(D,$){this.config={...D,table:$}}}});var DE=()=>{};function r2(D){if(f(D,j0))return[`${D[p.Symbol.BaseName]}`];if(f(D,W0))return D._.usedTables??[];if(f(D,r))return D.usedTables??[];return[]}var K3=R(()=>{JD();O0();n2();k0();a8()});var RF;var $E=R(()=>{JD();S1();A3();a8();k0();r0();K3();RF=class RF extends m0{constructor(D,$,F,X){super();this.table=D,this.session=$,this.dialect=F,this.config={table:D,withList:X}}static[z]="SQLiteDelete";config;where(D){return this.config.where=D,this}orderBy(...D){if(typeof D[0]==="function"){let $=D[0](new Proxy(this.config.table[p.Symbol.Columns],new U0({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),F=Array.isArray($)?$:[$];this.config.orderBy=F}else{let $=D;this.config.orderBy=$}return this}limit(D){return this.config.limit=D,this}returning(D=this.table[j0.Symbol.Columns]){return this.config.returning=R2(D),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:D,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(D=!0){return this.session[D?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0,void 0,{type:"delete",tables:r2(this.config.table)})}prepare(){return this._prepare(!1)}run=(D)=>{return this._prepare().run(D)};all=(D)=>{return this._prepare().all(D)};get=(D)=>{return this._prepare().get(D)};values=(D)=>{return this._prepare().values(D)};async execute(D){return this._prepare().execute(D)}$dynamic(){return this}}});function Pi(D){return(D.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((F)=>F.toLowerCase()).join("_")}function Li(D){return(D.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((F,X,J)=>{let G=J===0?X.toLowerCase():`${X[0].toUpperCase()}${X.slice(1)}`;return F+G},"")}function qi(D){return D}var QH;var FE=R(()=>{JD();k0();QH=class QH{static[z]="CasingCache";cache={};cachedTables={};convert;constructor(D){this.convert=D==="snake_case"?Pi:D==="camelCase"?Li:qi}getColumnCasing(D){if(!D.keyAsName)return D.name;let $=D.table[p.Symbol.Schema]??"public",F=D.table[p.Symbol.OriginalName],X=`${$}.${F}.${D.name}`;if(!this.cache[X])this.cacheTable(D.table);return this.cache[X]}cacheTable(D){let $=D[p.Symbol.Schema]??"public",F=D[p.Symbol.OriginalName],X=`${$}.${F}`;if(!this.cachedTables[X]){for(let J of Object.values(D[p.Symbol.Columns])){let G=`${X}.${J.name}`;this.cache[G]=this.convert(J.name)}this.cachedTables[X]=!0}}clearCache(){this.cache={},this.cachedTables={}}}});var _3,T1,VH;var OF=R(()=>{JD();_3=class _3 extends Error{static[z]="DrizzleError";constructor({message:D,cause:$}){super(D);this.name="DrizzleError",this.cause=$}};T1=class T1 extends Error{constructor(D,$,F){super(`Failed query: ${D}
1614
+ `,{encoding:"utf8",mode:384}),await Wi(F,$);try{await Yi($,384)}catch{}}async function n8(D){let F={...await GF()};for(let[X,J]of Object.entries(D)){if(J===void 0)continue;let G=X==="gatewayUrl"&&typeof J==="string"?z7(J):J;F[X]=G}return await hB(F),F}var DR="ws://localhost:9218/ws";var r8=R(()=>{$0()});function f(D,$){if(!D||typeof D!=="object")return!1;if(D instanceof $)return!0;if(!Object.prototype.hasOwnProperty.call($,z))throw Error(`Class "${$.name??"<unknown>"}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let F=Object.getPrototypeOf(D).constructor;if(F)while(F){if(z in F&&F[z]===$[z])return!0;F=Object.getPrototypeOf(F)}return!1}var z;var JD=R(()=>{z=Symbol.for("drizzle:entityKind")});var jR,xB,yB;var YF=R(()=>{JD();jR=class jR{static[z]="ConsoleLogWriter";write(D){console.log(D)}};xB=class xB{static[z]="DefaultLogger";writer;constructor(D){this.writer=D?.writer??new jR}logQuery(D,$){let F=$.map((J)=>{try{return JSON.stringify(J)}catch{return String(J)}}),X=F.length?` -- params: [${F.join(", ")}]`:"";this.writer.write(`Query: ${D}${X}`)}};yB=class yB{static[z]="NoopLogger";logQuery(){}}});var J2;var I7=R(()=>{J2=Symbol.for("drizzle:Name")});function Y8(D){return D[J2]}function s8(D){return`${D[BF]??"public"}.${D[J2]}`}var BF,HF,NR,uB,mB,S7,PR,_i,p;var k0=R(()=>{JD();I7();BF=Symbol.for("drizzle:Schema"),HF=Symbol.for("drizzle:Columns"),NR=Symbol.for("drizzle:ExtraConfigColumns"),uB=Symbol.for("drizzle:OriginalName"),mB=Symbol.for("drizzle:BaseName"),S7=Symbol.for("drizzle:IsAlias"),PR=Symbol.for("drizzle:ExtraConfigBuilder"),_i=Symbol.for("drizzle:IsDrizzleTable");p=class p{static[z]="Table";static Symbol={Name:J2,Schema:BF,OriginalName:uB,Columns:HF,ExtraConfigColumns:NR,BaseName:mB,IsAlias:S7,ExtraConfigBuilder:PR};[J2];[uB];[BF];[HF];[NR];[mB];[S7]=!1;[_i]=!0;[PR]=void 0;constructor(D,$,F){this[J2]=this[uB]=D,this[BF]=$,this[mB]=F}}});var qD;var i2=R(()=>{JD();qD=class qD{constructor(D,$){this.table=D,this.config=$,this.name=$.name,this.keyAsName=$.keyAsName,this.notNull=$.notNull,this.default=$.default,this.defaultFn=$.defaultFn,this.onUpdateFn=$.onUpdateFn,this.hasDefault=$.hasDefault,this.primary=$.primaryKey,this.isUnique=$.isUnique,this.uniqueName=$.uniqueName,this.uniqueType=$.uniqueType,this.dataType=$.dataType,this.columnType=$.columnType,this.generated=$.generated,this.generatedIdentity=$.generatedIdentity}static[z]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(D){return D}mapToDriverValue(D){return D}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}});var cB;var pB=R(()=>{JD();cB=class cB{static[z]="ColumnBuilder";config;constructor(D,$,F){this.config={name:D,keyAsName:D==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:$,columnType:F,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(D){return this.config.default=D,this.config.hasDefault=!0,this}$defaultFn(D){return this.config.defaultFn=D,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(D){return this.config.onUpdateFn=D,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(D){if(this.config.name!=="")return;this.config.name=D}}});function LR(D,...$){return D(...$)}var qR=()=>{};function zR(D,$){return`${D[J2]}_${$.join("_")}_unique`}var IR=R(()=>{I7()});var T7,Ci;var SR=R(()=>{i2();JD();IR();T7=class T7 extends qD{constructor(D,$){if(!$.uniqueName)$.uniqueName=zR(D,[$.name]);super(D,$);this.table=D}static[z]="PgColumn"};Ci=class Ci extends T7{static[z]="ExtraConfigColumn";getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??"asc",nulls:this.config.nulls??"last",opClass:this.config.opClass};defaultConfig={order:"asc",nulls:"last",opClass:void 0};asc(){return this.indexConfig.order="asc",this}desc(){return this.indexConfig.order="desc",this}nullsFirst(){return this.indexConfig.nulls="first",this}nullsLast(){return this.indexConfig.nulls="last",this}op(D){return this.indexConfig.opClass=D,this}}});function wR(D){return!!D&&typeof D==="function"&&TR in D&&D[TR]===!0}var Mi,TR,Zi;var kR=R(()=>{JD();SR();Mi=class Mi extends T7{static[z]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(D,$){super(D,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}};TR=Symbol.for("drizzle:isPgEnum");Zi=class Zi extends T7{static[z]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(D,$){super(D,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}}});var W0,w7;var n2=R(()=>{JD();W0=class W0{static[z]="Subquery";constructor(D,$,F,X=!1,J=[]){this._={brand:"Subquery",sql:D,selectedFields:$,alias:F,isWith:X,usedTables:J}}};w7=class w7 extends W0{static[z]="WithSubquery"}});var bR="0.44.7";var fR=()=>{};var dB,lB,gR;var hR=R(()=>{qR();fR();gR={startActiveSpan(D,$){if(!dB)return $();if(!lB)lB=dB.trace.getTracer("drizzle-orm",bR);return LR((F,X)=>X.startActiveSpan(D,(J)=>{try{return $(J)}catch(G){throw J.setStatus({code:F.SpanStatusCode.ERROR,message:G instanceof Error?G.message:"Unknown error"}),G}finally{J.end()}}),dB,lB)}}});var tD;var z1=R(()=>{tD=Symbol.for("drizzle:ViewBaseConfig")});function iB(D){return D!==null&&D!==void 0&&typeof D.getSQL==="function"}function Ri(D){let $={sql:"",params:[]};for(let F of D)if($.sql+=F.sql,$.params.push(...F.params),F.typings?.length){if(!$.typings)$.typings=[];$.typings.push(...F.typings)}return $}function vR(D){return typeof D==="object"&&D!==null&&"mapToDriverValue"in D&&typeof D.mapToDriverValue==="function"}function E(D,...$){let F=[];if($.length>0||D.length>0&&D[0]!=="")F.push(new C0(D[0]));for(let[X,J]of $.entries())F.push(J,new C0(D[X+1]));return new r(F)}function k7(D,$){return D.map((F)=>{if(f(F,B8)){if(!(F.name in $))throw Error(`No value for placeholder "${F.name}" was provided`);return $[F.name]}if(f(F,G2)&&f(F.value,B8)){if(!(F.value.name in $))throw Error(`No value for placeholder "${F.value.name}" was provided`);return F.encoder.mapToDriverValue($[F.value.name])}return F})}var C0,r,WF,xR,yR,ZJD,G2,B8,Oi,Z2;var O0=R(()=>{JD();kR();n2();hR();z1();i2();k0();C0=class C0{static[z]="StringChunk";value;constructor(D){this.value=Array.isArray(D)?D:[D]}getSQL(){return new r([this])}};r=class r{constructor(D){this.queryChunks=D;for(let $ of D)if(f($,p)){let F=$[p.Symbol.Schema];this.usedTables.push(F===void 0?$[p.Symbol.Name]:F+"."+$[p.Symbol.Name])}}static[z]="SQL";decoder=xR;shouldInlineParams=!1;usedTables=[];append(D){return this.queryChunks.push(...D.queryChunks),this}toQuery(D){return gR.startActiveSpan("drizzle.buildSQL",($)=>{let F=this.buildQueryFromSourceParams(this.queryChunks,D);return $?.setAttributes({"drizzle.query.text":F.sql,"drizzle.query.params":JSON.stringify(F.params)}),F})}buildQueryFromSourceParams(D,$){let F=Object.assign({},$,{inlineParams:$.inlineParams||this.shouldInlineParams,paramStartIndex:$.paramStartIndex||{value:0}}),{casing:X,escapeName:J,escapeParam:G,prepareTyping:Y,inlineParams:B,paramStartIndex:H}=F;return Ri(D.map((U)=>{if(f(U,C0))return{sql:U.value.join(""),params:[]};if(f(U,WF))return{sql:J(U.value),params:[]};if(U===void 0)return{sql:"",params:[]};if(Array.isArray(U)){let Q=[new C0("(")];for(let[V,A]of U.entries())if(Q.push(A),V<U.length-1)Q.push(new C0(", "));return Q.push(new C0(")")),this.buildQueryFromSourceParams(Q,F)}if(f(U,r))return this.buildQueryFromSourceParams(U.queryChunks,{...F,inlineParams:B||U.shouldInlineParams});if(f(U,p)){let Q=U[p.Symbol.Schema],V=U[p.Symbol.Name];return{sql:Q===void 0||U[S7]?J(V):J(Q)+"."+J(V),params:[]}}if(f(U,qD)){let Q=X.getColumnCasing(U);if($.invokeSource==="indexes")return{sql:J(Q),params:[]};let V=U.table[p.Symbol.Schema];return{sql:U.table[S7]||V===void 0?J(U.table[p.Symbol.Name])+"."+J(Q):J(V)+"."+J(U.table[p.Symbol.Name])+"."+J(Q),params:[]}}if(f(U,Z2)){let Q=U[tD].schema,V=U[tD].name;return{sql:Q===void 0||U[tD].isAlias?J(V):J(Q)+"."+J(V),params:[]}}if(f(U,G2)){if(f(U.value,B8))return{sql:G(H.value++,U),params:[U],typings:["none"]};let Q=U.value===null?null:U.encoder.mapToDriverValue(U.value);if(f(Q,r))return this.buildQueryFromSourceParams([Q],F);if(B)return{sql:this.mapInlineParam(Q,F),params:[]};let V=["none"];if(Y)V=[Y(U.encoder)];return{sql:G(H.value++,Q),params:[Q],typings:V}}if(f(U,B8))return{sql:G(H.value++,U),params:[U],typings:["none"]};if(f(U,r.Aliased)&&U.fieldAlias!==void 0)return{sql:J(U.fieldAlias),params:[]};if(f(U,W0)){if(U._.isWith)return{sql:J(U._.alias),params:[]};return this.buildQueryFromSourceParams([new C0("("),U._.sql,new C0(") "),new WF(U._.alias)],F)}if(wR(U)){if(U.schema)return{sql:J(U.schema)+"."+J(U.enumName),params:[]};return{sql:J(U.enumName),params:[]}}if(iB(U)){if(U.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([U.getSQL()],F);return this.buildQueryFromSourceParams([new C0("("),U.getSQL(),new C0(")")],F)}if(B)return{sql:this.mapInlineParam(U,F),params:[]};return{sql:G(H.value++,U),params:[U],typings:["none"]}}))}mapInlineParam(D,{escapeString:$}){if(D===null)return"null";if(typeof D==="number"||typeof D==="boolean")return D.toString();if(typeof D==="string")return $(D);if(typeof D==="object"){let F=D.toString();if(F==="[object Object]")return $(JSON.stringify(D));return $(F)}throw Error("Unexpected param value: "+D)}getSQL(){return this}as(D){if(D===void 0)return this;return new r.Aliased(this,D)}mapWith(D){return this.decoder=typeof D==="function"?{mapFromDriverValue:D}:D,this}inlineParams(){return this.shouldInlineParams=!0,this}if(D){return D?this:void 0}};WF=class WF{constructor(D){this.value=D}static[z]="Name";brand;getSQL(){return new r([this])}};xR={mapFromDriverValue:(D)=>D},yR={mapToDriverValue:(D)=>D},ZJD={...xR,...yR};G2=class G2{constructor(D,$=yR){this.value=D,this.encoder=$}static[z]="Param";brand;getSQL(){return new r([this])}};((D)=>{function $(){return new r([])}D.empty=$;function F(H){return new r(H)}D.fromList=F;function X(H){return new r([new C0(H)])}D.raw=X;function J(H,U){let Q=[];for(let[V,A]of H.entries()){if(V>0&&U!==void 0)Q.push(U);Q.push(A)}return new r(Q)}D.join=J;function G(H){return new WF(H)}D.identifier=G;function Y(H){return new B8(H)}D.placeholder=Y;function B(H,U){return new G2(H,U)}D.param=B})(E||(E={}));((D)=>{class ${constructor(F,X){this.sql=F,this.fieldAlias=X}static[z]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new $(this.sql,this.fieldAlias)}}D.Aliased=$})(r||(r={}));B8=class B8{constructor(D){this.name=D}static[z]="Placeholder";getSQL(){return new r([this])}};Oi=Symbol.for("drizzle:IsDrizzleView");Z2=class Z2{static[z]="View";[tD];[Oi]=!0;constructor({name:D,schema:$,selectedFields:F,query:X}){this[tD]={name:D,originalName:D,schema:$,selectedFields:F,query:X,isExisting:!X,isAlias:!1}}getSQL(){return new r([this])}};qD.prototype.getSQL=function(){return new r([this])};p.prototype.getSQL=function(){return new r([this])};W0.prototype.getSQL=function(){return new r([this])}});function nB(D,$,F){let X={},J=D.reduce((G,{path:Y,field:B},H)=>{let U;if(f(B,qD))U=B;else if(f(B,r))U=B.decoder;else U=B.sql.decoder;let Q=G;for(let[V,A]of Y.entries())if(V<Y.length-1){if(!(A in Q))Q[A]={};Q=Q[A]}else{let K=$[H],M=Q[A]=K===null?null:U.mapFromDriverValue(K);if(F&&f(B,qD)&&Y.length===2){let C=Y[0];if(!(C in X))X[C]=M===null?Y8(B.table):!1;else if(typeof X[C]==="string"&&X[C]!==Y8(B.table))X[C]=!1}}return G},{});if(F&&Object.keys(X).length>0){for(let[G,Y]of Object.entries(X))if(typeof Y==="string"&&!F[Y])J[G]=null}return J}function R2(D,$){return Object.entries(D).reduce((F,[X,J])=>{if(typeof X!=="string")return F;let G=$?[...$,X]:[X];if(f(J,qD)||f(J,r)||f(J,r.Aliased))F.push({path:G,field:J});else if(f(J,p))F.push(...R2(J[p.Symbol.Columns],G));else F.push(...R2(J,G));return F},[])}function b7(D,$){let F=Object.keys(D),X=Object.keys($);if(F.length!==X.length)return!1;for(let[J,G]of F.entries())if(G!==X[J])return!1;return!0}function UF(D,$){let F=Object.entries($).filter(([,X])=>X!==void 0).map(([X,J])=>{if(f(J,r)||f(J,qD))return[X,J];else return[X,new G2(J,D[p.Symbol.Columns][X])]});if(F.length===0)throw Error("No values to set");return Object.fromEntries(F)}function uR(D,$){for(let F of $)for(let X of Object.getOwnPropertyNames(F.prototype)){if(X==="constructor")continue;Object.defineProperty(D.prototype,X,Object.getOwnPropertyDescriptor(F.prototype,X)||Object.create(null))}}function mR(D){return D[p.Symbol.Columns]}function f7(D){return f(D,W0)?D._.alias:f(D,Z2)?D[tD].name:f(D,r)?void 0:D[p.Symbol.IsAlias]?D[p.Symbol.Name]:D[p.Symbol.BaseName]}function V1(D,$){return{name:typeof D==="string"&&D.length>0?D:"",config:typeof D==="object"?D:$}}function cR(D){if(typeof D!=="object"||D===null)return!1;if(D.constructor.name!=="Object")return!1;if("logger"in D){let $=typeof D.logger;if($!=="boolean"&&($!=="object"||typeof D.logger.logQuery!=="function")&&$!=="undefined")return!1;return!0}if("schema"in D){let $=typeof D.schema;if($!=="object"&&$!=="undefined")return!1;return!0}if("casing"in D){let $=typeof D.casing;if($!=="string"&&$!=="undefined")return!1;return!0}if("mode"in D){if(D.mode!=="default"||D.mode!=="planetscale"||D.mode!==void 0)return!1;return!0}if("connection"in D){let $=typeof D.connection;if($!=="string"&&$!=="object"&&$!=="undefined")return!1;return!0}if("client"in D){let $=typeof D.client;if($!=="object"&&$!=="function"&&$!=="undefined")return!1;return!0}if(Object.keys(D).length===0)return!0;return!1}var rB;var r0=R(()=>{i2();JD();O0();n2();k0();z1();rB=typeof TextDecoder>"u"?null:new TextDecoder});var pR,dR,sB;var lR=R(()=>{JD();k0();pR=Symbol.for("drizzle:PgInlineForeignKeys"),dR=Symbol.for("drizzle:EnableRLS");sB=class sB extends p{static[z]="PgTable";static Symbol=Object.assign({},p.Symbol,{InlineForeignKeys:pR,EnableRLS:dR});[pR]=[];[dR]=!1;[p.Symbol.ExtraConfigBuilder]=void 0;[p.Symbol.ExtraConfigColumns]={}}});var aB,iR;var nR=R(()=>{JD();lR();aB=class aB{static[z]="PgPrimaryKeyBuilder";columns;name;constructor(D,$){this.columns=D,this.name=$}build(D){return new iR(D,this.columns,this.name)}};iR=class iR{constructor(D,$,F){this.table=D,this.columns=$,this.name=F}static[z]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[sB.Symbol.Name]}_${this.columns.map((D)=>D.name).join("_")}_pk`}}});function s0(D,$){if(vR($)&&!iB(D)&&!f(D,G2)&&!f(D,B8)&&!f(D,qD)&&!f(D,p)&&!f(D,Z2))return new G2(D,$);return D}function TD(...D){let $=D.filter((F)=>F!==void 0);if($.length===0)return;if($.length===1)return new r($);return new r([new C0("("),E.join($,new C0(" and ")),new C0(")")])}function sR(...D){let $=D.filter((F)=>F!==void 0);if($.length===0)return;if($.length===1)return new r($);return new r([new C0("("),E.join($,new C0(" or ")),new C0(")")])}function aR(D){return E`not ${D}`}function I1(D,$){if(Array.isArray($)){if($.length===0)return E`false`;return E`${D} in ${$.map((F)=>s0(F,D))}`}return E`${D} in ${s0($,D)}`}function tR(D,$){if(Array.isArray($)){if($.length===0)return E`true`;return E`${D} not in ${$.map((F)=>s0(F,D))}`}return E`${D} not in ${s0($,D)}`}function h7(D){return E`${D} is null`}function eR(D){return E`${D} is not null`}function DO(D){return E`exists ${D}`}function $O(D){return E`not exists ${D}`}function FO(D,$,F){return E`${D} between ${s0($,D)} and ${s0(F,D)}`}function XO(D,$,F){return E`${D} not between ${s0($,D)} and ${s0(F,D)}`}function JO(D,$){return E`${D} like ${$}`}function GO(D,$){return E`${D} not like ${$}`}function YO(D,$){return E`${D} ilike ${$}`}function BO(D,$){return E`${D} not ilike ${$}`}var S=(D,$)=>{return E`${D} = ${s0($,D)}`},rR=(D,$)=>{return E`${D} <> ${s0($,D)}`},g7=(D,$)=>{return E`${D} > ${s0($,D)}`},oR=(D,$)=>{return E`${D} >= ${s0($,D)}`},QF=(D,$)=>{return E`${D} < ${s0($,D)}`},VF=(D,$)=>{return E`${D} <= ${s0($,D)}`};var HO=R(()=>{i2();JD();k0();O0()});function A1(D){return E`${D} asc`}function OD(D){return E`${D} desc`}var WO=R(()=>{O0()});var oB=R(()=>{HO();WO()});function QO(){return{and:TD,between:FO,eq:S,exists:DO,gt:g7,gte:oR,ilike:YO,inArray:I1,isNull:h7,isNotNull:eR,like:JO,lt:QF,lte:VF,ne:rR,not:aR,notBetween:XO,notExists:$O,notLike:GO,notIlike:BO,notInArray:tR,or:sR,sql:E}}function VO(){return{sql:E,asc:A1,desc:OD}}function AO(D,$){if(Object.keys(D).length===1&&"default"in D&&!f(D.default,p))D=D.default;let F={},X={},J={};for(let[G,Y]of Object.entries(D))if(f(Y,p)){let B=s8(Y),H=X[B];F[B]=G,J[G]={tsName:G,dbName:Y[p.Symbol.Name],schema:Y[p.Symbol.Schema],columns:Y[p.Symbol.Columns],relations:H?.relations??{},primaryKey:H?.primaryKey??[]};for(let Q of Object.values(Y[p.Symbol.Columns]))if(Q.primary)J[G].primaryKey.push(Q);let U=Y[p.Symbol.ExtraConfigBuilder]?.(Y[p.Symbol.ExtraConfigColumns]);if(U){for(let Q of Object.values(U))if(f(Q,aB))J[G].primaryKey.push(...Q.columns)}}else if(f(Y,UO)){let B=s8(Y.table),H=F[B],U=Y.config($(Y.table)),Q;for(let[V,A]of Object.entries(U))if(H){let K=J[H];if(K.relations[V]=A,Q)K.primaryKey.push(...Q)}else{if(!(B in X))X[B]={relations:{},primaryKey:Q};X[B].relations[V]=A}}return{tables:J,tableNamesMap:F}}function Ei(D){return function(F,X){return new H8(D,F,X,X?.fields.reduce((J,G)=>J&&G.notNull,!0)??!1)}}function ji(D){return function(F,X){return new v7(D,F,X)}}function KO(D,$,F){if(f(F,H8)&&F.config)return{fields:F.config.fields,references:F.config.references};let X=$[s8(F.referencedTable)];if(!X)throw Error(`Table "${F.referencedTable[p.Symbol.Name]}" not found in schema`);let J=D[X];if(!J)throw Error(`Table "${X}" not found in schema`);let G=F.sourceTable,Y=$[s8(G)];if(!Y)throw Error(`Table "${G[p.Symbol.Name]}" not found in schema`);let B=[];for(let H of Object.values(J.relations))if(F.relationName&&F!==H&&H.relationName===F.relationName||!F.relationName&&H.referencedTable===F.sourceTable)B.push(H);if(B.length>1)throw F.relationName?Error(`There are multiple relations with name "${F.relationName}" in table "${X}"`):Error(`There are multiple relations between "${X}" and "${F.sourceTable[p.Symbol.Name]}". Please specify relation name`);if(B[0]&&f(B[0],H8)&&B[0].config)return{fields:B[0].config.references,references:B[0].config.fields};throw Error(`There is not enough information to infer relation "${Y}.${F.fieldName}"`)}function _O(D){return{one:Ei(D),many:ji(D)}}function AF(D,$,F,X,J=(G)=>G){let G={};for(let[Y,B]of X.entries())if(B.isJson){let H=$.relations[B.tsKey],U=F[Y],Q=typeof U==="string"?JSON.parse(U):U;G[B.tsKey]=f(H,H8)?Q&&AF(D,D[B.relationTableTsKey],Q,B.selection,J):Q.map((V)=>AF(D,D[B.relationTableTsKey],V,B.selection,J))}else{let H=J(F[Y]),U=B.field,Q;if(f(U,qD))Q=U;else if(f(U,r))Q=U.decoder;else Q=U.sql.decoder;G[B.tsKey]=H===null?null:Q.mapFromDriverValue(H)}return G}var tB,UO,H8,v7;var x7=R(()=>{k0();i2();JD();nR();oB();O0();tB=class tB{constructor(D,$,F){this.sourceTable=D,this.referencedTable=$,this.relationName=F,this.referencedTableName=$[p.Symbol.Name]}static[z]="Relation";referencedTableName;fieldName};UO=class UO{constructor(D,$){this.table=D,this.config=$}static[z]="Relations"};H8=class H8 extends tB{constructor(D,$,F,X){super(D,$,F?.relationName);this.config=F,this.isNullable=X}static[z]="One";withFieldName(D){let $=new H8(this.sourceTable,this.referencedTable,this.config,this.isNullable);return $.fieldName=D,$}};v7=class v7 extends tB{constructor(D,$,F){super(D,$,F?.relationName);this.config=F}static[z]="Many";withFieldName(D){let $=new v7(this.sourceTable,this.referencedTable,this.config);return $.fieldName=D,$}}});function KF(D,$){return new Proxy(D,new y7($,!1))}function K1(D,$){return new Proxy(D,new V3(new Proxy(D.table,new y7($,!1))))}function eB(D,$){return new r.Aliased(u7(D.sql,$),D.fieldAlias)}function u7(D,$){return E.join(D.queryChunks.map((F)=>{if(f(F,qD))return K1(F,$);if(f(F,r))return u7(F,$);if(f(F,r.Aliased))return eB(F,$);return F}))}var V3,y7;var _F=R(()=>{i2();JD();O0();k0();z1();V3=class V3{constructor(D){this.table=D}static[z]="ColumnAliasProxyHandler";get(D,$){if($==="table")return this.table;return D[$]}};y7=class y7{constructor(D,$){this.alias=D,this.replaceOriginalName=$}static[z]="TableAliasProxyHandler";get(D,$){if($===p.Symbol.IsAlias)return!0;if($===p.Symbol.Name)return this.alias;if(this.replaceOriginalName&&$===p.Symbol.OriginalName)return this.alias;if($===tD)return{...D[tD],name:this.alias,isAlias:!0};if($===p.Symbol.Columns){let X=D[p.Symbol.Columns];if(!X)return X;let J={};return Object.keys(X).map((G)=>{J[G]=new Proxy(X[G],new V3(new Proxy(D,this)))}),J}let F=D[$];if(f(F,qD))return new Proxy(F,new V3(new Proxy(D,this)));return F}}});var U0;var A3=R(()=>{_F();i2();JD();O0();n2();z1();U0=class U0{static[z]="SelectionProxyHandler";config;constructor(D){this.config={...D}}get(D,$){if($==="_")return{...D._,selectedFields:new Proxy(D._.selectedFields,this)};if($===tD)return{...D[tD],selectedFields:new Proxy(D[tD].selectedFields,this)};if(typeof $==="symbol")return D[$];let X=(f(D,W0)?D._.selectedFields:f(D,Z2)?D[tD].selectedFields:D)[$];if(f(X,r.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!X.isSelectionField)return X.sql;let J=X.clone();return J.isSelectionField=!0,J}if(f(X,r)){if(this.config.sqlBehavior==="sql")return X;throw Error(`You tried to reference "${$}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}if(f(X,qD)){if(this.config.alias)return new Proxy(X,new V3(new Proxy(X.table,new y7(this.config.alias,this.config.replaceOriginalName??!1))));return X}if(typeof X!=="object"||X===null)return X;return new Proxy(X,new U0(this.config))}}});var m0;var S1=R(()=>{JD();m0=class m0{static[z]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(D){return this.then(void 0,D)}finally(D){return this.then(($)=>{return D?.(),$},($)=>{throw D?.(),$})}then(D,$){return this.execute().then(D,$)}}});var DH,CO;var $H=R(()=>{JD();I7();DH=class DH{static[z]="SQLiteForeignKeyBuilder";reference;_onUpdate;_onDelete;constructor(D,$){if(this.reference=()=>{let{name:F,columns:X,foreignColumns:J}=D();return{name:F,columns:X,foreignTable:J[0].table,foreignColumns:J}},$)this._onUpdate=$.onUpdate,this._onDelete=$.onDelete}onUpdate(D){return this._onUpdate=D,this}onDelete(D){return this._onDelete=D,this}build(D){return new CO(D,this)}};CO=class CO{constructor(D,$){this.table=D,this.reference=$.reference,this.onUpdate=$._onUpdate,this.onDelete=$._onDelete}static[z]="SQLiteForeignKey";reference;onUpdate;onDelete;getName(){let{name:D,columns:$,foreignColumns:F}=this.reference(),X=$.map((Y)=>Y.name),J=F.map((Y)=>Y.name),G=[this.table[J2],...X,F[0].table[J2],...J];return D??`${G.join("_")}_fk`}}});function MO(D,$){return`${D[J2]}_${$.join("_")}_unique`}var FH=R(()=>{I7()});var E0,F0;var W8=R(()=>{pB();i2();JD();$H();FH();E0=class E0 extends cB{static[z]="SQLiteColumnBuilder";foreignKeyConfigs=[];references(D,$={}){return this.foreignKeyConfigs.push({ref:D,actions:$}),this}unique(D){return this.config.isUnique=!0,this.config.uniqueName=D,this}generatedAlwaysAs(D,$){return this.config.generated={as:D,type:"always",mode:$?.mode??"virtual"},this}buildForeignKeys(D,$){return this.foreignKeyConfigs.map(({ref:F,actions:X})=>{return((J,G)=>{let Y=new DH(()=>{let B=J();return{columns:[D],foreignColumns:[B]}});if(G.onUpdate)Y.onUpdate(G.onUpdate);if(G.onDelete)Y.onDelete(G.onDelete);return Y.build($)})(F,X)})}};F0=class F0 extends qD{constructor(D,$){if(!$.uniqueName)$.uniqueName=MO(D,[$.name]);super(D,$);this.table=D}static[z]="SQLiteColumn"}});function PO(D,$){let{name:F,config:X}=V1(D,$);if(X?.mode==="json")return new OO(F);if(X?.mode==="bigint")return new ZO(F);return new jO(F)}var ZO,RO,OO,EO,jO,NO;var XH=R(()=>{JD();r0();W8();ZO=class ZO extends E0{static[z]="SQLiteBigIntBuilder";constructor(D){super(D,"bigint","SQLiteBigInt")}build(D){return new RO(D,this.config)}};RO=class RO extends F0{static[z]="SQLiteBigInt";getSQLType(){return"blob"}mapFromDriverValue(D){if(typeof Buffer<"u"&&Buffer.from){let $=Buffer.isBuffer(D)?D:D instanceof ArrayBuffer?Buffer.from(D):D.buffer?Buffer.from(D.buffer,D.byteOffset,D.byteLength):Buffer.from(D);return BigInt($.toString("utf8"))}return BigInt(rB.decode(D))}mapToDriverValue(D){return Buffer.from(D.toString())}};OO=class OO extends E0{static[z]="SQLiteBlobJsonBuilder";constructor(D){super(D,"json","SQLiteBlobJson")}build(D){return new EO(D,this.config)}};EO=class EO extends F0{static[z]="SQLiteBlobJson";getSQLType(){return"blob"}mapFromDriverValue(D){if(typeof Buffer<"u"&&Buffer.from){let $=Buffer.isBuffer(D)?D:D instanceof ArrayBuffer?Buffer.from(D):D.buffer?Buffer.from(D.buffer,D.byteOffset,D.byteLength):Buffer.from(D);return JSON.parse($.toString("utf8"))}return JSON.parse(rB.decode(D))}mapToDriverValue(D){return Buffer.from(JSON.stringify(D))}};jO=class jO extends E0{static[z]="SQLiteBlobBufferBuilder";constructor(D){super(D,"buffer","SQLiteBlobBuffer")}build(D){return new NO(D,this.config)}};NO=class NO extends F0{static[z]="SQLiteBlobBuffer";mapFromDriverValue(D){if(Buffer.isBuffer(D))return D;return Buffer.from(D)}getSQLType(){return"blob"}}});function zO(D){return($,F)=>{let{name:X,config:J}=V1($,F);return new LO(X,J,D)}}var LO,qO;var JH=R(()=>{JD();r0();W8();LO=class LO extends E0{static[z]="SQLiteCustomColumnBuilder";constructor(D,$,F){super(D,"custom","SQLiteCustomColumn");this.config.fieldConfig=$,this.config.customTypeParams=F}build(D){return new qO(D,this.config)}};qO=class qO extends F0{static[z]="SQLiteCustomColumn";sqlName;mapTo;mapFrom;constructor(D,$){super(D,$);this.sqlName=$.customTypeParams.dataType($.fieldConfig),this.mapTo=$.customTypeParams.toDriver,this.mapFrom=$.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(D){return typeof this.mapFrom==="function"?this.mapFrom(D):D}mapToDriverValue(D){return typeof this.mapTo==="function"?this.mapTo(D):D}}});function vD(D,$){let{name:F,config:X}=V1(D,$);if(X?.mode==="timestamp"||X?.mode==="timestamp_ms")return new TO(F,X.mode);if(X?.mode==="boolean")return new kO(F,X.mode);return new IO(F)}var CF,MF,IO,SO,TO,wO,kO,bO;var GH=R(()=>{JD();O0();r0();W8();CF=class CF extends E0{static[z]="SQLiteBaseIntegerBuilder";constructor(D,$,F){super(D,$,F);this.config.autoIncrement=!1}primaryKey(D){if(D?.autoIncrement)this.config.autoIncrement=!0;return this.config.hasDefault=!0,super.primaryKey()}};MF=class MF extends F0{static[z]="SQLiteBaseInteger";autoIncrement=this.config.autoIncrement;getSQLType(){return"integer"}};IO=class IO extends CF{static[z]="SQLiteIntegerBuilder";constructor(D){super(D,"number","SQLiteInteger")}build(D){return new SO(D,this.config)}};SO=class SO extends MF{static[z]="SQLiteInteger"};TO=class TO extends CF{static[z]="SQLiteTimestampBuilder";constructor(D,$){super(D,"date","SQLiteTimestamp");this.config.mode=$}defaultNow(){return this.default(E`(cast((julianday('now') - 2440587.5)*86400000 as integer))`)}build(D){return new wO(D,this.config)}};wO=class wO extends MF{static[z]="SQLiteTimestamp";mode=this.config.mode;mapFromDriverValue(D){if(this.config.mode==="timestamp")return new Date(D*1000);return new Date(D)}mapToDriverValue(D){let $=D.getTime();if(this.config.mode==="timestamp")return Math.floor($/1000);return $}};kO=class kO extends CF{static[z]="SQLiteBooleanBuilder";constructor(D,$){super(D,"boolean","SQLiteBoolean");this.config.mode=$}build(D){return new bO(D,this.config)}};bO=class bO extends MF{static[z]="SQLiteBoolean";mode=this.config.mode;mapFromDriverValue(D){return Number(D)===1}mapToDriverValue(D){return D?1:0}}});function uO(D,$){let{name:F,config:X}=V1(D,$),J=X?.mode;return J==="number"?new hO(F):J==="bigint"?new xO(F):new fO(F)}var fO,gO,hO,vO,xO,yO;var YH=R(()=>{JD();r0();W8();fO=class fO extends E0{static[z]="SQLiteNumericBuilder";constructor(D){super(D,"string","SQLiteNumeric")}build(D){return new gO(D,this.config)}};gO=class gO extends F0{static[z]="SQLiteNumeric";mapFromDriverValue(D){if(typeof D==="string")return D;return String(D)}getSQLType(){return"numeric"}};hO=class hO extends E0{static[z]="SQLiteNumericNumberBuilder";constructor(D){super(D,"number","SQLiteNumericNumber")}build(D){return new vO(D,this.config)}};vO=class vO extends F0{static[z]="SQLiteNumericNumber";mapFromDriverValue(D){if(typeof D==="number")return D;return Number(D)}mapToDriverValue=String;getSQLType(){return"numeric"}};xO=class xO extends E0{static[z]="SQLiteNumericBigIntBuilder";constructor(D){super(D,"bigint","SQLiteNumericBigInt")}build(D){return new yO(D,this.config)}};yO=class yO extends F0{static[z]="SQLiteNumericBigInt";mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){return"numeric"}}});function ZF(D){return new mO(D??"")}var mO,cO;var BH=R(()=>{JD();W8();mO=class mO extends E0{static[z]="SQLiteRealBuilder";constructor(D){super(D,"number","SQLiteReal")}build(D){return new cO(D,this.config)}};cO=class cO extends F0{static[z]="SQLiteReal";getSQLType(){return"real"}}});function L(D,$={}){let{name:F,config:X}=V1(D,$);if(X.mode==="json")return new lO(F);return new pO(F,X)}var pO,dO,lO,iO;var HH=R(()=>{JD();r0();W8();pO=class pO extends E0{static[z]="SQLiteTextBuilder";constructor(D,$){super(D,"string","SQLiteText");this.config.enumValues=$.enum,this.config.length=$.length}build(D){return new dO(D,this.config)}};dO=class dO extends F0{static[z]="SQLiteText";enumValues=this.config.enumValues;length=this.config.length;constructor(D,$){super(D,$)}getSQLType(){return`text${this.config.length?`(${this.config.length})`:""}`}};lO=class lO extends E0{static[z]="SQLiteTextJsonBuilder";constructor(D){super(D,"json","SQLiteTextJson")}build(D){return new iO(D,this.config)}};iO=class iO extends F0{static[z]="SQLiteTextJson";getSQLType(){return"text"}mapFromDriverValue(D){return JSON.parse(D)}mapToDriverValue(D){return JSON.stringify(D)}}});function nO(){return{blob:PO,customType:zO,integer:vD,numeric:uO,real:ZF,text:L}}var rO=R(()=>{XH();JH();GH();YH();BH();HH()});function Ni(D,$,F,X,J=D){let G=new j0(D,X,J),Y=typeof $==="function"?$(nO()):$,B=Object.fromEntries(Object.entries(Y).map(([U,Q])=>{let V=Q;V.setName(U);let A=V.build(G);return G[WH].push(...V.buildForeignKeys(A,G)),[U,A]})),H=Object.assign(G,B);if(H[p.Symbol.Columns]=B,H[p.Symbol.ExtraConfigColumns]=B,F)H[j0.Symbol.ExtraConfigBuilder]=F;return H}var WH,j0,Q0=(D,$,F)=>{return Ni(D,$,F)};var a8=R(()=>{JD();k0();rO();WH=Symbol.for("drizzle:SQLiteInlineForeignKeys");j0=class j0 extends p{static[z]="SQLiteTable";static Symbol=Object.assign({},p.Symbol,{InlineForeignKeys:WH});[p.Symbol.Columns];[WH]=[];[p.Symbol.ExtraConfigBuilder]=void 0}});var sO=()=>{};function Y0(D){return new UH(D,!1)}function tO(D){return new UH(D,!0)}var UH,aO,oO;var eO=R(()=>{JD();UH=class UH{constructor(D,$){this.name=D,this.unique=$}static[z]="SQLiteIndexBuilderOn";on(...D){return new aO(this.name,D,this.unique)}};aO=class aO{static[z]="SQLiteIndexBuilder";config;constructor(D,$,F){this.config={name:D,columns:$,unique:F,where:void 0}}where(D){return this.config.where=D,this}build(D){return new oO(this.config,D)}};oO=class oO{static[z]="SQLiteIndex";config;constructor(D,$){this.config={...D,table:$}}}});var DE=()=>{};function r2(D){if(f(D,j0))return[`${D[p.Symbol.BaseName]}`];if(f(D,W0))return D._.usedTables??[];if(f(D,r))return D.usedTables??[];return[]}var K3=R(()=>{JD();O0();n2();k0();a8()});var RF;var $E=R(()=>{JD();S1();A3();a8();k0();r0();K3();RF=class RF extends m0{constructor(D,$,F,X){super();this.table=D,this.session=$,this.dialect=F,this.config={table:D,withList:X}}static[z]="SQLiteDelete";config;where(D){return this.config.where=D,this}orderBy(...D){if(typeof D[0]==="function"){let $=D[0](new Proxy(this.config.table[p.Symbol.Columns],new U0({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),F=Array.isArray($)?$:[$];this.config.orderBy=F}else{let $=D;this.config.orderBy=$}return this}limit(D){return this.config.limit=D,this}returning(D=this.table[j0.Symbol.Columns]){return this.config.returning=R2(D),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:D,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(D=!0){return this.session[D?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0,void 0,{type:"delete",tables:r2(this.config.table)})}prepare(){return this._prepare(!1)}run=(D)=>{return this._prepare().run(D)};all=(D)=>{return this._prepare().all(D)};get=(D)=>{return this._prepare().get(D)};values=(D)=>{return this._prepare().values(D)};async execute(D){return this._prepare().execute(D)}$dynamic(){return this}}});function Pi(D){return(D.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((F)=>F.toLowerCase()).join("_")}function Li(D){return(D.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((F,X,J)=>{let G=J===0?X.toLowerCase():`${X[0].toUpperCase()}${X.slice(1)}`;return F+G},"")}function qi(D){return D}var QH;var FE=R(()=>{JD();k0();QH=class QH{static[z]="CasingCache";cache={};cachedTables={};convert;constructor(D){this.convert=D==="snake_case"?Pi:D==="camelCase"?Li:qi}getColumnCasing(D){if(!D.keyAsName)return D.name;let $=D.table[p.Symbol.Schema]??"public",F=D.table[p.Symbol.OriginalName],X=`${$}.${F}.${D.name}`;if(!this.cache[X])this.cacheTable(D.table);return this.cache[X]}cacheTable(D){let $=D[p.Symbol.Schema]??"public",F=D[p.Symbol.OriginalName],X=`${$}.${F}`;if(!this.cachedTables[X]){for(let J of Object.values(D[p.Symbol.Columns])){let G=`${X}.${J.name}`;this.cache[G]=this.convert(J.name)}this.cachedTables[X]=!0}}clearCache(){this.cache={},this.cachedTables={}}}});var _3,T1,VH;var OF=R(()=>{JD();_3=class _3 extends Error{static[z]="DrizzleError";constructor({message:D,cause:$}){super(D);this.name="DrizzleError",this.cause=$}};T1=class T1 extends Error{constructor(D,$,F){super(`Failed query: ${D}
1615
1615
  params: ${$}`);if(this.query=D,this.params=$,this.cause=F,Error.captureStackTrace(this,T1),F)this.cause=F}};VH=class VH extends _3{static[z]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}});function EF(D){return E`count(${D||E.raw("*")})`.mapWith(Number)}var XE=R(()=>{O0()});var JE=()=>{};var GE=R(()=>{XE();JE()});var AH=R(()=>{oB();GE();O0()});var KH=R(()=>{XH();W8();JH();GH();YH();BH();HH()});var o8;var jF=R(()=>{JD();O0();o8=class o8 extends Z2{static[z]="SQLiteViewBase"}});var m7,c7;var NF=R(()=>{_F();FE();i2();JD();OF();x7();AH();O0();KH();a8();n2();k0();r0();z1();jF();m7=class m7{static[z]="SQLiteDialect";casing;constructor(D){this.casing=new QH(D?.casing)}escapeName(D){return`"${D}"`}escapeParam(D){return"?"}escapeString(D){return`'${D.replace(/'/g,"''")}'`}buildWithCTE(D){if(!D?.length)return;let $=[E`with `];for(let[F,X]of D.entries())if($.push(E`${E.identifier(X._.alias)} as (${X._.sql})`),F<D.length-1)$.push(E`, `);return $.push(E` `),E.join($)}buildDeleteQuery({table:D,where:$,returning:F,withList:X,limit:J,orderBy:G}){let Y=this.buildWithCTE(X),B=F?E` returning ${this.buildSelection(F,{isSingleTable:!0})}`:void 0,H=$?E` where ${$}`:void 0,U=this.buildOrderBy(G),Q=this.buildLimit(J);return E`${Y}delete from ${D}${H}${B}${U}${Q}`}buildUpdateSet(D,$){let F=D[p.Symbol.Columns],X=Object.keys(F).filter((G)=>$[G]!==void 0||F[G]?.onUpdateFn!==void 0),J=X.length;return E.join(X.flatMap((G,Y)=>{let B=F[G],H=$[G]??E.param(B.onUpdateFn(),B),U=E`${E.identifier(this.casing.getColumnCasing(B))} = ${H}`;if(Y<J-1)return[U,E.raw(", ")];return[U]}))}buildUpdateQuery({table:D,set:$,where:F,returning:X,withList:J,joins:G,from:Y,limit:B,orderBy:H}){let U=this.buildWithCTE(J),Q=this.buildUpdateSet(D,$),V=Y&&E.join([E.raw(" from "),this.buildFromTable(Y)]),A=this.buildJoins(G),K=X?E` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,M=F?E` where ${F}`:void 0,C=this.buildOrderBy(H),Z=this.buildLimit(B);return E`${U}update ${D} set ${Q}${V}${A}${M}${K}${C}${Z}`}buildSelection(D,{isSingleTable:$=!1}={}){let F=D.length,X=D.flatMap(({field:J},G)=>{let Y=[];if(f(J,r.Aliased)&&J.isSelectionField)Y.push(E.identifier(J.fieldAlias));else if(f(J,r.Aliased)||f(J,r)){let B=f(J,r.Aliased)?J.sql:J;if($)Y.push(new r(B.queryChunks.map((H)=>{if(f(H,qD))return E.identifier(this.casing.getColumnCasing(H));return H})));else Y.push(B);if(f(J,r.Aliased))Y.push(E` as ${E.identifier(J.fieldAlias)}`)}else if(f(J,qD)){let B=J.table[p.Symbol.Name];if(J.columnType==="SQLiteNumericBigInt")if($)Y.push(E`cast(${E.identifier(this.casing.getColumnCasing(J))} as text)`);else Y.push(E`cast(${E.identifier(B)}.${E.identifier(this.casing.getColumnCasing(J))} as text)`);else if($)Y.push(E.identifier(this.casing.getColumnCasing(J)));else Y.push(E`${E.identifier(B)}.${E.identifier(this.casing.getColumnCasing(J))}`)}if(G<F-1)Y.push(E`, `);return Y});return E.join(X)}buildJoins(D){if(!D||D.length===0)return;let $=[];if(D)for(let[F,X]of D.entries()){if(F===0)$.push(E` `);let J=X.table,G=X.on?E` on ${X.on}`:void 0;if(f(J,j0)){let Y=J[j0.Symbol.Name],B=J[j0.Symbol.Schema],H=J[j0.Symbol.OriginalName],U=Y===H?void 0:X.alias;$.push(E`${E.raw(X.joinType)} join ${B?E`${E.identifier(B)}.`:void 0}${E.identifier(H)}${U&&E` ${E.identifier(U)}`}${G}`)}else $.push(E`${E.raw(X.joinType)} join ${J}${G}`);if(F<D.length-1)$.push(E` `)}return E.join($)}buildLimit(D){return typeof D==="object"||typeof D==="number"&&D>=0?E` limit ${D}`:void 0}buildOrderBy(D){let $=[];if(D){for(let[F,X]of D.entries())if($.push(X),F<D.length-1)$.push(E`, `)}return $.length>0?E` order by ${E.join($)}`:void 0}buildFromTable(D){if(f(D,p)&&D[p.Symbol.IsAlias])return E`${E`${E.identifier(D[p.Symbol.Schema]??"")}.`.if(D[p.Symbol.Schema])}${E.identifier(D[p.Symbol.OriginalName])} ${E.identifier(D[p.Symbol.Name])}`;return D}buildSelectQuery({withList:D,fields:$,fieldsFlat:F,where:X,having:J,table:G,joins:Y,orderBy:B,groupBy:H,limit:U,offset:Q,distinct:V,setOperators:A}){let K=F??R2($);for(let y of K)if(f(y.field,qD)&&Y8(y.field.table)!==(f(G,W0)?G._.alias:f(G,o8)?G[tD].name:f(G,r)?void 0:Y8(G))&&!((XD)=>Y?.some(({alias:kD})=>kD===(XD[p.Symbol.IsAlias]?Y8(XD):XD[p.Symbol.BaseName])))(y.field.table)){let XD=Y8(y.field.table);throw Error(`Your "${y.path.join("->")}" field references a column "${XD}"."${y.field.name}", but the table "${XD}" is not part of the query! Did you forget to join it?`)}let M=!Y||Y.length===0,C=this.buildWithCTE(D),Z=V?E` distinct`:void 0,O=this.buildSelection(K,{isSingleTable:M}),j=this.buildFromTable(G),P=this.buildJoins(Y),T=X?E` where ${X}`:void 0,h=J?E` having ${J}`:void 0,q=[];if(H){for(let[y,XD]of H.entries())if(q.push(XD),y<H.length-1)q.push(E`, `)}let N=q.length>0?E` group by ${E.join(q)}`:void 0,w=this.buildOrderBy(B),i=this.buildLimit(U),I=Q?E` offset ${Q}`:void 0,x=E`${C}select${Z} ${O} from ${j}${P}${T}${N}${h}${w}${i}${I}`;if(A.length>0)return this.buildSetOperations(x,A);return x}buildSetOperations(D,$){let[F,...X]=$;if(!F)throw Error("Cannot pass undefined values to any set operator");if(X.length===0)return this.buildSetOperationQuery({leftSelect:D,setOperator:F});return this.buildSetOperations(this.buildSetOperationQuery({leftSelect:D,setOperator:F}),X)}buildSetOperationQuery({leftSelect:D,setOperator:{type:$,isAll:F,rightSelect:X,limit:J,orderBy:G,offset:Y}}){let B=E`${D.getSQL()} `,H=E`${X.getSQL()}`,U;if(G&&G.length>0){let K=[];for(let M of G)if(f(M,F0))K.push(E.identifier(M.name));else if(f(M,r)){for(let C=0;C<M.queryChunks.length;C++){let Z=M.queryChunks[C];if(f(Z,F0))M.queryChunks[C]=E.identifier(this.casing.getColumnCasing(Z))}K.push(E`${M}`)}else K.push(E`${M}`);U=E` order by ${E.join(K,E`, `)}`}let Q=typeof J==="object"||typeof J==="number"&&J>=0?E` limit ${J}`:void 0,V=E.raw(`${$} ${F?"all ":""}`),A=Y?E` offset ${Y}`:void 0;return E`${B}${V}${H}${U}${Q}${A}`}buildInsertQuery({table:D,values:$,onConflict:F,returning:X,withList:J,select:G}){let Y=[],B=D[p.Symbol.Columns],H=Object.entries(B).filter(([M,C])=>!C.shouldDisableInsert()),U=H.map(([,M])=>E.identifier(this.casing.getColumnCasing(M)));if(G){let M=$;if(f(M,r))Y.push(M);else Y.push(M.getSQL())}else{let M=$;Y.push(E.raw("values "));for(let[C,Z]of M.entries()){let O=[];for(let[j,P]of H){let T=Z[j];if(T===void 0||f(T,G2)&&T.value===void 0){let h;if(P.default!==null&&P.default!==void 0)h=f(P.default,r)?P.default:E.param(P.default,P);else if(P.defaultFn!==void 0){let q=P.defaultFn();h=f(q,r)?q:E.param(q,P)}else if(!P.default&&P.onUpdateFn!==void 0){let q=P.onUpdateFn();h=f(q,r)?q:E.param(q,P)}else h=E`null`;O.push(h)}else O.push(T)}if(Y.push(O),C<M.length-1)Y.push(E`, `)}}let Q=this.buildWithCTE(J),V=E.join(Y),A=X?E` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,K=F?.length?E.join(F):void 0;return E`${Q}insert into ${D} ${U} ${V}${K}${A}`}sqlToQuery(D,$){return D.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,invokeSource:$})}buildRelationalQuery({fullSchema:D,schema:$,tableNamesMap:F,table:X,tableConfig:J,queryConfig:G,tableAlias:Y,nestedQueryRelation:B,joinOn:H}){let U=[],Q,V,A=[],K,M=[];if(G===!0)U=Object.entries(J.columns).map(([O,j])=>({dbKey:j.name,tsKey:O,field:K1(j,Y),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let Z=Object.fromEntries(Object.entries(J.columns).map(([q,N])=>[q,K1(N,Y)]));if(G.where){let q=typeof G.where==="function"?G.where(Z,QO()):G.where;K=q&&u7(q,Y)}let O=[],j=[];if(G.columns){let q=!1;for(let[N,w]of Object.entries(G.columns)){if(w===void 0)continue;if(N in J.columns){if(!q&&w===!0)q=!0;j.push(N)}}if(j.length>0)j=q?j.filter((N)=>G.columns?.[N]===!0):Object.keys(J.columns).filter((N)=>!j.includes(N))}else j=Object.keys(J.columns);for(let q of j){let N=J.columns[q];O.push({tsKey:q,value:N})}let P=[];if(G.with)P=Object.entries(G.with).filter((q)=>!!q[1]).map(([q,N])=>({tsKey:q,queryConfig:N,relation:J.relations[q]}));let T;if(G.extras){T=typeof G.extras==="function"?G.extras(Z,{sql:E}):G.extras;for(let[q,N]of Object.entries(T))O.push({tsKey:q,value:eB(N,Y)})}for(let{tsKey:q,value:N}of O)U.push({dbKey:f(N,r.Aliased)?N.fieldAlias:J.columns[q].name,tsKey:q,field:f(N,qD)?K1(N,Y):N,relationTableTsKey:void 0,isJson:!1,selection:[]});let h=typeof G.orderBy==="function"?G.orderBy(Z,VO()):G.orderBy??[];if(!Array.isArray(h))h=[h];A=h.map((q)=>{if(f(q,qD))return K1(q,Y);return u7(q,Y)}),Q=G.limit,V=G.offset;for(let{tsKey:q,queryConfig:N,relation:w}of P){let i=KO($,F,w),I=s8(w.referencedTable),x=F[I],y=`${Y}_${q}`,XD=TD(...i.fields.map((F5,aD)=>S(K1(i.references[aD],y),K1(F5,Y)))),kD=this.buildRelationalQuery({fullSchema:D,schema:$,tableNamesMap:F,table:D[x],tableConfig:$[x],queryConfig:f(w,H8)?N===!0?{limit:1}:{...N,limit:1}:N,tableAlias:y,joinOn:XD,nestedQueryRelation:w}),j9=E`(${kD.sql})`.as(q);U.push({dbKey:q,tsKey:q,field:j9,relationTableTsKey:x,isJson:!0,selection:kD.selection})}}if(U.length===0)throw new _3({message:`No fields selected for table "${J.tsName}" ("${Y}"). You need to have at least one item in "columns", "with" or "extras". If you need to select all columns, omit the "columns" key or set it to undefined.`});let C;if(K=TD(H,K),B){let Z=E`json_array(${E.join(U.map(({field:P})=>f(P,F0)?E.identifier(this.casing.getColumnCasing(P)):f(P,r.Aliased)?P.sql:P),E`, `)})`;if(f(B,v7))Z=E`coalesce(json_group_array(${Z}), json_array())`;let O=[{dbKey:"data",tsKey:"data",field:Z.as("data"),isJson:!0,relationTableTsKey:J.tsName,selection:U}];if(Q!==void 0||V!==void 0||A.length>0)C=this.buildSelectQuery({table:KF(X,Y),fields:{},fieldsFlat:[{path:[],field:E.raw("*")}],where:K,limit:Q,offset:V,orderBy:A,setOperators:[]}),K=void 0,Q=void 0,V=void 0,A=void 0;else C=KF(X,Y);C=this.buildSelectQuery({table:f(C,j0)?C:new W0(C,{},Y),fields:{},fieldsFlat:O.map(({field:P})=>({path:[],field:f(P,qD)?K1(P,Y):P})),joins:M,where:K,limit:Q,offset:V,orderBy:A,setOperators:[]})}else C=this.buildSelectQuery({table:KF(X,Y),fields:{},fieldsFlat:U.map(({field:Z})=>({path:[],field:f(Z,qD)?K1(Z,Y):Z})),joins:M,where:K,limit:Q,offset:V,orderBy:A,setOperators:[]});return{tableTsKey:J.tsName,sql:C,selection:U}}};c7=class c7 extends m7{static[z]="SQLiteSyncDialect";migrate(D,$,F){let X=F===void 0?"__drizzle_migrations":typeof F==="string"?"__drizzle_migrations":F.migrationsTable??"__drizzle_migrations",J=E`
1616
1616
  CREATE TABLE IF NOT EXISTS ${E.identifier(X)} (
1617
1617
  id SERIAL PRIMARY KEY,
1618
1618
  hash text NOT NULL,
1619
1619
  created_at numeric
1620
1620
  )
1621
- `;$.run(J);let Y=$.values(E`SELECT id, hash, created_at FROM ${E.identifier(X)} ORDER BY created_at DESC LIMIT 1`)[0]??void 0;$.run(E`BEGIN`);try{for(let B of D)if(!Y||Number(Y[2])<B.folderMillis){for(let H of B.sql)$.run(E.raw(H));$.run(E`INSERT INTO ${E.identifier(X)} ("hash", "created_at") VALUES(${B.hash}, ${B.folderMillis})`)}$.run(E`COMMIT`)}catch(B){throw $.run(E`ROLLBACK`),B}}}});var _H;var YE=R(()=>{JD();_H=class _H{static[z]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}});function PF(D,$){return(F,X,...J)=>{let G=[X,...J].map((Y)=>({type:D,isAll:$,rightSelect:Y}));for(let Y of G)if(!b7(F.getSelectedFields(),Y.rightSelect.getSelectedFields()))throw Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return F.addSetOperators(G)}}var s2,BE,CH,zi=()=>({union:Ii,unionAll:Si,intersect:Ti,except:wi}),Ii,Si,Ti,wi;var MH=R(()=>{JD();YE();S1();A3();O0();n2();k0();r0();z1();K3();jF();s2=class s2{static[z]="SQLiteSelectBuilder";fields;session;dialect;withList;distinct;constructor(D){this.fields=D.fields,this.session=D.session,this.dialect=D.dialect,this.withList=D.withList,this.distinct=D.distinct}from(D){let $=!!this.fields,F;if(this.fields)F=this.fields;else if(f(D,W0))F=Object.fromEntries(Object.keys(D._.selectedFields).map((X)=>[X,D[X]]));else if(f(D,o8))F=D[tD].selectedFields;else if(f(D,r))F={};else F=mR(D);return new CH({table:D,fields:F,isPartialSelect:$,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct})}};BE=class BE extends _H{static[z]="SQLiteSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;cacheConfig=void 0;usedTables=new Set;constructor({table:D,fields:$,isPartialSelect:F,session:X,dialect:J,withList:G,distinct:Y}){super();this.config={withList:G,table:D,fields:{...$},distinct:Y,setOperators:[]},this.isPartialSelect=F,this.session=X,this.dialect=J,this._={selectedFields:$,config:this.config},this.tableName=f7(D),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{};for(let B of r2(D))this.usedTables.add(B)}getUsedTables(){return[...this.usedTables]}createJoin(D){return($,F)=>{let X=this.tableName,J=f7($);for(let G of r2($))this.usedTables.add(G);if(typeof J==="string"&&this.config.joins?.some((G)=>G.alias===J))throw Error(`Alias "${J}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof X==="string")this.config.fields={[X]:this.config.fields};if(typeof J==="string"&&!f($,r)){let G=f($,W0)?$._.selectedFields:f($,Z2)?$[tD].selectedFields:$[p.Symbol.Columns];this.config.fields[J]=G}}if(typeof F==="function")F=F(new Proxy(this.config.fields,new U0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));if(!this.config.joins)this.config.joins=[];if(this.config.joins.push({on:F,table:$,joinType:D,alias:J}),typeof J==="string")switch(D){case"left":{this.joinsNotNullableMap[J]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([G])=>[G,!1])),this.joinsNotNullableMap[J]=!0;break}case"cross":case"inner":{this.joinsNotNullableMap[J]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([G])=>[G,!1])),this.joinsNotNullableMap[J]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");crossJoin=this.createJoin("cross");createSetOperator(D,$){return(F)=>{let X=typeof F==="function"?F(zi()):F;if(!b7(this.getSelectedFields(),X.getSelectedFields()))throw Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:D,isAll:$,rightSelect:X}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);except=this.createSetOperator("except",!1);addSetOperators(D){return this.config.setOperators.push(...D),this}where(D){if(typeof D==="function")D=D(new Proxy(this.config.fields,new U0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=D,this}having(D){if(typeof D==="function")D=D(new Proxy(this.config.fields,new U0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.having=D,this}groupBy(...D){if(typeof D[0]==="function"){let $=D[0](new Proxy(this.config.fields,new U0({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray($)?$:[$]}else this.config.groupBy=D;return this}orderBy(...D){if(typeof D[0]==="function"){let $=D[0](new Proxy(this.config.fields,new U0({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),F=Array.isArray($)?$:[$];if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=F;else this.config.orderBy=F}else{let $=D;if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=$;else this.config.orderBy=$}return this}limit(D){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).limit=D;else this.config.limit=D;return this}offset(D){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).offset=D;else this.config.offset=D;return this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:D,...$}=this.dialect.sqlToQuery(this.getSQL());return $}as(D){let $=[];if($.push(...r2(this.config.table)),this.config.joins)for(let F of this.config.joins)$.push(...r2(F.table));return new Proxy(new W0(this.getSQL(),this.config.fields,D,!1,[...new Set($)]),new U0({alias:D,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new U0({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}};CH=class CH extends BE{static[z]="SQLiteSelect";_prepare(D=!0){if(!this.session)throw Error("Cannot execute a query on a query builder. Please use a database instance instead.");let $=R2(this.config.fields),F=this.session[D?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),$,"all",!0,void 0,{type:"select",tables:[...this.usedTables]},this.cacheConfig);return F.joinsNotNullableMap=this.joinsNotNullableMap,F}$withCache(D){return this.cacheConfig=D===void 0?{config:{},enable:!0,autoInvalidate:!0}:D===!1?{enable:!1}:{enable:!0,autoInvalidate:!0,...D},this}prepare(){return this._prepare(!1)}run=(D)=>{return this._prepare().run(D)};all=(D)=>{return this._prepare().all(D)};get=(D)=>{return this._prepare().get(D)};values=(D)=>{return this._prepare().values(D)};async execute(){return this.all()}};uR(CH,[m0]);Ii=PF("union",!1),Si=PF("union",!0),Ti=PF("intersect",!1),wi=PF("except",!1)});var p7;var ZH=R(()=>{JD();A3();NF();n2();MH();p7=class p7{static[z]="SQLiteQueryBuilder";dialect;dialectConfig;constructor(D){this.dialect=f(D,m7)?D:void 0,this.dialectConfig=f(D,m7)?void 0:D}$with=(D,$)=>{let F=this;return{as:(J)=>{if(typeof J==="function")J=J(F);return new Proxy(new w7(J.getSQL(),$??("getSelectedFields"in J?J.getSelectedFields()??{}:{}),D,!0),new U0({alias:D,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...D){let $=this;function F(J){return new s2({fields:J??void 0,session:void 0,dialect:$.getDialect(),withList:D})}function X(J){return new s2({fields:J??void 0,session:void 0,dialect:$.getDialect(),withList:D,distinct:!0})}return{select:F,selectDistinct:X}}select(D){return new s2({fields:D??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(D){return new s2({fields:D??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}getDialect(){if(!this.dialect)this.dialect=new c7(this.dialectConfig);return this.dialect}}});var LF,RH;var HE=R(()=>{JD();S1();O0();a8();k0();r0();K3();ZH();LF=class LF{constructor(D,$,F,X){this.table=D,this.session=$,this.dialect=F,this.withList=X}static[z]="SQLiteInsertBuilder";values(D){if(D=Array.isArray(D)?D:[D],D.length===0)throw Error("values() must be called with at least one value");let $=D.map((F)=>{let X={},J=this.table[p.Symbol.Columns];for(let G of Object.keys(F)){let Y=F[G];X[G]=f(Y,r)?Y:new G2(Y,J[G])}return X});return new RH(this.table,$,this.session,this.dialect,this.withList)}select(D){let $=typeof D==="function"?D(new p7):D;if(!f($,r)&&!b7(this.table[HF],$._.selectedFields))throw Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");return new RH(this.table,$,this.session,this.dialect,this.withList,!0)}};RH=class RH extends m0{constructor(D,$,F,X,J,G){super();this.session=F,this.dialect=X,this.config={table:D,values:$,withList:J,select:G}}static[z]="SQLiteInsert";config;returning(D=this.config.table[j0.Symbol.Columns]){return this.config.returning=R2(D),this}onConflictDoNothing(D={}){if(!this.config.onConflict)this.config.onConflict=[];if(D.target===void 0)this.config.onConflict.push(E` on conflict do nothing`);else{let $=Array.isArray(D.target)?E`${D.target}`:E`${[D.target]}`,F=D.where?E` where ${D.where}`:E``;this.config.onConflict.push(E` on conflict ${$} do nothing${F}`)}return this}onConflictDoUpdate(D){if(D.where&&(D.targetWhere||D.setWhere))throw Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');if(!this.config.onConflict)this.config.onConflict=[];let $=D.where?E` where ${D.where}`:void 0,F=D.targetWhere?E` where ${D.targetWhere}`:void 0,X=D.setWhere?E` where ${D.setWhere}`:void 0,J=Array.isArray(D.target)?E`${D.target}`:E`${[D.target]}`,G=this.dialect.buildUpdateSet(this.config.table,UF(this.config.table,D.set));return this.config.onConflict.push(E` on conflict ${J}${F} do update set ${G}${$}${X}`),this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:D,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(D=!0){return this.session[D?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0,void 0,{type:"insert",tables:r2(this.config.table)})}prepare(){return this._prepare(!1)}run=(D)=>{return this._prepare().run(D)};all=(D)=>{return this._prepare().all(D)};get=(D)=>{return this._prepare().get(D)};values=(D)=>{return this._prepare().values(D)};async execute(){return this.config.returning?this.all():this.run()}$dynamic(){return this}}});var qF,WE;var UE=R(()=>{JD();S1();A3();a8();n2();k0();r0();z1();K3();jF();qF=class qF{constructor(D,$,F,X){this.table=D,this.session=$,this.dialect=F,this.withList=X}static[z]="SQLiteUpdateBuilder";set(D){return new WE(this.table,UF(this.table,D),this.session,this.dialect,this.withList)}};WE=class WE extends m0{constructor(D,$,F,X,J){super();this.session=F,this.dialect=X,this.config={set:$,table:D,withList:J,joins:[]}}static[z]="SQLiteUpdate";config;from(D){return this.config.from=D,this}createJoin(D){return($,F)=>{let X=f7($);if(typeof X==="string"&&this.config.joins.some((J)=>J.alias===X))throw Error(`Alias "${X}" is already used in this query`);if(typeof F==="function"){let J=this.config.from?f($,j0)?$[p.Symbol.Columns]:f($,W0)?$._.selectedFields:f($,o8)?$[tD].selectedFields:void 0:void 0;F=F(new Proxy(this.config.table[p.Symbol.Columns],new U0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),J&&new Proxy(J,new U0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}return this.config.joins.push({on:F,table:$,joinType:D,alias:X}),this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(D){return this.config.where=D,this}orderBy(...D){if(typeof D[0]==="function"){let $=D[0](new Proxy(this.config.table[p.Symbol.Columns],new U0({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),F=Array.isArray($)?$:[$];this.config.orderBy=F}else{let $=D;this.config.orderBy=$}return this}limit(D){return this.config.limit=D,this}returning(D=this.config.table[j0.Symbol.Columns]){return this.config.returning=R2(D),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:D,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(D=!0){return this.session[D?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0,void 0,{type:"insert",tables:r2(this.config.table)})}prepare(){return this._prepare(!1)}run=(D)=>{return this._prepare().run(D)};all=(D)=>{return this._prepare().all(D)};get=(D)=>{return this._prepare().get(D)};values=(D)=>{return this._prepare().values(D)};async execute(){return this.config.returning?this.all():this.run()}$dynamic(){return this}}});var OH=R(()=>{$E();HE();ZH();MH();UE()});var d7;var QE=R(()=>{JD();O0();d7=class d7 extends r{constructor(D){super(d7.buildEmbeddedCount(D.source,D.filters).queryChunks);this.params=D,this.session=D.session,this.sql=d7.buildCount(D.source,D.filters)}sql;static[z]="SQLiteCountBuilderAsync";[Symbol.toStringTag]="SQLiteCountBuilderAsync";session;static buildEmbeddedCount(D,$){return E`(select count(*) from ${D}${E.raw(" where ").if($)}${$})`}static buildCount(D,$){return E`select count(*) from ${D}${E.raw(" where ").if($)}${$}`}then(D,$){return Promise.resolve(this.session.count(this.sql)).then(D,$)}catch(D){return this.then(void 0,D)}finally(D){return this.then(($)=>{return D?.(),$},($)=>{throw D?.(),$})}}});var jH,zF,EH;var VE=R(()=>{JD();S1();x7();jH=class jH{constructor(D,$,F,X,J,G,Y,B){this.mode=D,this.fullSchema=$,this.schema=F,this.tableNamesMap=X,this.table=J,this.tableConfig=G,this.dialect=Y,this.session=B}static[z]="SQLiteAsyncRelationalQueryBuilder";findMany(D){return this.mode==="sync"?new EH(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?D:{},"many"):new zF(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?D:{},"many")}findFirst(D){return this.mode==="sync"?new EH(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?{...D,limit:1}:{limit:1},"first"):new zF(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?{...D,limit:1}:{limit:1},"first")}};zF=class zF extends m0{constructor(D,$,F,X,J,G,Y,B,H){super();this.fullSchema=D,this.schema=$,this.tableNamesMap=F,this.table=X,this.tableConfig=J,this.dialect=G,this.session=Y,this.config=B,this.mode=H}static[z]="SQLiteAsyncRelationalQuery";mode;getSQL(){return this.dialect.buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName}).sql}_prepare(D=!1){let{query:$,builtQuery:F}=this._toSQL();return this.session[D?"prepareOneTimeQuery":"prepareQuery"](F,void 0,this.mode==="first"?"get":"all",!0,(X,J)=>{let G=X.map((Y)=>AF(this.schema,this.tableConfig,Y,$.selection,J));if(this.mode==="first")return G[0];return G})}prepare(){return this._prepare(!1)}_toSQL(){let D=this.dialect.buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName}),$=this.dialect.sqlToQuery(D.sql);return{query:D,builtQuery:$}}toSQL(){return this._toSQL().builtQuery}executeRaw(){if(this.mode==="first")return this._prepare(!1).get();return this._prepare(!1).all()}async execute(){return this.executeRaw()}};EH=class EH extends zF{static[z]="SQLiteSyncRelationalQuery";sync(){return this.executeRaw()}}});var C3;var AE=R(()=>{JD();S1();C3=class C3 extends m0{constructor(D,$,F,X,J){super();this.execute=D,this.getSQL=$,this.dialect=X,this.mapBatchResult=J,this.config={action:F}}static[z]="SQLiteRaw";config;getQuery(){return{...this.dialect.sqlToQuery(this.getSQL()),method:this.config.action}}mapResult(D,$){return $?this.mapBatchResult(D):D}_prepare(){return this}isResponseInArrayMode(){return!1}}});var l7;var IF=R(()=>{JD();A3();O0();OH();n2();QE();VE();AE();l7=class l7{constructor(D,$,F,X){this.resultKind=D,this.dialect=$,this.session=F,this._=X?{schema:X.schema,fullSchema:X.fullSchema,tableNamesMap:X.tableNamesMap}:{schema:void 0,fullSchema:{},tableNamesMap:{}},this.query={};let J=this.query;if(this._.schema)for(let[G,Y]of Object.entries(this._.schema))J[G]=new jH(D,X.fullSchema,this._.schema,this._.tableNamesMap,X.fullSchema[G],Y,$,F);this.$cache={invalidate:async(G)=>{}}}static[z]="BaseSQLiteDatabase";query;$with=(D,$)=>{let F=this;return{as:(J)=>{if(typeof J==="function")J=J(new p7(F.dialect));return new Proxy(new w7(J.getSQL(),$??("getSelectedFields"in J?J.getSelectedFields()??{}:{}),D,!0),new U0({alias:D,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(D,$){return new d7({source:D,filters:$,session:this.session})}with(...D){let $=this;function F(B){return new s2({fields:B??void 0,session:$.session,dialect:$.dialect,withList:D})}function X(B){return new s2({fields:B??void 0,session:$.session,dialect:$.dialect,withList:D,distinct:!0})}function J(B){return new qF(B,$.session,$.dialect,D)}function G(B){return new LF(B,$.session,$.dialect,D)}function Y(B){return new RF(B,$.session,$.dialect,D)}return{select:F,selectDistinct:X,update:J,insert:G,delete:Y}}select(D){return new s2({fields:D??void 0,session:this.session,dialect:this.dialect})}selectDistinct(D){return new s2({fields:D??void 0,session:this.session,dialect:this.dialect,distinct:!0})}update(D){return new qF(D,this.session,this.dialect)}$cache;insert(D){return new LF(D,this.session,this.dialect)}delete(D){return new RF(D,this.session,this.dialect)}run(D){let $=typeof D==="string"?E.raw(D):D.getSQL();if(this.resultKind==="async")return new C3(async()=>this.session.run($),()=>$,"run",this.dialect,this.session.extractRawRunValueFromBatchResult.bind(this.session));return this.session.run($)}all(D){let $=typeof D==="string"?E.raw(D):D.getSQL();if(this.resultKind==="async")return new C3(async()=>this.session.all($),()=>$,"all",this.dialect,this.session.extractRawAllValueFromBatchResult.bind(this.session));return this.session.all($)}get(D){let $=typeof D==="string"?E.raw(D):D.getSQL();if(this.resultKind==="async")return new C3(async()=>this.session.get($),()=>$,"get",this.dialect,this.session.extractRawGetValueFromBatchResult.bind(this.session));return this.session.get($)}values(D){let $=typeof D==="string"?E.raw(D):D.getSQL();if(this.resultKind==="async")return new C3(async()=>this.session.values($),()=>$,"values",this.dialect,this.session.extractRawValuesValueFromBatchResult.bind(this.session));return this.session.values($)}transaction(D,$){return this.session.transaction(D,$)}}});var KE=()=>{};async function PH(D,$){let F=`${D}-${JSON.stringify($)}`,J=new TextEncoder().encode(F),G=await crypto.subtle.digest("SHA-256",J);return[...new Uint8Array(G)].map((H)=>H.toString(16).padStart(2,"0")).join("")}var _E,NH;var CE=R(()=>{JD();_E=class _E{static[z]="Cache"};NH=class NH extends _E{strategy(){return"all"}static[z]="NoopCache";async get(D){return}async put(D,$,F,X){}async onMutate(D){}}});var ME,LH,qH,zH;var IH=R(()=>{CE();JD();OF();S1();IF();ME=class ME extends m0{constructor(D){super();this.resultCb=D}static[z]="ExecuteResultSync";async execute(){return this.resultCb()}sync(){return this.resultCb()}};LH=class LH{constructor(D,$,F,X,J,G){if(this.mode=D,this.executeMethod=$,this.query=F,this.cache=X,this.queryMetadata=J,this.cacheConfig=G,X&&X.strategy()==="all"&&G===void 0)this.cacheConfig={enable:!0,autoInvalidate:!0};if(!this.cacheConfig?.enable)this.cacheConfig=void 0}static[z]="PreparedQuery";joinsNotNullableMap;async queryWithCache(D,$,F){if(this.cache===void 0||f(this.cache,NH)||this.queryMetadata===void 0)try{return await F()}catch(X){throw new T1(D,$,X)}if(this.cacheConfig&&!this.cacheConfig.enable)try{return await F()}catch(X){throw new T1(D,$,X)}if((this.queryMetadata.type==="insert"||this.queryMetadata.type==="update"||this.queryMetadata.type==="delete")&&this.queryMetadata.tables.length>0)try{let[X]=await Promise.all([F(),this.cache.onMutate({tables:this.queryMetadata.tables})]);return X}catch(X){throw new T1(D,$,X)}if(!this.cacheConfig)try{return await F()}catch(X){throw new T1(D,$,X)}if(this.queryMetadata.type==="select"){let X=await this.cache.get(this.cacheConfig.tag??await PH(D,$),this.queryMetadata.tables,this.cacheConfig.tag!==void 0,this.cacheConfig.autoInvalidate);if(X===void 0){let J;try{J=await F()}catch(G){throw new T1(D,$,G)}return await this.cache.put(this.cacheConfig.tag??await PH(D,$),J,this.cacheConfig.autoInvalidate?this.queryMetadata.tables:[],this.cacheConfig.tag!==void 0,this.cacheConfig.config),J}return X}try{return await F()}catch(X){throw new T1(D,$,X)}}getQuery(){return this.query}mapRunResult(D,$){return D}mapAllResult(D,$){throw Error("Not implemented")}mapGetResult(D,$){throw Error("Not implemented")}execute(D){if(this.mode==="async")return this[this.executeMethod](D);return new ME(()=>this[this.executeMethod](D))}mapResult(D,$){switch(this.executeMethod){case"run":return this.mapRunResult(D,$);case"all":return this.mapAllResult(D,$);case"get":return this.mapGetResult(D,$)}}};qH=class qH{constructor(D){this.dialect=D}static[z]="SQLiteSession";prepareOneTimeQuery(D,$,F,X,J,G,Y){return this.prepareQuery(D,$,F,X,J,G,Y)}run(D){let $=this.dialect.sqlToQuery(D);try{return this.prepareOneTimeQuery($,void 0,"run",!1).run()}catch(F){throw new _3({cause:F,message:`Failed to run the query '${$.sql}'`})}}extractRawRunValueFromBatchResult(D){return D}all(D){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(D),void 0,"run",!1).all()}extractRawAllValueFromBatchResult(D){throw Error("Not implemented")}get(D){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(D),void 0,"run",!1).get()}extractRawGetValueFromBatchResult(D){throw Error("Not implemented")}values(D){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(D),void 0,"run",!1).values()}async count(D){return(await this.values(D))[0][0]}extractRawValuesValueFromBatchResult(D){throw Error("Not implemented")}};zH=class zH extends l7{constructor(D,$,F,X,J=0){super(D,$,F,X);this.schema=X,this.nestedIndex=J}static[z]="SQLiteTransaction";rollback(){throw new VH}}});var ZE=()=>{};var SF=R(()=>{KE();sO();KH();IF();NF();$H();eO();DE();OH();IH();a8();FH();K3();ZE()});var SH,TH,RE;var wH=R(()=>{JD();YF();O0();SF();IH();r0();SH=class SH extends qH{constructor(D,$,F,X={}){super($);this.client=D,this.schema=F,this.logger=X.logger??new yB}static[z]="SQLiteBunSession";logger;exec(D){this.client.exec(D)}prepareQuery(D,$,F,X,J){let G=this.client.prepare(D.sql);return new RE(G,D,this.logger,$,F,X,J)}transaction(D,$={}){let F=new TH("sync",this.dialect,this,this.schema),X;return this.client.transaction(()=>{X=D(F)})[$.behavior??"deferred"](),X}};TH=class TH extends zH{static[z]="SQLiteBunTransaction";transaction(D){let $=`sp${this.nestedIndex}`,F=new TH("sync",this.dialect,this.session,this.schema,this.nestedIndex+1);this.session.run(E.raw(`savepoint ${$}`));try{let X=D(F);return this.session.run(E.raw(`release savepoint ${$}`)),X}catch(X){throw this.session.run(E.raw(`rollback to savepoint ${$}`)),X}}};RE=class RE extends LH{constructor(D,$,F,X,J,G,Y){super("sync",J,$);this.stmt=D,this.logger=F,this.fields=X,this._isResponseInArrayMode=G,this.customResultMapper=Y}static[z]="SQLiteBunPreparedQuery";run(D){let $=k7(this.query.params,D??{});return this.logger.logQuery(this.query.sql,$),this.stmt.run(...$)}all(D){let{fields:$,query:F,logger:X,joinsNotNullableMap:J,stmt:G,customResultMapper:Y}=this;if(!$&&!Y){let H=k7(F.params,D??{});return X.logQuery(F.sql,H),G.all(...H)}let B=this.values(D);if(Y)return Y(B);return B.map((H)=>nB($,H,J))}get(D){let $=k7(this.query.params,D??{});this.logger.logQuery(this.query.sql,$);let F=this.stmt.values(...$)[0];if(!F)return;let{fields:X,joinsNotNullableMap:J,customResultMapper:G}=this;if(!X&&!G)return F;if(G)return G([F]);return nB(X,F,J)}values(D){let $=k7(this.query.params,D??{});return this.logger.logQuery(this.query.sql,$),this.stmt.values(...$)}isResponseInArrayMode(){return this._isResponseInArrayMode}}});import{Database as TF}from"bun:sqlite";function M3(D,$={}){let F=new c7({casing:$.casing}),X;if($.logger===!0)X=new xB;else if($.logger!==!1)X=$.logger;let J;if($.schema){let B=AO($.schema,_O);J={fullSchema:$.schema,schema:B.tables,tableNamesMap:B.tableNamesMap}}let G=new SH(D,F,J,{logger:X}),Y=new OE("sync",F,G,J);return Y.$client=D,Y}function Z3(...D){if(D[0]===void 0||typeof D[0]==="string"){let $=D[0]===void 0?new TF:new TF(D[0]);return M3($,D[1])}if(cR(D[0])){let{connection:$,client:F,...X}=D[0];if(F)return M3(F,X);if(typeof $==="object"){let{source:G,...Y}=$,B=Object.values(Y).filter((U)=>U!==void 0).length?Y:void 0,H=new TF(G,B);return M3(H,X)}let J=new TF($);return M3(J,X)}return M3(D[0],D[1])}var OE;var EE=R(()=>{JD();YF();x7();IF();NF();r0();wH();OE=class OE extends l7{static[z]="BunSQLiteDatabase"};((D)=>{function $(F){return M3({},F)}D.mock=$})(Z3||(Z3={}))});var kH=R(()=>{EE();wH()});import ki from"crypto";import bH from"fs";function jE(D){let $=D.migrationsFolder,F=[],X=`${$}/meta/_journal.json`;if(!bH.existsSync(X))throw Error("Can't find meta/_journal.json file");let J=bH.readFileSync(`${$}/meta/_journal.json`).toString(),G=JSON.parse(J);for(let Y of G.entries){let B=`${$}/${Y.tag}.sql`;try{let H=bH.readFileSync(`${$}/${Y.tag}.sql`).toString(),U=H.split("--> statement-breakpoint").map((Q)=>{return Q});F.push({sql:U,bps:Y.breakpoints,folderMillis:Y.when,hash:ki.createHash("sha256").update(H).digest("hex")})}catch{throw Error(`No file ${B} found in ${$} folder`)}}return F}var NE=()=>{};function wF(D,$){let F=jE($);D.dialect.migrate(F,D.session,$)}var fH=R(()=>{NE()});var V0=R(()=>{_F();pB();i2();JD();OF();YF();S1();x7();AH();n2();k0();r0();z1()});var tF={};z8(tF,{workerSecrets:()=>f0,workerIdentity:()=>E2,workerConfig:()=>a2,skillDrafts:()=>p0,skillBindings:()=>t7,sessionEntries:()=>AD,messages:()=>a,executionLogs:()=>f1,evolutionObservations:()=>b0,decisionPipelineSamples:()=>O2,cronJobs:()=>lD,conversations:()=>n,brainArtifacts:()=>wD,brainAdmissionProposals:()=>FD,brainAdmissionDecisions:()=>B2,agentTasks:()=>B0});var B0,n,AD,a,f1,t7,p0,b0,O2,E2,a2,lD,wD,FD,B2,f0;var aH=R(()=>{SF();B0=Q0("agent_tasks",{id:L("id").primaryKey(),prompt:L("prompt").notNull(),status:L("status",{enum:["queued","running","succeeded","failed","cancelled"]}).notNull(),conversationId:L("conversation_id"),createdAt:L("created_at").notNull().$defaultFn(()=>new Date().toISOString()),finishedAt:L("finished_at"),result:L("result",{mode:"json"}).$type(),error:L("error")},(D)=>({createdAtIdx:Y0("agent_tasks_created_at_idx").on(D.createdAt)})),n=Q0("conversations",{id:L("id").primaryKey(),taskId:L("task_id").references(()=>B0.id),channel:L("channel").$type().notNull(),chatId:L("chat_id").notNull(),threadId:L("thread_id"),status:L("status",{enum:["open","closed"]}).notNull().default("open"),summary:L("summary"),startedAt:L("started_at").notNull().$defaultFn(()=>new Date().toISOString()),lastActiveAt:L("last_active_at").notNull().$defaultFn(()=>new Date().toISOString()),closedAt:L("closed_at")},(D)=>({lookupIdx:Y0("conversations_lookup_idx").on(D.channel,D.chatId,D.threadId,D.status),lastActiveAtIdx:Y0("conversations_last_active_at_idx").on(D.lastActiveAt)})),AD=Q0("session_entries",{sessionKey:L("session_key").primaryKey(),currentConversationId:L("current_conversation_id").notNull().references(()=>n.id),channel:L("channel").$type().notNull(),chatId:L("chat_id").notNull(),threadId:L("thread_id"),accountId:L("account_id"),status:L("status",{enum:["active","closed"]}).notNull().default("active"),sessionStartedAt:L("session_started_at").notNull().$defaultFn(()=>new Date().toISOString()),lastInteractionAt:L("last_interaction_at").notNull().$defaultFn(()=>new Date().toISOString()),resetAt:L("reset_at"),resetReason:L("reset_reason"),contextTokens:vD("context_tokens").notNull().default(0),totalTokens:vD("total_tokens").notNull().default(0),totalTokensFresh:vD("total_tokens_fresh").notNull().default(0),compactionCount:vD("compaction_count").notNull().default(0),memoryFlushAt:L("memory_flush_at"),memoryFlushCompactionCount:vD("memory_flush_compaction_count").notNull().default(0),engineBindings:L("engine_bindings",{mode:"json"}).$type().notNull().$defaultFn(()=>({})),createdAt:L("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:L("updated_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({currentConversationIdIdx:Y0("session_entries_current_conversation_id_idx").on(D.currentConversationId),lastInteractionAtIdx:Y0("session_entries_last_interaction_at_idx").on(D.lastInteractionAt)})),a=Q0("messages",{id:vD("id").primaryKey({autoIncrement:!0}),conversationId:L("conversation_id").notNull().references(()=>n.id,{onDelete:"cascade"}),role:L("role",{enum:["system","user","assistant","tool"]}).notNull(),content:L("content").notNull(),toolCalls:L("tool_calls",{mode:"json"}).$type(),toolCallId:L("tool_call_id"),tokensIn:vD("tokens_in"),tokensOut:vD("tokens_out"),richMetadata:L("rich_metadata"),createdAt:L("created_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({conversationIdIdx:Y0("messages_conversation_id_idx").on(D.conversationId)})),f1=Q0("execution_logs",{id:vD("id").primaryKey({autoIncrement:!0}),conversationId:L("conversation_id"),toolName:L("tool_name").notNull(),params:L("params",{mode:"json"}).$type(),result:L("result",{mode:"json"}).$type(),duration:vD("duration"),createdAt:L("created_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({conversationIdIdx:Y0("execution_logs_conversation_id_idx").on(D.conversationId)})),t7=Q0("skill_bindings",{id:vD("id").primaryKey({autoIncrement:!0}),source:L("source").$type().notNull(),brainName:L("brain_name"),skillName:L("skill_name").notNull(),enabled:vD("enabled",{mode:"boolean"}).notNull().default(!0),priority:vD("priority").notNull().default(0),config:L("config",{mode:"json"}).$type(),createdAt:L("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:L("updated_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({uniqueBinding:tO("skill_bindings_source_brain_name_idx").on(D.source,D.brainName,D.skillName)})),p0=Q0("skill_drafts",{id:vD("id").primaryKey({autoIncrement:!0}),proposedName:L("proposed_name").notNull(),source:L("source").$type().notNull(),bodyMarkdown:L("body_markdown").notNull(),rationale:L("rationale").notNull().default(""),status:L("status").$type().notNull().default("pending"),createdAt:L("created_at").notNull().$defaultFn(()=>new Date().toISOString()),decidedAt:L("decided_at"),decidedBy:L("decided_by")}),b0=Q0("evolution_observations",{id:vD("id").primaryKey({autoIncrement:!0}),conversationId:L("conversation_id"),kind:L("kind").notNull(),payload:L("payload",{mode:"json"}).$type().notNull(),noticedAt:L("noticed_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({noticedAtIdx:Y0("evolution_observations_noticed_at_idx").on(D.noticedAt)})),O2=Q0("decision_pipeline_samples",{id:vD("id").primaryKey({autoIncrement:!0}),stage:L("stage",{enum:["intent_classifier","quality_gate","conversation_classifier"]}).notNull(),source:L("source").notNull(),evaluator:L("evaluator").notNull(),reason:L("reason").notNull(),fallback:vD("fallback",{mode:"boolean"}).notNull().default(!1),createdAt:L("created_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({stageCreatedAtIdx:Y0("decision_pipeline_samples_stage_created_at_idx").on(D.stage,D.createdAt)})),E2=Q0("worker_identity",{pk:L("pk").primaryKey().default("default"),workerId:L("worker_id").notNull().unique(),apiTokenEnc:L("api_token_enc").notNull(),nonce:L("nonce").notNull(),authTag:L("auth_tag").notNull(),bootstrapShownAt:L("bootstrap_shown_at").notNull().$defaultFn(()=>new Date().toISOString()),createdAt:L("created_at").notNull().$defaultFn(()=>new Date().toISOString()),rotatedAt:L("rotated_at")}),a2=Q0("worker_config",{pk:L("pk").primaryKey().default("default"),configJson:L("config_json",{mode:"json"}).$type().notNull(),version:vD("version").notNull().default(1),updatedAt:L("updated_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedBy:L("updated_by",{enum:["bootstrap","api","cli"]})}),lD=Q0("cron_jobs",{id:L("id").primaryKey(),expression:L("expression").notNull(),prompt:L("prompt").notNull(),channel:L("channel").$type().notNull(),chatId:L("chat_id").notNull(),accountId:L("account_id").notNull(),enabled:vD("enabled",{mode:"boolean"}).notNull().default(!0),lastRunAt:L("last_run_at"),nextRunAt:L("next_run_at"),createdAt:L("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:L("updated_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({dueIdx:Y0("cron_jobs_due_idx").on(D.enabled,D.nextRunAt)})),wD=Q0("brain_artifacts",{id:L("id").primaryKey(),scopeId:L("scope_id"),type:L("type").notNull(),ref:L("ref").notNull(),hash:L("hash"),source:L("source").$type().notNull(),sensitivity:L("sensitivity").$type().notNull().default("internal"),retention:L("retention"),status:L("status").$type().notNull().default("active"),summary:L("summary"),evidenceRefs:L("evidence_refs",{mode:"json"}).$type().notNull().$defaultFn(()=>[]),metadata:L("metadata",{mode:"json"}).$type(),createdAt:L("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:L("updated_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({scopeTypeIdx:Y0("brain_artifacts_scope_type_idx").on(D.scopeId,D.type),statusTypeIdx:Y0("brain_artifacts_status_type_idx").on(D.status,D.type),updatedAtIdx:Y0("brain_artifacts_updated_at_idx").on(D.updatedAt)})),FD=Q0("brain_admission_proposals",{id:L("id").primaryKey(),scopeId:L("scope_id"),soulId:L("soul_id").notNull(),kind:L("kind").notNull(),target:L("target").notNull(),summary:L("summary").notNull(),evidence:L("evidence",{mode:"json"}).$type().notNull().$defaultFn(()=>[]),risk:L("risk").$type().notNull().default("high"),confidence:ZF("confidence").notNull(),rollback:L("rollback").notNull(),payload:L("payload",{mode:"json"}).$type(),status:L("status").$type().notNull().default("pending"),createdAt:L("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:L("updated_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({statusKindIdx:Y0("brain_admission_proposals_status_kind_idx").on(D.status,D.kind),scopeIdx:Y0("brain_admission_proposals_scope_id_idx").on(D.scopeId),createdAtIdx:Y0("brain_admission_proposals_created_at_idx").on(D.createdAt)})),B2=Q0("brain_admission_decisions",{id:vD("id").primaryKey({autoIncrement:!0}),proposalId:L("proposal_id").notNull().references(()=>FD.id,{onDelete:"cascade"}),decision:L("decision").$type().notNull(),decidedBy:L("decided_by").notNull(),decidedAt:L("decided_at").notNull().$defaultFn(()=>new Date().toISOString()),reason:L("reason"),appliedAt:L("applied_at"),failureReason:L("failure_reason")},(D)=>({proposalIdx:Y0("brain_admission_decisions_proposal_id_idx").on(D.proposalId),decidedAtIdx:Y0("brain_admission_decisions_decided_at_idx").on(D.decidedAt)})),f0=Q0("worker_secrets",{id:vD("id").primaryKey({autoIncrement:!0}),key:L("key").notNull().unique(),valueEnc:L("value_enc").notNull(),nonce:L("nonce").notNull(),authTag:L("auth_tag").notNull(),createdAt:L("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:L("updated_at").notNull().$defaultFn(()=>new Date().toISOString())})});var GW={};z8(GW,{workerSecrets:()=>f0,workerSchema:()=>tF,workerIdentity:()=>E2,workerConfig:()=>a2,upsertSessionEntry:()=>$W,updateSessionEngineBinding:()=>JW,touchSessionEntry:()=>j3,skillDrafts:()=>p0,skillBindings:()=>t7,sessionEntries:()=>AD,runWorkerMigrations:()=>$4,rotateSessionConversation:()=>FW,recordSessionCompaction:()=>XW,messages:()=>a,listConversations:()=>eH,listConversationMessages:()=>DW,listAgentTasks:()=>tH,initWorkerDb:()=>D4,getWorkerDb:()=>b,getSessionEntry:()=>S0,executionLogs:()=>f1,evolutionObservations:()=>b0,defaultWorkerMigrationsFolder:()=>E3,decisionPipelineSamples:()=>O2,cronJobs:()=>lD,conversations:()=>n,closeWorkerDb:()=>yr,brainArtifacts:()=>wD,brainAdmissionProposals:()=>FD,brainAdmissionDecisions:()=>B2,agentTasks:()=>B0});import{existsSync as kj}from"fs";import oH from"path";import{fileURLToPath as gr}from"url";import{Database as hr}from"bun:sqlite";function vr(D){let $=oH.resolve(bj,"../../drizzle",D);if(kj($))return $;let F=oH.resolve(bj,"drizzle",D);if(kj(F))return F;return $}function xr(D){let $=new hr(D,{create:!0});return $.exec("PRAGMA journal_mode = WAL"),$.exec("PRAGMA foreign_keys = ON"),Z3($,{schema:tF})}function D4(D){return e7=xr(D),e7}function b(){if(!e7)throw Error("Worker database not initialized. Call initWorkerDb() first.");return e7}function yr(){e7=null}function $4(D=E3){wF(b(),{migrationsFolder:D})}function tH(D=200){return b().select().from(B0).orderBy(RD(B0.createdAt)).limit(D).all()}function eH(D=200){return b().select().from(n).orderBy(RD(n.lastActiveAt)).limit(D).all()}function DW(D){return b().select().from(a).where(S(a.conversationId,D)).all()}function S0(D){return b().select().from(AD).where(S(AD.sessionKey,D)).get()??null}function $W(D){let $=b(),F=D.at??new Date().toISOString(),X=S0(D.sessionKey);if(!X)$.insert(AD).values({sessionKey:D.sessionKey,currentConversationId:D.currentConversationId,channel:D.channel,chatId:D.chatId,threadId:D.threadId??null,accountId:D.accountId??null,status:"active",sessionStartedAt:F,lastInteractionAt:F,engineBindings:D.engineBindings??{},createdAt:F,updatedAt:F}).run();else $.update(AD).set({currentConversationId:D.currentConversationId,channel:D.channel,chatId:D.chatId,threadId:D.threadId??null,accountId:D.accountId??null,status:"active",lastInteractionAt:F,engineBindings:D.engineBindings??X.engineBindings,updatedAt:F}).where(S(AD.sessionKey,D.sessionKey)).run();return S0(D.sessionKey)}function j3(D,$={}){if(!S0(D))return null;let X=$.at??new Date().toISOString();return b().update(AD).set({lastInteractionAt:X,updatedAt:X,...$.contextTokens===void 0?{}:{contextTokens:$.contextTokens},...$.totalTokens===void 0?{}:{totalTokens:$.totalTokens},...$.totalTokensFresh===void 0?{}:{totalTokensFresh:$.totalTokensFresh}}).where(S(AD.sessionKey,D)).run(),S0(D)}function FW(D){if(!S0(D.sessionKey))return null;let F=D.at??new Date().toISOString();return b().update(AD).set({currentConversationId:D.currentConversationId,status:"active",sessionStartedAt:F,lastInteractionAt:F,resetAt:F,resetReason:D.resetReason,contextTokens:0,totalTokens:0,totalTokensFresh:0,compactionCount:0,memoryFlushAt:null,memoryFlushCompactionCount:0,engineBindings:{},updatedAt:F}).where(S(AD.sessionKey,D.sessionKey)).run(),S0(D.sessionKey)}function XW(D,$={}){let F=S0(D);if(!F)return null;let X=$.at??new Date().toISOString(),J=F.compactionCount+1;return b().update(AD).set({compactionCount:J,...$.memoryFlushAt===void 0?{}:{memoryFlushAt:$.memoryFlushAt,memoryFlushCompactionCount:J},updatedAt:X}).where(S(AD.sessionKey,D)).run(),S0(D)}function JW(D,$,F,X){let J=S0(D);if(!J)return null;let G={...J.engineBindings};if(F===null)delete G[$];else G[$]=F;return b().update(AD).set({engineBindings:G,updatedAt:X??new Date().toISOString()}).where(S(AD.sessionKey,D)).run(),S0(D)}var bj,E3,e7=null;var gD=R(()=>{V0();kH();fH();aH();aH();bj=oH.dirname(gr(import.meta.url));E3=vr("worker")});import fj from"path";import gj from"process";function mr(D){let $={};for(let[F,X]of Object.entries(D)){let J=/^MAX_CONCURRENT_(.+)$/.exec(F);if(!J)continue;if(J[1]==="TOTAL")continue;let G=J[1].toLowerCase().replace(/_/g,"-"),Y=Number.parseInt(X??"",10);if(Number.isFinite(Y)&&Y>0)$[G]=Y}return $}function $6(){if(eF)return eF;let D=ur.parse(gj.env);return eF=Object.freeze({...D,perEngineLimits:Object.freeze({...mr(gj.env)})}),eF}var ur,eF=null,o;var DX=R(()=>{$0();MD();gD();jD();ur=W.object({PORT:W.coerce.number().default(9217),AIWORKER_WORKER_HOST:W.string().min(1).default("127.0.0.1"),AIWORKER_ADMIN_EXTERNAL_AUTH:W.enum(["1","true","0","false"]).default("0").transform(W7),WORKER_DB_PATH:W.string().default(()=>fj.join(d2(),"worker.db")),WORKER_MIGRATIONS_FOLDER:W.string().default(()=>E3),AIWORKER_MASTER_KEY:W.string().regex(/^[0-9a-f]{64}$/,"AIWORKER_MASTER_KEY must be 32-byte hex (64 hex chars)"),AIWORKER_FORCE_ID:W.string().regex(C2).optional(),AIWORKER_FORCE_TOKEN:W.string().regex(L1).optional(),AIWORKER_ADVERTISED_BASE_URL:W.string().optional(),WORKER_DATA_ROOT:W.string().default(()=>fj.join(d2(),"data-root")),WORKER_WORKSPACE_GIT_ORIGIN:W.string().optional(),AIWORKER_GATEWAY_URL:W.string().url().optional(),AIWORKER_JOIN_TOKEN:W.string().min(1).optional(),AIWORKER_DISPLAY_NAME:W.string().min(1).max(80).optional(),AIWORKER_ENROLL_MODE:W.enum(["auto","otp"]).optional().default("auto"),CLAUDE_CLI_VERSION:W.string().optional(),MAX_CONCURRENT_TOTAL:W.coerce.number().int().min(1).default(4),PROCESS_STALL_TIMEOUT_MS:W.coerce.number().int().min(1).default(120000),PROCESS_KILL_TIMEOUT_MS:W.coerce.number().int().min(0).default(1e4),PROCESS_AUTO_CLEANUP_DELAY_MS:W.coerce.number().int().min(0).default(60000),PROCESS_GC_INTERVAL_MS:W.coerce.number().int().min(0).default(30000)});o=new Proxy({},{get(D,$){return $6()[$]},has(D,$){return $ in $6()},ownKeys(D){return Reflect.ownKeys($6())},getOwnPropertyDescriptor(D,$){return Reflect.getOwnPropertyDescriptor($6(),$)}})});function H2(D){let $=F6[D.engine];if(!$)throw Error(`unknown executor engine: ${D.engine}`);let F=$.variants[D.variant];if(!F)throw Error(`unknown executor variant '${D.variant}' for engine '${D.engine}'`);let{cmd:X,...J}=D.overrides??{},G={...F,...J};return{engine:D.engine,body:G,...X?{cmd:X}:{},...D.modelId===void 0?{}:{modelId:D.modelId},...D.reasoningId===void 0?{}:{reasoningId:D.reasoningId},...D.permissionPolicy===void 0?{}:{permissionPolicy:D.permissionPolicy}}}function hj(D){if(!D||typeof D!=="object")return{...o2};let $=D;if(typeof $.engine==="string")return $;let F=$.type;if(typeof F!=="string")return{...o2};switch(F){case"http":return{engine:"http",variant:"default",overrides:F4({baseUrl:$.baseUrl,apiKey:$.apiKey,model:$.model,timeoutMs:$.timeoutMs})};case"mcp":return{engine:"mcp",variant:"default",overrides:F4({url:$.url,token:$.token,defaultModel:$.defaultModel,tools:$.tools,timeoutMs:$.timeoutMs})};case"cli":return{engine:"cli",variant:"default",overrides:F4({command:$.command,args:$.args,cwd:$.cwd,env:$.env,timeoutMs:$.timeoutMs,sandbox:$.sandbox})};case"claude-code":return{engine:"claude-code",variant:"default",overrides:F4({model:$.model,cliVersion:$.cliVersion,extraArgs:$.extraArgs,env:$.env,workspaceRoot:$.workspaceRoot,timeoutMs:$.timeoutMs})};case"acp":return{engine:"acp",variant:$.agent==="qwen"?"qwen":"gemini",overrides:F4({model:$.model,cliVersion:$.cliVersion,extraArgs:$.extraArgs,env:$.env,timeoutMs:$.timeoutMs})};default:return{...o2}}}function F4(D){let $={};for(let[F,X]of Object.entries(D))if(X!==void 0)$[F]=X;return $}var F6,o2;var _8=R(()=>{F6={http:{variants:{default:{baseUrl:"",apiKey:"",model:"gpt-4o-mini",contextWindowTokens:128000,timeoutMs:30000},"gemini-openai-compat":{baseUrl:"https://generativelanguage.googleapis.com/v1beta/openai",apiKey:"",model:"gemini-2.5-flash",contextWindowTokens:1e6,timeoutMs:30000},deepseek:{baseUrl:"https://api.deepseek.com",apiKey:"",model:"deepseek-chat",contextWindowTokens:64000,timeoutMs:30000},siliconflow:{baseUrl:"https://api.siliconflow.cn/v1",apiKey:"",model:"Qwen/Qwen2.5-7B-Instruct",contextWindowTokens:32000,timeoutMs:30000},openrouter:{baseUrl:"https://openrouter.ai/api/v1",apiKey:"",model:"anthropic/claude-sonnet-4.5",contextWindowTokens:200000,timeoutMs:30000}}},mcp:{variants:{default:{url:"",token:"",timeoutMs:30000}}},cli:{variants:{default:{command:"",args:[],timeoutMs:30000}}},"claude-code":{variants:{default:{contextWindowTokens:200000,timeoutMs:120000},"opus-plan":{model:"opus",contextWindowTokens:200000,permissionPolicy:"plan",timeoutMs:180000}}},acp:{variants:{gemini:{agent:"gemini",contextWindowTokens:1e6,timeoutMs:120000},qwen:{agent:"qwen",contextWindowTokens:32000,timeoutMs:120000}}},codex:{variants:{default:{model:"gpt-5.5",contextWindowTokens:128000,timeoutMs:120000}}},cursor:{variants:{default:{model:"auto",timeoutMs:120000}}}},o2={engine:"http",variant:"default",overrides:{baseUrl:"http://localhost:9999",model:"stub"}}});var vj="local-filesystem",N3;var YW=R(()=>{_8();N3={brains:[{id:vj,type:"filesystem",priority:100,readOnly:!1,config:{}}],brainWriteTarget:vj,brainRetrieval:"first-match",executor:{...o2},channels:[],evolution:{enabled:!1,observationRetentionDays:7}}});async function X6(D){let $=await D.select().from(a2).where(S(a2.pk,"default")).get();if($)return{config:cr($.configJson),version:$.version};let F=new Date().toISOString();return await D.insert(a2).values({pk:"default",configJson:N3,version:1,updatedAt:F,updatedBy:"bootstrap"}).run(),{config:N3,version:1}}function cr(D){let $=D.executor;if($&&typeof $==="object"&&"engine"in $)return D;return{...D,executor:hj($)}}var xj=R(()=>{gD();V0();_8();YW()});import{randomBytes as pr}from"crypto";function P3(){let D=pr(32),$=`${v$}${dr(D)}`;if(!J8($))throw Error("mintApiToken: generated token failed isWorkerApiToken check");return $}function dr(D){return D.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function J6(D,$,F={}){let X=await D.select().from(E2).where(S(E2.pk,"default")).get();if(X){let V=$.decryptString(X.apiTokenEnc,X.nonce,X.authTag);if(!J8(V))throw Error("loadOrMintIdentity: decrypted API token failed isWorkerApiToken check");return await bB(X.workerId),{workerId:X.workerId,token:V,justMinted:!1}}let J=F.forceId??$X();if(!C2.test(J))throw Error(`loadOrMintIdentity: forceId ${J} does not match WORKER_ID_PATTERN`);let G=F.forceToken??P3();if(!J8(G))throw Error("loadOrMintIdentity: forceToken does not match WORKER_API_TOKEN_PATTERN");let Y=G,{ciphertext:B,nonce:H,authTag:U}=$.encryptString(Y),Q=new Date().toISOString();return await D.insert(E2).values({pk:"default",workerId:J,apiTokenEnc:B,nonce:H,authTag:U,bootstrapShownAt:Q,createdAt:Q}).run(),await bB(J),{workerId:J,token:Y,justMinted:!0}}var $X;var BW=R(()=>{$0();MD();gD();V0();$X=YB});import lr from"process";function G6(D,$,F,X,J=lr.stdout){if(!X)return;J.write(`[worker] id=${D}
1621
+ `;$.run(J);let Y=$.values(E`SELECT id, hash, created_at FROM ${E.identifier(X)} ORDER BY created_at DESC LIMIT 1`)[0]??void 0;$.run(E`BEGIN`);try{for(let B of D)if(!Y||Number(Y[2])<B.folderMillis){for(let H of B.sql)$.run(E.raw(H));$.run(E`INSERT INTO ${E.identifier(X)} ("hash", "created_at") VALUES(${B.hash}, ${B.folderMillis})`)}$.run(E`COMMIT`)}catch(B){throw $.run(E`ROLLBACK`),B}}}});var _H;var YE=R(()=>{JD();_H=class _H{static[z]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}});function PF(D,$){return(F,X,...J)=>{let G=[X,...J].map((Y)=>({type:D,isAll:$,rightSelect:Y}));for(let Y of G)if(!b7(F.getSelectedFields(),Y.rightSelect.getSelectedFields()))throw Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return F.addSetOperators(G)}}var s2,BE,CH,zi=()=>({union:Ii,unionAll:Si,intersect:Ti,except:wi}),Ii,Si,Ti,wi;var MH=R(()=>{JD();YE();S1();A3();O0();n2();k0();r0();z1();K3();jF();s2=class s2{static[z]="SQLiteSelectBuilder";fields;session;dialect;withList;distinct;constructor(D){this.fields=D.fields,this.session=D.session,this.dialect=D.dialect,this.withList=D.withList,this.distinct=D.distinct}from(D){let $=!!this.fields,F;if(this.fields)F=this.fields;else if(f(D,W0))F=Object.fromEntries(Object.keys(D._.selectedFields).map((X)=>[X,D[X]]));else if(f(D,o8))F=D[tD].selectedFields;else if(f(D,r))F={};else F=mR(D);return new CH({table:D,fields:F,isPartialSelect:$,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct})}};BE=class BE extends _H{static[z]="SQLiteSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;cacheConfig=void 0;usedTables=new Set;constructor({table:D,fields:$,isPartialSelect:F,session:X,dialect:J,withList:G,distinct:Y}){super();this.config={withList:G,table:D,fields:{...$},distinct:Y,setOperators:[]},this.isPartialSelect=F,this.session=X,this.dialect=J,this._={selectedFields:$,config:this.config},this.tableName=f7(D),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{};for(let B of r2(D))this.usedTables.add(B)}getUsedTables(){return[...this.usedTables]}createJoin(D){return($,F)=>{let X=this.tableName,J=f7($);for(let G of r2($))this.usedTables.add(G);if(typeof J==="string"&&this.config.joins?.some((G)=>G.alias===J))throw Error(`Alias "${J}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof X==="string")this.config.fields={[X]:this.config.fields};if(typeof J==="string"&&!f($,r)){let G=f($,W0)?$._.selectedFields:f($,Z2)?$[tD].selectedFields:$[p.Symbol.Columns];this.config.fields[J]=G}}if(typeof F==="function")F=F(new Proxy(this.config.fields,new U0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));if(!this.config.joins)this.config.joins=[];if(this.config.joins.push({on:F,table:$,joinType:D,alias:J}),typeof J==="string")switch(D){case"left":{this.joinsNotNullableMap[J]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([G])=>[G,!1])),this.joinsNotNullableMap[J]=!0;break}case"cross":case"inner":{this.joinsNotNullableMap[J]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([G])=>[G,!1])),this.joinsNotNullableMap[J]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");crossJoin=this.createJoin("cross");createSetOperator(D,$){return(F)=>{let X=typeof F==="function"?F(zi()):F;if(!b7(this.getSelectedFields(),X.getSelectedFields()))throw Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:D,isAll:$,rightSelect:X}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);except=this.createSetOperator("except",!1);addSetOperators(D){return this.config.setOperators.push(...D),this}where(D){if(typeof D==="function")D=D(new Proxy(this.config.fields,new U0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=D,this}having(D){if(typeof D==="function")D=D(new Proxy(this.config.fields,new U0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.having=D,this}groupBy(...D){if(typeof D[0]==="function"){let $=D[0](new Proxy(this.config.fields,new U0({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray($)?$:[$]}else this.config.groupBy=D;return this}orderBy(...D){if(typeof D[0]==="function"){let $=D[0](new Proxy(this.config.fields,new U0({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),F=Array.isArray($)?$:[$];if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=F;else this.config.orderBy=F}else{let $=D;if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=$;else this.config.orderBy=$}return this}limit(D){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).limit=D;else this.config.limit=D;return this}offset(D){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).offset=D;else this.config.offset=D;return this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:D,...$}=this.dialect.sqlToQuery(this.getSQL());return $}as(D){let $=[];if($.push(...r2(this.config.table)),this.config.joins)for(let F of this.config.joins)$.push(...r2(F.table));return new Proxy(new W0(this.getSQL(),this.config.fields,D,!1,[...new Set($)]),new U0({alias:D,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new U0({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}};CH=class CH extends BE{static[z]="SQLiteSelect";_prepare(D=!0){if(!this.session)throw Error("Cannot execute a query on a query builder. Please use a database instance instead.");let $=R2(this.config.fields),F=this.session[D?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),$,"all",!0,void 0,{type:"select",tables:[...this.usedTables]},this.cacheConfig);return F.joinsNotNullableMap=this.joinsNotNullableMap,F}$withCache(D){return this.cacheConfig=D===void 0?{config:{},enable:!0,autoInvalidate:!0}:D===!1?{enable:!1}:{enable:!0,autoInvalidate:!0,...D},this}prepare(){return this._prepare(!1)}run=(D)=>{return this._prepare().run(D)};all=(D)=>{return this._prepare().all(D)};get=(D)=>{return this._prepare().get(D)};values=(D)=>{return this._prepare().values(D)};async execute(){return this.all()}};uR(CH,[m0]);Ii=PF("union",!1),Si=PF("union",!0),Ti=PF("intersect",!1),wi=PF("except",!1)});var p7;var ZH=R(()=>{JD();A3();NF();n2();MH();p7=class p7{static[z]="SQLiteQueryBuilder";dialect;dialectConfig;constructor(D){this.dialect=f(D,m7)?D:void 0,this.dialectConfig=f(D,m7)?void 0:D}$with=(D,$)=>{let F=this;return{as:(J)=>{if(typeof J==="function")J=J(F);return new Proxy(new w7(J.getSQL(),$??("getSelectedFields"in J?J.getSelectedFields()??{}:{}),D,!0),new U0({alias:D,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...D){let $=this;function F(J){return new s2({fields:J??void 0,session:void 0,dialect:$.getDialect(),withList:D})}function X(J){return new s2({fields:J??void 0,session:void 0,dialect:$.getDialect(),withList:D,distinct:!0})}return{select:F,selectDistinct:X}}select(D){return new s2({fields:D??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(D){return new s2({fields:D??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}getDialect(){if(!this.dialect)this.dialect=new c7(this.dialectConfig);return this.dialect}}});var LF,RH;var HE=R(()=>{JD();S1();O0();a8();k0();r0();K3();ZH();LF=class LF{constructor(D,$,F,X){this.table=D,this.session=$,this.dialect=F,this.withList=X}static[z]="SQLiteInsertBuilder";values(D){if(D=Array.isArray(D)?D:[D],D.length===0)throw Error("values() must be called with at least one value");let $=D.map((F)=>{let X={},J=this.table[p.Symbol.Columns];for(let G of Object.keys(F)){let Y=F[G];X[G]=f(Y,r)?Y:new G2(Y,J[G])}return X});return new RH(this.table,$,this.session,this.dialect,this.withList)}select(D){let $=typeof D==="function"?D(new p7):D;if(!f($,r)&&!b7(this.table[HF],$._.selectedFields))throw Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");return new RH(this.table,$,this.session,this.dialect,this.withList,!0)}};RH=class RH extends m0{constructor(D,$,F,X,J,G){super();this.session=F,this.dialect=X,this.config={table:D,values:$,withList:J,select:G}}static[z]="SQLiteInsert";config;returning(D=this.config.table[j0.Symbol.Columns]){return this.config.returning=R2(D),this}onConflictDoNothing(D={}){if(!this.config.onConflict)this.config.onConflict=[];if(D.target===void 0)this.config.onConflict.push(E` on conflict do nothing`);else{let $=Array.isArray(D.target)?E`${D.target}`:E`${[D.target]}`,F=D.where?E` where ${D.where}`:E``;this.config.onConflict.push(E` on conflict ${$} do nothing${F}`)}return this}onConflictDoUpdate(D){if(D.where&&(D.targetWhere||D.setWhere))throw Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');if(!this.config.onConflict)this.config.onConflict=[];let $=D.where?E` where ${D.where}`:void 0,F=D.targetWhere?E` where ${D.targetWhere}`:void 0,X=D.setWhere?E` where ${D.setWhere}`:void 0,J=Array.isArray(D.target)?E`${D.target}`:E`${[D.target]}`,G=this.dialect.buildUpdateSet(this.config.table,UF(this.config.table,D.set));return this.config.onConflict.push(E` on conflict ${J}${F} do update set ${G}${$}${X}`),this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:D,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(D=!0){return this.session[D?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0,void 0,{type:"insert",tables:r2(this.config.table)})}prepare(){return this._prepare(!1)}run=(D)=>{return this._prepare().run(D)};all=(D)=>{return this._prepare().all(D)};get=(D)=>{return this._prepare().get(D)};values=(D)=>{return this._prepare().values(D)};async execute(){return this.config.returning?this.all():this.run()}$dynamic(){return this}}});var qF,WE;var UE=R(()=>{JD();S1();A3();a8();n2();k0();r0();z1();K3();jF();qF=class qF{constructor(D,$,F,X){this.table=D,this.session=$,this.dialect=F,this.withList=X}static[z]="SQLiteUpdateBuilder";set(D){return new WE(this.table,UF(this.table,D),this.session,this.dialect,this.withList)}};WE=class WE extends m0{constructor(D,$,F,X,J){super();this.session=F,this.dialect=X,this.config={set:$,table:D,withList:J,joins:[]}}static[z]="SQLiteUpdate";config;from(D){return this.config.from=D,this}createJoin(D){return($,F)=>{let X=f7($);if(typeof X==="string"&&this.config.joins.some((J)=>J.alias===X))throw Error(`Alias "${X}" is already used in this query`);if(typeof F==="function"){let J=this.config.from?f($,j0)?$[p.Symbol.Columns]:f($,W0)?$._.selectedFields:f($,o8)?$[tD].selectedFields:void 0:void 0;F=F(new Proxy(this.config.table[p.Symbol.Columns],new U0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),J&&new Proxy(J,new U0({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}return this.config.joins.push({on:F,table:$,joinType:D,alias:X}),this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(D){return this.config.where=D,this}orderBy(...D){if(typeof D[0]==="function"){let $=D[0](new Proxy(this.config.table[p.Symbol.Columns],new U0({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),F=Array.isArray($)?$:[$];this.config.orderBy=F}else{let $=D;this.config.orderBy=$}return this}limit(D){return this.config.limit=D,this}returning(D=this.config.table[j0.Symbol.Columns]){return this.config.returning=R2(D),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:D,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(D=!0){return this.session[D?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0,void 0,{type:"insert",tables:r2(this.config.table)})}prepare(){return this._prepare(!1)}run=(D)=>{return this._prepare().run(D)};all=(D)=>{return this._prepare().all(D)};get=(D)=>{return this._prepare().get(D)};values=(D)=>{return this._prepare().values(D)};async execute(){return this.config.returning?this.all():this.run()}$dynamic(){return this}}});var OH=R(()=>{$E();HE();ZH();MH();UE()});var d7;var QE=R(()=>{JD();O0();d7=class d7 extends r{constructor(D){super(d7.buildEmbeddedCount(D.source,D.filters).queryChunks);this.params=D,this.session=D.session,this.sql=d7.buildCount(D.source,D.filters)}sql;static[z]="SQLiteCountBuilderAsync";[Symbol.toStringTag]="SQLiteCountBuilderAsync";session;static buildEmbeddedCount(D,$){return E`(select count(*) from ${D}${E.raw(" where ").if($)}${$})`}static buildCount(D,$){return E`select count(*) from ${D}${E.raw(" where ").if($)}${$}`}then(D,$){return Promise.resolve(this.session.count(this.sql)).then(D,$)}catch(D){return this.then(void 0,D)}finally(D){return this.then(($)=>{return D?.(),$},($)=>{throw D?.(),$})}}});var jH,zF,EH;var VE=R(()=>{JD();S1();x7();jH=class jH{constructor(D,$,F,X,J,G,Y,B){this.mode=D,this.fullSchema=$,this.schema=F,this.tableNamesMap=X,this.table=J,this.tableConfig=G,this.dialect=Y,this.session=B}static[z]="SQLiteAsyncRelationalQueryBuilder";findMany(D){return this.mode==="sync"?new EH(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?D:{},"many"):new zF(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?D:{},"many")}findFirst(D){return this.mode==="sync"?new EH(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?{...D,limit:1}:{limit:1},"first"):new zF(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?{...D,limit:1}:{limit:1},"first")}};zF=class zF extends m0{constructor(D,$,F,X,J,G,Y,B,H){super();this.fullSchema=D,this.schema=$,this.tableNamesMap=F,this.table=X,this.tableConfig=J,this.dialect=G,this.session=Y,this.config=B,this.mode=H}static[z]="SQLiteAsyncRelationalQuery";mode;getSQL(){return this.dialect.buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName}).sql}_prepare(D=!1){let{query:$,builtQuery:F}=this._toSQL();return this.session[D?"prepareOneTimeQuery":"prepareQuery"](F,void 0,this.mode==="first"?"get":"all",!0,(X,J)=>{let G=X.map((Y)=>AF(this.schema,this.tableConfig,Y,$.selection,J));if(this.mode==="first")return G[0];return G})}prepare(){return this._prepare(!1)}_toSQL(){let D=this.dialect.buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName}),$=this.dialect.sqlToQuery(D.sql);return{query:D,builtQuery:$}}toSQL(){return this._toSQL().builtQuery}executeRaw(){if(this.mode==="first")return this._prepare(!1).get();return this._prepare(!1).all()}async execute(){return this.executeRaw()}};EH=class EH extends zF{static[z]="SQLiteSyncRelationalQuery";sync(){return this.executeRaw()}}});var C3;var AE=R(()=>{JD();S1();C3=class C3 extends m0{constructor(D,$,F,X,J){super();this.execute=D,this.getSQL=$,this.dialect=X,this.mapBatchResult=J,this.config={action:F}}static[z]="SQLiteRaw";config;getQuery(){return{...this.dialect.sqlToQuery(this.getSQL()),method:this.config.action}}mapResult(D,$){return $?this.mapBatchResult(D):D}_prepare(){return this}isResponseInArrayMode(){return!1}}});var l7;var IF=R(()=>{JD();A3();O0();OH();n2();QE();VE();AE();l7=class l7{constructor(D,$,F,X){this.resultKind=D,this.dialect=$,this.session=F,this._=X?{schema:X.schema,fullSchema:X.fullSchema,tableNamesMap:X.tableNamesMap}:{schema:void 0,fullSchema:{},tableNamesMap:{}},this.query={};let J=this.query;if(this._.schema)for(let[G,Y]of Object.entries(this._.schema))J[G]=new jH(D,X.fullSchema,this._.schema,this._.tableNamesMap,X.fullSchema[G],Y,$,F);this.$cache={invalidate:async(G)=>{}}}static[z]="BaseSQLiteDatabase";query;$with=(D,$)=>{let F=this;return{as:(J)=>{if(typeof J==="function")J=J(new p7(F.dialect));return new Proxy(new w7(J.getSQL(),$??("getSelectedFields"in J?J.getSelectedFields()??{}:{}),D,!0),new U0({alias:D,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(D,$){return new d7({source:D,filters:$,session:this.session})}with(...D){let $=this;function F(B){return new s2({fields:B??void 0,session:$.session,dialect:$.dialect,withList:D})}function X(B){return new s2({fields:B??void 0,session:$.session,dialect:$.dialect,withList:D,distinct:!0})}function J(B){return new qF(B,$.session,$.dialect,D)}function G(B){return new LF(B,$.session,$.dialect,D)}function Y(B){return new RF(B,$.session,$.dialect,D)}return{select:F,selectDistinct:X,update:J,insert:G,delete:Y}}select(D){return new s2({fields:D??void 0,session:this.session,dialect:this.dialect})}selectDistinct(D){return new s2({fields:D??void 0,session:this.session,dialect:this.dialect,distinct:!0})}update(D){return new qF(D,this.session,this.dialect)}$cache;insert(D){return new LF(D,this.session,this.dialect)}delete(D){return new RF(D,this.session,this.dialect)}run(D){let $=typeof D==="string"?E.raw(D):D.getSQL();if(this.resultKind==="async")return new C3(async()=>this.session.run($),()=>$,"run",this.dialect,this.session.extractRawRunValueFromBatchResult.bind(this.session));return this.session.run($)}all(D){let $=typeof D==="string"?E.raw(D):D.getSQL();if(this.resultKind==="async")return new C3(async()=>this.session.all($),()=>$,"all",this.dialect,this.session.extractRawAllValueFromBatchResult.bind(this.session));return this.session.all($)}get(D){let $=typeof D==="string"?E.raw(D):D.getSQL();if(this.resultKind==="async")return new C3(async()=>this.session.get($),()=>$,"get",this.dialect,this.session.extractRawGetValueFromBatchResult.bind(this.session));return this.session.get($)}values(D){let $=typeof D==="string"?E.raw(D):D.getSQL();if(this.resultKind==="async")return new C3(async()=>this.session.values($),()=>$,"values",this.dialect,this.session.extractRawValuesValueFromBatchResult.bind(this.session));return this.session.values($)}transaction(D,$){return this.session.transaction(D,$)}}});var KE=()=>{};async function PH(D,$){let F=`${D}-${JSON.stringify($)}`,J=new TextEncoder().encode(F),G=await crypto.subtle.digest("SHA-256",J);return[...new Uint8Array(G)].map((H)=>H.toString(16).padStart(2,"0")).join("")}var _E,NH;var CE=R(()=>{JD();_E=class _E{static[z]="Cache"};NH=class NH extends _E{strategy(){return"all"}static[z]="NoopCache";async get(D){return}async put(D,$,F,X){}async onMutate(D){}}});var ME,LH,qH,zH;var IH=R(()=>{CE();JD();OF();S1();IF();ME=class ME extends m0{constructor(D){super();this.resultCb=D}static[z]="ExecuteResultSync";async execute(){return this.resultCb()}sync(){return this.resultCb()}};LH=class LH{constructor(D,$,F,X,J,G){if(this.mode=D,this.executeMethod=$,this.query=F,this.cache=X,this.queryMetadata=J,this.cacheConfig=G,X&&X.strategy()==="all"&&G===void 0)this.cacheConfig={enable:!0,autoInvalidate:!0};if(!this.cacheConfig?.enable)this.cacheConfig=void 0}static[z]="PreparedQuery";joinsNotNullableMap;async queryWithCache(D,$,F){if(this.cache===void 0||f(this.cache,NH)||this.queryMetadata===void 0)try{return await F()}catch(X){throw new T1(D,$,X)}if(this.cacheConfig&&!this.cacheConfig.enable)try{return await F()}catch(X){throw new T1(D,$,X)}if((this.queryMetadata.type==="insert"||this.queryMetadata.type==="update"||this.queryMetadata.type==="delete")&&this.queryMetadata.tables.length>0)try{let[X]=await Promise.all([F(),this.cache.onMutate({tables:this.queryMetadata.tables})]);return X}catch(X){throw new T1(D,$,X)}if(!this.cacheConfig)try{return await F()}catch(X){throw new T1(D,$,X)}if(this.queryMetadata.type==="select"){let X=await this.cache.get(this.cacheConfig.tag??await PH(D,$),this.queryMetadata.tables,this.cacheConfig.tag!==void 0,this.cacheConfig.autoInvalidate);if(X===void 0){let J;try{J=await F()}catch(G){throw new T1(D,$,G)}return await this.cache.put(this.cacheConfig.tag??await PH(D,$),J,this.cacheConfig.autoInvalidate?this.queryMetadata.tables:[],this.cacheConfig.tag!==void 0,this.cacheConfig.config),J}return X}try{return await F()}catch(X){throw new T1(D,$,X)}}getQuery(){return this.query}mapRunResult(D,$){return D}mapAllResult(D,$){throw Error("Not implemented")}mapGetResult(D,$){throw Error("Not implemented")}execute(D){if(this.mode==="async")return this[this.executeMethod](D);return new ME(()=>this[this.executeMethod](D))}mapResult(D,$){switch(this.executeMethod){case"run":return this.mapRunResult(D,$);case"all":return this.mapAllResult(D,$);case"get":return this.mapGetResult(D,$)}}};qH=class qH{constructor(D){this.dialect=D}static[z]="SQLiteSession";prepareOneTimeQuery(D,$,F,X,J,G,Y){return this.prepareQuery(D,$,F,X,J,G,Y)}run(D){let $=this.dialect.sqlToQuery(D);try{return this.prepareOneTimeQuery($,void 0,"run",!1).run()}catch(F){throw new _3({cause:F,message:`Failed to run the query '${$.sql}'`})}}extractRawRunValueFromBatchResult(D){return D}all(D){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(D),void 0,"run",!1).all()}extractRawAllValueFromBatchResult(D){throw Error("Not implemented")}get(D){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(D),void 0,"run",!1).get()}extractRawGetValueFromBatchResult(D){throw Error("Not implemented")}values(D){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(D),void 0,"run",!1).values()}async count(D){return(await this.values(D))[0][0]}extractRawValuesValueFromBatchResult(D){throw Error("Not implemented")}};zH=class zH extends l7{constructor(D,$,F,X,J=0){super(D,$,F,X);this.schema=X,this.nestedIndex=J}static[z]="SQLiteTransaction";rollback(){throw new VH}}});var ZE=()=>{};var SF=R(()=>{KE();sO();KH();IF();NF();$H();eO();DE();OH();IH();a8();FH();K3();ZE()});var SH,TH,RE;var wH=R(()=>{JD();YF();O0();SF();IH();r0();SH=class SH extends qH{constructor(D,$,F,X={}){super($);this.client=D,this.schema=F,this.logger=X.logger??new yB}static[z]="SQLiteBunSession";logger;exec(D){this.client.exec(D)}prepareQuery(D,$,F,X,J){let G=this.client.prepare(D.sql);return new RE(G,D,this.logger,$,F,X,J)}transaction(D,$={}){let F=new TH("sync",this.dialect,this,this.schema),X;return this.client.transaction(()=>{X=D(F)})[$.behavior??"deferred"](),X}};TH=class TH extends zH{static[z]="SQLiteBunTransaction";transaction(D){let $=`sp${this.nestedIndex}`,F=new TH("sync",this.dialect,this.session,this.schema,this.nestedIndex+1);this.session.run(E.raw(`savepoint ${$}`));try{let X=D(F);return this.session.run(E.raw(`release savepoint ${$}`)),X}catch(X){throw this.session.run(E.raw(`rollback to savepoint ${$}`)),X}}};RE=class RE extends LH{constructor(D,$,F,X,J,G,Y){super("sync",J,$);this.stmt=D,this.logger=F,this.fields=X,this._isResponseInArrayMode=G,this.customResultMapper=Y}static[z]="SQLiteBunPreparedQuery";run(D){let $=k7(this.query.params,D??{});return this.logger.logQuery(this.query.sql,$),this.stmt.run(...$)}all(D){let{fields:$,query:F,logger:X,joinsNotNullableMap:J,stmt:G,customResultMapper:Y}=this;if(!$&&!Y){let H=k7(F.params,D??{});return X.logQuery(F.sql,H),G.all(...H)}let B=this.values(D);if(Y)return Y(B);return B.map((H)=>nB($,H,J))}get(D){let $=k7(this.query.params,D??{});this.logger.logQuery(this.query.sql,$);let F=this.stmt.values(...$)[0];if(!F)return;let{fields:X,joinsNotNullableMap:J,customResultMapper:G}=this;if(!X&&!G)return F;if(G)return G([F]);return nB(X,F,J)}values(D){let $=k7(this.query.params,D??{});return this.logger.logQuery(this.query.sql,$),this.stmt.values(...$)}isResponseInArrayMode(){return this._isResponseInArrayMode}}});import{Database as TF}from"bun:sqlite";function M3(D,$={}){let F=new c7({casing:$.casing}),X;if($.logger===!0)X=new xB;else if($.logger!==!1)X=$.logger;let J;if($.schema){let B=AO($.schema,_O);J={fullSchema:$.schema,schema:B.tables,tableNamesMap:B.tableNamesMap}}let G=new SH(D,F,J,{logger:X}),Y=new OE("sync",F,G,J);return Y.$client=D,Y}function Z3(...D){if(D[0]===void 0||typeof D[0]==="string"){let $=D[0]===void 0?new TF:new TF(D[0]);return M3($,D[1])}if(cR(D[0])){let{connection:$,client:F,...X}=D[0];if(F)return M3(F,X);if(typeof $==="object"){let{source:G,...Y}=$,B=Object.values(Y).filter((U)=>U!==void 0).length?Y:void 0,H=new TF(G,B);return M3(H,X)}let J=new TF($);return M3(J,X)}return M3(D[0],D[1])}var OE;var EE=R(()=>{JD();YF();x7();IF();NF();r0();wH();OE=class OE extends l7{static[z]="BunSQLiteDatabase"};((D)=>{function $(F){return M3({},F)}D.mock=$})(Z3||(Z3={}))});var kH=R(()=>{EE();wH()});import ki from"crypto";import bH from"fs";function jE(D){let $=D.migrationsFolder,F=[],X=`${$}/meta/_journal.json`;if(!bH.existsSync(X))throw Error("Can't find meta/_journal.json file");let J=bH.readFileSync(`${$}/meta/_journal.json`).toString(),G=JSON.parse(J);for(let Y of G.entries){let B=`${$}/${Y.tag}.sql`;try{let H=bH.readFileSync(`${$}/${Y.tag}.sql`).toString(),U=H.split("--> statement-breakpoint").map((Q)=>{return Q});F.push({sql:U,bps:Y.breakpoints,folderMillis:Y.when,hash:ki.createHash("sha256").update(H).digest("hex")})}catch{throw Error(`No file ${B} found in ${$} folder`)}}return F}var NE=()=>{};function wF(D,$){let F=jE($);D.dialect.migrate(F,D.session,$)}var fH=R(()=>{NE()});var V0=R(()=>{_F();pB();i2();JD();OF();YF();S1();x7();AH();n2();k0();r0();z1()});var tF={};z8(tF,{workerSecrets:()=>f0,workerIdentity:()=>E2,workerConfig:()=>a2,skillDrafts:()=>p0,skillBindings:()=>t7,sessionEntries:()=>AD,messages:()=>a,executionLogs:()=>f1,evolutionObservations:()=>b0,decisionPipelineSamples:()=>O2,cronJobs:()=>lD,conversations:()=>n,brainArtifacts:()=>wD,brainAdmissionProposals:()=>FD,brainAdmissionDecisions:()=>B2,agentTasks:()=>B0});var B0,n,AD,a,f1,t7,p0,b0,O2,E2,a2,lD,wD,FD,B2,f0;var aH=R(()=>{SF();B0=Q0("agent_tasks",{id:L("id").primaryKey(),prompt:L("prompt").notNull(),status:L("status",{enum:["queued","running","succeeded","failed","cancelled"]}).notNull(),conversationId:L("conversation_id"),createdAt:L("created_at").notNull().$defaultFn(()=>new Date().toISOString()),finishedAt:L("finished_at"),result:L("result",{mode:"json"}).$type(),error:L("error")},(D)=>({createdAtIdx:Y0("agent_tasks_created_at_idx").on(D.createdAt)})),n=Q0("conversations",{id:L("id").primaryKey(),taskId:L("task_id").references(()=>B0.id),channel:L("channel").$type().notNull(),chatId:L("chat_id").notNull(),threadId:L("thread_id"),status:L("status",{enum:["open","closed"]}).notNull().default("open"),summary:L("summary"),startedAt:L("started_at").notNull().$defaultFn(()=>new Date().toISOString()),lastActiveAt:L("last_active_at").notNull().$defaultFn(()=>new Date().toISOString()),closedAt:L("closed_at")},(D)=>({lookupIdx:Y0("conversations_lookup_idx").on(D.channel,D.chatId,D.threadId,D.status),lastActiveAtIdx:Y0("conversations_last_active_at_idx").on(D.lastActiveAt)})),AD=Q0("session_entries",{sessionKey:L("session_key").primaryKey(),currentConversationId:L("current_conversation_id").notNull().references(()=>n.id),channel:L("channel").$type().notNull(),chatId:L("chat_id").notNull(),threadId:L("thread_id"),accountId:L("account_id"),status:L("status",{enum:["active","closed"]}).notNull().default("active"),sessionStartedAt:L("session_started_at").notNull().$defaultFn(()=>new Date().toISOString()),lastInteractionAt:L("last_interaction_at").notNull().$defaultFn(()=>new Date().toISOString()),resetAt:L("reset_at"),resetReason:L("reset_reason"),contextTokens:vD("context_tokens").notNull().default(0),totalTokens:vD("total_tokens").notNull().default(0),totalTokensFresh:vD("total_tokens_fresh").notNull().default(0),compactionCount:vD("compaction_count").notNull().default(0),memoryFlushAt:L("memory_flush_at"),memoryFlushCompactionCount:vD("memory_flush_compaction_count").notNull().default(0),engineBindings:L("engine_bindings",{mode:"json"}).$type().notNull().$defaultFn(()=>({})),createdAt:L("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:L("updated_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({currentConversationIdIdx:Y0("session_entries_current_conversation_id_idx").on(D.currentConversationId),lastInteractionAtIdx:Y0("session_entries_last_interaction_at_idx").on(D.lastInteractionAt)})),a=Q0("messages",{id:vD("id").primaryKey({autoIncrement:!0}),conversationId:L("conversation_id").notNull().references(()=>n.id,{onDelete:"cascade"}),role:L("role",{enum:["system","user","assistant","tool"]}).notNull(),content:L("content").notNull(),toolCalls:L("tool_calls",{mode:"json"}).$type(),toolCallId:L("tool_call_id"),tokensIn:vD("tokens_in"),tokensOut:vD("tokens_out"),richMetadata:L("rich_metadata"),createdAt:L("created_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({conversationIdIdx:Y0("messages_conversation_id_idx").on(D.conversationId)})),f1=Q0("execution_logs",{id:vD("id").primaryKey({autoIncrement:!0}),conversationId:L("conversation_id"),toolName:L("tool_name").notNull(),params:L("params",{mode:"json"}).$type(),result:L("result",{mode:"json"}).$type(),duration:vD("duration"),createdAt:L("created_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({conversationIdIdx:Y0("execution_logs_conversation_id_idx").on(D.conversationId)})),t7=Q0("skill_bindings",{id:vD("id").primaryKey({autoIncrement:!0}),source:L("source").$type().notNull(),brainName:L("brain_name"),skillName:L("skill_name").notNull(),enabled:vD("enabled",{mode:"boolean"}).notNull().default(!0),priority:vD("priority").notNull().default(0),config:L("config",{mode:"json"}).$type(),createdAt:L("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:L("updated_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({uniqueBinding:tO("skill_bindings_source_brain_name_idx").on(D.source,D.brainName,D.skillName)})),p0=Q0("skill_drafts",{id:vD("id").primaryKey({autoIncrement:!0}),proposedName:L("proposed_name").notNull(),source:L("source").$type().notNull(),bodyMarkdown:L("body_markdown").notNull(),rationale:L("rationale").notNull().default(""),status:L("status").$type().notNull().default("pending"),createdAt:L("created_at").notNull().$defaultFn(()=>new Date().toISOString()),decidedAt:L("decided_at"),decidedBy:L("decided_by")}),b0=Q0("evolution_observations",{id:vD("id").primaryKey({autoIncrement:!0}),conversationId:L("conversation_id"),kind:L("kind").notNull(),payload:L("payload",{mode:"json"}).$type().notNull(),noticedAt:L("noticed_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({noticedAtIdx:Y0("evolution_observations_noticed_at_idx").on(D.noticedAt)})),O2=Q0("decision_pipeline_samples",{id:vD("id").primaryKey({autoIncrement:!0}),stage:L("stage",{enum:["intent_classifier","quality_gate","conversation_classifier"]}).notNull(),source:L("source").notNull(),evaluator:L("evaluator").notNull(),reason:L("reason").notNull(),fallback:vD("fallback",{mode:"boolean"}).notNull().default(!1),createdAt:L("created_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({stageCreatedAtIdx:Y0("decision_pipeline_samples_stage_created_at_idx").on(D.stage,D.createdAt)})),E2=Q0("worker_identity",{pk:L("pk").primaryKey().default("default"),workerId:L("worker_id").notNull().unique(),apiTokenEnc:L("api_token_enc").notNull(),nonce:L("nonce").notNull(),authTag:L("auth_tag").notNull(),bootstrapShownAt:L("bootstrap_shown_at").notNull().$defaultFn(()=>new Date().toISOString()),createdAt:L("created_at").notNull().$defaultFn(()=>new Date().toISOString()),rotatedAt:L("rotated_at")}),a2=Q0("worker_config",{pk:L("pk").primaryKey().default("default"),configJson:L("config_json",{mode:"json"}).$type().notNull(),version:vD("version").notNull().default(1),updatedAt:L("updated_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedBy:L("updated_by",{enum:["bootstrap","api","cli"]})}),lD=Q0("cron_jobs",{id:L("id").primaryKey(),expression:L("expression").notNull(),prompt:L("prompt").notNull(),channel:L("channel").$type().notNull(),chatId:L("chat_id").notNull(),accountId:L("account_id").notNull(),enabled:vD("enabled",{mode:"boolean"}).notNull().default(!0),lastRunAt:L("last_run_at"),nextRunAt:L("next_run_at"),createdAt:L("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:L("updated_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({dueIdx:Y0("cron_jobs_due_idx").on(D.enabled,D.nextRunAt)})),wD=Q0("brain_artifacts",{id:L("id").primaryKey(),scopeId:L("scope_id"),type:L("type").notNull(),ref:L("ref").notNull(),hash:L("hash"),source:L("source").$type().notNull(),sensitivity:L("sensitivity").$type().notNull().default("internal"),retention:L("retention"),status:L("status").$type().notNull().default("active"),summary:L("summary"),evidenceRefs:L("evidence_refs",{mode:"json"}).$type().notNull().$defaultFn(()=>[]),metadata:L("metadata",{mode:"json"}).$type(),createdAt:L("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:L("updated_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({scopeTypeIdx:Y0("brain_artifacts_scope_type_idx").on(D.scopeId,D.type),statusTypeIdx:Y0("brain_artifacts_status_type_idx").on(D.status,D.type),updatedAtIdx:Y0("brain_artifacts_updated_at_idx").on(D.updatedAt)})),FD=Q0("brain_admission_proposals",{id:L("id").primaryKey(),scopeId:L("scope_id"),soulId:L("soul_id").notNull(),kind:L("kind").notNull(),target:L("target").notNull(),summary:L("summary").notNull(),evidence:L("evidence",{mode:"json"}).$type().notNull().$defaultFn(()=>[]),risk:L("risk").$type().notNull().default("high"),confidence:ZF("confidence").notNull(),rollback:L("rollback").notNull(),payload:L("payload",{mode:"json"}).$type(),status:L("status").$type().notNull().default("pending"),createdAt:L("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:L("updated_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({statusKindIdx:Y0("brain_admission_proposals_status_kind_idx").on(D.status,D.kind),scopeIdx:Y0("brain_admission_proposals_scope_id_idx").on(D.scopeId),createdAtIdx:Y0("brain_admission_proposals_created_at_idx").on(D.createdAt)})),B2=Q0("brain_admission_decisions",{id:vD("id").primaryKey({autoIncrement:!0}),proposalId:L("proposal_id").notNull().references(()=>FD.id,{onDelete:"cascade"}),decision:L("decision").$type().notNull(),decidedBy:L("decided_by").notNull(),decidedAt:L("decided_at").notNull().$defaultFn(()=>new Date().toISOString()),reason:L("reason"),appliedAt:L("applied_at"),failureReason:L("failure_reason")},(D)=>({proposalIdx:Y0("brain_admission_decisions_proposal_id_idx").on(D.proposalId),decidedAtIdx:Y0("brain_admission_decisions_decided_at_idx").on(D.decidedAt)})),f0=Q0("worker_secrets",{id:vD("id").primaryKey({autoIncrement:!0}),key:L("key").notNull().unique(),valueEnc:L("value_enc").notNull(),nonce:L("nonce").notNull(),authTag:L("auth_tag").notNull(),createdAt:L("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:L("updated_at").notNull().$defaultFn(()=>new Date().toISOString())})});var GW={};z8(GW,{workerSecrets:()=>f0,workerSchema:()=>tF,workerIdentity:()=>E2,workerConfig:()=>a2,upsertSessionEntry:()=>$W,updateSessionEngineBinding:()=>JW,touchSessionEntry:()=>j3,skillDrafts:()=>p0,skillBindings:()=>t7,sessionEntries:()=>AD,runWorkerMigrations:()=>$4,rotateSessionConversation:()=>FW,recordSessionCompaction:()=>XW,messages:()=>a,listConversations:()=>eH,listConversationMessages:()=>DW,listAgentTasks:()=>tH,initWorkerDb:()=>D4,getWorkerDb:()=>b,getSessionEntry:()=>S0,executionLogs:()=>f1,evolutionObservations:()=>b0,defaultWorkerMigrationsFolder:()=>E3,decisionPipelineSamples:()=>O2,cronJobs:()=>lD,conversations:()=>n,closeWorkerDb:()=>yr,brainArtifacts:()=>wD,brainAdmissionProposals:()=>FD,brainAdmissionDecisions:()=>B2,agentTasks:()=>B0});import{existsSync as kj}from"fs";import oH from"path";import{fileURLToPath as gr}from"url";import{Database as hr}from"bun:sqlite";function vr(D){let $=oH.resolve(bj,"../../drizzle",D);if(kj($))return $;let F=oH.resolve(bj,"drizzle",D);if(kj(F))return F;return $}function xr(D){let $=new hr(D,{create:!0});return $.exec("PRAGMA journal_mode = WAL"),$.exec("PRAGMA foreign_keys = ON"),Z3($,{schema:tF})}function D4(D){return e7=xr(D),e7}function b(){if(!e7)throw Error("Worker database not initialized. Call initWorkerDb() first.");return e7}function yr(){e7=null}function $4(D=E3){wF(b(),{migrationsFolder:D})}function tH(D=200){return b().select().from(B0).orderBy(OD(B0.createdAt)).limit(D).all()}function eH(D=200){return b().select().from(n).orderBy(OD(n.lastActiveAt)).limit(D).all()}function DW(D){return b().select().from(a).where(S(a.conversationId,D)).all()}function S0(D){return b().select().from(AD).where(S(AD.sessionKey,D)).get()??null}function $W(D){let $=b(),F=D.at??new Date().toISOString(),X=S0(D.sessionKey);if(!X)$.insert(AD).values({sessionKey:D.sessionKey,currentConversationId:D.currentConversationId,channel:D.channel,chatId:D.chatId,threadId:D.threadId??null,accountId:D.accountId??null,status:"active",sessionStartedAt:F,lastInteractionAt:F,engineBindings:D.engineBindings??{},createdAt:F,updatedAt:F}).run();else $.update(AD).set({currentConversationId:D.currentConversationId,channel:D.channel,chatId:D.chatId,threadId:D.threadId??null,accountId:D.accountId??null,status:"active",lastInteractionAt:F,engineBindings:D.engineBindings??X.engineBindings,updatedAt:F}).where(S(AD.sessionKey,D.sessionKey)).run();return S0(D.sessionKey)}function j3(D,$={}){if(!S0(D))return null;let X=$.at??new Date().toISOString();return b().update(AD).set({lastInteractionAt:X,updatedAt:X,...$.contextTokens===void 0?{}:{contextTokens:$.contextTokens},...$.totalTokens===void 0?{}:{totalTokens:$.totalTokens},...$.totalTokensFresh===void 0?{}:{totalTokensFresh:$.totalTokensFresh}}).where(S(AD.sessionKey,D)).run(),S0(D)}function FW(D){if(!S0(D.sessionKey))return null;let F=D.at??new Date().toISOString();return b().update(AD).set({currentConversationId:D.currentConversationId,status:"active",sessionStartedAt:F,lastInteractionAt:F,resetAt:F,resetReason:D.resetReason,contextTokens:0,totalTokens:0,totalTokensFresh:0,compactionCount:0,memoryFlushAt:null,memoryFlushCompactionCount:0,engineBindings:{},updatedAt:F}).where(S(AD.sessionKey,D.sessionKey)).run(),S0(D.sessionKey)}function XW(D,$={}){let F=S0(D);if(!F)return null;let X=$.at??new Date().toISOString(),J=F.compactionCount+1;return b().update(AD).set({compactionCount:J,...$.memoryFlushAt===void 0?{}:{memoryFlushAt:$.memoryFlushAt,memoryFlushCompactionCount:J},updatedAt:X}).where(S(AD.sessionKey,D)).run(),S0(D)}function JW(D,$,F,X){let J=S0(D);if(!J)return null;let G={...J.engineBindings};if(F===null)delete G[$];else G[$]=F;return b().update(AD).set({engineBindings:G,updatedAt:X??new Date().toISOString()}).where(S(AD.sessionKey,D)).run(),S0(D)}var bj,E3,e7=null;var gD=R(()=>{V0();kH();fH();aH();aH();bj=oH.dirname(gr(import.meta.url));E3=vr("worker")});import fj from"path";import gj from"process";function mr(D){let $={};for(let[F,X]of Object.entries(D)){let J=/^MAX_CONCURRENT_(.+)$/.exec(F);if(!J)continue;if(J[1]==="TOTAL")continue;let G=J[1].toLowerCase().replace(/_/g,"-"),Y=Number.parseInt(X??"",10);if(Number.isFinite(Y)&&Y>0)$[G]=Y}return $}function $6(){if(eF)return eF;let D=ur.parse(gj.env);return eF=Object.freeze({...D,perEngineLimits:Object.freeze({...mr(gj.env)})}),eF}var ur,eF=null,o;var DX=R(()=>{$0();ZD();gD();jD();ur=W.object({PORT:W.coerce.number().default(9217),AIWORKER_WORKER_HOST:W.string().min(1).default("127.0.0.1"),AIWORKER_ADMIN_EXTERNAL_AUTH:W.enum(["1","true","0","false"]).default("0").transform(W7),WORKER_DB_PATH:W.string().default(()=>fj.join(d2(),"worker.db")),WORKER_MIGRATIONS_FOLDER:W.string().default(()=>E3),AIWORKER_MASTER_KEY:W.string().regex(/^[0-9a-f]{64}$/,"AIWORKER_MASTER_KEY must be 32-byte hex (64 hex chars)"),AIWORKER_FORCE_ID:W.string().regex(C2).optional(),AIWORKER_FORCE_TOKEN:W.string().regex(L1).optional(),AIWORKER_ADVERTISED_BASE_URL:W.string().optional(),WORKER_DATA_ROOT:W.string().default(()=>fj.join(d2(),"data-root")),WORKER_WORKSPACE_GIT_ORIGIN:W.string().optional(),AIWORKER_GATEWAY_URL:W.string().url().optional(),AIWORKER_JOIN_TOKEN:W.string().min(1).optional(),AIWORKER_DISPLAY_NAME:W.string().min(1).max(80).optional(),AIWORKER_ENROLL_MODE:W.enum(["auto","otp"]).optional().default("auto"),CLAUDE_CLI_VERSION:W.string().optional(),MAX_CONCURRENT_TOTAL:W.coerce.number().int().min(1).default(4),PROCESS_STALL_TIMEOUT_MS:W.coerce.number().int().min(1).default(120000),PROCESS_KILL_TIMEOUT_MS:W.coerce.number().int().min(0).default(1e4),PROCESS_AUTO_CLEANUP_DELAY_MS:W.coerce.number().int().min(0).default(60000),PROCESS_GC_INTERVAL_MS:W.coerce.number().int().min(0).default(30000)});o=new Proxy({},{get(D,$){return $6()[$]},has(D,$){return $ in $6()},ownKeys(D){return Reflect.ownKeys($6())},getOwnPropertyDescriptor(D,$){return Reflect.getOwnPropertyDescriptor($6(),$)}})});function H2(D){let $=F6[D.engine];if(!$)throw Error(`unknown executor engine: ${D.engine}`);let F=$.variants[D.variant];if(!F)throw Error(`unknown executor variant '${D.variant}' for engine '${D.engine}'`);let{cmd:X,...J}=D.overrides??{},G={...F,...J};return{engine:D.engine,body:G,...X?{cmd:X}:{},...D.modelId===void 0?{}:{modelId:D.modelId},...D.reasoningId===void 0?{}:{reasoningId:D.reasoningId},...D.permissionPolicy===void 0?{}:{permissionPolicy:D.permissionPolicy}}}function hj(D){if(!D||typeof D!=="object")return{...o2};let $=D;if(typeof $.engine==="string")return $;let F=$.type;if(typeof F!=="string")return{...o2};switch(F){case"http":return{engine:"http",variant:"default",overrides:F4({baseUrl:$.baseUrl,apiKey:$.apiKey,model:$.model,timeoutMs:$.timeoutMs})};case"mcp":return{engine:"mcp",variant:"default",overrides:F4({url:$.url,token:$.token,defaultModel:$.defaultModel,tools:$.tools,timeoutMs:$.timeoutMs})};case"cli":return{engine:"cli",variant:"default",overrides:F4({command:$.command,args:$.args,cwd:$.cwd,env:$.env,timeoutMs:$.timeoutMs,sandbox:$.sandbox})};case"claude-code":return{engine:"claude-code",variant:"default",overrides:F4({model:$.model,cliVersion:$.cliVersion,extraArgs:$.extraArgs,env:$.env,workspaceRoot:$.workspaceRoot,timeoutMs:$.timeoutMs})};case"acp":return{engine:"acp",variant:$.agent==="qwen"?"qwen":"gemini",overrides:F4({model:$.model,cliVersion:$.cliVersion,extraArgs:$.extraArgs,env:$.env,timeoutMs:$.timeoutMs})};default:return{...o2}}}function F4(D){let $={};for(let[F,X]of Object.entries(D))if(X!==void 0)$[F]=X;return $}var F6,o2;var _8=R(()=>{F6={http:{variants:{default:{baseUrl:"",apiKey:"",model:"gpt-4o-mini",contextWindowTokens:128000,timeoutMs:30000},"gemini-openai-compat":{baseUrl:"https://generativelanguage.googleapis.com/v1beta/openai",apiKey:"",model:"gemini-2.5-flash",contextWindowTokens:1e6,timeoutMs:30000},deepseek:{baseUrl:"https://api.deepseek.com",apiKey:"",model:"deepseek-chat",contextWindowTokens:64000,timeoutMs:30000},siliconflow:{baseUrl:"https://api.siliconflow.cn/v1",apiKey:"",model:"Qwen/Qwen2.5-7B-Instruct",contextWindowTokens:32000,timeoutMs:30000},openrouter:{baseUrl:"https://openrouter.ai/api/v1",apiKey:"",model:"anthropic/claude-sonnet-4.5",contextWindowTokens:200000,timeoutMs:30000}}},mcp:{variants:{default:{url:"",token:"",timeoutMs:30000}}},cli:{variants:{default:{command:"",args:[],timeoutMs:30000}}},"claude-code":{variants:{default:{contextWindowTokens:200000,timeoutMs:120000},"opus-plan":{model:"opus",contextWindowTokens:200000,permissionPolicy:"plan",timeoutMs:180000}}},acp:{variants:{gemini:{agent:"gemini",contextWindowTokens:1e6,timeoutMs:120000},qwen:{agent:"qwen",contextWindowTokens:32000,timeoutMs:120000}}},codex:{variants:{default:{model:"gpt-5.5",contextWindowTokens:128000,timeoutMs:120000}}},cursor:{variants:{default:{model:"auto",timeoutMs:120000}}}},o2={engine:"http",variant:"default",overrides:{baseUrl:"http://localhost:9999",model:"stub"}}});var vj="local-filesystem",N3;var YW=R(()=>{_8();N3={brains:[{id:vj,type:"filesystem",priority:100,readOnly:!1,config:{}}],brainWriteTarget:vj,brainRetrieval:"first-match",executor:{...o2},channels:[],evolution:{enabled:!1,observationRetentionDays:7}}});async function X6(D){let $=await D.select().from(a2).where(S(a2.pk,"default")).get();if($)return{config:cr($.configJson),version:$.version};let F=new Date().toISOString();return await D.insert(a2).values({pk:"default",configJson:N3,version:1,updatedAt:F,updatedBy:"bootstrap"}).run(),{config:N3,version:1}}function cr(D){let $=D.executor;if($&&typeof $==="object"&&"engine"in $)return D;return{...D,executor:hj($)}}var xj=R(()=>{gD();V0();_8();YW()});import{randomBytes as pr}from"crypto";function P3(){let D=pr(32),$=`${v$}${dr(D)}`;if(!J8($))throw Error("mintApiToken: generated token failed isWorkerApiToken check");return $}function dr(D){return D.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function J6(D,$,F={}){let X=await D.select().from(E2).where(S(E2.pk,"default")).get();if(X){let V=$.decryptString(X.apiTokenEnc,X.nonce,X.authTag);if(!J8(V))throw Error("loadOrMintIdentity: decrypted API token failed isWorkerApiToken check");return await bB(X.workerId),{workerId:X.workerId,token:V,justMinted:!1}}let J=F.forceId??$X();if(!C2.test(J))throw Error(`loadOrMintIdentity: forceId ${J} does not match WORKER_ID_PATTERN`);let G=F.forceToken??P3();if(!J8(G))throw Error("loadOrMintIdentity: forceToken does not match WORKER_API_TOKEN_PATTERN");let Y=G,{ciphertext:B,nonce:H,authTag:U}=$.encryptString(Y),Q=new Date().toISOString();return await D.insert(E2).values({pk:"default",workerId:J,apiTokenEnc:B,nonce:H,authTag:U,bootstrapShownAt:Q,createdAt:Q}).run(),await bB(J),{workerId:J,token:Y,justMinted:!0}}var $X;var BW=R(()=>{$0();ZD();gD();V0();$X=YB});import lr from"process";function G6(D,$,F,X,J=lr.stdout){if(!X)return;J.write(`[worker] id=${D}
1622
1622
  `),J.write(`[worker] AIWORKER_BOOTSTRAP_TOKEN=${$}
1623
1623
  `),J.write(`[worker] save this token; it will not be printed again.
1624
- `),L3(F)}function L3(D){D.update(E2).set({bootstrapShownAt:new Date().toISOString()}).where(S(E2.pk,"default")).run()}var yj=R(()=>{gD();V0()});var uj=R(()=>{xj();YW();BW();yj()});import{access as ir,mkdir as mj,writeFile as HW}from"fs/promises";import q3 from"path";function X4(D,$){let F=Error($);return F.code=D,F}function WW(D){let $={confidence:D.confidence,createdAt:D.createdAt,evidence:D.evidence??[],id:D.id,kind:D.kind,risk:D.risk,rollback:D.rollback,soulId:D.soulId,status:D.status,summary:D.summary,target:D.target,updatedAt:D.updatedAt};if(D.scopeId!==null)$.scopeId=D.scopeId;if(D.payload!==null)$.payload=D.payload;let F=P5.safeParse($);if(F.success)return{ok:!0,proposal:F.data};let X=F.error.issues.slice(0,4).map((J)=>`${J.path.join(".")||"<root>"}: ${J.message}`).join("; ");return{ok:!1,id:D.id,reason:`schema-drift: ${X}`}}function UW(D,$){return $?.redactSensitive===!1?D:I5(D)}function or(D){if(D===void 0)return nr;if(!Number.isInteger(D)||D<1)throw Error(`brain admission limit must be a positive integer, got ${String(D)}`);return Math.min(D,rr)}function tr(D){let $={decidedAt:D.decidedAt,decidedBy:D.decidedBy,decision:D.decision,id:D.id,proposalId:D.proposalId};if(D.reason!==null)$.reason=D.reason;if(D.appliedAt!==null)$.appliedAt=D.appliedAt;if(D.failureReason!==null)$.failureReason=D.failureReason;return $}class eD{propose(D,$=new Date().toISOString()){let F=L5.parse(D),X=b();if(X.select({id:FD.id}).from(FD).where(S(FD.id,F.id)).get()!==void 0)throw X4("duplicate-id",`brain admission proposal "${F.id}" already exists`);return X.insert(FD).values({confidence:F.confidence,createdAt:$,evidence:F.evidence??[],id:F.id,kind:F.kind,payload:F.payload??null,risk:F.risk,rollback:F.rollback,scopeId:F.scopeId??null,soulId:F.soulId,status:"pending",summary:F.summary,target:F.target,updatedAt:$}).run(),this.requireById(F.id,{redactSensitive:!1})}get(D,$){let F=b().select().from(FD).where(S(FD.id,D)).get();if(F===void 0)return null;let X=WW(F);if(!X.ok)return null;return UW(X.proposal,$)}getSafe(D,$){let F=b().select().from(FD).where(S(FD.id,D)).get();if(F===void 0)return null;let X=WW(F);if(!X.ok)return{ok:!1,reason:X.reason};return{ok:!0,proposal:UW(X.proposal,$)}}requireById(D,$){let F=this.get(D,$);if(F===null)throw X4("not-found",`brain admission proposal "${D}" not found`);return F}list(D,$){let F=or(D?.limit),X=[];if(D?.status!==void 0)X.push(S(FD.status,D.status));if(D?.kind!==void 0)X.push(S(FD.kind,D.kind));if(D?.scopeId!==void 0)X.push(D.scopeId===null?S(FD.scopeId,null):S(FD.scopeId,D.scopeId));if(D?.soulId!==void 0)X.push(S(FD.soulId,D.soulId));let J=b().select().from(FD).orderBy(RD(FD.createdAt)).limit(F),G=(X.length===0?J:J.where(TD(...X))).all(),Y=[],B=[],H=[];for(let U of G){let V=WW(U);if(V.ok)Y.push(UW(V.proposal,$));else B.push(V.id),H.push(V.reason)}return{proposals:Y,skipped:{count:B.length,ids:B,reasons:H}}}count(D){let $=[];if(D?.status!==void 0)$.push(S(FD.status,D.status));if(D?.kind!==void 0)$.push(S(FD.kind,D.kind));if(D?.scopeId!==void 0)$.push(D.scopeId===null?S(FD.scopeId,null):S(FD.scopeId,D.scopeId));if(D?.soulId!==void 0)$.push(S(FD.soulId,D.soulId));return($.length===0?b().select({id:FD.id}).from(FD).all():b().select({id:FD.id}).from(FD).where(TD(...$)).all()).length}approve(D,$){let F=this.requireById(D,{redactSensitive:!1});if(F.status!=="pending")throw X4("invalid-transition",`cannot approve proposal "${D}" with status "${F.status}" (only "pending" is approvable)`);let X=$.at??new Date().toISOString(),J=b();return J.update(FD).set({status:"approved",updatedAt:X}).where(S(FD.id,D)).run(),J.insert(B2).values({decidedAt:X,decidedBy:$.decidedBy,decision:"approved",proposalId:D,reason:$.reason??null}).run(),this.requireById(D)}reject(D,$){let F=this.requireById(D,{redactSensitive:!1});if(F.status!=="pending")throw X4("invalid-transition",`cannot reject proposal "${D}" with status "${F.status}" (only "pending" is rejectable)`);let X=$.at??new Date().toISOString(),J=b();return J.update(FD).set({status:"rejected",updatedAt:X}).where(S(FD.id,D)).run(),J.insert(B2).values({decidedAt:X,decidedBy:$.decidedBy,decision:"rejected",proposalId:D,reason:$.reason??null}).run(),this.requireById(D)}async apply(D,$){let F=this.requireById(D,{redactSensitive:!1});if(F.status!=="approved")throw X4("invalid-transition",`cannot apply proposal "${D}" with status "${F.status}" (must be "approved")`);if(!q5(F.kind))return this.handleUnsupportedKind(D,F.kind,$);if(F.kind==="brain-skill-add")return this.applyBrainSkillAdd(D,F,$);let X=o6.safeParse(F.payload);if(!X.success)return{kind:"failed",reason:`payload does not match memory-add schema: ${X.error.issues.map((M)=>`${M.path.join(".")||"<root>"}: ${M.message}`).join("; ")}`};let J=X.data,G=$.allowSecretBody??"block",Y=r6(J.body),B=Y.hits.length>0,H=J.body,U;if(!B)U={hits:[],action:"allow-clean",policy:G};else if(G==="block")return U={hits:Y.hits,action:"block",policy:G},{kind:"blocked-by-secret-scan",secretScan:U};else if(G==="redact")H=z0(J.body).body,U={hits:Y.hits,action:"redact",policy:G};else U={hits:Y.hits,action:"allow-raw",policy:G};let Q=J.topic===void 0?q3.join($.brainHome,"MEMORY.md"):q3.join($.brainHome,"memories",`${J.topic}.md`),V=$s(Q,H,J.indexEntry,U);if($.commit!==!0)return{diff:V,kind:"dry-run",target:Q,secretScan:U};let A=$.at??new Date().toISOString();try{await mj(q3.dirname(Q),{recursive:!0});let M=er(H);if(await HW(Q,M,{encoding:"utf8",flag:"a"}),J.topic!==void 0&&J.indexEntry!==void 0){let C=q3.join($.brainHome,"MEMORY.md"),Z=`${J.indexEntry.replace(/\n+$/u,"")}
1625
- `;await HW(C,Z,{encoding:"utf8",flag:"a"})}}catch(M){let C=M instanceof Error?M.message:String(M),Z=b();return Z.update(FD).set({status:"failed",updatedAt:A}).where(S(FD.id,D)).run(),Z.insert(B2).values({decidedAt:A,decidedBy:$.decidedBy,decision:"failed",failureReason:C,proposalId:D}).run(),{kind:"failed",reason:C}}let K=b();return K.update(FD).set({status:"applied",updatedAt:A}).where(S(FD.id,D)).run(),K.insert(B2).values({appliedAt:A,decidedAt:A,decidedBy:$.decidedBy,decision:"applied",proposalId:D,reason:cj(U)}).run(),{kind:"applied",target:Q,secretScan:U}}async applyBrainSkillAdd(D,$,F){let X=z5.safeParse($.payload);if(!X.success)return{kind:"failed",reason:`payload does not match brain-skill-add schema: ${X.error.issues.map((C)=>`${C.path.join(".")||"<root>"}: ${C.message}`).join("; ")}`};let J=X.data,G=Xs(J.body,J.skillId);if(G!==null)return{kind:"failed",reason:G};let Y=F.allowSecretBody??"block",B=r6(J.body),H=B.hits.length>0,U=J.body,Q;if(!H)Q={hits:[],action:"allow-clean",policy:Y};else if(Y==="block")return Q={hits:B.hits,action:"block",policy:Y},{kind:"blocked-by-secret-scan",secretScan:Q};else if(Y==="redact")U=z0(J.body).body,Q={hits:B.hits,action:"redact",policy:Y};else Q={hits:B.hits,action:"allow-raw",policy:Y};let V=q3.join(F.brainHome,"skills",J.skillId,"SKILL.md");if(J.overwrite!==!0&&await Js(V))return{kind:"failed",reason:`target skill already exists: ${V}; set payload.overwrite=true to replace it`};let A=Fs(V,U,J.overwrite===!0,Q);if(F.commit!==!0)return{diff:A,kind:"dry-run",target:V,secretScan:Q};let K=F.at??new Date().toISOString();try{await mj(q3.dirname(V),{recursive:!0}),await HW(V,Ds(U),{encoding:"utf8",flag:J.overwrite===!0?"w":"wx"})}catch(C){let Z=C instanceof Error?C.message:String(C),O=b();return O.update(FD).set({status:"failed",updatedAt:K}).where(S(FD.id,D)).run(),O.insert(B2).values({decidedAt:K,decidedBy:F.decidedBy,decision:"failed",failureReason:Z,proposalId:D}).run(),{kind:"failed",reason:Z}}let M=b();return M.update(FD).set({status:"applied",updatedAt:K}).where(S(FD.id,D)).run(),M.insert(B2).values({appliedAt:K,decidedAt:K,decidedBy:F.decidedBy,decision:"applied",proposalId:D,reason:cj(Q)}).run(),{kind:"applied",target:V,secretScan:Q}}handleUnsupportedKind(D,$,F){let X=`Materializer supports memory-add and brain-skill-add; kind "${$}" requires manual follow-up`;if(F.commit!==!0)return{kind:"unsupported",proposalKind:$,reason:X};let J=F.at??new Date().toISOString(),G=`unsupported-kind:${$}`,Y=b();return Y.update(FD).set({status:"failed",updatedAt:J}).where(S(FD.id,D)).run(),Y.insert(B2).values({decidedAt:J,decidedBy:F.decidedBy,decision:"failed",failureReason:G,proposalId:D,reason:X}).run(),{kind:"unsupported",proposalKind:$,reason:X}}listDecisions(D){return b().select().from(B2).where(S(B2.proposalId,D)).orderBy(RD(B2.decidedAt)).all().map((F)=>tr(F))}}function QW(){return new eD}function er(D){if(D.endsWith(`
1624
+ `),L3(F)}function L3(D){D.update(E2).set({bootstrapShownAt:new Date().toISOString()}).where(S(E2.pk,"default")).run()}var yj=R(()=>{gD();V0()});var uj=R(()=>{xj();YW();BW();yj()});import{access as ir,mkdir as mj,writeFile as HW}from"fs/promises";import q3 from"path";function X4(D,$){let F=Error($);return F.code=D,F}function WW(D){let $={confidence:D.confidence,createdAt:D.createdAt,evidence:D.evidence??[],id:D.id,kind:D.kind,risk:D.risk,rollback:D.rollback,soulId:D.soulId,status:D.status,summary:D.summary,target:D.target,updatedAt:D.updatedAt};if(D.scopeId!==null)$.scopeId=D.scopeId;if(D.payload!==null)$.payload=D.payload;let F=P5.safeParse($);if(F.success)return{ok:!0,proposal:F.data};let X=F.error.issues.slice(0,4).map((J)=>`${J.path.join(".")||"<root>"}: ${J.message}`).join("; ");return{ok:!1,id:D.id,reason:`schema-drift: ${X}`}}function UW(D,$){return $?.redactSensitive===!1?D:I5(D)}function or(D){if(D===void 0)return nr;if(!Number.isInteger(D)||D<1)throw Error(`brain admission limit must be a positive integer, got ${String(D)}`);return Math.min(D,rr)}function tr(D){let $={decidedAt:D.decidedAt,decidedBy:D.decidedBy,decision:D.decision,id:D.id,proposalId:D.proposalId};if(D.reason!==null)$.reason=D.reason;if(D.appliedAt!==null)$.appliedAt=D.appliedAt;if(D.failureReason!==null)$.failureReason=D.failureReason;return $}class eD{propose(D,$=new Date().toISOString()){let F=L5.parse(D),X=b();if(X.select({id:FD.id}).from(FD).where(S(FD.id,F.id)).get()!==void 0)throw X4("duplicate-id",`brain admission proposal "${F.id}" already exists`);return X.insert(FD).values({confidence:F.confidence,createdAt:$,evidence:F.evidence??[],id:F.id,kind:F.kind,payload:F.payload??null,risk:F.risk,rollback:F.rollback,scopeId:F.scopeId??null,soulId:F.soulId,status:"pending",summary:F.summary,target:F.target,updatedAt:$}).run(),this.requireById(F.id,{redactSensitive:!1})}get(D,$){let F=b().select().from(FD).where(S(FD.id,D)).get();if(F===void 0)return null;let X=WW(F);if(!X.ok)return null;return UW(X.proposal,$)}getSafe(D,$){let F=b().select().from(FD).where(S(FD.id,D)).get();if(F===void 0)return null;let X=WW(F);if(!X.ok)return{ok:!1,reason:X.reason};return{ok:!0,proposal:UW(X.proposal,$)}}requireById(D,$){let F=this.get(D,$);if(F===null)throw X4("not-found",`brain admission proposal "${D}" not found`);return F}list(D,$){let F=or(D?.limit),X=[];if(D?.status!==void 0)X.push(S(FD.status,D.status));if(D?.kind!==void 0)X.push(S(FD.kind,D.kind));if(D?.scopeId!==void 0)X.push(D.scopeId===null?S(FD.scopeId,null):S(FD.scopeId,D.scopeId));if(D?.soulId!==void 0)X.push(S(FD.soulId,D.soulId));let J=b().select().from(FD).orderBy(OD(FD.createdAt)).limit(F),G=(X.length===0?J:J.where(TD(...X))).all(),Y=[],B=[],H=[];for(let U of G){let V=WW(U);if(V.ok)Y.push(UW(V.proposal,$));else B.push(V.id),H.push(V.reason)}return{proposals:Y,skipped:{count:B.length,ids:B,reasons:H}}}count(D){let $=[];if(D?.status!==void 0)$.push(S(FD.status,D.status));if(D?.kind!==void 0)$.push(S(FD.kind,D.kind));if(D?.scopeId!==void 0)$.push(D.scopeId===null?S(FD.scopeId,null):S(FD.scopeId,D.scopeId));if(D?.soulId!==void 0)$.push(S(FD.soulId,D.soulId));return($.length===0?b().select({id:FD.id}).from(FD).all():b().select({id:FD.id}).from(FD).where(TD(...$)).all()).length}approve(D,$){let F=this.requireById(D,{redactSensitive:!1});if(F.status!=="pending")throw X4("invalid-transition",`cannot approve proposal "${D}" with status "${F.status}" (only "pending" is approvable)`);let X=$.at??new Date().toISOString(),J=b();return J.update(FD).set({status:"approved",updatedAt:X}).where(S(FD.id,D)).run(),J.insert(B2).values({decidedAt:X,decidedBy:$.decidedBy,decision:"approved",proposalId:D,reason:$.reason??null}).run(),this.requireById(D)}reject(D,$){let F=this.requireById(D,{redactSensitive:!1});if(F.status!=="pending")throw X4("invalid-transition",`cannot reject proposal "${D}" with status "${F.status}" (only "pending" is rejectable)`);let X=$.at??new Date().toISOString(),J=b();return J.update(FD).set({status:"rejected",updatedAt:X}).where(S(FD.id,D)).run(),J.insert(B2).values({decidedAt:X,decidedBy:$.decidedBy,decision:"rejected",proposalId:D,reason:$.reason??null}).run(),this.requireById(D)}async apply(D,$){let F=this.requireById(D,{redactSensitive:!1});if(F.status!=="approved")throw X4("invalid-transition",`cannot apply proposal "${D}" with status "${F.status}" (must be "approved")`);if(!q5(F.kind))return this.handleUnsupportedKind(D,F.kind,$);if(F.kind==="brain-skill-add")return this.applyBrainSkillAdd(D,F,$);let X=o6.safeParse(F.payload);if(!X.success)return{kind:"failed",reason:`payload does not match memory-add schema: ${X.error.issues.map((M)=>`${M.path.join(".")||"<root>"}: ${M.message}`).join("; ")}`};let J=X.data,G=$.allowSecretBody??"block",Y=r6(J.body),B=Y.hits.length>0,H=J.body,U;if(!B)U={hits:[],action:"allow-clean",policy:G};else if(G==="block")return U={hits:Y.hits,action:"block",policy:G},{kind:"blocked-by-secret-scan",secretScan:U};else if(G==="redact")H=z0(J.body).body,U={hits:Y.hits,action:"redact",policy:G};else U={hits:Y.hits,action:"allow-raw",policy:G};let Q=J.topic===void 0?q3.join($.brainHome,"MEMORY.md"):q3.join($.brainHome,"memories",`${J.topic}.md`),V=$s(Q,H,J.indexEntry,U);if($.commit!==!0)return{diff:V,kind:"dry-run",target:Q,secretScan:U};let A=$.at??new Date().toISOString();try{await mj(q3.dirname(Q),{recursive:!0});let M=er(H);if(await HW(Q,M,{encoding:"utf8",flag:"a"}),J.topic!==void 0&&J.indexEntry!==void 0){let C=q3.join($.brainHome,"MEMORY.md"),Z=`${J.indexEntry.replace(/\n+$/u,"")}
1625
+ `;await HW(C,Z,{encoding:"utf8",flag:"a"})}}catch(M){let C=M instanceof Error?M.message:String(M),Z=b();return Z.update(FD).set({status:"failed",updatedAt:A}).where(S(FD.id,D)).run(),Z.insert(B2).values({decidedAt:A,decidedBy:$.decidedBy,decision:"failed",failureReason:C,proposalId:D}).run(),{kind:"failed",reason:C}}let K=b();return K.update(FD).set({status:"applied",updatedAt:A}).where(S(FD.id,D)).run(),K.insert(B2).values({appliedAt:A,decidedAt:A,decidedBy:$.decidedBy,decision:"applied",proposalId:D,reason:cj(U)}).run(),{kind:"applied",target:Q,secretScan:U}}async applyBrainSkillAdd(D,$,F){let X=z5.safeParse($.payload);if(!X.success)return{kind:"failed",reason:`payload does not match brain-skill-add schema: ${X.error.issues.map((C)=>`${C.path.join(".")||"<root>"}: ${C.message}`).join("; ")}`};let J=X.data,G=Xs(J.body,J.skillId);if(G!==null)return{kind:"failed",reason:G};let Y=F.allowSecretBody??"block",B=r6(J.body),H=B.hits.length>0,U=J.body,Q;if(!H)Q={hits:[],action:"allow-clean",policy:Y};else if(Y==="block")return Q={hits:B.hits,action:"block",policy:Y},{kind:"blocked-by-secret-scan",secretScan:Q};else if(Y==="redact")U=z0(J.body).body,Q={hits:B.hits,action:"redact",policy:Y};else Q={hits:B.hits,action:"allow-raw",policy:Y};let V=q3.join(F.brainHome,"skills",J.skillId,"SKILL.md");if(J.overwrite!==!0&&await Js(V))return{kind:"failed",reason:`target skill already exists: ${V}; set payload.overwrite=true to replace it`};let A=Fs(V,U,J.overwrite===!0,Q);if(F.commit!==!0)return{diff:A,kind:"dry-run",target:V,secretScan:Q};let K=F.at??new Date().toISOString();try{await mj(q3.dirname(V),{recursive:!0}),await HW(V,Ds(U),{encoding:"utf8",flag:J.overwrite===!0?"w":"wx"})}catch(C){let Z=C instanceof Error?C.message:String(C),O=b();return O.update(FD).set({status:"failed",updatedAt:K}).where(S(FD.id,D)).run(),O.insert(B2).values({decidedAt:K,decidedBy:F.decidedBy,decision:"failed",failureReason:Z,proposalId:D}).run(),{kind:"failed",reason:Z}}let M=b();return M.update(FD).set({status:"applied",updatedAt:K}).where(S(FD.id,D)).run(),M.insert(B2).values({appliedAt:K,decidedAt:K,decidedBy:F.decidedBy,decision:"applied",proposalId:D,reason:cj(Q)}).run(),{kind:"applied",target:V,secretScan:Q}}handleUnsupportedKind(D,$,F){let X=`Materializer supports memory-add and brain-skill-add; kind "${$}" requires manual follow-up`;if(F.commit!==!0)return{kind:"unsupported",proposalKind:$,reason:X};let J=F.at??new Date().toISOString(),G=`unsupported-kind:${$}`,Y=b();return Y.update(FD).set({status:"failed",updatedAt:J}).where(S(FD.id,D)).run(),Y.insert(B2).values({decidedAt:J,decidedBy:F.decidedBy,decision:"failed",failureReason:G,proposalId:D,reason:X}).run(),{kind:"unsupported",proposalKind:$,reason:X}}listDecisions(D){return b().select().from(B2).where(S(B2.proposalId,D)).orderBy(OD(B2.decidedAt)).all().map((F)=>tr(F))}}function QW(){return new eD}function er(D){if(D.endsWith(`
1626
1626
 
1627
1627
  `))return D;if(D.endsWith(`
1628
1628
  `))return`${D}
@@ -1645,7 +1645,7 @@ params: ${$}`);if(this.query=D,this.params=$,this.cause=F,Error.captureStackTrac
1645
1645
  ${G.split(`
1646
1646
  `).join(`
1647
1647
  `)}${Y}`,B].join(`
1648
- `)}function Xs(D,$){let F=sr.exec(D);if(!F)return"brain-skill-add body must include YAML frontmatter";let X;try{X=K2(F[1]??"")}catch(G){return`brain-skill-add frontmatter is invalid YAML: ${G instanceof Error?G.message:String(G)}`}let J=ar.safeParse(X);if(!J.success)return`brain-skill-add frontmatter does not satisfy SkillMetadata: ${J.error.issues.map((G)=>`${G.path.join(".")||"<root>"}: ${G.message}`).join("; ")}`;if(J.data.id!==$)return`brain-skill-add frontmatter id "${J.data.id}" does not match payload.skillId "${$}"`;return null}async function Js(D){try{return await ir(D),!0}catch{return!1}}function cj(D){if(D.hits.length===0)return null;if(D.action==="redact")return`operator-redacted-secret-scan: ${D.hits.length} hit${D.hits.length===1?"":"s"}`;if(D.action==="allow-raw")return`operator-overrode-secret-scan-raw: ${D.hits.length} hit${D.hits.length===1?"":"s"}`;return null}var nr=50,rr=500,sr,ar;var pj=R(()=>{MD();gD();V0();m8();jD();sr=/^---\r?\n([\s\S]*?)\r?\n---\r?\n?/,ar=c8.extend({id:W.string().min(1)})});var VW=R(()=>{pj()});function dj(D){return Bs[D]}function lj(D){let $={createdAt:D.createdAt,evidenceRefs:D.evidenceRefs??[],id:D.id,ref:D.ref,sensitivity:D.sensitivity,source:D.source,status:D.status,type:D.type,updatedAt:D.updatedAt};if(D.scopeId!==null)$.scopeId=D.scopeId;if(D.hash!==null)$.hash=D.hash;if(D.retention!==null)$.retention=D.retention;if(D.summary!==null)$.summary=D.summary;if(D.metadata!==null)$.metadata=D.metadata;return f5.parse($)}function ij(D,$){return $?.redactSensitive===!1?D:h5(D)}function Hs(D){if(D===void 0)return Gs;if(!Number.isInteger(D)||D<1)throw Error(`brain artifact limit must be a positive integer, got ${String(D)}`);return Math.min(D,Ys)}class a0{register(D,$=new Date().toISOString()){let F=g5.parse(D),X=b();if(X.select({id:wD.id}).from(wD).where(S(wD.id,F.id)).get()!==void 0)throw Error(`brain artifact "${F.id}" already registered`);return X.insert(wD).values({createdAt:$,evidenceRefs:F.evidenceRefs??[],hash:F.hash??null,id:F.id,metadata:F.metadata??null,ref:F.ref,retention:F.retention??null,scopeId:F.scopeId??null,sensitivity:F.sensitivity,source:F.source,status:F.status,summary:F.summary??null,type:F.type,updatedAt:$}).run(),this.requireById(F.id,{redactSensitive:!1})}get(D,$){let F=b().select().from(wD).where(S(wD.id,D)).get();if(F===void 0)return null;return ij(lj(F),$)}requireById(D,$){let F=this.get(D,$);if(F===null)throw Error(`brain artifact "${D}" not found`);return F}list(D,$){let F=Hs(D?.limit),X=D?.minSensitivity===void 0?0:dj(D.minSensitivity),J=[];if(D?.scopeId!==void 0)J.push(D.scopeId===null?S(wD.scopeId,null):S(wD.scopeId,D.scopeId));if(D?.type!==void 0)J.push(S(wD.type,D.type));if(D?.status!==void 0)J.push(S(wD.status,D.status));let G=b().select().from(wD).orderBy(RD(wD.updatedAt)).limit(F);return(J.length===0?G:G.where(TD(...J))).all().map((B)=>lj(B)).filter((B)=>dj(B.sensitivity)>=X).map((B)=>ij(B,$))}setStatus(D,$,F=new Date().toISOString(),X){return b().update(wD).set({status:$,updatedAt:F}).where(S(wD.id,D)).run(),this.requireById(D,X)}count(D){let $=[];if(D?.scopeId!==void 0)$.push(D.scopeId===null?S(wD.scopeId,null):S(wD.scopeId,D.scopeId));if(D?.type!==void 0)$.push(S(wD.type,D.type));if(D?.status!==void 0)$.push(S(wD.status,D.status));return($.length===0?b().select({id:wD.id}).from(wD).all():b().select({id:wD.id}).from(wD).where(TD(...$)).all()).length}}function AW(){return new a0}var Gs=200,Ys=500,Bs;var nj=R(()=>{MD();gD();V0();Bs={public:0,internal:1,confidential:2,secret:3}});var rj=R(()=>{nj()});import{readdir as Ws,readFile as sj}from"fs/promises";import FX from"path";class Y6{deps;estimate;constructor(D){this.deps=D;this.estimate=D.estimateTokens??u5}async compile(D){let $=x5.parse(D),F=this.deps.scopeManifestReader?await this.deps.scopeManifestReader():null,X=$.soulId??F?.primarySoul??"general-assistant",J=this.deps.soulRegistry.require(X),G=$.tokenBudget??y5,Y=new Set(J.briefHooks.protectedSections),B=J.briefHooks.defaultSections,H=[],U=[];for(let N of B){let w=await this.buildSection(N,{scopeManifest:F,soul:J,validated:$});if(w!==null){let i=this.estimate(w.body);H.push({...w,protected:Y.has(N),tokens:i})}}let Q=($.artifactRefs??[]).filter((N)=>typeof N==="string"&&N.trim().length>0).map((N)=>N.trim());if(Q.length>0){let N=await this.buildArtifactSummary(Q);if(N!==null)H.push({...N,protected:!1,tokens:this.estimate(N.body)});else U.push("artifact-summary section skipped: no BrainArtifactRegistry wired into the compiler")}let V=B.map((N)=>H.find((w)=>w.id===N)).filter((N)=>N!==void 0),A=H.filter((N)=>!B.includes(N.id)),K=[...V,...A],M=[],C=[],Z=0,O=[...K].sort((N,w)=>Number(w.protected)-Number(N.protected));for(let N of O)if(Z+N.tokens<=G)M.push(N),Z+=N.tokens;else if(N.protected)M.push(N),Z+=N.tokens,U.push(`protected section "${N.id}" forced inclusion (token budget overflowed by ${Z-G})`);else C.push({estimatedTokens:N.tokens,id:N.id,reason:"token budget exceeded"});let j=new Map(M.map((N)=>[N.id,N])),P=[];for(let N of K){let w=j.get(N.id);if(w!==void 0)P.push(w)}let T=(this.deps.now?this.deps.now():new Date).toISOString(),h=$.scopeId??F?.id,q={compiledAt:T,droppedSections:C,sections:P,soulId:X,task:$.task,tokensBudget:G,tokensUsed:Z,warnings:U};if(h!==void 0)q.scopeId=h;if($.executor!==void 0)q.executor=$.executor;return q}async buildSection(D,$){switch(D){case"agent":return this.tryReadFile("AGENT.md","agent-doc",D,aj);case"soul":return this.tryReadFile("SOUL.md","soul-doc",D,aj);case"memory":return this.buildMemorySection(D,$);case"rollup":return this.tryReadFile("ROLLUP.md","rollup-doc",D,Qs);case"risk-policy":return{body:Zs($.soul,$.scopeManifest),id:D,source:"risk-policy"};default:{let F=_s[D];if(F!==void 0)return{body:F,id:D,source:Ks[D]??"soul-skeleton"};return null}}}async tryReadFile(D,$,F,X){try{let J=await sj(FX.join(this.deps.brainHome,D),"utf8"),G=d8(J);if(G.length===0)return null;return{body:G.length>X?`${G.slice(0,X)}
1648
+ `)}function Xs(D,$){let F=sr.exec(D);if(!F)return"brain-skill-add body must include YAML frontmatter";let X;try{X=K2(F[1]??"")}catch(G){return`brain-skill-add frontmatter is invalid YAML: ${G instanceof Error?G.message:String(G)}`}let J=ar.safeParse(X);if(!J.success)return`brain-skill-add frontmatter does not satisfy SkillMetadata: ${J.error.issues.map((G)=>`${G.path.join(".")||"<root>"}: ${G.message}`).join("; ")}`;if(J.data.id!==$)return`brain-skill-add frontmatter id "${J.data.id}" does not match payload.skillId "${$}"`;return null}async function Js(D){try{return await ir(D),!0}catch{return!1}}function cj(D){if(D.hits.length===0)return null;if(D.action==="redact")return`operator-redacted-secret-scan: ${D.hits.length} hit${D.hits.length===1?"":"s"}`;if(D.action==="allow-raw")return`operator-overrode-secret-scan-raw: ${D.hits.length} hit${D.hits.length===1?"":"s"}`;return null}var nr=50,rr=500,sr,ar;var pj=R(()=>{ZD();gD();V0();m8();jD();sr=/^---\r?\n([\s\S]*?)\r?\n---\r?\n?/,ar=c8.extend({id:W.string().min(1)})});var VW=R(()=>{pj()});function dj(D){return Bs[D]}function lj(D){let $={createdAt:D.createdAt,evidenceRefs:D.evidenceRefs??[],id:D.id,ref:D.ref,sensitivity:D.sensitivity,source:D.source,status:D.status,type:D.type,updatedAt:D.updatedAt};if(D.scopeId!==null)$.scopeId=D.scopeId;if(D.hash!==null)$.hash=D.hash;if(D.retention!==null)$.retention=D.retention;if(D.summary!==null)$.summary=D.summary;if(D.metadata!==null)$.metadata=D.metadata;return f5.parse($)}function ij(D,$){return $?.redactSensitive===!1?D:h5(D)}function Hs(D){if(D===void 0)return Gs;if(!Number.isInteger(D)||D<1)throw Error(`brain artifact limit must be a positive integer, got ${String(D)}`);return Math.min(D,Ys)}class a0{register(D,$=new Date().toISOString()){let F=g5.parse(D),X=b();if(X.select({id:wD.id}).from(wD).where(S(wD.id,F.id)).get()!==void 0)throw Error(`brain artifact "${F.id}" already registered`);return X.insert(wD).values({createdAt:$,evidenceRefs:F.evidenceRefs??[],hash:F.hash??null,id:F.id,metadata:F.metadata??null,ref:F.ref,retention:F.retention??null,scopeId:F.scopeId??null,sensitivity:F.sensitivity,source:F.source,status:F.status,summary:F.summary??null,type:F.type,updatedAt:$}).run(),this.requireById(F.id,{redactSensitive:!1})}get(D,$){let F=b().select().from(wD).where(S(wD.id,D)).get();if(F===void 0)return null;return ij(lj(F),$)}requireById(D,$){let F=this.get(D,$);if(F===null)throw Error(`brain artifact "${D}" not found`);return F}list(D,$){let F=Hs(D?.limit),X=D?.minSensitivity===void 0?0:dj(D.minSensitivity),J=[];if(D?.scopeId!==void 0)J.push(D.scopeId===null?S(wD.scopeId,null):S(wD.scopeId,D.scopeId));if(D?.type!==void 0)J.push(S(wD.type,D.type));if(D?.status!==void 0)J.push(S(wD.status,D.status));let G=b().select().from(wD).orderBy(OD(wD.updatedAt)).limit(F);return(J.length===0?G:G.where(TD(...J))).all().map((B)=>lj(B)).filter((B)=>dj(B.sensitivity)>=X).map((B)=>ij(B,$))}setStatus(D,$,F=new Date().toISOString(),X){return b().update(wD).set({status:$,updatedAt:F}).where(S(wD.id,D)).run(),this.requireById(D,X)}count(D){let $=[];if(D?.scopeId!==void 0)$.push(D.scopeId===null?S(wD.scopeId,null):S(wD.scopeId,D.scopeId));if(D?.type!==void 0)$.push(S(wD.type,D.type));if(D?.status!==void 0)$.push(S(wD.status,D.status));return($.length===0?b().select({id:wD.id}).from(wD).all():b().select({id:wD.id}).from(wD).where(TD(...$)).all()).length}}function AW(){return new a0}var Gs=200,Ys=500,Bs;var nj=R(()=>{ZD();gD();V0();Bs={public:0,internal:1,confidential:2,secret:3}});var rj=R(()=>{nj()});import{readdir as Ws,readFile as sj}from"fs/promises";import FX from"path";class Y6{deps;estimate;constructor(D){this.deps=D;this.estimate=D.estimateTokens??u5}async compile(D){let $=x5.parse(D),F=this.deps.scopeManifestReader?await this.deps.scopeManifestReader():null,X=$.soulId??F?.primarySoul??"general-assistant",J=this.deps.soulRegistry.require(X),G=$.tokenBudget??y5,Y=new Set(J.briefHooks.protectedSections),B=J.briefHooks.defaultSections,H=[],U=[];for(let N of B){let w=await this.buildSection(N,{scopeManifest:F,soul:J,validated:$});if(w!==null){let i=this.estimate(w.body);H.push({...w,protected:Y.has(N),tokens:i})}}let Q=($.artifactRefs??[]).filter((N)=>typeof N==="string"&&N.trim().length>0).map((N)=>N.trim());if(Q.length>0){let N=await this.buildArtifactSummary(Q);if(N!==null)H.push({...N,protected:!1,tokens:this.estimate(N.body)});else U.push("artifact-summary section skipped: no BrainArtifactRegistry wired into the compiler")}let V=B.map((N)=>H.find((w)=>w.id===N)).filter((N)=>N!==void 0),A=H.filter((N)=>!B.includes(N.id)),K=[...V,...A],M=[],C=[],Z=0,O=[...K].sort((N,w)=>Number(w.protected)-Number(N.protected));for(let N of O)if(Z+N.tokens<=G)M.push(N),Z+=N.tokens;else if(N.protected)M.push(N),Z+=N.tokens,U.push(`protected section "${N.id}" forced inclusion (token budget overflowed by ${Z-G})`);else C.push({estimatedTokens:N.tokens,id:N.id,reason:"token budget exceeded"});let j=new Map(M.map((N)=>[N.id,N])),P=[];for(let N of K){let w=j.get(N.id);if(w!==void 0)P.push(w)}let T=(this.deps.now?this.deps.now():new Date).toISOString(),h=$.scopeId??F?.id,q={compiledAt:T,droppedSections:C,sections:P,soulId:X,task:$.task,tokensBudget:G,tokensUsed:Z,warnings:U};if(h!==void 0)q.scopeId=h;if($.executor!==void 0)q.executor=$.executor;return q}async buildSection(D,$){switch(D){case"agent":return this.tryReadFile("AGENT.md","agent-doc",D,aj);case"soul":return this.tryReadFile("SOUL.md","soul-doc",D,aj);case"memory":return this.buildMemorySection(D,$);case"rollup":return this.tryReadFile("ROLLUP.md","rollup-doc",D,Qs);case"risk-policy":return{body:Zs($.soul,$.scopeManifest),id:D,source:"risk-policy"};default:{let F=_s[D];if(F!==void 0)return{body:F,id:D,source:Ks[D]??"soul-skeleton"};return null}}}async tryReadFile(D,$,F,X){try{let J=await sj(FX.join(this.deps.brainHome,D),"utf8"),G=d8(J);if(G.length===0)return null;return{body:G.length>X?`${G.slice(0,X)}
1649
1649
 
1650
1650
  ... (truncated; canonical source at ${D})`:G,id:F,source:$}}catch{return null}}async buildMemorySection(D,$){let F=await this.tryReadFile("MEMORY.md","memory-doc",D,Us),X=F?.body,J=FX.join(this.deps.brainHome,"memories"),G=await this.listMemoryFiles(J),Y=$.validated.task.trim();if(G.length===0||Y.length<As)return F??(G.length>0?{body:this.formatMemoryBodySection([],G),id:D,source:"memory-doc"}:null);let B=Cs(X??""),U=Ms({files:G,indexRows:B,task:Y}).slice(0,Vs),Q=[];for(let A of U)try{let M=(await sj(FX.join(J,A.file),"utf8")).trim();if(M.length===0)continue;let C=M.length>oj?`${M.slice(0,oj)}
1651
1651
 
@@ -1654,7 +1654,7 @@ params: ${$}`);if(this.query=D,this.params=$,this.cause=F,Error.captureStackTrac
1654
1654
 
1655
1655
  _No memory bodies matched. Available: ${$.length}._`;return""}async listMemoryFiles(D){try{return(await Ws(D)).filter((F)=>F.endsWith(".md")).sort()}catch{return[]}}async buildArtifactSummary(D){if(this.deps.artifactRegistry===void 0)return null;let $=["# Referenced artifacts (redacted)"],F=!1;for(let X of D){let J=this.deps.artifactRegistry.get(X);if(J===null){$.push(`- ${X}: not found in brain artifact registry`);continue}F=!0,$.push(`- ${J.id} (${J.type}, ${J.sensitivity}, ${J.status}): ${J.summary??"<no summary>"}`)}if(!F&&D.length>0)$.push(" _All requested artifacts were missing or unreadable._");return{body:$.join(`
1656
1656
  `),id:"artifact-summary",source:"artifact-summary"}}}function _W(D){return new Y6(D)}function Cs(D){let $=[],F=/^\s*[-*]\s*\[([^\]]+)\]\(([^)]+\.md)\)/gm,X=F.exec(D);while(X!==null){let J=X[1]?.trim()??"",G=X[2]?.trim()??"";if(G.length>0)$.push({title:J,file:FX.basename(G)});X=F.exec(D)}return $}function Ms(D){let $=KW(D.task);if($.size===0)return[];let F=new Map;for(let J of D.indexRows)F.set(J.file,J.title);let X=[];for(let J of D.files){let G=KW(J.replace(/\.md$/i,"")),Y=KW(F.get(J)??""),B=tj($,G),H=tj($,Y),U=B*2+H*3;if(U>0)X.push({file:J,score:U})}return X.sort((J,G)=>G.score-J.score)}function KW(D){if(D.trim().length===0)return new Set;let F=D.toLowerCase().normalize("NFKC").split(/[^\p{L}\p{N}]+/u),X=new Set(["the","and","for","with","a","an","of","to","in","on","is","are","or","how","what","why","when","where","\u7684","\u4E86","\u662F","\u5417","\u5462","\u6211","\u4F60","\u4ED6","\u5979","\u5B83","\u4EEC","\u8BF7"]),J=new Set;for(let G of F){if(G.length<2)continue;if(X.has(G))continue;J.add(G)}return J}function tj(D,$){let F=0;for(let X of $)if(D.has(X))F+=1;return F}function Zs(D,$){let F=["# Risk policy & scope guardrails"];if(F.push(`- Soul: ${D.manifest.id} (${D.manifest.label})`),F.push(`- Communication style: ${D.riskPolicy.communicationStyle}`),F.push(`- High-risk approval required: ${D.riskPolicy.highRiskRequiresApproval}`),F.push(`- Risk notes: ${D.riskPolicy.riskNotes}`),F.push(`- Out-of-scope strategy: ${D.riskPolicy.outOfScopeStrategy}`),$!==null){if(F.push(`- Scope kind: ${$.kind}`),$.privacy!==void 0)F.push(`- Scope privacy: ${$.privacy}`);if($.approval!==void 0)F.push(`- Scope approval policy: ${$.approval}`);if($.retention!==void 0)F.push(`- Retention hint: ${$.retention}`)}else F.push("- Scope manifest: missing (run `aiworker init --soul <id>` or hand-edit `.aiworker/scope.json`)");return F.join(`
1657
- `)}var Us=1200,Qs=1200,aj=1500,oj=800,Vs=4,As=4,Ks,_s;var ej=R(()=>{MD();Ks={"audit-evidence":"admission-summary",compliance:"soul-skeleton","design-decisions":"soul-skeleton","incident-timeline":"admission-summary","open-tasks":"soul-skeleton","open-tickets":"soul-skeleton","recent-changes":"admission-summary","verification-matrix":"soul-skeleton"},_s={"audit-evidence":`# Audit evidence
1657
+ `)}var Us=1200,Qs=1200,aj=1500,oj=800,Vs=4,As=4,Ks,_s;var ej=R(()=>{ZD();Ks={"audit-evidence":"admission-summary",compliance:"soul-skeleton","design-decisions":"soul-skeleton","incident-timeline":"admission-summary","open-tasks":"soul-skeleton","open-tickets":"soul-skeleton","recent-changes":"admission-summary","verification-matrix":"soul-skeleton"},_s={"audit-evidence":`# Audit evidence
1658
1658
 
1659
1659
  - _Skeleton placeholder._ PLAN-103 will surface applied admissions and confidential-tier artifact summaries here.`,compliance:`# Compliance reminders
1660
1660
 
@@ -1671,8 +1671,8 @@ _No memory bodies matched. Available: ${$.length}._`;return""}async listMemoryFi
1671
1671
 
1672
1672
  - _Skeleton placeholder._ PLAN-103 will project recent applied admissions + changelog-entry artifacts here.`,"verification-matrix":`# Verification matrix
1673
1673
 
1674
- - _Skeleton placeholder._ PLAN-103 will project verification-matrix / regression-report artifacts here.`}});var DN=R(()=>{ej()});function C8(D,$,F){let X={id:$.id,type:$.type,priority:$.priority,readOnly:$.readOnly,writeTarget:$.id===F};if($.type==="filesystem")return{...X,home:$.config.home??u0(D)};return{...X,url:$.config.url}}var XX=R(()=>{$0()});class JX{max;items=[];constructor(D){this.max=D}push(D){if(this.items.push(D),this.items.length>this.max)this.items.shift()}toArray(){return this.items.slice()}size(){return this.items.length}clear(){this.items=[]}}function $N(){ZW.clear(),RW.clear(),OW.clear()}function GX(D){let $={source:D.source,reason:D.reason,at:new Date().toISOString()};ZW.push($),EW({...$,evaluator:D.evaluator??"heuristic",fallback:D.source==="intent-fallback",stage:"intent_classifier"})}function YX(D){let $=D.reason.startsWith("llm-retry-exhausted")||D.reason.startsWith("llm-budget-exhausted"),F={evaluator:D.evaluator,reason:D.reason,at:new Date().toISOString(),fallback:$};RW.push(F),EW({...F,source:D.evaluator,stage:"quality_gate"})}function BX(D){let $={source:D.source,reason:D.reason,at:new Date().toISOString(),fallback:D.source==="classifier-fallback"};OW.push($),EW({...$,evaluator:D.evaluator,stage:"conversation_classifier"})}function z3(D={}){let $=D.intentEvaluator??"heuristic",F=D.qualityEvaluator??"heuristic",X=D.qualityMode??"observe",J=D.conversationClassifierEnabled??!0,G=Os(),Y=G?.intent??ZW.toArray(),B=Y.filter((A)=>A.source==="intent-fallback"),H=G?.quality??RW.toArray(),U=H.filter((A)=>A.fallback),Q=G?.conversation??OW.toArray(),V=Q.filter((A)=>A.fallback);return{intentClassifier:{evaluator:$,mode:"observe_only",recent:MW(Y.length,B.map((A)=>({at:A.at,reason:A.reason})))},capabilityRouter:{source:"capability-registry",mode:"observe_only",note:"capability registry advisory; selections are recorded but not enforced"},qualityGate:{evaluator:F,configuredMode:X,...D.qualityThreshold===void 0?{}:{threshold:D.qualityThreshold},recent:MW(H.length,U.map((A)=>({at:A.at,reason:A.reason})))},conversationClassifier:{enabled:J,recent:Rs(Q.length,V.map((A)=>({at:A.at,reason:A.reason})))}}}function MW(D,$){let F=$.length===0?null:$[$.length-1];return{windowSize:J4,samples:D,fallbackRate:D===0?0:$.length/D,lastFallbackReason:F?.reason??null,lastFallbackAt:F?.at??null}}function Rs(D,$){let F=MW(D,$),X={};for(let J of $)X[J.reason]=(X[J.reason]??0)+1;return{...F,fallbackByReason:X}}function EW(D){try{b().insert(O2).values({stage:D.stage,source:D.source.slice(0,120),evaluator:D.evaluator.slice(0,120),reason:D.reason.slice(0,1000),fallback:D.fallback,createdAt:D.at}).run()}catch{}}function Os(){try{return{intent:CW("intent_classifier"),quality:CW("quality_gate"),conversation:CW("conversation_classifier")}}catch{return null}}function CW(D){return b().select({source:O2.source,evaluator:O2.evaluator,reason:O2.reason,at:O2.createdAt,fallback:O2.fallback}).from(O2).where(S(O2.stage,D)).orderBy(RD(O2.createdAt)).limit(J4).all().reverse()}var J4=50,ZW,RW,OW;var HX=R(()=>{gD();V0();ZW=new JX(J4),RW=new JX(J4),OW=new JX(J4)});function FN(D){if(I3.push(D),I3.length>20)I3.splice(0,I3.length-20)}function XN(){let D=I3.at(-1);if(!D)return{recentCount:0,status:"none"};return{lastDetectedAt:D.at,...D.claimExcerpt===void 0?{}:{claimExcerpt:D.claimExcerpt},reason:D.reason,recentCount:I3.length,status:"suspected"}}var I3;var jW=R(()=>{I3=[]});import{existsSync as Es,readFileSync as js}from"fs";import Ns from"path";function M8(D={}){return{admissions:Ls(),artifacts:Ps(),decisionPipeline:z3(D),scopeManifest:qs()}}function Ps(){let D=b().select({count:E`count(*)`.mapWith(Number),status:wD.status}).from(wD).groupBy(wD.status).all(),$={},F=0;for(let X of D)$[X.status]=X.count,F+=X.count;return{byStatus:$,total:F}}function Ls(){let D=b().select({count:E`count(*)`.mapWith(Number),status:FD.status}).from(FD).groupBy(FD.status).all(),$={};for(let G of D)$[G.status]=G.count;let X=b().select({updatedAt:FD.updatedAt}).from(FD).orderBy(E`updated_at DESC`).limit(1).all()[0]?.updatedAt,J={bypassRisk:XN(),byStatus:$};if(X!==void 0)J.lastUpdatedAt=X;return J}function qs(){let D=mD();if(D.scope!=="project"||!D.projectRoot)return{status:"not-applicable"};let $=Ns.join(D.projectRoot,".aiworker","scope.json");if(!Es($))return{status:"missing"};let F;try{F=js($,"utf8")}catch(Y){return{error:Y instanceof Error?Y.message:String(Y),status:"malformed"}}let X=q1(F);if(X.status==="malformed")return{error:X.error,status:"malformed"};let J=X.manifest,G={kind:J.kind,primarySoul:J.primarySoul,status:"ok"};if(J.privacy!==void 0)G.privacy=J.privacy;if(J.approval!==void 0)G.approval=J.approval;return G}var NW=R(()=>{$0();MD();gD();V0();HX();jW()});import{Buffer as JN}from"buffer";import{timingSafeEqual as zs}from"crypto";function _1(D,$){let F=JN.from(D,"utf8"),X=JN.from($,"utf8");if(F.length!==X.length)return!1;return zs(F,X)}var WX=()=>{};import{Buffer as GN}from"buffer";import{createDecipheriv as Is,createHash as Ss}from"crypto";function ws(D,$){let F=Ss("sha256").update($,"utf8").digest(),X=GN.from(D,"base64");if(X.length<=16)throw Error("lark: encrypted payload too short");let J=X.subarray(0,16),G=X.subarray(16),Y=Is("aes-256-cbc",F,J);return GN.concat([Y.update(G),Y.final()]).toString("utf8")}function YN(D,$){let F=JSON.parse(D);if(typeof F.encrypt==="string"){if(!$)throw Error("lark: encrypted payload received but encryptKey is missing");return JSON.parse(ws(F.encrypt,$))}return F}function ks(D){return D.type==="url_verification"||D.header?.event_type==="url_verification"}function bs(D){if(typeof D.header?.token==="string")return D.header.token;if(typeof D.token==="string")return D.token;return}async function fs(D,$){let F=await fetch("https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({app_id:D,app_secret:$})});if(!F.ok){let J=await F.text().catch(()=>"");throw Error(`Lark token exchange HTTP ${F.status}: ${J}`)}let X=await F.json();if(typeof X.code==="number"&&X.code!==0)throw Error(`Lark token exchange error ${X.code}: ${X.msg??"unknown"}`);if(!X.tenant_access_token||typeof X.expire!=="number")throw Error("Lark token exchange returned malformed response");return{token:X.tenant_access_token,expiresAt:Date.now()+X.expire*1000}}async function gs(D,$){let F=PW.get(D);if(!F)F={},PW.set(D,F);if(F.current&&F.current.expiresAt-Date.now()>Ts)return F.current.token;if(F.inflight)return(await F.inflight).token;let X=F;return X.inflight=fs(D,$).then((J)=>{return X.current=J,J}).finally(()=>{X.inflight=void 0}),(await X.inflight).token}function hs(D){let $=typeof D.parent_id==="string"&&D.parent_id.length>0?D.parent_id:void 0;if(!$)return;return{quote:$}}function HN(){PW.clear()}var Ts=60000,PW,BN;var LW=R(()=>{WX();PW=new Map;BN={channel:"lark",async verify(D,$,F){if(F.credentials.channel!=="lark")throw Error("lark adapter called with non-lark credentials");let X=YN(D,F.credentials.encryptKey),J=bs(X);if(J===void 0||!_1(J,F.credentials.verificationToken))throw Error("invalid Lark verification token")},async toEnvelopes(D,$,F){if(!F||F.credentials.channel!=="lark")throw Error("lark adapter requires a lark binding for accountId derivation");let X=F.credentials.appId,J=F.credentials.encryptKey,G=YN(D,J);if(ks(G))return[];if(G.header?.event_type!=="im.message.receive_v1")return[];let Y=G.event?.message;if(!Y||Y.message_type!=="text")return[];let B="";try{let M=JSON.parse(Y.content);B=typeof M.text==="string"?M.text:""}catch{return[]}if(!B)return[];let H=G.event?.sender,U=H?.sender_id?.open_id,Q=H?.sender_id?.name,V=Y.chat_type==="group"?`group:${Y.chat_id}`:`p2p:${U??""}`,A=hs(Y);return[{workerId:$,channel:"lark",accountId:X,chatId:V,...U===void 0?{}:{userId:U},...Q===void 0?{}:{userDisplayName:Q},text:B,...A===void 0?{}:{richMetadata:A},receivedAt:new Date(Number(Y.create_time)).toISOString(),raw:G}]},async send(D,$){if(D.credentials.channel!=="lark")throw Error("lark adapter called with non-lark credentials");let{appId:F,appSecret:X}=D.credentials,J=await gs(F,X),[G,Y]=$.chatId.split(":",2);if(!G||!Y)throw Error(`lark send: malformed chatId ${$.chatId}`);if(G!=="group"&&G!=="p2p")throw Error(`lark send: unsupported chat kind "${G}"`);let H=await fetch(`https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=${G==="group"?"chat_id":"open_id"}`,{method:"POST",headers:{Authorization:`Bearer ${J}`,"Content-Type":"application/json"},body:JSON.stringify({receive_id:Y,msg_type:"text",content:JSON.stringify({text:$.text})})}),U=await H.json().catch(()=>({}));if(U.code!==0)throw Error(`Lark send failed: ${U.code??H.status} ${U.msg??H.statusText}`)}}});function S3(){return new Date().toISOString()}import{Buffer as WN}from"buffer";import{createHash as vs,createHmac as xs,timingSafeEqual as ys}from"crypto";function us(D,$){return xs("sha256",D).update($,"utf8").digest("base64")}function ms(D){switch(D.type){case"user":return`user:${D.userId}`;case"group":return`group:${D.groupId}`;case"room":return`room:${D.roomId}`}}function cs(D){let $=D.message?.quotedMessageId;if(typeof $!=="string"||$.length===0)return;return{quote:$}}var UN;var QN=R(()=>{UN={channel:"line",async verify(D,$,F){if(F.credentials.channel!=="line")throw Error("line adapter called with non-line credentials");let X=$["x-line-signature"];if(!X)throw Error("missing X-Line-Signature header");let J=us(F.credentials.channelSecret,D),G=WN.from(X,"base64"),Y=WN.from(J,"base64");if(G.length!==Y.length||!ys(G,Y))throw Error("invalid LINE signature")},async toEnvelopes(D,$,F){if(!F||F.credentials.channel!=="line")throw Error("line adapter requires a line binding for accountId derivation");let X=vs("sha256").update(F.credentials.channelAccessToken,"utf8").digest("hex").slice(0,16),J=JSON.parse(D),G=[];for(let Y of J.events){if(Y.type!=="message"||Y.message?.type!=="text"||!Y.message.text)continue;let B=ms(Y.source),H=Y.source.type==="user"?Y.source.userId:("userId"in Y.source)?Y.source.userId:void 0,U=cs(Y);G.push({workerId:$,channel:"line",accountId:X,chatId:B,...H===void 0?{}:{userId:H},text:Y.message.text,...U===void 0?{}:{richMetadata:U},receivedAt:new Date(Y.timestamp).toISOString()||S3(),raw:Y})}return G},async send(D,$){if(D.credentials.channel!=="line")throw Error("line adapter called with non-line credentials");let F=D.credentials.channelAccessToken,[X,J]=$.chatId.split(":",2);if(!X||!J)throw Error(`line send: malformed chatId ${$.chatId}`);let G=await fetch("https://api.line.me/v2/bot/message/push",{method:"POST",headers:{Authorization:`Bearer ${F}`,"Content-Type":"application/json"},body:JSON.stringify({to:J,messages:[{type:"text",text:$.text}]})});if(!G.ok){let Y=await G.text();throw Error(`LINE push failed: ${G.status} ${Y}`)}}}});import{Buffer as VN}from"buffer";import{createHash as ps,timingSafeEqual as ds}from"crypto";function rs(D,$){let F=VN.from(D,"utf8"),X=VN.from($,"utf8");if(F.length!==X.length)return!1;return ds(F,X)}function ss(D){if(!D)return;if(D.first_name)return D.last_name?`${D.first_name} ${D.last_name}`:D.first_name;return D.username}function as(D,$){if(D.length<=$)return[D];let F=[],X=D;while(X.length>$){let J=-1;for(let G=$-1;G>0;G--)if(ns.test(X[G])){J=G;break}if(J>0)F.push(X.slice(0,J)),X=X.slice(J+1);else F.push(X.slice(0,$)),X=X.slice($)}if(X.length>0)F.push(X);return F}function os(D){if(D.botUsername&&D.botUsername.length>0)return D.botUsername;return ps("sha256").update(D.botToken,"utf8").digest("hex").slice(0,16)}function ts(D){let $={};if(typeof D.edit_date==="number")$.isEdit=!0;let F=D.reply_to_message;if(F){let X=F.from?.id?.toString();if(X!==void 0)$.replyTo={authorId:X,text:typeof F.text==="string"?F.text:""}}return $.isEdit===void 0&&$.replyTo===void 0?void 0:$}var ls=4096,is="x-telegram-bot-api-secret-token",ns,AN;var KN=R(()=>{ns=/\s/;AN={channel:"telegram",async verify(D,$,F){if(F.credentials.channel!=="telegram")throw Error("telegram adapter called with non-telegram credentials");let X=F.credentials.webhookSecretToken;if(!X)return;let J=$[is];if(!J||!rs(J,X))throw Error("invalid X-Telegram-Bot-Api-Secret-Token")},async toEnvelopes(D,$,F){if(!F||F.credentials.channel!=="telegram")throw Error("telegram adapter requires a telegram binding for accountId derivation");let X=JSON.parse(D),J=X.message;if(!J||typeof J.text!=="string")return[];let G=`${J.chat.type}:${J.chat.id}`,Y=J.from?.id?.toString(),B=ss(J.from),H=Number.isFinite(J.date)?new Date(J.date*1000).toISOString():S3(),U=os(F.credentials),Q=ts(J);return[{workerId:$,channel:"telegram",accountId:U,chatId:G,...Y===void 0?{}:{userId:Y},...B===void 0?{}:{userDisplayName:B},text:J.text,...Q===void 0?{}:{richMetadata:Q},receivedAt:H,raw:X}]},async send(D,$){if(D.credentials.channel!=="telegram")throw Error("telegram adapter called with non-telegram credentials");let F=D.credentials.botToken,X=$.chatId.indexOf(":");if(X<=0||X===$.chatId.length-1)throw Error(`telegram send: malformed chatId ${$.chatId}`);let J=$.chatId.slice(X+1),G=Number(J);if(!Number.isFinite(G)||!Number.isInteger(G))throw Error(`telegram send: malformed chatId ${$.chatId}`);let Y=`https://api.telegram.org/bot${F}/sendMessage`,B=as($.text,ls);for(let H of B){let U=await fetch(Y,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({chat_id:G,text:H})});if(!U.ok){let Q=await U.text();throw Error(`Telegram sendMessage failed: ${U.status} ${Q}`)}}}}});function Da(D){if(!D)return;let $={};if(D.isEdit===!0)$.isEdit=!0;if(D.isDelete===!0)$.isDelete=!0;if(D.replyTo&&typeof D.replyTo.authorId==="string"&&typeof D.replyTo.text==="string")$.replyTo={authorId:D.replyTo.authorId,text:D.replyTo.text};if(typeof D.quote==="string"&&D.quote.length>0)$.quote=D.quote;return Object.keys($).length===0?void 0:$}function $a(D){let $=D.authorization;if(!$)return null;let F=/^bearer\s+(\S+)\s*$/i.exec($);return F?F[1]:null}var es="default",_N;var CN=R(()=>{WX();_N={channel:"web",async verify(D,$,F){if(F.credentials.channel!=="web")throw Error("web adapter called with non-web credentials");let X=F.credentials.inboundToken;if(!X||X.length===0)throw Error("web channel binding has no inboundToken \u2014 refusing inbound traffic");let J=$a($);if(!J||!_1(J,X))throw Error("invalid Authorization bearer token")},async toEnvelopes(D,$,F){let X=F?.id&&F.id.length>0?F.id:es,J=JSON.parse(D),G=Da(J.metadata);return[{workerId:$,channel:"web",accountId:X,chatId:J.chatId,...J.threadId===void 0?{}:{threadId:J.threadId},...J.userId===void 0?{}:{userId:J.userId},...J.userDisplayName===void 0?{}:{userDisplayName:J.userDisplayName},text:J.text,...G===void 0?{}:{richMetadata:G},receivedAt:S3(),raw:J}]},async send(){}}});import{Buffer as MN}from"buffer";import{createHmac as Fa,timingSafeEqual as Xa}from"crypto";function Ga(D){switch(D.type){case"text":return D.text?.body;case"image":return D.image?.caption;case"audio":return D.audio?.caption;case"video":return D.video?.caption;case"document":return D.document?.caption;default:return}}function Ya(D){let $=D.context;if(!$||typeof $.from!=="string"||$.from.length===0)return;let F={replyTo:{authorId:$.from,text:""}};if(typeof $.id==="string"&&$.id.length>0)F.quote=$.id;return F}var Ja="v21.0",ZN;var RN=R(()=>{ZN={channel:"whatsapp",async verify(D,$,F){if(F.credentials.channel!=="whatsapp")throw Error("whatsapp adapter called with non-whatsapp credentials");let X=$["x-hub-signature-256"];if(!X)throw Error("missing X-Hub-Signature-256 header");let[J,G]=X.split("=",2);if(J!=="sha256"||!G)throw Error("invalid X-Hub-Signature-256 format");let Y=Fa("sha256",F.credentials.appSecret).update(D,"utf8").digest("hex"),B=MN.from(G,"hex"),H=MN.from(Y,"hex");if(B.length!==H.length||!Xa(B,H))throw Error("invalid WhatsApp signature")},async toEnvelopes(D,$,F){if(!F||F.credentials.channel!=="whatsapp")throw Error("whatsapp adapter requires a whatsapp binding for accountId derivation");let X=F.credentials.phoneNumberId,J=JSON.parse(D),G=[];for(let Y of J.entry??[])for(let B of Y.changes??[]){let H=B.value;if(!H||!H.messages||H.messages.length===0)continue;let U=H.contacts??[];for(let Q of H.messages){let V=Ga(Q);if(V===void 0)continue;let A=Q.from,M=U.find((Z)=>Z.wa_id===A)?.profile?.name,C=Ya(Q);G.push({workerId:$,channel:"whatsapp",accountId:X,chatId:A,userId:A,...M?{userDisplayName:M}:{},text:V,...C===void 0?{}:{richMetadata:C},receivedAt:new Date(Number(Q.timestamp)*1000).toISOString(),raw:Q})}}return G},async send(D,$){if(D.credentials.channel!=="whatsapp")throw Error("whatsapp adapter called with non-whatsapp credentials");let{phoneNumberId:F,accessToken:X}=D.credentials,J=`https://graph.facebook.com/${Ja}/${F}/messages`,G=await fetch(J,{method:"POST",headers:{Authorization:`Bearer ${X}`,"Content-Type":"application/json"},body:JSON.stringify({messaging_product:"whatsapp",recipient_type:"individual",to:$.chatId,type:"text",text:{preview_url:!1,body:$.text}})});if(!G.ok){let Y=await G.text();throw Error(`WhatsApp send failed: ${G.status} ${Y}`)}}}});function B6(D){return Ba[D]}class G4{byChannel;constructor(D){this.byChannel=new Map;for(let $ of D)if($.enabled)this.byChannel.set($.channel,$)}list(){return Array.from(this.byChannel.values())}get(D){return this.byChannel.get(D)??null}adapter(D){return B6(D)}}var Ba;var Y4=R(()=>{LW();QN();KN();CN();RN();Ba={web:_N,line:UN,telegram:AN,lark:BN,whatsapp:ZN}});function g1(D){let $=[];D.brains.forEach((X,J)=>{if(X.type==="cloud-gateway")$.push({path:`brains.${J}.config.token`,value:X.config.token})}),qW(D.executor,"executor",$);let F=D.orchestrator?.decisionPipeline?.executor;if(F)qW(F,"orchestrator.decisionPipeline.executor",$);return D.channels.forEach((X)=>{let J=X.credentials;switch(J.channel){case"line":$.push({path:"channels.line.credentials.channelSecret",value:J.channelSecret},{path:"channels.line.credentials.channelAccessToken",value:J.channelAccessToken});break;case"telegram":if($.push({path:"channels.telegram.credentials.botToken",value:J.botToken}),J.webhookSecretToken)$.push({path:"channels.telegram.credentials.webhookSecretToken",value:J.webhookSecretToken});break;case"lark":$.push({path:"channels.lark.credentials.appSecret",value:J.appSecret},{path:"channels.lark.credentials.encryptKey",value:J.encryptKey},{path:"channels.lark.credentials.verificationToken",value:J.verificationToken});break;case"whatsapp":$.push({path:"channels.whatsapp.credentials.accessToken",value:J.accessToken},{path:"channels.whatsapp.credentials.appSecret",value:J.appSecret},{path:"channels.whatsapp.credentials.verifyToken",value:J.verifyToken});break;case"web":if(J.inboundToken&&J.inboundToken.length>0)$.push({path:"channels.web.credentials.inboundToken",value:J.inboundToken});break}}),$}function UX(D){let $=structuredClone(D);return $.brains=$.brains.map((F)=>{if(F.type==="cloud-gateway")return{...F,config:{...F.config,token:""}};return F}),Ha($),$.channels=$.channels.map((F)=>{let X=F.credentials;switch(X.channel){case"line":return{...F,credentials:{...X,channelSecret:"",channelAccessToken:""}};case"telegram":return{...F,credentials:{...X,botToken:"",webhookSecretToken:X.webhookSecretToken===void 0?void 0:""}};case"lark":return{...F,credentials:{...X,appSecret:"",encryptKey:"",verificationToken:""}};case"whatsapp":return{...F,credentials:{...X,accessToken:"",appSecret:"",verifyToken:""}};case"web":return{...F,credentials:{...X,inboundToken:X.inboundToken===void 0?void 0:""}};default:return F}}),$}function T3(D,$){let F=structuredClone(D);return F.brains=F.brains.map((X,J)=>{if(X.type==="cloud-gateway")return{...X,config:{...X.config,token:$.get(`brains.${J}.config.token`)??""}};return X}),Wa(F,$),F.channels=F.channels.map((X)=>{let J=X.credentials;switch(J.channel){case"line":return{...X,credentials:{...J,channelSecret:$.get("channels.line.credentials.channelSecret")??"",channelAccessToken:$.get("channels.line.credentials.channelAccessToken")??""}};case"telegram":{let G=$.get("channels.telegram.credentials.webhookSecretToken");return{...X,credentials:{...J,botToken:$.get("channels.telegram.credentials.botToken")??"",webhookSecretToken:G??J.webhookSecretToken}}}case"lark":return{...X,credentials:{...J,appSecret:$.get("channels.lark.credentials.appSecret")??"",encryptKey:$.get("channels.lark.credentials.encryptKey")??"",verificationToken:$.get("channels.lark.credentials.verificationToken")??""}};case"whatsapp":return{...X,credentials:{...J,accessToken:$.get("channels.whatsapp.credentials.accessToken")??"",appSecret:$.get("channels.whatsapp.credentials.appSecret")??"",verifyToken:$.get("channels.whatsapp.credentials.verifyToken")??""}};case"web":{let G=$.get("channels.web.credentials.inboundToken");return{...X,credentials:{...J,inboundToken:G??J.inboundToken}}}default:return X}}),F}function qW(D,$,F){let X=D.overrides??{};if(D.engine==="http"&&typeof X.apiKey==="string")F.push({path:`${$}.overrides.apiKey`,value:X.apiKey});else if(D.engine==="mcp"&&typeof X.token==="string")F.push({path:`${$}.overrides.token`,value:X.token});D.fallbacks?.forEach((J,G)=>{qW(J.executor,`${$}.fallbacks.${G}.executor`,F)})}function Ha(D){D.executor=zW(D.executor);let $=D.orchestrator?.decisionPipeline,F=$?.executor;if(F)D.orchestrator={...D.orchestrator,decisionPipeline:{...$,executor:zW(F)}}}function zW(D){let $={...D.overrides??{}};if(D.engine==="http"&&typeof $.apiKey==="string")$.apiKey="";if(D.engine==="mcp"&&typeof $.token==="string")$.token="";return{...D,overrides:$,...D.fallbacks===void 0?{}:{fallbacks:D.fallbacks.map((F)=>({...F,executor:zW(F.executor)}))}}}function Wa(D,$){D.executor=IW(D.executor,$,"executor");let F=D.orchestrator?.decisionPipeline,X=F?.executor;if(X)D.orchestrator={...D.orchestrator,decisionPipeline:{...F,executor:IW(X,$,"orchestrator.decisionPipeline.executor")}}}function IW(D,$,F){let X={...D.overrides??{}};if(D.engine==="http"){let J=$.get(`${F}.overrides.apiKey`);if(J!==void 0)X.apiKey=J}else if(D.engine==="mcp"){let J=$.get(`${F}.overrides.token`);if(J!==void 0)X.token=J}return{...D,overrides:X,...D.fallbacks===void 0?{}:{fallbacks:D.fallbacks.map((J,G)=>({...J,executor:IW(J.executor,$,`${F}.fallbacks.${G}.executor`)}))}}}var EN=u((ON)=>{Object.defineProperty(ON,"__esModule",{value:!0})});var Z8=u((jN)=>{Object.defineProperty(jN,"__esModule",{value:!0});jN.CronField=void 0;class SW{#D=!1;#$=!1;#X=!1;#G=[];options={rawValue:""};static get min(){throw Error("min must be overridden")}static get max(){throw Error("max must be overridden")}static get chars(){return Object.freeze([])}static get validChars(){return/^[?,*\dH/-]+$|^.*H\(\d+-\d+\)\/\d+.*$|^.*H\(\d+-\d+\).*$|^.*H\/\d+.*$/}static get constraints(){return{min:this.min,max:this.max,chars:this.chars,validChars:this.validChars}}constructor(D,$={rawValue:""}){if(!Array.isArray(D))throw Error(`${this.constructor.name} Validation error, values is not an array`);if(!(D.length>0))throw Error(`${this.constructor.name} Validation error, values contains no values`);this.options={...$,rawValue:$.rawValue??""},this.#G=D.sort(SW.sorter),this.#X=this.options.wildcard!==void 0?this.options.wildcard:this.#J(),this.#D=this.options.rawValue.includes("L")||D.includes("L"),this.#$=this.options.rawValue.includes("?")||D.includes("?")}get min(){return this.constructor.min}get max(){return this.constructor.max}get chars(){return this.constructor.chars}get hasLastChar(){return this.#D}get hasQuestionMarkChar(){return this.#$}get isWildcard(){return this.#X}get values(){return this.#G}static sorter(D,$){let F=typeof D==="number",X=typeof $==="number";if(F&&X)return D-$;if(!F&&!X)return D.localeCompare($);return F?-1:1}static findNearestValueInList(D,$,F=!1){if(F){for(let X=D.length-1;X>=0;X--)if(D[X]<$)return D[X];return null}for(let X=0;X<D.length;X++)if(D[X]>$)return D[X];return null}findNearestValue(D,$=!1){return this.constructor.findNearestValueInList(this.values,D,$)}serialize(){return{wildcard:this.#X,values:this.#G}}validate(){let D,$=this.chars.length>0?` or chars ${this.chars.join("")}`:"",F=(Y)=>(B)=>new RegExp(`^\\d{0,2}${B}$`).test(Y),X=(Y)=>{return D=Y,typeof Y==="number"?Y>=this.min&&Y<=this.max:this.chars.some(F(Y))};if(!this.#G.every(X))throw Error(`${this.constructor.name} Validation error, got value ${D} expected range ${this.min}-${this.max}${$}`);let G=this.#G.find((Y,B)=>this.#G.indexOf(Y)!==B);if(G)throw Error(`${this.constructor.name} Validation error, duplicate values found: ${G}`)}#J(){if(this.options.rawValue.length>0)return["*","?"].includes(this.options.rawValue);return Array.from({length:this.max-this.min+1},(D,$)=>$+this.min).every((D)=>this.#G.includes(D))}}jN.CronField=SW});var zN=u((LN)=>{Object.defineProperty(LN,"__esModule",{value:!0});LN.CronDayOfMonth=void 0;var Ua=Z8(),Qa=1,Va=31,Aa=Object.freeze(["L"]);class PN extends Ua.CronField{static get min(){return Qa}static get max(){return Va}static get chars(){return Aa}static get validChars(){return/^[?,*\dLH/-]+$|^.*H\(\d+-\d+\)\/\d+.*$|^.*H\(\d+-\d+\).*$|^.*H\/\d+.*$/}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}LN.CronDayOfMonth=PN});var wN=u((SN)=>{Object.defineProperty(SN,"__esModule",{value:!0});SN.CronDayOfWeek=void 0;var Ka=Z8(),_a=0,Ca=7,Ma=Object.freeze(["L"]);class IN extends Ka.CronField{static get min(){return _a}static get max(){return Ca}static get chars(){return Ma}static get validChars(){return/^[?,*\dLH#/-]+$|^.*H\(\d+-\d+\)\/\d+.*$|^.*H\(\d+-\d+\).*$|^.*H\/\d+.*$/}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}get nthDay(){return this.options.nthDayOfWeek??0}}SN.CronDayOfWeek=IN});var gN=u((bN)=>{Object.defineProperty(bN,"__esModule",{value:!0});bN.CronHour=void 0;var Za=Z8(),Ra=0,Oa=23,Ea=Object.freeze([]);class kN extends Za.CronField{static get min(){return Ra}static get max(){return Oa}static get chars(){return Ea}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}bN.CronHour=kN});var yN=u((vN)=>{Object.defineProperty(vN,"__esModule",{value:!0});vN.CronMinute=void 0;var ja=Z8(),Na=0,Pa=59,La=Object.freeze([]);class hN extends ja.CronField{static get min(){return Na}static get max(){return Pa}static get chars(){return La}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}vN.CronMinute=hN});var jL=u((EL)=>{Object.defineProperty(EL,"__esModule",{value:!0});class j8 extends Error{}class CP extends j8{constructor(D){super(`Invalid DateTime: ${D.toMessage()}`)}}class MP extends j8{constructor(D){super(`Invalid Interval: ${D.toMessage()}`)}}class ZP extends j8{constructor(D){super(`Invalid Duration: ${D.toMessage()}`)}}class U6 extends j8{}class aW extends j8{constructor(D){super(`Invalid unit ${D}`)}}class T0 extends j8{}class v1 extends j8{constructor(){super("Zone is an abstract class")}}var l="numeric",D1="short",W2="long",ZX={year:l,month:l,day:l},RP={year:l,month:D1,day:l},qa={year:l,month:D1,day:l,weekday:D1},OP={year:l,month:W2,day:l},EP={year:l,month:W2,day:l,weekday:W2},jP={hour:l,minute:l},NP={hour:l,minute:l,second:l},PP={hour:l,minute:l,second:l,timeZoneName:D1},LP={hour:l,minute:l,second:l,timeZoneName:W2},qP={hour:l,minute:l,hourCycle:"h23"},zP={hour:l,minute:l,second:l,hourCycle:"h23"},IP={hour:l,minute:l,second:l,hourCycle:"h23",timeZoneName:D1},SP={hour:l,minute:l,second:l,hourCycle:"h23",timeZoneName:W2},TP={year:l,month:l,day:l,hour:l,minute:l},wP={year:l,month:l,day:l,hour:l,minute:l,second:l},kP={year:l,month:D1,day:l,hour:l,minute:l},bP={year:l,month:D1,day:l,hour:l,minute:l,second:l},za={year:l,month:D1,day:l,weekday:D1,hour:l,minute:l},fP={year:l,month:W2,day:l,hour:l,minute:l,timeZoneName:D1},gP={year:l,month:W2,day:l,hour:l,minute:l,second:l,timeZoneName:D1},hP={year:l,month:W2,day:l,weekday:W2,hour:l,minute:l,timeZoneName:W2},vP={year:l,month:W2,day:l,weekday:W2,hour:l,minute:l,second:l,timeZoneName:W2};class V6{get type(){throw new v1}get name(){throw new v1}get ianaName(){return this.name}get isUniversal(){throw new v1}offsetName(D,$){throw new v1}formatOffset(D,$){throw new v1}offset(D){throw new v1}equals(D){throw new v1}get isValid(){throw new v1}}var TW=null;class A4 extends V6{static get instance(){if(TW===null)TW=new A4;return TW}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(D,{format:$,locale:F}){return oP(D,$,F)}formatOffset(D,$){return Q4(this.offset(D),$)}offset(D){return-new Date(D).getTimezoneOffset()}equals(D){return D.type==="system"}get isValid(){return!0}}var yW=new Map;function Ia(D){let $=yW.get(D);if($===void 0)$=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:D,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),yW.set(D,$);return $}var Sa={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Ta(D,$){let F=D.format($).replace(/\u200E/g,""),X=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(F),[,J,G,Y,B,H,U,Q]=X;return[Y,J,G,B,H,U,Q]}function wa(D,$){let F=D.formatToParts($),X=[];for(let J=0;J<F.length;J++){let{type:G,value:Y}=F[J],B=Sa[G];if(G==="era")X[B]=Y;else if(!GD(B))X[B]=parseInt(Y,10)}return X}var wW=new Map;class C1 extends V6{static create(D){let $=wW.get(D);if($===void 0)wW.set(D,$=new C1(D));return $}static resetCache(){wW.clear(),yW.clear()}static isValidSpecifier(D){return this.isValidZone(D)}static isValidZone(D){if(!D)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:D}).format(),!0}catch($){return!1}}constructor(D){super();this.zoneName=D,this.valid=C1.isValidZone(D)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(D,{format:$,locale:F}){return oP(D,$,F,this.name)}formatOffset(D,$){return Q4(this.offset(D),$)}offset(D){if(!this.valid)return NaN;let $=new Date(D);if(isNaN($))return NaN;let F=Ia(this.name),[X,J,G,Y,B,H,U]=F.formatToParts?wa(F,$):Ta(F,$);if(Y==="BC")X=-Math.abs(X)+1;let V=NX({year:X,month:J,day:G,hour:B===24?0:B,minute:H,second:U,millisecond:0}),A=+$,K=A%1000;return A-=K>=0?K:1000+K,(V-A)/60000}equals(D){return D.type==="iana"&&D.name===this.name}get isValid(){return this.valid}}var uN={};function ka(D,$={}){let F=JSON.stringify([D,$]),X=uN[F];if(!X)X=new Intl.ListFormat(D,$),uN[F]=X;return X}var uW=new Map;function mW(D,$={}){let F=JSON.stringify([D,$]),X=uW.get(F);if(X===void 0)X=new Intl.DateTimeFormat(D,$),uW.set(F,X);return X}var cW=new Map;function ba(D,$={}){let F=JSON.stringify([D,$]),X=cW.get(F);if(X===void 0)X=new Intl.NumberFormat(D,$),cW.set(F,X);return X}var pW=new Map;function fa(D,$={}){let{base:F,...X}=$,J=JSON.stringify([D,X]),G=pW.get(J);if(G===void 0)G=new Intl.RelativeTimeFormat(D,$),pW.set(J,G);return G}var H4=null;function ga(){if(H4)return H4;else return H4=new Intl.DateTimeFormat().resolvedOptions().locale,H4}var dW=new Map;function xP(D){let $=dW.get(D);if($===void 0)$=new Intl.DateTimeFormat(D).resolvedOptions(),dW.set(D,$);return $}var lW=new Map;function ha(D){let $=lW.get(D);if(!$){let F=new Intl.Locale(D);if($="getWeekInfo"in F?F.getWeekInfo():F.weekInfo,!("minimalDays"in $))$={...cP,...$};lW.set(D,$)}return $}function va(D){let $=D.indexOf("-x-");if($!==-1)D=D.substring(0,$);let F=D.indexOf("-u-");if(F===-1)return[D];else{let X,J;try{X=mW(D).resolvedOptions(),J=D}catch(B){let H=D.substring(0,F);X=mW(H).resolvedOptions(),J=H}let{numberingSystem:G,calendar:Y}=X;return[J,G,Y]}}function xa(D,$,F){if(F||$){if(!D.includes("-u-"))D+="-u";if(F)D+=`-ca-${F}`;if($)D+=`-nu-${$}`;return D}else return D}function ya(D){let $=[];for(let F=1;F<=12;F++){let X=BD.utc(2009,F,1);$.push(D(X))}return $}function ua(D){let $=[];for(let F=1;F<=7;F++){let X=BD.utc(2016,11,13+F);$.push(D(X))}return $}function QX(D,$,F,X){let J=D.listingMode();if(J==="error")return null;else if(J==="en")return F($);else return X($)}function ma(D){if(D.numberingSystem&&D.numberingSystem!=="latn")return!1;else return D.numberingSystem==="latn"||!D.locale||D.locale.startsWith("en")||xP(D.locale).numberingSystem==="latn"}class yP{constructor(D,$,F){this.padTo=F.padTo||0,this.floor=F.floor||!1;let{padTo:X,floor:J,...G}=F;if(!$||Object.keys(G).length>0){let Y={useGrouping:!1,...F};if(F.padTo>0)Y.minimumIntegerDigits=F.padTo;this.inf=ba(D,Y)}}format(D){if(this.inf){let $=this.floor?Math.floor(D):D;return this.inf.format($)}else{let $=this.floor?Math.floor(D):FU(D,3);return A0($,this.padTo)}}}class uP{constructor(D,$,F){this.opts=F,this.originalZone=void 0;let X=void 0;if(this.opts.timeZone)this.dt=D;else if(D.zone.type==="fixed"){let G=-1*(D.offset/60),Y=G>=0?`Etc/GMT+${G}`:`Etc/GMT${G}`;if(D.offset!==0&&C1.create(Y).valid)X=Y,this.dt=D;else X="UTC",this.dt=D.offset===0?D:D.setZone("UTC").plus({minutes:D.offset}),this.originalZone=D.zone}else if(D.zone.type==="system")this.dt=D;else if(D.zone.type==="iana")this.dt=D,X=D.zone.name;else X="UTC",this.dt=D.setZone("UTC").plus({minutes:D.offset}),this.originalZone=D.zone;let J={...this.opts};J.timeZone=J.timeZone||X,this.dtf=mW($,J)}format(){if(this.originalZone)return this.formatToParts().map(({value:D})=>D).join("");return this.dtf.format(this.dt.toJSDate())}formatToParts(){let D=this.dtf.formatToParts(this.dt.toJSDate());if(this.originalZone)return D.map(($)=>{if($.type==="timeZoneName"){let F=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...$,value:F}}else return $});return D}resolvedOptions(){return this.dtf.resolvedOptions()}}class mP{constructor(D,$,F){if(this.opts={style:"long",...F},!$&&sP())this.rtf=fa(D,F)}format(D,$){if(this.rtf)return this.rtf.format(D,$);else return Ho($,D,this.opts.numeric,this.opts.style!=="long")}formatToParts(D,$){if(this.rtf)return this.rtf.formatToParts(D,$);else return[]}}var cP={firstDay:1,minimalDays:4,weekend:[6,7]};class zD{static fromOpts(D){return zD.create(D.locale,D.numberingSystem,D.outputCalendar,D.weekSettings,D.defaultToEN)}static create(D,$,F,X,J=!1){let G=D||sD.defaultLocale,Y=G||(J?"en-US":ga()),B=$||sD.defaultNumberingSystem,H=F||sD.defaultOutputCalendar,U=nW(X)||sD.defaultWeekSettings;return new zD(Y,B,H,U,G)}static resetCache(){H4=null,uW.clear(),cW.clear(),pW.clear(),dW.clear(),lW.clear()}static fromObject({locale:D,numberingSystem:$,outputCalendar:F,weekSettings:X}={}){return zD.create(D,$,F,X)}constructor(D,$,F,X,J){let[G,Y,B]=va(D);this.locale=G,this.numberingSystem=$||Y||null,this.outputCalendar=F||B||null,this.weekSettings=X,this.intl=xa(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=J,this.fastNumbersCached=null}get fastNumbers(){if(this.fastNumbersCached==null)this.fastNumbersCached=ma(this);return this.fastNumbersCached}listingMode(){let D=this.isEnglish(),$=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return D&&$?"en":"intl"}clone(D){if(!D||Object.getOwnPropertyNames(D).length===0)return this;else return zD.create(D.locale||this.specifiedLocale,D.numberingSystem||this.numberingSystem,D.outputCalendar||this.outputCalendar,nW(D.weekSettings)||this.weekSettings,D.defaultToEN||!1)}redefaultToEN(D={}){return this.clone({...D,defaultToEN:!0})}redefaultToSystem(D={}){return this.clone({...D,defaultToEN:!1})}months(D,$=!1){return QX(this,D,DL,()=>{let F=this.intl==="ja"||this.intl.startsWith("ja-");$&=!F;let X=$?{month:D,day:"numeric"}:{month:D},J=$?"format":"standalone";if(!this.monthsCache[J][D]){let G=!F?(Y)=>this.extract(Y,X,"month"):(Y)=>this.dtFormatter(Y,X).format();this.monthsCache[J][D]=ya(G)}return this.monthsCache[J][D]})}weekdays(D,$=!1){return QX(this,D,XL,()=>{let F=$?{weekday:D,year:"numeric",month:"long",day:"numeric"}:{weekday:D},X=$?"format":"standalone";if(!this.weekdaysCache[X][D])this.weekdaysCache[X][D]=ua((J)=>this.extract(J,F,"weekday"));return this.weekdaysCache[X][D]})}meridiems(){return QX(this,void 0,()=>JL,()=>{if(!this.meridiemCache){let D={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[BD.utc(2016,11,13,9),BD.utc(2016,11,13,19)].map(($)=>this.extract($,D,"dayperiod"))}return this.meridiemCache})}eras(D){return QX(this,D,GL,()=>{let $={era:D};if(!this.eraCache[D])this.eraCache[D]=[BD.utc(-40,1,1),BD.utc(2017,1,1)].map((F)=>this.extract(F,$,"era"));return this.eraCache[D]})}extract(D,$,F){let X=this.dtFormatter(D,$),J=X.formatToParts(),G=J.find((Y)=>Y.type.toLowerCase()===F);return G?G.value:null}numberFormatter(D={}){return new yP(this.intl,D.forceSimple||this.fastNumbers,D)}dtFormatter(D,$={}){return new uP(D,this.intl,$)}relFormatter(D={}){return new mP(this.intl,this.isEnglish(),D)}listFormatter(D={}){return ka(this.intl,D)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||xP(this.intl).locale.startsWith("en-us")}getWeekSettings(){if(this.weekSettings)return this.weekSettings;else if(!aP())return cP;else return ha(this.locale)}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(D){return this.locale===D.locale&&this.numberingSystem===D.numberingSystem&&this.outputCalendar===D.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}}var kW=null;class h0 extends V6{static get utcInstance(){if(kW===null)kW=new h0(0);return kW}static instance(D){return D===0?h0.utcInstance:new h0(D)}static parseSpecifier(D){if(D){let $=D.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if($)return new h0(PX($[1],$[2]))}return null}constructor(D){super();this.fixed=D}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Q4(this.fixed,"narrow")}`}get ianaName(){if(this.fixed===0)return"Etc/UTC";else return`Etc/GMT${Q4(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(D,$){return Q4(this.fixed,$)}get isUniversal(){return!0}offset(){return this.fixed}equals(D){return D.type==="fixed"&&D.fixed===this.fixed}get isValid(){return!0}}class oW extends V6{constructor(D){super();this.zoneName=D}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}}function O8(D,$){if(GD(D)||D===null)return $;else if(D instanceof V6)return D;else if(na(D)){let F=D.toLowerCase();if(F==="default")return $;else if(F==="local"||F==="system")return A4.instance;else if(F==="utc"||F==="gmt")return h0.utcInstance;else return h0.parseSpecifier(F)||C1.create(D)}else if(E8(D))return h0.instance(D);else if(typeof D==="object"&&"offset"in D&&typeof D.offset==="function")return D;else return new oW(D)}var tW={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},mN={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},ca=tW.hanidec.replace(/[\[|\]]/g,"").split("");function pa(D){let $=parseInt(D,10);if(isNaN($)){$="";for(let F=0;F<D.length;F++){let X=D.charCodeAt(F);if(D[F].search(tW.hanidec)!==-1)$+=ca.indexOf(D[F]);else for(let J in mN){let[G,Y]=mN[J];if(X>=G&&X<=Y)$+=X-G}}return parseInt($,10)}else return $}var iW=new Map;function da(){iW.clear()}function t2({numberingSystem:D},$=""){let F=D||"latn",X=iW.get(F);if(X===void 0)X=new Map,iW.set(F,X);let J=X.get($);if(J===void 0)J=new RegExp(`${tW[F]}${$}`),X.set($,J);return J}var cN=()=>Date.now(),pN="system",dN=null,lN=null,iN=null,nN=60,rN,sN=null;class sD{static get now(){return cN}static set now(D){cN=D}static set defaultZone(D){pN=D}static get defaultZone(){return O8(pN,A4.instance)}static get defaultLocale(){return dN}static set defaultLocale(D){dN=D}static get defaultNumberingSystem(){return lN}static set defaultNumberingSystem(D){lN=D}static get defaultOutputCalendar(){return iN}static set defaultOutputCalendar(D){iN=D}static get defaultWeekSettings(){return sN}static set defaultWeekSettings(D){sN=nW(D)}static get twoDigitCutoffYear(){return nN}static set twoDigitCutoffYear(D){nN=D%100}static get throwOnInvalid(){return rN}static set throwOnInvalid(D){rN=D}static resetCaches(){zD.resetCache(),C1.resetCache(),BD.resetCache(),da()}}class N2{constructor(D,$){this.reason=D,this.explanation=$}toMessage(){if(this.explanation)return`${this.reason}: ${this.explanation}`;else return this.reason}}var pP=[0,31,59,90,120,151,181,212,243,273,304,334],dP=[0,31,60,91,121,152,182,213,244,274,305,335];function P2(D,$){return new N2("unit out of range",`you specified ${$} (of type ${typeof $}) as a ${D}, which is invalid`)}function eW(D,$,F){let X=new Date(Date.UTC(D,$-1,F));if(D<100&&D>=0)X.setUTCFullYear(X.getUTCFullYear()-1900);let J=X.getUTCDay();return J===0?7:J}function lP(D,$,F){return F+(K4(D)?dP:pP)[$-1]}function iP(D,$){let F=K4(D)?dP:pP,X=F.findIndex((G)=>G<$),J=$-F[X];return{month:X+1,day:J}}function DU(D,$){return(D-$+7)%7+1}function RX(D,$=4,F=1){let{year:X,month:J,day:G}=D,Y=lP(X,J,G),B=DU(eW(X,J,G),F),H=Math.floor((Y-B+14-$)/7),U;if(H<1)U=X-1,H=V4(U,$,F);else if(H>V4(X,$,F))U=X+1,H=1;else U=X;return{weekYear:U,weekNumber:H,weekday:B,...LX(D)}}function aN(D,$=4,F=1){let{weekYear:X,weekNumber:J,weekday:G}=D,Y=DU(eW(X,1,$),F),B=g3(X),H=J*7+G-Y-7+$,U;if(H<1)U=X-1,H+=g3(U);else if(H>B)U=X+1,H-=g3(X);else U=X;let{month:Q,day:V}=iP(U,H);return{year:U,month:Q,day:V,...LX(D)}}function bW(D){let{year:$,month:F,day:X}=D,J=lP($,F,X);return{year:$,ordinal:J,...LX(D)}}function oN(D){let{year:$,ordinal:F}=D,{month:X,day:J}=iP($,F);return{year:$,month:X,day:J,...LX(D)}}function tN(D,$){if(!GD(D.localWeekday)||!GD(D.localWeekNumber)||!GD(D.localWeekYear)){if(!GD(D.weekday)||!GD(D.weekNumber)||!GD(D.weekYear))throw new U6("Cannot mix locale-based week fields with ISO-based week fields");if(!GD(D.localWeekday))D.weekday=D.localWeekday;if(!GD(D.localWeekNumber))D.weekNumber=D.localWeekNumber;if(!GD(D.localWeekYear))D.weekYear=D.localWeekYear;return delete D.localWeekday,delete D.localWeekNumber,delete D.localWeekYear,{minDaysInFirstWeek:$.getMinDaysInFirstWeek(),startOfWeek:$.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function la(D,$=4,F=1){let X=jX(D.weekYear),J=L2(D.weekNumber,1,V4(D.weekYear,$,F)),G=L2(D.weekday,1,7);if(!X)return P2("weekYear",D.weekYear);else if(!J)return P2("week",D.weekNumber);else if(!G)return P2("weekday",D.weekday);else return!1}function ia(D){let $=jX(D.year),F=L2(D.ordinal,1,g3(D.year));if(!$)return P2("year",D.year);else if(!F)return P2("ordinal",D.ordinal);else return!1}function nP(D){let $=jX(D.year),F=L2(D.month,1,12),X=L2(D.day,1,OX(D.year,D.month));if(!$)return P2("year",D.year);else if(!F)return P2("month",D.month);else if(!X)return P2("day",D.day);else return!1}function rP(D){let{hour:$,minute:F,second:X,millisecond:J}=D,G=L2($,0,23)||$===24&&F===0&&X===0&&J===0,Y=L2(F,0,59),B=L2(X,0,59),H=L2(J,0,999);if(!G)return P2("hour",$);else if(!Y)return P2("minute",F);else if(!B)return P2("second",X);else if(!H)return P2("millisecond",J);else return!1}function GD(D){return typeof D>"u"}function E8(D){return typeof D==="number"}function jX(D){return typeof D==="number"&&D%1===0}function na(D){return typeof D==="string"}function ra(D){return Object.prototype.toString.call(D)==="[object Date]"}function sP(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch(D){return!1}}function aP(){try{return typeof Intl<"u"&&!!Intl.Locale&&(("weekInfo"in Intl.Locale.prototype)||("getWeekInfo"in Intl.Locale.prototype))}catch(D){return!1}}function sa(D){return Array.isArray(D)?D:[D]}function eN(D,$,F){if(D.length===0)return;return D.reduce((X,J)=>{let G=[$(J),J];if(!X)return G;else if(F(X[0],G[0])===X[0])return X;else return G},null)[1]}function aa(D,$){return $.reduce((F,X)=>{return F[X]=D[X],F},{})}function v3(D,$){return Object.prototype.hasOwnProperty.call(D,$)}function nW(D){if(D==null)return null;else if(typeof D!=="object")throw new T0("Week settings must be an object");else{if(!L2(D.firstDay,1,7)||!L2(D.minimalDays,1,7)||!Array.isArray(D.weekend)||D.weekend.some(($)=>!L2($,1,7)))throw new T0("Invalid week settings");return{firstDay:D.firstDay,minimalDays:D.minimalDays,weekend:Array.from(D.weekend)}}}function L2(D,$,F){return jX(D)&&D>=$&&D<=F}function oa(D,$){return D-$*Math.floor(D/$)}function A0(D,$=2){let F=D<0,X;if(F)X="-"+(""+-D).padStart($,"0");else X=(""+D).padStart($,"0");return X}function R8(D){if(GD(D)||D===null||D==="")return;else return parseInt(D,10)}function H6(D){if(GD(D)||D===null||D==="")return;else return parseFloat(D)}function $U(D){if(GD(D)||D===null||D==="")return;else{let $=parseFloat("0."+D)*1000;return Math.floor($)}}function FU(D,$,F="round"){let X=10**$;switch(F){case"expand":return D>0?Math.ceil(D*X)/X:Math.floor(D*X)/X;case"trunc":return Math.trunc(D*X)/X;case"round":return Math.round(D*X)/X;case"floor":return Math.floor(D*X)/X;case"ceil":return Math.ceil(D*X)/X;default:throw RangeError(`Value rounding ${F} is out of range`)}}function K4(D){return D%4===0&&(D%100!==0||D%400===0)}function g3(D){return K4(D)?366:365}function OX(D,$){let F=oa($-1,12)+1,X=D+($-F)/12;if(F===2)return K4(X)?29:28;else return[31,null,31,30,31,30,31,31,30,31,30,31][F-1]}function NX(D){let $=Date.UTC(D.year,D.month-1,D.day,D.hour,D.minute,D.second,D.millisecond);if(D.year<100&&D.year>=0)$=new Date($),$.setUTCFullYear(D.year,D.month-1,D.day);return+$}function DP(D,$,F){return-DU(eW(D,1,$),F)+$-1}function V4(D,$=4,F=1){let X=DP(D,$,F),J=DP(D+1,$,F);return(g3(D)-X+J)/7}function rW(D){if(D>99)return D;else return D>sD.twoDigitCutoffYear?1900+D:2000+D}function oP(D,$,F,X=null){let J=new Date(D),G={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};if(X)G.timeZone=X;let Y={timeZoneName:$,...G},B=new Intl.DateTimeFormat(F,Y).formatToParts(J).find((H)=>H.type.toLowerCase()==="timezonename");return B?B.value:null}function PX(D,$){let F=parseInt(D,10);if(Number.isNaN(F))F=0;let X=parseInt($,10)||0,J=F<0||Object.is(F,-0)?-X:X;return F*60+J}function tP(D){let $=Number(D);if(typeof D==="boolean"||D===""||!Number.isFinite($))throw new T0(`Invalid unit value ${D}`);return $}function EX(D,$){let F={};for(let X in D)if(v3(D,X)){let J=D[X];if(J===void 0||J===null)continue;F[$(X)]=tP(J)}return F}function Q4(D,$){let F=Math.trunc(Math.abs(D/60)),X=Math.trunc(Math.abs(D%60)),J=D>=0?"+":"-";switch($){case"short":return`${J}${A0(F,2)}:${A0(X,2)}`;case"narrow":return`${J}${F}${X>0?`:${X}`:""}`;case"techie":return`${J}${A0(F,2)}${A0(X,2)}`;default:throw RangeError(`Value format ${$} is out of range for property format`)}}function LX(D){return aa(D,["hour","minute","second","millisecond"])}var ta=["January","February","March","April","May","June","July","August","September","October","November","December"],eP=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],ea=["J","F","M","A","M","J","J","A","S","O","N","D"];function DL(D){switch(D){case"narrow":return[...ea];case"short":return[...eP];case"long":return[...ta];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}var $L=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],FL=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],Do=["M","T","W","T","F","S","S"];function XL(D){switch(D){case"narrow":return[...Do];case"short":return[...FL];case"long":return[...$L];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var JL=["AM","PM"],$o=["Before Christ","Anno Domini"],Fo=["BC","AD"],Xo=["B","A"];function GL(D){switch(D){case"narrow":return[...Xo];case"short":return[...Fo];case"long":return[...$o];default:return null}}function Jo(D){return JL[D.hour<12?0:1]}function Go(D,$){return XL($)[D.weekday-1]}function Yo(D,$){return DL($)[D.month-1]}function Bo(D,$){return GL($)[D.year<0?0:1]}function Ho(D,$,F="always",X=!1){let J={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},G=["hours","minutes","seconds"].indexOf(D)===-1;if(F==="auto"&&G){let V=D==="days";switch($){case 1:return V?"tomorrow":`next ${J[D][0]}`;case-1:return V?"yesterday":`last ${J[D][0]}`;case 0:return V?"today":`this ${J[D][0]}`}}let Y=Object.is($,-0)||$<0,B=Math.abs($),H=B===1,U=J[D],Q=X?H?U[1]:U[2]||U[1]:H?J[D][0]:D;return Y?`${B} ${Q} ago`:`in ${B} ${Q}`}function $P(D,$){let F="";for(let X of D)if(X.literal)F+=X.val;else F+=$(X.val);return F}var Wo={D:ZX,DD:RP,DDD:OP,DDDD:EP,t:jP,tt:NP,ttt:PP,tttt:LP,T:qP,TT:zP,TTT:IP,TTTT:SP,f:TP,ff:kP,fff:fP,ffff:hP,F:wP,FF:bP,FFF:gP,FFFF:vP};class g0{static create(D,$={}){return new g0(D,$)}static parseFormat(D){let $=null,F="",X=!1,J=[];for(let G=0;G<D.length;G++){let Y=D.charAt(G);if(Y==="'"){if(F.length>0||X)J.push({literal:X||/^\s+$/.test(F),val:F===""?"'":F});$=null,F="",X=!X}else if(X)F+=Y;else if(Y===$)F+=Y;else{if(F.length>0)J.push({literal:/^\s+$/.test(F),val:F});F=Y,$=Y}}if(F.length>0)J.push({literal:X||/^\s+$/.test(F),val:F});return J}static macroTokenToFormatOpts(D){return Wo[D]}constructor(D,$){this.opts=$,this.loc=D,this.systemLoc=null}formatWithSystemDefault(D,$){if(this.systemLoc===null)this.systemLoc=this.loc.redefaultToSystem();return this.systemLoc.dtFormatter(D,{...this.opts,...$}).format()}dtFormatter(D,$={}){return this.loc.dtFormatter(D,{...this.opts,...$})}formatDateTime(D,$){return this.dtFormatter(D,$).format()}formatDateTimeParts(D,$){return this.dtFormatter(D,$).formatToParts()}formatInterval(D,$){return this.dtFormatter(D.start,$).dtf.formatRange(D.start.toJSDate(),D.end.toJSDate())}resolvedOptions(D,$){return this.dtFormatter(D,$).resolvedOptions()}num(D,$=0,F=void 0){if(this.opts.forceSimple)return A0(D,$);let X={...this.opts};if($>0)X.padTo=$;if(F)X.signDisplay=F;return this.loc.numberFormatter(X).format(D)}formatDateTimeFromString(D,$){let F=this.loc.listingMode()==="en",X=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",J=(A,K)=>this.loc.extract(D,A,K),G=(A)=>{if(D.isOffsetFixed&&D.offset===0&&A.allowZ)return"Z";return D.isValid?D.zone.formatOffset(D.ts,A.format):""},Y=()=>F?Jo(D):J({hour:"numeric",hourCycle:"h12"},"dayperiod"),B=(A,K)=>F?Yo(D,A):J(K?{month:A}:{month:A,day:"numeric"},"month"),H=(A,K)=>F?Go(D,A):J(K?{weekday:A}:{weekday:A,month:"long",day:"numeric"},"weekday"),U=(A)=>{let K=g0.macroTokenToFormatOpts(A);if(K)return this.formatWithSystemDefault(D,K);else return A},Q=(A)=>F?Bo(D,A):J({era:A},"era"),V=(A)=>{switch(A){case"S":return this.num(D.millisecond);case"u":case"SSS":return this.num(D.millisecond,3);case"s":return this.num(D.second);case"ss":return this.num(D.second,2);case"uu":return this.num(Math.floor(D.millisecond/10),2);case"uuu":return this.num(Math.floor(D.millisecond/100));case"m":return this.num(D.minute);case"mm":return this.num(D.minute,2);case"h":return this.num(D.hour%12===0?12:D.hour%12);case"hh":return this.num(D.hour%12===0?12:D.hour%12,2);case"H":return this.num(D.hour);case"HH":return this.num(D.hour,2);case"Z":return G({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return G({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return G({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return D.zone.offsetName(D.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return D.zone.offsetName(D.ts,{format:"long",locale:this.loc.locale});case"z":return D.zoneName;case"a":return Y();case"d":return X?J({day:"numeric"},"day"):this.num(D.day);case"dd":return X?J({day:"2-digit"},"day"):this.num(D.day,2);case"c":return this.num(D.weekday);case"ccc":return H("short",!0);case"cccc":return H("long",!0);case"ccccc":return H("narrow",!0);case"E":return this.num(D.weekday);case"EEE":return H("short",!1);case"EEEE":return H("long",!1);case"EEEEE":return H("narrow",!1);case"L":return X?J({month:"numeric",day:"numeric"},"month"):this.num(D.month);case"LL":return X?J({month:"2-digit",day:"numeric"},"month"):this.num(D.month,2);case"LLL":return B("short",!0);case"LLLL":return B("long",!0);case"LLLLL":return B("narrow",!0);case"M":return X?J({month:"numeric"},"month"):this.num(D.month);case"MM":return X?J({month:"2-digit"},"month"):this.num(D.month,2);case"MMM":return B("short",!1);case"MMMM":return B("long",!1);case"MMMMM":return B("narrow",!1);case"y":return X?J({year:"numeric"},"year"):this.num(D.year);case"yy":return X?J({year:"2-digit"},"year"):this.num(D.year.toString().slice(-2),2);case"yyyy":return X?J({year:"numeric"},"year"):this.num(D.year,4);case"yyyyyy":return X?J({year:"numeric"},"year"):this.num(D.year,6);case"G":return Q("short");case"GG":return Q("long");case"GGGGG":return Q("narrow");case"kk":return this.num(D.weekYear.toString().slice(-2),2);case"kkkk":return this.num(D.weekYear,4);case"W":return this.num(D.weekNumber);case"WW":return this.num(D.weekNumber,2);case"n":return this.num(D.localWeekNumber);case"nn":return this.num(D.localWeekNumber,2);case"ii":return this.num(D.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(D.localWeekYear,4);case"o":return this.num(D.ordinal);case"ooo":return this.num(D.ordinal,3);case"q":return this.num(D.quarter);case"qq":return this.num(D.quarter,2);case"X":return this.num(Math.floor(D.ts/1000));case"x":return this.num(D.ts);default:return U(A)}};return $P(g0.parseFormat($),V)}formatDurationFromString(D,$){let F=this.opts.signMode==="negativeLargestOnly"?-1:1,X=(U)=>{switch(U[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},J=(U,Q)=>(V)=>{let A=X(V);if(A){let K=Q.isNegativeDuration&&A!==Q.largestUnit?F:1,M;if(this.opts.signMode==="negativeLargestOnly"&&A!==Q.largestUnit)M="never";else if(this.opts.signMode==="all")M="always";else M="auto";return this.num(U.get(A)*K,V.length,M)}else return V},G=g0.parseFormat($),Y=G.reduce((U,{literal:Q,val:V})=>Q?U:U.concat(V),[]),B=D.shiftTo(...Y.map(X).filter((U)=>U)),H={isNegativeDuration:B<0,largestUnit:Object.keys(B.values)[0]};return $P(G,J(B,H))}}var YL=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function x3(...D){let $=D.reduce((F,X)=>F+X.source,"");return RegExp(`^${$}$`)}function y3(...D){return($)=>D.reduce(([F,X,J],G)=>{let[Y,B,H]=G($,J);return[{...F,...Y},B||X,H]},[{},null,1]).slice(0,2)}function u3(D,...$){if(D==null)return[null,null];for(let[F,X]of $){let J=F.exec(D);if(J)return X(J)}return[null,null]}function BL(...D){return($,F)=>{let X={},J;for(J=0;J<D.length;J++)X[D[J]]=R8($[F+J]);return[X,null,F+J]}}var HL=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,Uo=`(?:${HL.source}?(?:\\[(${YL.source})\\])?)?`,XU=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,WL=RegExp(`${XU.source}${Uo}`),JU=RegExp(`(?:[Tt]${WL.source})?`),Qo=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Vo=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Ao=/(\d{4})-?(\d{3})/,Ko=BL("weekYear","weekNumber","weekDay"),_o=BL("year","ordinal"),Co=/(\d{4})-(\d\d)-(\d\d)/,UL=RegExp(`${XU.source} ?(?:${HL.source}|(${YL.source}))?`),Mo=RegExp(`(?: ${UL.source})?`);function h3(D,$,F){let X=D[$];return GD(X)?F:R8(X)}function Zo(D,$){return[{year:h3(D,$),month:h3(D,$+1,1),day:h3(D,$+2,1)},null,$+3]}function m3(D,$){return[{hours:h3(D,$,0),minutes:h3(D,$+1,0),seconds:h3(D,$+2,0),milliseconds:$U(D[$+3])},null,$+4]}function _4(D,$){let F=!D[$]&&!D[$+1],X=PX(D[$+1],D[$+2]),J=F?null:h0.instance(X);return[{},J,$+3]}function C4(D,$){let F=D[$]?C1.create(D[$]):null;return[{},F,$+1]}var Ro=RegExp(`^T?${XU.source}$`),Oo=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/;function Eo(D){let[$,F,X,J,G,Y,B,H,U]=D,Q=$[0]==="-",V=H&&H[0]==="-",A=(K,M=!1)=>K!==void 0&&(M||K&&Q)?-K:K;return[{years:A(H6(F)),months:A(H6(X)),weeks:A(H6(J)),days:A(H6(G)),hours:A(H6(Y)),minutes:A(H6(B)),seconds:A(H6(H),H==="-0"),milliseconds:A($U(U),V)}]}var jo={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function GU(D,$,F,X,J,G,Y){let B={year:$.length===2?rW(R8($)):R8($),month:eP.indexOf(F)+1,day:R8(X),hour:R8(J),minute:R8(G)};if(Y)B.second=R8(Y);if(D)B.weekday=D.length>3?$L.indexOf(D)+1:FL.indexOf(D)+1;return B}var No=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function Po(D){let[,$,F,X,J,G,Y,B,H,U,Q,V]=D,A=GU($,J,X,F,G,Y,B),K;if(H)K=jo[H];else if(U)K=0;else K=PX(Q,V);return[A,new h0(K)]}function Lo(D){return D.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var qo=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,zo=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,Io=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function FP(D){let[,$,F,X,J,G,Y,B]=D;return[GU($,J,X,F,G,Y,B),h0.utcInstance]}function So(D){let[,$,F,X,J,G,Y,B]=D;return[GU($,B,F,X,J,G,Y),h0.utcInstance]}var To=x3(Qo,JU),wo=x3(Vo,JU),ko=x3(Ao,JU),bo=x3(WL),QL=y3(Zo,m3,_4,C4),fo=y3(Ko,m3,_4,C4),go=y3(_o,m3,_4,C4),ho=y3(m3,_4,C4);function vo(D){return u3(D,[To,QL],[wo,fo],[ko,go],[bo,ho])}function xo(D){return u3(Lo(D),[No,Po])}function yo(D){return u3(D,[qo,FP],[zo,FP],[Io,So])}function uo(D){return u3(D,[Oo,Eo])}var mo=y3(m3);function co(D){return u3(D,[Ro,mo])}var po=x3(Co,Mo),lo=x3(UL),io=y3(m3,_4,C4);function no(D){return u3(D,[po,QL],[lo,io])}var XP="Invalid Duration",VL={weeks:{days:7,hours:168,minutes:10080,seconds:604800,milliseconds:604800000},days:{hours:24,minutes:1440,seconds:86400,milliseconds:86400000},hours:{minutes:60,seconds:3600,milliseconds:3600000},minutes:{seconds:60,milliseconds:60000},seconds:{milliseconds:1000}},ro={years:{quarters:4,months:12,weeks:52,days:365,hours:8760,minutes:525600,seconds:31536000,milliseconds:31536000000},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:131040,seconds:7862400,milliseconds:7862400000},months:{weeks:4,days:30,hours:720,minutes:43200,seconds:2592000,milliseconds:2592000000},...VL},j2=365.2425,w3=30.436875,so={years:{quarters:4,months:12,weeks:j2/7,days:j2,hours:j2*24,minutes:j2*24*60,seconds:j2*24*60*60,milliseconds:j2*24*60*60*1000},quarters:{months:3,weeks:j2/28,days:j2/4,hours:j2*24/4,minutes:j2*24*60/4,seconds:j2*24*60*60/4,milliseconds:j2*24*60*60*1000/4},months:{weeks:w3/7,days:w3,hours:w3*24,minutes:w3*24*60,seconds:w3*24*60*60,milliseconds:w3*24*60*60*1000},...VL},Q6=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],ao=Q6.slice(0).reverse();function h1(D,$,F=!1){let X={values:F?$.values:{...D.values,...$.values||{}},loc:D.loc.clone($.loc),conversionAccuracy:$.conversionAccuracy||D.conversionAccuracy,matrix:$.matrix||D.matrix};return new OD(X)}function AL(D,$){var F;let X=(F=$.milliseconds)!=null?F:0;for(let J of ao.slice(1))if($[J])X+=$[J]*D[J].milliseconds;return X}function JP(D,$){let F=AL(D,$)<0?-1:1;Q6.reduceRight((X,J)=>{if(!GD($[J])){if(X){let G=$[X]*F,Y=D[J][X],B=Math.floor(G/Y);$[J]+=B*F,$[X]-=B*Y*F}return J}else return X},null),Q6.reduce((X,J)=>{if(!GD($[J])){if(X){let G=$[X]%1;$[X]-=G,$[J]+=G*D[X][J]}return J}else return X},null)}function GP(D){let $={};for(let[F,X]of Object.entries(D))if(X!==0)$[F]=X;return $}class OD{constructor(D){let $=D.conversionAccuracy==="longterm"||!1,F=$?so:ro;if(D.matrix)F=D.matrix;this.values=D.values,this.loc=D.loc||zD.create(),this.conversionAccuracy=$?"longterm":"casual",this.invalid=D.invalid||null,this.matrix=F,this.isLuxonDuration=!0}static fromMillis(D,$){return OD.fromObject({milliseconds:D},$)}static fromObject(D,$={}){if(D==null||typeof D!=="object")throw new T0(`Duration.fromObject: argument expected to be an object, got ${D===null?"null":typeof D}`);return new OD({values:EX(D,OD.normalizeUnit),loc:zD.fromObject($),conversionAccuracy:$.conversionAccuracy,matrix:$.matrix})}static fromDurationLike(D){if(E8(D))return OD.fromMillis(D);else if(OD.isDuration(D))return D;else if(typeof D==="object")return OD.fromObject(D);else throw new T0(`Unknown duration argument ${D} of type ${typeof D}`)}static fromISO(D,$){let[F]=uo(D);if(F)return OD.fromObject(F,$);else return OD.invalid("unparsable",`the input "${D}" can't be parsed as ISO 8601`)}static fromISOTime(D,$){let[F]=co(D);if(F)return OD.fromObject(F,$);else return OD.invalid("unparsable",`the input "${D}" can't be parsed as ISO 8601`)}static invalid(D,$=null){if(!D)throw new T0("need to specify a reason the Duration is invalid");let F=D instanceof N2?D:new N2(D,$);if(sD.throwOnInvalid)throw new ZP(F);else return new OD({invalid:F})}static normalizeUnit(D){let $={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[D?D.toLowerCase():D];if(!$)throw new aW(D);return $}static isDuration(D){return D&&D.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(D,$={}){let F={...$,floor:$.round!==!1&&$.floor!==!1};return this.isValid?g0.create(this.loc,F).formatDurationFromString(this,D):XP}toHuman(D={}){if(!this.isValid)return XP;let $=D.showZeros!==!1,F=Q6.map((X)=>{let J=this.values[X];if(GD(J)||J===0&&!$)return null;return this.loc.numberFormatter({style:"unit",unitDisplay:"long",...D,unit:X.slice(0,-1)}).format(J)}).filter((X)=>X);return this.loc.listFormatter({type:"conjunction",style:D.listStyle||"narrow",...D}).format(F)}toObject(){if(!this.isValid)return{};return{...this.values}}toISO(){if(!this.isValid)return null;let D="P";if(this.years!==0)D+=this.years+"Y";if(this.months!==0||this.quarters!==0)D+=this.months+this.quarters*3+"M";if(this.weeks!==0)D+=this.weeks+"W";if(this.days!==0)D+=this.days+"D";if(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)D+="T";if(this.hours!==0)D+=this.hours+"H";if(this.minutes!==0)D+=this.minutes+"M";if(this.seconds!==0||this.milliseconds!==0)D+=FU(this.seconds+this.milliseconds/1000,3)+"S";if(D==="P")D+="T0S";return D}toISOTime(D={}){if(!this.isValid)return null;let $=this.toMillis();if($<0||$>=86400000)return null;return D={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...D,includeOffset:!1},BD.fromMillis($,{zone:"UTC"}).toISOTime(D)}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){if(this.isValid)return`Duration { values: ${JSON.stringify(this.values)} }`;else return`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){if(!this.isValid)return NaN;return AL(this.matrix,this.values)}valueOf(){return this.toMillis()}plus(D){if(!this.isValid)return this;let $=OD.fromDurationLike(D),F={};for(let X of Q6)if(v3($.values,X)||v3(this.values,X))F[X]=$.get(X)+this.get(X);return h1(this,{values:F},!0)}minus(D){if(!this.isValid)return this;let $=OD.fromDurationLike(D);return this.plus($.negate())}mapUnits(D){if(!this.isValid)return this;let $={};for(let F of Object.keys(this.values))$[F]=tP(D(this.values[F],F));return h1(this,{values:$},!0)}get(D){return this[OD.normalizeUnit(D)]}set(D){if(!this.isValid)return this;let $={...this.values,...EX(D,OD.normalizeUnit)};return h1(this,{values:$})}reconfigure({locale:D,numberingSystem:$,conversionAccuracy:F,matrix:X}={}){let G={loc:this.loc.clone({locale:D,numberingSystem:$}),matrix:X,conversionAccuracy:F};return h1(this,G)}as(D){return this.isValid?this.shiftTo(D).get(D):NaN}normalize(){if(!this.isValid)return this;let D=this.toObject();return JP(this.matrix,D),h1(this,{values:D},!0)}rescale(){if(!this.isValid)return this;let D=GP(this.normalize().shiftToAll().toObject());return h1(this,{values:D},!0)}shiftTo(...D){if(!this.isValid)return this;if(D.length===0)return this;D=D.map((G)=>OD.normalizeUnit(G));let $={},F={},X=this.toObject(),J;for(let G of Q6)if(D.indexOf(G)>=0){J=G;let Y=0;for(let H in F)Y+=this.matrix[H][G]*F[H],F[H]=0;if(E8(X[G]))Y+=X[G];let B=Math.trunc(Y);$[G]=B,F[G]=(Y*1000-B*1000)/1000}else if(E8(X[G]))F[G]=X[G];for(let G in F)if(F[G]!==0)$[J]+=G===J?F[G]:F[G]/this.matrix[J][G];return JP(this.matrix,$),h1(this,{values:$},!0)}shiftToAll(){if(!this.isValid)return this;return this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds")}negate(){if(!this.isValid)return this;let D={};for(let $ of Object.keys(this.values))D[$]=this.values[$]===0?0:-this.values[$];return h1(this,{values:D},!0)}removeZeros(){if(!this.isValid)return this;let D=GP(this.values);return h1(this,{values:D},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(D){if(!this.isValid||!D.isValid)return!1;if(!this.loc.equals(D.loc))return!1;function $(F,X){if(F===void 0||F===0)return X===void 0||X===0;return F===X}for(let F of Q6)if(!$(this.values[F],D.values[F]))return!1;return!0}}var k3="Invalid Interval";function oo(D,$){if(!D||!D.isValid)return D0.invalid("missing or invalid start");else if(!$||!$.isValid)return D0.invalid("missing or invalid end");else if($<D)return D0.invalid("end before start",`The end of an interval must be after its start, but you had start=${D.toISO()} and end=${$.toISO()}`);else return null}class D0{constructor(D){this.s=D.start,this.e=D.end,this.invalid=D.invalid||null,this.isLuxonInterval=!0}static invalid(D,$=null){if(!D)throw new T0("need to specify a reason the Interval is invalid");let F=D instanceof N2?D:new N2(D,$);if(sD.throwOnInvalid)throw new MP(F);else return new D0({invalid:F})}static fromDateTimes(D,$){let F=B4(D),X=B4($),J=oo(F,X);if(J==null)return new D0({start:F,end:X});else return J}static after(D,$){let F=OD.fromDurationLike($),X=B4(D);return D0.fromDateTimes(X,X.plus(F))}static before(D,$){let F=OD.fromDurationLike($),X=B4(D);return D0.fromDateTimes(X.minus(F),X)}static fromISO(D,$){let[F,X]=(D||"").split("/",2);if(F&&X){let J,G;try{J=BD.fromISO(F,$),G=J.isValid}catch(H){G=!1}let Y,B;try{Y=BD.fromISO(X,$),B=Y.isValid}catch(H){B=!1}if(G&&B)return D0.fromDateTimes(J,Y);if(G){let H=OD.fromISO(X,$);if(H.isValid)return D0.after(J,H)}else if(B){let H=OD.fromISO(F,$);if(H.isValid)return D0.before(Y,H)}}return D0.invalid("unparsable",`the input "${D}" can't be parsed as ISO 8601`)}static isInterval(D){return D&&D.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get lastDateTime(){return this.isValid?this.e?this.e.minus(1):null:null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(D="milliseconds"){return this.isValid?this.toDuration(...[D]).get(D):NaN}count(D="milliseconds",$){if(!this.isValid)return NaN;let F=this.start.startOf(D,$),X;if($!=null&&$.useLocaleWeeks)X=this.end.reconfigure({locale:F.locale});else X=this.end;return X=X.startOf(D,$),Math.floor(X.diff(F,D).get(D))+(X.valueOf()!==this.end.valueOf())}hasSame(D){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,D):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(D){if(!this.isValid)return!1;return this.s>D}isBefore(D){if(!this.isValid)return!1;return this.e<=D}contains(D){if(!this.isValid)return!1;return this.s<=D&&this.e>D}set({start:D,end:$}={}){if(!this.isValid)return this;return D0.fromDateTimes(D||this.s,$||this.e)}splitAt(...D){if(!this.isValid)return[];let $=D.map(B4).filter((G)=>this.contains(G)).sort((G,Y)=>G.toMillis()-Y.toMillis()),F=[],{s:X}=this,J=0;while(X<this.e){let G=$[J]||this.e,Y=+G>+this.e?this.e:G;F.push(D0.fromDateTimes(X,Y)),X=Y,J+=1}return F}splitBy(D){let $=OD.fromDurationLike(D);if(!this.isValid||!$.isValid||$.as("milliseconds")===0)return[];let{s:F}=this,X=1,J,G=[];while(F<this.e){let Y=this.start.plus($.mapUnits((B)=>B*X));J=+Y>+this.e?this.e:Y,G.push(D0.fromDateTimes(F,J)),F=J,X+=1}return G}divideEqually(D){if(!this.isValid)return[];return this.splitBy(this.length()/D).slice(0,D)}overlaps(D){return this.e>D.s&&this.s<D.e}abutsStart(D){if(!this.isValid)return!1;return+this.e===+D.s}abutsEnd(D){if(!this.isValid)return!1;return+D.e===+this.s}engulfs(D){if(!this.isValid)return!1;return this.s<=D.s&&this.e>=D.e}equals(D){if(!this.isValid||!D.isValid)return!1;return this.s.equals(D.s)&&this.e.equals(D.e)}intersection(D){if(!this.isValid)return this;let $=this.s>D.s?this.s:D.s,F=this.e<D.e?this.e:D.e;if($>=F)return null;else return D0.fromDateTimes($,F)}union(D){if(!this.isValid)return this;let $=this.s<D.s?this.s:D.s,F=this.e>D.e?this.e:D.e;return D0.fromDateTimes($,F)}static merge(D){let[$,F]=D.sort((X,J)=>X.s-J.s).reduce(([X,J],G)=>{if(!J)return[X,G];else if(J.overlaps(G)||J.abutsStart(G))return[X,J.union(G)];else return[X.concat([J]),G]},[[],null]);if(F)$.push(F);return $}static xor(D){let $=null,F=0,X=[],J=D.map((B)=>[{time:B.s,type:"s"},{time:B.e,type:"e"}]),G=Array.prototype.concat(...J),Y=G.sort((B,H)=>B.time-H.time);for(let B of Y)if(F+=B.type==="s"?1:-1,F===1)$=B.time;else{if($&&+$!==+B.time)X.push(D0.fromDateTimes($,B.time));$=null}return D0.merge(X)}difference(...D){return D0.xor([this].concat(D)).map(($)=>this.intersection($)).filter(($)=>$&&!$.isEmpty())}toString(){if(!this.isValid)return k3;return`[${this.s.toISO()} \u2013 ${this.e.toISO()})`}[Symbol.for("nodejs.util.inspect.custom")](){if(this.isValid)return`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`;else return`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(D=ZX,$={}){return this.isValid?g0.create(this.s.loc.clone($),D).formatInterval(this):k3}toISO(D){if(!this.isValid)return k3;return`${this.s.toISO(D)}/${this.e.toISO(D)}`}toISODate(){if(!this.isValid)return k3;return`${this.s.toISODate()}/${this.e.toISODate()}`}toISOTime(D){if(!this.isValid)return k3;return`${this.s.toISOTime(D)}/${this.e.toISOTime(D)}`}toFormat(D,{separator:$=" \u2013 "}={}){if(!this.isValid)return k3;return`${this.s.toFormat(D)}${$}${this.e.toFormat(D)}`}toDuration(D,$){if(!this.isValid)return OD.invalid(this.invalidReason);return this.e.diff(this.s,D,$)}mapEndpoints(D){return D0.fromDateTimes(D(this.s),D(this.e))}}class f3{static hasDST(D=sD.defaultZone){let $=BD.now().setZone(D).set({month:12});return!D.isUniversal&&$.offset!==$.set({month:6}).offset}static isValidIANAZone(D){return C1.isValidZone(D)}static normalizeZone(D){return O8(D,sD.defaultZone)}static getStartOfWeek({locale:D=null,locObj:$=null}={}){return($||zD.create(D)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:D=null,locObj:$=null}={}){return($||zD.create(D)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:D=null,locObj:$=null}={}){return($||zD.create(D)).getWeekendDays().slice()}static months(D="long",{locale:$=null,numberingSystem:F=null,locObj:X=null,outputCalendar:J="gregory"}={}){return(X||zD.create($,F,J)).months(D)}static monthsFormat(D="long",{locale:$=null,numberingSystem:F=null,locObj:X=null,outputCalendar:J="gregory"}={}){return(X||zD.create($,F,J)).months(D,!0)}static weekdays(D="long",{locale:$=null,numberingSystem:F=null,locObj:X=null}={}){return(X||zD.create($,F,null)).weekdays(D)}static weekdaysFormat(D="long",{locale:$=null,numberingSystem:F=null,locObj:X=null}={}){return(X||zD.create($,F,null)).weekdays(D,!0)}static meridiems({locale:D=null}={}){return zD.create(D).meridiems()}static eras(D="short",{locale:$=null}={}){return zD.create($,null,"gregory").eras(D)}static features(){return{relative:sP(),localeWeek:aP()}}}function YP(D,$){let F=(J)=>J.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),X=F($)-F(D);return Math.floor(OD.fromMillis(X).as("days"))}function to(D,$,F){let X=[["years",(H,U)=>U.year-H.year],["quarters",(H,U)=>U.quarter-H.quarter+(U.year-H.year)*4],["months",(H,U)=>U.month-H.month+(U.year-H.year)*12],["weeks",(H,U)=>{let Q=YP(H,U);return(Q-Q%7)/7}],["days",YP]],J={},G=D,Y,B;for(let[H,U]of X)if(F.indexOf(H)>=0)if(Y=H,J[H]=U(D,$),B=G.plus(J),B>$){if(J[H]--,D=G.plus(J),D>$)B=D,J[H]--,D=G.plus(J)}else D=B;return[D,J,B,Y]}function eo(D,$,F,X){let[J,G,Y,B]=to(D,$,F),H=$-J,U=F.filter((V)=>["hours","minutes","seconds","milliseconds"].indexOf(V)>=0);if(U.length===0){if(Y<$)Y=J.plus({[B]:1});if(Y!==J)G[B]=(G[B]||0)+H/(Y-J)}let Q=OD.fromObject(G,X);if(U.length>0)return OD.fromMillis(H,X).shiftTo(...U).plus(Q);else return Q}var Dt="missing Intl.DateTimeFormat.formatToParts support";function PD(D,$=(F)=>F){return{regex:D,deser:([F])=>$(pa(F))}}var $t=String.fromCharCode(160),KL=`[ ${$t}]`,_L=new RegExp(KL,"g");function Ft(D){return D.replace(/\./g,"\\.?").replace(_L,KL)}function BP(D){return D.replace(/\./g,"").replace(_L," ").toLowerCase()}function e2(D,$){if(D===null)return null;else return{regex:RegExp(D.map(Ft).join("|")),deser:([F])=>D.findIndex((X)=>BP(F)===BP(X))+$}}function HP(D,$){return{regex:D,deser:([,F,X])=>PX(F,X),groups:$}}function VX(D){return{regex:D,deser:([$])=>$}}function Xt(D){return D.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function Jt(D,$){let F=t2($),X=t2($,"{2}"),J=t2($,"{3}"),G=t2($,"{4}"),Y=t2($,"{6}"),B=t2($,"{1,2}"),H=t2($,"{1,3}"),U=t2($,"{1,6}"),Q=t2($,"{1,9}"),V=t2($,"{2,4}"),A=t2($,"{4,6}"),K=(Z)=>({regex:RegExp(Xt(Z.val)),deser:([O])=>O,literal:!0}),C=((Z)=>{if(D.literal)return K(Z);switch(Z.val){case"G":return e2($.eras("short"),0);case"GG":return e2($.eras("long"),0);case"y":return PD(U);case"yy":return PD(V,rW);case"yyyy":return PD(G);case"yyyyy":return PD(A);case"yyyyyy":return PD(Y);case"M":return PD(B);case"MM":return PD(X);case"MMM":return e2($.months("short",!0),1);case"MMMM":return e2($.months("long",!0),1);case"L":return PD(B);case"LL":return PD(X);case"LLL":return e2($.months("short",!1),1);case"LLLL":return e2($.months("long",!1),1);case"d":return PD(B);case"dd":return PD(X);case"o":return PD(H);case"ooo":return PD(J);case"HH":return PD(X);case"H":return PD(B);case"hh":return PD(X);case"h":return PD(B);case"mm":return PD(X);case"m":return PD(B);case"q":return PD(B);case"qq":return PD(X);case"s":return PD(B);case"ss":return PD(X);case"S":return PD(H);case"SSS":return PD(J);case"u":return VX(Q);case"uu":return VX(B);case"uuu":return PD(F);case"a":return e2($.meridiems(),0);case"kkkk":return PD(G);case"kk":return PD(V,rW);case"W":return PD(B);case"WW":return PD(X);case"E":case"c":return PD(F);case"EEE":return e2($.weekdays("short",!1),1);case"EEEE":return e2($.weekdays("long",!1),1);case"ccc":return e2($.weekdays("short",!0),1);case"cccc":return e2($.weekdays("long",!0),1);case"Z":case"ZZ":return HP(new RegExp(`([+-]${B.source})(?::(${X.source}))?`),2);case"ZZZ":return HP(new RegExp(`([+-]${B.source})(${X.source})?`),2);case"z":return VX(/[a-z_+-/]{1,256}?/i);case" ":return VX(/[^\S\n\r]/);default:return K(Z)}})(D)||{invalidReason:Dt};return C.token=D,C}var Gt={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function Yt(D,$,F){let{type:X,value:J}=D;if(X==="literal"){let H=/^\s+$/.test(J);return{literal:!H,val:H?" ":J}}let G=$[X],Y=X;if(X==="hour")if($.hour12!=null)Y=$.hour12?"hour12":"hour24";else if($.hourCycle!=null)if($.hourCycle==="h11"||$.hourCycle==="h12")Y="hour12";else Y="hour24";else Y=F.hour12?"hour12":"hour24";let B=Gt[Y];if(typeof B==="object")B=B[G];if(B)return{literal:!1,val:B};return}function Bt(D){return[`^${D.map((F)=>F.regex).reduce((F,X)=>`${F}(${X.source})`,"")}$`,D]}function Ht(D,$,F){let X=D.match($);if(X){let J={},G=1;for(let Y in F)if(v3(F,Y)){let B=F[Y],H=B.groups?B.groups+1:1;if(!B.literal&&B.token)J[B.token.val[0]]=B.deser(X.slice(G,G+H));G+=H}return[X,J]}else return[X,{}]}function Wt(D){let $=(G)=>{switch(G){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}},F=null,X;if(!GD(D.z))F=C1.create(D.z);if(!GD(D.Z)){if(!F)F=new h0(D.Z);X=D.Z}if(!GD(D.q))D.M=(D.q-1)*3+1;if(!GD(D.h)){if(D.h<12&&D.a===1)D.h+=12;else if(D.h===12&&D.a===0)D.h=0}if(D.G===0&&D.y)D.y=-D.y;if(!GD(D.u))D.S=$U(D.u);return[Object.keys(D).reduce((G,Y)=>{let B=$(Y);if(B)G[B]=D[Y];return G},{}),F,X]}var fW=null;function Ut(){if(!fW)fW=BD.fromMillis(1555555555555);return fW}function Qt(D,$){if(D.literal)return D;let F=g0.macroTokenToFormatOpts(D.val),X=ZL(F,$);if(X==null||X.includes(void 0))return D;return X}function CL(D,$){return Array.prototype.concat(...D.map((F)=>Qt(F,$)))}class YU{constructor(D,$){if(this.locale=D,this.format=$,this.tokens=CL(g0.parseFormat($),D),this.units=this.tokens.map((F)=>Jt(F,D)),this.disqualifyingUnit=this.units.find((F)=>F.invalidReason),!this.disqualifyingUnit){let[F,X]=Bt(this.units);this.regex=RegExp(F,"i"),this.handlers=X}}explainFromTokens(D){if(!this.isValid)return{input:D,tokens:this.tokens,invalidReason:this.invalidReason};else{let[$,F]=Ht(D,this.regex,this.handlers),[X,J,G]=F?Wt(F):[null,null,void 0];if(v3(F,"a")&&v3(F,"H"))throw new U6("Can't include meridiem when specifying 24-hour format");return{input:D,tokens:this.tokens,regex:this.regex,rawMatches:$,matches:F,result:X,zone:J,specificOffset:G}}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}}function ML(D,$,F){return new YU(D,F).explainFromTokens($)}function Vt(D,$,F){let{result:X,zone:J,specificOffset:G,invalidReason:Y}=ML(D,$,F);return[X,J,G,Y]}function ZL(D,$){if(!D)return null;let X=g0.create($,D).dtFormatter(Ut()),J=X.formatToParts(),G=X.resolvedOptions();return J.map((Y)=>Yt(Y,D,G))}var gW="Invalid DateTime",WP=8640000000000000;function W4(D){return new N2("unsupported zone",`the zone "${D.name}" is not supported`)}function hW(D){if(D.weekData===null)D.weekData=RX(D.c);return D.weekData}function vW(D){if(D.localWeekData===null)D.localWeekData=RX(D.c,D.loc.getMinDaysInFirstWeek(),D.loc.getStartOfWeek());return D.localWeekData}function W6(D,$){let F={ts:D.ts,zone:D.zone,c:D.c,o:D.o,loc:D.loc,invalid:D.invalid};return new BD({...F,...$,old:F})}function RL(D,$,F){let X=D-$*60*1000,J=F.offset(X);if($===J)return[X,$];X-=(J-$)*60*1000;let G=F.offset(X);if(J===G)return[X,J];return[D-Math.min(J,G)*60*1000,Math.max(J,G)]}function AX(D,$){D+=$*60*1000;let F=new Date(D);return{year:F.getUTCFullYear(),month:F.getUTCMonth()+1,day:F.getUTCDate(),hour:F.getUTCHours(),minute:F.getUTCMinutes(),second:F.getUTCSeconds(),millisecond:F.getUTCMilliseconds()}}function _X(D,$,F){return RL(NX(D),$,F)}function UP(D,$){let F=D.o,X=D.c.year+Math.trunc($.years),J=D.c.month+Math.trunc($.months)+Math.trunc($.quarters)*3,G={...D.c,year:X,month:J,day:Math.min(D.c.day,OX(X,J))+Math.trunc($.days)+Math.trunc($.weeks)*7},Y=OD.fromObject({years:$.years-Math.trunc($.years),quarters:$.quarters-Math.trunc($.quarters),months:$.months-Math.trunc($.months),weeks:$.weeks-Math.trunc($.weeks),days:$.days-Math.trunc($.days),hours:$.hours,minutes:$.minutes,seconds:$.seconds,milliseconds:$.milliseconds}).as("milliseconds"),B=NX(G),[H,U]=RL(B,F,D.zone);if(Y!==0)H+=Y,U=D.zone.offset(H);return{ts:H,o:U}}function b3(D,$,F,X,J,G){let{setZone:Y,zone:B}=F;if(D&&Object.keys(D).length!==0||$){let H=$||B,U=BD.fromObject(D,{...F,zone:H,specificOffset:G});return Y?U:U.setZone(B)}else return BD.invalid(new N2("unparsable",`the input "${J}" can't be parsed as ${X}`))}function KX(D,$,F=!0){return D.isValid?g0.create(zD.create("en-US"),{allowZ:F,forceSimple:!0}).formatDateTimeFromString(D,$):null}function xW(D,$,F){let X=D.c.year>9999||D.c.year<0,J="";if(X&&D.c.year>=0)J+="+";if(J+=A0(D.c.year,X?6:4),F==="year")return J;if($){if(J+="-",J+=A0(D.c.month),F==="month")return J;J+="-"}else if(J+=A0(D.c.month),F==="month")return J;return J+=A0(D.c.day),J}function QP(D,$,F,X,J,G,Y){let B=!F||D.c.millisecond!==0||D.c.second!==0,H="";switch(Y){case"day":case"month":case"year":break;default:if(H+=A0(D.c.hour),Y==="hour")break;if($){if(H+=":",H+=A0(D.c.minute),Y==="minute")break;if(B)H+=":",H+=A0(D.c.second)}else{if(H+=A0(D.c.minute),Y==="minute")break;if(B)H+=A0(D.c.second)}if(Y==="second")break;if(B&&(!X||D.c.millisecond!==0))H+=".",H+=A0(D.c.millisecond,3)}if(J)if(D.isOffsetFixed&&D.offset===0&&!G)H+="Z";else if(D.o<0)H+="-",H+=A0(Math.trunc(-D.o/60)),H+=":",H+=A0(Math.trunc(-D.o%60));else H+="+",H+=A0(Math.trunc(D.o/60)),H+=":",H+=A0(Math.trunc(D.o%60));if(G)H+="["+D.zone.ianaName+"]";return H}var OL={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},At={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},Kt={ordinal:1,hour:0,minute:0,second:0,millisecond:0},CX=["year","month","day","hour","minute","second","millisecond"],_t=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],Ct=["year","ordinal","hour","minute","second","millisecond"];function MX(D){let $={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[D.toLowerCase()];if(!$)throw new aW(D);return $}function VP(D){switch(D.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return MX(D)}}function Mt(D){if(U4===void 0)U4=sD.now();if(D.type!=="iana")return D.offset(U4);let $=D.name,F=sW.get($);if(F===void 0)F=D.offset(U4),sW.set($,F);return F}function AP(D,$){let F=O8($.zone,sD.defaultZone);if(!F.isValid)return BD.invalid(W4(F));let X=zD.fromObject($),J,G;if(!GD(D.year)){for(let H of CX)if(GD(D[H]))D[H]=OL[H];let Y=nP(D)||rP(D);if(Y)return BD.invalid(Y);let B=Mt(F);[J,G]=_X(D,B,F)}else J=sD.now();return new BD({ts:J,zone:F,loc:X,o:G})}function KP(D,$,F){let X=GD(F.round)?!0:F.round,J=GD(F.rounding)?"trunc":F.rounding,G=(B,H)=>{return B=FU(B,X||F.calendary?0:2,F.calendary?"round":J),$.loc.clone(F).relFormatter(F).format(B,H)},Y=(B)=>{if(F.calendary)if(!$.hasSame(D,B))return $.startOf(B).diff(D.startOf(B),B).get(B);else return 0;else return $.diff(D,B).get(B)};if(F.unit)return G(Y(F.unit),F.unit);for(let B of F.units){let H=Y(B);if(Math.abs(H)>=1)return G(H,B)}return G(D>$?-0:0,F.units[F.units.length-1])}function _P(D){let $={},F;if(D.length>0&&typeof D[D.length-1]==="object")$=D[D.length-1],F=Array.from(D).slice(0,D.length-1);else F=Array.from(D);return[$,F]}var U4,sW=new Map;class BD{constructor(D){let $=D.zone||sD.defaultZone,F=D.invalid||(Number.isNaN(D.ts)?new N2("invalid input"):null)||(!$.isValid?W4($):null);this.ts=GD(D.ts)?sD.now():D.ts;let X=null,J=null;if(!F)if(D.old&&D.old.ts===this.ts&&D.old.zone.equals($))[X,J]=[D.old.c,D.old.o];else{let Y=E8(D.o)&&!D.old?D.o:$.offset(this.ts);X=AX(this.ts,Y),F=Number.isNaN(X.year)?new N2("invalid input"):null,X=F?null:X,J=F?null:Y}this._zone=$,this.loc=D.loc||zD.create(),this.invalid=F,this.weekData=null,this.localWeekData=null,this.c=X,this.o=J,this.isLuxonDateTime=!0}static now(){return new BD({})}static local(){let[D,$]=_P(arguments),[F,X,J,G,Y,B,H]=$;return AP({year:F,month:X,day:J,hour:G,minute:Y,second:B,millisecond:H},D)}static utc(){let[D,$]=_P(arguments),[F,X,J,G,Y,B,H]=$;return D.zone=h0.utcInstance,AP({year:F,month:X,day:J,hour:G,minute:Y,second:B,millisecond:H},D)}static fromJSDate(D,$={}){let F=ra(D)?D.valueOf():NaN;if(Number.isNaN(F))return BD.invalid("invalid input");let X=O8($.zone,sD.defaultZone);if(!X.isValid)return BD.invalid(W4(X));return new BD({ts:F,zone:X,loc:zD.fromObject($)})}static fromMillis(D,$={}){if(!E8(D))throw new T0(`fromMillis requires a numerical input, but received a ${typeof D} with value ${D}`);else if(D<-WP||D>WP)return BD.invalid("Timestamp out of range");else return new BD({ts:D,zone:O8($.zone,sD.defaultZone),loc:zD.fromObject($)})}static fromSeconds(D,$={}){if(!E8(D))throw new T0("fromSeconds requires a numerical input");else return new BD({ts:D*1000,zone:O8($.zone,sD.defaultZone),loc:zD.fromObject($)})}static fromObject(D,$={}){D=D||{};let F=O8($.zone,sD.defaultZone);if(!F.isValid)return BD.invalid(W4(F));let X=zD.fromObject($),J=EX(D,VP),{minDaysInFirstWeek:G,startOfWeek:Y}=tN(J,X),B=sD.now(),H=!GD($.specificOffset)?$.specificOffset:F.offset(B),U=!GD(J.ordinal),Q=!GD(J.year),V=!GD(J.month)||!GD(J.day),A=Q||V,K=J.weekYear||J.weekNumber;if((A||U)&&K)throw new U6("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(V&&U)throw new U6("Can't mix ordinal dates with month/day");let M=K||J.weekday&&!A,C,Z,O=AX(B,H);if(M)C=_t,Z=At,O=RX(O,G,Y);else if(U)C=Ct,Z=Kt,O=bW(O);else C=CX,Z=OL;let j=!1;for(let i of C){let I=J[i];if(!GD(I))j=!0;else if(j)J[i]=Z[i];else J[i]=O[i]}let P=M?la(J,G,Y):U?ia(J):nP(J),T=P||rP(J);if(T)return BD.invalid(T);let h=M?aN(J,G,Y):U?oN(J):J,[q,N]=_X(h,H,F),w=new BD({ts:q,zone:F,o:N,loc:X});if(J.weekday&&A&&D.weekday!==w.weekday)return BD.invalid("mismatched weekday",`you can't specify both a weekday of ${J.weekday} and a date of ${w.toISO()}`);if(!w.isValid)return BD.invalid(w.invalid);return w}static fromISO(D,$={}){let[F,X]=vo(D);return b3(F,X,$,"ISO 8601",D)}static fromRFC2822(D,$={}){let[F,X]=xo(D);return b3(F,X,$,"RFC 2822",D)}static fromHTTP(D,$={}){let[F,X]=yo(D);return b3(F,X,$,"HTTP",$)}static fromFormat(D,$,F={}){if(GD(D)||GD($))throw new T0("fromFormat requires an input string and a format");let{locale:X=null,numberingSystem:J=null}=F,G=zD.fromOpts({locale:X,numberingSystem:J,defaultToEN:!0}),[Y,B,H,U]=Vt(G,D,$);if(U)return BD.invalid(U);else return b3(Y,B,F,`format ${$}`,D,H)}static fromString(D,$,F={}){return BD.fromFormat(D,$,F)}static fromSQL(D,$={}){let[F,X]=no(D);return b3(F,X,$,"SQL",D)}static invalid(D,$=null){if(!D)throw new T0("need to specify a reason the DateTime is invalid");let F=D instanceof N2?D:new N2(D,$);if(sD.throwOnInvalid)throw new CP(F);else return new BD({invalid:F})}static isDateTime(D){return D&&D.isLuxonDateTime||!1}static parseFormatForOpts(D,$={}){let F=ZL(D,zD.fromObject($));return!F?null:F.map((X)=>X?X.val:null).join("")}static expandFormat(D,$={}){return CL(g0.parseFormat(D),zD.fromObject($)).map((X)=>X.val).join("")}static resetCache(){U4=void 0,sW.clear()}get(D){return this[D]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?hW(this).weekYear:NaN}get weekNumber(){return this.isValid?hW(this).weekNumber:NaN}get weekday(){return this.isValid?hW(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?vW(this).weekday:NaN}get localWeekNumber(){return this.isValid?vW(this).weekNumber:NaN}get localWeekYear(){return this.isValid?vW(this).weekYear:NaN}get ordinal(){return this.isValid?bW(this.c).ordinal:NaN}get monthShort(){return this.isValid?f3.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?f3.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?f3.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?f3.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){if(this.isValid)return this.zone.offsetName(this.ts,{format:"short",locale:this.locale});else return null}get offsetNameLong(){if(this.isValid)return this.zone.offsetName(this.ts,{format:"long",locale:this.locale});else return null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){if(this.isOffsetFixed)return!1;else return this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];let D=86400000,$=60000,F=NX(this.c),X=this.zone.offset(F-D),J=this.zone.offset(F+D),G=this.zone.offset(F-X*$),Y=this.zone.offset(F-J*$);if(G===Y)return[this];let B=F-G*$,H=F-Y*$,U=AX(B,G),Q=AX(H,Y);if(U.hour===Q.hour&&U.minute===Q.minute&&U.second===Q.second&&U.millisecond===Q.millisecond)return[W6(this,{ts:B}),W6(this,{ts:H})];return[this]}get isInLeapYear(){return K4(this.year)}get daysInMonth(){return OX(this.year,this.month)}get daysInYear(){return this.isValid?g3(this.year):NaN}get weeksInWeekYear(){return this.isValid?V4(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?V4(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(D={}){let{locale:$,numberingSystem:F,calendar:X}=g0.create(this.loc.clone(D),D).resolvedOptions(this);return{locale:$,numberingSystem:F,outputCalendar:X}}toUTC(D=0,$={}){return this.setZone(h0.instance(D),$)}toLocal(){return this.setZone(sD.defaultZone)}setZone(D,{keepLocalTime:$=!1,keepCalendarTime:F=!1}={}){if(D=O8(D,sD.defaultZone),D.equals(this.zone))return this;else if(!D.isValid)return BD.invalid(W4(D));else{let X=this.ts;if($||F){let J=D.offset(this.ts),G=this.toObject();[X]=_X(G,J,D)}return W6(this,{ts:X,zone:D})}}reconfigure({locale:D,numberingSystem:$,outputCalendar:F}={}){let X=this.loc.clone({locale:D,numberingSystem:$,outputCalendar:F});return W6(this,{loc:X})}setLocale(D){return this.reconfigure({locale:D})}set(D){if(!this.isValid)return this;let $=EX(D,VP),{minDaysInFirstWeek:F,startOfWeek:X}=tN($,this.loc),J=!GD($.weekYear)||!GD($.weekNumber)||!GD($.weekday),G=!GD($.ordinal),Y=!GD($.year),B=!GD($.month)||!GD($.day),H=Y||B,U=$.weekYear||$.weekNumber;if((H||G)&&U)throw new U6("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(B&&G)throw new U6("Can't mix ordinal dates with month/day");let Q;if(J)Q=aN({...RX(this.c,F,X),...$},F,X);else if(!GD($.ordinal))Q=oN({...bW(this.c),...$});else if(Q={...this.toObject(),...$},GD($.day))Q.day=Math.min(OX(Q.year,Q.month),Q.day);let[V,A]=_X(Q,this.o,this.zone);return W6(this,{ts:V,o:A})}plus(D){if(!this.isValid)return this;let $=OD.fromDurationLike(D);return W6(this,UP(this,$))}minus(D){if(!this.isValid)return this;let $=OD.fromDurationLike(D).negate();return W6(this,UP(this,$))}startOf(D,{useLocaleWeeks:$=!1}={}){if(!this.isValid)return this;let F={},X=OD.normalizeUnit(D);switch(X){case"years":F.month=1;case"quarters":case"months":F.day=1;case"weeks":case"days":F.hour=0;case"hours":F.minute=0;case"minutes":F.second=0;case"seconds":F.millisecond=0;break}if(X==="weeks")if($){let J=this.loc.getStartOfWeek(),{weekday:G}=this;if(G<J)F.weekNumber=this.weekNumber-1;F.weekday=J}else F.weekday=1;if(X==="quarters"){let J=Math.ceil(this.month/3);F.month=(J-1)*3+1}return this.set(F)}endOf(D,$){return this.isValid?this.plus({[D]:1}).startOf(D,$).minus(1):this}toFormat(D,$={}){return this.isValid?g0.create(this.loc.redefaultToEN($)).formatDateTimeFromString(this,D):gW}toLocaleString(D=ZX,$={}){return this.isValid?g0.create(this.loc.clone($),D).formatDateTime(this):gW}toLocaleParts(D={}){return this.isValid?g0.create(this.loc.clone(D),D).formatDateTimeParts(this):[]}toISO({format:D="extended",suppressSeconds:$=!1,suppressMilliseconds:F=!1,includeOffset:X=!0,extendedZone:J=!1,precision:G="milliseconds"}={}){if(!this.isValid)return null;G=MX(G);let Y=D==="extended",B=xW(this,Y,G);if(CX.indexOf(G)>=3)B+="T";return B+=QP(this,Y,$,F,X,J,G),B}toISODate({format:D="extended",precision:$="day"}={}){if(!this.isValid)return null;return xW(this,D==="extended",MX($))}toISOWeekDate(){return KX(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:D=!1,suppressSeconds:$=!1,includeOffset:F=!0,includePrefix:X=!1,extendedZone:J=!1,format:G="extended",precision:Y="milliseconds"}={}){if(!this.isValid)return null;return Y=MX(Y),(X&&CX.indexOf(Y)>=3?"T":"")+QP(this,G==="extended",$,D,F,J,Y)}toRFC2822(){return KX(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return KX(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){if(!this.isValid)return null;return xW(this,!0)}toSQLTime({includeOffset:D=!0,includeZone:$=!1,includeOffsetSpace:F=!0}={}){let X="HH:mm:ss.SSS";if($||D){if(F)X+=" ";if($)X+="z";else if(D)X+="ZZ"}return KX(this,X,!0)}toSQL(D={}){if(!this.isValid)return null;return`${this.toSQLDate()} ${this.toSQLTime(D)}`}toString(){return this.isValid?this.toISO():gW}[Symbol.for("nodejs.util.inspect.custom")](){if(this.isValid)return`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`;else return`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1000:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1000):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(D={}){if(!this.isValid)return{};let $={...this.c};if(D.includeConfig)$.outputCalendar=this.outputCalendar,$.numberingSystem=this.loc.numberingSystem,$.locale=this.loc.locale;return $}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(D,$="milliseconds",F={}){if(!this.isValid||!D.isValid)return OD.invalid("created by diffing an invalid DateTime");let X={locale:this.locale,numberingSystem:this.numberingSystem,...F},J=sa($).map(OD.normalizeUnit),G=D.valueOf()>this.valueOf(),Y=G?this:D,B=G?D:this,H=eo(Y,B,J,X);return G?H.negate():H}diffNow(D="milliseconds",$={}){return this.diff(BD.now(),D,$)}until(D){return this.isValid?D0.fromDateTimes(this,D):this}hasSame(D,$,F){if(!this.isValid)return!1;let X=D.valueOf(),J=this.setZone(D.zone,{keepLocalTime:!0});return J.startOf($,F)<=X&&X<=J.endOf($,F)}equals(D){return this.isValid&&D.isValid&&this.valueOf()===D.valueOf()&&this.zone.equals(D.zone)&&this.loc.equals(D.loc)}toRelative(D={}){if(!this.isValid)return null;let $=D.base||BD.fromObject({},{zone:this.zone}),F=D.padding?this<$?-D.padding:D.padding:0,X=["years","months","days","hours","minutes","seconds"],J=D.unit;if(Array.isArray(D.unit))X=D.unit,J=void 0;return KP($,this.plus(F),{...D,numeric:"always",units:X,unit:J})}toRelativeCalendar(D={}){if(!this.isValid)return null;return KP(D.base||BD.fromObject({},{zone:this.zone}),this,{...D,numeric:"auto",units:["years","months","days"],calendary:!0})}static min(...D){if(!D.every(BD.isDateTime))throw new T0("min requires all arguments be DateTimes");return eN(D,($)=>$.valueOf(),Math.min)}static max(...D){if(!D.every(BD.isDateTime))throw new T0("max requires all arguments be DateTimes");return eN(D,($)=>$.valueOf(),Math.max)}static fromFormatExplain(D,$,F={}){let{locale:X=null,numberingSystem:J=null}=F,G=zD.fromOpts({locale:X,numberingSystem:J,defaultToEN:!0});return ML(G,D,$)}static fromStringExplain(D,$,F={}){return BD.fromFormatExplain(D,$,F)}static buildFormatParser(D,$={}){let{locale:F=null,numberingSystem:X=null}=$,J=zD.fromOpts({locale:F,numberingSystem:X,defaultToEN:!0});return new YU(J,D)}static fromFormatParser(D,$,F={}){if(GD(D)||GD($))throw new T0("fromFormatParser requires an input string and a format parser");let{locale:X=null,numberingSystem:J=null}=F,G=zD.fromOpts({locale:X,numberingSystem:J,defaultToEN:!0});if(!G.equals($.locale))throw new T0(`fromFormatParser called with a locale of ${G}, but the format parser was created for ${$.locale}`);let{result:Y,zone:B,specificOffset:H,invalidReason:U}=$.explainFromTokens(D);if(U)return BD.invalid(U);else return b3(Y,B,F,`format ${$.format}`,D,H)}static get DATE_SHORT(){return ZX}static get DATE_MED(){return RP}static get DATE_MED_WITH_WEEKDAY(){return qa}static get DATE_FULL(){return OP}static get DATE_HUGE(){return EP}static get TIME_SIMPLE(){return jP}static get TIME_WITH_SECONDS(){return NP}static get TIME_WITH_SHORT_OFFSET(){return PP}static get TIME_WITH_LONG_OFFSET(){return LP}static get TIME_24_SIMPLE(){return qP}static get TIME_24_WITH_SECONDS(){return zP}static get TIME_24_WITH_SHORT_OFFSET(){return IP}static get TIME_24_WITH_LONG_OFFSET(){return SP}static get DATETIME_SHORT(){return TP}static get DATETIME_SHORT_WITH_SECONDS(){return wP}static get DATETIME_MED(){return kP}static get DATETIME_MED_WITH_SECONDS(){return bP}static get DATETIME_MED_WITH_WEEKDAY(){return za}static get DATETIME_FULL(){return fP}static get DATETIME_FULL_WITH_SECONDS(){return gP}static get DATETIME_HUGE(){return hP}static get DATETIME_HUGE_WITH_SECONDS(){return vP}}function B4(D){if(BD.isDateTime(D))return D;else if(D&&D.valueOf&&E8(D.valueOf()))return BD.fromJSDate(D);else if(D&&typeof D==="object")return BD.fromObject(D);else throw new T0(`Unknown datetime argument: ${D}, of type ${typeof D}`)}var Zt="3.7.2";EL.DateTime=BD;EL.Duration=OD;EL.FixedOffsetZone=h0;EL.IANAZone=C1;EL.Info=f3;EL.Interval=D0;EL.InvalidZone=oW;EL.Settings=sD;EL.SystemZone=A4;EL.VERSION=Zt;EL.Zone=V6});var zX=u((NL)=>{Object.defineProperty(NL,"__esModule",{value:!0});NL.CronDate=NL.DAYS_IN_MONTH=NL.DateMathOp=NL.TimeUnit=void 0;var A6=jL(),v0;(function(D){D.Second="Second",D.Minute="Minute",D.Hour="Hour",D.Day="Day",D.Month="Month",D.Year="Year"})(v0||(NL.TimeUnit=v0={}));var qX;(function(D){D.Add="Add",D.Subtract="Subtract"})(qX||(NL.DateMathOp=qX={}));NL.DAYS_IN_MONTH=Object.freeze([31,29,31,30,31,30,31,31,30,31,30,31]);class c3{#D;#$=null;#X=null;#G={add:{[v0.Year]:this.addYear.bind(this),[v0.Month]:this.addMonth.bind(this),[v0.Day]:this.addDay.bind(this),[v0.Hour]:this.addHour.bind(this),[v0.Minute]:this.addMinute.bind(this),[v0.Second]:this.addSecond.bind(this)},subtract:{[v0.Year]:this.subtractYear.bind(this),[v0.Month]:this.subtractMonth.bind(this),[v0.Day]:this.subtractDay.bind(this),[v0.Hour]:this.subtractHour.bind(this),[v0.Minute]:this.subtractMinute.bind(this),[v0.Second]:this.subtractSecond.bind(this)}};constructor(D,$){let F={zone:$};if(!D)this.#D=A6.DateTime.local();else if(D instanceof c3)this.#D=D.#D,this.#$=D.#$,this.#X=D.#X;else if(D instanceof Date)this.#D=A6.DateTime.fromJSDate(D,F);else if(typeof D==="number")this.#D=A6.DateTime.fromMillis(D,F);else this.#D=A6.DateTime.fromISO(D,F),this.#D.isValid||(this.#D=A6.DateTime.fromRFC2822(D,F)),this.#D.isValid||(this.#D=A6.DateTime.fromSQL(D,F)),this.#D.isValid||(this.#D=A6.DateTime.fromFormat(D,"EEE, d MMM yyyy HH:mm:ss",F));if(!this.#D.isValid)throw Error(`CronDate: unhandled timestamp: ${D}`);if($&&$!==this.#D.zoneName)this.#D=this.#D.setZone($)}static#J(D){return D%4===0&&D%100!==0||D%400===0}get dstStart(){return this.#$}set dstStart(D){this.#$=D}get dstEnd(){return this.#X}set dstEnd(D){this.#X=D}addYear(){this.#D=this.#D.plus({years:1})}addMonth(){this.#D=this.#D.plus({months:1}).startOf("month")}addDay(){this.#D=this.#D.plus({days:1}).startOf("day")}addHour(){this.#D=this.#D.plus({hours:1}).startOf("hour")}addMinute(){this.#D=this.#D.plus({minutes:1}).startOf("minute")}addSecond(){this.#D=this.#D.plus({seconds:1})}subtractYear(){this.#D=this.#D.minus({years:1})}subtractMonth(){this.#D=this.#D.minus({months:1}).endOf("month").startOf("second")}subtractDay(){this.#D=this.#D.minus({days:1}).endOf("day").startOf("second")}subtractHour(){this.#D=this.#D.minus({hours:1}).endOf("hour").startOf("second")}subtractMinute(){this.#D=this.#D.minus({minutes:1}).endOf("minute").startOf("second")}subtractSecond(){this.#D=this.#D.minus({seconds:1})}addUnit(D){this.#G.add[D]()}subtractUnit(D){this.#G.subtract[D]()}invokeDateOperation(D,$){if(D===qX.Add){this.addUnit($);return}if(D===qX.Subtract){this.subtractUnit($);return}throw Error(`Invalid verb: ${D}`)}getDate(){return this.#D.day}getFullYear(){return this.#D.year}getDay(){let D=this.#D.weekday;return D===7?0:D}getMonth(){return this.#D.month-1}getHours(){return this.#D.hour}getMinutes(){return this.#D.minute}getSeconds(){return this.#D.second}getMilliseconds(){return this.#D.millisecond}getUTCOffset(){return this.#D.offset}setStartOfDay(){this.#D=this.#D.startOf("day")}setEndOfDay(){this.#D=this.#D.endOf("day")}getTime(){return this.#D.valueOf()}getUTCDate(){return this.#F().day}getUTCFullYear(){return this.#F().year}getUTCDay(){let D=this.#F().weekday;return D===7?0:D}getUTCMonth(){return this.#F().month-1}getUTCHours(){return this.#F().hour}getUTCMinutes(){return this.#F().minute}getUTCSeconds(){return this.#F().second}toISOString(){return this.#D.toUTC().toISO()}toJSON(){return this.#D.toJSON()}setDate(D){this.#D=this.#D.set({day:D})}setFullYear(D){this.#D=this.#D.set({year:D})}setDay(D){this.#D=this.#D.set({weekday:D})}setMonth(D){this.#D=this.#D.set({month:D+1})}setHours(D){this.#D=this.#D.set({hour:D})}setMinutes(D){this.#D=this.#D.set({minute:D})}setSeconds(D){this.#D=this.#D.set({second:D})}setMilliseconds(D){this.#D=this.#D.set({millisecond:D})}toString(){return this.toDate().toString()}toDate(){return this.#D.toJSDate()}isLastDayOfMonth(){let{day:D,month:$}=this.#D;if($===2){let F=c3.#J(this.#D.year);return D===NL.DAYS_IN_MONTH[$-1]-(F?0:1)}return D===NL.DAYS_IN_MONTH[$-1]}isLastWeekdayOfMonth(){let{day:D,month:$}=this.#D,F;if($===2)F=NL.DAYS_IN_MONTH[$-1]-(c3.#J(this.#D.year)?0:1);else F=NL.DAYS_IN_MONTH[$-1];return D>F-7}applyDateOperation(D,$,F){if($===v0.Month||$===v0.Day){this.invokeDateOperation(D,$);return}let X=this.getHours();this.invokeDateOperation(D,$);let J=this.getHours(),G=J-X;if(G===2){if(F!==24)this.dstStart=J}else if(G===0&&this.getMinutes()===0&&this.getSeconds()===0){if(F!==24)this.dstEnd=J}}#F(){return this.#D.toUTC()}}NL.CronDate=c3;NL.default=c3});var IL=u((qL)=>{Object.defineProperty(qL,"__esModule",{value:!0});qL.CronMonth=void 0;var bt=zX(),ft=Z8(),gt=1,ht=12,vt=Object.freeze([]);class LL extends ft.CronField{static get min(){return gt}static get max(){return ht}static get chars(){return vt}static get daysInMonth(){return bt.DAYS_IN_MONTH}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}qL.CronMonth=LL});var kL=u((TL)=>{Object.defineProperty(TL,"__esModule",{value:!0});TL.CronSecond=void 0;var xt=Z8(),yt=0,ut=59,mt=Object.freeze([]);class SL extends xt.CronField{static get min(){return yt}static get max(){return ut}static get chars(){return mt}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}TL.CronSecond=SL});var IX=u((o0)=>{var ct=o0&&o0.__createBinding||(Object.create?function(D,$,F,X){if(X===void 0)X=F;var J=Object.getOwnPropertyDescriptor($,F);if(!J||("get"in J?!$.__esModule:J.writable||J.configurable))J={enumerable:!0,get:function(){return $[F]}};Object.defineProperty(D,X,J)}:function(D,$,F,X){if(X===void 0)X=F;D[X]=$[F]}),N8=o0&&o0.__exportStar||function(D,$){for(var F in D)if(F!=="default"&&!Object.prototype.hasOwnProperty.call($,F))ct($,D,F)};Object.defineProperty(o0,"__esModule",{value:!0});N8(EN(),o0);N8(zN(),o0);N8(wN(),o0);N8(Z8(),o0);N8(gN(),o0);N8(yN(),o0);N8(IL(),o0);N8(kL(),o0)});var BU=u((bL)=>{Object.defineProperty(bL,"__esModule",{value:!0});bL.CronFieldCollection=void 0;var q2=IX();class p3{#D;#$;#X;#G;#J;#F;static from(D,$){return new p3({second:this.resolveField(q2.CronSecond,D.second,$.second),minute:this.resolveField(q2.CronMinute,D.minute,$.minute),hour:this.resolveField(q2.CronHour,D.hour,$.hour),dayOfMonth:this.resolveField(q2.CronDayOfMonth,D.dayOfMonth,$.dayOfMonth),month:this.resolveField(q2.CronMonth,D.month,$.month),dayOfWeek:this.resolveField(q2.CronDayOfWeek,D.dayOfWeek,$.dayOfWeek)})}static resolveField(D,$,F){if(!F)return $;if(F instanceof q2.CronField)return F;return new D(F)}constructor({second:D,minute:$,hour:F,dayOfMonth:X,month:J,dayOfWeek:G}){if(!D)throw Error("Validation error, Field second is missing");if(!$)throw Error("Validation error, Field minute is missing");if(!F)throw Error("Validation error, Field hour is missing");if(!X)throw Error("Validation error, Field dayOfMonth is missing");if(!J)throw Error("Validation error, Field month is missing");if(!G)throw Error("Validation error, Field dayOfWeek is missing");if(J.values.length===1&&!X.hasLastChar){if(!(parseInt(X.values[0],10)<=q2.CronMonth.daysInMonth[J.values[0]-1]))throw Error("Invalid explicit day of month definition")}this.#D=D,this.#$=$,this.#X=F,this.#J=J,this.#F=G,this.#G=X}get second(){return this.#D}get minute(){return this.#$}get hour(){return this.#X}get dayOfMonth(){return this.#G}get month(){return this.#J}get dayOfWeek(){return this.#F}static compactField(D){if(D.length===0)return[];let $=[],F=void 0;if(D.forEach((X,J,G)=>{if(F===void 0){F={start:X,count:1};return}let Y=G[J-1]||F.start,B=G[J+1];if(X==="L"||X==="W"){$.push(F),$.push({start:X,count:1}),F=void 0;return}if(F.step===void 0&&B!==void 0){let H=X-Y,U=B-X;if(H<=U){F={...F,count:2,end:X,step:H};return}F.step=1}if(X-(F.end??0)===F.step)F.count++,F.end=X;else{if(F.count===1)$.push({start:F.start,count:1});else if(F.count===2)$.push({start:F.start,count:1}),$.push({start:F.end??Y,count:1});else $.push(F);F={start:X,count:1}}}),F)$.push(F);return $}static#W(D,$,F){let X=$.step;if(!X)return null;if(X===1&&$.start===D.min&&$.end&&$.end>=F)return D.hasQuestionMarkChar?"?":"*";if(X!==1&&$.start===D.min&&$.end&&$.end>=F-X+1)return`*/${X}`;return null}static#H(D,$){let F=D.step;if(F===1)return`${D.start}-${D.end}`;let X=D.start===0?D.count-1:D.count;if(!F)throw Error("Unexpected range step");if(!D.end)throw Error("Unexpected range end");if(F*X>D.end){let J=(Y,B)=>{if(typeof D.start!=="number")throw Error("Unexpected range start");return B%F===0?D.start+B:null};if(typeof D.start!=="number")throw Error("Unexpected range start");let G={length:D.end-D.start+1};return Array.from(G,J).filter((Y)=>Y!==null).join(",")}return D.end===$-F+1?`${D.start}/${F}`:`${D.start}-${D.end}/${F}`}stringifyField(D){let{max:$,values:F}=D;if(D instanceof q2.CronDayOfWeek){$=6;let J=this.#F.values;F=J[J.length-1]===7?J.slice(0,-1):J}if(D instanceof q2.CronDayOfMonth)$=this.#J.values.length===1?q2.CronMonth.daysInMonth[this.#J.values[0]-1]:D.max;let X=p3.compactField(F);if(X.length===1){let J=p3.#W(D,X[0],$);if(J)return J}return X.map((J)=>{let G=J.count===1?J.start.toString():p3.#H(J,$);if(D instanceof q2.CronDayOfWeek&&D.nthDay>0)return`${G}#${D.nthDay}`;return G}).join(",")}stringify(D=!1){let $=[];if(D)$.push(this.stringifyField(this.#D));return $.push(this.stringifyField(this.#$),this.stringifyField(this.#X),this.stringifyField(this.#G),this.stringifyField(this.#J),this.stringifyField(this.#F)),$.join(" ")}serialize(){return{second:this.#D.serialize(),minute:this.#$.serialize(),hour:this.#X.serialize(),dayOfMonth:this.#G.serialize(),month:this.#J.serialize(),dayOfWeek:this.#F.serialize()}}}bL.CronFieldCollection=p3});var WU=u((hL)=>{Object.defineProperty(hL,"__esModule",{value:!0});hL.CronExpression=hL.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE=hL.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE=void 0;var J0=zX();hL.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE="Out of the time span range";hL.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE="Invalid expression, loop limit exceeded";var gL=1e4;class z2{#D;#$;#X;#G;#J;#F;#W=null;#H=!1;constructor(D,$){this.#D=$,this.#$=$.tz,this.#G=$.startDate?new J0.CronDate($.startDate,this.#$):null,this.#J=$.endDate?new J0.CronDate($.endDate,this.#$):null;let F=$.currentDate??$.startDate;if(F){let X=new J0.CronDate(F,this.#$);if(this.#G&&X.getTime()<this.#G.getTime())F=this.#G;else if(this.#J&&X.getTime()>this.#J.getTime())F=this.#J}this.#X=new J0.CronDate(F,this.#$),this.#F=D}get fields(){return this.#F}static fieldsToExpression(D,$){return new z2(D,$||{})}static#B(D,$){return $.some((F)=>F===D)}#Y(D,$){return D[$?D.length-1:0]}#Q(D){let $=`${D.getFullYear()}-${D.getMonth()+1}-${D.getDate()}`;if(this.#W===$)return this.#H;let F=new J0.CronDate(D);F.setStartOfDay();let X=new J0.CronDate(D);return X.setEndOfDay(),this.#W=$,this.#H=F.getUTCOffset()!==X.getUTCOffset(),this.#H}#V(D,$,F){let X=this.#F.second.values,J=D.getSeconds(),G=this.#F.second.findNearestValue(J,F);if(G!==null){D.setSeconds(G);return}D.applyDateOperation($,J0.TimeUnit.Minute,this.#F.hour.values.length),D.setSeconds(this.#Y(X,F))}#U(D,$,F){let X=this.#F.minute.values,J=this.#F.second.values,G=D.getMinutes(),Y=this.#F.minute.findNearestValue(G,F);if(Y!==null){D.setMinutes(Y),D.setSeconds(this.#Y(J,F));return}D.applyDateOperation($,J0.TimeUnit.Hour,this.#F.hour.values.length),D.setMinutes(this.#Y(X,F)),D.setSeconds(this.#Y(J,F))}static#_(D,$){let F=$.isLastWeekdayOfMonth();return D.some((X)=>{let J=parseInt(X.toString().charAt(0),10)%7;if(Number.isNaN(J))throw Error(`Invalid last weekday of the month expression: ${X}`);return $.getDay()===J&&F})}next(){return this.#A()}prev(){return this.#A(!0)}hasNext(){let D=this.#X;try{return this.#A(),!0}catch{return!1}finally{this.#X=D}}hasPrev(){let D=this.#X;try{return this.#A(!0),!0}catch{return!1}finally{this.#X=D}}take(D){let $=[];if(D>=0)for(let F=0;F<D;F++)try{$.push(this.next())}catch{return $}else for(let F=0;F>D;F--)try{$.push(this.prev())}catch{return $}return $}reset(D){this.#X=new J0.CronDate(D||this.#D.currentDate)}stringify(D=!1){return this.#F.stringify(D)}includesDate(D){let{second:$,minute:F,hour:X,month:J}=this.#F,G=new J0.CronDate(D,this.#$);if(!$.values.includes(G.getSeconds())||!F.values.includes(G.getMinutes())||!X.values.includes(G.getHours())||!J.values.includes(G.getMonth()+1))return!1;if(!this.#K(G))return!1;if(this.#F.dayOfWeek.nthDay>0){if(Math.ceil(G.getDate()/7)!==this.#F.dayOfWeek.nthDay)return!1}return!0}toString(){return this.#D.expression||this.stringify(!0)}#K(D){let $=this.#F.dayOfMonth.isWildcard,F=!$,X=this.#F.dayOfWeek.isWildcard,J=!X,G=z2.#B(D.getDate(),this.#F.dayOfMonth.values)||this.#F.dayOfMonth.hasLastChar&&D.isLastDayOfMonth(),Y=z2.#B(D.getDay(),this.#F.dayOfWeek.values)||this.#F.dayOfWeek.hasLastChar&&z2.#_(this.#F.dayOfWeek.values,D);if(F&&J&&(G||Y))return!0;if(G&&!J)return!0;if($&&!X&&Y)return!0;return!1}#C(D,$,F){let X=this.#F.hour.values,J=X,G=D.getHours(),Y=z2.#B(G,X),B=D.dstStart===G,H=D.dstEnd===G;if(B){if(z2.#B(G-1,X))return!0;return D.invokeDateOperation($,J0.TimeUnit.Hour),!1}if(H&&!F)return D.dstEnd=null,D.applyDateOperation(J0.DateMathOp.Add,J0.TimeUnit.Hour,J.length),!1;if(Y)return!0;D.dstStart=null;let U=this.#F.hour.findNearestValue(G,F);if(U===null)return D.applyDateOperation($,J0.TimeUnit.Day,J.length),!1;if(this.#Q(D)){let Q=F?G-U:U-G;for(let V=0;V<Q;V++)D.applyDateOperation($,J0.TimeUnit.Hour,J.length)}else D.setHours(U);return D.setMinutes(this.#Y(this.#F.minute.values,F)),D.setSeconds(this.#Y(this.#F.second.values,F)),!1}#M(D){if(!this.#G&&!this.#J)return;let $=D.getTime();if(this.#G&&$<this.#G.getTime())throw Error(hL.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE);if(this.#J&&$>this.#J.getTime())throw Error(hL.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE)}#A(D=!1){let $=D?J0.DateMathOp.Subtract:J0.DateMathOp.Add,F=new J0.CronDate(this.#X),X=F.getTime(),J=0;while(++J<gL){if(this.#M(F),!this.#K(F)){F.applyDateOperation($,J0.TimeUnit.Day,this.#F.hour.values.length);continue}if(!(this.#F.dayOfWeek.nthDay<=0||Math.ceil(F.getDate()/7)===this.#F.dayOfWeek.nthDay)){F.applyDateOperation($,J0.TimeUnit.Day,this.#F.hour.values.length);continue}if(!z2.#B(F.getMonth()+1,this.#F.month.values)){F.applyDateOperation($,J0.TimeUnit.Month,this.#F.hour.values.length);continue}if(!this.#C(F,$,D))continue;if(!z2.#B(F.getMinutes(),this.#F.minute.values)){this.#U(F,$,D);continue}if(!z2.#B(F.getSeconds(),this.#F.second.values)){this.#V(F,$,D);continue}if(X===F.getTime()){if($==="Add"||F.getMilliseconds()===0)F.applyDateOperation($,J0.TimeUnit.Second,this.#F.hour.values.length);continue}break}if(J>gL)throw Error(hL.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE);if(F.getMilliseconds()!==0)F.setMilliseconds(0);return this.#X=F,F}[Symbol.iterator](){return{next:()=>{return{value:this.#A(),done:!this.hasNext()}}}}}hL.CronExpression=z2;hL.default=z2});var uL=u((yL)=>{Object.defineProperty(yL,"__esModule",{value:!0});yL.seededRandom=it;function dt(D){let $=2166136261;for(let F=0;F<D.length;F++)$^=D.charCodeAt(F),$=Math.imul($,16777619);return()=>$>>>0}function lt(D){return()=>{let $=D+=1831565813;return $=Math.imul($^$>>>15,$|1),$^=$+Math.imul($^$>>>7,$|61),(($^$>>>14)>>>0)/4294967296}}function it(D){let $=D?dt(D)():Math.floor(Math.random()*10000000000);return lt($)}});var SX=u((mL)=>{Object.defineProperty(mL,"__esModule",{value:!0});mL.CronExpressionParser=mL.DayOfWeek=mL.Months=mL.CronUnit=mL.PredefinedExpressions=void 0;var rt=BU(),st=WU(),at=uL(),I2=IX(),UU;(function(D){D["@yearly"]="0 0 0 1 1 *",D["@annually"]="0 0 0 1 1 *",D["@monthly"]="0 0 0 1 * *",D["@weekly"]="0 0 0 * * 0",D["@daily"]="0 0 0 * * *",D["@hourly"]="0 0 * * * *",D["@minutely"]="0 * * * * *",D["@secondly"]="* * * * * *",D["@weekdays"]="0 0 0 * * 1-5",D["@weekends"]="0 0 0 * * 0,6"})(UU||(mL.PredefinedExpressions=UU={}));var S2;(function(D){D.Second="Second",D.Minute="Minute",D.Hour="Hour",D.DayOfMonth="DayOfMonth",D.Month="Month",D.DayOfWeek="DayOfWeek"})(S2||(mL.CronUnit=S2={}));var QU;(function(D){D[D.jan=1]="jan",D[D.feb=2]="feb",D[D.mar=3]="mar",D[D.apr=4]="apr",D[D.may=5]="may",D[D.jun=6]="jun",D[D.jul=7]="jul",D[D.aug=8]="aug",D[D.sep=9]="sep",D[D.oct=10]="oct",D[D.nov=11]="nov",D[D.dec=12]="dec"})(QU||(mL.Months=QU={}));var VU;(function(D){D[D.sun=0]="sun",D[D.mon=1]="mon",D[D.tue=2]="tue",D[D.wed=3]="wed",D[D.thu=4]="thu",D[D.fri=5]="fri",D[D.sat=6]="sat"})(VU||(mL.DayOfWeek=VU={}));class t0{static parse(D,$={}){let{strict:F=!1,hashSeed:X}=$,J=(0,at.seededRandom)(X);D=UU[D]||D;let G=t0.#D(D,F);if(!(G.dayOfMonth==="*"||G.dayOfWeek==="*"||!F))throw Error("Cannot use both dayOfMonth and dayOfWeek together in strict mode!");let Y=t0.#$(S2.Second,G.second,I2.CronSecond.constraints,J),B=t0.#$(S2.Minute,G.minute,I2.CronMinute.constraints,J),H=t0.#$(S2.Hour,G.hour,I2.CronHour.constraints,J),U=t0.#$(S2.Month,G.month,I2.CronMonth.constraints,J),Q=t0.#$(S2.DayOfMonth,G.dayOfMonth,I2.CronDayOfMonth.constraints,J),{dayOfWeek:V,nthDayOfWeek:A}=t0.#Q(G.dayOfWeek),K=t0.#$(S2.DayOfWeek,V,I2.CronDayOfWeek.constraints,J),M=new rt.CronFieldCollection({second:new I2.CronSecond(Y,{rawValue:G.second}),minute:new I2.CronMinute(B,{rawValue:G.minute}),hour:new I2.CronHour(H,{rawValue:G.hour}),dayOfMonth:new I2.CronDayOfMonth(Q,{rawValue:G.dayOfMonth}),month:new I2.CronMonth(U,{rawValue:G.month}),dayOfWeek:new I2.CronDayOfWeek(K,{rawValue:G.dayOfWeek,nthDayOfWeek:A})});return new st.CronExpression(M,{...$,expression:D})}static#D(D,$){if($&&!D.length)throw Error("Invalid cron expression");D=D||"0 * * * * *";let F=D.trim().split(/\s+/);if($&&F.length<6)throw Error("Invalid cron expression, expected 6 fields");if(F.length>6)throw Error("Invalid cron expression, too many fields");let X=["*","*","*","*","*","0"];if(F.length<X.length)F.unshift(...X.slice(F.length));let[J,G,Y,B,H,U]=F;return{second:J,minute:G,hour:Y,dayOfMonth:B,month:H,dayOfWeek:U}}static#$(D,$,F,X){if(D===S2.Month||D===S2.DayOfWeek)$=$.replace(/[a-z]{3}/gi,(J)=>{J=J.toLowerCase();let G=QU[J]||VU[J];if(G===void 0)throw Error(`Validation error, cannot resolve alias "${J}"`);return G.toString()});if(!F.validChars.test($))throw Error(`Invalid characters, got value: ${$}`);return $=this.#X($,F),$=this.#G($,F,X),this.#J(D,$,F)}static#X(D,$){return D.replace(/[*?]/g,$.min+"-"+$.max)}static#G(D,$,F){let X=F();return D.replace(/H(?:\((\d+)-(\d+)\))?(?:\/(\d+))?/g,(J,G,Y,B)=>{if(G&&Y&&B){let H=parseInt(G,10),U=parseInt(Y,10),Q=parseInt(B,10);if(H>U)throw Error(`Invalid range: ${H}-${U}, min > max`);if(Q<=0)throw Error(`Invalid step: ${Q}, must be positive`);let V=Math.max(H,$.min),A=Math.floor(X*Q),K=[];for(let M=Math.floor(V/Q)*Q+A;M<=U;M+=Q)if(M>=V)K.push(M);return K.join(",")}else if(G&&Y){let H=parseInt(G,10),U=parseInt(Y,10);if(H>U)throw Error(`Invalid range: ${H}-${U}, min > max`);return String(Math.floor(X*(U-H+1))+H)}else if(B){let H=parseInt(B,10);if(H<=0)throw Error(`Invalid step: ${H}, must be positive`);let U=Math.floor(X*H),Q=[];for(let V=Math.floor($.min/H)*H+U;V<=$.max;V+=H)if(V>=$.min)Q.push(V);return Q.join(",")}else return String(Math.floor(X*($.max-$.min+1)+$.min))})}static#J(D,$,F){let X=[];function J(Y,B){if(Array.isArray(Y))X.push(...Y);else if(t0.#V(B,Y))X.push(Y);else{let H=parseInt(Y.toString(),10);if(!(H>=B.min&&H<=B.max))throw Error(`Constraint error, got value ${Y} expected range ${B.min}-${B.max}`);X.push(D===S2.DayOfWeek?H%7:Y)}}return $.split(",").forEach((Y)=>{if(!(Y.length>0))throw Error("Invalid list value format");J(t0.#F(D,Y,F),F)}),X}static#F(D,$,F){let X=$.split("/");if(X.length>2)throw Error(`Invalid repeat: ${$}`);if(X.length===2){if(!isNaN(parseInt(X[0],10)))X[0]=`${X[0]}-${F.max}`;return t0.#Y(D,X[0],parseInt(X[1],10),F)}return t0.#Y(D,$,1,F)}static#W(D,$,F){if(!(!isNaN(D)&&!isNaN($)&&D>=F.min&&$<=F.max))throw Error(`Constraint error, got range ${D}-${$} expected range ${F.min}-${F.max}`);if(D>$)throw Error(`Invalid range: ${D}-${$}, min(${D}) > max(${$})`)}static#H(D){if(!(!isNaN(D)&&D>0))throw Error(`Constraint error, cannot repeat at every ${D} time.`)}static#B(D,$,F,X){let J=[];if(D===S2.DayOfWeek&&F%7===0)J.push(0);for(let G=$;G<=F;G+=X)if(J.indexOf(G)===-1)J.push(G);return J}static#Y(D,$,F,X){let J=$.split("-");if(J.length<=1)return isNaN(+$)?$:+$;let[G,Y]=J.map((B)=>parseInt(B,10));return this.#W(G,Y,X),this.#H(F),this.#B(D,G,Y,F)}static#Q(D){let $=D.split("#");if($.length<=1)return{dayOfWeek:$[0]};let F=+$[$.length-1],X=D.match(/([,-/])/);if(X!==null)throw Error(`Constraint error, invalid dayOfWeek \`#\` and \`${X?.[0]}\` special characters are incompatible`);if(!($.length<=2&&!isNaN(F)&&F>=1&&F<=5))throw Error("Constraint error, invalid dayOfWeek occurrence number (#)");return{dayOfWeek:$[0],nthDayOfWeek:F}}static#V(D,$){return D.chars.some((F)=>$.toString().includes(F))}}mL.CronExpressionParser=t0});var pL=u((M1)=>{var $e=M1&&M1.__createBinding||(Object.create?function(D,$,F,X){if(X===void 0)X=F;var J=Object.getOwnPropertyDescriptor($,F);if(!J||("get"in J?!$.__esModule:J.writable||J.configurable))J={enumerable:!0,get:function(){return $[F]}};Object.defineProperty(D,X,J)}:function(D,$,F,X){if(X===void 0)X=F;D[X]=$[F]}),Fe=M1&&M1.__setModuleDefault||(Object.create?function(D,$){Object.defineProperty(D,"default",{enumerable:!0,value:$})}:function(D,$){D.default=$}),Xe=M1&&M1.__importStar||function(){var D=function($){return D=Object.getOwnPropertyNames||function(F){var X=[];for(var J in F)if(Object.prototype.hasOwnProperty.call(F,J))X[X.length]=J;return X},D($)};return function($){if($&&$.__esModule)return $;var F={};if($!=null){for(var X=D($),J=0;J<X.length;J++)if(X[J]!=="default")$e(F,$,X[J])}return Fe(F,$),F}}();Object.defineProperty(M1,"__esModule",{value:!0});M1.CronFileParser=void 0;var Je=SX();class Z4{static async parseFile(D){let{readFile:$}=await Promise.resolve().then(()=>Xe(R1("fs/promises"))),F=await $(D,"utf8");return Z4.#D(F)}static parseFileSync(D){let{readFileSync:$}=R1("fs"),F=$(D,"utf8");return Z4.#D(F)}static#D(D){let $=D.split(`
1675
- `),F={variables:{},expressions:[],errors:{}};for(let X of $){let J=X.trim();if(J.length===0||J.startsWith("#"))continue;let G=J.match(/^(.*)=(.*)$/);if(G){let[,Y,B]=G;F.variables[Y]=B.replace(/["']/g,"");continue}try{let Y=Z4.#$(J);F.expressions.push(Y.interval)}catch(Y){F.errors[J]=Y}}return F}static#$(D){let $=D.split(" ");return{interval:Je.CronExpressionParser.parse($.slice(0,5).join(" ")),command:$.slice(5,$.length)}}}M1.CronFileParser=Z4});var dL=u((N0)=>{var Ge=N0&&N0.__createBinding||(Object.create?function(D,$,F,X){if(X===void 0)X=F;var J=Object.getOwnPropertyDescriptor($,F);if(!J||("get"in J?!$.__esModule:J.writable||J.configurable))J={enumerable:!0,get:function(){return $[F]}};Object.defineProperty(D,X,J)}:function(D,$,F,X){if(X===void 0)X=F;D[X]=$[F]}),Ye=N0&&N0.__exportStar||function(D,$){for(var F in D)if(F!=="default"&&!Object.prototype.hasOwnProperty.call($,F))Ge($,D,F)};Object.defineProperty(N0,"__esModule",{value:!0});N0.CronFileParser=N0.CronExpressionParser=N0.CronExpression=N0.CronFieldCollection=N0.CronDate=void 0;var Be=SX(),He=zX();Object.defineProperty(N0,"CronDate",{enumerable:!0,get:function(){return He.CronDate}});var We=BU();Object.defineProperty(N0,"CronFieldCollection",{enumerable:!0,get:function(){return We.CronFieldCollection}});var Ue=WU();Object.defineProperty(N0,"CronExpression",{enumerable:!0,get:function(){return Ue.CronExpression}});var Qe=SX();Object.defineProperty(N0,"CronExpressionParser",{enumerable:!0,get:function(){return Qe.CronExpressionParser}});var Ve=pL();Object.defineProperty(N0,"CronFileParser",{enumerable:!0,get:function(){return Ve.CronFileParser}});Ye(IX(),N0);N0.default=Be.CronExpressionParser});class R4{deps;handle=null;ticking=!1;constructor(D){this.deps=D}start(D=Ae){if(this.handle!==null)return;this.handle=setInterval(()=>{this.tick().catch(($)=>_.warn(`[cron ${this.deps.workerId}] tick failed: ${String($)}`))},D)}stop(){if(this.handle===null)return;clearInterval(this.handle),this.handle=null}async addJob(D){let $=TX(D.expression,new Date),F=crypto.randomUUID(),X=new Date().toISOString(),J=D.enabled??!0,G=D.accountId??Ke;if(G.length===0)throw Error("cron job accountId \u4E0D\u80FD\u4E3A\u7A7A\u5B57\u7B26\u4E32");let Y={id:F,expression:D.expression,prompt:D.prompt,channel:D.channel,chatId:D.chatId,accountId:G,enabled:J,lastRunAt:null,nextRunAt:J?$.toISOString():null,createdAt:X,updatedAt:X};b().insert(lD).values(Y).run();let B=b().select().from(lD).where(S(lD.id,F)).get();return wX(B)}async listJobs(){return b().select().from(lD).all().map(wX)}async getJob(D){let $=b().select().from(lD).where(S(lD.id,D)).get();return $?wX($):null}async removeJob(D){let $=b();if(!$.select({id:lD.id}).from(lD).where(S(lD.id,D)).get())return{removed:!1};return $.delete(lD).where(S(lD.id,D)).run(),{removed:!0}}async updateJob(D,$){let F=b().select().from(lD).where(S(lD.id,D)).get();if(!F)return null;let X={updatedAt:new Date().toISOString()},J=!1;if($.expression!==void 0)TX($.expression,new Date),X.expression=$.expression,J=!0;if($.prompt!==void 0)X.prompt=$.prompt;if($.channel!==void 0)X.channel=$.channel;if($.chatId!==void 0)X.chatId=$.chatId;if($.accountId!==void 0){if($.accountId.length===0)throw Error("cron job accountId \u4E0D\u80FD\u4E3A\u7A7A\u5B57\u7B26\u4E32");X.accountId=$.accountId}if($.enabled!==void 0)X.enabled=$.enabled,J=!0;if(J){let Y=$.enabled??F.enabled,B=$.expression??F.expression;X.nextRunAt=Y?TX(B,new Date).toISOString():null}b().update(lD).set(X).where(S(lD.id,D)).run();let G=b().select().from(lD).where(S(lD.id,D)).get();return wX(G)}async tick(D=new Date){if(this.ticking)return;this.ticking=!0;try{let $=D.toISOString(),F=b().select().from(lD).where(TD(S(lD.enabled,!0),VF(lD.nextRunAt,$))).all();for(let X of F)await this.fireJob(X,D)}finally{this.ticking=!1}}async fireJob(D,$){let F={workerId:this.deps.workerId,channel:D.channel,accountId:D.accountId,chatId:D.chatId,text:D.prompt,receivedAt:$.toISOString(),raw:{source:"cron",jobId:D.id}},X=null;try{X=TX(D.expression,$).toISOString()}catch(G){_.warn(`[cron ${D.id}] expression "${D.expression}" \u5F02\u5E38\uFF0C\u505C\u6B62\u540E\u7EED\u89E6\u53D1: ${String(G)}`)}let J=$.toISOString();b().update(lD).set({lastRunAt:J,nextRunAt:X,updatedAt:J}).where(S(lD.id,D.id)).run();try{await this.deps.getOrchestrator().ingest(F)}catch(G){_.warn(`[cron ${D.id}] orchestrator.ingest \u5931\u8D25: ${String(G)}`)}}}function TX(D,$){return lL.CronExpressionParser.parse(D,{currentDate:$}).next().toDate()}function wX(D){return{id:D.id,expression:D.expression,prompt:D.prompt,channel:D.channel,chatId:D.chatId,accountId:D.accountId,enabled:D.enabled,lastRunAt:D.lastRunAt,nextRunAt:D.nextRunAt,createdAt:D.createdAt,updatedAt:D.updatedAt}}var lL,Ae=60000,Ke="sys:cron";var AU=R(()=>{gD();HD();V0();lL=bw(dL(),1)});class O4{listeners=new Set;emit(D,$){let F={type:D,payload:$,at:new Date().toISOString()};for(let X of this.listeners)try{X(F)}catch(J){_.warn(`[bus] listener for ${F.type} threw:`,J)}}on(D){return this.listeners.add(D),()=>{this.listeners.delete(D)}}}var KU=R(()=>{HD()});import rL from"fs/promises";import _e from"os";import T2 from"path";import kX from"process";function aL(D=sL){let $=new Map;async function F(H){let U=new Date(D.now()).toISOString(),Q=await D.resolveBinary(H.binaryName),V={kind:H.kind,status:"not-found",checkedAt:U};if(H.agent)V.agent=H.agent;if(!Q)return{...V,authHint:"binary-not-on-path"};let A=D.homedir();for(let K of H.authPaths(A))if(await D.pathExists(K))return{...V,status:"ready",binaryPath:Q,authHint:"auth-file-present"};return{...V,status:"login-required",binaryPath:Q,authHint:"auth-file-missing"}}async function X(H,U){let Q=$.get(H.key);if(!U&&Q&&Q.expiresAt>D.now())return Q.value;let V=await F(H);return $.set(H.key,{value:V,expiresAt:D.now()+Ce}),V}function J(H){return{kind:H,status:"ready",checkedAt:new Date(D.now()).toISOString(),authHint:"no-cli-required"}}async function G(H={}){let U=H.refresh??!1,Q=[];for(let V of iL)Q.push(J(V));for(let V of nL)Q.push(await X(V,U));return Q}async function Y(H,U={}){let Q=U.refresh??!1;if(iL.includes(H))return J(H);let V=nL.filter((K)=>K.kind===H);if(V.length===0)return{kind:H,status:"not-found",checkedAt:new Date(D.now()).toISOString(),authHint:"unknown-engine"};let A=U.agent?V.find((K)=>K.agent===U.agent)??V[0]:V[0];return X(A,Q)}function B(){$.clear()}return{probe:Y,probeAll:G,clearCache:B}}function d3(){if(!E4)E4=aL();return E4}function oL(D){return E4=aL(D),E4}function _U(D,$){let F=new Date().toISOString();if(D==="login")return{status:"LoginDetected",checkedAt:F,detail:$};if(D==="install")return{status:"InstallationFound",checkedAt:F,detail:$};return{status:"NotFound",checkedAt:F,detail:$}}async function tL(D,$=sL){let F=$.homedir(),X=D==="gemini"?".gemini":".qwen",J=T2.join(F,X,"oauth_creds.json"),G=T2.join(F,X,"settings.json");if(await $.pathExists(J))return _U("login","oauth_creds.json present");if(await $.pathExists(G))return _U("install","settings.json present, login pending");return _U("none",`~/${X} not present`)}function eL(){return tL("gemini")}function Dq(){return tL("qwen")}async function Me(D){let $=kX.env.PATH??"",F=kX.platform==="win32"?";":":",X=kX.platform==="win32"?(kX.env.PATHEXT??".EXE").split(";"):[""];for(let J of $.split(F)){if(!J)continue;for(let G of X){let Y=T2.join(J,`${D}${G.toLowerCase()}`);try{if((await rL.stat(Y)).isFile())return Y}catch{}}}return null}async function Ze(D){try{return await rL.stat(D),!0}catch{return!1}}var Ce=600000,sL,iL,nL,E4=null;var bX=R(()=>{sL={resolveBinary:Me,pathExists:Ze,homedir:()=>_e.homedir(),now:()=>Date.now()},iL=["http","mcp","cli"],nL=[{key:"claude-code",kind:"claude-code",binaryName:"claude",authPaths:(D)=>[T2.join(D,".claude.json"),T2.join(D,".claude","config.json")]},{key:"acp:gemini",kind:"acp",agent:"gemini",binaryName:"gemini",authPaths:(D)=>[T2.join(D,".gemini","oauth_creds.json")]},{key:"acp:qwen",kind:"acp",agent:"qwen",binaryName:"qwen",authPaths:(D)=>[T2.join(D,".qwen","oauth_creds.json"),T2.join(D,".qwen","settings.json")]},{key:"codex",kind:"codex",binaryName:"codex",authPaths:(D)=>[T2.join(D,".codex","auth.json")]},{key:"cursor",kind:"cursor",binaryName:"cursor-agent",authPaths:(D)=>[T2.join(D,".cursor","cli-config.json"),T2.join(D,".cursor-agent","auth.json"),T2.join(D,".cursor","auth.json")]}]});class CU{deps;ws=null;reconnectDelay;reconnectTimer=null;stopped=!1;WebSocketCtor;enrolledViaOtp=!1;constructor(D){this.deps=D;this.reconnectDelay=D.options.initialReconnectDelayMs;let $=globalThis.WebSocket,F=D.webSocketCtor??$;if(!F)throw Error("gateway-client: no WebSocket implementation available (set deps.webSocketCtor)");this.WebSocketCtor=F}start(){this.openSocket()}async stop(){if(this.stopped=!0,this.reconnectTimer)clearTimeout(this.reconnectTimer),this.reconnectTimer=null;let D=this.ws;if(this.ws=null,!D)return;return new Promise(($)=>{let F=setTimeout(()=>$(),2000);D.onclose=()=>{clearTimeout(F),$()};try{D.close(1000,"node-shutdown")}catch{clearTimeout(F),$()}})}send(D){let $=this.ws;if(!$||$.readyState!==Re){_.warn(`[gateway-client ${this.deps.options.workerId}] send dropped: socket not open`);return}try{$.send(dD(D))}catch(F){_.warn(`[gateway-client ${this.deps.options.workerId}] send failed: ${String(F)}`)}}openSocket(){let{url:D,workerId:$}=this.deps.options;_.info(`[gateway-client ${$}] connecting to ${D}`);let F;try{F=new this.WebSocketCtor(D)}catch(X){_.warn(`[gateway-client ${$}] ws ctor threw: ${String(X)}`),this.scheduleReconnect();return}this.ws=F,F.onopen=()=>{let X=this.deps.options.enroll,J=X===void 0||this.enrolledViaOtp?void 0:X.mode==="otp"?{mode:"otp",apiToken:X.apiToken,...X.displayName?{displayName:X.displayName}:{}}:{apiToken:X.apiToken,joinToken:X.joinToken,...X.displayName?{displayName:X.displayName}:{}},G={type:"connect",role:l8.NODE,agentId:this.deps.options.workerId,deviceId:this.deps.options.deviceId,auth:{token:this.deps.options.token},...this.deps.options.displayName?{meta:{displayName:this.deps.options.displayName}}:{},...J?{enroll:J}:{}};try{F.send(dD(G))}catch(Y){_.warn(`[gateway-client ${$}] connect frame send failed: ${String(Y)}`);return}this.reconnectDelay=this.deps.options.initialReconnectDelayMs,_.success(`[gateway-client ${$}] connected, node=${this.deps.options.deviceId}`),this.deps.onConnected()},F.onmessage=(X)=>{let J=typeof X.data==="string"?X.data:String(X.data),G=Q1(J);if(!G.ok){_.warn(`[gateway-client ${$}] drop malformed frame: ${G.error}`);return}let Y=G.frame;if(Y.type==="event"&&Y.name===YD.ENROLLMENT_OTP){let B=O5.safeParse(Y.payload);if(!B.success){_.warn(`[gateway-client ${$}] enrollment.otp payload invalid: ${B.error.message}`);return}try{this.deps.onEnrollmentOtp?.(B.data)}catch(H){_.error(`[gateway-client ${$}] onEnrollmentOtp threw: ${String(H)}`)}return}if(Y.type==="event"&&Y.name===YD.ENROLLMENT_APPROVED){let B=E5.safeParse(Y.payload);if(!B.success){_.warn(`[gateway-client ${$}] enrollment.approved payload invalid: ${B.error.message}`);return}this.enrolledViaOtp=!0;try{this.deps.onEnrollmentApproved?.(B.data)}catch(H){_.error(`[gateway-client ${$}] onEnrollmentApproved threw: ${String(H)}`)}return}try{this.deps.onFrame(Y)}catch(B){_.error(`[gateway-client ${$}] onFrame threw: ${String(B)}`)}},F.onerror=(X)=>{_.warn(`[gateway-client ${$}] ws error: ${String(X?.message??X)}`)},F.onclose=(X)=>{if(this.ws===F)this.ws=null;let J=`code=${X.code} reason=${X.reason||"n/a"}`;if(this.deps.onDisconnected(J),this.stopped)return;this.scheduleReconnect()}}scheduleReconnect(){if(this.stopped)return;if(!this.deps.options.reconnect){_.info(`[gateway-client ${this.deps.options.workerId}] reconnect disabled, giving up`);return}let D=Math.min(this.reconnectDelay,this.deps.options.maxReconnectDelayMs);_.info(`[gateway-client ${this.deps.options.workerId}] reconnect in ${D}ms`),this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.openSocket()},D),this.reconnectDelay=Math.min(this.reconnectDelay*2,this.deps.options.maxReconnectDelayMs)}}var Re=1;var $q=R(()=>{Z0();HD()});function Fq(D){if(!D.url||D.url.length===0)throw Error("gateway-client: url is required");if(!D.workerId||D.workerId.length===0)throw Error("gateway-client: workerId is required");return{url:D.url,token:D.token,workerId:D.workerId,deviceId:D.deviceId??D.workerId,displayName:D.displayName,reconnect:D.reconnect??!0,initialReconnectDelayMs:D.initialReconnectDelayMs??1000,maxReconnectDelayMs:D.maxReconnectDelayMs??16000,enroll:D.enroll}}var Oe,Ee,je,Ne,Pe,Le,MU,qe,ze,Xq,Ie,Se,Te,we,Jq;var Gq=R(()=>{jD();Oe=W.object({id:W.string().min(1),type:W.literal("filesystem"),priority:W.number().int(),readOnly:W.boolean(),config:W.object({home:W.string().min(1).optional()})}),Ee=W.object({id:W.string().min(1),type:W.literal("cloud-gateway"),priority:W.number().int(),readOnly:W.boolean(),config:W.object({url:W.string().min(1),token:W.string(),defaultCategory:W.string().optional(),defaultTypeId:W.string().optional()})}),je=W.discriminatedUnion("type",[Oe,Ee]),Ne=W.object({binary:W.string().min(1).optional(),extraArgs:W.array(W.string()).optional(),env:W.record(W.string()).optional(),cliVersion:W.string().min(1).optional()}).strict(),Pe=W.record(W.unknown()).and(W.object({cmd:Ne.optional()}).partial()),Le=W.enum(["rate-limit","timeout","auth","network","server-5xx","unknown"]),MU=W.lazy(()=>W.object({engine:W.enum(["http","mcp","cli","claude-code","acp","codex","cursor"]),variant:W.string().min(1),overrides:Pe.optional(),modelId:W.string().min(1).optional(),reasoningId:W.string().min(1).optional(),permissionPolicy:W.enum(["auto","supervised","plan"]).optional(),fallbacks:W.array(W.object({executor:MU,onErrorKinds:W.array(Le).min(1),maxRetries:W.number().int().min(1).optional()})).optional()})),qe=W.discriminatedUnion("channel",[W.object({channel:W.literal("web"),inboundToken:W.string().optional()}),W.object({channel:W.literal("line"),channelSecret:W.string(),channelAccessToken:W.string()}),W.object({channel:W.literal("telegram"),botToken:W.string(),webhookSecretToken:W.string().optional()}),W.object({channel:W.literal("lark"),appId:W.string(),appSecret:W.string(),encryptKey:W.string(),verificationToken:W.string()}),W.object({channel:W.literal("whatsapp"),phoneNumberId:W.string(),accessToken:W.string(),appSecret:W.string(),verifyToken:W.string()})]),ze=W.object({channel:W.enum(["web","line","telegram","lark","whatsapp"]),enabled:W.boolean(),credentials:qe,profile:W.object({displayName:W.string().optional(),avatarUrl:W.string().optional()}).optional()}).refine((D)=>D.channel===D.credentials.channel,{message:"channel and credentials.channel must match",path:["credentials","channel"]}),Xq=W.enum(["auto","ask","deny"]),Ie=W.object({default:Xq,rules:W.array(W.object({pattern:W.string().min(1),action:Xq}))}),Se=W.object({enabled:W.boolean().optional(),triggerTokens:W.number().int().min(1).max(2000000).optional(),maxSummaryMessages:W.number().int().min(1).max(500).optional(),memoryFlush:W.object({enabled:W.boolean().optional()}).optional()}),Te=W.object({executor:MU.optional(),intentClassifier:W.object({evaluator:W.enum(["heuristic","llm"]).optional()}).optional(),qualityGate:W.object({evaluator:W.enum(["heuristic","llm"]).optional(),mode:W.enum(["observe","warn","retry","block"]).optional(),threshold:W.number().min(0).max(10).optional()}).optional()}).strict(),we=W.object({contextWindowTokens:W.number().int().min(512).max(2000000).optional(),reserveTokens:W.number().int().min(0).max(1e6).optional(),keepRecentTokens:W.number().int().min(1).max(2000000).optional(),maxHistoryMessages:W.number().int().min(1).max(200).optional(),compaction:Se.optional(),decisionPipeline:Te.optional()}).superRefine((D,$)=>{if(D.contextWindowTokens!==void 0&&D.reserveTokens!==void 0&&D.reserveTokens>=D.contextWindowTokens)$.addIssue({code:W.ZodIssueCode.custom,path:["reserveTokens"],message:"reserveTokens must be lower than contextWindowTokens"});if(D.contextWindowTokens!==void 0&&D.compaction?.triggerTokens!==void 0&&D.compaction.triggerTokens>D.contextWindowTokens)$.addIssue({code:W.ZodIssueCode.custom,path:["compaction","triggerTokens"],message:"compaction.triggerTokens must not exceed contextWindowTokens"})}),Jq=W.object({brains:W.array(je),brainWriteTarget:W.string(),brainRetrieval:W.enum(["merge-by-priority","first-match"]),executor:MU,channels:W.array(ze),evolution:W.object({enabled:W.boolean(),observationRetentionDays:W.number().int().nonnegative()}),toolPolicy:Ie.optional(),orchestrator:we.optional()})});import{writeFile as ke}from"fs/promises";async function P0(D){let $=await D.select().from(a2).where(S(a2.pk,"default")).get();if(!$)throw Error("worker_config row missing \u2014 bootstrap did not run");return{config:$.configJson,version:$.version}}async function K6(D,$,F,X={}){let J=Jq.safeParse(F);if(!J.success)throw new w2(J.error.issues);let G=await P0(D);if(X.ifMatchVersion!==void 0&&X.ifMatchVersion!==G.version)throw new k2(X.ifMatchVersion,G.version);let Y=J.data,B=new Set(g1(G.config).map((K)=>K.path)),H=g1(Y),U=new Set(H.map((K)=>K.path));for(let{path:K,value:M}of H)if(M.length>0)await $.put(K,M);for(let K of B)if(!U.has(K))await $.remove(K);let Q=UX(Y),V=G.version+1,A=new Date().toISOString();return await D.update(a2).set({configJson:Q,version:V,updatedAt:A,updatedBy:"api"}).where(S(a2.pk,"default")).run(),{config:Q,version:V}}async function _6(D,$,F){let X=tZ(D),J=gY({version:F,config:$});try{await ke(X,J,{encoding:"utf8"})}catch(G){_.warn(`[mirror-config] failed to write ${X}: ${String(G)}`)}}async function l3(D){let $=await K6(D.db,D.vault,D.raw,D.ifMatchVersion===void 0?{}:{ifMatchVersion:D.ifMatchVersion});await _6(D.workerId,$.config,$.version);let F="ok";try{await D.reloadRuntime($.config,$.version)}catch(X){F="failed",_.error("[applyConfigUpdate] runtime reload failed",X)}return{...$,runtimeReload:F}}var w2,k2;var ZU=R(()=>{$0();gD();HD();V0();m8();Gq();w2=class w2 extends Error{issues;constructor(D,$="invalid worker config"){super($);this.issues=D;this.name="InvalidConfigError"}};k2=class k2 extends Error{expected;actual;constructor(D,$){super(`config version ${D} does not match current version ${$}`);this.expected=D;this.actual=$;this.name="ConfigVersionConflictError"}}});function fX(D){return{cronList:async()=>{return{jobs:await D().listJobs()}},cronAdd:async($)=>{return{job:await D().addJob($.job)}},cronRemove:async($)=>{return await D().removeJob($.jobId)},cronUpdate:async($)=>{let F=await D().updateJob($.jobId,$.patch);if(!F)throw new gX($.jobId);return{job:F}}}}var gX;var RU=R(()=>{gX=class gX extends Error{jobId;constructor(D){super(`cron job ${D} \u4E0D\u5B58\u5728`);this.jobId=D;this.name="CronJobNotFoundError"}}});class OU{deps;constructor(D){this.deps=D}async handleRequest(D){let{id:$,method:F,params:X}=D;try{let J=E7(F);if(!J){this.replyError($,"unknown_method",`unknown method: ${F}`);return}if(J.routing!=="operator-to-node"){this.replyError($,"wrong_routing",`method ${F} should be handled by gateway, not node`);return}let G=J.params.safeParse(X??{});if(!G.success){this.replyError($,"invalid_params",`params schema mismatch for ${F}`,G.error.issues);return}let Y=G.data;switch(F){case CD["chat.send"].method:await this.handleChatSend($,Y);break;case CD["config.get"].method:await this.handleConfigGet($);break;case CD["config.put"].method:await this.handleConfigPut($,Y);break;case CD["token.rotate"].method:await this.handleTokenRotate($);break;case CD["logs.tail"].method:await this.handleLogsTail($,Y);break;case CD["approval.list"].method:this.handleApprovalList($);break;case CD["approval.grant"].method:this.handleApprovalGrant($,Y);break;case CD["cron.list"].method:await this.handleCronList($,Y);break;case CD["cron.add"].method:await this.handleCronAdd($,Y);break;case CD["cron.remove"].method:await this.handleCronRemove($,Y);break;case CD["cron.update"].method:await this.handleCronUpdate($,Y);break;case CD["secrets.list"].method:await this.handleSecretsList($,Y);break;case CD["secrets.put"].method:await this.handleSecretsPut($,Y);break;case CD["secrets.delete"].method:await this.handleSecretsDelete($,Y);break;case CD["engines.list"].method:await this.handleEnginesList($,Y);break;case CD["brain.test"].method:await this.handleBrainTest($,Y);break;case CD["brain.summary"].method:await this.handleBrainSummary($,Y);break;case CD["brain.admission.list"].method:await this.handleBrainAdmissionList($,Y);break;case CD["brain.admission.show"].method:await this.handleBrainAdmissionShow($,Y);break;case CD["brain.admission.approve"].method:await this.handleBrainAdmissionApprove($,Y);break;case CD["brain.admission.reject"].method:await this.handleBrainAdmissionReject($,Y);break;case CD["brain.admission.apply"].method:await this.handleBrainAdmissionApply($,Y);break;case CD["brain.artifacts.list"].method:await this.handleBrainArtifactsList($,Y);break;case CD["brain.artifacts.show"].method:await this.handleBrainArtifactsShow($,Y);break;case CD["executor.test"].method:await this.handleExecutorTest($,Y);break;case CD["channel.test"].method:await this.handleChannelTest($,Y);break;case CD["orchestrator.tasks.list"].method:await this.handleTasksList($,Y);break;case CD["orchestrator.tasks.create"].method:await this.handleTasksCreate($,Y);break;case CD["orchestrator.conversations.list"].method:await this.handleConversationsList($,Y);break;case CD["orchestrator.messages.list"].method:await this.handleMessagesList($,Y);break;case CD["workers.info"].method:await this.handleWorkersInfo($,Y);break;case CD["workers.stop"].method:await this.handleWorkersStop($,Y);break;default:this.replyError($,"method_not_implemented",`${F} not routed`)}}catch(J){_.error(`[gateway-dispatcher ${this.deps.workerId}] handler threw: ${String(J)}`),this.replyError($,"internal_error",J instanceof Error?J.message:String(J))}}async handleChatSend(D,$){let F=String($.workerId);if(F!==this.deps.workerId){this.replyError(D,"worker_mismatch",`chat.send targeted workerId=${F}, this node is ${this.deps.workerId}`);return}let X=be(String($.content)),J=X?.body&&X.body.length>0?X.body:X?"A new session has started. Reply briefly to confirm.":String($.content),G=typeof $.conversationId==="string"?$.conversationId:void 0,Y=fe(this.deps.workerId,G),B={workerId:this.deps.workerId,channel:"web",accountId:"sys:gateway",chatId:Y,text:J,receivedAt:new Date().toISOString(),raw:{source:"gateway",...X?{sessionReset:!0,resetCommand:X.command}:{},...$.metadata!==void 0?{metadata:$.metadata}:{}}};this.deps.getRuntime().orchestrator.ingest(B).catch((H)=>{_.warn(`[gateway-dispatcher ${this.deps.workerId}] orchestrator.ingest failed: ${String(H)}`)}),this.replyOk(D,{conversationId:Y,accepted:!0})}async handleWorkersInfo(D,$){if(!this.ensureWorkerMatch(D,$))return;if(!this.deps.handlers?.workersInfo){this.replyError(D,"method_not_implemented","workers.info handler not wired");return}let F=await this.deps.handlers.workersInfo();this.replyOk(D,F)}async handleWorkersStop(D,$){if(!this.ensureWorkerMatch(D,$))return;if(!this.deps.handlers?.workersStop){this.replyError(D,"method_not_implemented","workers.stop handler not wired");return}await this.deps.handlers.workersStop(),this.replyOk(D,{stopped:!0})}async handleConfigGet(D){if(!this.deps.handlers?.configGet){this.replyError(D,"method_not_implemented","config.get handler not wired");return}let $=await this.deps.handlers.configGet();this.replyOk(D,$)}async handleConfigPut(D,$){if(!this.deps.handlers?.configPut){this.replyError(D,"method_not_implemented","config.put handler not wired");return}let F=Number($.ifMatch),X=$.config;try{let J=await this.deps.handlers.configPut({ifMatch:F,config:X});this.replyOk(D,J)}catch(J){if(J instanceof w2){this.replyError(D,"invalid_config",J.message,{issues:J.issues});return}if(J instanceof k2){this.replyError(D,"version_conflict",J.message,{expected:J.expected,actual:J.actual});return}throw J}}async handleTokenRotate(D){if(!this.deps.handlers?.tokenRotate){this.replyError(D,"method_not_implemented","token.rotate handler not wired");return}let $=await this.deps.handlers.tokenRotate();this.replyOk(D,$)}async handleLogsTail(D,$){if(!this.deps.handlers?.logsTail){this.replyOk(D,{subscribed:!1});return}let F={};if(typeof $.follow==="boolean")F.follow=$.follow;if(typeof $.lines==="number")F.lines=$.lines;let X=await this.deps.handlers.logsTail(F);this.replyOk(D,X)}handleApprovalList(D){let $=this.deps.getRuntime().approvals;if(!$){this.replyError(D,"method_not_implemented","approval store not wired");return}let F=$.list().map((X)=>({workerId:this.deps.workerId,taskId:X.taskId,toolCallId:X.toolCallId,toolName:X.toolName,params:X.params,expiresAt:X.expiresAt}));this.replyOk(D,{approvals:F})}handleApprovalGrant(D,$){let F=this.deps.getRuntime().approvals;if(!F){this.replyError(D,"method_not_implemented","approval store not wired");return}let X=String($.taskId),J=String($.toolCallId),G=$.decision==="allow"?"allow":"deny",Y=F.grant(X,J,G);this.replyOk(D,{granted:Y})}ensureWorkerMatch(D,$){let F=String($.workerId);if(F!==this.deps.workerId)return this.replyError(D,"worker_mismatch",`targeted workerId=${F}, this node is ${this.deps.workerId}`),!1;return!0}async handleCronList(D,$){if(!this.deps.handlers?.cronList){this.replyError(D,"method_not_implemented","cron.list handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;let F=await this.deps.handlers.cronList();this.replyOk(D,F)}async handleCronAdd(D,$){if(!this.deps.handlers?.cronAdd){this.replyError(D,"method_not_implemented","cron.add handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;try{let F=await this.deps.handlers.cronAdd({job:$.job});this.replyOk(D,F)}catch(F){this.replyError(D,"invalid_cron",F instanceof Error?F.message:String(F))}}async handleCronRemove(D,$){if(!this.deps.handlers?.cronRemove){this.replyError(D,"method_not_implemented","cron.remove handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;let F=await this.deps.handlers.cronRemove({jobId:String($.jobId)});this.replyOk(D,F)}async handleCronUpdate(D,$){if(!this.deps.handlers?.cronUpdate){this.replyError(D,"method_not_implemented","cron.update handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;try{let F=await this.deps.handlers.cronUpdate({jobId:String($.jobId),patch:$.patch});this.replyOk(D,F)}catch(F){if(F instanceof gX){this.replyError(D,"not_found",F.message,{jobId:F.jobId});return}this.replyError(D,"invalid_cron",F instanceof Error?F.message:String(F))}}async handleSecretsList(D,$){if(!this.deps.handlers?.secretsList){this.replyError(D,"method_not_implemented","secrets.list handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;let F=await this.deps.handlers.secretsList();this.replyOk(D,F)}async handleSecretsPut(D,$){if(!this.deps.handlers?.secretsPut){this.replyError(D,"method_not_implemented","secrets.put handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;try{let F=await this.deps.handlers.secretsPut({key:String($.key),value:String($.value)});this.replyOk(D,F)}catch(F){this.replyAppError(D,F)}}async handleSecretsDelete(D,$){if(!this.deps.handlers?.secretsDelete){this.replyError(D,"method_not_implemented","secrets.delete handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;try{let F=await this.deps.handlers.secretsDelete({key:String($.key)});this.replyOk(D,F)}catch(F){this.replyAppError(D,F)}}async handleEnginesList(D,$){if(!this.deps.handlers?.enginesList){this.replyError(D,"method_not_implemented","engines.list handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;let F=await this.deps.handlers.enginesList({...typeof $.refresh==="boolean"?{refresh:$.refresh}:{}});this.replyOk(D,F)}async handleBrainTest(D,$){if(!this.deps.handlers?.brainTest){this.replyError(D,"method_not_implemented","brain.test handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;this.replyOk(D,await this.deps.handlers.brainTest())}async handleBrainSummary(D,$){if(!this.deps.handlers?.brainSummary){this.replyError(D,"method_not_implemented","brain.summary handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;this.replyOk(D,await this.deps.handlers.brainSummary())}async handleBrainAdmissionList(D,$){if(!this.deps.handlers?.brainAdmissionList){this.replyError(D,"method_not_implemented","brain.admission.list handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;this.replyOk(D,await this.deps.handlers.brainAdmissionList({...$.status===void 0?{}:{status:$.status},...$.kind===void 0?{}:{kind:String($.kind)},...$.scopeId===void 0?{}:{scopeId:String($.scopeId)},...$.soulId===void 0?{}:{soulId:String($.soulId)},...typeof $.limit==="number"?{limit:$.limit}:{},...typeof $.showSensitive==="boolean"?{showSensitive:$.showSensitive}:{}}))}async handleBrainAdmissionShow(D,$){if(!this.deps.handlers?.brainAdmissionShow){this.replyError(D,"method_not_implemented","brain.admission.show handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;try{this.replyOk(D,await this.deps.handlers.brainAdmissionShow({id:String($.id),...typeof $.showSensitive==="boolean"?{showSensitive:$.showSensitive}:{}}))}catch(F){this.replyBrainError(D,F)}}async handleBrainAdmissionApprove(D,$){if(!this.deps.handlers?.brainAdmissionApprove){this.replyError(D,"method_not_implemented","brain.admission.approve handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;try{this.replyOk(D,await this.deps.handlers.brainAdmissionApprove({id:String($.id),decidedBy:String($.decidedBy),...$.reason===void 0?{}:{reason:String($.reason)}}))}catch(F){this.replyBrainError(D,F)}}async handleBrainAdmissionReject(D,$){if(!this.deps.handlers?.brainAdmissionReject){this.replyError(D,"method_not_implemented","brain.admission.reject handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;try{this.replyOk(D,await this.deps.handlers.brainAdmissionReject({id:String($.id),decidedBy:String($.decidedBy),...$.reason===void 0?{}:{reason:String($.reason)}}))}catch(F){this.replyBrainError(D,F)}}async handleBrainAdmissionApply(D,$){if(!this.deps.handlers?.brainAdmissionApply){this.replyError(D,"method_not_implemented","brain.admission.apply handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;try{this.replyOk(D,await this.deps.handlers.brainAdmissionApply({id:String($.id),decidedBy:String($.decidedBy),...typeof $.commit==="boolean"?{commit:$.commit}:{},...$.allowSecretBody===void 0?{}:{allowSecretBody:$.allowSecretBody}}))}catch(F){this.replyBrainError(D,F)}}async handleBrainArtifactsList(D,$){if(!this.deps.handlers?.brainArtifactsList){this.replyError(D,"method_not_implemented","brain.artifacts.list handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;this.replyOk(D,await this.deps.handlers.brainArtifactsList({...$.scopeId===void 0?{}:{scopeId:String($.scopeId)},...$.type===void 0?{}:{type:String($.type)},...$.status===void 0?{}:{status:$.status},...$.minSensitivity===void 0?{}:{minSensitivity:$.minSensitivity},...typeof $.limit==="number"?{limit:$.limit}:{},...typeof $.showSensitive==="boolean"?{showSensitive:$.showSensitive}:{}}))}async handleBrainArtifactsShow(D,$){if(!this.deps.handlers?.brainArtifactsShow){this.replyError(D,"method_not_implemented","brain.artifacts.show handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;try{this.replyOk(D,await this.deps.handlers.brainArtifactsShow({id:String($.id),...typeof $.showSensitive==="boolean"?{showSensitive:$.showSensitive}:{}}))}catch(F){this.replyBrainError(D,F)}}async handleExecutorTest(D,$){if(!this.deps.handlers?.executorTest){this.replyError(D,"method_not_implemented","executor.test handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;let F=await this.deps.handlers.executorTest({...typeof $.probe==="boolean"?{probe:$.probe}:{}});this.replyOk(D,F)}async handleChannelTest(D,$){if(!this.deps.handlers?.channelTest){this.replyError(D,"method_not_implemented","channel.test handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;try{let F=$.body&&typeof $.body==="object"?$.body:void 0,X=await this.deps.handlers.channelTest({channel:$.channel,...F===void 0?{}:{body:F}});this.replyOk(D,X)}catch(F){this.replyAppError(D,F)}}async handleTasksList(D,$){if(!this.deps.handlers?.tasksList){this.replyError(D,"method_not_implemented","orchestrator.tasks.list handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;this.replyOk(D,await this.deps.handlers.tasksList())}async handleTasksCreate(D,$){if(!this.deps.handlers?.tasksCreate){this.replyError(D,"method_not_implemented","orchestrator.tasks.create handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;this.replyOk(D,await this.deps.handlers.tasksCreate({prompt:String($.prompt)}))}async handleConversationsList(D,$){if(!this.deps.handlers?.conversationsList){this.replyError(D,"method_not_implemented","orchestrator.conversations.list handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;this.replyOk(D,await this.deps.handlers.conversationsList())}async handleMessagesList(D,$){if(!this.deps.handlers?.messagesList){this.replyError(D,"method_not_implemented","orchestrator.messages.list handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;this.replyOk(D,await this.deps.handlers.messagesList({conversationId:String($.conversationId)}))}replyOk(D,$){this.deps.sendResponse({type:"response",id:D,ok:!0,result:$})}replyError(D,$,F,X){this.deps.sendResponse({type:"response",id:D,ok:!1,error:X===void 0?{code:$,message:F}:{code:$,message:F,details:X}})}replyBrainError(D,$){let F=$.code,X=$ instanceof Error?$.message:String($);if(F==="not-found"){this.replyError(D,"not_found",X);return}if(F==="invalid-transition"){this.replyError(D,"invalid_transition",X);return}if(F==="duplicate-id"){this.replyError(D,"conflict",X);return}if(F==="invalid-payload"){this.replyError(D,"invalid_state",X);return}throw $}replyAppError(D,$){if($ instanceof ND){let F=$.status===404?"not_found":$.status===400?"invalid_params":"internal_error";this.replyError(D,F,$.message);return}throw $}}function be(D){let $=D.trim(),F=$.toLowerCase();for(let X of["/new","/reset"]){if(F===X)return{command:X,body:""};if(F.startsWith(X)&&/\s/.test($.charAt(X.length)))return{command:X,body:$.slice(X.length).trimStart()}}return null}function fe(D,$){if($===void 0)return`gw:${D}:${crypto.randomUUID()}`;if($.startsWith("gw:"))return $;return`gw:conv:${$}`}var Yq=R(()=>{Z0();MD();HD();ZU();RU()});class EU{deps;unsub=null;constructor(D){this.deps=D}start(){this.stop();let D=this.deps.getBus();this.unsub=D.on(($)=>this.handle($))}stop(){if(this.unsub)this.unsub(),this.unsub=null}emit(D,$){let F={type:"event",name:D,payload:{workerId:this.deps.workerId,...$},ts:Date.now()};this.deps.sendEvent(F)}handle(D){let $=this.map(D);if(!$)return;this.deps.sendEvent({type:"event",name:$.name,payload:{workerId:this.deps.workerId,...$.payload},ts:Date.parse(D.at)||Date.now()})}map(D){let $=D.payload;switch(D.type){case"orchestrator.text":{let F=j4($);if(!F)return null;let X=typeof $.delta==="string"?$.delta:"";return{name:YD.AGENT_THINKING,payload:{conversationId:F,chunk:X}}}case"orchestrator.tool_call":{let F=j4($),X=$.call??{},J=P8(X.id),G=P8(X.name);if(!F||!J||!G)return null;return{name:YD.AGENT_TOOL_CALL,payload:{conversationId:F,toolCallId:J,toolName:G,status:"pending",...X.arguments!==void 0?{args:X.arguments}:{}}}}case"orchestrator.finished":{let F=j4($);if(!F)return null;return{name:YD.AGENT_DONE,payload:{conversationId:F,finishReason:"stop"}}}case"orchestrator.error":{let F=j4($);if(!F)return null;return{name:YD.AGENT_DONE,payload:{conversationId:F,finishReason:"error"}}}case"conversation.message":{let F=j4($),X=P8($.role);if(!F||!X)return null;if(X!=="user"&&X!=="assistant"&&X!=="system")return null;return{name:YD.CHAT_MESSAGE,payload:{conversationId:F,role:X,content:typeof $.content==="string"?$.content:"",createdAt:Date.parse(D.at)||Date.now()}}}case"approval.requested":{let F=P8($.taskId),X=P8($.toolCallId),J=P8($.toolName),G=typeof $.expiresAt==="number"?$.expiresAt:null;if(!F||!X||!J||G===null)return null;let Y=typeof $.params==="object"&&$.params!==null?$.params:{};return{name:YD.APPROVAL_REQUESTED,payload:{taskId:F,toolCallId:X,toolName:J,params:Y,expiresAt:G}}}default:return null}}}function P8(D){return typeof D==="string"&&D.length>0?D:null}function j4(D){return P8(D.gatewayConversationId)??P8(D.conversationId)}var Bq=R(()=>{Z0()});function hX(D){let $=Fq(D),F=!1,X=null,J=new EU({workerId:$.workerId,getBus:()=>D.getRuntime().bus,sendEvent:(Y)=>X?.send(Y)}),G=new OU({workerId:$.workerId,getRuntime:D.getRuntime,...D.handlers?{handlers:D.handlers}:{},sendResponse:(Y)=>X?.send(Y)});return X=new CU({options:$,onConnected:()=>{F=!0,J.start()},onDisconnected:(Y)=>{F=!1,J.stop(),_.info(`[gateway-client ${$.workerId}] disconnected: ${Y}`)},onFrame:(Y)=>{if(Y.type==="request"){G.handleRequest(Y);return}_.warn(`[gateway-client ${$.workerId}] unexpected inbound frame type=${Y.type}`)},...D.onEnrollmentOtp?{onEnrollmentOtp:D.onEnrollmentOtp}:{},...D.onEnrollmentApproved?{onEnrollmentApproved:D.onEnrollmentApproved}:{},...D.webSocketCtor?{webSocketCtor:D.webSocketCtor}:{}}),X.start(),{async stop(){if(J.stop(),X)await X.stop(),X=null},isConnected(){return F},notifyRuntimeReloaded(){if(F)J.start()}}}async function Hq(D){await D.stop()}var Wq=R(()=>{HD();$q();Yq();Bq()});function ge(D){if(D instanceof Error)return D.message;return String(D)}async function i3(D,$){let F=$.brains,X=F.map((G)=>C8(D.workerId,G,$.brainWriteTarget??"")),J=F.length<=1?"source":"aggregate";try{let G=await D.runtime.brain.health();if(X.length>0)return{brains:X.map((Y)=>({...Y,status:G.status,healthScope:J}))};return{brains:[{id:"aggregate",type:"multi",status:G.status}]}}catch(G){let Y=ge(G);if(X.length>0)return{brains:X.map((B)=>({...B,status:"down",healthScope:J,errorMessage:Y}))};return{brains:[{id:"aggregate",type:"multi",status:"down",errorMessage:Y}]}}}var Uq=R(()=>{XX()});function ve(D){return he.has(D)}function xe(D){if(D instanceof Error)return D.message;return String(D)}async function n3(D,$,F={}){if(!ve($))throw ND.notFound(`unknown channel '${$}'`);let X=D.runtime.channels.get($);if(!X)throw ND.notFound(`channel '${$}' is not bound or not enabled`);let J=B6($);if(F.chatId===void 0||F.text===void 0)return{sent:!1,platformResponse:{dryRun:!0,channel:$,enabled:X.enabled}};let G={channel:$,chatId:F.chatId,text:F.text};try{return await J.send(X,G),{sent:!0,platformResponse:{ok:!0}}}catch(Y){return{sent:!1,error:xe(Y)}}}var he;var Qq=R(()=>{MD();Y4();he=new Set(["web","line","telegram","lark","whatsapp"])});function ye(D){if(D instanceof Error)return D.message;return String(D)}function ue(D){return`executor tiny probe timed out after ${D}ms`}function me(D){if(!D.return)return;Promise.resolve(D.return()).catch(()=>{})}async function ce(D,$,F){let X=Math.ceil(F-performance.now());if(X<=0)return $.abort(),jU;let J,G=new Promise((Y)=>{J=setTimeout(()=>{$.abort(),Y(jU)},X)});try{return await Promise.race([D.next(),G])}finally{if(J!==void 0)clearTimeout(J)}}async function pe(D,$={}){let F=$.timeoutMs??5000,X=performance.now(),J=X+F,G=new AbortController,Y,B=!1;function H(){if(!Y||B)return;B=!0,me(Y)}try{Y=D.runtime.executor.run({messages:[{role:"user",content:"ping"}],signal:G.signal})[Symbol.asyncIterator]();let Q="";while(!0){let V=await ce(Y,G,J);if(V===jU)return H(),{ok:!1,latencyMs:Math.round(performance.now()-X),error:ue(F)};if(V.done)break;let A=V.value;if(A.type==="assistant_message_delta"){if(Q+=A.delta,Q.length>=100)break}else if(A.type==="error")return{ok:!1,latencyMs:Math.round(performance.now()-X),error:A.error};else if(A.type==="finish")break}return{ok:!0,latencyMs:Math.round(performance.now()-X),output:Q.slice(0,100)}}catch(U){return{ok:!1,latencyMs:Math.round(performance.now()-X),error:ye(U)}}finally{H()}}async function r3(D,$,F={}){let X=$.executor.engine,J="unknown";try{J=(await D.runtime.executor.health()).status}catch{J="unknown"}if(!F.probe)return{executor:{type:X,status:J}};let G=await pe(D,{timeoutMs:F.probeTimeoutMs});if(!G.ok)return{executor:{type:X,status:"degraded",tinyProbe:{ok:!1,latencyMs:G.latencyMs},...G.error===void 0?{}:{probeError:G.error}}};return{executor:{type:X,status:J,tinyProbe:{ok:!0,latencyMs:G.latencyMs,...G.output===void 0?{}:{output:G.output}}}}}var jU;var Vq=R(()=>{jU=Symbol("probe-next-timeout")});function de(D){if(!D)return"unknown";return D.status}async function NU(D){try{let $=await D();return de($??null)}catch{return"unknown"}}function Aq(D){let $=le(D);if(!$)return;if($.modelId!==void 0)return $.modelId;let F=$.body;if(typeof F.model==="string"&&F.model.length>0)return F.model;if(typeof F.defaultModel==="string"&&F.defaultModel.length>0)return F.defaultModel;return}function le(D){try{return H2(D)}catch{return null}}function ie(D,$){if(!D)return;return`${D.replace(/\/+$/,"")}/${$}/webhook`}async function s3(D,$,F){let{runtime:X}=D,J=await NU(()=>X.executor.health()),G=await NU(()=>X.brain.health()),Y=$.brains.map((C)=>({...C8(D.workerId,C,$.brainWriteTarget),id:C.id,type:C.type,status:G})),B=Aq($.executor),H={type:$.executor.engine,...B===void 0?{}:{model:B},status:J},U=$.orchestrator?.decisionPipeline?.executor??$.executor,Q=X.controlExecutorReusesTaskExecutor??$.orchestrator?.decisionPipeline?.executor===void 0,V=Q?J:await NU(()=>(X.controlExecutor??X.executor).health()),A=Aq(U),K={type:U.engine,...A===void 0?{}:{model:A},status:V,reusesTaskExecutor:Q},M=$.channels.map((C)=>{let Z=ie(F.advertisedBaseUrl,C.channel);return{channel:C.channel,enabled:C.enabled,...Z?{webhookUrl:Z}:{}}});return{workerId:D.workerId,runtimeVersion:F.runtimeVersion,configVersion:D.configVersion,brains:Y,brainSummary:M8({intentEvaluator:$.orchestrator?.decisionPipeline?.intentClassifier?.evaluator??"heuristic",qualityEvaluator:$.orchestrator?.decisionPipeline?.qualityGate?.evaluator??"heuristic",qualityMode:$.orchestrator?.decisionPipeline?.qualityGate?.mode??"observe",...$.orchestrator?.decisionPipeline?.qualityGate?.threshold===void 0?{}:{qualityThreshold:$.orchestrator.decisionPipeline.qualityGate.threshold},conversationClassifierEnabled:!0}),executor:H,controlExecutor:K,channels:M,evolutionEnabled:$.evolution.enabled,startedAt:D.startedAt,...F.advertisedBaseUrl?{advertisedBaseUrl:F.advertisedBaseUrl}:{}}}var Kq=R(()=>{XX();NW();_8()});async function L8(D,$,F){let X=P3(),{ciphertext:J,nonce:G,authTag:Y}=$.encryptString(X),B=new Date().toISOString();return await D.update(E2).set({apiTokenEnc:J,nonce:G,authTag:Y,rotatedAt:B}).where(S(E2.pk,"default")).run(),F.tokenPlaintext=X,{newToken:X}}var _q=R(()=>{gD();V0();BW()});async function a3(D){return D.list()}async function o3(D,$,F){if(!$||!$.trim())throw ND.badRequest("secret key is required");if(F.length===0)throw ND.badRequest("secret value must be a non-empty string");await D.put($,F)}async function t3(D,$){if(!$||!$.trim())throw ND.badRequest("secret key is required");if(await D.get($)===null)throw ND.notFound(`secret '${$}' not found`);await D.remove($)}var Cq=R(()=>{MD()});class C6{pending=new Map;disposed=!1;wait(D){if(this.disposed)return Promise.reject(new Mq);let $=D.timeoutMs??PU,F=Date.now()+$,X=C6.key(D.taskId,D.toolCallId);return new Promise((J)=>{let G=setTimeout(()=>{let B=this.pending.get(X);if(!B)return;this.pending.delete(X),B.resolve("deny")},$);G.unref?.(),this.pending.set(X,{taskId:D.taskId,toolCallId:D.toolCallId,toolName:D.toolName,params:D.params,expiresAt:F,resolve:J,timer:G})})}grant(D,$,F){let X=C6.key(D,$),J=this.pending.get(X);if(!J)return!1;return clearTimeout(J.timer),this.pending.delete(X),J.resolve(F),!0}list(){let D=[];for(let $ of this.pending.values())D.push({taskId:$.taskId,toolCallId:$.toolCallId,toolName:$.toolName,params:$.params,expiresAt:$.expiresAt});return D}size(){return this.pending.size}dispose(){if(this.disposed)return;this.disposed=!0;for(let D of this.pending.values())clearTimeout(D.timer),D.resolve("deny");this.pending.clear()}static key(D,$){return`${D}:${$}`}}var Mq,PU=60000;var vX=R(()=>{Mq=class Mq extends Error{name="ApprovalDisposedError";constructor(){super("approval store disposed")}}});class Rq{items=[];enqueue(D){this.items.push(D)}head(){return this.items[0]}shift(){return this.items.shift()}drain(){let D=this.items;return this.items=[],D}isEmpty(){return this.items.length===0}remove(D){let $=this.items.findIndex((X)=>X.handle.id===D);if($<0)return;let[F]=this.items.splice($,1);return F}values(){return this.items}}function xX(){return Date.now()}function M6(){return new Date().toISOString()}function LU(D){if(D===null||typeof D!=="object"||!("unref"in D))return;try{D.unref()}catch{}}class Z6{opts;handles=new Map;groups=new Map;running=new Map;runningGroups=new Set;runningByEngine=new Map;terminalLog=[];gcTimer=null;disposed=!1;enqueueSeq=0;constructor(D){this.opts=D;this.startGcLoop()}setLimits(D){if(D.maxConcurrentTotal!==void 0&&D.maxConcurrentTotal>0)this.opts.maxConcurrentTotal=D.maxConcurrentTotal;if(D.perEngineLimits!==void 0){for(let[$,F]of Object.entries(D.perEngineLimits))if(F===void 0)delete this.opts.perEngineLimits[$];else if(F>0)this.opts.perEngineLimits[$]=F}this.kick()}run(D){if(this.disposed)return Promise.reject(Error("ProcessManager disposed"));return new Promise(($,F)=>{let X=`proc_${crypto.randomUUID()}`,J={id:X,class:D.class??"default",group:D.group,engine:D.engine,state:"queued",meta:D.meta??null,startedAt:null,updatedAt:M6(),lastActivityAt:M6(),cancel:async()=>this.cancelHandle(X)};this.handles.set(X,J);let G={handle:J,req:D,enqueuedAt:xX(),enqueueSeq:++this.enqueueSeq,resolve:$,reject:F,cancelledBeforeStart:!1},Y=this.groups.get(D.group);if(!Y)Y=new Rq,this.groups.set(D.group,Y);if(Y.enqueue(G),D.signal)if(D.signal.aborted)this.cancelHandle(X).catch(()=>{return});else{let B=()=>{D.signal?.removeEventListener("abort",B),this.cancelHandle(X).catch(()=>{return})};D.signal.addEventListener("abort",B,{once:!0})}this.kick()})}async cancelGroup(D){let $=this.groups.get(D);if($)for(let X of $.drain())this.markCancelledBeforeStart(X);let F=[];for(let[,X]of this.running.entries())if(X.handle.group===D)F.push(this.cancelRunning(X));await Promise.allSettled(F),this.kick()}async cancelAll(){for(let $ of this.groups.values())for(let F of $.drain())this.markCancelledBeforeStart(F);let D=[];for(let $ of this.running.values())D.push(this.cancelRunning($));await Promise.allSettled(D),this.kick()}snapshot(){let D={queued:0,spawning:0,running:0,completed:0,failed:0,cancelled:0};for(let Y of this.handles.values())D[Y.state]+=1;let $=new Map,F=0;for(let Y of this.groups.values())for(let B of Y.values())F+=1,$.set(B.handle.engine,($.get(B.handle.engine)??0)+1);let X=new Set([...Object.keys(this.opts.perEngineLimits),...this.runningByEngine.keys(),...$.keys()]),J={};for(let Y of X){let B=this.opts.perEngineLimits[Y]??this.opts.maxConcurrentTotal,H=this.runningByEngine.get(Y)??0,U=$.get(Y)??0,Q=Math.max(0,B-H),V=Math.max(0,this.opts.maxConcurrentTotal-this.totalActive());J[Y]={limit:B,active:H,queued:U,available:Math.min(Q,V)}}let G=this.terminalLog.slice(-10).map((Y)=>({id:Y.handle.id,engine:Y.handle.engine,group:Y.handle.group,state:Y.handle.state,terminatedAt:Y.handle.updatedAt})).reverse();return{maxConcurrentTotal:this.opts.maxConcurrentTotal,totalActive:this.totalActive(),totalQueued:F,availableSlots:Math.max(0,this.opts.maxConcurrentTotal-this.totalActive()),perEngine:J,byState:D,recentTerminal:G}}dispose(){if(this.disposed=!0,this.gcTimer)clearInterval(this.gcTimer),this.gcTimer=null;for(let D of this.running.values()){if(D.stallTimer)clearTimeout(D.stallTimer);if(D.killTimer)clearTimeout(D.killTimer)}}totalActive(){return this.running.size}startGcLoop(){if(this.opts.gcIntervalMs<=0)return;this.gcTimer=setInterval(()=>this.gcTerminal(),this.opts.gcIntervalMs),LU(this.gcTimer)}gcTerminal(){let D=xX()-this.opts.autoCleanupDelayMs,$=[];for(let F of this.terminalLog)if(F.recordedAt>=D)$.push(F);else this.handles.delete(F.handle.id);this.terminalLog=$}async cancelHandle(D){let $=this.handles.get(D);if(!$)return;let X=this.groups.get($.group)?.remove(D);if(X){this.markCancelledBeforeStart(X),this.kick();return}let J=this.running.get(D);if(J)await this.cancelRunning(J)}markCancelledBeforeStart(D){if(D.cancelledBeforeStart)return;D.cancelledBeforeStart=!0,D.handle.state="cancelled",D.handle.updatedAt=M6(),this.terminalLog.push({handle:D.handle,recordedAt:xX()}),D.reject(Error("cancelled"))}async cancelRunning(D){if(D.cancelRequested&&!D.killEscalated){this.escalateKill(D);return}if(D.cancelRequested=!0,D.spawned)try{await D.spawned.cancel()}catch($){_.warn(`[process-manager] cancel for ${D.handle.id} failed: ${String($)}`)}if(!D.killTimer&&this.opts.killTimeoutMs>0)D.killTimer=setTimeout(()=>this.escalateKill(D),this.opts.killTimeoutMs),LU(D.killTimer)}escalateKill(D){if(D.killEscalated)return;if(D.killEscalated=!0,D.killTimer)clearTimeout(D.killTimer),D.killTimer=null;if(D.spawned)D.spawned.cancel().catch(($)=>_.warn(`[process-manager] hard kill for ${D.handle.id} failed: ${String($)}`))}kick(){if(this.disposed)return;while(!0){let D=this.pickNext();if(!D)return;this.startCandidate(D)}}pickNext(){let D=null,$=-1,F=Number.POSITIVE_INFINITY;for(let[X,J]of this.groups.entries()){if(J.isEmpty())continue;if(this.runningGroups.has(X))continue;let G=J.head();if(!this.canStart(G.handle))continue;let Y=ne[G.handle.class];if(Y>$||Y===$&&G.enqueueSeq<F)D=G,$=Y,F=G.enqueueSeq}return D}canStart(D){if(this.totalActive()>=this.opts.maxConcurrentTotal)return!1;let $=this.opts.perEngineLimits[D.engine]??this.opts.maxConcurrentTotal;if((this.runningByEngine.get(D.engine)??0)>=$)return!1;return!0}startCandidate(D){let $=this.groups.get(D.handle.group);if($?.shift(),$&&$.isEmpty())this.groups.delete(D.handle.group);let F={handle:D.handle,spawned:null,stallTimer:null,killTimer:null,cancelRequested:!1,killEscalated:!1};this.running.set(D.handle.id,F),this.runningGroups.add(D.handle.group),this.runningByEngine.set(D.handle.engine,(this.runningByEngine.get(D.handle.engine)??0)+1),D.handle.state="spawning",D.handle.startedAt=M6(),D.handle.lastActivityAt=D.handle.startedAt,D.handle.updatedAt=D.handle.startedAt,this.driveJob(F,D)}async driveJob(D,$){let{handle:F,req:X,resolve:J,reject:G}=$,Y=null;try{let B=await X.onSpawn();if(D.spawned=B,D.cancelRequested){try{await B.cancel()}catch{}throw Error("cancelled")}if(F.state="running",F.updatedAt=M6(),this.armStallTimer(D),Y=B.onActivity(()=>this.onActivity(D)),await X.job(),D.cancelRequested)F.state="cancelled",G(Error("cancelled"));else F.state="completed",J()}catch(B){F.state=D.cancelRequested?"cancelled":"failed",G(B)}finally{if(F.updatedAt=M6(),D.stallTimer)clearTimeout(D.stallTimer),D.stallTimer=null;if(D.killTimer)clearTimeout(D.killTimer),D.killTimer=null;if(Y)try{Y()}catch{}this.terminalLog.push({handle:F,recordedAt:xX()}),this.running.delete(F.id),this.runningGroups.delete(F.group);let B=this.runningByEngine.get(F.engine)??0;if(B<=1)this.runningByEngine.delete(F.engine);else this.runningByEngine.set(F.engine,B-1);if(!this.disposed)this.kick()}}armStallTimer(D){if(this.opts.stallTimeoutMs<=0)return;if(D.stallTimer)clearTimeout(D.stallTimer);D.stallTimer=setTimeout(()=>this.onStall(D),this.opts.stallTimeoutMs),LU(D.stallTimer)}onActivity(D){if(Zq.has(D.handle.state))return;D.handle.lastActivityAt=M6(),this.armStallTimer(D)}onStall(D){if(Zq.has(D.handle.state))return;if(D.cancelRequested)return;_.warn(`[process-manager] stall detected for ${D.handle.id} (engine=${D.handle.engine}, group=${D.handle.group})`),this.cancelRunning(D)}}var Zq,ne;var Oq=R(()=>{HD();Zq=new Set(["completed","failed","cancelled"]),ne={interactive:3,default:2,background:1}});class e3{url;token;clientName;clientVersion;timeoutMs;sessionId=null;idCounter=0;initPromise=null;constructor(D){this.url=D.url,this.token=D.token,this.clientName=D.clientName??"aiworker",this.clientVersion=D.clientVersion??"0.1.0",this.timeoutMs=D.timeoutMs??re}nextId(){return this.idCounter+=1,this.idCounter}headers(D){let $={"Content-Type":"application/json",Accept:"application/json, text/event-stream"};if(this.token)$.Authorization=`Bearer ${this.token}`;if(D&&this.sessionId)$["mcp-session-id"]=this.sessionId;return $}async postJson(D,$){let F=new AbortController,X=setTimeout(()=>F.abort(),this.timeoutMs);try{let J=await fetch(this.url,{method:"POST",headers:this.headers($),body:JSON.stringify(D),signal:F.signal});clearTimeout(X);let G=await J.text(),Y=null;if(G.length>0)try{Y=JSON.parse(G)}catch{Y=null}return{response:J,parsed:Y}}catch(J){throw clearTimeout(X),J instanceof Error?J:Error(String(J))}}async initialize(){let D={jsonrpc:"2.0",id:this.nextId(),method:"initialize",params:{protocolVersion:"2025-03-26",capabilities:{},clientInfo:{name:this.clientName,version:this.clientVersion}}},{response:$,parsed:F}=await this.postJson(D,!1);if(!$.ok)throw Error(`MCP initialize failed: HTTP ${$.status}`);if(F?.error)throw Error(`MCP initialize error: ${F.error.message}`);let X=$.headers.get("mcp-session-id");if(!X)throw Error("MCP initialize response missing mcp-session-id header");this.sessionId=X,await this.postJson({jsonrpc:"2.0",method:"notifications/initialized"},!0)}async ensureSession(){if(this.sessionId)return;if(!this.initPromise)this.initPromise=this.initialize().catch((D)=>{throw this.initPromise=null,D});await this.initPromise,this.initPromise=null}async invoke(D,$){await this.ensureSession();let F={jsonrpc:"2.0",id:this.nextId(),method:D,params:$},{response:X,parsed:J}=await this.postJson(F,!0);if(X.status===404||J?.error&&/session/i.test(J.error.message)){this.sessionId=null,await this.ensureSession();let G=await this.postJson({...F,id:this.nextId()},!0);X=G.response,J=G.parsed}if(!X.ok)throw Error(`MCP ${D} failed: HTTP ${X.status}`);if(!J)throw Error(`MCP ${D} returned non-JSON body`);if(J.error)throw Error(`MCP ${D} error: ${J.error.message}`);if(J.result===void 0)throw Error(`MCP ${D} response missing 'result'`);return J.result}async listTools(){return(await this.invoke("tools/list")).tools??[]}async callTool(D,$={}){return this.invoke("tools/call",{name:D,arguments:$})}async callToolJson(D,$={}){let X=(await this.callTool(D,$)).content.find((J)=>J.type==="text");if(!X)throw Error(`MCP tool '${D}' returned no text content`);try{return JSON.parse(X.text)}catch{return _.warn(`[mcp] tool '${D}' text is not JSON, returning raw string`),X.text}}}var re=30000;var Eq=R(()=>{HD()});var qU=R(()=>{Eq()});function jq(D){if(Array.isArray(D))return D.map(String);if(typeof D==="string"&&D.length>0)return D.split(",").map(($)=>$.trim()).filter(Boolean);return[]}function zU(D){let $=D.created_at??new Date().toISOString(),F=D.updated_at??$,{content:X,id:J,score:G,...Y}=D,B={id:J,content:X??"",metadata:{...Y,tags:jq(D.tags)},createdAt:$,updatedAt:F};if(typeof G==="number")B.score=G;return B}function se(D){return{id:D.id,name:D.name,description:D.description??"",version:D.default_ttl?String(D.default_ttl):"0",tags:D.is_public?["public"]:[]}}class IU{name="cloud-gateway";client;defaultCategory;defaultTypeId;constructor(D){this.client=new e3({url:D.url,token:D.token,clientName:"aiworker-brain",timeoutMs:D.timeoutMs}),this.defaultCategory=D.defaultCategory,this.defaultTypeId=D.defaultTypeId}async health(){let D=new Date().toISOString();try{return await this.client.ensureSession(),{name:this.name,status:"healthy",lastChecked:D}}catch{return{name:this.name,status:"down",lastChecked:D}}}async listSkills(){let D=await this.client.callToolJson("knowledge_types");if(!Array.isArray(D))return[];return D.filter(($)=>$.enabled!==!1).map(se)}async listMemories(D){let $={per_page:Math.min(Math.max(D?.limit??50,1),100),page:1},F=D?.tags?.find((G)=>G.startsWith("type:"));if(F)$.type_id=F.slice(5);let J=(await this.client.callToolJson("knowledge_query",$)).entries??[];if(D?.since)J=J.filter((G)=>!G.created_at||G.created_at>=D.since);if(D?.until)J=J.filter((G)=>!G.created_at||G.created_at<=D.until);return J.map(zU)}async searchMemories(D){let $=await this.client.callToolJson("knowledge_search",{query:D,limit:20});if(!Array.isArray($))return[];return $.map(zU)}async writeMemory(D){let $=D.metadata??{},F={content:D.content},X=typeof $.title==="string"?$.title:typeof $.name==="string"?$.name:void 0;if(X)F.title=X;let J=typeof $.type_id==="string"?$.type_id:this.defaultTypeId,G=typeof $.category==="string"?$.category:this.defaultCategory;if(J)F.type_id=J;else if(G)F.category=G;let Y=D.tags??jq($.tags);if(Y.length>0)F.tags=Y.join(",");let B=typeof $.source_type==="string"?$.source_type:"aiworker";if(F.source_type=B,typeof $.source_ref==="string")F.source_ref=$.source_ref;F.skip_compile=!0;let H=await this.client.callToolJson("knowledge_write",F);return zU(H)}}var Nq=R(()=>{qU()});import{basename as ae,join as yX,posix as oe}from"path";async function Pq(D){let $=new Bun.CryptoHasher("sha256");return $.update(D),$.digest("hex")}function Lq(D){let $=D.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);if(!$)return{metadata:{},content:D};try{return{metadata:K2($[1]??"")??{},content:$[2]??""}}catch{return{metadata:{},content:D}}}function te(D){let $=oe.dirname(D);return $==="."?ae(D,".md"):$}function ee(D,$,F){let{metadata:X,content:J}=Lq(D),G=String(X.id??te(F));return{body:J.trim(),id:G,name:String(X.name??G),description:String(X.description??J.split(`
1674
+ - _Skeleton placeholder._ PLAN-103 will project verification-matrix / regression-report artifacts here.`}});var DN=R(()=>{ej()});function C8(D,$,F){let X={id:$.id,type:$.type,priority:$.priority,readOnly:$.readOnly,writeTarget:$.id===F};if($.type==="filesystem")return{...X,home:$.config.home??u0(D)};return{...X,url:$.config.url}}var XX=R(()=>{$0()});class JX{max;items=[];constructor(D){this.max=D}push(D){if(this.items.push(D),this.items.length>this.max)this.items.shift()}toArray(){return this.items.slice()}size(){return this.items.length}clear(){this.items=[]}}function $N(){ZW.clear(),RW.clear(),OW.clear()}function GX(D){let $={source:D.source,reason:D.reason,at:new Date().toISOString()};ZW.push($),EW({...$,evaluator:D.evaluator??"heuristic",fallback:D.source==="intent-fallback",stage:"intent_classifier"})}function YX(D){let $=D.reason.startsWith("llm-retry-exhausted")||D.reason.startsWith("llm-budget-exhausted"),F={evaluator:D.evaluator,reason:D.reason,at:new Date().toISOString(),fallback:$};RW.push(F),EW({...F,source:D.evaluator,stage:"quality_gate"})}function BX(D){let $={source:D.source,reason:D.reason,at:new Date().toISOString(),fallback:D.source==="classifier-fallback"};OW.push($),EW({...$,evaluator:D.evaluator,stage:"conversation_classifier"})}function z3(D={}){let $=D.intentEvaluator??"heuristic",F=D.qualityEvaluator??"heuristic",X=D.qualityMode??"observe",J=D.conversationClassifierEnabled??!0,G=Os(),Y=G?.intent??ZW.toArray(),B=Y.filter((A)=>A.source==="intent-fallback"),H=G?.quality??RW.toArray(),U=H.filter((A)=>A.fallback),Q=G?.conversation??OW.toArray(),V=Q.filter((A)=>A.fallback);return{intentClassifier:{evaluator:$,mode:"observe_only",recent:MW(Y.length,B.map((A)=>({at:A.at,reason:A.reason})))},capabilityRouter:{source:"capability-registry",mode:"observe_only",note:"capability registry advisory; selections are recorded but not enforced"},qualityGate:{evaluator:F,configuredMode:X,...D.qualityThreshold===void 0?{}:{threshold:D.qualityThreshold},recent:MW(H.length,U.map((A)=>({at:A.at,reason:A.reason})))},conversationClassifier:{enabled:J,recent:Rs(Q.length,V.map((A)=>({at:A.at,reason:A.reason})))}}}function MW(D,$){let F=$.length===0?null:$[$.length-1];return{windowSize:J4,samples:D,fallbackRate:D===0?0:$.length/D,lastFallbackReason:F?.reason??null,lastFallbackAt:F?.at??null}}function Rs(D,$){let F=MW(D,$),X={};for(let J of $)X[J.reason]=(X[J.reason]??0)+1;return{...F,fallbackByReason:X}}function EW(D){try{b().insert(O2).values({stage:D.stage,source:D.source.slice(0,120),evaluator:D.evaluator.slice(0,120),reason:D.reason.slice(0,1000),fallback:D.fallback,createdAt:D.at}).run()}catch{}}function Os(){try{return{intent:CW("intent_classifier"),quality:CW("quality_gate"),conversation:CW("conversation_classifier")}}catch{return null}}function CW(D){return b().select({source:O2.source,evaluator:O2.evaluator,reason:O2.reason,at:O2.createdAt,fallback:O2.fallback}).from(O2).where(S(O2.stage,D)).orderBy(OD(O2.createdAt)).limit(J4).all().reverse()}var J4=50,ZW,RW,OW;var HX=R(()=>{gD();V0();ZW=new JX(J4),RW=new JX(J4),OW=new JX(J4)});function FN(D){if(I3.push(D),I3.length>20)I3.splice(0,I3.length-20)}function XN(){let D=I3.at(-1);if(!D)return{recentCount:0,status:"none"};return{lastDetectedAt:D.at,...D.claimExcerpt===void 0?{}:{claimExcerpt:D.claimExcerpt},reason:D.reason,recentCount:I3.length,status:"suspected"}}var I3;var jW=R(()=>{I3=[]});import{existsSync as Es,readFileSync as js}from"fs";import Ns from"path";function M8(D={}){return{admissions:Ls(),artifacts:Ps(),decisionPipeline:z3(D),scopeManifest:qs()}}function Ps(){let D=b().select({count:E`count(*)`.mapWith(Number),status:wD.status}).from(wD).groupBy(wD.status).all(),$={},F=0;for(let X of D)$[X.status]=X.count,F+=X.count;return{byStatus:$,total:F}}function Ls(){let D=b().select({count:E`count(*)`.mapWith(Number),status:FD.status}).from(FD).groupBy(FD.status).all(),$={};for(let G of D)$[G.status]=G.count;let X=b().select({updatedAt:FD.updatedAt}).from(FD).orderBy(E`updated_at DESC`).limit(1).all()[0]?.updatedAt,J={bypassRisk:XN(),byStatus:$};if(X!==void 0)J.lastUpdatedAt=X;return J}function qs(){let D=mD();if(D.scope!=="project"||!D.projectRoot)return{status:"not-applicable"};let $=Ns.join(D.projectRoot,".aiworker","scope.json");if(!Es($))return{status:"missing"};let F;try{F=js($,"utf8")}catch(Y){return{error:Y instanceof Error?Y.message:String(Y),status:"malformed"}}let X=q1(F);if(X.status==="malformed")return{error:X.error,status:"malformed"};let J=X.manifest,G={kind:J.kind,primarySoul:J.primarySoul,status:"ok"};if(J.privacy!==void 0)G.privacy=J.privacy;if(J.approval!==void 0)G.approval=J.approval;return G}var NW=R(()=>{$0();ZD();gD();V0();HX();jW()});import{Buffer as JN}from"buffer";import{timingSafeEqual as zs}from"crypto";function _1(D,$){let F=JN.from(D,"utf8"),X=JN.from($,"utf8");if(F.length!==X.length)return!1;return zs(F,X)}var WX=()=>{};import{Buffer as GN}from"buffer";import{createDecipheriv as Is,createHash as Ss}from"crypto";function ws(D,$){let F=Ss("sha256").update($,"utf8").digest(),X=GN.from(D,"base64");if(X.length<=16)throw Error("lark: encrypted payload too short");let J=X.subarray(0,16),G=X.subarray(16),Y=Is("aes-256-cbc",F,J);return GN.concat([Y.update(G),Y.final()]).toString("utf8")}function YN(D,$){let F=JSON.parse(D);if(typeof F.encrypt==="string"){if(!$)throw Error("lark: encrypted payload received but encryptKey is missing");return JSON.parse(ws(F.encrypt,$))}return F}function ks(D){return D.type==="url_verification"||D.header?.event_type==="url_verification"}function bs(D){if(typeof D.header?.token==="string")return D.header.token;if(typeof D.token==="string")return D.token;return}async function fs(D,$){let F=await fetch("https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({app_id:D,app_secret:$})});if(!F.ok){let J=await F.text().catch(()=>"");throw Error(`Lark token exchange HTTP ${F.status}: ${J}`)}let X=await F.json();if(typeof X.code==="number"&&X.code!==0)throw Error(`Lark token exchange error ${X.code}: ${X.msg??"unknown"}`);if(!X.tenant_access_token||typeof X.expire!=="number")throw Error("Lark token exchange returned malformed response");return{token:X.tenant_access_token,expiresAt:Date.now()+X.expire*1000}}async function gs(D,$){let F=PW.get(D);if(!F)F={},PW.set(D,F);if(F.current&&F.current.expiresAt-Date.now()>Ts)return F.current.token;if(F.inflight)return(await F.inflight).token;let X=F;return X.inflight=fs(D,$).then((J)=>{return X.current=J,J}).finally(()=>{X.inflight=void 0}),(await X.inflight).token}function hs(D){let $=typeof D.parent_id==="string"&&D.parent_id.length>0?D.parent_id:void 0;if(!$)return;return{quote:$}}function HN(){PW.clear()}var Ts=60000,PW,BN;var LW=R(()=>{WX();PW=new Map;BN={channel:"lark",async verify(D,$,F){if(F.credentials.channel!=="lark")throw Error("lark adapter called with non-lark credentials");let X=YN(D,F.credentials.encryptKey),J=bs(X);if(J===void 0||!_1(J,F.credentials.verificationToken))throw Error("invalid Lark verification token")},async toEnvelopes(D,$,F){if(!F||F.credentials.channel!=="lark")throw Error("lark adapter requires a lark binding for accountId derivation");let X=F.credentials.appId,J=F.credentials.encryptKey,G=YN(D,J);if(ks(G))return[];if(G.header?.event_type!=="im.message.receive_v1")return[];let Y=G.event?.message;if(!Y||Y.message_type!=="text")return[];let B="";try{let M=JSON.parse(Y.content);B=typeof M.text==="string"?M.text:""}catch{return[]}if(!B)return[];let H=G.event?.sender,U=H?.sender_id?.open_id,Q=H?.sender_id?.name,V=Y.chat_type==="group"?`group:${Y.chat_id}`:`p2p:${U??""}`,A=hs(Y);return[{workerId:$,channel:"lark",accountId:X,chatId:V,...U===void 0?{}:{userId:U},...Q===void 0?{}:{userDisplayName:Q},text:B,...A===void 0?{}:{richMetadata:A},receivedAt:new Date(Number(Y.create_time)).toISOString(),raw:G}]},async send(D,$){if(D.credentials.channel!=="lark")throw Error("lark adapter called with non-lark credentials");let{appId:F,appSecret:X}=D.credentials,J=await gs(F,X),[G,Y]=$.chatId.split(":",2);if(!G||!Y)throw Error(`lark send: malformed chatId ${$.chatId}`);if(G!=="group"&&G!=="p2p")throw Error(`lark send: unsupported chat kind "${G}"`);let H=await fetch(`https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=${G==="group"?"chat_id":"open_id"}`,{method:"POST",headers:{Authorization:`Bearer ${J}`,"Content-Type":"application/json"},body:JSON.stringify({receive_id:Y,msg_type:"text",content:JSON.stringify({text:$.text})})}),U=await H.json().catch(()=>({}));if(U.code!==0)throw Error(`Lark send failed: ${U.code??H.status} ${U.msg??H.statusText}`)}}});function S3(){return new Date().toISOString()}import{Buffer as WN}from"buffer";import{createHash as vs,createHmac as xs,timingSafeEqual as ys}from"crypto";function us(D,$){return xs("sha256",D).update($,"utf8").digest("base64")}function ms(D){switch(D.type){case"user":return`user:${D.userId}`;case"group":return`group:${D.groupId}`;case"room":return`room:${D.roomId}`}}function cs(D){let $=D.message?.quotedMessageId;if(typeof $!=="string"||$.length===0)return;return{quote:$}}var UN;var QN=R(()=>{UN={channel:"line",async verify(D,$,F){if(F.credentials.channel!=="line")throw Error("line adapter called with non-line credentials");let X=$["x-line-signature"];if(!X)throw Error("missing X-Line-Signature header");let J=us(F.credentials.channelSecret,D),G=WN.from(X,"base64"),Y=WN.from(J,"base64");if(G.length!==Y.length||!ys(G,Y))throw Error("invalid LINE signature")},async toEnvelopes(D,$,F){if(!F||F.credentials.channel!=="line")throw Error("line adapter requires a line binding for accountId derivation");let X=vs("sha256").update(F.credentials.channelAccessToken,"utf8").digest("hex").slice(0,16),J=JSON.parse(D),G=[];for(let Y of J.events){if(Y.type!=="message"||Y.message?.type!=="text"||!Y.message.text)continue;let B=ms(Y.source),H=Y.source.type==="user"?Y.source.userId:("userId"in Y.source)?Y.source.userId:void 0,U=cs(Y);G.push({workerId:$,channel:"line",accountId:X,chatId:B,...H===void 0?{}:{userId:H},text:Y.message.text,...U===void 0?{}:{richMetadata:U},receivedAt:new Date(Y.timestamp).toISOString()||S3(),raw:Y})}return G},async send(D,$){if(D.credentials.channel!=="line")throw Error("line adapter called with non-line credentials");let F=D.credentials.channelAccessToken,[X,J]=$.chatId.split(":",2);if(!X||!J)throw Error(`line send: malformed chatId ${$.chatId}`);let G=await fetch("https://api.line.me/v2/bot/message/push",{method:"POST",headers:{Authorization:`Bearer ${F}`,"Content-Type":"application/json"},body:JSON.stringify({to:J,messages:[{type:"text",text:$.text}]})});if(!G.ok){let Y=await G.text();throw Error(`LINE push failed: ${G.status} ${Y}`)}}}});import{Buffer as VN}from"buffer";import{createHash as ps,timingSafeEqual as ds}from"crypto";function rs(D,$){let F=VN.from(D,"utf8"),X=VN.from($,"utf8");if(F.length!==X.length)return!1;return ds(F,X)}function ss(D){if(!D)return;if(D.first_name)return D.last_name?`${D.first_name} ${D.last_name}`:D.first_name;return D.username}function as(D,$){if(D.length<=$)return[D];let F=[],X=D;while(X.length>$){let J=-1;for(let G=$-1;G>0;G--)if(ns.test(X[G])){J=G;break}if(J>0)F.push(X.slice(0,J)),X=X.slice(J+1);else F.push(X.slice(0,$)),X=X.slice($)}if(X.length>0)F.push(X);return F}function os(D){if(D.botUsername&&D.botUsername.length>0)return D.botUsername;return ps("sha256").update(D.botToken,"utf8").digest("hex").slice(0,16)}function ts(D){let $={};if(typeof D.edit_date==="number")$.isEdit=!0;let F=D.reply_to_message;if(F){let X=F.from?.id?.toString();if(X!==void 0)$.replyTo={authorId:X,text:typeof F.text==="string"?F.text:""}}return $.isEdit===void 0&&$.replyTo===void 0?void 0:$}var ls=4096,is="x-telegram-bot-api-secret-token",ns,AN;var KN=R(()=>{ns=/\s/;AN={channel:"telegram",async verify(D,$,F){if(F.credentials.channel!=="telegram")throw Error("telegram adapter called with non-telegram credentials");let X=F.credentials.webhookSecretToken;if(!X)return;let J=$[is];if(!J||!rs(J,X))throw Error("invalid X-Telegram-Bot-Api-Secret-Token")},async toEnvelopes(D,$,F){if(!F||F.credentials.channel!=="telegram")throw Error("telegram adapter requires a telegram binding for accountId derivation");let X=JSON.parse(D),J=X.message;if(!J||typeof J.text!=="string")return[];let G=`${J.chat.type}:${J.chat.id}`,Y=J.from?.id?.toString(),B=ss(J.from),H=Number.isFinite(J.date)?new Date(J.date*1000).toISOString():S3(),U=os(F.credentials),Q=ts(J);return[{workerId:$,channel:"telegram",accountId:U,chatId:G,...Y===void 0?{}:{userId:Y},...B===void 0?{}:{userDisplayName:B},text:J.text,...Q===void 0?{}:{richMetadata:Q},receivedAt:H,raw:X}]},async send(D,$){if(D.credentials.channel!=="telegram")throw Error("telegram adapter called with non-telegram credentials");let F=D.credentials.botToken,X=$.chatId.indexOf(":");if(X<=0||X===$.chatId.length-1)throw Error(`telegram send: malformed chatId ${$.chatId}`);let J=$.chatId.slice(X+1),G=Number(J);if(!Number.isFinite(G)||!Number.isInteger(G))throw Error(`telegram send: malformed chatId ${$.chatId}`);let Y=`https://api.telegram.org/bot${F}/sendMessage`,B=as($.text,ls);for(let H of B){let U=await fetch(Y,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({chat_id:G,text:H})});if(!U.ok){let Q=await U.text();throw Error(`Telegram sendMessage failed: ${U.status} ${Q}`)}}}}});function Da(D){if(!D)return;let $={};if(D.isEdit===!0)$.isEdit=!0;if(D.isDelete===!0)$.isDelete=!0;if(D.replyTo&&typeof D.replyTo.authorId==="string"&&typeof D.replyTo.text==="string")$.replyTo={authorId:D.replyTo.authorId,text:D.replyTo.text};if(typeof D.quote==="string"&&D.quote.length>0)$.quote=D.quote;return Object.keys($).length===0?void 0:$}function $a(D){let $=D.authorization;if(!$)return null;let F=/^bearer\s+(\S+)\s*$/i.exec($);return F?F[1]:null}var es="default",_N;var CN=R(()=>{WX();_N={channel:"web",async verify(D,$,F){if(F.credentials.channel!=="web")throw Error("web adapter called with non-web credentials");let X=F.credentials.inboundToken;if(!X||X.length===0)throw Error("web channel binding has no inboundToken \u2014 refusing inbound traffic");let J=$a($);if(!J||!_1(J,X))throw Error("invalid Authorization bearer token")},async toEnvelopes(D,$,F){let X=F?.id&&F.id.length>0?F.id:es,J=JSON.parse(D),G=Da(J.metadata);return[{workerId:$,channel:"web",accountId:X,chatId:J.chatId,...J.threadId===void 0?{}:{threadId:J.threadId},...J.userId===void 0?{}:{userId:J.userId},...J.userDisplayName===void 0?{}:{userDisplayName:J.userDisplayName},text:J.text,...G===void 0?{}:{richMetadata:G},receivedAt:S3(),raw:J}]},async send(){}}});import{Buffer as MN}from"buffer";import{createHmac as Fa,timingSafeEqual as Xa}from"crypto";function Ga(D){switch(D.type){case"text":return D.text?.body;case"image":return D.image?.caption;case"audio":return D.audio?.caption;case"video":return D.video?.caption;case"document":return D.document?.caption;default:return}}function Ya(D){let $=D.context;if(!$||typeof $.from!=="string"||$.from.length===0)return;let F={replyTo:{authorId:$.from,text:""}};if(typeof $.id==="string"&&$.id.length>0)F.quote=$.id;return F}var Ja="v21.0",ZN;var RN=R(()=>{ZN={channel:"whatsapp",async verify(D,$,F){if(F.credentials.channel!=="whatsapp")throw Error("whatsapp adapter called with non-whatsapp credentials");let X=$["x-hub-signature-256"];if(!X)throw Error("missing X-Hub-Signature-256 header");let[J,G]=X.split("=",2);if(J!=="sha256"||!G)throw Error("invalid X-Hub-Signature-256 format");let Y=Fa("sha256",F.credentials.appSecret).update(D,"utf8").digest("hex"),B=MN.from(G,"hex"),H=MN.from(Y,"hex");if(B.length!==H.length||!Xa(B,H))throw Error("invalid WhatsApp signature")},async toEnvelopes(D,$,F){if(!F||F.credentials.channel!=="whatsapp")throw Error("whatsapp adapter requires a whatsapp binding for accountId derivation");let X=F.credentials.phoneNumberId,J=JSON.parse(D),G=[];for(let Y of J.entry??[])for(let B of Y.changes??[]){let H=B.value;if(!H||!H.messages||H.messages.length===0)continue;let U=H.contacts??[];for(let Q of H.messages){let V=Ga(Q);if(V===void 0)continue;let A=Q.from,M=U.find((Z)=>Z.wa_id===A)?.profile?.name,C=Ya(Q);G.push({workerId:$,channel:"whatsapp",accountId:X,chatId:A,userId:A,...M?{userDisplayName:M}:{},text:V,...C===void 0?{}:{richMetadata:C},receivedAt:new Date(Number(Q.timestamp)*1000).toISOString(),raw:Q})}}return G},async send(D,$){if(D.credentials.channel!=="whatsapp")throw Error("whatsapp adapter called with non-whatsapp credentials");let{phoneNumberId:F,accessToken:X}=D.credentials,J=`https://graph.facebook.com/${Ja}/${F}/messages`,G=await fetch(J,{method:"POST",headers:{Authorization:`Bearer ${X}`,"Content-Type":"application/json"},body:JSON.stringify({messaging_product:"whatsapp",recipient_type:"individual",to:$.chatId,type:"text",text:{preview_url:!1,body:$.text}})});if(!G.ok){let Y=await G.text();throw Error(`WhatsApp send failed: ${G.status} ${Y}`)}}}});function B6(D){return Ba[D]}class G4{byChannel;constructor(D){this.byChannel=new Map;for(let $ of D)if($.enabled)this.byChannel.set($.channel,$)}list(){return Array.from(this.byChannel.values())}get(D){return this.byChannel.get(D)??null}adapter(D){return B6(D)}}var Ba;var Y4=R(()=>{LW();QN();KN();CN();RN();Ba={web:_N,line:UN,telegram:AN,lark:BN,whatsapp:ZN}});function g1(D){let $=[];D.brains.forEach((X,J)=>{if(X.type==="cloud-gateway")$.push({path:`brains.${J}.config.token`,value:X.config.token})}),qW(D.executor,"executor",$);let F=D.orchestrator?.decisionPipeline?.executor;if(F)qW(F,"orchestrator.decisionPipeline.executor",$);return D.channels.forEach((X)=>{let J=X.credentials;switch(J.channel){case"line":$.push({path:"channels.line.credentials.channelSecret",value:J.channelSecret},{path:"channels.line.credentials.channelAccessToken",value:J.channelAccessToken});break;case"telegram":if($.push({path:"channels.telegram.credentials.botToken",value:J.botToken}),J.webhookSecretToken)$.push({path:"channels.telegram.credentials.webhookSecretToken",value:J.webhookSecretToken});break;case"lark":$.push({path:"channels.lark.credentials.appSecret",value:J.appSecret},{path:"channels.lark.credentials.encryptKey",value:J.encryptKey},{path:"channels.lark.credentials.verificationToken",value:J.verificationToken});break;case"whatsapp":$.push({path:"channels.whatsapp.credentials.accessToken",value:J.accessToken},{path:"channels.whatsapp.credentials.appSecret",value:J.appSecret},{path:"channels.whatsapp.credentials.verifyToken",value:J.verifyToken});break;case"web":if(J.inboundToken&&J.inboundToken.length>0)$.push({path:"channels.web.credentials.inboundToken",value:J.inboundToken});break}}),$}function UX(D){let $=structuredClone(D);return $.brains=$.brains.map((F)=>{if(F.type==="cloud-gateway")return{...F,config:{...F.config,token:""}};return F}),Ha($),$.channels=$.channels.map((F)=>{let X=F.credentials;switch(X.channel){case"line":return{...F,credentials:{...X,channelSecret:"",channelAccessToken:""}};case"telegram":return{...F,credentials:{...X,botToken:"",webhookSecretToken:X.webhookSecretToken===void 0?void 0:""}};case"lark":return{...F,credentials:{...X,appSecret:"",encryptKey:"",verificationToken:""}};case"whatsapp":return{...F,credentials:{...X,accessToken:"",appSecret:"",verifyToken:""}};case"web":return{...F,credentials:{...X,inboundToken:X.inboundToken===void 0?void 0:""}};default:return F}}),$}function T3(D,$){let F=structuredClone(D);return F.brains=F.brains.map((X,J)=>{if(X.type==="cloud-gateway")return{...X,config:{...X.config,token:$.get(`brains.${J}.config.token`)??""}};return X}),Wa(F,$),F.channels=F.channels.map((X)=>{let J=X.credentials;switch(J.channel){case"line":return{...X,credentials:{...J,channelSecret:$.get("channels.line.credentials.channelSecret")??"",channelAccessToken:$.get("channels.line.credentials.channelAccessToken")??""}};case"telegram":{let G=$.get("channels.telegram.credentials.webhookSecretToken");return{...X,credentials:{...J,botToken:$.get("channels.telegram.credentials.botToken")??"",webhookSecretToken:G??J.webhookSecretToken}}}case"lark":return{...X,credentials:{...J,appSecret:$.get("channels.lark.credentials.appSecret")??"",encryptKey:$.get("channels.lark.credentials.encryptKey")??"",verificationToken:$.get("channels.lark.credentials.verificationToken")??""}};case"whatsapp":return{...X,credentials:{...J,accessToken:$.get("channels.whatsapp.credentials.accessToken")??"",appSecret:$.get("channels.whatsapp.credentials.appSecret")??"",verifyToken:$.get("channels.whatsapp.credentials.verifyToken")??""}};case"web":{let G=$.get("channels.web.credentials.inboundToken");return{...X,credentials:{...J,inboundToken:G??J.inboundToken}}}default:return X}}),F}function qW(D,$,F){let X=D.overrides??{};if(D.engine==="http"&&typeof X.apiKey==="string")F.push({path:`${$}.overrides.apiKey`,value:X.apiKey});else if(D.engine==="mcp"&&typeof X.token==="string")F.push({path:`${$}.overrides.token`,value:X.token});D.fallbacks?.forEach((J,G)=>{qW(J.executor,`${$}.fallbacks.${G}.executor`,F)})}function Ha(D){D.executor=zW(D.executor);let $=D.orchestrator?.decisionPipeline,F=$?.executor;if(F)D.orchestrator={...D.orchestrator,decisionPipeline:{...$,executor:zW(F)}}}function zW(D){let $={...D.overrides??{}};if(D.engine==="http"&&typeof $.apiKey==="string")$.apiKey="";if(D.engine==="mcp"&&typeof $.token==="string")$.token="";return{...D,overrides:$,...D.fallbacks===void 0?{}:{fallbacks:D.fallbacks.map((F)=>({...F,executor:zW(F.executor)}))}}}function Wa(D,$){D.executor=IW(D.executor,$,"executor");let F=D.orchestrator?.decisionPipeline,X=F?.executor;if(X)D.orchestrator={...D.orchestrator,decisionPipeline:{...F,executor:IW(X,$,"orchestrator.decisionPipeline.executor")}}}function IW(D,$,F){let X={...D.overrides??{}};if(D.engine==="http"){let J=$.get(`${F}.overrides.apiKey`);if(J!==void 0)X.apiKey=J}else if(D.engine==="mcp"){let J=$.get(`${F}.overrides.token`);if(J!==void 0)X.token=J}return{...D,overrides:X,...D.fallbacks===void 0?{}:{fallbacks:D.fallbacks.map((J,G)=>({...J,executor:IW(J.executor,$,`${F}.fallbacks.${G}.executor`)}))}}}var EN=u((ON)=>{Object.defineProperty(ON,"__esModule",{value:!0})});var Z8=u((jN)=>{Object.defineProperty(jN,"__esModule",{value:!0});jN.CronField=void 0;class SW{#D=!1;#$=!1;#X=!1;#G=[];options={rawValue:""};static get min(){throw Error("min must be overridden")}static get max(){throw Error("max must be overridden")}static get chars(){return Object.freeze([])}static get validChars(){return/^[?,*\dH/-]+$|^.*H\(\d+-\d+\)\/\d+.*$|^.*H\(\d+-\d+\).*$|^.*H\/\d+.*$/}static get constraints(){return{min:this.min,max:this.max,chars:this.chars,validChars:this.validChars}}constructor(D,$={rawValue:""}){if(!Array.isArray(D))throw Error(`${this.constructor.name} Validation error, values is not an array`);if(!(D.length>0))throw Error(`${this.constructor.name} Validation error, values contains no values`);this.options={...$,rawValue:$.rawValue??""},this.#G=D.sort(SW.sorter),this.#X=this.options.wildcard!==void 0?this.options.wildcard:this.#J(),this.#D=this.options.rawValue.includes("L")||D.includes("L"),this.#$=this.options.rawValue.includes("?")||D.includes("?")}get min(){return this.constructor.min}get max(){return this.constructor.max}get chars(){return this.constructor.chars}get hasLastChar(){return this.#D}get hasQuestionMarkChar(){return this.#$}get isWildcard(){return this.#X}get values(){return this.#G}static sorter(D,$){let F=typeof D==="number",X=typeof $==="number";if(F&&X)return D-$;if(!F&&!X)return D.localeCompare($);return F?-1:1}static findNearestValueInList(D,$,F=!1){if(F){for(let X=D.length-1;X>=0;X--)if(D[X]<$)return D[X];return null}for(let X=0;X<D.length;X++)if(D[X]>$)return D[X];return null}findNearestValue(D,$=!1){return this.constructor.findNearestValueInList(this.values,D,$)}serialize(){return{wildcard:this.#X,values:this.#G}}validate(){let D,$=this.chars.length>0?` or chars ${this.chars.join("")}`:"",F=(Y)=>(B)=>new RegExp(`^\\d{0,2}${B}$`).test(Y),X=(Y)=>{return D=Y,typeof Y==="number"?Y>=this.min&&Y<=this.max:this.chars.some(F(Y))};if(!this.#G.every(X))throw Error(`${this.constructor.name} Validation error, got value ${D} expected range ${this.min}-${this.max}${$}`);let G=this.#G.find((Y,B)=>this.#G.indexOf(Y)!==B);if(G)throw Error(`${this.constructor.name} Validation error, duplicate values found: ${G}`)}#J(){if(this.options.rawValue.length>0)return["*","?"].includes(this.options.rawValue);return Array.from({length:this.max-this.min+1},(D,$)=>$+this.min).every((D)=>this.#G.includes(D))}}jN.CronField=SW});var zN=u((LN)=>{Object.defineProperty(LN,"__esModule",{value:!0});LN.CronDayOfMonth=void 0;var Ua=Z8(),Qa=1,Va=31,Aa=Object.freeze(["L"]);class PN extends Ua.CronField{static get min(){return Qa}static get max(){return Va}static get chars(){return Aa}static get validChars(){return/^[?,*\dLH/-]+$|^.*H\(\d+-\d+\)\/\d+.*$|^.*H\(\d+-\d+\).*$|^.*H\/\d+.*$/}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}LN.CronDayOfMonth=PN});var wN=u((SN)=>{Object.defineProperty(SN,"__esModule",{value:!0});SN.CronDayOfWeek=void 0;var Ka=Z8(),_a=0,Ca=7,Ma=Object.freeze(["L"]);class IN extends Ka.CronField{static get min(){return _a}static get max(){return Ca}static get chars(){return Ma}static get validChars(){return/^[?,*\dLH#/-]+$|^.*H\(\d+-\d+\)\/\d+.*$|^.*H\(\d+-\d+\).*$|^.*H\/\d+.*$/}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}get nthDay(){return this.options.nthDayOfWeek??0}}SN.CronDayOfWeek=IN});var gN=u((bN)=>{Object.defineProperty(bN,"__esModule",{value:!0});bN.CronHour=void 0;var Za=Z8(),Ra=0,Oa=23,Ea=Object.freeze([]);class kN extends Za.CronField{static get min(){return Ra}static get max(){return Oa}static get chars(){return Ea}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}bN.CronHour=kN});var yN=u((vN)=>{Object.defineProperty(vN,"__esModule",{value:!0});vN.CronMinute=void 0;var ja=Z8(),Na=0,Pa=59,La=Object.freeze([]);class hN extends ja.CronField{static get min(){return Na}static get max(){return Pa}static get chars(){return La}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}vN.CronMinute=hN});var jL=u((EL)=>{Object.defineProperty(EL,"__esModule",{value:!0});class j8 extends Error{}class CP extends j8{constructor(D){super(`Invalid DateTime: ${D.toMessage()}`)}}class MP extends j8{constructor(D){super(`Invalid Interval: ${D.toMessage()}`)}}class ZP extends j8{constructor(D){super(`Invalid Duration: ${D.toMessage()}`)}}class U6 extends j8{}class aW extends j8{constructor(D){super(`Invalid unit ${D}`)}}class T0 extends j8{}class v1 extends j8{constructor(){super("Zone is an abstract class")}}var l="numeric",D1="short",W2="long",ZX={year:l,month:l,day:l},RP={year:l,month:D1,day:l},qa={year:l,month:D1,day:l,weekday:D1},OP={year:l,month:W2,day:l},EP={year:l,month:W2,day:l,weekday:W2},jP={hour:l,minute:l},NP={hour:l,minute:l,second:l},PP={hour:l,minute:l,second:l,timeZoneName:D1},LP={hour:l,minute:l,second:l,timeZoneName:W2},qP={hour:l,minute:l,hourCycle:"h23"},zP={hour:l,minute:l,second:l,hourCycle:"h23"},IP={hour:l,minute:l,second:l,hourCycle:"h23",timeZoneName:D1},SP={hour:l,minute:l,second:l,hourCycle:"h23",timeZoneName:W2},TP={year:l,month:l,day:l,hour:l,minute:l},wP={year:l,month:l,day:l,hour:l,minute:l,second:l},kP={year:l,month:D1,day:l,hour:l,minute:l},bP={year:l,month:D1,day:l,hour:l,minute:l,second:l},za={year:l,month:D1,day:l,weekday:D1,hour:l,minute:l},fP={year:l,month:W2,day:l,hour:l,minute:l,timeZoneName:D1},gP={year:l,month:W2,day:l,hour:l,minute:l,second:l,timeZoneName:D1},hP={year:l,month:W2,day:l,weekday:W2,hour:l,minute:l,timeZoneName:W2},vP={year:l,month:W2,day:l,weekday:W2,hour:l,minute:l,second:l,timeZoneName:W2};class V6{get type(){throw new v1}get name(){throw new v1}get ianaName(){return this.name}get isUniversal(){throw new v1}offsetName(D,$){throw new v1}formatOffset(D,$){throw new v1}offset(D){throw new v1}equals(D){throw new v1}get isValid(){throw new v1}}var TW=null;class A4 extends V6{static get instance(){if(TW===null)TW=new A4;return TW}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(D,{format:$,locale:F}){return oP(D,$,F)}formatOffset(D,$){return Q4(this.offset(D),$)}offset(D){return-new Date(D).getTimezoneOffset()}equals(D){return D.type==="system"}get isValid(){return!0}}var yW=new Map;function Ia(D){let $=yW.get(D);if($===void 0)$=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:D,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),yW.set(D,$);return $}var Sa={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Ta(D,$){let F=D.format($).replace(/\u200E/g,""),X=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(F),[,J,G,Y,B,H,U,Q]=X;return[Y,J,G,B,H,U,Q]}function wa(D,$){let F=D.formatToParts($),X=[];for(let J=0;J<F.length;J++){let{type:G,value:Y}=F[J],B=Sa[G];if(G==="era")X[B]=Y;else if(!GD(B))X[B]=parseInt(Y,10)}return X}var wW=new Map;class C1 extends V6{static create(D){let $=wW.get(D);if($===void 0)wW.set(D,$=new C1(D));return $}static resetCache(){wW.clear(),yW.clear()}static isValidSpecifier(D){return this.isValidZone(D)}static isValidZone(D){if(!D)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:D}).format(),!0}catch($){return!1}}constructor(D){super();this.zoneName=D,this.valid=C1.isValidZone(D)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(D,{format:$,locale:F}){return oP(D,$,F,this.name)}formatOffset(D,$){return Q4(this.offset(D),$)}offset(D){if(!this.valid)return NaN;let $=new Date(D);if(isNaN($))return NaN;let F=Ia(this.name),[X,J,G,Y,B,H,U]=F.formatToParts?wa(F,$):Ta(F,$);if(Y==="BC")X=-Math.abs(X)+1;let V=NX({year:X,month:J,day:G,hour:B===24?0:B,minute:H,second:U,millisecond:0}),A=+$,K=A%1000;return A-=K>=0?K:1000+K,(V-A)/60000}equals(D){return D.type==="iana"&&D.name===this.name}get isValid(){return this.valid}}var uN={};function ka(D,$={}){let F=JSON.stringify([D,$]),X=uN[F];if(!X)X=new Intl.ListFormat(D,$),uN[F]=X;return X}var uW=new Map;function mW(D,$={}){let F=JSON.stringify([D,$]),X=uW.get(F);if(X===void 0)X=new Intl.DateTimeFormat(D,$),uW.set(F,X);return X}var cW=new Map;function ba(D,$={}){let F=JSON.stringify([D,$]),X=cW.get(F);if(X===void 0)X=new Intl.NumberFormat(D,$),cW.set(F,X);return X}var pW=new Map;function fa(D,$={}){let{base:F,...X}=$,J=JSON.stringify([D,X]),G=pW.get(J);if(G===void 0)G=new Intl.RelativeTimeFormat(D,$),pW.set(J,G);return G}var H4=null;function ga(){if(H4)return H4;else return H4=new Intl.DateTimeFormat().resolvedOptions().locale,H4}var dW=new Map;function xP(D){let $=dW.get(D);if($===void 0)$=new Intl.DateTimeFormat(D).resolvedOptions(),dW.set(D,$);return $}var lW=new Map;function ha(D){let $=lW.get(D);if(!$){let F=new Intl.Locale(D);if($="getWeekInfo"in F?F.getWeekInfo():F.weekInfo,!("minimalDays"in $))$={...cP,...$};lW.set(D,$)}return $}function va(D){let $=D.indexOf("-x-");if($!==-1)D=D.substring(0,$);let F=D.indexOf("-u-");if(F===-1)return[D];else{let X,J;try{X=mW(D).resolvedOptions(),J=D}catch(B){let H=D.substring(0,F);X=mW(H).resolvedOptions(),J=H}let{numberingSystem:G,calendar:Y}=X;return[J,G,Y]}}function xa(D,$,F){if(F||$){if(!D.includes("-u-"))D+="-u";if(F)D+=`-ca-${F}`;if($)D+=`-nu-${$}`;return D}else return D}function ya(D){let $=[];for(let F=1;F<=12;F++){let X=BD.utc(2009,F,1);$.push(D(X))}return $}function ua(D){let $=[];for(let F=1;F<=7;F++){let X=BD.utc(2016,11,13+F);$.push(D(X))}return $}function QX(D,$,F,X){let J=D.listingMode();if(J==="error")return null;else if(J==="en")return F($);else return X($)}function ma(D){if(D.numberingSystem&&D.numberingSystem!=="latn")return!1;else return D.numberingSystem==="latn"||!D.locale||D.locale.startsWith("en")||xP(D.locale).numberingSystem==="latn"}class yP{constructor(D,$,F){this.padTo=F.padTo||0,this.floor=F.floor||!1;let{padTo:X,floor:J,...G}=F;if(!$||Object.keys(G).length>0){let Y={useGrouping:!1,...F};if(F.padTo>0)Y.minimumIntegerDigits=F.padTo;this.inf=ba(D,Y)}}format(D){if(this.inf){let $=this.floor?Math.floor(D):D;return this.inf.format($)}else{let $=this.floor?Math.floor(D):FU(D,3);return A0($,this.padTo)}}}class uP{constructor(D,$,F){this.opts=F,this.originalZone=void 0;let X=void 0;if(this.opts.timeZone)this.dt=D;else if(D.zone.type==="fixed"){let G=-1*(D.offset/60),Y=G>=0?`Etc/GMT+${G}`:`Etc/GMT${G}`;if(D.offset!==0&&C1.create(Y).valid)X=Y,this.dt=D;else X="UTC",this.dt=D.offset===0?D:D.setZone("UTC").plus({minutes:D.offset}),this.originalZone=D.zone}else if(D.zone.type==="system")this.dt=D;else if(D.zone.type==="iana")this.dt=D,X=D.zone.name;else X="UTC",this.dt=D.setZone("UTC").plus({minutes:D.offset}),this.originalZone=D.zone;let J={...this.opts};J.timeZone=J.timeZone||X,this.dtf=mW($,J)}format(){if(this.originalZone)return this.formatToParts().map(({value:D})=>D).join("");return this.dtf.format(this.dt.toJSDate())}formatToParts(){let D=this.dtf.formatToParts(this.dt.toJSDate());if(this.originalZone)return D.map(($)=>{if($.type==="timeZoneName"){let F=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...$,value:F}}else return $});return D}resolvedOptions(){return this.dtf.resolvedOptions()}}class mP{constructor(D,$,F){if(this.opts={style:"long",...F},!$&&sP())this.rtf=fa(D,F)}format(D,$){if(this.rtf)return this.rtf.format(D,$);else return Ho($,D,this.opts.numeric,this.opts.style!=="long")}formatToParts(D,$){if(this.rtf)return this.rtf.formatToParts(D,$);else return[]}}var cP={firstDay:1,minimalDays:4,weekend:[6,7]};class zD{static fromOpts(D){return zD.create(D.locale,D.numberingSystem,D.outputCalendar,D.weekSettings,D.defaultToEN)}static create(D,$,F,X,J=!1){let G=D||sD.defaultLocale,Y=G||(J?"en-US":ga()),B=$||sD.defaultNumberingSystem,H=F||sD.defaultOutputCalendar,U=nW(X)||sD.defaultWeekSettings;return new zD(Y,B,H,U,G)}static resetCache(){H4=null,uW.clear(),cW.clear(),pW.clear(),dW.clear(),lW.clear()}static fromObject({locale:D,numberingSystem:$,outputCalendar:F,weekSettings:X}={}){return zD.create(D,$,F,X)}constructor(D,$,F,X,J){let[G,Y,B]=va(D);this.locale=G,this.numberingSystem=$||Y||null,this.outputCalendar=F||B||null,this.weekSettings=X,this.intl=xa(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=J,this.fastNumbersCached=null}get fastNumbers(){if(this.fastNumbersCached==null)this.fastNumbersCached=ma(this);return this.fastNumbersCached}listingMode(){let D=this.isEnglish(),$=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return D&&$?"en":"intl"}clone(D){if(!D||Object.getOwnPropertyNames(D).length===0)return this;else return zD.create(D.locale||this.specifiedLocale,D.numberingSystem||this.numberingSystem,D.outputCalendar||this.outputCalendar,nW(D.weekSettings)||this.weekSettings,D.defaultToEN||!1)}redefaultToEN(D={}){return this.clone({...D,defaultToEN:!0})}redefaultToSystem(D={}){return this.clone({...D,defaultToEN:!1})}months(D,$=!1){return QX(this,D,DL,()=>{let F=this.intl==="ja"||this.intl.startsWith("ja-");$&=!F;let X=$?{month:D,day:"numeric"}:{month:D},J=$?"format":"standalone";if(!this.monthsCache[J][D]){let G=!F?(Y)=>this.extract(Y,X,"month"):(Y)=>this.dtFormatter(Y,X).format();this.monthsCache[J][D]=ya(G)}return this.monthsCache[J][D]})}weekdays(D,$=!1){return QX(this,D,XL,()=>{let F=$?{weekday:D,year:"numeric",month:"long",day:"numeric"}:{weekday:D},X=$?"format":"standalone";if(!this.weekdaysCache[X][D])this.weekdaysCache[X][D]=ua((J)=>this.extract(J,F,"weekday"));return this.weekdaysCache[X][D]})}meridiems(){return QX(this,void 0,()=>JL,()=>{if(!this.meridiemCache){let D={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[BD.utc(2016,11,13,9),BD.utc(2016,11,13,19)].map(($)=>this.extract($,D,"dayperiod"))}return this.meridiemCache})}eras(D){return QX(this,D,GL,()=>{let $={era:D};if(!this.eraCache[D])this.eraCache[D]=[BD.utc(-40,1,1),BD.utc(2017,1,1)].map((F)=>this.extract(F,$,"era"));return this.eraCache[D]})}extract(D,$,F){let X=this.dtFormatter(D,$),J=X.formatToParts(),G=J.find((Y)=>Y.type.toLowerCase()===F);return G?G.value:null}numberFormatter(D={}){return new yP(this.intl,D.forceSimple||this.fastNumbers,D)}dtFormatter(D,$={}){return new uP(D,this.intl,$)}relFormatter(D={}){return new mP(this.intl,this.isEnglish(),D)}listFormatter(D={}){return ka(this.intl,D)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||xP(this.intl).locale.startsWith("en-us")}getWeekSettings(){if(this.weekSettings)return this.weekSettings;else if(!aP())return cP;else return ha(this.locale)}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(D){return this.locale===D.locale&&this.numberingSystem===D.numberingSystem&&this.outputCalendar===D.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}}var kW=null;class h0 extends V6{static get utcInstance(){if(kW===null)kW=new h0(0);return kW}static instance(D){return D===0?h0.utcInstance:new h0(D)}static parseSpecifier(D){if(D){let $=D.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if($)return new h0(PX($[1],$[2]))}return null}constructor(D){super();this.fixed=D}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Q4(this.fixed,"narrow")}`}get ianaName(){if(this.fixed===0)return"Etc/UTC";else return`Etc/GMT${Q4(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(D,$){return Q4(this.fixed,$)}get isUniversal(){return!0}offset(){return this.fixed}equals(D){return D.type==="fixed"&&D.fixed===this.fixed}get isValid(){return!0}}class oW extends V6{constructor(D){super();this.zoneName=D}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}}function O8(D,$){if(GD(D)||D===null)return $;else if(D instanceof V6)return D;else if(na(D)){let F=D.toLowerCase();if(F==="default")return $;else if(F==="local"||F==="system")return A4.instance;else if(F==="utc"||F==="gmt")return h0.utcInstance;else return h0.parseSpecifier(F)||C1.create(D)}else if(E8(D))return h0.instance(D);else if(typeof D==="object"&&"offset"in D&&typeof D.offset==="function")return D;else return new oW(D)}var tW={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},mN={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},ca=tW.hanidec.replace(/[\[|\]]/g,"").split("");function pa(D){let $=parseInt(D,10);if(isNaN($)){$="";for(let F=0;F<D.length;F++){let X=D.charCodeAt(F);if(D[F].search(tW.hanidec)!==-1)$+=ca.indexOf(D[F]);else for(let J in mN){let[G,Y]=mN[J];if(X>=G&&X<=Y)$+=X-G}}return parseInt($,10)}else return $}var iW=new Map;function da(){iW.clear()}function t2({numberingSystem:D},$=""){let F=D||"latn",X=iW.get(F);if(X===void 0)X=new Map,iW.set(F,X);let J=X.get($);if(J===void 0)J=new RegExp(`${tW[F]}${$}`),X.set($,J);return J}var cN=()=>Date.now(),pN="system",dN=null,lN=null,iN=null,nN=60,rN,sN=null;class sD{static get now(){return cN}static set now(D){cN=D}static set defaultZone(D){pN=D}static get defaultZone(){return O8(pN,A4.instance)}static get defaultLocale(){return dN}static set defaultLocale(D){dN=D}static get defaultNumberingSystem(){return lN}static set defaultNumberingSystem(D){lN=D}static get defaultOutputCalendar(){return iN}static set defaultOutputCalendar(D){iN=D}static get defaultWeekSettings(){return sN}static set defaultWeekSettings(D){sN=nW(D)}static get twoDigitCutoffYear(){return nN}static set twoDigitCutoffYear(D){nN=D%100}static get throwOnInvalid(){return rN}static set throwOnInvalid(D){rN=D}static resetCaches(){zD.resetCache(),C1.resetCache(),BD.resetCache(),da()}}class N2{constructor(D,$){this.reason=D,this.explanation=$}toMessage(){if(this.explanation)return`${this.reason}: ${this.explanation}`;else return this.reason}}var pP=[0,31,59,90,120,151,181,212,243,273,304,334],dP=[0,31,60,91,121,152,182,213,244,274,305,335];function P2(D,$){return new N2("unit out of range",`you specified ${$} (of type ${typeof $}) as a ${D}, which is invalid`)}function eW(D,$,F){let X=new Date(Date.UTC(D,$-1,F));if(D<100&&D>=0)X.setUTCFullYear(X.getUTCFullYear()-1900);let J=X.getUTCDay();return J===0?7:J}function lP(D,$,F){return F+(K4(D)?dP:pP)[$-1]}function iP(D,$){let F=K4(D)?dP:pP,X=F.findIndex((G)=>G<$),J=$-F[X];return{month:X+1,day:J}}function DU(D,$){return(D-$+7)%7+1}function RX(D,$=4,F=1){let{year:X,month:J,day:G}=D,Y=lP(X,J,G),B=DU(eW(X,J,G),F),H=Math.floor((Y-B+14-$)/7),U;if(H<1)U=X-1,H=V4(U,$,F);else if(H>V4(X,$,F))U=X+1,H=1;else U=X;return{weekYear:U,weekNumber:H,weekday:B,...LX(D)}}function aN(D,$=4,F=1){let{weekYear:X,weekNumber:J,weekday:G}=D,Y=DU(eW(X,1,$),F),B=g3(X),H=J*7+G-Y-7+$,U;if(H<1)U=X-1,H+=g3(U);else if(H>B)U=X+1,H-=g3(X);else U=X;let{month:Q,day:V}=iP(U,H);return{year:U,month:Q,day:V,...LX(D)}}function bW(D){let{year:$,month:F,day:X}=D,J=lP($,F,X);return{year:$,ordinal:J,...LX(D)}}function oN(D){let{year:$,ordinal:F}=D,{month:X,day:J}=iP($,F);return{year:$,month:X,day:J,...LX(D)}}function tN(D,$){if(!GD(D.localWeekday)||!GD(D.localWeekNumber)||!GD(D.localWeekYear)){if(!GD(D.weekday)||!GD(D.weekNumber)||!GD(D.weekYear))throw new U6("Cannot mix locale-based week fields with ISO-based week fields");if(!GD(D.localWeekday))D.weekday=D.localWeekday;if(!GD(D.localWeekNumber))D.weekNumber=D.localWeekNumber;if(!GD(D.localWeekYear))D.weekYear=D.localWeekYear;return delete D.localWeekday,delete D.localWeekNumber,delete D.localWeekYear,{minDaysInFirstWeek:$.getMinDaysInFirstWeek(),startOfWeek:$.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function la(D,$=4,F=1){let X=jX(D.weekYear),J=L2(D.weekNumber,1,V4(D.weekYear,$,F)),G=L2(D.weekday,1,7);if(!X)return P2("weekYear",D.weekYear);else if(!J)return P2("week",D.weekNumber);else if(!G)return P2("weekday",D.weekday);else return!1}function ia(D){let $=jX(D.year),F=L2(D.ordinal,1,g3(D.year));if(!$)return P2("year",D.year);else if(!F)return P2("ordinal",D.ordinal);else return!1}function nP(D){let $=jX(D.year),F=L2(D.month,1,12),X=L2(D.day,1,OX(D.year,D.month));if(!$)return P2("year",D.year);else if(!F)return P2("month",D.month);else if(!X)return P2("day",D.day);else return!1}function rP(D){let{hour:$,minute:F,second:X,millisecond:J}=D,G=L2($,0,23)||$===24&&F===0&&X===0&&J===0,Y=L2(F,0,59),B=L2(X,0,59),H=L2(J,0,999);if(!G)return P2("hour",$);else if(!Y)return P2("minute",F);else if(!B)return P2("second",X);else if(!H)return P2("millisecond",J);else return!1}function GD(D){return typeof D>"u"}function E8(D){return typeof D==="number"}function jX(D){return typeof D==="number"&&D%1===0}function na(D){return typeof D==="string"}function ra(D){return Object.prototype.toString.call(D)==="[object Date]"}function sP(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch(D){return!1}}function aP(){try{return typeof Intl<"u"&&!!Intl.Locale&&(("weekInfo"in Intl.Locale.prototype)||("getWeekInfo"in Intl.Locale.prototype))}catch(D){return!1}}function sa(D){return Array.isArray(D)?D:[D]}function eN(D,$,F){if(D.length===0)return;return D.reduce((X,J)=>{let G=[$(J),J];if(!X)return G;else if(F(X[0],G[0])===X[0])return X;else return G},null)[1]}function aa(D,$){return $.reduce((F,X)=>{return F[X]=D[X],F},{})}function v3(D,$){return Object.prototype.hasOwnProperty.call(D,$)}function nW(D){if(D==null)return null;else if(typeof D!=="object")throw new T0("Week settings must be an object");else{if(!L2(D.firstDay,1,7)||!L2(D.minimalDays,1,7)||!Array.isArray(D.weekend)||D.weekend.some(($)=>!L2($,1,7)))throw new T0("Invalid week settings");return{firstDay:D.firstDay,minimalDays:D.minimalDays,weekend:Array.from(D.weekend)}}}function L2(D,$,F){return jX(D)&&D>=$&&D<=F}function oa(D,$){return D-$*Math.floor(D/$)}function A0(D,$=2){let F=D<0,X;if(F)X="-"+(""+-D).padStart($,"0");else X=(""+D).padStart($,"0");return X}function R8(D){if(GD(D)||D===null||D==="")return;else return parseInt(D,10)}function H6(D){if(GD(D)||D===null||D==="")return;else return parseFloat(D)}function $U(D){if(GD(D)||D===null||D==="")return;else{let $=parseFloat("0."+D)*1000;return Math.floor($)}}function FU(D,$,F="round"){let X=10**$;switch(F){case"expand":return D>0?Math.ceil(D*X)/X:Math.floor(D*X)/X;case"trunc":return Math.trunc(D*X)/X;case"round":return Math.round(D*X)/X;case"floor":return Math.floor(D*X)/X;case"ceil":return Math.ceil(D*X)/X;default:throw RangeError(`Value rounding ${F} is out of range`)}}function K4(D){return D%4===0&&(D%100!==0||D%400===0)}function g3(D){return K4(D)?366:365}function OX(D,$){let F=oa($-1,12)+1,X=D+($-F)/12;if(F===2)return K4(X)?29:28;else return[31,null,31,30,31,30,31,31,30,31,30,31][F-1]}function NX(D){let $=Date.UTC(D.year,D.month-1,D.day,D.hour,D.minute,D.second,D.millisecond);if(D.year<100&&D.year>=0)$=new Date($),$.setUTCFullYear(D.year,D.month-1,D.day);return+$}function DP(D,$,F){return-DU(eW(D,1,$),F)+$-1}function V4(D,$=4,F=1){let X=DP(D,$,F),J=DP(D+1,$,F);return(g3(D)-X+J)/7}function rW(D){if(D>99)return D;else return D>sD.twoDigitCutoffYear?1900+D:2000+D}function oP(D,$,F,X=null){let J=new Date(D),G={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};if(X)G.timeZone=X;let Y={timeZoneName:$,...G},B=new Intl.DateTimeFormat(F,Y).formatToParts(J).find((H)=>H.type.toLowerCase()==="timezonename");return B?B.value:null}function PX(D,$){let F=parseInt(D,10);if(Number.isNaN(F))F=0;let X=parseInt($,10)||0,J=F<0||Object.is(F,-0)?-X:X;return F*60+J}function tP(D){let $=Number(D);if(typeof D==="boolean"||D===""||!Number.isFinite($))throw new T0(`Invalid unit value ${D}`);return $}function EX(D,$){let F={};for(let X in D)if(v3(D,X)){let J=D[X];if(J===void 0||J===null)continue;F[$(X)]=tP(J)}return F}function Q4(D,$){let F=Math.trunc(Math.abs(D/60)),X=Math.trunc(Math.abs(D%60)),J=D>=0?"+":"-";switch($){case"short":return`${J}${A0(F,2)}:${A0(X,2)}`;case"narrow":return`${J}${F}${X>0?`:${X}`:""}`;case"techie":return`${J}${A0(F,2)}${A0(X,2)}`;default:throw RangeError(`Value format ${$} is out of range for property format`)}}function LX(D){return aa(D,["hour","minute","second","millisecond"])}var ta=["January","February","March","April","May","June","July","August","September","October","November","December"],eP=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],ea=["J","F","M","A","M","J","J","A","S","O","N","D"];function DL(D){switch(D){case"narrow":return[...ea];case"short":return[...eP];case"long":return[...ta];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}var $L=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],FL=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],Do=["M","T","W","T","F","S","S"];function XL(D){switch(D){case"narrow":return[...Do];case"short":return[...FL];case"long":return[...$L];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var JL=["AM","PM"],$o=["Before Christ","Anno Domini"],Fo=["BC","AD"],Xo=["B","A"];function GL(D){switch(D){case"narrow":return[...Xo];case"short":return[...Fo];case"long":return[...$o];default:return null}}function Jo(D){return JL[D.hour<12?0:1]}function Go(D,$){return XL($)[D.weekday-1]}function Yo(D,$){return DL($)[D.month-1]}function Bo(D,$){return GL($)[D.year<0?0:1]}function Ho(D,$,F="always",X=!1){let J={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},G=["hours","minutes","seconds"].indexOf(D)===-1;if(F==="auto"&&G){let V=D==="days";switch($){case 1:return V?"tomorrow":`next ${J[D][0]}`;case-1:return V?"yesterday":`last ${J[D][0]}`;case 0:return V?"today":`this ${J[D][0]}`}}let Y=Object.is($,-0)||$<0,B=Math.abs($),H=B===1,U=J[D],Q=X?H?U[1]:U[2]||U[1]:H?J[D][0]:D;return Y?`${B} ${Q} ago`:`in ${B} ${Q}`}function $P(D,$){let F="";for(let X of D)if(X.literal)F+=X.val;else F+=$(X.val);return F}var Wo={D:ZX,DD:RP,DDD:OP,DDDD:EP,t:jP,tt:NP,ttt:PP,tttt:LP,T:qP,TT:zP,TTT:IP,TTTT:SP,f:TP,ff:kP,fff:fP,ffff:hP,F:wP,FF:bP,FFF:gP,FFFF:vP};class g0{static create(D,$={}){return new g0(D,$)}static parseFormat(D){let $=null,F="",X=!1,J=[];for(let G=0;G<D.length;G++){let Y=D.charAt(G);if(Y==="'"){if(F.length>0||X)J.push({literal:X||/^\s+$/.test(F),val:F===""?"'":F});$=null,F="",X=!X}else if(X)F+=Y;else if(Y===$)F+=Y;else{if(F.length>0)J.push({literal:/^\s+$/.test(F),val:F});F=Y,$=Y}}if(F.length>0)J.push({literal:X||/^\s+$/.test(F),val:F});return J}static macroTokenToFormatOpts(D){return Wo[D]}constructor(D,$){this.opts=$,this.loc=D,this.systemLoc=null}formatWithSystemDefault(D,$){if(this.systemLoc===null)this.systemLoc=this.loc.redefaultToSystem();return this.systemLoc.dtFormatter(D,{...this.opts,...$}).format()}dtFormatter(D,$={}){return this.loc.dtFormatter(D,{...this.opts,...$})}formatDateTime(D,$){return this.dtFormatter(D,$).format()}formatDateTimeParts(D,$){return this.dtFormatter(D,$).formatToParts()}formatInterval(D,$){return this.dtFormatter(D.start,$).dtf.formatRange(D.start.toJSDate(),D.end.toJSDate())}resolvedOptions(D,$){return this.dtFormatter(D,$).resolvedOptions()}num(D,$=0,F=void 0){if(this.opts.forceSimple)return A0(D,$);let X={...this.opts};if($>0)X.padTo=$;if(F)X.signDisplay=F;return this.loc.numberFormatter(X).format(D)}formatDateTimeFromString(D,$){let F=this.loc.listingMode()==="en",X=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",J=(A,K)=>this.loc.extract(D,A,K),G=(A)=>{if(D.isOffsetFixed&&D.offset===0&&A.allowZ)return"Z";return D.isValid?D.zone.formatOffset(D.ts,A.format):""},Y=()=>F?Jo(D):J({hour:"numeric",hourCycle:"h12"},"dayperiod"),B=(A,K)=>F?Yo(D,A):J(K?{month:A}:{month:A,day:"numeric"},"month"),H=(A,K)=>F?Go(D,A):J(K?{weekday:A}:{weekday:A,month:"long",day:"numeric"},"weekday"),U=(A)=>{let K=g0.macroTokenToFormatOpts(A);if(K)return this.formatWithSystemDefault(D,K);else return A},Q=(A)=>F?Bo(D,A):J({era:A},"era"),V=(A)=>{switch(A){case"S":return this.num(D.millisecond);case"u":case"SSS":return this.num(D.millisecond,3);case"s":return this.num(D.second);case"ss":return this.num(D.second,2);case"uu":return this.num(Math.floor(D.millisecond/10),2);case"uuu":return this.num(Math.floor(D.millisecond/100));case"m":return this.num(D.minute);case"mm":return this.num(D.minute,2);case"h":return this.num(D.hour%12===0?12:D.hour%12);case"hh":return this.num(D.hour%12===0?12:D.hour%12,2);case"H":return this.num(D.hour);case"HH":return this.num(D.hour,2);case"Z":return G({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return G({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return G({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return D.zone.offsetName(D.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return D.zone.offsetName(D.ts,{format:"long",locale:this.loc.locale});case"z":return D.zoneName;case"a":return Y();case"d":return X?J({day:"numeric"},"day"):this.num(D.day);case"dd":return X?J({day:"2-digit"},"day"):this.num(D.day,2);case"c":return this.num(D.weekday);case"ccc":return H("short",!0);case"cccc":return H("long",!0);case"ccccc":return H("narrow",!0);case"E":return this.num(D.weekday);case"EEE":return H("short",!1);case"EEEE":return H("long",!1);case"EEEEE":return H("narrow",!1);case"L":return X?J({month:"numeric",day:"numeric"},"month"):this.num(D.month);case"LL":return X?J({month:"2-digit",day:"numeric"},"month"):this.num(D.month,2);case"LLL":return B("short",!0);case"LLLL":return B("long",!0);case"LLLLL":return B("narrow",!0);case"M":return X?J({month:"numeric"},"month"):this.num(D.month);case"MM":return X?J({month:"2-digit"},"month"):this.num(D.month,2);case"MMM":return B("short",!1);case"MMMM":return B("long",!1);case"MMMMM":return B("narrow",!1);case"y":return X?J({year:"numeric"},"year"):this.num(D.year);case"yy":return X?J({year:"2-digit"},"year"):this.num(D.year.toString().slice(-2),2);case"yyyy":return X?J({year:"numeric"},"year"):this.num(D.year,4);case"yyyyyy":return X?J({year:"numeric"},"year"):this.num(D.year,6);case"G":return Q("short");case"GG":return Q("long");case"GGGGG":return Q("narrow");case"kk":return this.num(D.weekYear.toString().slice(-2),2);case"kkkk":return this.num(D.weekYear,4);case"W":return this.num(D.weekNumber);case"WW":return this.num(D.weekNumber,2);case"n":return this.num(D.localWeekNumber);case"nn":return this.num(D.localWeekNumber,2);case"ii":return this.num(D.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(D.localWeekYear,4);case"o":return this.num(D.ordinal);case"ooo":return this.num(D.ordinal,3);case"q":return this.num(D.quarter);case"qq":return this.num(D.quarter,2);case"X":return this.num(Math.floor(D.ts/1000));case"x":return this.num(D.ts);default:return U(A)}};return $P(g0.parseFormat($),V)}formatDurationFromString(D,$){let F=this.opts.signMode==="negativeLargestOnly"?-1:1,X=(U)=>{switch(U[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},J=(U,Q)=>(V)=>{let A=X(V);if(A){let K=Q.isNegativeDuration&&A!==Q.largestUnit?F:1,M;if(this.opts.signMode==="negativeLargestOnly"&&A!==Q.largestUnit)M="never";else if(this.opts.signMode==="all")M="always";else M="auto";return this.num(U.get(A)*K,V.length,M)}else return V},G=g0.parseFormat($),Y=G.reduce((U,{literal:Q,val:V})=>Q?U:U.concat(V),[]),B=D.shiftTo(...Y.map(X).filter((U)=>U)),H={isNegativeDuration:B<0,largestUnit:Object.keys(B.values)[0]};return $P(G,J(B,H))}}var YL=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function x3(...D){let $=D.reduce((F,X)=>F+X.source,"");return RegExp(`^${$}$`)}function y3(...D){return($)=>D.reduce(([F,X,J],G)=>{let[Y,B,H]=G($,J);return[{...F,...Y},B||X,H]},[{},null,1]).slice(0,2)}function u3(D,...$){if(D==null)return[null,null];for(let[F,X]of $){let J=F.exec(D);if(J)return X(J)}return[null,null]}function BL(...D){return($,F)=>{let X={},J;for(J=0;J<D.length;J++)X[D[J]]=R8($[F+J]);return[X,null,F+J]}}var HL=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,Uo=`(?:${HL.source}?(?:\\[(${YL.source})\\])?)?`,XU=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,WL=RegExp(`${XU.source}${Uo}`),JU=RegExp(`(?:[Tt]${WL.source})?`),Qo=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Vo=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Ao=/(\d{4})-?(\d{3})/,Ko=BL("weekYear","weekNumber","weekDay"),_o=BL("year","ordinal"),Co=/(\d{4})-(\d\d)-(\d\d)/,UL=RegExp(`${XU.source} ?(?:${HL.source}|(${YL.source}))?`),Mo=RegExp(`(?: ${UL.source})?`);function h3(D,$,F){let X=D[$];return GD(X)?F:R8(X)}function Zo(D,$){return[{year:h3(D,$),month:h3(D,$+1,1),day:h3(D,$+2,1)},null,$+3]}function m3(D,$){return[{hours:h3(D,$,0),minutes:h3(D,$+1,0),seconds:h3(D,$+2,0),milliseconds:$U(D[$+3])},null,$+4]}function _4(D,$){let F=!D[$]&&!D[$+1],X=PX(D[$+1],D[$+2]),J=F?null:h0.instance(X);return[{},J,$+3]}function C4(D,$){let F=D[$]?C1.create(D[$]):null;return[{},F,$+1]}var Ro=RegExp(`^T?${XU.source}$`),Oo=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/;function Eo(D){let[$,F,X,J,G,Y,B,H,U]=D,Q=$[0]==="-",V=H&&H[0]==="-",A=(K,M=!1)=>K!==void 0&&(M||K&&Q)?-K:K;return[{years:A(H6(F)),months:A(H6(X)),weeks:A(H6(J)),days:A(H6(G)),hours:A(H6(Y)),minutes:A(H6(B)),seconds:A(H6(H),H==="-0"),milliseconds:A($U(U),V)}]}var jo={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function GU(D,$,F,X,J,G,Y){let B={year:$.length===2?rW(R8($)):R8($),month:eP.indexOf(F)+1,day:R8(X),hour:R8(J),minute:R8(G)};if(Y)B.second=R8(Y);if(D)B.weekday=D.length>3?$L.indexOf(D)+1:FL.indexOf(D)+1;return B}var No=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function Po(D){let[,$,F,X,J,G,Y,B,H,U,Q,V]=D,A=GU($,J,X,F,G,Y,B),K;if(H)K=jo[H];else if(U)K=0;else K=PX(Q,V);return[A,new h0(K)]}function Lo(D){return D.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var qo=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,zo=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,Io=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function FP(D){let[,$,F,X,J,G,Y,B]=D;return[GU($,J,X,F,G,Y,B),h0.utcInstance]}function So(D){let[,$,F,X,J,G,Y,B]=D;return[GU($,B,F,X,J,G,Y),h0.utcInstance]}var To=x3(Qo,JU),wo=x3(Vo,JU),ko=x3(Ao,JU),bo=x3(WL),QL=y3(Zo,m3,_4,C4),fo=y3(Ko,m3,_4,C4),go=y3(_o,m3,_4,C4),ho=y3(m3,_4,C4);function vo(D){return u3(D,[To,QL],[wo,fo],[ko,go],[bo,ho])}function xo(D){return u3(Lo(D),[No,Po])}function yo(D){return u3(D,[qo,FP],[zo,FP],[Io,So])}function uo(D){return u3(D,[Oo,Eo])}var mo=y3(m3);function co(D){return u3(D,[Ro,mo])}var po=x3(Co,Mo),lo=x3(UL),io=y3(m3,_4,C4);function no(D){return u3(D,[po,QL],[lo,io])}var XP="Invalid Duration",VL={weeks:{days:7,hours:168,minutes:10080,seconds:604800,milliseconds:604800000},days:{hours:24,minutes:1440,seconds:86400,milliseconds:86400000},hours:{minutes:60,seconds:3600,milliseconds:3600000},minutes:{seconds:60,milliseconds:60000},seconds:{milliseconds:1000}},ro={years:{quarters:4,months:12,weeks:52,days:365,hours:8760,minutes:525600,seconds:31536000,milliseconds:31536000000},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:131040,seconds:7862400,milliseconds:7862400000},months:{weeks:4,days:30,hours:720,minutes:43200,seconds:2592000,milliseconds:2592000000},...VL},j2=365.2425,w3=30.436875,so={years:{quarters:4,months:12,weeks:j2/7,days:j2,hours:j2*24,minutes:j2*24*60,seconds:j2*24*60*60,milliseconds:j2*24*60*60*1000},quarters:{months:3,weeks:j2/28,days:j2/4,hours:j2*24/4,minutes:j2*24*60/4,seconds:j2*24*60*60/4,milliseconds:j2*24*60*60*1000/4},months:{weeks:w3/7,days:w3,hours:w3*24,minutes:w3*24*60,seconds:w3*24*60*60,milliseconds:w3*24*60*60*1000},...VL},Q6=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],ao=Q6.slice(0).reverse();function h1(D,$,F=!1){let X={values:F?$.values:{...D.values,...$.values||{}},loc:D.loc.clone($.loc),conversionAccuracy:$.conversionAccuracy||D.conversionAccuracy,matrix:$.matrix||D.matrix};return new ED(X)}function AL(D,$){var F;let X=(F=$.milliseconds)!=null?F:0;for(let J of ao.slice(1))if($[J])X+=$[J]*D[J].milliseconds;return X}function JP(D,$){let F=AL(D,$)<0?-1:1;Q6.reduceRight((X,J)=>{if(!GD($[J])){if(X){let G=$[X]*F,Y=D[J][X],B=Math.floor(G/Y);$[J]+=B*F,$[X]-=B*Y*F}return J}else return X},null),Q6.reduce((X,J)=>{if(!GD($[J])){if(X){let G=$[X]%1;$[X]-=G,$[J]+=G*D[X][J]}return J}else return X},null)}function GP(D){let $={};for(let[F,X]of Object.entries(D))if(X!==0)$[F]=X;return $}class ED{constructor(D){let $=D.conversionAccuracy==="longterm"||!1,F=$?so:ro;if(D.matrix)F=D.matrix;this.values=D.values,this.loc=D.loc||zD.create(),this.conversionAccuracy=$?"longterm":"casual",this.invalid=D.invalid||null,this.matrix=F,this.isLuxonDuration=!0}static fromMillis(D,$){return ED.fromObject({milliseconds:D},$)}static fromObject(D,$={}){if(D==null||typeof D!=="object")throw new T0(`Duration.fromObject: argument expected to be an object, got ${D===null?"null":typeof D}`);return new ED({values:EX(D,ED.normalizeUnit),loc:zD.fromObject($),conversionAccuracy:$.conversionAccuracy,matrix:$.matrix})}static fromDurationLike(D){if(E8(D))return ED.fromMillis(D);else if(ED.isDuration(D))return D;else if(typeof D==="object")return ED.fromObject(D);else throw new T0(`Unknown duration argument ${D} of type ${typeof D}`)}static fromISO(D,$){let[F]=uo(D);if(F)return ED.fromObject(F,$);else return ED.invalid("unparsable",`the input "${D}" can't be parsed as ISO 8601`)}static fromISOTime(D,$){let[F]=co(D);if(F)return ED.fromObject(F,$);else return ED.invalid("unparsable",`the input "${D}" can't be parsed as ISO 8601`)}static invalid(D,$=null){if(!D)throw new T0("need to specify a reason the Duration is invalid");let F=D instanceof N2?D:new N2(D,$);if(sD.throwOnInvalid)throw new ZP(F);else return new ED({invalid:F})}static normalizeUnit(D){let $={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[D?D.toLowerCase():D];if(!$)throw new aW(D);return $}static isDuration(D){return D&&D.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(D,$={}){let F={...$,floor:$.round!==!1&&$.floor!==!1};return this.isValid?g0.create(this.loc,F).formatDurationFromString(this,D):XP}toHuman(D={}){if(!this.isValid)return XP;let $=D.showZeros!==!1,F=Q6.map((X)=>{let J=this.values[X];if(GD(J)||J===0&&!$)return null;return this.loc.numberFormatter({style:"unit",unitDisplay:"long",...D,unit:X.slice(0,-1)}).format(J)}).filter((X)=>X);return this.loc.listFormatter({type:"conjunction",style:D.listStyle||"narrow",...D}).format(F)}toObject(){if(!this.isValid)return{};return{...this.values}}toISO(){if(!this.isValid)return null;let D="P";if(this.years!==0)D+=this.years+"Y";if(this.months!==0||this.quarters!==0)D+=this.months+this.quarters*3+"M";if(this.weeks!==0)D+=this.weeks+"W";if(this.days!==0)D+=this.days+"D";if(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)D+="T";if(this.hours!==0)D+=this.hours+"H";if(this.minutes!==0)D+=this.minutes+"M";if(this.seconds!==0||this.milliseconds!==0)D+=FU(this.seconds+this.milliseconds/1000,3)+"S";if(D==="P")D+="T0S";return D}toISOTime(D={}){if(!this.isValid)return null;let $=this.toMillis();if($<0||$>=86400000)return null;return D={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...D,includeOffset:!1},BD.fromMillis($,{zone:"UTC"}).toISOTime(D)}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){if(this.isValid)return`Duration { values: ${JSON.stringify(this.values)} }`;else return`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){if(!this.isValid)return NaN;return AL(this.matrix,this.values)}valueOf(){return this.toMillis()}plus(D){if(!this.isValid)return this;let $=ED.fromDurationLike(D),F={};for(let X of Q6)if(v3($.values,X)||v3(this.values,X))F[X]=$.get(X)+this.get(X);return h1(this,{values:F},!0)}minus(D){if(!this.isValid)return this;let $=ED.fromDurationLike(D);return this.plus($.negate())}mapUnits(D){if(!this.isValid)return this;let $={};for(let F of Object.keys(this.values))$[F]=tP(D(this.values[F],F));return h1(this,{values:$},!0)}get(D){return this[ED.normalizeUnit(D)]}set(D){if(!this.isValid)return this;let $={...this.values,...EX(D,ED.normalizeUnit)};return h1(this,{values:$})}reconfigure({locale:D,numberingSystem:$,conversionAccuracy:F,matrix:X}={}){let G={loc:this.loc.clone({locale:D,numberingSystem:$}),matrix:X,conversionAccuracy:F};return h1(this,G)}as(D){return this.isValid?this.shiftTo(D).get(D):NaN}normalize(){if(!this.isValid)return this;let D=this.toObject();return JP(this.matrix,D),h1(this,{values:D},!0)}rescale(){if(!this.isValid)return this;let D=GP(this.normalize().shiftToAll().toObject());return h1(this,{values:D},!0)}shiftTo(...D){if(!this.isValid)return this;if(D.length===0)return this;D=D.map((G)=>ED.normalizeUnit(G));let $={},F={},X=this.toObject(),J;for(let G of Q6)if(D.indexOf(G)>=0){J=G;let Y=0;for(let H in F)Y+=this.matrix[H][G]*F[H],F[H]=0;if(E8(X[G]))Y+=X[G];let B=Math.trunc(Y);$[G]=B,F[G]=(Y*1000-B*1000)/1000}else if(E8(X[G]))F[G]=X[G];for(let G in F)if(F[G]!==0)$[J]+=G===J?F[G]:F[G]/this.matrix[J][G];return JP(this.matrix,$),h1(this,{values:$},!0)}shiftToAll(){if(!this.isValid)return this;return this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds")}negate(){if(!this.isValid)return this;let D={};for(let $ of Object.keys(this.values))D[$]=this.values[$]===0?0:-this.values[$];return h1(this,{values:D},!0)}removeZeros(){if(!this.isValid)return this;let D=GP(this.values);return h1(this,{values:D},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(D){if(!this.isValid||!D.isValid)return!1;if(!this.loc.equals(D.loc))return!1;function $(F,X){if(F===void 0||F===0)return X===void 0||X===0;return F===X}for(let F of Q6)if(!$(this.values[F],D.values[F]))return!1;return!0}}var k3="Invalid Interval";function oo(D,$){if(!D||!D.isValid)return D0.invalid("missing or invalid start");else if(!$||!$.isValid)return D0.invalid("missing or invalid end");else if($<D)return D0.invalid("end before start",`The end of an interval must be after its start, but you had start=${D.toISO()} and end=${$.toISO()}`);else return null}class D0{constructor(D){this.s=D.start,this.e=D.end,this.invalid=D.invalid||null,this.isLuxonInterval=!0}static invalid(D,$=null){if(!D)throw new T0("need to specify a reason the Interval is invalid");let F=D instanceof N2?D:new N2(D,$);if(sD.throwOnInvalid)throw new MP(F);else return new D0({invalid:F})}static fromDateTimes(D,$){let F=B4(D),X=B4($),J=oo(F,X);if(J==null)return new D0({start:F,end:X});else return J}static after(D,$){let F=ED.fromDurationLike($),X=B4(D);return D0.fromDateTimes(X,X.plus(F))}static before(D,$){let F=ED.fromDurationLike($),X=B4(D);return D0.fromDateTimes(X.minus(F),X)}static fromISO(D,$){let[F,X]=(D||"").split("/",2);if(F&&X){let J,G;try{J=BD.fromISO(F,$),G=J.isValid}catch(H){G=!1}let Y,B;try{Y=BD.fromISO(X,$),B=Y.isValid}catch(H){B=!1}if(G&&B)return D0.fromDateTimes(J,Y);if(G){let H=ED.fromISO(X,$);if(H.isValid)return D0.after(J,H)}else if(B){let H=ED.fromISO(F,$);if(H.isValid)return D0.before(Y,H)}}return D0.invalid("unparsable",`the input "${D}" can't be parsed as ISO 8601`)}static isInterval(D){return D&&D.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get lastDateTime(){return this.isValid?this.e?this.e.minus(1):null:null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(D="milliseconds"){return this.isValid?this.toDuration(...[D]).get(D):NaN}count(D="milliseconds",$){if(!this.isValid)return NaN;let F=this.start.startOf(D,$),X;if($!=null&&$.useLocaleWeeks)X=this.end.reconfigure({locale:F.locale});else X=this.end;return X=X.startOf(D,$),Math.floor(X.diff(F,D).get(D))+(X.valueOf()!==this.end.valueOf())}hasSame(D){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,D):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(D){if(!this.isValid)return!1;return this.s>D}isBefore(D){if(!this.isValid)return!1;return this.e<=D}contains(D){if(!this.isValid)return!1;return this.s<=D&&this.e>D}set({start:D,end:$}={}){if(!this.isValid)return this;return D0.fromDateTimes(D||this.s,$||this.e)}splitAt(...D){if(!this.isValid)return[];let $=D.map(B4).filter((G)=>this.contains(G)).sort((G,Y)=>G.toMillis()-Y.toMillis()),F=[],{s:X}=this,J=0;while(X<this.e){let G=$[J]||this.e,Y=+G>+this.e?this.e:G;F.push(D0.fromDateTimes(X,Y)),X=Y,J+=1}return F}splitBy(D){let $=ED.fromDurationLike(D);if(!this.isValid||!$.isValid||$.as("milliseconds")===0)return[];let{s:F}=this,X=1,J,G=[];while(F<this.e){let Y=this.start.plus($.mapUnits((B)=>B*X));J=+Y>+this.e?this.e:Y,G.push(D0.fromDateTimes(F,J)),F=J,X+=1}return G}divideEqually(D){if(!this.isValid)return[];return this.splitBy(this.length()/D).slice(0,D)}overlaps(D){return this.e>D.s&&this.s<D.e}abutsStart(D){if(!this.isValid)return!1;return+this.e===+D.s}abutsEnd(D){if(!this.isValid)return!1;return+D.e===+this.s}engulfs(D){if(!this.isValid)return!1;return this.s<=D.s&&this.e>=D.e}equals(D){if(!this.isValid||!D.isValid)return!1;return this.s.equals(D.s)&&this.e.equals(D.e)}intersection(D){if(!this.isValid)return this;let $=this.s>D.s?this.s:D.s,F=this.e<D.e?this.e:D.e;if($>=F)return null;else return D0.fromDateTimes($,F)}union(D){if(!this.isValid)return this;let $=this.s<D.s?this.s:D.s,F=this.e>D.e?this.e:D.e;return D0.fromDateTimes($,F)}static merge(D){let[$,F]=D.sort((X,J)=>X.s-J.s).reduce(([X,J],G)=>{if(!J)return[X,G];else if(J.overlaps(G)||J.abutsStart(G))return[X,J.union(G)];else return[X.concat([J]),G]},[[],null]);if(F)$.push(F);return $}static xor(D){let $=null,F=0,X=[],J=D.map((B)=>[{time:B.s,type:"s"},{time:B.e,type:"e"}]),G=Array.prototype.concat(...J),Y=G.sort((B,H)=>B.time-H.time);for(let B of Y)if(F+=B.type==="s"?1:-1,F===1)$=B.time;else{if($&&+$!==+B.time)X.push(D0.fromDateTimes($,B.time));$=null}return D0.merge(X)}difference(...D){return D0.xor([this].concat(D)).map(($)=>this.intersection($)).filter(($)=>$&&!$.isEmpty())}toString(){if(!this.isValid)return k3;return`[${this.s.toISO()} \u2013 ${this.e.toISO()})`}[Symbol.for("nodejs.util.inspect.custom")](){if(this.isValid)return`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`;else return`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(D=ZX,$={}){return this.isValid?g0.create(this.s.loc.clone($),D).formatInterval(this):k3}toISO(D){if(!this.isValid)return k3;return`${this.s.toISO(D)}/${this.e.toISO(D)}`}toISODate(){if(!this.isValid)return k3;return`${this.s.toISODate()}/${this.e.toISODate()}`}toISOTime(D){if(!this.isValid)return k3;return`${this.s.toISOTime(D)}/${this.e.toISOTime(D)}`}toFormat(D,{separator:$=" \u2013 "}={}){if(!this.isValid)return k3;return`${this.s.toFormat(D)}${$}${this.e.toFormat(D)}`}toDuration(D,$){if(!this.isValid)return ED.invalid(this.invalidReason);return this.e.diff(this.s,D,$)}mapEndpoints(D){return D0.fromDateTimes(D(this.s),D(this.e))}}class f3{static hasDST(D=sD.defaultZone){let $=BD.now().setZone(D).set({month:12});return!D.isUniversal&&$.offset!==$.set({month:6}).offset}static isValidIANAZone(D){return C1.isValidZone(D)}static normalizeZone(D){return O8(D,sD.defaultZone)}static getStartOfWeek({locale:D=null,locObj:$=null}={}){return($||zD.create(D)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:D=null,locObj:$=null}={}){return($||zD.create(D)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:D=null,locObj:$=null}={}){return($||zD.create(D)).getWeekendDays().slice()}static months(D="long",{locale:$=null,numberingSystem:F=null,locObj:X=null,outputCalendar:J="gregory"}={}){return(X||zD.create($,F,J)).months(D)}static monthsFormat(D="long",{locale:$=null,numberingSystem:F=null,locObj:X=null,outputCalendar:J="gregory"}={}){return(X||zD.create($,F,J)).months(D,!0)}static weekdays(D="long",{locale:$=null,numberingSystem:F=null,locObj:X=null}={}){return(X||zD.create($,F,null)).weekdays(D)}static weekdaysFormat(D="long",{locale:$=null,numberingSystem:F=null,locObj:X=null}={}){return(X||zD.create($,F,null)).weekdays(D,!0)}static meridiems({locale:D=null}={}){return zD.create(D).meridiems()}static eras(D="short",{locale:$=null}={}){return zD.create($,null,"gregory").eras(D)}static features(){return{relative:sP(),localeWeek:aP()}}}function YP(D,$){let F=(J)=>J.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),X=F($)-F(D);return Math.floor(ED.fromMillis(X).as("days"))}function to(D,$,F){let X=[["years",(H,U)=>U.year-H.year],["quarters",(H,U)=>U.quarter-H.quarter+(U.year-H.year)*4],["months",(H,U)=>U.month-H.month+(U.year-H.year)*12],["weeks",(H,U)=>{let Q=YP(H,U);return(Q-Q%7)/7}],["days",YP]],J={},G=D,Y,B;for(let[H,U]of X)if(F.indexOf(H)>=0)if(Y=H,J[H]=U(D,$),B=G.plus(J),B>$){if(J[H]--,D=G.plus(J),D>$)B=D,J[H]--,D=G.plus(J)}else D=B;return[D,J,B,Y]}function eo(D,$,F,X){let[J,G,Y,B]=to(D,$,F),H=$-J,U=F.filter((V)=>["hours","minutes","seconds","milliseconds"].indexOf(V)>=0);if(U.length===0){if(Y<$)Y=J.plus({[B]:1});if(Y!==J)G[B]=(G[B]||0)+H/(Y-J)}let Q=ED.fromObject(G,X);if(U.length>0)return ED.fromMillis(H,X).shiftTo(...U).plus(Q);else return Q}var Dt="missing Intl.DateTimeFormat.formatToParts support";function PD(D,$=(F)=>F){return{regex:D,deser:([F])=>$(pa(F))}}var $t=String.fromCharCode(160),KL=`[ ${$t}]`,_L=new RegExp(KL,"g");function Ft(D){return D.replace(/\./g,"\\.?").replace(_L,KL)}function BP(D){return D.replace(/\./g,"").replace(_L," ").toLowerCase()}function e2(D,$){if(D===null)return null;else return{regex:RegExp(D.map(Ft).join("|")),deser:([F])=>D.findIndex((X)=>BP(F)===BP(X))+$}}function HP(D,$){return{regex:D,deser:([,F,X])=>PX(F,X),groups:$}}function VX(D){return{regex:D,deser:([$])=>$}}function Xt(D){return D.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function Jt(D,$){let F=t2($),X=t2($,"{2}"),J=t2($,"{3}"),G=t2($,"{4}"),Y=t2($,"{6}"),B=t2($,"{1,2}"),H=t2($,"{1,3}"),U=t2($,"{1,6}"),Q=t2($,"{1,9}"),V=t2($,"{2,4}"),A=t2($,"{4,6}"),K=(Z)=>({regex:RegExp(Xt(Z.val)),deser:([O])=>O,literal:!0}),C=((Z)=>{if(D.literal)return K(Z);switch(Z.val){case"G":return e2($.eras("short"),0);case"GG":return e2($.eras("long"),0);case"y":return PD(U);case"yy":return PD(V,rW);case"yyyy":return PD(G);case"yyyyy":return PD(A);case"yyyyyy":return PD(Y);case"M":return PD(B);case"MM":return PD(X);case"MMM":return e2($.months("short",!0),1);case"MMMM":return e2($.months("long",!0),1);case"L":return PD(B);case"LL":return PD(X);case"LLL":return e2($.months("short",!1),1);case"LLLL":return e2($.months("long",!1),1);case"d":return PD(B);case"dd":return PD(X);case"o":return PD(H);case"ooo":return PD(J);case"HH":return PD(X);case"H":return PD(B);case"hh":return PD(X);case"h":return PD(B);case"mm":return PD(X);case"m":return PD(B);case"q":return PD(B);case"qq":return PD(X);case"s":return PD(B);case"ss":return PD(X);case"S":return PD(H);case"SSS":return PD(J);case"u":return VX(Q);case"uu":return VX(B);case"uuu":return PD(F);case"a":return e2($.meridiems(),0);case"kkkk":return PD(G);case"kk":return PD(V,rW);case"W":return PD(B);case"WW":return PD(X);case"E":case"c":return PD(F);case"EEE":return e2($.weekdays("short",!1),1);case"EEEE":return e2($.weekdays("long",!1),1);case"ccc":return e2($.weekdays("short",!0),1);case"cccc":return e2($.weekdays("long",!0),1);case"Z":case"ZZ":return HP(new RegExp(`([+-]${B.source})(?::(${X.source}))?`),2);case"ZZZ":return HP(new RegExp(`([+-]${B.source})(${X.source})?`),2);case"z":return VX(/[a-z_+-/]{1,256}?/i);case" ":return VX(/[^\S\n\r]/);default:return K(Z)}})(D)||{invalidReason:Dt};return C.token=D,C}var Gt={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function Yt(D,$,F){let{type:X,value:J}=D;if(X==="literal"){let H=/^\s+$/.test(J);return{literal:!H,val:H?" ":J}}let G=$[X],Y=X;if(X==="hour")if($.hour12!=null)Y=$.hour12?"hour12":"hour24";else if($.hourCycle!=null)if($.hourCycle==="h11"||$.hourCycle==="h12")Y="hour12";else Y="hour24";else Y=F.hour12?"hour12":"hour24";let B=Gt[Y];if(typeof B==="object")B=B[G];if(B)return{literal:!1,val:B};return}function Bt(D){return[`^${D.map((F)=>F.regex).reduce((F,X)=>`${F}(${X.source})`,"")}$`,D]}function Ht(D,$,F){let X=D.match($);if(X){let J={},G=1;for(let Y in F)if(v3(F,Y)){let B=F[Y],H=B.groups?B.groups+1:1;if(!B.literal&&B.token)J[B.token.val[0]]=B.deser(X.slice(G,G+H));G+=H}return[X,J]}else return[X,{}]}function Wt(D){let $=(G)=>{switch(G){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}},F=null,X;if(!GD(D.z))F=C1.create(D.z);if(!GD(D.Z)){if(!F)F=new h0(D.Z);X=D.Z}if(!GD(D.q))D.M=(D.q-1)*3+1;if(!GD(D.h)){if(D.h<12&&D.a===1)D.h+=12;else if(D.h===12&&D.a===0)D.h=0}if(D.G===0&&D.y)D.y=-D.y;if(!GD(D.u))D.S=$U(D.u);return[Object.keys(D).reduce((G,Y)=>{let B=$(Y);if(B)G[B]=D[Y];return G},{}),F,X]}var fW=null;function Ut(){if(!fW)fW=BD.fromMillis(1555555555555);return fW}function Qt(D,$){if(D.literal)return D;let F=g0.macroTokenToFormatOpts(D.val),X=ZL(F,$);if(X==null||X.includes(void 0))return D;return X}function CL(D,$){return Array.prototype.concat(...D.map((F)=>Qt(F,$)))}class YU{constructor(D,$){if(this.locale=D,this.format=$,this.tokens=CL(g0.parseFormat($),D),this.units=this.tokens.map((F)=>Jt(F,D)),this.disqualifyingUnit=this.units.find((F)=>F.invalidReason),!this.disqualifyingUnit){let[F,X]=Bt(this.units);this.regex=RegExp(F,"i"),this.handlers=X}}explainFromTokens(D){if(!this.isValid)return{input:D,tokens:this.tokens,invalidReason:this.invalidReason};else{let[$,F]=Ht(D,this.regex,this.handlers),[X,J,G]=F?Wt(F):[null,null,void 0];if(v3(F,"a")&&v3(F,"H"))throw new U6("Can't include meridiem when specifying 24-hour format");return{input:D,tokens:this.tokens,regex:this.regex,rawMatches:$,matches:F,result:X,zone:J,specificOffset:G}}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}}function ML(D,$,F){return new YU(D,F).explainFromTokens($)}function Vt(D,$,F){let{result:X,zone:J,specificOffset:G,invalidReason:Y}=ML(D,$,F);return[X,J,G,Y]}function ZL(D,$){if(!D)return null;let X=g0.create($,D).dtFormatter(Ut()),J=X.formatToParts(),G=X.resolvedOptions();return J.map((Y)=>Yt(Y,D,G))}var gW="Invalid DateTime",WP=8640000000000000;function W4(D){return new N2("unsupported zone",`the zone "${D.name}" is not supported`)}function hW(D){if(D.weekData===null)D.weekData=RX(D.c);return D.weekData}function vW(D){if(D.localWeekData===null)D.localWeekData=RX(D.c,D.loc.getMinDaysInFirstWeek(),D.loc.getStartOfWeek());return D.localWeekData}function W6(D,$){let F={ts:D.ts,zone:D.zone,c:D.c,o:D.o,loc:D.loc,invalid:D.invalid};return new BD({...F,...$,old:F})}function RL(D,$,F){let X=D-$*60*1000,J=F.offset(X);if($===J)return[X,$];X-=(J-$)*60*1000;let G=F.offset(X);if(J===G)return[X,J];return[D-Math.min(J,G)*60*1000,Math.max(J,G)]}function AX(D,$){D+=$*60*1000;let F=new Date(D);return{year:F.getUTCFullYear(),month:F.getUTCMonth()+1,day:F.getUTCDate(),hour:F.getUTCHours(),minute:F.getUTCMinutes(),second:F.getUTCSeconds(),millisecond:F.getUTCMilliseconds()}}function _X(D,$,F){return RL(NX(D),$,F)}function UP(D,$){let F=D.o,X=D.c.year+Math.trunc($.years),J=D.c.month+Math.trunc($.months)+Math.trunc($.quarters)*3,G={...D.c,year:X,month:J,day:Math.min(D.c.day,OX(X,J))+Math.trunc($.days)+Math.trunc($.weeks)*7},Y=ED.fromObject({years:$.years-Math.trunc($.years),quarters:$.quarters-Math.trunc($.quarters),months:$.months-Math.trunc($.months),weeks:$.weeks-Math.trunc($.weeks),days:$.days-Math.trunc($.days),hours:$.hours,minutes:$.minutes,seconds:$.seconds,milliseconds:$.milliseconds}).as("milliseconds"),B=NX(G),[H,U]=RL(B,F,D.zone);if(Y!==0)H+=Y,U=D.zone.offset(H);return{ts:H,o:U}}function b3(D,$,F,X,J,G){let{setZone:Y,zone:B}=F;if(D&&Object.keys(D).length!==0||$){let H=$||B,U=BD.fromObject(D,{...F,zone:H,specificOffset:G});return Y?U:U.setZone(B)}else return BD.invalid(new N2("unparsable",`the input "${J}" can't be parsed as ${X}`))}function KX(D,$,F=!0){return D.isValid?g0.create(zD.create("en-US"),{allowZ:F,forceSimple:!0}).formatDateTimeFromString(D,$):null}function xW(D,$,F){let X=D.c.year>9999||D.c.year<0,J="";if(X&&D.c.year>=0)J+="+";if(J+=A0(D.c.year,X?6:4),F==="year")return J;if($){if(J+="-",J+=A0(D.c.month),F==="month")return J;J+="-"}else if(J+=A0(D.c.month),F==="month")return J;return J+=A0(D.c.day),J}function QP(D,$,F,X,J,G,Y){let B=!F||D.c.millisecond!==0||D.c.second!==0,H="";switch(Y){case"day":case"month":case"year":break;default:if(H+=A0(D.c.hour),Y==="hour")break;if($){if(H+=":",H+=A0(D.c.minute),Y==="minute")break;if(B)H+=":",H+=A0(D.c.second)}else{if(H+=A0(D.c.minute),Y==="minute")break;if(B)H+=A0(D.c.second)}if(Y==="second")break;if(B&&(!X||D.c.millisecond!==0))H+=".",H+=A0(D.c.millisecond,3)}if(J)if(D.isOffsetFixed&&D.offset===0&&!G)H+="Z";else if(D.o<0)H+="-",H+=A0(Math.trunc(-D.o/60)),H+=":",H+=A0(Math.trunc(-D.o%60));else H+="+",H+=A0(Math.trunc(D.o/60)),H+=":",H+=A0(Math.trunc(D.o%60));if(G)H+="["+D.zone.ianaName+"]";return H}var OL={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},At={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},Kt={ordinal:1,hour:0,minute:0,second:0,millisecond:0},CX=["year","month","day","hour","minute","second","millisecond"],_t=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],Ct=["year","ordinal","hour","minute","second","millisecond"];function MX(D){let $={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[D.toLowerCase()];if(!$)throw new aW(D);return $}function VP(D){switch(D.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return MX(D)}}function Mt(D){if(U4===void 0)U4=sD.now();if(D.type!=="iana")return D.offset(U4);let $=D.name,F=sW.get($);if(F===void 0)F=D.offset(U4),sW.set($,F);return F}function AP(D,$){let F=O8($.zone,sD.defaultZone);if(!F.isValid)return BD.invalid(W4(F));let X=zD.fromObject($),J,G;if(!GD(D.year)){for(let H of CX)if(GD(D[H]))D[H]=OL[H];let Y=nP(D)||rP(D);if(Y)return BD.invalid(Y);let B=Mt(F);[J,G]=_X(D,B,F)}else J=sD.now();return new BD({ts:J,zone:F,loc:X,o:G})}function KP(D,$,F){let X=GD(F.round)?!0:F.round,J=GD(F.rounding)?"trunc":F.rounding,G=(B,H)=>{return B=FU(B,X||F.calendary?0:2,F.calendary?"round":J),$.loc.clone(F).relFormatter(F).format(B,H)},Y=(B)=>{if(F.calendary)if(!$.hasSame(D,B))return $.startOf(B).diff(D.startOf(B),B).get(B);else return 0;else return $.diff(D,B).get(B)};if(F.unit)return G(Y(F.unit),F.unit);for(let B of F.units){let H=Y(B);if(Math.abs(H)>=1)return G(H,B)}return G(D>$?-0:0,F.units[F.units.length-1])}function _P(D){let $={},F;if(D.length>0&&typeof D[D.length-1]==="object")$=D[D.length-1],F=Array.from(D).slice(0,D.length-1);else F=Array.from(D);return[$,F]}var U4,sW=new Map;class BD{constructor(D){let $=D.zone||sD.defaultZone,F=D.invalid||(Number.isNaN(D.ts)?new N2("invalid input"):null)||(!$.isValid?W4($):null);this.ts=GD(D.ts)?sD.now():D.ts;let X=null,J=null;if(!F)if(D.old&&D.old.ts===this.ts&&D.old.zone.equals($))[X,J]=[D.old.c,D.old.o];else{let Y=E8(D.o)&&!D.old?D.o:$.offset(this.ts);X=AX(this.ts,Y),F=Number.isNaN(X.year)?new N2("invalid input"):null,X=F?null:X,J=F?null:Y}this._zone=$,this.loc=D.loc||zD.create(),this.invalid=F,this.weekData=null,this.localWeekData=null,this.c=X,this.o=J,this.isLuxonDateTime=!0}static now(){return new BD({})}static local(){let[D,$]=_P(arguments),[F,X,J,G,Y,B,H]=$;return AP({year:F,month:X,day:J,hour:G,minute:Y,second:B,millisecond:H},D)}static utc(){let[D,$]=_P(arguments),[F,X,J,G,Y,B,H]=$;return D.zone=h0.utcInstance,AP({year:F,month:X,day:J,hour:G,minute:Y,second:B,millisecond:H},D)}static fromJSDate(D,$={}){let F=ra(D)?D.valueOf():NaN;if(Number.isNaN(F))return BD.invalid("invalid input");let X=O8($.zone,sD.defaultZone);if(!X.isValid)return BD.invalid(W4(X));return new BD({ts:F,zone:X,loc:zD.fromObject($)})}static fromMillis(D,$={}){if(!E8(D))throw new T0(`fromMillis requires a numerical input, but received a ${typeof D} with value ${D}`);else if(D<-WP||D>WP)return BD.invalid("Timestamp out of range");else return new BD({ts:D,zone:O8($.zone,sD.defaultZone),loc:zD.fromObject($)})}static fromSeconds(D,$={}){if(!E8(D))throw new T0("fromSeconds requires a numerical input");else return new BD({ts:D*1000,zone:O8($.zone,sD.defaultZone),loc:zD.fromObject($)})}static fromObject(D,$={}){D=D||{};let F=O8($.zone,sD.defaultZone);if(!F.isValid)return BD.invalid(W4(F));let X=zD.fromObject($),J=EX(D,VP),{minDaysInFirstWeek:G,startOfWeek:Y}=tN(J,X),B=sD.now(),H=!GD($.specificOffset)?$.specificOffset:F.offset(B),U=!GD(J.ordinal),Q=!GD(J.year),V=!GD(J.month)||!GD(J.day),A=Q||V,K=J.weekYear||J.weekNumber;if((A||U)&&K)throw new U6("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(V&&U)throw new U6("Can't mix ordinal dates with month/day");let M=K||J.weekday&&!A,C,Z,O=AX(B,H);if(M)C=_t,Z=At,O=RX(O,G,Y);else if(U)C=Ct,Z=Kt,O=bW(O);else C=CX,Z=OL;let j=!1;for(let i of C){let I=J[i];if(!GD(I))j=!0;else if(j)J[i]=Z[i];else J[i]=O[i]}let P=M?la(J,G,Y):U?ia(J):nP(J),T=P||rP(J);if(T)return BD.invalid(T);let h=M?aN(J,G,Y):U?oN(J):J,[q,N]=_X(h,H,F),w=new BD({ts:q,zone:F,o:N,loc:X});if(J.weekday&&A&&D.weekday!==w.weekday)return BD.invalid("mismatched weekday",`you can't specify both a weekday of ${J.weekday} and a date of ${w.toISO()}`);if(!w.isValid)return BD.invalid(w.invalid);return w}static fromISO(D,$={}){let[F,X]=vo(D);return b3(F,X,$,"ISO 8601",D)}static fromRFC2822(D,$={}){let[F,X]=xo(D);return b3(F,X,$,"RFC 2822",D)}static fromHTTP(D,$={}){let[F,X]=yo(D);return b3(F,X,$,"HTTP",$)}static fromFormat(D,$,F={}){if(GD(D)||GD($))throw new T0("fromFormat requires an input string and a format");let{locale:X=null,numberingSystem:J=null}=F,G=zD.fromOpts({locale:X,numberingSystem:J,defaultToEN:!0}),[Y,B,H,U]=Vt(G,D,$);if(U)return BD.invalid(U);else return b3(Y,B,F,`format ${$}`,D,H)}static fromString(D,$,F={}){return BD.fromFormat(D,$,F)}static fromSQL(D,$={}){let[F,X]=no(D);return b3(F,X,$,"SQL",D)}static invalid(D,$=null){if(!D)throw new T0("need to specify a reason the DateTime is invalid");let F=D instanceof N2?D:new N2(D,$);if(sD.throwOnInvalid)throw new CP(F);else return new BD({invalid:F})}static isDateTime(D){return D&&D.isLuxonDateTime||!1}static parseFormatForOpts(D,$={}){let F=ZL(D,zD.fromObject($));return!F?null:F.map((X)=>X?X.val:null).join("")}static expandFormat(D,$={}){return CL(g0.parseFormat(D),zD.fromObject($)).map((X)=>X.val).join("")}static resetCache(){U4=void 0,sW.clear()}get(D){return this[D]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?hW(this).weekYear:NaN}get weekNumber(){return this.isValid?hW(this).weekNumber:NaN}get weekday(){return this.isValid?hW(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?vW(this).weekday:NaN}get localWeekNumber(){return this.isValid?vW(this).weekNumber:NaN}get localWeekYear(){return this.isValid?vW(this).weekYear:NaN}get ordinal(){return this.isValid?bW(this.c).ordinal:NaN}get monthShort(){return this.isValid?f3.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?f3.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?f3.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?f3.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){if(this.isValid)return this.zone.offsetName(this.ts,{format:"short",locale:this.locale});else return null}get offsetNameLong(){if(this.isValid)return this.zone.offsetName(this.ts,{format:"long",locale:this.locale});else return null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){if(this.isOffsetFixed)return!1;else return this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];let D=86400000,$=60000,F=NX(this.c),X=this.zone.offset(F-D),J=this.zone.offset(F+D),G=this.zone.offset(F-X*$),Y=this.zone.offset(F-J*$);if(G===Y)return[this];let B=F-G*$,H=F-Y*$,U=AX(B,G),Q=AX(H,Y);if(U.hour===Q.hour&&U.minute===Q.minute&&U.second===Q.second&&U.millisecond===Q.millisecond)return[W6(this,{ts:B}),W6(this,{ts:H})];return[this]}get isInLeapYear(){return K4(this.year)}get daysInMonth(){return OX(this.year,this.month)}get daysInYear(){return this.isValid?g3(this.year):NaN}get weeksInWeekYear(){return this.isValid?V4(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?V4(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(D={}){let{locale:$,numberingSystem:F,calendar:X}=g0.create(this.loc.clone(D),D).resolvedOptions(this);return{locale:$,numberingSystem:F,outputCalendar:X}}toUTC(D=0,$={}){return this.setZone(h0.instance(D),$)}toLocal(){return this.setZone(sD.defaultZone)}setZone(D,{keepLocalTime:$=!1,keepCalendarTime:F=!1}={}){if(D=O8(D,sD.defaultZone),D.equals(this.zone))return this;else if(!D.isValid)return BD.invalid(W4(D));else{let X=this.ts;if($||F){let J=D.offset(this.ts),G=this.toObject();[X]=_X(G,J,D)}return W6(this,{ts:X,zone:D})}}reconfigure({locale:D,numberingSystem:$,outputCalendar:F}={}){let X=this.loc.clone({locale:D,numberingSystem:$,outputCalendar:F});return W6(this,{loc:X})}setLocale(D){return this.reconfigure({locale:D})}set(D){if(!this.isValid)return this;let $=EX(D,VP),{minDaysInFirstWeek:F,startOfWeek:X}=tN($,this.loc),J=!GD($.weekYear)||!GD($.weekNumber)||!GD($.weekday),G=!GD($.ordinal),Y=!GD($.year),B=!GD($.month)||!GD($.day),H=Y||B,U=$.weekYear||$.weekNumber;if((H||G)&&U)throw new U6("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(B&&G)throw new U6("Can't mix ordinal dates with month/day");let Q;if(J)Q=aN({...RX(this.c,F,X),...$},F,X);else if(!GD($.ordinal))Q=oN({...bW(this.c),...$});else if(Q={...this.toObject(),...$},GD($.day))Q.day=Math.min(OX(Q.year,Q.month),Q.day);let[V,A]=_X(Q,this.o,this.zone);return W6(this,{ts:V,o:A})}plus(D){if(!this.isValid)return this;let $=ED.fromDurationLike(D);return W6(this,UP(this,$))}minus(D){if(!this.isValid)return this;let $=ED.fromDurationLike(D).negate();return W6(this,UP(this,$))}startOf(D,{useLocaleWeeks:$=!1}={}){if(!this.isValid)return this;let F={},X=ED.normalizeUnit(D);switch(X){case"years":F.month=1;case"quarters":case"months":F.day=1;case"weeks":case"days":F.hour=0;case"hours":F.minute=0;case"minutes":F.second=0;case"seconds":F.millisecond=0;break}if(X==="weeks")if($){let J=this.loc.getStartOfWeek(),{weekday:G}=this;if(G<J)F.weekNumber=this.weekNumber-1;F.weekday=J}else F.weekday=1;if(X==="quarters"){let J=Math.ceil(this.month/3);F.month=(J-1)*3+1}return this.set(F)}endOf(D,$){return this.isValid?this.plus({[D]:1}).startOf(D,$).minus(1):this}toFormat(D,$={}){return this.isValid?g0.create(this.loc.redefaultToEN($)).formatDateTimeFromString(this,D):gW}toLocaleString(D=ZX,$={}){return this.isValid?g0.create(this.loc.clone($),D).formatDateTime(this):gW}toLocaleParts(D={}){return this.isValid?g0.create(this.loc.clone(D),D).formatDateTimeParts(this):[]}toISO({format:D="extended",suppressSeconds:$=!1,suppressMilliseconds:F=!1,includeOffset:X=!0,extendedZone:J=!1,precision:G="milliseconds"}={}){if(!this.isValid)return null;G=MX(G);let Y=D==="extended",B=xW(this,Y,G);if(CX.indexOf(G)>=3)B+="T";return B+=QP(this,Y,$,F,X,J,G),B}toISODate({format:D="extended",precision:$="day"}={}){if(!this.isValid)return null;return xW(this,D==="extended",MX($))}toISOWeekDate(){return KX(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:D=!1,suppressSeconds:$=!1,includeOffset:F=!0,includePrefix:X=!1,extendedZone:J=!1,format:G="extended",precision:Y="milliseconds"}={}){if(!this.isValid)return null;return Y=MX(Y),(X&&CX.indexOf(Y)>=3?"T":"")+QP(this,G==="extended",$,D,F,J,Y)}toRFC2822(){return KX(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return KX(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){if(!this.isValid)return null;return xW(this,!0)}toSQLTime({includeOffset:D=!0,includeZone:$=!1,includeOffsetSpace:F=!0}={}){let X="HH:mm:ss.SSS";if($||D){if(F)X+=" ";if($)X+="z";else if(D)X+="ZZ"}return KX(this,X,!0)}toSQL(D={}){if(!this.isValid)return null;return`${this.toSQLDate()} ${this.toSQLTime(D)}`}toString(){return this.isValid?this.toISO():gW}[Symbol.for("nodejs.util.inspect.custom")](){if(this.isValid)return`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`;else return`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1000:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1000):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(D={}){if(!this.isValid)return{};let $={...this.c};if(D.includeConfig)$.outputCalendar=this.outputCalendar,$.numberingSystem=this.loc.numberingSystem,$.locale=this.loc.locale;return $}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(D,$="milliseconds",F={}){if(!this.isValid||!D.isValid)return ED.invalid("created by diffing an invalid DateTime");let X={locale:this.locale,numberingSystem:this.numberingSystem,...F},J=sa($).map(ED.normalizeUnit),G=D.valueOf()>this.valueOf(),Y=G?this:D,B=G?D:this,H=eo(Y,B,J,X);return G?H.negate():H}diffNow(D="milliseconds",$={}){return this.diff(BD.now(),D,$)}until(D){return this.isValid?D0.fromDateTimes(this,D):this}hasSame(D,$,F){if(!this.isValid)return!1;let X=D.valueOf(),J=this.setZone(D.zone,{keepLocalTime:!0});return J.startOf($,F)<=X&&X<=J.endOf($,F)}equals(D){return this.isValid&&D.isValid&&this.valueOf()===D.valueOf()&&this.zone.equals(D.zone)&&this.loc.equals(D.loc)}toRelative(D={}){if(!this.isValid)return null;let $=D.base||BD.fromObject({},{zone:this.zone}),F=D.padding?this<$?-D.padding:D.padding:0,X=["years","months","days","hours","minutes","seconds"],J=D.unit;if(Array.isArray(D.unit))X=D.unit,J=void 0;return KP($,this.plus(F),{...D,numeric:"always",units:X,unit:J})}toRelativeCalendar(D={}){if(!this.isValid)return null;return KP(D.base||BD.fromObject({},{zone:this.zone}),this,{...D,numeric:"auto",units:["years","months","days"],calendary:!0})}static min(...D){if(!D.every(BD.isDateTime))throw new T0("min requires all arguments be DateTimes");return eN(D,($)=>$.valueOf(),Math.min)}static max(...D){if(!D.every(BD.isDateTime))throw new T0("max requires all arguments be DateTimes");return eN(D,($)=>$.valueOf(),Math.max)}static fromFormatExplain(D,$,F={}){let{locale:X=null,numberingSystem:J=null}=F,G=zD.fromOpts({locale:X,numberingSystem:J,defaultToEN:!0});return ML(G,D,$)}static fromStringExplain(D,$,F={}){return BD.fromFormatExplain(D,$,F)}static buildFormatParser(D,$={}){let{locale:F=null,numberingSystem:X=null}=$,J=zD.fromOpts({locale:F,numberingSystem:X,defaultToEN:!0});return new YU(J,D)}static fromFormatParser(D,$,F={}){if(GD(D)||GD($))throw new T0("fromFormatParser requires an input string and a format parser");let{locale:X=null,numberingSystem:J=null}=F,G=zD.fromOpts({locale:X,numberingSystem:J,defaultToEN:!0});if(!G.equals($.locale))throw new T0(`fromFormatParser called with a locale of ${G}, but the format parser was created for ${$.locale}`);let{result:Y,zone:B,specificOffset:H,invalidReason:U}=$.explainFromTokens(D);if(U)return BD.invalid(U);else return b3(Y,B,F,`format ${$.format}`,D,H)}static get DATE_SHORT(){return ZX}static get DATE_MED(){return RP}static get DATE_MED_WITH_WEEKDAY(){return qa}static get DATE_FULL(){return OP}static get DATE_HUGE(){return EP}static get TIME_SIMPLE(){return jP}static get TIME_WITH_SECONDS(){return NP}static get TIME_WITH_SHORT_OFFSET(){return PP}static get TIME_WITH_LONG_OFFSET(){return LP}static get TIME_24_SIMPLE(){return qP}static get TIME_24_WITH_SECONDS(){return zP}static get TIME_24_WITH_SHORT_OFFSET(){return IP}static get TIME_24_WITH_LONG_OFFSET(){return SP}static get DATETIME_SHORT(){return TP}static get DATETIME_SHORT_WITH_SECONDS(){return wP}static get DATETIME_MED(){return kP}static get DATETIME_MED_WITH_SECONDS(){return bP}static get DATETIME_MED_WITH_WEEKDAY(){return za}static get DATETIME_FULL(){return fP}static get DATETIME_FULL_WITH_SECONDS(){return gP}static get DATETIME_HUGE(){return hP}static get DATETIME_HUGE_WITH_SECONDS(){return vP}}function B4(D){if(BD.isDateTime(D))return D;else if(D&&D.valueOf&&E8(D.valueOf()))return BD.fromJSDate(D);else if(D&&typeof D==="object")return BD.fromObject(D);else throw new T0(`Unknown datetime argument: ${D}, of type ${typeof D}`)}var Zt="3.7.2";EL.DateTime=BD;EL.Duration=ED;EL.FixedOffsetZone=h0;EL.IANAZone=C1;EL.Info=f3;EL.Interval=D0;EL.InvalidZone=oW;EL.Settings=sD;EL.SystemZone=A4;EL.VERSION=Zt;EL.Zone=V6});var zX=u((NL)=>{Object.defineProperty(NL,"__esModule",{value:!0});NL.CronDate=NL.DAYS_IN_MONTH=NL.DateMathOp=NL.TimeUnit=void 0;var A6=jL(),v0;(function(D){D.Second="Second",D.Minute="Minute",D.Hour="Hour",D.Day="Day",D.Month="Month",D.Year="Year"})(v0||(NL.TimeUnit=v0={}));var qX;(function(D){D.Add="Add",D.Subtract="Subtract"})(qX||(NL.DateMathOp=qX={}));NL.DAYS_IN_MONTH=Object.freeze([31,29,31,30,31,30,31,31,30,31,30,31]);class c3{#D;#$=null;#X=null;#G={add:{[v0.Year]:this.addYear.bind(this),[v0.Month]:this.addMonth.bind(this),[v0.Day]:this.addDay.bind(this),[v0.Hour]:this.addHour.bind(this),[v0.Minute]:this.addMinute.bind(this),[v0.Second]:this.addSecond.bind(this)},subtract:{[v0.Year]:this.subtractYear.bind(this),[v0.Month]:this.subtractMonth.bind(this),[v0.Day]:this.subtractDay.bind(this),[v0.Hour]:this.subtractHour.bind(this),[v0.Minute]:this.subtractMinute.bind(this),[v0.Second]:this.subtractSecond.bind(this)}};constructor(D,$){let F={zone:$};if(!D)this.#D=A6.DateTime.local();else if(D instanceof c3)this.#D=D.#D,this.#$=D.#$,this.#X=D.#X;else if(D instanceof Date)this.#D=A6.DateTime.fromJSDate(D,F);else if(typeof D==="number")this.#D=A6.DateTime.fromMillis(D,F);else this.#D=A6.DateTime.fromISO(D,F),this.#D.isValid||(this.#D=A6.DateTime.fromRFC2822(D,F)),this.#D.isValid||(this.#D=A6.DateTime.fromSQL(D,F)),this.#D.isValid||(this.#D=A6.DateTime.fromFormat(D,"EEE, d MMM yyyy HH:mm:ss",F));if(!this.#D.isValid)throw Error(`CronDate: unhandled timestamp: ${D}`);if($&&$!==this.#D.zoneName)this.#D=this.#D.setZone($)}static#J(D){return D%4===0&&D%100!==0||D%400===0}get dstStart(){return this.#$}set dstStart(D){this.#$=D}get dstEnd(){return this.#X}set dstEnd(D){this.#X=D}addYear(){this.#D=this.#D.plus({years:1})}addMonth(){this.#D=this.#D.plus({months:1}).startOf("month")}addDay(){this.#D=this.#D.plus({days:1}).startOf("day")}addHour(){this.#D=this.#D.plus({hours:1}).startOf("hour")}addMinute(){this.#D=this.#D.plus({minutes:1}).startOf("minute")}addSecond(){this.#D=this.#D.plus({seconds:1})}subtractYear(){this.#D=this.#D.minus({years:1})}subtractMonth(){this.#D=this.#D.minus({months:1}).endOf("month").startOf("second")}subtractDay(){this.#D=this.#D.minus({days:1}).endOf("day").startOf("second")}subtractHour(){this.#D=this.#D.minus({hours:1}).endOf("hour").startOf("second")}subtractMinute(){this.#D=this.#D.minus({minutes:1}).endOf("minute").startOf("second")}subtractSecond(){this.#D=this.#D.minus({seconds:1})}addUnit(D){this.#G.add[D]()}subtractUnit(D){this.#G.subtract[D]()}invokeDateOperation(D,$){if(D===qX.Add){this.addUnit($);return}if(D===qX.Subtract){this.subtractUnit($);return}throw Error(`Invalid verb: ${D}`)}getDate(){return this.#D.day}getFullYear(){return this.#D.year}getDay(){let D=this.#D.weekday;return D===7?0:D}getMonth(){return this.#D.month-1}getHours(){return this.#D.hour}getMinutes(){return this.#D.minute}getSeconds(){return this.#D.second}getMilliseconds(){return this.#D.millisecond}getUTCOffset(){return this.#D.offset}setStartOfDay(){this.#D=this.#D.startOf("day")}setEndOfDay(){this.#D=this.#D.endOf("day")}getTime(){return this.#D.valueOf()}getUTCDate(){return this.#F().day}getUTCFullYear(){return this.#F().year}getUTCDay(){let D=this.#F().weekday;return D===7?0:D}getUTCMonth(){return this.#F().month-1}getUTCHours(){return this.#F().hour}getUTCMinutes(){return this.#F().minute}getUTCSeconds(){return this.#F().second}toISOString(){return this.#D.toUTC().toISO()}toJSON(){return this.#D.toJSON()}setDate(D){this.#D=this.#D.set({day:D})}setFullYear(D){this.#D=this.#D.set({year:D})}setDay(D){this.#D=this.#D.set({weekday:D})}setMonth(D){this.#D=this.#D.set({month:D+1})}setHours(D){this.#D=this.#D.set({hour:D})}setMinutes(D){this.#D=this.#D.set({minute:D})}setSeconds(D){this.#D=this.#D.set({second:D})}setMilliseconds(D){this.#D=this.#D.set({millisecond:D})}toString(){return this.toDate().toString()}toDate(){return this.#D.toJSDate()}isLastDayOfMonth(){let{day:D,month:$}=this.#D;if($===2){let F=c3.#J(this.#D.year);return D===NL.DAYS_IN_MONTH[$-1]-(F?0:1)}return D===NL.DAYS_IN_MONTH[$-1]}isLastWeekdayOfMonth(){let{day:D,month:$}=this.#D,F;if($===2)F=NL.DAYS_IN_MONTH[$-1]-(c3.#J(this.#D.year)?0:1);else F=NL.DAYS_IN_MONTH[$-1];return D>F-7}applyDateOperation(D,$,F){if($===v0.Month||$===v0.Day){this.invokeDateOperation(D,$);return}let X=this.getHours();this.invokeDateOperation(D,$);let J=this.getHours(),G=J-X;if(G===2){if(F!==24)this.dstStart=J}else if(G===0&&this.getMinutes()===0&&this.getSeconds()===0){if(F!==24)this.dstEnd=J}}#F(){return this.#D.toUTC()}}NL.CronDate=c3;NL.default=c3});var IL=u((qL)=>{Object.defineProperty(qL,"__esModule",{value:!0});qL.CronMonth=void 0;var bt=zX(),ft=Z8(),gt=1,ht=12,vt=Object.freeze([]);class LL extends ft.CronField{static get min(){return gt}static get max(){return ht}static get chars(){return vt}static get daysInMonth(){return bt.DAYS_IN_MONTH}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}qL.CronMonth=LL});var kL=u((TL)=>{Object.defineProperty(TL,"__esModule",{value:!0});TL.CronSecond=void 0;var xt=Z8(),yt=0,ut=59,mt=Object.freeze([]);class SL extends xt.CronField{static get min(){return yt}static get max(){return ut}static get chars(){return mt}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}TL.CronSecond=SL});var IX=u((o0)=>{var ct=o0&&o0.__createBinding||(Object.create?function(D,$,F,X){if(X===void 0)X=F;var J=Object.getOwnPropertyDescriptor($,F);if(!J||("get"in J?!$.__esModule:J.writable||J.configurable))J={enumerable:!0,get:function(){return $[F]}};Object.defineProperty(D,X,J)}:function(D,$,F,X){if(X===void 0)X=F;D[X]=$[F]}),N8=o0&&o0.__exportStar||function(D,$){for(var F in D)if(F!=="default"&&!Object.prototype.hasOwnProperty.call($,F))ct($,D,F)};Object.defineProperty(o0,"__esModule",{value:!0});N8(EN(),o0);N8(zN(),o0);N8(wN(),o0);N8(Z8(),o0);N8(gN(),o0);N8(yN(),o0);N8(IL(),o0);N8(kL(),o0)});var BU=u((bL)=>{Object.defineProperty(bL,"__esModule",{value:!0});bL.CronFieldCollection=void 0;var q2=IX();class p3{#D;#$;#X;#G;#J;#F;static from(D,$){return new p3({second:this.resolveField(q2.CronSecond,D.second,$.second),minute:this.resolveField(q2.CronMinute,D.minute,$.minute),hour:this.resolveField(q2.CronHour,D.hour,$.hour),dayOfMonth:this.resolveField(q2.CronDayOfMonth,D.dayOfMonth,$.dayOfMonth),month:this.resolveField(q2.CronMonth,D.month,$.month),dayOfWeek:this.resolveField(q2.CronDayOfWeek,D.dayOfWeek,$.dayOfWeek)})}static resolveField(D,$,F){if(!F)return $;if(F instanceof q2.CronField)return F;return new D(F)}constructor({second:D,minute:$,hour:F,dayOfMonth:X,month:J,dayOfWeek:G}){if(!D)throw Error("Validation error, Field second is missing");if(!$)throw Error("Validation error, Field minute is missing");if(!F)throw Error("Validation error, Field hour is missing");if(!X)throw Error("Validation error, Field dayOfMonth is missing");if(!J)throw Error("Validation error, Field month is missing");if(!G)throw Error("Validation error, Field dayOfWeek is missing");if(J.values.length===1&&!X.hasLastChar){if(!(parseInt(X.values[0],10)<=q2.CronMonth.daysInMonth[J.values[0]-1]))throw Error("Invalid explicit day of month definition")}this.#D=D,this.#$=$,this.#X=F,this.#J=J,this.#F=G,this.#G=X}get second(){return this.#D}get minute(){return this.#$}get hour(){return this.#X}get dayOfMonth(){return this.#G}get month(){return this.#J}get dayOfWeek(){return this.#F}static compactField(D){if(D.length===0)return[];let $=[],F=void 0;if(D.forEach((X,J,G)=>{if(F===void 0){F={start:X,count:1};return}let Y=G[J-1]||F.start,B=G[J+1];if(X==="L"||X==="W"){$.push(F),$.push({start:X,count:1}),F=void 0;return}if(F.step===void 0&&B!==void 0){let H=X-Y,U=B-X;if(H<=U){F={...F,count:2,end:X,step:H};return}F.step=1}if(X-(F.end??0)===F.step)F.count++,F.end=X;else{if(F.count===1)$.push({start:F.start,count:1});else if(F.count===2)$.push({start:F.start,count:1}),$.push({start:F.end??Y,count:1});else $.push(F);F={start:X,count:1}}}),F)$.push(F);return $}static#W(D,$,F){let X=$.step;if(!X)return null;if(X===1&&$.start===D.min&&$.end&&$.end>=F)return D.hasQuestionMarkChar?"?":"*";if(X!==1&&$.start===D.min&&$.end&&$.end>=F-X+1)return`*/${X}`;return null}static#H(D,$){let F=D.step;if(F===1)return`${D.start}-${D.end}`;let X=D.start===0?D.count-1:D.count;if(!F)throw Error("Unexpected range step");if(!D.end)throw Error("Unexpected range end");if(F*X>D.end){let J=(Y,B)=>{if(typeof D.start!=="number")throw Error("Unexpected range start");return B%F===0?D.start+B:null};if(typeof D.start!=="number")throw Error("Unexpected range start");let G={length:D.end-D.start+1};return Array.from(G,J).filter((Y)=>Y!==null).join(",")}return D.end===$-F+1?`${D.start}/${F}`:`${D.start}-${D.end}/${F}`}stringifyField(D){let{max:$,values:F}=D;if(D instanceof q2.CronDayOfWeek){$=6;let J=this.#F.values;F=J[J.length-1]===7?J.slice(0,-1):J}if(D instanceof q2.CronDayOfMonth)$=this.#J.values.length===1?q2.CronMonth.daysInMonth[this.#J.values[0]-1]:D.max;let X=p3.compactField(F);if(X.length===1){let J=p3.#W(D,X[0],$);if(J)return J}return X.map((J)=>{let G=J.count===1?J.start.toString():p3.#H(J,$);if(D instanceof q2.CronDayOfWeek&&D.nthDay>0)return`${G}#${D.nthDay}`;return G}).join(",")}stringify(D=!1){let $=[];if(D)$.push(this.stringifyField(this.#D));return $.push(this.stringifyField(this.#$),this.stringifyField(this.#X),this.stringifyField(this.#G),this.stringifyField(this.#J),this.stringifyField(this.#F)),$.join(" ")}serialize(){return{second:this.#D.serialize(),minute:this.#$.serialize(),hour:this.#X.serialize(),dayOfMonth:this.#G.serialize(),month:this.#J.serialize(),dayOfWeek:this.#F.serialize()}}}bL.CronFieldCollection=p3});var WU=u((hL)=>{Object.defineProperty(hL,"__esModule",{value:!0});hL.CronExpression=hL.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE=hL.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE=void 0;var J0=zX();hL.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE="Out of the time span range";hL.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE="Invalid expression, loop limit exceeded";var gL=1e4;class z2{#D;#$;#X;#G;#J;#F;#W=null;#H=!1;constructor(D,$){this.#D=$,this.#$=$.tz,this.#G=$.startDate?new J0.CronDate($.startDate,this.#$):null,this.#J=$.endDate?new J0.CronDate($.endDate,this.#$):null;let F=$.currentDate??$.startDate;if(F){let X=new J0.CronDate(F,this.#$);if(this.#G&&X.getTime()<this.#G.getTime())F=this.#G;else if(this.#J&&X.getTime()>this.#J.getTime())F=this.#J}this.#X=new J0.CronDate(F,this.#$),this.#F=D}get fields(){return this.#F}static fieldsToExpression(D,$){return new z2(D,$||{})}static#B(D,$){return $.some((F)=>F===D)}#Y(D,$){return D[$?D.length-1:0]}#Q(D){let $=`${D.getFullYear()}-${D.getMonth()+1}-${D.getDate()}`;if(this.#W===$)return this.#H;let F=new J0.CronDate(D);F.setStartOfDay();let X=new J0.CronDate(D);return X.setEndOfDay(),this.#W=$,this.#H=F.getUTCOffset()!==X.getUTCOffset(),this.#H}#V(D,$,F){let X=this.#F.second.values,J=D.getSeconds(),G=this.#F.second.findNearestValue(J,F);if(G!==null){D.setSeconds(G);return}D.applyDateOperation($,J0.TimeUnit.Minute,this.#F.hour.values.length),D.setSeconds(this.#Y(X,F))}#U(D,$,F){let X=this.#F.minute.values,J=this.#F.second.values,G=D.getMinutes(),Y=this.#F.minute.findNearestValue(G,F);if(Y!==null){D.setMinutes(Y),D.setSeconds(this.#Y(J,F));return}D.applyDateOperation($,J0.TimeUnit.Hour,this.#F.hour.values.length),D.setMinutes(this.#Y(X,F)),D.setSeconds(this.#Y(J,F))}static#_(D,$){let F=$.isLastWeekdayOfMonth();return D.some((X)=>{let J=parseInt(X.toString().charAt(0),10)%7;if(Number.isNaN(J))throw Error(`Invalid last weekday of the month expression: ${X}`);return $.getDay()===J&&F})}next(){return this.#A()}prev(){return this.#A(!0)}hasNext(){let D=this.#X;try{return this.#A(),!0}catch{return!1}finally{this.#X=D}}hasPrev(){let D=this.#X;try{return this.#A(!0),!0}catch{return!1}finally{this.#X=D}}take(D){let $=[];if(D>=0)for(let F=0;F<D;F++)try{$.push(this.next())}catch{return $}else for(let F=0;F>D;F--)try{$.push(this.prev())}catch{return $}return $}reset(D){this.#X=new J0.CronDate(D||this.#D.currentDate)}stringify(D=!1){return this.#F.stringify(D)}includesDate(D){let{second:$,minute:F,hour:X,month:J}=this.#F,G=new J0.CronDate(D,this.#$);if(!$.values.includes(G.getSeconds())||!F.values.includes(G.getMinutes())||!X.values.includes(G.getHours())||!J.values.includes(G.getMonth()+1))return!1;if(!this.#K(G))return!1;if(this.#F.dayOfWeek.nthDay>0){if(Math.ceil(G.getDate()/7)!==this.#F.dayOfWeek.nthDay)return!1}return!0}toString(){return this.#D.expression||this.stringify(!0)}#K(D){let $=this.#F.dayOfMonth.isWildcard,F=!$,X=this.#F.dayOfWeek.isWildcard,J=!X,G=z2.#B(D.getDate(),this.#F.dayOfMonth.values)||this.#F.dayOfMonth.hasLastChar&&D.isLastDayOfMonth(),Y=z2.#B(D.getDay(),this.#F.dayOfWeek.values)||this.#F.dayOfWeek.hasLastChar&&z2.#_(this.#F.dayOfWeek.values,D);if(F&&J&&(G||Y))return!0;if(G&&!J)return!0;if($&&!X&&Y)return!0;return!1}#C(D,$,F){let X=this.#F.hour.values,J=X,G=D.getHours(),Y=z2.#B(G,X),B=D.dstStart===G,H=D.dstEnd===G;if(B){if(z2.#B(G-1,X))return!0;return D.invokeDateOperation($,J0.TimeUnit.Hour),!1}if(H&&!F)return D.dstEnd=null,D.applyDateOperation(J0.DateMathOp.Add,J0.TimeUnit.Hour,J.length),!1;if(Y)return!0;D.dstStart=null;let U=this.#F.hour.findNearestValue(G,F);if(U===null)return D.applyDateOperation($,J0.TimeUnit.Day,J.length),!1;if(this.#Q(D)){let Q=F?G-U:U-G;for(let V=0;V<Q;V++)D.applyDateOperation($,J0.TimeUnit.Hour,J.length)}else D.setHours(U);return D.setMinutes(this.#Y(this.#F.minute.values,F)),D.setSeconds(this.#Y(this.#F.second.values,F)),!1}#M(D){if(!this.#G&&!this.#J)return;let $=D.getTime();if(this.#G&&$<this.#G.getTime())throw Error(hL.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE);if(this.#J&&$>this.#J.getTime())throw Error(hL.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE)}#A(D=!1){let $=D?J0.DateMathOp.Subtract:J0.DateMathOp.Add,F=new J0.CronDate(this.#X),X=F.getTime(),J=0;while(++J<gL){if(this.#M(F),!this.#K(F)){F.applyDateOperation($,J0.TimeUnit.Day,this.#F.hour.values.length);continue}if(!(this.#F.dayOfWeek.nthDay<=0||Math.ceil(F.getDate()/7)===this.#F.dayOfWeek.nthDay)){F.applyDateOperation($,J0.TimeUnit.Day,this.#F.hour.values.length);continue}if(!z2.#B(F.getMonth()+1,this.#F.month.values)){F.applyDateOperation($,J0.TimeUnit.Month,this.#F.hour.values.length);continue}if(!this.#C(F,$,D))continue;if(!z2.#B(F.getMinutes(),this.#F.minute.values)){this.#U(F,$,D);continue}if(!z2.#B(F.getSeconds(),this.#F.second.values)){this.#V(F,$,D);continue}if(X===F.getTime()){if($==="Add"||F.getMilliseconds()===0)F.applyDateOperation($,J0.TimeUnit.Second,this.#F.hour.values.length);continue}break}if(J>gL)throw Error(hL.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE);if(F.getMilliseconds()!==0)F.setMilliseconds(0);return this.#X=F,F}[Symbol.iterator](){return{next:()=>{return{value:this.#A(),done:!this.hasNext()}}}}}hL.CronExpression=z2;hL.default=z2});var uL=u((yL)=>{Object.defineProperty(yL,"__esModule",{value:!0});yL.seededRandom=it;function dt(D){let $=2166136261;for(let F=0;F<D.length;F++)$^=D.charCodeAt(F),$=Math.imul($,16777619);return()=>$>>>0}function lt(D){return()=>{let $=D+=1831565813;return $=Math.imul($^$>>>15,$|1),$^=$+Math.imul($^$>>>7,$|61),(($^$>>>14)>>>0)/4294967296}}function it(D){let $=D?dt(D)():Math.floor(Math.random()*10000000000);return lt($)}});var SX=u((mL)=>{Object.defineProperty(mL,"__esModule",{value:!0});mL.CronExpressionParser=mL.DayOfWeek=mL.Months=mL.CronUnit=mL.PredefinedExpressions=void 0;var rt=BU(),st=WU(),at=uL(),I2=IX(),UU;(function(D){D["@yearly"]="0 0 0 1 1 *",D["@annually"]="0 0 0 1 1 *",D["@monthly"]="0 0 0 1 * *",D["@weekly"]="0 0 0 * * 0",D["@daily"]="0 0 0 * * *",D["@hourly"]="0 0 * * * *",D["@minutely"]="0 * * * * *",D["@secondly"]="* * * * * *",D["@weekdays"]="0 0 0 * * 1-5",D["@weekends"]="0 0 0 * * 0,6"})(UU||(mL.PredefinedExpressions=UU={}));var S2;(function(D){D.Second="Second",D.Minute="Minute",D.Hour="Hour",D.DayOfMonth="DayOfMonth",D.Month="Month",D.DayOfWeek="DayOfWeek"})(S2||(mL.CronUnit=S2={}));var QU;(function(D){D[D.jan=1]="jan",D[D.feb=2]="feb",D[D.mar=3]="mar",D[D.apr=4]="apr",D[D.may=5]="may",D[D.jun=6]="jun",D[D.jul=7]="jul",D[D.aug=8]="aug",D[D.sep=9]="sep",D[D.oct=10]="oct",D[D.nov=11]="nov",D[D.dec=12]="dec"})(QU||(mL.Months=QU={}));var VU;(function(D){D[D.sun=0]="sun",D[D.mon=1]="mon",D[D.tue=2]="tue",D[D.wed=3]="wed",D[D.thu=4]="thu",D[D.fri=5]="fri",D[D.sat=6]="sat"})(VU||(mL.DayOfWeek=VU={}));class t0{static parse(D,$={}){let{strict:F=!1,hashSeed:X}=$,J=(0,at.seededRandom)(X);D=UU[D]||D;let G=t0.#D(D,F);if(!(G.dayOfMonth==="*"||G.dayOfWeek==="*"||!F))throw Error("Cannot use both dayOfMonth and dayOfWeek together in strict mode!");let Y=t0.#$(S2.Second,G.second,I2.CronSecond.constraints,J),B=t0.#$(S2.Minute,G.minute,I2.CronMinute.constraints,J),H=t0.#$(S2.Hour,G.hour,I2.CronHour.constraints,J),U=t0.#$(S2.Month,G.month,I2.CronMonth.constraints,J),Q=t0.#$(S2.DayOfMonth,G.dayOfMonth,I2.CronDayOfMonth.constraints,J),{dayOfWeek:V,nthDayOfWeek:A}=t0.#Q(G.dayOfWeek),K=t0.#$(S2.DayOfWeek,V,I2.CronDayOfWeek.constraints,J),M=new rt.CronFieldCollection({second:new I2.CronSecond(Y,{rawValue:G.second}),minute:new I2.CronMinute(B,{rawValue:G.minute}),hour:new I2.CronHour(H,{rawValue:G.hour}),dayOfMonth:new I2.CronDayOfMonth(Q,{rawValue:G.dayOfMonth}),month:new I2.CronMonth(U,{rawValue:G.month}),dayOfWeek:new I2.CronDayOfWeek(K,{rawValue:G.dayOfWeek,nthDayOfWeek:A})});return new st.CronExpression(M,{...$,expression:D})}static#D(D,$){if($&&!D.length)throw Error("Invalid cron expression");D=D||"0 * * * * *";let F=D.trim().split(/\s+/);if($&&F.length<6)throw Error("Invalid cron expression, expected 6 fields");if(F.length>6)throw Error("Invalid cron expression, too many fields");let X=["*","*","*","*","*","0"];if(F.length<X.length)F.unshift(...X.slice(F.length));let[J,G,Y,B,H,U]=F;return{second:J,minute:G,hour:Y,dayOfMonth:B,month:H,dayOfWeek:U}}static#$(D,$,F,X){if(D===S2.Month||D===S2.DayOfWeek)$=$.replace(/[a-z]{3}/gi,(J)=>{J=J.toLowerCase();let G=QU[J]||VU[J];if(G===void 0)throw Error(`Validation error, cannot resolve alias "${J}"`);return G.toString()});if(!F.validChars.test($))throw Error(`Invalid characters, got value: ${$}`);return $=this.#X($,F),$=this.#G($,F,X),this.#J(D,$,F)}static#X(D,$){return D.replace(/[*?]/g,$.min+"-"+$.max)}static#G(D,$,F){let X=F();return D.replace(/H(?:\((\d+)-(\d+)\))?(?:\/(\d+))?/g,(J,G,Y,B)=>{if(G&&Y&&B){let H=parseInt(G,10),U=parseInt(Y,10),Q=parseInt(B,10);if(H>U)throw Error(`Invalid range: ${H}-${U}, min > max`);if(Q<=0)throw Error(`Invalid step: ${Q}, must be positive`);let V=Math.max(H,$.min),A=Math.floor(X*Q),K=[];for(let M=Math.floor(V/Q)*Q+A;M<=U;M+=Q)if(M>=V)K.push(M);return K.join(",")}else if(G&&Y){let H=parseInt(G,10),U=parseInt(Y,10);if(H>U)throw Error(`Invalid range: ${H}-${U}, min > max`);return String(Math.floor(X*(U-H+1))+H)}else if(B){let H=parseInt(B,10);if(H<=0)throw Error(`Invalid step: ${H}, must be positive`);let U=Math.floor(X*H),Q=[];for(let V=Math.floor($.min/H)*H+U;V<=$.max;V+=H)if(V>=$.min)Q.push(V);return Q.join(",")}else return String(Math.floor(X*($.max-$.min+1)+$.min))})}static#J(D,$,F){let X=[];function J(Y,B){if(Array.isArray(Y))X.push(...Y);else if(t0.#V(B,Y))X.push(Y);else{let H=parseInt(Y.toString(),10);if(!(H>=B.min&&H<=B.max))throw Error(`Constraint error, got value ${Y} expected range ${B.min}-${B.max}`);X.push(D===S2.DayOfWeek?H%7:Y)}}return $.split(",").forEach((Y)=>{if(!(Y.length>0))throw Error("Invalid list value format");J(t0.#F(D,Y,F),F)}),X}static#F(D,$,F){let X=$.split("/");if(X.length>2)throw Error(`Invalid repeat: ${$}`);if(X.length===2){if(!isNaN(parseInt(X[0],10)))X[0]=`${X[0]}-${F.max}`;return t0.#Y(D,X[0],parseInt(X[1],10),F)}return t0.#Y(D,$,1,F)}static#W(D,$,F){if(!(!isNaN(D)&&!isNaN($)&&D>=F.min&&$<=F.max))throw Error(`Constraint error, got range ${D}-${$} expected range ${F.min}-${F.max}`);if(D>$)throw Error(`Invalid range: ${D}-${$}, min(${D}) > max(${$})`)}static#H(D){if(!(!isNaN(D)&&D>0))throw Error(`Constraint error, cannot repeat at every ${D} time.`)}static#B(D,$,F,X){let J=[];if(D===S2.DayOfWeek&&F%7===0)J.push(0);for(let G=$;G<=F;G+=X)if(J.indexOf(G)===-1)J.push(G);return J}static#Y(D,$,F,X){let J=$.split("-");if(J.length<=1)return isNaN(+$)?$:+$;let[G,Y]=J.map((B)=>parseInt(B,10));return this.#W(G,Y,X),this.#H(F),this.#B(D,G,Y,F)}static#Q(D){let $=D.split("#");if($.length<=1)return{dayOfWeek:$[0]};let F=+$[$.length-1],X=D.match(/([,-/])/);if(X!==null)throw Error(`Constraint error, invalid dayOfWeek \`#\` and \`${X?.[0]}\` special characters are incompatible`);if(!($.length<=2&&!isNaN(F)&&F>=1&&F<=5))throw Error("Constraint error, invalid dayOfWeek occurrence number (#)");return{dayOfWeek:$[0],nthDayOfWeek:F}}static#V(D,$){return D.chars.some((F)=>$.toString().includes(F))}}mL.CronExpressionParser=t0});var pL=u((M1)=>{var $e=M1&&M1.__createBinding||(Object.create?function(D,$,F,X){if(X===void 0)X=F;var J=Object.getOwnPropertyDescriptor($,F);if(!J||("get"in J?!$.__esModule:J.writable||J.configurable))J={enumerable:!0,get:function(){return $[F]}};Object.defineProperty(D,X,J)}:function(D,$,F,X){if(X===void 0)X=F;D[X]=$[F]}),Fe=M1&&M1.__setModuleDefault||(Object.create?function(D,$){Object.defineProperty(D,"default",{enumerable:!0,value:$})}:function(D,$){D.default=$}),Xe=M1&&M1.__importStar||function(){var D=function($){return D=Object.getOwnPropertyNames||function(F){var X=[];for(var J in F)if(Object.prototype.hasOwnProperty.call(F,J))X[X.length]=J;return X},D($)};return function($){if($&&$.__esModule)return $;var F={};if($!=null){for(var X=D($),J=0;J<X.length;J++)if(X[J]!=="default")$e(F,$,X[J])}return Fe(F,$),F}}();Object.defineProperty(M1,"__esModule",{value:!0});M1.CronFileParser=void 0;var Je=SX();class Z4{static async parseFile(D){let{readFile:$}=await Promise.resolve().then(()=>Xe(R1("fs/promises"))),F=await $(D,"utf8");return Z4.#D(F)}static parseFileSync(D){let{readFileSync:$}=R1("fs"),F=$(D,"utf8");return Z4.#D(F)}static#D(D){let $=D.split(`
1675
+ `),F={variables:{},expressions:[],errors:{}};for(let X of $){let J=X.trim();if(J.length===0||J.startsWith("#"))continue;let G=J.match(/^(.*)=(.*)$/);if(G){let[,Y,B]=G;F.variables[Y]=B.replace(/["']/g,"");continue}try{let Y=Z4.#$(J);F.expressions.push(Y.interval)}catch(Y){F.errors[J]=Y}}return F}static#$(D){let $=D.split(" ");return{interval:Je.CronExpressionParser.parse($.slice(0,5).join(" ")),command:$.slice(5,$.length)}}}M1.CronFileParser=Z4});var dL=u((N0)=>{var Ge=N0&&N0.__createBinding||(Object.create?function(D,$,F,X){if(X===void 0)X=F;var J=Object.getOwnPropertyDescriptor($,F);if(!J||("get"in J?!$.__esModule:J.writable||J.configurable))J={enumerable:!0,get:function(){return $[F]}};Object.defineProperty(D,X,J)}:function(D,$,F,X){if(X===void 0)X=F;D[X]=$[F]}),Ye=N0&&N0.__exportStar||function(D,$){for(var F in D)if(F!=="default"&&!Object.prototype.hasOwnProperty.call($,F))Ge($,D,F)};Object.defineProperty(N0,"__esModule",{value:!0});N0.CronFileParser=N0.CronExpressionParser=N0.CronExpression=N0.CronFieldCollection=N0.CronDate=void 0;var Be=SX(),He=zX();Object.defineProperty(N0,"CronDate",{enumerable:!0,get:function(){return He.CronDate}});var We=BU();Object.defineProperty(N0,"CronFieldCollection",{enumerable:!0,get:function(){return We.CronFieldCollection}});var Ue=WU();Object.defineProperty(N0,"CronExpression",{enumerable:!0,get:function(){return Ue.CronExpression}});var Qe=SX();Object.defineProperty(N0,"CronExpressionParser",{enumerable:!0,get:function(){return Qe.CronExpressionParser}});var Ve=pL();Object.defineProperty(N0,"CronFileParser",{enumerable:!0,get:function(){return Ve.CronFileParser}});Ye(IX(),N0);N0.default=Be.CronExpressionParser});class R4{deps;handle=null;ticking=!1;constructor(D){this.deps=D}start(D=Ae){if(this.handle!==null)return;this.handle=setInterval(()=>{this.tick().catch(($)=>_.warn(`[cron ${this.deps.workerId}] tick failed: ${String($)}`))},D)}stop(){if(this.handle===null)return;clearInterval(this.handle),this.handle=null}async addJob(D){let $=TX(D.expression,new Date),F=crypto.randomUUID(),X=new Date().toISOString(),J=D.enabled??!0,G=D.accountId??Ke;if(G.length===0)throw Error("cron job accountId \u4E0D\u80FD\u4E3A\u7A7A\u5B57\u7B26\u4E32");let Y={id:F,expression:D.expression,prompt:D.prompt,channel:D.channel,chatId:D.chatId,accountId:G,enabled:J,lastRunAt:null,nextRunAt:J?$.toISOString():null,createdAt:X,updatedAt:X};b().insert(lD).values(Y).run();let B=b().select().from(lD).where(S(lD.id,F)).get();return wX(B)}async listJobs(){return b().select().from(lD).all().map(wX)}async getJob(D){let $=b().select().from(lD).where(S(lD.id,D)).get();return $?wX($):null}async removeJob(D){let $=b();if(!$.select({id:lD.id}).from(lD).where(S(lD.id,D)).get())return{removed:!1};return $.delete(lD).where(S(lD.id,D)).run(),{removed:!0}}async updateJob(D,$){let F=b().select().from(lD).where(S(lD.id,D)).get();if(!F)return null;let X={updatedAt:new Date().toISOString()},J=!1;if($.expression!==void 0)TX($.expression,new Date),X.expression=$.expression,J=!0;if($.prompt!==void 0)X.prompt=$.prompt;if($.channel!==void 0)X.channel=$.channel;if($.chatId!==void 0)X.chatId=$.chatId;if($.accountId!==void 0){if($.accountId.length===0)throw Error("cron job accountId \u4E0D\u80FD\u4E3A\u7A7A\u5B57\u7B26\u4E32");X.accountId=$.accountId}if($.enabled!==void 0)X.enabled=$.enabled,J=!0;if(J){let Y=$.enabled??F.enabled,B=$.expression??F.expression;X.nextRunAt=Y?TX(B,new Date).toISOString():null}b().update(lD).set(X).where(S(lD.id,D)).run();let G=b().select().from(lD).where(S(lD.id,D)).get();return wX(G)}async tick(D=new Date){if(this.ticking)return;this.ticking=!0;try{let $=D.toISOString(),F=b().select().from(lD).where(TD(S(lD.enabled,!0),VF(lD.nextRunAt,$))).all();for(let X of F)await this.fireJob(X,D)}finally{this.ticking=!1}}async fireJob(D,$){let F={workerId:this.deps.workerId,channel:D.channel,accountId:D.accountId,chatId:D.chatId,text:D.prompt,receivedAt:$.toISOString(),raw:{source:"cron",jobId:D.id}},X=null;try{X=TX(D.expression,$).toISOString()}catch(G){_.warn(`[cron ${D.id}] expression "${D.expression}" \u5F02\u5E38\uFF0C\u505C\u6B62\u540E\u7EED\u89E6\u53D1: ${String(G)}`)}let J=$.toISOString();b().update(lD).set({lastRunAt:J,nextRunAt:X,updatedAt:J}).where(S(lD.id,D.id)).run();try{await this.deps.getOrchestrator().ingest(F)}catch(G){_.warn(`[cron ${D.id}] orchestrator.ingest \u5931\u8D25: ${String(G)}`)}}}function TX(D,$){return lL.CronExpressionParser.parse(D,{currentDate:$}).next().toDate()}function wX(D){return{id:D.id,expression:D.expression,prompt:D.prompt,channel:D.channel,chatId:D.chatId,accountId:D.accountId,enabled:D.enabled,lastRunAt:D.lastRunAt,nextRunAt:D.nextRunAt,createdAt:D.createdAt,updatedAt:D.updatedAt}}var lL,Ae=60000,Ke="sys:cron";var AU=R(()=>{gD();HD();V0();lL=bw(dL(),1)});class O4{listeners=new Set;emit(D,$){let F={type:D,payload:$,at:new Date().toISOString()};for(let X of this.listeners)try{X(F)}catch(J){_.warn(`[bus] listener for ${F.type} threw:`,J)}}on(D){return this.listeners.add(D),()=>{this.listeners.delete(D)}}}var KU=R(()=>{HD()});import rL from"fs/promises";import _e from"os";import T2 from"path";import kX from"process";function aL(D=sL){let $=new Map;async function F(H){let U=new Date(D.now()).toISOString(),Q=await D.resolveBinary(H.binaryName),V={kind:H.kind,status:"not-found",checkedAt:U};if(H.agent)V.agent=H.agent;if(!Q)return{...V,authHint:"binary-not-on-path"};let A=D.homedir();for(let K of H.authPaths(A))if(await D.pathExists(K))return{...V,status:"ready",binaryPath:Q,authHint:"auth-file-present"};return{...V,status:"login-required",binaryPath:Q,authHint:"auth-file-missing"}}async function X(H,U){let Q=$.get(H.key);if(!U&&Q&&Q.expiresAt>D.now())return Q.value;let V=await F(H);return $.set(H.key,{value:V,expiresAt:D.now()+Ce}),V}function J(H){return{kind:H,status:"ready",checkedAt:new Date(D.now()).toISOString(),authHint:"no-cli-required"}}async function G(H={}){let U=H.refresh??!1,Q=[];for(let V of iL)Q.push(J(V));for(let V of nL)Q.push(await X(V,U));return Q}async function Y(H,U={}){let Q=U.refresh??!1;if(iL.includes(H))return J(H);let V=nL.filter((K)=>K.kind===H);if(V.length===0)return{kind:H,status:"not-found",checkedAt:new Date(D.now()).toISOString(),authHint:"unknown-engine"};let A=U.agent?V.find((K)=>K.agent===U.agent)??V[0]:V[0];return X(A,Q)}function B(){$.clear()}return{probe:Y,probeAll:G,clearCache:B}}function d3(){if(!E4)E4=aL();return E4}function oL(D){return E4=aL(D),E4}function _U(D,$){let F=new Date().toISOString();if(D==="login")return{status:"LoginDetected",checkedAt:F,detail:$};if(D==="install")return{status:"InstallationFound",checkedAt:F,detail:$};return{status:"NotFound",checkedAt:F,detail:$}}async function tL(D,$=sL){let F=$.homedir(),X=D==="gemini"?".gemini":".qwen",J=T2.join(F,X,"oauth_creds.json"),G=T2.join(F,X,"settings.json");if(await $.pathExists(J))return _U("login","oauth_creds.json present");if(await $.pathExists(G))return _U("install","settings.json present, login pending");return _U("none",`~/${X} not present`)}function eL(){return tL("gemini")}function Dq(){return tL("qwen")}async function Me(D){let $=kX.env.PATH??"",F=kX.platform==="win32"?";":":",X=kX.platform==="win32"?(kX.env.PATHEXT??".EXE").split(";"):[""];for(let J of $.split(F)){if(!J)continue;for(let G of X){let Y=T2.join(J,`${D}${G.toLowerCase()}`);try{if((await rL.stat(Y)).isFile())return Y}catch{}}}return null}async function Ze(D){try{return await rL.stat(D),!0}catch{return!1}}var Ce=600000,sL,iL,nL,E4=null;var bX=R(()=>{sL={resolveBinary:Me,pathExists:Ze,homedir:()=>_e.homedir(),now:()=>Date.now()},iL=["http","mcp","cli"],nL=[{key:"claude-code",kind:"claude-code",binaryName:"claude",authPaths:(D)=>[T2.join(D,".claude.json"),T2.join(D,".claude","config.json")]},{key:"acp:gemini",kind:"acp",agent:"gemini",binaryName:"gemini",authPaths:(D)=>[T2.join(D,".gemini","oauth_creds.json")]},{key:"acp:qwen",kind:"acp",agent:"qwen",binaryName:"qwen",authPaths:(D)=>[T2.join(D,".qwen","oauth_creds.json"),T2.join(D,".qwen","settings.json")]},{key:"codex",kind:"codex",binaryName:"codex",authPaths:(D)=>[T2.join(D,".codex","auth.json")]},{key:"cursor",kind:"cursor",binaryName:"cursor-agent",authPaths:(D)=>[T2.join(D,".cursor","cli-config.json"),T2.join(D,".cursor-agent","auth.json"),T2.join(D,".cursor","auth.json")]}]});class CU{deps;ws=null;reconnectDelay;reconnectTimer=null;stopped=!1;WebSocketCtor;enrolledViaOtp=!1;constructor(D){this.deps=D;this.reconnectDelay=D.options.initialReconnectDelayMs;let $=globalThis.WebSocket,F=D.webSocketCtor??$;if(!F)throw Error("gateway-client: no WebSocket implementation available (set deps.webSocketCtor)");this.WebSocketCtor=F}start(){this.openSocket()}async stop(){if(this.stopped=!0,this.reconnectTimer)clearTimeout(this.reconnectTimer),this.reconnectTimer=null;let D=this.ws;if(this.ws=null,!D)return;return new Promise(($)=>{let F=setTimeout(()=>$(),2000);D.onclose=()=>{clearTimeout(F),$()};try{D.close(1000,"node-shutdown")}catch{clearTimeout(F),$()}})}send(D){let $=this.ws;if(!$||$.readyState!==Re){_.warn(`[gateway-client ${this.deps.options.workerId}] send dropped: socket not open`);return}try{$.send(dD(D))}catch(F){_.warn(`[gateway-client ${this.deps.options.workerId}] send failed: ${String(F)}`)}}openSocket(){let{url:D,workerId:$}=this.deps.options;_.info(`[gateway-client ${$}] connecting to ${D}`);let F;try{F=new this.WebSocketCtor(D)}catch(X){_.warn(`[gateway-client ${$}] ws ctor threw: ${String(X)}`),this.scheduleReconnect();return}this.ws=F,F.onopen=()=>{let X=this.deps.options.enroll,J=X===void 0||this.enrolledViaOtp?void 0:X.mode==="otp"?{mode:"otp",apiToken:X.apiToken,...X.displayName?{displayName:X.displayName}:{}}:{apiToken:X.apiToken,joinToken:X.joinToken,...X.displayName?{displayName:X.displayName}:{}},G={type:"connect",role:l8.NODE,agentId:this.deps.options.workerId,deviceId:this.deps.options.deviceId,auth:{token:this.deps.options.token},...this.deps.options.displayName?{meta:{displayName:this.deps.options.displayName}}:{},...J?{enroll:J}:{}};try{F.send(dD(G))}catch(Y){_.warn(`[gateway-client ${$}] connect frame send failed: ${String(Y)}`);return}this.reconnectDelay=this.deps.options.initialReconnectDelayMs,_.success(`[gateway-client ${$}] connected, node=${this.deps.options.deviceId}`),this.deps.onConnected()},F.onmessage=(X)=>{let J=typeof X.data==="string"?X.data:String(X.data),G=Q1(J);if(!G.ok){_.warn(`[gateway-client ${$}] drop malformed frame: ${G.error}`);return}let Y=G.frame;if(Y.type==="event"&&Y.name===YD.ENROLLMENT_OTP){let B=O5.safeParse(Y.payload);if(!B.success){_.warn(`[gateway-client ${$}] enrollment.otp payload invalid: ${B.error.message}`);return}try{this.deps.onEnrollmentOtp?.(B.data)}catch(H){_.error(`[gateway-client ${$}] onEnrollmentOtp threw: ${String(H)}`)}return}if(Y.type==="event"&&Y.name===YD.ENROLLMENT_APPROVED){let B=E5.safeParse(Y.payload);if(!B.success){_.warn(`[gateway-client ${$}] enrollment.approved payload invalid: ${B.error.message}`);return}this.enrolledViaOtp=!0;try{this.deps.onEnrollmentApproved?.(B.data)}catch(H){_.error(`[gateway-client ${$}] onEnrollmentApproved threw: ${String(H)}`)}return}try{this.deps.onFrame(Y)}catch(B){_.error(`[gateway-client ${$}] onFrame threw: ${String(B)}`)}},F.onerror=(X)=>{_.warn(`[gateway-client ${$}] ws error: ${String(X?.message??X)}`)},F.onclose=(X)=>{if(this.ws===F)this.ws=null;let J=`code=${X.code} reason=${X.reason||"n/a"}`;if(this.deps.onDisconnected(J),this.stopped)return;this.scheduleReconnect()}}scheduleReconnect(){if(this.stopped)return;if(!this.deps.options.reconnect){_.info(`[gateway-client ${this.deps.options.workerId}] reconnect disabled, giving up`);return}let D=Math.min(this.reconnectDelay,this.deps.options.maxReconnectDelayMs);_.info(`[gateway-client ${this.deps.options.workerId}] reconnect in ${D}ms`),this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.openSocket()},D),this.reconnectDelay=Math.min(this.reconnectDelay*2,this.deps.options.maxReconnectDelayMs)}}var Re=1;var $q=R(()=>{Z0();HD()});function Fq(D){if(!D.url||D.url.length===0)throw Error("gateway-client: url is required");if(!D.workerId||D.workerId.length===0)throw Error("gateway-client: workerId is required");return{url:D.url,token:D.token,workerId:D.workerId,deviceId:D.deviceId??D.workerId,displayName:D.displayName,reconnect:D.reconnect??!0,initialReconnectDelayMs:D.initialReconnectDelayMs??1000,maxReconnectDelayMs:D.maxReconnectDelayMs??16000,enroll:D.enroll}}var Oe,Ee,je,Ne,Pe,Le,MU,qe,ze,Xq,Ie,Se,Te,we,Jq;var Gq=R(()=>{jD();Oe=W.object({id:W.string().min(1),type:W.literal("filesystem"),priority:W.number().int(),readOnly:W.boolean(),config:W.object({home:W.string().min(1).optional()})}),Ee=W.object({id:W.string().min(1),type:W.literal("cloud-gateway"),priority:W.number().int(),readOnly:W.boolean(),config:W.object({url:W.string().min(1),token:W.string(),defaultCategory:W.string().optional(),defaultTypeId:W.string().optional()})}),je=W.discriminatedUnion("type",[Oe,Ee]),Ne=W.object({binary:W.string().min(1).optional(),extraArgs:W.array(W.string()).optional(),env:W.record(W.string()).optional(),cliVersion:W.string().min(1).optional()}).strict(),Pe=W.record(W.unknown()).and(W.object({cmd:Ne.optional()}).partial()),Le=W.enum(["rate-limit","timeout","auth","network","server-5xx","unknown"]),MU=W.lazy(()=>W.object({engine:W.enum(["http","mcp","cli","claude-code","acp","codex","cursor"]),variant:W.string().min(1),overrides:Pe.optional(),modelId:W.string().min(1).optional(),reasoningId:W.string().min(1).optional(),permissionPolicy:W.enum(["auto","supervised","plan"]).optional(),fallbacks:W.array(W.object({executor:MU,onErrorKinds:W.array(Le).min(1),maxRetries:W.number().int().min(1).optional()})).optional()})),qe=W.discriminatedUnion("channel",[W.object({channel:W.literal("web"),inboundToken:W.string().optional()}),W.object({channel:W.literal("line"),channelSecret:W.string(),channelAccessToken:W.string()}),W.object({channel:W.literal("telegram"),botToken:W.string(),webhookSecretToken:W.string().optional()}),W.object({channel:W.literal("lark"),appId:W.string(),appSecret:W.string(),encryptKey:W.string(),verificationToken:W.string()}),W.object({channel:W.literal("whatsapp"),phoneNumberId:W.string(),accessToken:W.string(),appSecret:W.string(),verifyToken:W.string()})]),ze=W.object({channel:W.enum(["web","line","telegram","lark","whatsapp"]),enabled:W.boolean(),credentials:qe,profile:W.object({displayName:W.string().optional(),avatarUrl:W.string().optional()}).optional()}).refine((D)=>D.channel===D.credentials.channel,{message:"channel and credentials.channel must match",path:["credentials","channel"]}),Xq=W.enum(["auto","ask","deny"]),Ie=W.object({default:Xq,rules:W.array(W.object({pattern:W.string().min(1),action:Xq}))}),Se=W.object({enabled:W.boolean().optional(),triggerTokens:W.number().int().min(1).max(2000000).optional(),maxSummaryMessages:W.number().int().min(1).max(500).optional(),memoryFlush:W.object({enabled:W.boolean().optional()}).optional()}),Te=W.object({executor:MU.optional(),intentClassifier:W.object({evaluator:W.enum(["heuristic","llm"]).optional()}).optional(),qualityGate:W.object({evaluator:W.enum(["heuristic","llm"]).optional(),mode:W.enum(["observe","warn","retry","block"]).optional(),threshold:W.number().min(0).max(10).optional()}).optional()}).strict(),we=W.object({contextWindowTokens:W.number().int().min(512).max(2000000).optional(),reserveTokens:W.number().int().min(0).max(1e6).optional(),keepRecentTokens:W.number().int().min(1).max(2000000).optional(),maxHistoryMessages:W.number().int().min(1).max(200).optional(),compaction:Se.optional(),decisionPipeline:Te.optional()}).superRefine((D,$)=>{if(D.contextWindowTokens!==void 0&&D.reserveTokens!==void 0&&D.reserveTokens>=D.contextWindowTokens)$.addIssue({code:W.ZodIssueCode.custom,path:["reserveTokens"],message:"reserveTokens must be lower than contextWindowTokens"});if(D.contextWindowTokens!==void 0&&D.compaction?.triggerTokens!==void 0&&D.compaction.triggerTokens>D.contextWindowTokens)$.addIssue({code:W.ZodIssueCode.custom,path:["compaction","triggerTokens"],message:"compaction.triggerTokens must not exceed contextWindowTokens"})}),Jq=W.object({brains:W.array(je),brainWriteTarget:W.string(),brainRetrieval:W.enum(["merge-by-priority","first-match"]),executor:MU,channels:W.array(ze),evolution:W.object({enabled:W.boolean(),observationRetentionDays:W.number().int().nonnegative()}),toolPolicy:Ie.optional(),orchestrator:we.optional()})});import{writeFile as ke}from"fs/promises";async function P0(D){let $=await D.select().from(a2).where(S(a2.pk,"default")).get();if(!$)throw Error("worker_config row missing \u2014 bootstrap did not run");return{config:$.configJson,version:$.version}}async function K6(D,$,F,X={}){let J=Jq.safeParse(F);if(!J.success)throw new w2(J.error.issues);let G=await P0(D);if(X.ifMatchVersion!==void 0&&X.ifMatchVersion!==G.version)throw new k2(X.ifMatchVersion,G.version);let Y=J.data,B=new Set(g1(G.config).map((K)=>K.path)),H=g1(Y),U=new Set(H.map((K)=>K.path));for(let{path:K,value:M}of H)if(M.length>0)await $.put(K,M);for(let K of B)if(!U.has(K))await $.remove(K);let Q=UX(Y),V=G.version+1,A=new Date().toISOString();return await D.update(a2).set({configJson:Q,version:V,updatedAt:A,updatedBy:"api"}).where(S(a2.pk,"default")).run(),{config:Q,version:V}}async function _6(D,$,F){let X=tZ(D),J=gY({version:F,config:$});try{await ke(X,J,{encoding:"utf8"})}catch(G){_.warn(`[mirror-config] failed to write ${X}: ${String(G)}`)}}async function l3(D){let $=await K6(D.db,D.vault,D.raw,D.ifMatchVersion===void 0?{}:{ifMatchVersion:D.ifMatchVersion});await _6(D.workerId,$.config,$.version);let F="ok";try{await D.reloadRuntime($.config,$.version)}catch(X){F="failed",_.error("[applyConfigUpdate] runtime reload failed",X)}return{...$,runtimeReload:F}}var w2,k2;var ZU=R(()=>{$0();gD();HD();V0();m8();Gq();w2=class w2 extends Error{issues;constructor(D,$="invalid worker config"){super($);this.issues=D;this.name="InvalidConfigError"}};k2=class k2 extends Error{expected;actual;constructor(D,$){super(`config version ${D} does not match current version ${$}`);this.expected=D;this.actual=$;this.name="ConfigVersionConflictError"}}});function fX(D){return{cronList:async()=>{return{jobs:await D().listJobs()}},cronAdd:async($)=>{return{job:await D().addJob($.job)}},cronRemove:async($)=>{return await D().removeJob($.jobId)},cronUpdate:async($)=>{let F=await D().updateJob($.jobId,$.patch);if(!F)throw new gX($.jobId);return{job:F}}}}var gX;var RU=R(()=>{gX=class gX extends Error{jobId;constructor(D){super(`cron job ${D} \u4E0D\u5B58\u5728`);this.jobId=D;this.name="CronJobNotFoundError"}}});class OU{deps;constructor(D){this.deps=D}async handleRequest(D){let{id:$,method:F,params:X}=D;try{let J=E7(F);if(!J){this.replyError($,"unknown_method",`unknown method: ${F}`);return}if(J.routing!=="operator-to-node"){this.replyError($,"wrong_routing",`method ${F} should be handled by gateway, not node`);return}let G=J.params.safeParse(X??{});if(!G.success){this.replyError($,"invalid_params",`params schema mismatch for ${F}`,G.error.issues);return}let Y=G.data;switch(F){case CD["chat.send"].method:await this.handleChatSend($,Y);break;case CD["config.get"].method:await this.handleConfigGet($);break;case CD["config.put"].method:await this.handleConfigPut($,Y);break;case CD["token.rotate"].method:await this.handleTokenRotate($);break;case CD["logs.tail"].method:await this.handleLogsTail($,Y);break;case CD["approval.list"].method:this.handleApprovalList($);break;case CD["approval.grant"].method:this.handleApprovalGrant($,Y);break;case CD["cron.list"].method:await this.handleCronList($,Y);break;case CD["cron.add"].method:await this.handleCronAdd($,Y);break;case CD["cron.remove"].method:await this.handleCronRemove($,Y);break;case CD["cron.update"].method:await this.handleCronUpdate($,Y);break;case CD["secrets.list"].method:await this.handleSecretsList($,Y);break;case CD["secrets.put"].method:await this.handleSecretsPut($,Y);break;case CD["secrets.delete"].method:await this.handleSecretsDelete($,Y);break;case CD["engines.list"].method:await this.handleEnginesList($,Y);break;case CD["brain.test"].method:await this.handleBrainTest($,Y);break;case CD["brain.summary"].method:await this.handleBrainSummary($,Y);break;case CD["brain.admission.list"].method:await this.handleBrainAdmissionList($,Y);break;case CD["brain.admission.show"].method:await this.handleBrainAdmissionShow($,Y);break;case CD["brain.admission.approve"].method:await this.handleBrainAdmissionApprove($,Y);break;case CD["brain.admission.reject"].method:await this.handleBrainAdmissionReject($,Y);break;case CD["brain.admission.apply"].method:await this.handleBrainAdmissionApply($,Y);break;case CD["brain.artifacts.list"].method:await this.handleBrainArtifactsList($,Y);break;case CD["brain.artifacts.show"].method:await this.handleBrainArtifactsShow($,Y);break;case CD["executor.test"].method:await this.handleExecutorTest($,Y);break;case CD["channel.test"].method:await this.handleChannelTest($,Y);break;case CD["orchestrator.tasks.list"].method:await this.handleTasksList($,Y);break;case CD["orchestrator.tasks.create"].method:await this.handleTasksCreate($,Y);break;case CD["orchestrator.conversations.list"].method:await this.handleConversationsList($,Y);break;case CD["orchestrator.messages.list"].method:await this.handleMessagesList($,Y);break;case CD["workers.info"].method:await this.handleWorkersInfo($,Y);break;case CD["workers.stop"].method:await this.handleWorkersStop($,Y);break;default:this.replyError($,"method_not_implemented",`${F} not routed`)}}catch(J){_.error(`[gateway-dispatcher ${this.deps.workerId}] handler threw: ${String(J)}`),this.replyError($,"internal_error",J instanceof Error?J.message:String(J))}}async handleChatSend(D,$){let F=String($.workerId);if(F!==this.deps.workerId){this.replyError(D,"worker_mismatch",`chat.send targeted workerId=${F}, this node is ${this.deps.workerId}`);return}let X=be(String($.content)),J=X?.body&&X.body.length>0?X.body:X?"A new session has started. Reply briefly to confirm.":String($.content),G=typeof $.conversationId==="string"?$.conversationId:void 0,Y=fe(this.deps.workerId,G),B={workerId:this.deps.workerId,channel:"web",accountId:"sys:gateway",chatId:Y,text:J,receivedAt:new Date().toISOString(),raw:{source:"gateway",...X?{sessionReset:!0,resetCommand:X.command}:{},...$.metadata!==void 0?{metadata:$.metadata}:{}}};this.deps.getRuntime().orchestrator.ingest(B).catch((H)=>{_.warn(`[gateway-dispatcher ${this.deps.workerId}] orchestrator.ingest failed: ${String(H)}`)}),this.replyOk(D,{conversationId:Y,accepted:!0})}async handleWorkersInfo(D,$){if(!this.ensureWorkerMatch(D,$))return;if(!this.deps.handlers?.workersInfo){this.replyError(D,"method_not_implemented","workers.info handler not wired");return}let F=await this.deps.handlers.workersInfo();this.replyOk(D,F)}async handleWorkersStop(D,$){if(!this.ensureWorkerMatch(D,$))return;if(!this.deps.handlers?.workersStop){this.replyError(D,"method_not_implemented","workers.stop handler not wired");return}await this.deps.handlers.workersStop(),this.replyOk(D,{stopped:!0})}async handleConfigGet(D){if(!this.deps.handlers?.configGet){this.replyError(D,"method_not_implemented","config.get handler not wired");return}let $=await this.deps.handlers.configGet();this.replyOk(D,$)}async handleConfigPut(D,$){if(!this.deps.handlers?.configPut){this.replyError(D,"method_not_implemented","config.put handler not wired");return}let F=Number($.ifMatch),X=$.config;try{let J=await this.deps.handlers.configPut({ifMatch:F,config:X});this.replyOk(D,J)}catch(J){if(J instanceof w2){this.replyError(D,"invalid_config",J.message,{issues:J.issues});return}if(J instanceof k2){this.replyError(D,"version_conflict",J.message,{expected:J.expected,actual:J.actual});return}throw J}}async handleTokenRotate(D){if(!this.deps.handlers?.tokenRotate){this.replyError(D,"method_not_implemented","token.rotate handler not wired");return}let $=await this.deps.handlers.tokenRotate();this.replyOk(D,$)}async handleLogsTail(D,$){if(!this.deps.handlers?.logsTail){this.replyOk(D,{subscribed:!1});return}let F={};if(typeof $.follow==="boolean")F.follow=$.follow;if(typeof $.lines==="number")F.lines=$.lines;let X=await this.deps.handlers.logsTail(F);this.replyOk(D,X)}handleApprovalList(D){let $=this.deps.getRuntime().approvals;if(!$){this.replyError(D,"method_not_implemented","approval store not wired");return}let F=$.list().map((X)=>({workerId:this.deps.workerId,taskId:X.taskId,toolCallId:X.toolCallId,toolName:X.toolName,params:X.params,expiresAt:X.expiresAt}));this.replyOk(D,{approvals:F})}handleApprovalGrant(D,$){let F=this.deps.getRuntime().approvals;if(!F){this.replyError(D,"method_not_implemented","approval store not wired");return}let X=String($.taskId),J=String($.toolCallId),G=$.decision==="allow"?"allow":"deny",Y=F.grant(X,J,G);this.replyOk(D,{granted:Y})}ensureWorkerMatch(D,$){let F=String($.workerId);if(F!==this.deps.workerId)return this.replyError(D,"worker_mismatch",`targeted workerId=${F}, this node is ${this.deps.workerId}`),!1;return!0}async handleCronList(D,$){if(!this.deps.handlers?.cronList){this.replyError(D,"method_not_implemented","cron.list handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;let F=await this.deps.handlers.cronList();this.replyOk(D,F)}async handleCronAdd(D,$){if(!this.deps.handlers?.cronAdd){this.replyError(D,"method_not_implemented","cron.add handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;try{let F=await this.deps.handlers.cronAdd({job:$.job});this.replyOk(D,F)}catch(F){this.replyError(D,"invalid_cron",F instanceof Error?F.message:String(F))}}async handleCronRemove(D,$){if(!this.deps.handlers?.cronRemove){this.replyError(D,"method_not_implemented","cron.remove handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;let F=await this.deps.handlers.cronRemove({jobId:String($.jobId)});this.replyOk(D,F)}async handleCronUpdate(D,$){if(!this.deps.handlers?.cronUpdate){this.replyError(D,"method_not_implemented","cron.update handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;try{let F=await this.deps.handlers.cronUpdate({jobId:String($.jobId),patch:$.patch});this.replyOk(D,F)}catch(F){if(F instanceof gX){this.replyError(D,"not_found",F.message,{jobId:F.jobId});return}this.replyError(D,"invalid_cron",F instanceof Error?F.message:String(F))}}async handleSecretsList(D,$){if(!this.deps.handlers?.secretsList){this.replyError(D,"method_not_implemented","secrets.list handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;let F=await this.deps.handlers.secretsList();this.replyOk(D,F)}async handleSecretsPut(D,$){if(!this.deps.handlers?.secretsPut){this.replyError(D,"method_not_implemented","secrets.put handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;try{let F=await this.deps.handlers.secretsPut({key:String($.key),value:String($.value)});this.replyOk(D,F)}catch(F){this.replyAppError(D,F)}}async handleSecretsDelete(D,$){if(!this.deps.handlers?.secretsDelete){this.replyError(D,"method_not_implemented","secrets.delete handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;try{let F=await this.deps.handlers.secretsDelete({key:String($.key)});this.replyOk(D,F)}catch(F){this.replyAppError(D,F)}}async handleEnginesList(D,$){if(!this.deps.handlers?.enginesList){this.replyError(D,"method_not_implemented","engines.list handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;let F=await this.deps.handlers.enginesList({...typeof $.refresh==="boolean"?{refresh:$.refresh}:{}});this.replyOk(D,F)}async handleBrainTest(D,$){if(!this.deps.handlers?.brainTest){this.replyError(D,"method_not_implemented","brain.test handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;this.replyOk(D,await this.deps.handlers.brainTest())}async handleBrainSummary(D,$){if(!this.deps.handlers?.brainSummary){this.replyError(D,"method_not_implemented","brain.summary handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;this.replyOk(D,await this.deps.handlers.brainSummary())}async handleBrainAdmissionList(D,$){if(!this.deps.handlers?.brainAdmissionList){this.replyError(D,"method_not_implemented","brain.admission.list handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;this.replyOk(D,await this.deps.handlers.brainAdmissionList({...$.status===void 0?{}:{status:$.status},...$.kind===void 0?{}:{kind:String($.kind)},...$.scopeId===void 0?{}:{scopeId:String($.scopeId)},...$.soulId===void 0?{}:{soulId:String($.soulId)},...typeof $.limit==="number"?{limit:$.limit}:{},...typeof $.showSensitive==="boolean"?{showSensitive:$.showSensitive}:{}}))}async handleBrainAdmissionShow(D,$){if(!this.deps.handlers?.brainAdmissionShow){this.replyError(D,"method_not_implemented","brain.admission.show handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;try{this.replyOk(D,await this.deps.handlers.brainAdmissionShow({id:String($.id),...typeof $.showSensitive==="boolean"?{showSensitive:$.showSensitive}:{}}))}catch(F){this.replyBrainError(D,F)}}async handleBrainAdmissionApprove(D,$){if(!this.deps.handlers?.brainAdmissionApprove){this.replyError(D,"method_not_implemented","brain.admission.approve handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;try{this.replyOk(D,await this.deps.handlers.brainAdmissionApprove({id:String($.id),decidedBy:String($.decidedBy),...$.reason===void 0?{}:{reason:String($.reason)}}))}catch(F){this.replyBrainError(D,F)}}async handleBrainAdmissionReject(D,$){if(!this.deps.handlers?.brainAdmissionReject){this.replyError(D,"method_not_implemented","brain.admission.reject handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;try{this.replyOk(D,await this.deps.handlers.brainAdmissionReject({id:String($.id),decidedBy:String($.decidedBy),...$.reason===void 0?{}:{reason:String($.reason)}}))}catch(F){this.replyBrainError(D,F)}}async handleBrainAdmissionApply(D,$){if(!this.deps.handlers?.brainAdmissionApply){this.replyError(D,"method_not_implemented","brain.admission.apply handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;try{this.replyOk(D,await this.deps.handlers.brainAdmissionApply({id:String($.id),decidedBy:String($.decidedBy),...typeof $.commit==="boolean"?{commit:$.commit}:{},...$.allowSecretBody===void 0?{}:{allowSecretBody:$.allowSecretBody}}))}catch(F){this.replyBrainError(D,F)}}async handleBrainArtifactsList(D,$){if(!this.deps.handlers?.brainArtifactsList){this.replyError(D,"method_not_implemented","brain.artifacts.list handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;this.replyOk(D,await this.deps.handlers.brainArtifactsList({...$.scopeId===void 0?{}:{scopeId:String($.scopeId)},...$.type===void 0?{}:{type:String($.type)},...$.status===void 0?{}:{status:$.status},...$.minSensitivity===void 0?{}:{minSensitivity:$.minSensitivity},...typeof $.limit==="number"?{limit:$.limit}:{},...typeof $.showSensitive==="boolean"?{showSensitive:$.showSensitive}:{}}))}async handleBrainArtifactsShow(D,$){if(!this.deps.handlers?.brainArtifactsShow){this.replyError(D,"method_not_implemented","brain.artifacts.show handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;try{this.replyOk(D,await this.deps.handlers.brainArtifactsShow({id:String($.id),...typeof $.showSensitive==="boolean"?{showSensitive:$.showSensitive}:{}}))}catch(F){this.replyBrainError(D,F)}}async handleExecutorTest(D,$){if(!this.deps.handlers?.executorTest){this.replyError(D,"method_not_implemented","executor.test handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;let F=await this.deps.handlers.executorTest({...typeof $.probe==="boolean"?{probe:$.probe}:{}});this.replyOk(D,F)}async handleChannelTest(D,$){if(!this.deps.handlers?.channelTest){this.replyError(D,"method_not_implemented","channel.test handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;try{let F=$.body&&typeof $.body==="object"?$.body:void 0,X=await this.deps.handlers.channelTest({channel:$.channel,...F===void 0?{}:{body:F}});this.replyOk(D,X)}catch(F){this.replyAppError(D,F)}}async handleTasksList(D,$){if(!this.deps.handlers?.tasksList){this.replyError(D,"method_not_implemented","orchestrator.tasks.list handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;this.replyOk(D,await this.deps.handlers.tasksList())}async handleTasksCreate(D,$){if(!this.deps.handlers?.tasksCreate){this.replyError(D,"method_not_implemented","orchestrator.tasks.create handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;this.replyOk(D,await this.deps.handlers.tasksCreate({prompt:String($.prompt)}))}async handleConversationsList(D,$){if(!this.deps.handlers?.conversationsList){this.replyError(D,"method_not_implemented","orchestrator.conversations.list handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;this.replyOk(D,await this.deps.handlers.conversationsList())}async handleMessagesList(D,$){if(!this.deps.handlers?.messagesList){this.replyError(D,"method_not_implemented","orchestrator.messages.list handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;this.replyOk(D,await this.deps.handlers.messagesList({conversationId:String($.conversationId)}))}replyOk(D,$){this.deps.sendResponse({type:"response",id:D,ok:!0,result:$})}replyError(D,$,F,X){this.deps.sendResponse({type:"response",id:D,ok:!1,error:X===void 0?{code:$,message:F}:{code:$,message:F,details:X}})}replyBrainError(D,$){let F=$.code,X=$ instanceof Error?$.message:String($);if(F==="not-found"){this.replyError(D,"not_found",X);return}if(F==="invalid-transition"){this.replyError(D,"invalid_transition",X);return}if(F==="duplicate-id"){this.replyError(D,"conflict",X);return}if(F==="invalid-payload"){this.replyError(D,"invalid_state",X);return}throw $}replyAppError(D,$){if($ instanceof ND){let F=$.status===404?"not_found":$.status===400?"invalid_params":"internal_error";this.replyError(D,F,$.message);return}throw $}}function be(D){let $=D.trim(),F=$.toLowerCase();for(let X of["/new","/reset"]){if(F===X)return{command:X,body:""};if(F.startsWith(X)&&/\s/.test($.charAt(X.length)))return{command:X,body:$.slice(X.length).trimStart()}}return null}function fe(D,$){if($===void 0)return`gw:${D}:${crypto.randomUUID()}`;if($.startsWith("gw:"))return $;return`gw:conv:${$}`}var Yq=R(()=>{Z0();ZD();HD();ZU();RU()});class EU{deps;unsub=null;constructor(D){this.deps=D}start(){this.stop();let D=this.deps.getBus();this.unsub=D.on(($)=>this.handle($))}stop(){if(this.unsub)this.unsub(),this.unsub=null}emit(D,$){let F={type:"event",name:D,payload:{workerId:this.deps.workerId,...$},ts:Date.now()};this.deps.sendEvent(F)}handle(D){let $=this.map(D);if(!$)return;this.deps.sendEvent({type:"event",name:$.name,payload:{workerId:this.deps.workerId,...$.payload},ts:Date.parse(D.at)||Date.now()})}map(D){let $=D.payload;switch(D.type){case"orchestrator.text":{let F=j4($);if(!F)return null;let X=typeof $.delta==="string"?$.delta:"";return{name:YD.AGENT_THINKING,payload:{conversationId:F,chunk:X}}}case"orchestrator.tool_call":{let F=j4($),X=$.call??{},J=P8(X.id),G=P8(X.name);if(!F||!J||!G)return null;return{name:YD.AGENT_TOOL_CALL,payload:{conversationId:F,toolCallId:J,toolName:G,status:"pending",...X.arguments!==void 0?{args:X.arguments}:{}}}}case"orchestrator.finished":{let F=j4($);if(!F)return null;return{name:YD.AGENT_DONE,payload:{conversationId:F,finishReason:"stop"}}}case"orchestrator.error":{let F=j4($);if(!F)return null;return{name:YD.AGENT_DONE,payload:{conversationId:F,finishReason:"error"}}}case"conversation.message":{let F=j4($),X=P8($.role);if(!F||!X)return null;if(X!=="user"&&X!=="assistant"&&X!=="system")return null;return{name:YD.CHAT_MESSAGE,payload:{conversationId:F,role:X,content:typeof $.content==="string"?$.content:"",createdAt:Date.parse(D.at)||Date.now()}}}case"approval.requested":{let F=P8($.taskId),X=P8($.toolCallId),J=P8($.toolName),G=typeof $.expiresAt==="number"?$.expiresAt:null;if(!F||!X||!J||G===null)return null;let Y=typeof $.params==="object"&&$.params!==null?$.params:{};return{name:YD.APPROVAL_REQUESTED,payload:{taskId:F,toolCallId:X,toolName:J,params:Y,expiresAt:G}}}default:return null}}}function P8(D){return typeof D==="string"&&D.length>0?D:null}function j4(D){return P8(D.gatewayConversationId)??P8(D.conversationId)}var Bq=R(()=>{Z0()});function hX(D){let $=Fq(D),F=!1,X=null,J=new EU({workerId:$.workerId,getBus:()=>D.getRuntime().bus,sendEvent:(Y)=>X?.send(Y)}),G=new OU({workerId:$.workerId,getRuntime:D.getRuntime,...D.handlers?{handlers:D.handlers}:{},sendResponse:(Y)=>X?.send(Y)});return X=new CU({options:$,onConnected:()=>{F=!0,J.start()},onDisconnected:(Y)=>{F=!1,J.stop(),_.info(`[gateway-client ${$.workerId}] disconnected: ${Y}`)},onFrame:(Y)=>{if(Y.type==="request"){G.handleRequest(Y);return}_.warn(`[gateway-client ${$.workerId}] unexpected inbound frame type=${Y.type}`)},...D.onEnrollmentOtp?{onEnrollmentOtp:D.onEnrollmentOtp}:{},...D.onEnrollmentApproved?{onEnrollmentApproved:D.onEnrollmentApproved}:{},...D.webSocketCtor?{webSocketCtor:D.webSocketCtor}:{}}),X.start(),{async stop(){if(J.stop(),X)await X.stop(),X=null},isConnected(){return F},notifyRuntimeReloaded(){if(F)J.start()}}}async function Hq(D){await D.stop()}var Wq=R(()=>{HD();$q();Yq();Bq()});function ge(D){if(D instanceof Error)return D.message;return String(D)}async function i3(D,$){let F=$.brains,X=F.map((G)=>C8(D.workerId,G,$.brainWriteTarget??"")),J=F.length<=1?"source":"aggregate";try{let G=await D.runtime.brain.health();if(X.length>0)return{brains:X.map((Y)=>({...Y,status:G.status,healthScope:J}))};return{brains:[{id:"aggregate",type:"multi",status:G.status}]}}catch(G){let Y=ge(G);if(X.length>0)return{brains:X.map((B)=>({...B,status:"down",healthScope:J,errorMessage:Y}))};return{brains:[{id:"aggregate",type:"multi",status:"down",errorMessage:Y}]}}}var Uq=R(()=>{XX()});function ve(D){return he.has(D)}function xe(D){if(D instanceof Error)return D.message;return String(D)}async function n3(D,$,F={}){if(!ve($))throw ND.notFound(`unknown channel '${$}'`);let X=D.runtime.channels.get($);if(!X)throw ND.notFound(`channel '${$}' is not bound or not enabled`);let J=B6($);if(F.chatId===void 0||F.text===void 0)return{sent:!1,platformResponse:{dryRun:!0,channel:$,enabled:X.enabled}};let G={channel:$,chatId:F.chatId,text:F.text};try{return await J.send(X,G),{sent:!0,platformResponse:{ok:!0}}}catch(Y){return{sent:!1,error:xe(Y)}}}var he;var Qq=R(()=>{ZD();Y4();he=new Set(["web","line","telegram","lark","whatsapp"])});function ye(D){if(D instanceof Error)return D.message;return String(D)}function ue(D){return`executor tiny probe timed out after ${D}ms`}function me(D){if(!D.return)return;Promise.resolve(D.return()).catch(()=>{})}async function ce(D,$,F){let X=Math.ceil(F-performance.now());if(X<=0)return $.abort(),jU;let J,G=new Promise((Y)=>{J=setTimeout(()=>{$.abort(),Y(jU)},X)});try{return await Promise.race([D.next(),G])}finally{if(J!==void 0)clearTimeout(J)}}async function pe(D,$={}){let F=$.timeoutMs??5000,X=performance.now(),J=X+F,G=new AbortController,Y,B=!1;function H(){if(!Y||B)return;B=!0,me(Y)}try{Y=D.runtime.executor.run({messages:[{role:"user",content:"ping"}],signal:G.signal})[Symbol.asyncIterator]();let Q="";while(!0){let V=await ce(Y,G,J);if(V===jU)return H(),{ok:!1,latencyMs:Math.round(performance.now()-X),error:ue(F)};if(V.done)break;let A=V.value;if(A.type==="assistant_message_delta"){if(Q+=A.delta,Q.length>=100)break}else if(A.type==="error")return{ok:!1,latencyMs:Math.round(performance.now()-X),error:A.error};else if(A.type==="finish")break}return{ok:!0,latencyMs:Math.round(performance.now()-X),output:Q.slice(0,100)}}catch(U){return{ok:!1,latencyMs:Math.round(performance.now()-X),error:ye(U)}}finally{H()}}async function r3(D,$,F={}){let X=$.executor.engine,J="unknown";try{J=(await D.runtime.executor.health()).status}catch{J="unknown"}if(!F.probe)return{executor:{type:X,status:J}};let G=await pe(D,{timeoutMs:F.probeTimeoutMs});if(!G.ok)return{executor:{type:X,status:"degraded",tinyProbe:{ok:!1,latencyMs:G.latencyMs},...G.error===void 0?{}:{probeError:G.error}}};return{executor:{type:X,status:J,tinyProbe:{ok:!0,latencyMs:G.latencyMs,...G.output===void 0?{}:{output:G.output}}}}}var jU;var Vq=R(()=>{jU=Symbol("probe-next-timeout")});function de(D){if(!D)return"unknown";return D.status}async function NU(D){try{let $=await D();return de($??null)}catch{return"unknown"}}function Aq(D){let $=le(D);if(!$)return;if($.modelId!==void 0)return $.modelId;let F=$.body;if(typeof F.model==="string"&&F.model.length>0)return F.model;if(typeof F.defaultModel==="string"&&F.defaultModel.length>0)return F.defaultModel;return}function le(D){try{return H2(D)}catch{return null}}function ie(D,$){if(!D)return;return`${D.replace(/\/+$/,"")}/${$}/webhook`}async function s3(D,$,F){let{runtime:X}=D,J=await NU(()=>X.executor.health()),G=await NU(()=>X.brain.health()),Y=$.brains.map((C)=>({...C8(D.workerId,C,$.brainWriteTarget),id:C.id,type:C.type,status:G})),B=Aq($.executor),H={type:$.executor.engine,...B===void 0?{}:{model:B},status:J},U=$.orchestrator?.decisionPipeline?.executor??$.executor,Q=X.controlExecutorReusesTaskExecutor??$.orchestrator?.decisionPipeline?.executor===void 0,V=Q?J:await NU(()=>(X.controlExecutor??X.executor).health()),A=Aq(U),K={type:U.engine,...A===void 0?{}:{model:A},status:V,reusesTaskExecutor:Q},M=$.channels.map((C)=>{let Z=ie(F.advertisedBaseUrl,C.channel);return{channel:C.channel,enabled:C.enabled,...Z?{webhookUrl:Z}:{}}});return{workerId:D.workerId,runtimeVersion:F.runtimeVersion,configVersion:D.configVersion,brains:Y,brainSummary:M8({intentEvaluator:$.orchestrator?.decisionPipeline?.intentClassifier?.evaluator??"heuristic",qualityEvaluator:$.orchestrator?.decisionPipeline?.qualityGate?.evaluator??"heuristic",qualityMode:$.orchestrator?.decisionPipeline?.qualityGate?.mode??"observe",...$.orchestrator?.decisionPipeline?.qualityGate?.threshold===void 0?{}:{qualityThreshold:$.orchestrator.decisionPipeline.qualityGate.threshold},conversationClassifierEnabled:!0}),executor:H,controlExecutor:K,channels:M,evolutionEnabled:$.evolution.enabled,startedAt:D.startedAt,...F.advertisedBaseUrl?{advertisedBaseUrl:F.advertisedBaseUrl}:{}}}var Kq=R(()=>{XX();NW();_8()});async function L8(D,$,F){let X=P3(),{ciphertext:J,nonce:G,authTag:Y}=$.encryptString(X),B=new Date().toISOString();return await D.update(E2).set({apiTokenEnc:J,nonce:G,authTag:Y,rotatedAt:B}).where(S(E2.pk,"default")).run(),F.tokenPlaintext=X,{newToken:X}}var _q=R(()=>{gD();V0();BW()});async function a3(D){return D.list()}async function o3(D,$,F){if(!$||!$.trim())throw ND.badRequest("secret key is required");if(F.length===0)throw ND.badRequest("secret value must be a non-empty string");await D.put($,F)}async function t3(D,$){if(!$||!$.trim())throw ND.badRequest("secret key is required");if(await D.get($)===null)throw ND.notFound(`secret '${$}' not found`);await D.remove($)}var Cq=R(()=>{ZD()});class C6{pending=new Map;disposed=!1;wait(D){if(this.disposed)return Promise.reject(new Mq);let $=D.timeoutMs??PU,F=Date.now()+$,X=C6.key(D.taskId,D.toolCallId);return new Promise((J)=>{let G=setTimeout(()=>{let B=this.pending.get(X);if(!B)return;this.pending.delete(X),B.resolve("deny")},$);G.unref?.(),this.pending.set(X,{taskId:D.taskId,toolCallId:D.toolCallId,toolName:D.toolName,params:D.params,expiresAt:F,resolve:J,timer:G})})}grant(D,$,F){let X=C6.key(D,$),J=this.pending.get(X);if(!J)return!1;return clearTimeout(J.timer),this.pending.delete(X),J.resolve(F),!0}list(){let D=[];for(let $ of this.pending.values())D.push({taskId:$.taskId,toolCallId:$.toolCallId,toolName:$.toolName,params:$.params,expiresAt:$.expiresAt});return D}size(){return this.pending.size}dispose(){if(this.disposed)return;this.disposed=!0;for(let D of this.pending.values())clearTimeout(D.timer),D.resolve("deny");this.pending.clear()}static key(D,$){return`${D}:${$}`}}var Mq,PU=60000;var vX=R(()=>{Mq=class Mq extends Error{name="ApprovalDisposedError";constructor(){super("approval store disposed")}}});class Rq{items=[];enqueue(D){this.items.push(D)}head(){return this.items[0]}shift(){return this.items.shift()}drain(){let D=this.items;return this.items=[],D}isEmpty(){return this.items.length===0}remove(D){let $=this.items.findIndex((X)=>X.handle.id===D);if($<0)return;let[F]=this.items.splice($,1);return F}values(){return this.items}}function xX(){return Date.now()}function M6(){return new Date().toISOString()}function LU(D){if(D===null||typeof D!=="object"||!("unref"in D))return;try{D.unref()}catch{}}class Z6{opts;handles=new Map;groups=new Map;running=new Map;runningGroups=new Set;runningByEngine=new Map;terminalLog=[];gcTimer=null;disposed=!1;enqueueSeq=0;constructor(D){this.opts=D;this.startGcLoop()}setLimits(D){if(D.maxConcurrentTotal!==void 0&&D.maxConcurrentTotal>0)this.opts.maxConcurrentTotal=D.maxConcurrentTotal;if(D.perEngineLimits!==void 0){for(let[$,F]of Object.entries(D.perEngineLimits))if(F===void 0)delete this.opts.perEngineLimits[$];else if(F>0)this.opts.perEngineLimits[$]=F}this.kick()}run(D){if(this.disposed)return Promise.reject(Error("ProcessManager disposed"));return new Promise(($,F)=>{let X=`proc_${crypto.randomUUID()}`,J={id:X,class:D.class??"default",group:D.group,engine:D.engine,state:"queued",meta:D.meta??null,startedAt:null,updatedAt:M6(),lastActivityAt:M6(),cancel:async()=>this.cancelHandle(X)};this.handles.set(X,J);let G={handle:J,req:D,enqueuedAt:xX(),enqueueSeq:++this.enqueueSeq,resolve:$,reject:F,cancelledBeforeStart:!1},Y=this.groups.get(D.group);if(!Y)Y=new Rq,this.groups.set(D.group,Y);if(Y.enqueue(G),D.signal)if(D.signal.aborted)this.cancelHandle(X).catch(()=>{return});else{let B=()=>{D.signal?.removeEventListener("abort",B),this.cancelHandle(X).catch(()=>{return})};D.signal.addEventListener("abort",B,{once:!0})}this.kick()})}async cancelGroup(D){let $=this.groups.get(D);if($)for(let X of $.drain())this.markCancelledBeforeStart(X);let F=[];for(let[,X]of this.running.entries())if(X.handle.group===D)F.push(this.cancelRunning(X));await Promise.allSettled(F),this.kick()}async cancelAll(){for(let $ of this.groups.values())for(let F of $.drain())this.markCancelledBeforeStart(F);let D=[];for(let $ of this.running.values())D.push(this.cancelRunning($));await Promise.allSettled(D),this.kick()}snapshot(){let D={queued:0,spawning:0,running:0,completed:0,failed:0,cancelled:0};for(let Y of this.handles.values())D[Y.state]+=1;let $=new Map,F=0;for(let Y of this.groups.values())for(let B of Y.values())F+=1,$.set(B.handle.engine,($.get(B.handle.engine)??0)+1);let X=new Set([...Object.keys(this.opts.perEngineLimits),...this.runningByEngine.keys(),...$.keys()]),J={};for(let Y of X){let B=this.opts.perEngineLimits[Y]??this.opts.maxConcurrentTotal,H=this.runningByEngine.get(Y)??0,U=$.get(Y)??0,Q=Math.max(0,B-H),V=Math.max(0,this.opts.maxConcurrentTotal-this.totalActive());J[Y]={limit:B,active:H,queued:U,available:Math.min(Q,V)}}let G=this.terminalLog.slice(-10).map((Y)=>({id:Y.handle.id,engine:Y.handle.engine,group:Y.handle.group,state:Y.handle.state,terminatedAt:Y.handle.updatedAt})).reverse();return{maxConcurrentTotal:this.opts.maxConcurrentTotal,totalActive:this.totalActive(),totalQueued:F,availableSlots:Math.max(0,this.opts.maxConcurrentTotal-this.totalActive()),perEngine:J,byState:D,recentTerminal:G}}dispose(){if(this.disposed=!0,this.gcTimer)clearInterval(this.gcTimer),this.gcTimer=null;for(let D of this.running.values()){if(D.stallTimer)clearTimeout(D.stallTimer);if(D.killTimer)clearTimeout(D.killTimer)}}totalActive(){return this.running.size}startGcLoop(){if(this.opts.gcIntervalMs<=0)return;this.gcTimer=setInterval(()=>this.gcTerminal(),this.opts.gcIntervalMs),LU(this.gcTimer)}gcTerminal(){let D=xX()-this.opts.autoCleanupDelayMs,$=[];for(let F of this.terminalLog)if(F.recordedAt>=D)$.push(F);else this.handles.delete(F.handle.id);this.terminalLog=$}async cancelHandle(D){let $=this.handles.get(D);if(!$)return;let X=this.groups.get($.group)?.remove(D);if(X){this.markCancelledBeforeStart(X),this.kick();return}let J=this.running.get(D);if(J)await this.cancelRunning(J)}markCancelledBeforeStart(D){if(D.cancelledBeforeStart)return;D.cancelledBeforeStart=!0,D.handle.state="cancelled",D.handle.updatedAt=M6(),this.terminalLog.push({handle:D.handle,recordedAt:xX()}),D.reject(Error("cancelled"))}async cancelRunning(D){if(D.cancelRequested&&!D.killEscalated){this.escalateKill(D);return}if(D.cancelRequested=!0,D.spawned)try{await D.spawned.cancel()}catch($){_.warn(`[process-manager] cancel for ${D.handle.id} failed: ${String($)}`)}if(!D.killTimer&&this.opts.killTimeoutMs>0)D.killTimer=setTimeout(()=>this.escalateKill(D),this.opts.killTimeoutMs),LU(D.killTimer)}escalateKill(D){if(D.killEscalated)return;if(D.killEscalated=!0,D.killTimer)clearTimeout(D.killTimer),D.killTimer=null;if(D.spawned)D.spawned.cancel().catch(($)=>_.warn(`[process-manager] hard kill for ${D.handle.id} failed: ${String($)}`))}kick(){if(this.disposed)return;while(!0){let D=this.pickNext();if(!D)return;this.startCandidate(D)}}pickNext(){let D=null,$=-1,F=Number.POSITIVE_INFINITY;for(let[X,J]of this.groups.entries()){if(J.isEmpty())continue;if(this.runningGroups.has(X))continue;let G=J.head();if(!this.canStart(G.handle))continue;let Y=ne[G.handle.class];if(Y>$||Y===$&&G.enqueueSeq<F)D=G,$=Y,F=G.enqueueSeq}return D}canStart(D){if(this.totalActive()>=this.opts.maxConcurrentTotal)return!1;let $=this.opts.perEngineLimits[D.engine]??this.opts.maxConcurrentTotal;if((this.runningByEngine.get(D.engine)??0)>=$)return!1;return!0}startCandidate(D){let $=this.groups.get(D.handle.group);if($?.shift(),$&&$.isEmpty())this.groups.delete(D.handle.group);let F={handle:D.handle,spawned:null,stallTimer:null,killTimer:null,cancelRequested:!1,killEscalated:!1};this.running.set(D.handle.id,F),this.runningGroups.add(D.handle.group),this.runningByEngine.set(D.handle.engine,(this.runningByEngine.get(D.handle.engine)??0)+1),D.handle.state="spawning",D.handle.startedAt=M6(),D.handle.lastActivityAt=D.handle.startedAt,D.handle.updatedAt=D.handle.startedAt,this.driveJob(F,D)}async driveJob(D,$){let{handle:F,req:X,resolve:J,reject:G}=$,Y=null;try{let B=await X.onSpawn();if(D.spawned=B,D.cancelRequested){try{await B.cancel()}catch{}throw Error("cancelled")}if(F.state="running",F.updatedAt=M6(),this.armStallTimer(D),Y=B.onActivity(()=>this.onActivity(D)),await X.job(),D.cancelRequested)F.state="cancelled",G(Error("cancelled"));else F.state="completed",J()}catch(B){F.state=D.cancelRequested?"cancelled":"failed",G(B)}finally{if(F.updatedAt=M6(),D.stallTimer)clearTimeout(D.stallTimer),D.stallTimer=null;if(D.killTimer)clearTimeout(D.killTimer),D.killTimer=null;if(Y)try{Y()}catch{}this.terminalLog.push({handle:F,recordedAt:xX()}),this.running.delete(F.id),this.runningGroups.delete(F.group);let B=this.runningByEngine.get(F.engine)??0;if(B<=1)this.runningByEngine.delete(F.engine);else this.runningByEngine.set(F.engine,B-1);if(!this.disposed)this.kick()}}armStallTimer(D){if(this.opts.stallTimeoutMs<=0)return;if(D.stallTimer)clearTimeout(D.stallTimer);D.stallTimer=setTimeout(()=>this.onStall(D),this.opts.stallTimeoutMs),LU(D.stallTimer)}onActivity(D){if(Zq.has(D.handle.state))return;D.handle.lastActivityAt=M6(),this.armStallTimer(D)}onStall(D){if(Zq.has(D.handle.state))return;if(D.cancelRequested)return;_.warn(`[process-manager] stall detected for ${D.handle.id} (engine=${D.handle.engine}, group=${D.handle.group})`),this.cancelRunning(D)}}var Zq,ne;var Oq=R(()=>{HD();Zq=new Set(["completed","failed","cancelled"]),ne={interactive:3,default:2,background:1}});class e3{url;token;clientName;clientVersion;timeoutMs;sessionId=null;idCounter=0;initPromise=null;constructor(D){this.url=D.url,this.token=D.token,this.clientName=D.clientName??"aiworker",this.clientVersion=D.clientVersion??"0.1.0",this.timeoutMs=D.timeoutMs??re}nextId(){return this.idCounter+=1,this.idCounter}headers(D){let $={"Content-Type":"application/json",Accept:"application/json, text/event-stream"};if(this.token)$.Authorization=`Bearer ${this.token}`;if(D&&this.sessionId)$["mcp-session-id"]=this.sessionId;return $}async postJson(D,$){let F=new AbortController,X=setTimeout(()=>F.abort(),this.timeoutMs);try{let J=await fetch(this.url,{method:"POST",headers:this.headers($),body:JSON.stringify(D),signal:F.signal});clearTimeout(X);let G=await J.text(),Y=null;if(G.length>0)try{Y=JSON.parse(G)}catch{Y=null}return{response:J,parsed:Y}}catch(J){throw clearTimeout(X),J instanceof Error?J:Error(String(J))}}async initialize(){let D={jsonrpc:"2.0",id:this.nextId(),method:"initialize",params:{protocolVersion:"2025-03-26",capabilities:{},clientInfo:{name:this.clientName,version:this.clientVersion}}},{response:$,parsed:F}=await this.postJson(D,!1);if(!$.ok)throw Error(`MCP initialize failed: HTTP ${$.status}`);if(F?.error)throw Error(`MCP initialize error: ${F.error.message}`);let X=$.headers.get("mcp-session-id");if(!X)throw Error("MCP initialize response missing mcp-session-id header");this.sessionId=X,await this.postJson({jsonrpc:"2.0",method:"notifications/initialized"},!0)}async ensureSession(){if(this.sessionId)return;if(!this.initPromise)this.initPromise=this.initialize().catch((D)=>{throw this.initPromise=null,D});await this.initPromise,this.initPromise=null}async invoke(D,$){await this.ensureSession();let F={jsonrpc:"2.0",id:this.nextId(),method:D,params:$},{response:X,parsed:J}=await this.postJson(F,!0);if(X.status===404||J?.error&&/session/i.test(J.error.message)){this.sessionId=null,await this.ensureSession();let G=await this.postJson({...F,id:this.nextId()},!0);X=G.response,J=G.parsed}if(!X.ok)throw Error(`MCP ${D} failed: HTTP ${X.status}`);if(!J)throw Error(`MCP ${D} returned non-JSON body`);if(J.error)throw Error(`MCP ${D} error: ${J.error.message}`);if(J.result===void 0)throw Error(`MCP ${D} response missing 'result'`);return J.result}async listTools(){return(await this.invoke("tools/list")).tools??[]}async callTool(D,$={}){return this.invoke("tools/call",{name:D,arguments:$})}async callToolJson(D,$={}){let X=(await this.callTool(D,$)).content.find((J)=>J.type==="text");if(!X)throw Error(`MCP tool '${D}' returned no text content`);try{return JSON.parse(X.text)}catch{return _.warn(`[mcp] tool '${D}' text is not JSON, returning raw string`),X.text}}}var re=30000;var Eq=R(()=>{HD()});var qU=R(()=>{Eq()});function jq(D){if(Array.isArray(D))return D.map(String);if(typeof D==="string"&&D.length>0)return D.split(",").map(($)=>$.trim()).filter(Boolean);return[]}function zU(D){let $=D.created_at??new Date().toISOString(),F=D.updated_at??$,{content:X,id:J,score:G,...Y}=D,B={id:J,content:X??"",metadata:{...Y,tags:jq(D.tags)},createdAt:$,updatedAt:F};if(typeof G==="number")B.score=G;return B}function se(D){return{id:D.id,name:D.name,description:D.description??"",version:D.default_ttl?String(D.default_ttl):"0",tags:D.is_public?["public"]:[]}}class IU{name="cloud-gateway";client;defaultCategory;defaultTypeId;constructor(D){this.client=new e3({url:D.url,token:D.token,clientName:"aiworker-brain",timeoutMs:D.timeoutMs}),this.defaultCategory=D.defaultCategory,this.defaultTypeId=D.defaultTypeId}async health(){let D=new Date().toISOString();try{return await this.client.ensureSession(),{name:this.name,status:"healthy",lastChecked:D}}catch{return{name:this.name,status:"down",lastChecked:D}}}async listSkills(){let D=await this.client.callToolJson("knowledge_types");if(!Array.isArray(D))return[];return D.filter(($)=>$.enabled!==!1).map(se)}async listMemories(D){let $={per_page:Math.min(Math.max(D?.limit??50,1),100),page:1},F=D?.tags?.find((G)=>G.startsWith("type:"));if(F)$.type_id=F.slice(5);let J=(await this.client.callToolJson("knowledge_query",$)).entries??[];if(D?.since)J=J.filter((G)=>!G.created_at||G.created_at>=D.since);if(D?.until)J=J.filter((G)=>!G.created_at||G.created_at<=D.until);return J.map(zU)}async searchMemories(D){let $=await this.client.callToolJson("knowledge_search",{query:D,limit:20});if(!Array.isArray($))return[];return $.map(zU)}async writeMemory(D){let $=D.metadata??{},F={content:D.content},X=typeof $.title==="string"?$.title:typeof $.name==="string"?$.name:void 0;if(X)F.title=X;let J=typeof $.type_id==="string"?$.type_id:this.defaultTypeId,G=typeof $.category==="string"?$.category:this.defaultCategory;if(J)F.type_id=J;else if(G)F.category=G;let Y=D.tags??jq($.tags);if(Y.length>0)F.tags=Y.join(",");let B=typeof $.source_type==="string"?$.source_type:"aiworker";if(F.source_type=B,typeof $.source_ref==="string")F.source_ref=$.source_ref;F.skip_compile=!0;let H=await this.client.callToolJson("knowledge_write",F);return zU(H)}}var Nq=R(()=>{qU()});import{basename as ae,join as yX,posix as oe}from"path";async function Pq(D){let $=new Bun.CryptoHasher("sha256");return $.update(D),$.digest("hex")}function Lq(D){let $=D.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);if(!$)return{metadata:{},content:D};try{return{metadata:K2($[1]??"")??{},content:$[2]??""}}catch{return{metadata:{},content:D}}}function te(D){let $=oe.dirname(D);return $==="."?ae(D,".md"):$}function ee(D,$,F){let{metadata:X,content:J}=Lq(D),G=String(X.id??te(F));return{body:J.trim(),id:G,name:String(X.name??G),description:String(X.description??J.split(`
1676
1676
  `)[0]??""),version:String(X.version??"0.0.0"),capabilities:Array.isArray(X.capabilities)?X.capabilities.map(String):[],filePath:$}}async function SU(D){let $=yX(D,"skills");try{await(await import("fs/promises")).access($);let X=new Bun.Glob("**/SKILL.md"),J=[],G=[];for await(let Y of X.scan({cwd:$}))G.push(Y);for(let Y of G.sort()){let B=yX($,Y);try{let U=await Bun.file(B).text(),Q=ee(U,B,Y);if(Q){let V=await Pq(U);J.push({...Q,hash:V})}}catch{}}return J}catch{return[]}}async function qq(D,$){return(await SU(D)).find((X)=>X.id===$)??null}async function TU(D){let $=yX(D,"memories");try{await(await import("fs/promises")).access($);let X=new Bun.Glob("**/*.md"),J=[];for await(let G of X.scan({cwd:$})){let Y=yX($,G);try{let H=await Bun.file(Y).text(),U=await Pq(H),{metadata:Q,content:V}=Lq(H),A=G.replace(/\.md$/,"");J.push({id:String(Q.id??A),title:String(Q.title??A),content:V,metadata:Q,filePath:Y,hash:U,createdAt:Q.createdAt?String(Q.createdAt):void 0,updatedAt:Q.updatedAt?String(Q.updatedAt):void 0})}catch{}}return J}catch{return[]}}var zq=R(()=>{m8()});import{watch as DDD}from"fs";import{join as wU}from"path";function $DD(D){return D.includes("/skills/")||D.includes("\\skills\\")?"skill":"memory"}class kU{watchers=[];handlers=[];debounceTimers=new Map;debounceMs;home;running=!1;constructor(D){this.home=D.home,this.debounceMs=D.debounceMs??100}on(D){return this.handlers.push(D),()=>{let $=this.handlers.indexOf(D);if($!==-1)this.handlers.splice($,1)}}emit(D){for(let $ of this.handlers)try{$(D)}catch{}}watchDir(D){try{return DDD(D,{recursive:!0},(F,X)=>{if(!X)return;let J=wU(D,X),G=J,Y=this.debounceTimers.get(G);if(Y)clearTimeout(Y);let B=setTimeout(()=>{this.debounceTimers.delete(G);let H=F==="rename"?"add":"modify";this.emit({type:H,path:J,kind:$DD(J),timestamp:Date.now()})},this.debounceMs);this.debounceTimers.set(G,B)})}catch{return null}}async start(){if(this.running)return;this.running=!0;let D=wU(this.home,"skills"),$=wU(this.home,"memories"),F=this.watchDir(D),X=this.watchDir($);if(F)this.watchers.push(F);if(X)this.watchers.push(X)}stop(){this.running=!1;for(let D of this.watchers)try{D.close()}catch{}this.watchers=[];for(let D of this.debounceTimers.values())clearTimeout(D);this.debounceTimers.clear()}get isRunning(){return this.running}}var Iq=()=>{};import{existsSync as FDD,mkdirSync as XDD}from"fs";import{access as JDD,stat as GDD}from"fs/promises";import{join as bU}from"path";function Tq(D){return{id:D.id,name:D.name,description:D.description,version:D.version,tags:D.capabilities}}function YDD(D){return{...Tq(D),body:D.body}}async function Sq(D,$){let{createdAt:F,updatedAt:X}=D;if(!F||!X)try{let Y=await GDD(D.filePath);F=F??Y.birthtime.toISOString(),X=X??Y.mtime.toISOString()}catch{let Y=new Date(0).toISOString();F=F??Y,X=X??Y}let J={...D.metadata,title:D.title,filePath:D.filePath,hash:D.hash},G={id:D.id,content:D.content,metadata:J,createdAt:F,updatedAt:X};if($!==void 0)G.score=$;return G}function BDD(D){let $=new Date(D.timestamp).toISOString(),F={path:D.path,kind:D.kind};if(D.kind==="skill")return{type:"skill:changed",payload:F,timestamp:$};switch(D.type){case"add":return{type:"memory:created",payload:F,timestamp:$};case"modify":return{type:"memory:updated",payload:F,timestamp:$};case"delete":return{type:"memory:deleted",payload:F,timestamp:$};default:return null}}function HDD(D,$){if(!$)return D;let F=D;if($.tags&&$.tags.length>0){let X=$.tags;F=F.filter((J)=>{let G=Array.isArray(J.metadata.tags)?J.metadata.tags.map(String):[];return X.every((Y)=>G.includes(Y))})}if($.since){let X=$.since;F=F.filter((J)=>J.createdAt>=X)}if($.until){let X=$.until;F=F.filter((J)=>J.createdAt<=X)}if(typeof $.limit==="number")F=F.slice(0,$.limit);return F}function WDD(D){if(D==="feedback"||D==="project"||D==="reference"||D==="user")return D;return"user"}function UDD(D){return D.toLowerCase().replace(/[^a-z0-9_\- ]/g,"").replace(/\s+/g,"_").replace(/_+/g,"_").replace(/^_|_$/g,"").slice(0,64)}async function QDD(D,$,F,X){let J=bU(D,"..","MEMORY.md"),G=`- [${$}](memories/${F}) \u2014 ${X}`,Y=Bun.file(J);if(await Y.exists()){let H=(await Y.text()).trimEnd(),U=H?`${H}
1677
1677
  ${G}
1678
1678
  `:`${G}
@@ -1685,8 +1685,8 @@ description: ${X}
1685
1685
  type: ${J}
1686
1686
  ---
1687
1687
  `;await Bun.write(H,`${U}${D.content}
1688
- `),await QDD(G,F,B,X);let Q=new Date().toISOString();return{id:Y,content:D.content,metadata:{...$,name:F,description:X,type:J,filePath:H,...D.tags?{tags:D.tags}:{}},createdAt:Q,updatedAt:Q}}watch(D){if(!this.watcherStarted)this.watcherStarted=!0,this.watcher.start();return this.watcher.on(($)=>{let F=BDD($);if(F)D(F)})}}var wq=R(()=>{zq();Iq()});class gU{name="multi";sources;writeTargetId;retrieval;constructor(D){this.sources=[...D.sources].sort(($,F)=>F.priority-$.priority),this.writeTargetId=D.writeTargetId,this.retrieval=D.retrieval}async health(){let $=(await Promise.all(this.sources.map((F)=>F.health().catch(()=>({name:F.id,status:"down",lastChecked:new Date().toISOString()}))))).some((F)=>F.status==="down");return{name:this.name,status:$?"degraded":"healthy",lastChecked:new Date().toISOString()}}async listSkills(){return(await Promise.all(this.sources.map(($)=>$.listSkills().catch(()=>[])))).flat()}async loadSkill(D){for(let $ of this.sources){if(!$.loadSkill)continue;let F=await $.loadSkill(D).catch(()=>null);if(F!==null)return F}return null}async listMemories(D){if(this.retrieval==="first-match"){for(let F of this.sources){let X=await F.listMemories(D).catch(()=>[]);if(X.length>0)return X}return[]}return(await Promise.all(this.sources.map((F)=>F.listMemories(D).catch(()=>[])))).flat()}async searchMemories(D){if(this.retrieval==="first-match"){for(let F of this.sources){let X=await F.searchMemories(D).catch(()=>[]);if(X.length>0)return X}return[]}return(await Promise.all(this.sources.map((F)=>F.searchMemories(D).catch(()=>[])))).flat()}async writeMemory(D){let $=this.sources.find((F)=>F.id===this.writeTargetId&&!F.readOnly)??this.sources.find((F)=>!F.readOnly);if(!$)throw Error("MultiBrainProvider: no writable brain source configured");return $.writeMemory(D)}watch(D){let $=this.sources.map((F)=>F.watch?F.watch(D):()=>{return});return()=>$.forEach((F)=>F())}}function VDD(D,$){let F;if($.type==="filesystem"){let X=$.config.home??u0(D);F=new fU({home:X})}else F=new IU({url:$.config.url,token:$.config.token,...$.config.defaultCategory===void 0?{}:{defaultCategory:$.config.defaultCategory},...$.config.defaultTypeId===void 0?{}:{defaultTypeId:$.config.defaultTypeId}});return Object.assign(F,{id:$.id,priority:$.priority,readOnly:$.readOnly})}function kq(D,$){let F=$.brains.map((X)=>VDD(D,X));return new gU({sources:F,writeTargetId:$.brainWriteTarget,retrieval:$.brainRetrieval})}var bq=R(()=>{$0();Nq();wq()});function fq(D){return D.on((F)=>{try{ADD(F)}catch(X){_.warn(`[evolution] observer failed to persist: ${String(X)}`)}})}function ADD(D){if(!(D.type==="orchestrator.tool_call"||D.type==="orchestrator.finished"||D.type==="orchestrator.intent_decision"||D.type==="orchestrator.capability_decision"||D.type==="orchestrator.quality_gate"||D.type==="orchestrator.repair_attempted"))return;b().insert(b0).values({conversationId:typeof D.payload.conversationId==="string"?D.payload.conversationId:null,kind:D.type,payload:D.payload}).run()}var gq=R(()=>{gD();HD()});function vq(D,$=hU){let F=Math.max(1,$.nGramMin),X=Math.max(F,$.nGramMax),J=new Map;for(let[B,H]of D){if(!B||H.length===0)continue;for(let U=F;U<=X;U++){if(H.length<U)break;for(let Q=0;Q+U<=H.length;Q++){let V=H.slice(Q,Q+U),A=CDD(V),K=J.get(A);if(K)K.occurrences+=1,K.conversations.add(B);else J.set(A,{toolSequence:V,occurrences:1,conversations:new Set([B])})}}}let G=Math.max(1,$.windowSize),Y=[];for(let B of J.values()){if(B.occurrences<$.minOccurrences)continue;if(B.conversations.size<$.minConversations)continue;let H=MDD(B.occurrences/G);Y.push({toolSequence:B.toolSequence,occurrences:B.occurrences,uniqueConversations:B.conversations.size,confidence:H,rationale:_DD(B.toolSequence,B.occurrences,B.conversations.size,H)})}return Y.sort((B,H)=>{if(H.occurrences!==B.occurrences)return H.occurrences-B.occurrences;return H.toolSequence.length-B.toolSequence.length}),KDD(Y)}function KDD(D){let $=[];for(let F of D){if($.find((G)=>hq(F.toolSequence,G.toolSequence)))continue;let J=$.findIndex((G)=>hq(G.toolSequence,F.toolSequence));if(J>=0)$.splice(J,1);$.push(F)}return $}function hq(D,$){if(D.length>=$.length)return!1;for(let F=0;F<D.length;F++)if(D[F]!==$[F])return!1;return!0}function _DD(D,$,F,X){let J=D.join(" \u2192 "),G=(X*100).toFixed(1);return`Observed tool sequence ${J} ${$}\xD7 across ${F} conversation(s); window confidence ${G}%.`}function CDD(D){return D.join("|")}function MDD(D){if(!Number.isFinite(D))return 0;if(D<0)return 0;if(D>1)return 1;return D}var hU;var xq=R(()=>{hU={nGramMin:2,nGramMax:4,minOccurrences:3,minConversations:2,windowSize:500}});import{createHash as mq}from"crypto";import ZDD from"process";function EDD(D){return{windowSize:D?.windowSize??uX("EVOLUTION_PROPOSER_WINDOW",RDD),maxDraftsPerRun:D?.maxDraftsPerRun??uX("EVOLUTION_PROPOSER_MAX_DRAFTS_PER_RUN",ODD),intervalMs:D?.intervalMs??uX("EVOLUTION_PROPOSER_INTERVAL_MS",cq)}}async function jDD(D){let $=EDD(D),F=b(),X=F.select({conversationId:b0.conversationId}).from(b0).orderBy(RD(b0.noticedAt)).limit($.windowSize).all(),J=Array.from(new Set(X.map((V)=>V.conversationId).filter((V)=>typeof V==="string"&&V.length>0)));if(J.length===0)return _.info("[evolution/proposer] no conversations in window; skipping"),{drafts:0};let G=F.select({conversationId:f1.conversationId,toolName:f1.toolName}).from(f1).where(I1(f1.conversationId,J)).orderBy(A1(f1.conversationId),A1(f1.id)).all(),Y=new Map;for(let V of G){if(!V.conversationId)continue;let A=Y.get(V.conversationId);if(A)A.push(V.toolName);else Y.set(V.conversationId,[V.toolName])}let B=vq(Y,{...hU,windowSize:$.windowSize}),H=PDD(F),U=0;for(let V of B){if(U>=$.maxDraftsPerRun)break;let A=V.toolSequence.join("|");if(H.has(A))continue;let K=LDD(V);F.insert(p0).values(K).run(),H.add(A),U+=1,_.info(`[evolution/proposer] wrote draft ${K.proposedName} (occurrences=${V.occurrences}, convs=${V.uniqueConversations})`)}let Q=qDD(F,$.windowSize);for(let V of Q){if(U>=$.maxDraftsPerRun)break;if(H.has(V.sequenceKey))continue;let A=zDD(V);F.insert(p0).values(A).run(),H.add(V.sequenceKey),U+=1,_.info(`[evolution/proposer] wrote quality draft ${A.proposedName} (occurrences=${V.occurrences}, convs=${V.uniqueConversations})`)}return _.info(`[evolution/proposer] ${U}/${B.length+Q.length} candidate(s) written; window=${$.windowSize}, conversations=${J.length}`),{drafts:U}}function pq(D){let $=D??uX("EVOLUTION_PROPOSER_INTERVAL_MS",cq),F=setInterval(()=>{jDD().catch((X)=>_.warn(`[evolution/proposer] loop run failed: ${String(X)}`))},$);return()=>clearInterval(F)}function NDD(D){let $=D.match(/<!--\s*evolution-meta:\s*(\{[\s\S]*?\})\s*-->/);if(!$?.[1])return null;try{let F=JSON.parse($[1]);if(!Array.isArray(F.allowedTools)||!F.allowedTools.every((X)=>typeof X==="string"))return null;return{allowedTools:F.allowedTools,confidence:typeof F.confidence==="number"?F.confidence:0,kind:F.kind==="quality_gate"?"quality_gate":"tool_sequence",sequenceKey:typeof F.sequenceKey==="string"?F.sequenceKey:F.allowedTools.join("|")}}catch{return null}}function PDD(D){let $=new Set,F=D.select({bodyMarkdown:p0.bodyMarkdown}).from(p0).all();for(let J of F){let G=NDD(J.bodyMarkdown);if(G)$.add(G.sequenceKey)}let X=D.select({config:t7.config}).from(t7).all();for(let J of X){let G=J.config;if(!G||typeof G!=="object")continue;let Y=G.allowedTools;if(Array.isArray(Y)&&Y.every((B)=>typeof B==="string"))$.add(Y.join("|"))}return $}function LDD(D){let $=D.toolSequence.join("|"),F=mq("sha256").update($).digest("hex").slice(0,6),X=yq(D.toolSequence[0]??"tool"),J=yq(D.toolSequence[D.toolSequence.length-1]??"tool"),G=`auto-${X}-${J}-${F}`,Y=D.toolSequence.join(" \u2192 "),B=D.toolSequence.map((V)=>`\`${V}\``).join(", "),H={allowedTools:D.toolSequence,confidence:D.confidence,kind:"tool_sequence",sequenceKey:$},U=`When the agent runs \`${Y}\` (seen ${D.occurrences}\xD7 across ${D.uniqueConversations} conversation(s))`,Q=[`<!-- evolution-meta: ${JSON.stringify(H)} -->`,"",`# ${G}`,"","## Trigger","",U,"","## Allowed tools","",B,"","## Prompt template","","```",`You are extending the skill \`${G}\`. Invoke the following tools in order: ${B}.`,"```",""].join(`
1689
- `);return{proposedName:G,source:"evolution",bodyMarkdown:Q,rationale:D.rationale,status:"pending"}}function qDD(D,$){let F=D.select({conversationId:b0.conversationId,payload:b0.payload}).from(b0).where(I1(b0.kind,["orchestrator.quality_gate"])).orderBy(RD(b0.noticedAt)).limit($).all(),X=new Map;for(let J of F){let G=J.payload,Y=typeof G.status==="string"?G.status:"",B=typeof G.action==="string"?G.action:"";if(Y!=="failed"||B==="pass")continue;let H=uq(G.missing).slice(0,5),U=uq(G.suggestions).slice(0,5),Q=[...H,...U].join("|").toLowerCase();if(Q.length===0)continue;let V=`quality:${mq("sha256").update(Q).digest("hex").slice(0,10)}`,A=X.get(V);if(A){if(A.occurrences+=1,J.conversationId)A.conversations.add(J.conversationId);continue}X.set(V,{action:B,conversations:new Set(J.conversationId?[J.conversationId]:[]),missing:H,occurrences:1,suggestions:U})}return Array.from(X.entries()).filter(([,J])=>J.occurrences>=2).map(([J,G])=>({action:G.action,confidence:Math.min(0.95,0.5+G.occurrences*0.1),missing:G.missing,occurrences:G.occurrences,rationale:`${G.occurrences}\xD7 similar quality gate failure(s) across ${G.conversations.size} conversation(s)`,sequenceKey:J,suggestions:G.suggestions,uniqueConversations:G.conversations.size})).sort((J,G)=>G.occurrences-J.occurrences||G.uniqueConversations-J.uniqueConversations)}function zDD(D){let F=`auto-quality-${D.sequenceKey.replace(/^quality:/,"").slice(0,6)}`,X={allowedTools:[],confidence:D.confidence,kind:"quality_gate",sequenceKey:D.sequenceKey},J=[`<!-- evolution-meta: ${JSON.stringify(X)} -->`,"",`# ${F}`,"","## Trigger","",`When quality gate failures repeat (${D.occurrences}\xD7 across ${D.uniqueConversations} conversation(s)).`,"","## Missing signals","",...D.missing.map((G)=>`- ${G}`),"","## Improvement guidance","",...D.suggestions.map((G)=>`- ${G}`),"","## Prompt template","","```","Before finalizing similar answers, address the missing signals above and verify the answer against the user request.","```",""].join(`
1688
+ `),await QDD(G,F,B,X);let Q=new Date().toISOString();return{id:Y,content:D.content,metadata:{...$,name:F,description:X,type:J,filePath:H,...D.tags?{tags:D.tags}:{}},createdAt:Q,updatedAt:Q}}watch(D){if(!this.watcherStarted)this.watcherStarted=!0,this.watcher.start();return this.watcher.on(($)=>{let F=BDD($);if(F)D(F)})}}var wq=R(()=>{zq();Iq()});class gU{name="multi";sources;writeTargetId;retrieval;constructor(D){this.sources=[...D.sources].sort(($,F)=>F.priority-$.priority),this.writeTargetId=D.writeTargetId,this.retrieval=D.retrieval}async health(){let $=(await Promise.all(this.sources.map((F)=>F.health().catch(()=>({name:F.id,status:"down",lastChecked:new Date().toISOString()}))))).some((F)=>F.status==="down");return{name:this.name,status:$?"degraded":"healthy",lastChecked:new Date().toISOString()}}async listSkills(){return(await Promise.all(this.sources.map(($)=>$.listSkills().catch(()=>[])))).flat()}async loadSkill(D){for(let $ of this.sources){if(!$.loadSkill)continue;let F=await $.loadSkill(D).catch(()=>null);if(F!==null)return F}return null}async listMemories(D){if(this.retrieval==="first-match"){for(let F of this.sources){let X=await F.listMemories(D).catch(()=>[]);if(X.length>0)return X}return[]}return(await Promise.all(this.sources.map((F)=>F.listMemories(D).catch(()=>[])))).flat()}async searchMemories(D){if(this.retrieval==="first-match"){for(let F of this.sources){let X=await F.searchMemories(D).catch(()=>[]);if(X.length>0)return X}return[]}return(await Promise.all(this.sources.map((F)=>F.searchMemories(D).catch(()=>[])))).flat()}async writeMemory(D){let $=this.sources.find((F)=>F.id===this.writeTargetId&&!F.readOnly)??this.sources.find((F)=>!F.readOnly);if(!$)throw Error("MultiBrainProvider: no writable brain source configured");return $.writeMemory(D)}watch(D){let $=this.sources.map((F)=>F.watch?F.watch(D):()=>{return});return()=>$.forEach((F)=>F())}}function VDD(D,$){let F;if($.type==="filesystem"){let X=$.config.home??u0(D);F=new fU({home:X})}else F=new IU({url:$.config.url,token:$.config.token,...$.config.defaultCategory===void 0?{}:{defaultCategory:$.config.defaultCategory},...$.config.defaultTypeId===void 0?{}:{defaultTypeId:$.config.defaultTypeId}});return Object.assign(F,{id:$.id,priority:$.priority,readOnly:$.readOnly})}function kq(D,$){let F=$.brains.map((X)=>VDD(D,X));return new gU({sources:F,writeTargetId:$.brainWriteTarget,retrieval:$.brainRetrieval})}var bq=R(()=>{$0();Nq();wq()});function fq(D){return D.on((F)=>{try{ADD(F)}catch(X){_.warn(`[evolution] observer failed to persist: ${String(X)}`)}})}function ADD(D){if(!(D.type==="orchestrator.tool_call"||D.type==="orchestrator.finished"||D.type==="orchestrator.intent_decision"||D.type==="orchestrator.capability_decision"||D.type==="orchestrator.quality_gate"||D.type==="orchestrator.repair_attempted"))return;b().insert(b0).values({conversationId:typeof D.payload.conversationId==="string"?D.payload.conversationId:null,kind:D.type,payload:D.payload}).run()}var gq=R(()=>{gD();HD()});function vq(D,$=hU){let F=Math.max(1,$.nGramMin),X=Math.max(F,$.nGramMax),J=new Map;for(let[B,H]of D){if(!B||H.length===0)continue;for(let U=F;U<=X;U++){if(H.length<U)break;for(let Q=0;Q+U<=H.length;Q++){let V=H.slice(Q,Q+U),A=CDD(V),K=J.get(A);if(K)K.occurrences+=1,K.conversations.add(B);else J.set(A,{toolSequence:V,occurrences:1,conversations:new Set([B])})}}}let G=Math.max(1,$.windowSize),Y=[];for(let B of J.values()){if(B.occurrences<$.minOccurrences)continue;if(B.conversations.size<$.minConversations)continue;let H=MDD(B.occurrences/G);Y.push({toolSequence:B.toolSequence,occurrences:B.occurrences,uniqueConversations:B.conversations.size,confidence:H,rationale:_DD(B.toolSequence,B.occurrences,B.conversations.size,H)})}return Y.sort((B,H)=>{if(H.occurrences!==B.occurrences)return H.occurrences-B.occurrences;return H.toolSequence.length-B.toolSequence.length}),KDD(Y)}function KDD(D){let $=[];for(let F of D){if($.find((G)=>hq(F.toolSequence,G.toolSequence)))continue;let J=$.findIndex((G)=>hq(G.toolSequence,F.toolSequence));if(J>=0)$.splice(J,1);$.push(F)}return $}function hq(D,$){if(D.length>=$.length)return!1;for(let F=0;F<D.length;F++)if(D[F]!==$[F])return!1;return!0}function _DD(D,$,F,X){let J=D.join(" \u2192 "),G=(X*100).toFixed(1);return`Observed tool sequence ${J} ${$}\xD7 across ${F} conversation(s); window confidence ${G}%.`}function CDD(D){return D.join("|")}function MDD(D){if(!Number.isFinite(D))return 0;if(D<0)return 0;if(D>1)return 1;return D}var hU;var xq=R(()=>{hU={nGramMin:2,nGramMax:4,minOccurrences:3,minConversations:2,windowSize:500}});import{createHash as mq}from"crypto";import ZDD from"process";function EDD(D){return{windowSize:D?.windowSize??uX("EVOLUTION_PROPOSER_WINDOW",RDD),maxDraftsPerRun:D?.maxDraftsPerRun??uX("EVOLUTION_PROPOSER_MAX_DRAFTS_PER_RUN",ODD),intervalMs:D?.intervalMs??uX("EVOLUTION_PROPOSER_INTERVAL_MS",cq)}}async function jDD(D){let $=EDD(D),F=b(),X=F.select({conversationId:b0.conversationId}).from(b0).orderBy(OD(b0.noticedAt)).limit($.windowSize).all(),J=Array.from(new Set(X.map((V)=>V.conversationId).filter((V)=>typeof V==="string"&&V.length>0)));if(J.length===0)return _.info("[evolution/proposer] no conversations in window; skipping"),{drafts:0};let G=F.select({conversationId:f1.conversationId,toolName:f1.toolName}).from(f1).where(I1(f1.conversationId,J)).orderBy(A1(f1.conversationId),A1(f1.id)).all(),Y=new Map;for(let V of G){if(!V.conversationId)continue;let A=Y.get(V.conversationId);if(A)A.push(V.toolName);else Y.set(V.conversationId,[V.toolName])}let B=vq(Y,{...hU,windowSize:$.windowSize}),H=PDD(F),U=0;for(let V of B){if(U>=$.maxDraftsPerRun)break;let A=V.toolSequence.join("|");if(H.has(A))continue;let K=LDD(V);F.insert(p0).values(K).run(),H.add(A),U+=1,_.info(`[evolution/proposer] wrote draft ${K.proposedName} (occurrences=${V.occurrences}, convs=${V.uniqueConversations})`)}let Q=qDD(F,$.windowSize);for(let V of Q){if(U>=$.maxDraftsPerRun)break;if(H.has(V.sequenceKey))continue;let A=zDD(V);F.insert(p0).values(A).run(),H.add(V.sequenceKey),U+=1,_.info(`[evolution/proposer] wrote quality draft ${A.proposedName} (occurrences=${V.occurrences}, convs=${V.uniqueConversations})`)}return _.info(`[evolution/proposer] ${U}/${B.length+Q.length} candidate(s) written; window=${$.windowSize}, conversations=${J.length}`),{drafts:U}}function pq(D){let $=D??uX("EVOLUTION_PROPOSER_INTERVAL_MS",cq),F=setInterval(()=>{jDD().catch((X)=>_.warn(`[evolution/proposer] loop run failed: ${String(X)}`))},$);return()=>clearInterval(F)}function NDD(D){let $=D.match(/<!--\s*evolution-meta:\s*(\{[\s\S]*?\})\s*-->/);if(!$?.[1])return null;try{let F=JSON.parse($[1]);if(!Array.isArray(F.allowedTools)||!F.allowedTools.every((X)=>typeof X==="string"))return null;return{allowedTools:F.allowedTools,confidence:typeof F.confidence==="number"?F.confidence:0,kind:F.kind==="quality_gate"?"quality_gate":"tool_sequence",sequenceKey:typeof F.sequenceKey==="string"?F.sequenceKey:F.allowedTools.join("|")}}catch{return null}}function PDD(D){let $=new Set,F=D.select({bodyMarkdown:p0.bodyMarkdown}).from(p0).all();for(let J of F){let G=NDD(J.bodyMarkdown);if(G)$.add(G.sequenceKey)}let X=D.select({config:t7.config}).from(t7).all();for(let J of X){let G=J.config;if(!G||typeof G!=="object")continue;let Y=G.allowedTools;if(Array.isArray(Y)&&Y.every((B)=>typeof B==="string"))$.add(Y.join("|"))}return $}function LDD(D){let $=D.toolSequence.join("|"),F=mq("sha256").update($).digest("hex").slice(0,6),X=yq(D.toolSequence[0]??"tool"),J=yq(D.toolSequence[D.toolSequence.length-1]??"tool"),G=`auto-${X}-${J}-${F}`,Y=D.toolSequence.join(" \u2192 "),B=D.toolSequence.map((V)=>`\`${V}\``).join(", "),H={allowedTools:D.toolSequence,confidence:D.confidence,kind:"tool_sequence",sequenceKey:$},U=`When the agent runs \`${Y}\` (seen ${D.occurrences}\xD7 across ${D.uniqueConversations} conversation(s))`,Q=[`<!-- evolution-meta: ${JSON.stringify(H)} -->`,"",`# ${G}`,"","## Trigger","",U,"","## Allowed tools","",B,"","## Prompt template","","```",`You are extending the skill \`${G}\`. Invoke the following tools in order: ${B}.`,"```",""].join(`
1689
+ `);return{proposedName:G,source:"evolution",bodyMarkdown:Q,rationale:D.rationale,status:"pending"}}function qDD(D,$){let F=D.select({conversationId:b0.conversationId,payload:b0.payload}).from(b0).where(I1(b0.kind,["orchestrator.quality_gate"])).orderBy(OD(b0.noticedAt)).limit($).all(),X=new Map;for(let J of F){let G=J.payload,Y=typeof G.status==="string"?G.status:"",B=typeof G.action==="string"?G.action:"";if(Y!=="failed"||B==="pass")continue;let H=uq(G.missing).slice(0,5),U=uq(G.suggestions).slice(0,5),Q=[...H,...U].join("|").toLowerCase();if(Q.length===0)continue;let V=`quality:${mq("sha256").update(Q).digest("hex").slice(0,10)}`,A=X.get(V);if(A){if(A.occurrences+=1,J.conversationId)A.conversations.add(J.conversationId);continue}X.set(V,{action:B,conversations:new Set(J.conversationId?[J.conversationId]:[]),missing:H,occurrences:1,suggestions:U})}return Array.from(X.entries()).filter(([,J])=>J.occurrences>=2).map(([J,G])=>({action:G.action,confidence:Math.min(0.95,0.5+G.occurrences*0.1),missing:G.missing,occurrences:G.occurrences,rationale:`${G.occurrences}\xD7 similar quality gate failure(s) across ${G.conversations.size} conversation(s)`,sequenceKey:J,suggestions:G.suggestions,uniqueConversations:G.conversations.size})).sort((J,G)=>G.occurrences-J.occurrences||G.uniqueConversations-J.uniqueConversations)}function zDD(D){let F=`auto-quality-${D.sequenceKey.replace(/^quality:/,"").slice(0,6)}`,X={allowedTools:[],confidence:D.confidence,kind:"quality_gate",sequenceKey:D.sequenceKey},J=[`<!-- evolution-meta: ${JSON.stringify(X)} -->`,"",`# ${F}`,"","## Trigger","",`When quality gate failures repeat (${D.occurrences}\xD7 across ${D.uniqueConversations} conversation(s)).`,"","## Missing signals","",...D.missing.map((G)=>`- ${G}`),"","## Improvement guidance","",...D.suggestions.map((G)=>`- ${G}`),"","## Prompt template","","```","Before finalizing similar answers, address the missing signals above and verify the answer against the user request.","```",""].join(`
1690
1690
  `);return{proposedName:F,source:"evolution",bodyMarkdown:J,rationale:D.rationale,status:"pending"}}function yq(D){return D.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"tool"}function uq(D){return Array.isArray(D)?D.filter(($)=>typeof $==="string"&&$.length>0):[]}function uX(D,$){let F=ZDD.env[D];if(F===void 0||F==="")return $;let X=Number(F);return Number.isFinite(X)&&X>0?X:$}var cq=21600000,RDD=500,ODD=5;var dq=R(()=>{gD();HD();V0();xq()});var vU;var xU=R(()=>{bX();vU={id:"gemini",label:"Gemini CLI",commandName:"gemini",versionEnvVar:"GEMINI_CLI_VERSION",defaultVersion:"0.9.0",npxPackage:"@google/gemini-cli",buildArgs:({model:D,yolo:$,extraArgs:F})=>{let X=["--experimental-acp"];if(D&&D.length>0)X.push("--model",D);if($)X.push("--yolo","--allowed-tools","run_shell_command");if(F&&F.length>0)X.push(...F);return X},authProbe:()=>eL()}});var yU;var uU=R(()=>{bX();yU={id:"qwen",label:"Qwen Code",commandName:"qwen",versionEnvVar:"QWEN_CLI_VERSION",defaultVersion:"0.0.14",npxPackage:"@qwen-code/qwen-code",buildArgs:({model:D,yolo:$,extraArgs:F})=>{let X=[];if(D&&D.length>0)X.push("--model",D);if($)X.push("--yolo");if(X.push("--acp"),F&&F.length>0)X.push(...F);return X},authProbe:()=>Dq()}});function mU(D){let $=IDD[D];if(!$)throw Error(`unknown ACP agent: ${D}`);return $}var IDD;var lq=R(()=>{xU();uU();IDD={gemini:vU,qwen:yU}});import iq from"process";function hDD(D){return gDD.some(($)=>D.startsWith($))}function vDD(D,$,F){if($.has(D))return!0;return F.some((X)=>D.startsWith(X))}function xDD(D){if(bDD.some(($)=>D.startsWith($)))return!0;if(fDD.some(($)=>D.endsWith($)))return!0;return!1}function nq(D,$,F,X={}){let J=X.allowExplicit===!0,G={};for(let[Y,B]of Object.entries(D)){if(B===void 0)continue;if(J&&hDD(Y)){G[Y]=B;continue}if(xDD(Y))continue;if(!vDD(Y,$,F))continue;G[Y]=B}return G}function $1(D,$=iq.env){let F=nq($,SDD,TDD,{allowExplicit:!0});if(D)for(let[X,J]of Object.entries(D))F[X]=J;return F}function rq(D=iq.env){return nq(D,wDD,kDD)}var SDD,TDD,wDD,kDD,bDD,fDD,gDD;var R6=R(()=>{SDD=new Set(["PATH","HOME","USER","LOGNAME","SHELL","PWD","LANG","TZ","TERM","TMPDIR","TMP","TEMP"]),TDD=["LC_","NODE_","NPM_CONFIG_","XDG_","CLAUDE_","CODEX_","CURSOR_","GEMINI_","QWEN_"],wDD=new Set(["PATH","HOME","USER","LOGNAME","SHELL","PWD","LANG","TZ","TERM","TMPDIR","TMP","TEMP","EMAIL","DISPLAY","SSH_AUTH_SOCK","SSH_AGENT_PID","SSH_ASKPASS","GIT_ASKPASS","GIT_SSH","GIT_SSH_COMMAND","GIT_TERMINAL_PROMPT","GIT_CONFIG_GLOBAL","GIT_CONFIG_NOSYSTEM","GIT_CONFIG_SYSTEM","GIT_SSL_CAINFO","GIT_SSL_CAPATH","SSL_CERT_FILE","SSL_CERT_DIR"]),kDD=["LC_","XDG_","GIT_AUTHOR_","GIT_COMMITTER_"],bDD=["AIWORKER_","INTERNAL_","WORKER_"],fDD=["_TOKEN","_SECRET","_API_KEY","_PRIVATE_KEY","_PASSWORD"],gDD=["AIWORKER_DEBUG_","DEBUG_"]});function D9(D){let $=[],F=[];for(let Y of D){if(Y.role==="system"){let B=Y.content.trim();if(B.length>0)$.push(B);continue}F.push(Y)}let X=null,J=-1;for(let Y=F.length-1;Y>=0;Y--){let B=F[Y];if(B&&B.role==="user"&&B.content.trim().length>0){X=B.content,J=Y;break}}let G=J>=0?F.slice(0,J):F.slice();return{systemText:$.join(`
1691
1691
 
1692
1692
  ---
@@ -1727,18 +1727,18 @@ ${D.latestUser}`),$.join(`
1727
1727
  `),F=D.indexOf(`\r
1728
1728
  \r
1729
1729
  `);if($===-1)return F;if(F===-1)return $;return Math.min($,F)}function bz(D){let $=D.split(/\r?\n/),F=[];for(let J of $){if(J.startsWith(":"))continue;if(J.startsWith("data:")){let G=J.slice(5).replace(/^ /,"");F.push(G)}}if(F.length===0)return null;let X=F.join(`
1730
- `);if(X==="[DONE]")return"[DONE]";return X}var O2D=60000,z4;var fz=R(()=>{JQ();z4=class z4 extends Error{status;constructor(D,$,F){let X=F.length>500?`${F.slice(0,500)}\u2026`:F;super(`OpenAI HTTP ${D} ${$}${X?`: ${X}`:""}`);this.name="OpenAiHttpError",this.status=D}}});var gz=R(()=>{fz();JQ()});class YQ{name="openai-compatible";baseUrl;apiKey;model;timeoutMs;constructor(D){this.baseUrl=D.baseUrl.replace(/\/+$/,""),this.apiKey=D.apiKey,this.model=D.model,this.timeoutMs=D.timeoutMs}async health(){let D=new Date().toISOString();if(!this.apiKey)return{name:this.name,status:"down",lastChecked:D};let $=new AbortController,F=setTimeout(()=>$.abort(),Math.min(this.timeoutMs,5000));try{let X=await fetch(`${this.baseUrl}/v1/models`,{method:"GET",headers:{Authorization:`Bearer ${this.apiKey}`},signal:$.signal});if(clearTimeout(F),X.ok)return{name:this.name,status:"healthy",lastChecked:D};if(X.status>=500)return{name:this.name,status:"degraded",lastChecked:D};return{name:this.name,status:"down",lastChecked:D}}catch{return clearTimeout(F),{name:this.name,status:"down",lastChecked:D}}}async listTools(){return[]}run(D){return this.runIterable(D)}async*runIterable(D){if(!this.apiKey){yield{type:"error",error:"OpenAI API key is not configured"};return}let $={model:D.model??this.model,messages:D.messages.map(P2D),stream:!0,stream_options:{include_usage:!0}};if(D.temperature!==void 0)$.temperature=D.temperature;if(D.toolDefinitions&&D.toolDefinitions.length>0)$.tools=D.toolDefinitions.map(N2D),$.tool_choice="auto";let F;try{F=await GQ({baseUrl:this.baseUrl,apiKey:this.apiKey,timeoutMs:this.timeoutMs,body:$,signal:D.signal})}catch(Y){yield{type:"error",error:hz(Y)};return}let X=new Map,J=null,G;try{for await(let Y of F){if(Y.type==="done")break;let B=Y.chunk.choices[0];if(B){let H=B.delta;if(typeof H.content==="string"&&H.content.length>0)yield{type:"assistant_message_delta",delta:H.content};if(H.tool_calls)for(let U of H.tool_calls)L2D(X,U);if(B.finish_reason)J=z2D(B.finish_reason)}if(Y.chunk.usage)G={inputTokens:Y.chunk.usage.prompt_tokens,outputTokens:Y.chunk.usage.completion_tokens}}}catch(Y){yield{type:"error",error:hz(Y)};return}for(let[,Y]of Array.from(X.entries()).sort(([B],[H])=>B-H)){let B=q2D(Y);if(B)yield B}if(G)yield{type:"token_usage",usage:G};yield{type:"finish",reason:J??"stop",...G?{usage:G}:{}}}}function N2D(D){return{type:"function",function:{name:D.name,description:D.description,parameters:D.inputSchema}}}function P2D(D){let $={role:D.role,content:D.content};if(D.name)$.name=D.name;if(D.toolCallId)$.tool_call_id=D.toolCallId;if(D.toolCalls&&D.toolCalls.length>0)$.tool_calls=D.toolCalls.map((F)=>({id:F.id,type:"function",function:{name:F.name,arguments:JSON.stringify(F.arguments)}}));return $}function L2D(D,$){let F=$.index??0,X=D.get(F)??{args:[]};if($.id)X.id=$.id;if($.function?.name)X.name=$.function.name;if($.function?.arguments)X.args.push($.function.arguments);D.set(F,X)}function q2D(D){if(!D.id||!D.name)return null;let $=D.args.join(""),F={};if($.length>0)try{let J=JSON.parse($);if(J&&typeof J==="object"&&!Array.isArray(J))F=J}catch{F={_raw:$}}let X={kind:"tool",toolName:D.name,arguments:F};return{type:"tool_use",id:D.id,name:D.name,arguments:F,action:X}}function z2D(D){switch(D){case"tool_calls":case"function_call":return"tool";case"length":return"length";case"content_filter":return"error";case"stop":default:return"stop"}}function hz(D){if(D instanceof z4)return D.message;if(D instanceof Error)return D.message;return"Unknown executor error"}var vz=R(()=>{gz()});class BQ{name="mcp";client;constructor(D){this.client=new e3({url:D.url,token:D.token,clientName:"aiworker-worker",...D.timeoutMs===void 0?{}:{timeoutMs:D.timeoutMs}})}async health(){let D=new Date().toISOString();try{return await this.client.ensureSession(),{name:this.name,status:"healthy",lastChecked:D}}catch{return{name:this.name,status:"down",lastChecked:D}}}async listTools(){try{return(await this.client.listTools()).map(($)=>({name:$.name,description:$.description??"",inputSchema:$.inputSchema??{}}))}catch{return[]}}async*run(D){yield{type:"error",error:"McpExecutor.run is not implemented yet \u2014 use http executor for chat."},yield{type:"finish",reason:"error"}}}var xz=R(()=>{qU()});import yz from"process";function I4(D){let $=I2D(D);if(!D.fallbacks||D.fallbacks.length===0)return $;let F=D.fallbacks.map((X)=>({executor:I4(X.executor),onErrorKinds:X.onErrorKinds,maxRetries:X.maxRetries??1}));return new FQ($,F)}function I2D(D){let $=H2(D);switch($.engine){case"http":{let F=$.body;return new YQ({baseUrl:F.baseUrl,apiKey:F.apiKey,model:$.modelId??F.model,timeoutMs:F.timeoutMs})}case"mcp":{let F=$.body;return new BQ({url:F.url,token:F.token,...$.modelId!==void 0?{defaultModel:$.modelId}:F.defaultModel===void 0?{}:{defaultModel:F.defaultModel},...F.tools===void 0?{}:{tools:F.tools},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}case"cli":{let{body:F,cmd:X}=$,J=X?.binary??F.command,G=X?.extraArgs?[...F.args,...X.extraArgs]:F.args,Y=HQ(F.env,X?.env);return new XQ({command:J,args:G,...F.cwd===void 0?{}:{cwd:F.cwd},...Y===void 0?{}:{env:Y},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs},...F.sandbox===void 0?{}:{sandbox:F.sandbox}})}case"claude-code":{let{body:F,cmd:X}=$,J=X?.cliVersion??F.cliVersion??yz.env.CLAUDE_CLI_VERSION??lX,G=$.modelId??F.model,Y=uz(F.extraArgs,X?.extraArgs),B=HQ(F.env,X?.env);return new iX({cliVersion:J,...G===void 0?{}:{model:G},...Y===void 0?{}:{extraArgs:Y},...B===void 0?{}:{env:B},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}case"acp":{let{body:F,cmd:X}=$,J=X?.cliVersion??F.cliVersion,G=$.modelId??F.model,Y=uz(F.extraArgs,X?.extraArgs),B=HQ(F.env,X?.env),H=mU(F.agent);return new mX({agent:H,...G===void 0?{}:{model:G},...J===void 0?{}:{cliVersion:J},...Y===void 0?{}:{extraArgs:Y},...B===void 0?{}:{env:B},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}case"codex":{let{body:F,cmd:X}=$,J=X?.cliVersion??yz.env.CODEX_CLI_VERSION??aX,G=$.modelId??F.model,Y=X?.extraArgs,B=X?.env;return new oX({cliVersion:J,...G===void 0?{}:{model:G},...Y===void 0?{}:{extraArgs:Y},...B===void 0?{}:{env:B},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}case"cursor":{let{body:F,cmd:X}=$,J=$.modelId??F.model,G=X?.extraArgs,Y=X?.env;return new eX({...J===void 0?{}:{model:J},...G===void 0?{}:{extraArgs:G},...Y===void 0?{}:{env:Y},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}}}function uz(D,$){if(!D&&!$)return;return[...D??[],...$??[]]}function HQ(D,$){if(!D&&!$)return;return{...D??{},...$??{}}}var WQ=R(()=>{_8();Xz();Wz();Rz();qz();kz();vz();xz()});import{Buffer as mz}from"buffer";import{spawn as S2D}from"child_process";import{once as T2D}from"events";import J9 from"fs/promises";import Z1 from"path";function cz(D,$,F){UQ(F);let X=Z1.resolve(D),J=Z1.resolve(X,$);if(!pz(X,J))throw new FJ(`workspace subdir "${$}" escapes root`);let G=Z1.resolve(J,F);if(!pz(J,G))throw new FJ(`workspace "${F}" escapes parent`);return G}function UQ(D){if(!lz.test(D))throw new FJ(`invalid conversation id: ${D}`)}function pz(D,$){let F=Z1.relative(D,$);return F===""||!F.startsWith("..")&&!Z1.isAbsolute(F)}class QQ{root;subdir;gitOrigin;projectRoot;inflight=new Map;constructor(D){this.root=Z1.resolve(D.root),this.subdir=D.subdir??"workspaces",this.gitOrigin=D.gitOrigin,this.projectRoot=D.projectRoot===void 0?void 0:Z1.resolve(D.projectRoot)}async createWorkspace(D){if(this.projectRoot)return UQ(D),{conversationId:D,path:this.projectRoot,isGitWorktree:!1,isSharedProjectRoot:!0};let $=this.inflight.get(D);if($)return $;let F=this.provision(D).finally(()=>this.inflight.delete(D));return this.inflight.set(D,F),F}async provision(D){let $=cz(this.root,this.subdir,D);if(await $J($)){let F=await $J(Z1.join($,".git"));return{conversationId:D,path:$,isGitWorktree:F}}if(await J9.mkdir(Z1.dirname($),{recursive:!0}),this.gitOrigin)return await this.addGitWorktree(this.gitOrigin,$),{conversationId:D,path:$,isGitWorktree:!0};return await J9.mkdir($,{recursive:!0}),{conversationId:D,path:$,isGitWorktree:!1}}async disposeWorkspace(D){if(this.projectRoot){UQ(D);return}let $=cz(this.root,this.subdir,D);if(!await $J($))return;if(this.gitOrigin){if(await this.removeGitWorktree(this.gitOrigin,$))return}await J9.rm($,{recursive:!0,force:!0})}async purgeAll(){if(this.projectRoot)return;let D=Z1.resolve(this.root,this.subdir);if(!await $J(D))return;let $=await J9.readdir(D);await Promise.all($.map(async(F)=>{if(!lz.test(F))return;await this.disposeWorkspace(F).catch(()=>{return})}))}async addGitWorktree(D,$){let F=await dz(["worktree","add","--detach",$],D);if(F.code!==0)throw await J9.mkdir($,{recursive:!0}),Error(`git worktree add failed (code=${F.code}): ${F.stderr.trim()}`)}async removeGitWorktree(D,$){return(await dz(["worktree","remove","--force",$],D)).code===0}}async function $J(D){try{return await J9.stat(D),!0}catch{return!1}}async function dz(D,$){let F=S2D("git",D,{cwd:$,env:rq(),stdio:["ignore","pipe","pipe"]}),X=[],J=[];F.stdout.on("data",(Y)=>X.push(Y)),F.stderr.on("data",(Y)=>J.push(Y));let[G]=await T2D(F,"exit");return{code:G,stdout:mz.concat(X).toString("utf8"),stderr:mz.concat(J).toString("utf8")}}var lz,FJ;var iz=R(()=>{R6();lz=/^[\w-]{1,128}$/;FJ=class FJ extends Error{constructor(D){super(D);this.name="WorkspaceEscapeError"}}});function nz(D){let $=D.config.orchestrator?.decisionPipeline?.executor;if(!$)return{executor:D.taskExecutor,config:D.config.executor,reusesTaskExecutor:!0};return{executor:I4($),config:$,reusesTaskExecutor:!1}}var rz=R(()=>{WQ()});function VQ(D){let $=z0(D).body;return $.length>sz?`${$.slice(0,sz)}\u2026[truncated]`:$}function az(D){let $=[D.channel,D.accountId,D.chatId];if(D.threadId!==void 0)$.push(D.threadId);return $.map(encodeURIComponent).join(":")}async function oz(D){let $=S0(D);if(!$||$.status!=="active")return null;return b().select().from(n).where(TD(S(n.id,$.currentConversationId),S(n.status,"open"))).get()??null}async function tz(D){let $=b(),F=D.threadId?TD(S(AD.channel,D.channel),S(AD.chatId,D.chatId),S(AD.threadId,D.threadId)):TD(S(AD.channel,D.channel),S(AD.chatId,D.chatId),h7(AD.threadId));return $.select({sessionKey:AD.sessionKey}).from(AD).where(F).limit(1).get()!==void 0}async function ez(D){let $=b(),F=D.threadId?TD(S(n.channel,D.channel),S(n.chatId,D.chatId),S(n.threadId,D.threadId),S(n.status,"open")):TD(S(n.channel,D.channel),S(n.chatId,D.chatId),h7(n.threadId),S(n.status,"open"));return $.select().from(n).where(F).orderBy(RD(n.lastActiveAt)).get()??null}function b2D(){return["You classify whether a new inbound message continues the previous conversation or opens a new topic.","Consider topic continuity, referent continuity, time and channel context.",'Respond with a single JSON object: {"continue": boolean, "reason": string (<=80 chars)}',"Do not include any other text."].join(`
1730
+ `);if(X==="[DONE]")return"[DONE]";return X}var O2D=60000,z4;var fz=R(()=>{JQ();z4=class z4 extends Error{status;constructor(D,$,F){let X=F.length>500?`${F.slice(0,500)}\u2026`:F;super(`OpenAI HTTP ${D} ${$}${X?`: ${X}`:""}`);this.name="OpenAiHttpError",this.status=D}}});var gz=R(()=>{fz();JQ()});class YQ{name="openai-compatible";baseUrl;apiKey;model;timeoutMs;constructor(D){this.baseUrl=D.baseUrl.replace(/\/+$/,""),this.apiKey=D.apiKey,this.model=D.model,this.timeoutMs=D.timeoutMs}async health(){let D=new Date().toISOString();if(!this.apiKey)return{name:this.name,status:"down",lastChecked:D};let $=new AbortController,F=setTimeout(()=>$.abort(),Math.min(this.timeoutMs,5000));try{let X=await fetch(`${this.baseUrl}/v1/models`,{method:"GET",headers:{Authorization:`Bearer ${this.apiKey}`},signal:$.signal});if(clearTimeout(F),X.ok)return{name:this.name,status:"healthy",lastChecked:D};if(X.status>=500)return{name:this.name,status:"degraded",lastChecked:D};return{name:this.name,status:"down",lastChecked:D}}catch{return clearTimeout(F),{name:this.name,status:"down",lastChecked:D}}}async listTools(){return[]}run(D){return this.runIterable(D)}async*runIterable(D){if(!this.apiKey){yield{type:"error",error:"OpenAI API key is not configured"};return}let $={model:D.model??this.model,messages:D.messages.map(P2D),stream:!0,stream_options:{include_usage:!0}};if(D.temperature!==void 0)$.temperature=D.temperature;if(D.toolDefinitions&&D.toolDefinitions.length>0)$.tools=D.toolDefinitions.map(N2D),$.tool_choice="auto";let F;try{F=await GQ({baseUrl:this.baseUrl,apiKey:this.apiKey,timeoutMs:this.timeoutMs,body:$,signal:D.signal})}catch(Y){yield{type:"error",error:hz(Y)};return}let X=new Map,J=null,G;try{for await(let Y of F){if(Y.type==="done")break;let B=Y.chunk.choices[0];if(B){let H=B.delta;if(typeof H.content==="string"&&H.content.length>0)yield{type:"assistant_message_delta",delta:H.content};if(H.tool_calls)for(let U of H.tool_calls)L2D(X,U);if(B.finish_reason)J=z2D(B.finish_reason)}if(Y.chunk.usage)G={inputTokens:Y.chunk.usage.prompt_tokens,outputTokens:Y.chunk.usage.completion_tokens}}}catch(Y){yield{type:"error",error:hz(Y)};return}for(let[,Y]of Array.from(X.entries()).sort(([B],[H])=>B-H)){let B=q2D(Y);if(B)yield B}if(G)yield{type:"token_usage",usage:G};yield{type:"finish",reason:J??"stop",...G?{usage:G}:{}}}}function N2D(D){return{type:"function",function:{name:D.name,description:D.description,parameters:D.inputSchema}}}function P2D(D){let $={role:D.role,content:D.content};if(D.name)$.name=D.name;if(D.toolCallId)$.tool_call_id=D.toolCallId;if(D.toolCalls&&D.toolCalls.length>0)$.tool_calls=D.toolCalls.map((F)=>({id:F.id,type:"function",function:{name:F.name,arguments:JSON.stringify(F.arguments)}}));return $}function L2D(D,$){let F=$.index??0,X=D.get(F)??{args:[]};if($.id)X.id=$.id;if($.function?.name)X.name=$.function.name;if($.function?.arguments)X.args.push($.function.arguments);D.set(F,X)}function q2D(D){if(!D.id||!D.name)return null;let $=D.args.join(""),F={};if($.length>0)try{let J=JSON.parse($);if(J&&typeof J==="object"&&!Array.isArray(J))F=J}catch{F={_raw:$}}let X={kind:"tool",toolName:D.name,arguments:F};return{type:"tool_use",id:D.id,name:D.name,arguments:F,action:X}}function z2D(D){switch(D){case"tool_calls":case"function_call":return"tool";case"length":return"length";case"content_filter":return"error";case"stop":default:return"stop"}}function hz(D){if(D instanceof z4)return D.message;if(D instanceof Error)return D.message;return"Unknown executor error"}var vz=R(()=>{gz()});class BQ{name="mcp";client;constructor(D){this.client=new e3({url:D.url,token:D.token,clientName:"aiworker-worker",...D.timeoutMs===void 0?{}:{timeoutMs:D.timeoutMs}})}async health(){let D=new Date().toISOString();try{return await this.client.ensureSession(),{name:this.name,status:"healthy",lastChecked:D}}catch{return{name:this.name,status:"down",lastChecked:D}}}async listTools(){try{return(await this.client.listTools()).map(($)=>({name:$.name,description:$.description??"",inputSchema:$.inputSchema??{}}))}catch{return[]}}async*run(D){yield{type:"error",error:"McpExecutor.run is not implemented yet \u2014 use http executor for chat."},yield{type:"finish",reason:"error"}}}var xz=R(()=>{qU()});import yz from"process";function I4(D){let $=I2D(D);if(!D.fallbacks||D.fallbacks.length===0)return $;let F=D.fallbacks.map((X)=>({executor:I4(X.executor),onErrorKinds:X.onErrorKinds,maxRetries:X.maxRetries??1}));return new FQ($,F)}function I2D(D){let $=H2(D);switch($.engine){case"http":{let F=$.body;return new YQ({baseUrl:F.baseUrl,apiKey:F.apiKey,model:$.modelId??F.model,timeoutMs:F.timeoutMs})}case"mcp":{let F=$.body;return new BQ({url:F.url,token:F.token,...$.modelId!==void 0?{defaultModel:$.modelId}:F.defaultModel===void 0?{}:{defaultModel:F.defaultModel},...F.tools===void 0?{}:{tools:F.tools},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}case"cli":{let{body:F,cmd:X}=$,J=X?.binary??F.command,G=X?.extraArgs?[...F.args,...X.extraArgs]:F.args,Y=HQ(F.env,X?.env);return new XQ({command:J,args:G,...F.cwd===void 0?{}:{cwd:F.cwd},...Y===void 0?{}:{env:Y},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs},...F.sandbox===void 0?{}:{sandbox:F.sandbox}})}case"claude-code":{let{body:F,cmd:X}=$,J=X?.cliVersion??F.cliVersion??yz.env.CLAUDE_CLI_VERSION??lX,G=$.modelId??F.model,Y=uz(F.extraArgs,X?.extraArgs),B=HQ(F.env,X?.env);return new iX({cliVersion:J,...G===void 0?{}:{model:G},...Y===void 0?{}:{extraArgs:Y},...B===void 0?{}:{env:B},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}case"acp":{let{body:F,cmd:X}=$,J=X?.cliVersion??F.cliVersion,G=$.modelId??F.model,Y=uz(F.extraArgs,X?.extraArgs),B=HQ(F.env,X?.env),H=mU(F.agent);return new mX({agent:H,...G===void 0?{}:{model:G},...J===void 0?{}:{cliVersion:J},...Y===void 0?{}:{extraArgs:Y},...B===void 0?{}:{env:B},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}case"codex":{let{body:F,cmd:X}=$,J=X?.cliVersion??yz.env.CODEX_CLI_VERSION??aX,G=$.modelId??F.model,Y=X?.extraArgs,B=X?.env;return new oX({cliVersion:J,...G===void 0?{}:{model:G},...Y===void 0?{}:{extraArgs:Y},...B===void 0?{}:{env:B},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}case"cursor":{let{body:F,cmd:X}=$,J=$.modelId??F.model,G=X?.extraArgs,Y=X?.env;return new eX({...J===void 0?{}:{model:J},...G===void 0?{}:{extraArgs:G},...Y===void 0?{}:{env:Y},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}}}function uz(D,$){if(!D&&!$)return;return[...D??[],...$??[]]}function HQ(D,$){if(!D&&!$)return;return{...D??{},...$??{}}}var WQ=R(()=>{_8();Xz();Wz();Rz();qz();kz();vz();xz()});import{Buffer as mz}from"buffer";import{spawn as S2D}from"child_process";import{once as T2D}from"events";import J9 from"fs/promises";import Z1 from"path";function cz(D,$,F){UQ(F);let X=Z1.resolve(D),J=Z1.resolve(X,$);if(!pz(X,J))throw new FJ(`workspace subdir "${$}" escapes root`);let G=Z1.resolve(J,F);if(!pz(J,G))throw new FJ(`workspace "${F}" escapes parent`);return G}function UQ(D){if(!lz.test(D))throw new FJ(`invalid conversation id: ${D}`)}function pz(D,$){let F=Z1.relative(D,$);return F===""||!F.startsWith("..")&&!Z1.isAbsolute(F)}class QQ{root;subdir;gitOrigin;projectRoot;inflight=new Map;constructor(D){this.root=Z1.resolve(D.root),this.subdir=D.subdir??"workspaces",this.gitOrigin=D.gitOrigin,this.projectRoot=D.projectRoot===void 0?void 0:Z1.resolve(D.projectRoot)}async createWorkspace(D){if(this.projectRoot)return UQ(D),{conversationId:D,path:this.projectRoot,isGitWorktree:!1,isSharedProjectRoot:!0};let $=this.inflight.get(D);if($)return $;let F=this.provision(D).finally(()=>this.inflight.delete(D));return this.inflight.set(D,F),F}async provision(D){let $=cz(this.root,this.subdir,D);if(await $J($)){let F=await $J(Z1.join($,".git"));return{conversationId:D,path:$,isGitWorktree:F}}if(await J9.mkdir(Z1.dirname($),{recursive:!0}),this.gitOrigin)return await this.addGitWorktree(this.gitOrigin,$),{conversationId:D,path:$,isGitWorktree:!0};return await J9.mkdir($,{recursive:!0}),{conversationId:D,path:$,isGitWorktree:!1}}async disposeWorkspace(D){if(this.projectRoot){UQ(D);return}let $=cz(this.root,this.subdir,D);if(!await $J($))return;if(this.gitOrigin){if(await this.removeGitWorktree(this.gitOrigin,$))return}await J9.rm($,{recursive:!0,force:!0})}async purgeAll(){if(this.projectRoot)return;let D=Z1.resolve(this.root,this.subdir);if(!await $J(D))return;let $=await J9.readdir(D);await Promise.all($.map(async(F)=>{if(!lz.test(F))return;await this.disposeWorkspace(F).catch(()=>{return})}))}async addGitWorktree(D,$){let F=await dz(["worktree","add","--detach",$],D);if(F.code!==0)throw await J9.mkdir($,{recursive:!0}),Error(`git worktree add failed (code=${F.code}): ${F.stderr.trim()}`)}async removeGitWorktree(D,$){return(await dz(["worktree","remove","--force",$],D)).code===0}}async function $J(D){try{return await J9.stat(D),!0}catch{return!1}}async function dz(D,$){let F=S2D("git",D,{cwd:$,env:rq(),stdio:["ignore","pipe","pipe"]}),X=[],J=[];F.stdout.on("data",(Y)=>X.push(Y)),F.stderr.on("data",(Y)=>J.push(Y));let[G]=await T2D(F,"exit");return{code:G,stdout:mz.concat(X).toString("utf8"),stderr:mz.concat(J).toString("utf8")}}var lz,FJ;var iz=R(()=>{R6();lz=/^[\w-]{1,128}$/;FJ=class FJ extends Error{constructor(D){super(D);this.name="WorkspaceEscapeError"}}});function nz(D){let $=D.config.orchestrator?.decisionPipeline?.executor;if(!$)return{executor:D.taskExecutor,config:D.config.executor,reusesTaskExecutor:!0};return{executor:I4($),config:$,reusesTaskExecutor:!1}}var rz=R(()=>{WQ()});function VQ(D){let $=z0(D).body;return $.length>sz?`${$.slice(0,sz)}\u2026[truncated]`:$}function az(D){let $=[D.channel,D.accountId,D.chatId];if(D.threadId!==void 0)$.push(D.threadId);return $.map(encodeURIComponent).join(":")}async function oz(D){let $=S0(D);if(!$||$.status!=="active")return null;return b().select().from(n).where(TD(S(n.id,$.currentConversationId),S(n.status,"open"))).get()??null}async function tz(D){let $=b(),F=D.threadId?TD(S(AD.channel,D.channel),S(AD.chatId,D.chatId),S(AD.threadId,D.threadId)):TD(S(AD.channel,D.channel),S(AD.chatId,D.chatId),h7(AD.threadId));return $.select({sessionKey:AD.sessionKey}).from(AD).where(F).limit(1).get()!==void 0}async function ez(D){let $=b(),F=D.threadId?TD(S(n.channel,D.channel),S(n.chatId,D.chatId),S(n.threadId,D.threadId),S(n.status,"open")):TD(S(n.channel,D.channel),S(n.chatId,D.chatId),h7(n.threadId),S(n.status,"open"));return $.select().from(n).where(F).orderBy(OD(n.lastActiveAt)).get()??null}function b2D(){return["You classify whether a new inbound message continues the previous conversation or opens a new topic.","Consider topic continuity, referent continuity, time and channel context.",'Respond with a single JSON object: {"continue": boolean, "reason": string (<=80 chars)}',"Do not include any other text."].join(`
1731
1731
  `)}function f2D(D,$,F){let X=[];if(D)X.push(`Prior summary: ${D}`);if($.length>0){X.push("Recent messages:");for(let J of $)X.push(`- ${J.role}: ${J.content.slice(0,400)}`)}return X.push(`New incoming message: ${F}`),[{role:"system",content:b2D()},{role:"user",content:X.join(`
1732
- `)}]}async function DI(D,$,F,X,J,G,Y){let B={messages:f2D(F,X,J),...$?{model:$}:{},...G?{workspacePath:G}:{},temperature:0,tools:[]},H={...Y===void 0?{}:{engine:Y},...$===void 0?{}:{model:$},templateId:k2D,attempt:1},U="";try{for await(let V of D.run(B))if(V.type==="assistant_message_delta")U+=V.delta;else if(V.type==="error")throw Error(V.error)}catch(V){let A=String(V);_.warn(`[conversation] classifier error, defaulting to continue: ${A}`);let K=U.length>0?VQ(U):void 0;return{continue:!0,reason:"classifier-error-default-continue",source:"classifier-fallback",evaluator:"none",...H,...K===void 0?{}:{rawOutput:K},parseError:A}}let Q=null;try{Q=JSON.parse(U.trim())}catch(V){return{continue:!0,reason:"non-json-classifier-output",source:"classifier-fallback",evaluator:"heuristic",...H,rawOutput:VQ(U),parseError:String(V)}}if(Q&&typeof Q.continue==="boolean")return{continue:Q.continue,reason:String(Q.reason??""),source:"classifier-llm",evaluator:"llm",...H};return{continue:!0,reason:"malformed-response",source:"classifier-fallback",evaluator:"heuristic",...H,rawOutput:VQ(U),parseError:"classifier output missing boolean `continue` field"}}async function AQ(D,$=w2D){return b().select({role:a.role,content:a.content,richMetadata:a.richMetadata}).from(a).where(S(a.conversationId,D)).orderBy(RD(a.id)).limit($*3).all().filter((J)=>!g2D(J)).slice(0,$).reverse().map((J)=>({role:J.role,content:J.content}))}function g2D(D){if(D.role!=="system"||D.richMetadata===null)return!1;try{let $=JSON.parse(D.richMetadata);return $.kind==="compaction"||$.kind==="memory-flush"}catch{return!1}}var w2D=4,k2D="conversation-classifier-v1",sz=2048;var $I=R(()=>{MD();gD();HD();V0()});import{readFile as h2D}from"fs/promises";import v2D from"path";class _Q{deps;constructor(D){this.deps=D}async snapshot(D){let[$,F]=await Promise.all([m2D(this.deps.workerId),c2D(this.deps.workerId)]);return{builtins:x2D,mcpTools:$,skills:D.skills.map((X)=>({description:X.description,id:X.id,name:X.name,...X.tags===void 0?{}:{tags:X.tags},version:X.version})),toolsets:F}}}function XI(D){let $=new Set(D.requiredContext),F=D.registry.builtins.filter((G)=>G.name==="load_skill"?$.has("skill_load"):$.has("memory_search")).map((G)=>G.name),X=$.has("mcp_tools")?D.registry.mcpTools.map((G)=>G.name):[],J=u2D(D.registry.skills,D.intent,D.promptSkillLimit);return{availableBuiltinCount:D.registry.builtins.length,availableMcpToolCount:D.registry.mcpTools.length,availableSkillCount:D.registry.skills.length,availableToolsets:D.registry.toolsets,deniedCapabilities:[],reason:y2D(F),selectedBuiltins:F,selectedMcpTools:X,selectedSkills:J}}function y2D(D){let $=[];if(D.includes("load_skill"))$.push("brain skill bodies");if(D.includes("memory_search"))$.push("brain memory snippets");if($.length===0)return"Capability registry selection recorded; no implemented context loader was required for this turn.";return`Capability registry selected ${$.join(" and ")}; orchestrator loads implemented Project Brain context before executor dispatch.`}function u2D(D,$,F){if($==="unknown"||$==="answer")return D.slice(0,F);let X=$.replace(/_/g,"-");return[...D].sort((G,Y)=>FI(Y,X)-FI(G,X)).slice(0,F)}function FI(D,$){let F=[D.name,D.description,...D.tags??[]].join(" ").toLowerCase();if(F.includes($))return 2;return $.split("-").reduce((J,G)=>J+(F.includes(G)?1:0),0)}async function m2D(D){let $=await JI(DF(D));if(!$)return[];let F=XJ($.servers);if(!F)return[];let X=[];for(let[J,G]of Object.entries(F)){let Y=XJ(G);if(!Y)continue;let B=Array.isArray(Y.tools)?Y.tools:[];if(B.length===0){X.push({description:KQ(Y.description)??`MCP server ${J}`,name:`mcp:${J}`,server:J});continue}for(let H of B){let U=XJ(H);if(!U)continue;let Q=KQ(U.name);if(!Q)continue;X.push({description:KQ(U.description)??`MCP tool ${Q} from ${J}`,name:Q,server:J})}}return X}async function c2D(D){let $=await JI(v2D.join(X2(D),"toolsets.json"));if(!$)return[];return(Array.isArray($.defaultToolsets)?$.defaultToolsets:[]).filter((X)=>typeof X==="string"&&X.length>0)}async function JI(D){try{let $=JSON.parse(await h2D(D,"utf8"));return XJ($)}catch{return null}}function XJ(D){return D!==null&&typeof D==="object"&&!Array.isArray(D)?D:null}function KQ(D){return typeof D==="string"&&D.length>0?D:null}var x2D;var GI=R(()=>{$0();x2D=[{name:"load_skill",description:"Load the full body of a selected skill on demand."},{name:"memory_search",description:"Search long-term worker memory on demand."}]});function i2D(D){if(D.length===0)return 0;let $=0,F=0;for(let X of D)if(X.charCodeAt(0)<=127)$+=1;else F+=1;return Math.max(1,Math.ceil($/3)+F)}function j6(D){return l2D+i2D(D.content)}function CQ(D){return D.reduce(($,F)=>$+j6(F),0)}function n2D(D){return D?.contextWindowTokens!==void 0||D?.reserveTokens!==void 0||D?.keepRecentTokens!==void 0||D?.compaction?.enabled===!0||D?.compaction?.triggerTokens!==void 0}function JJ(D,$){if(!n2D(D))return null;let F=D?.contextWindowTokens??r2D($)??p2D,X=o2D(D?.reserveTokens??a2D(F),F),J=Math.max(0,Math.min(D?.keepRecentTokens??F-X,F-X));return{contextWindowTokens:F,reserveTokens:X,keepRecentTokens:J,...D?.maxHistoryMessages===void 0?{}:{maxHistoryMessages:D.maxHistoryMessages}}}function BI(D){let $=j6(D.systemMessage),F=Math.max(0,Math.min(D.budget.keepRecentTokens,D.budget.contextWindowTokens-D.budget.reserveTokens-$)),X=[],J=0;for(let Y of D.historyNewestFirst){let B=j6(Y);if(!(J+B<=F)){if(X.length===0)X.push(Y),J+=B;break}X.push(Y),J+=B}return{messages:[D.systemMessage,...X.reverse()],contextTokens:$+J,historyTokens:J}}function N6(D){try{let $=H2(D);if($.modelId!==void 0&&$.modelId.length>0)return $.modelId;let F=$.body;if(typeof F.model==="string"&&F.model.length>0)return F.model;if(typeof F.defaultModel==="string"&&F.defaultModel.length>0)return F.defaultModel;return}catch{return}}function r2D(D){try{let F=H2(D).body,X=t2D(F.contextWindowTokens);if(X!==null)return X;let J=N6(D);return J===void 0?null:s2D(J)}catch{return null}}function s2D(D){let $=D.toLowerCase();if($.includes("gemini-2.5"))return 1e6;if($.includes("claude")||$.includes("sonnet")||$.includes("opus"))return 200000;if($.includes("gpt-5")||$.includes("gpt-4.1")||$.includes("gpt-4o"))return 128000;if($.includes("deepseek"))return 64000;if($.includes("qwen"))return 32000;return null}function a2D(D){return Math.min(d2D,Math.floor(D/4))}function o2D(D,$){return Math.max(0,Math.min(D,Math.max(0,$-1)))}function t2D(D){return typeof D==="number"&&Number.isInteger(D)&&D>0?D:null}var p2D=8192,d2D=1024,YI=2000,l2D=6;var MQ=R(()=>{_8()});import{readFile as e2D}from"fs/promises";class ZQ{deps;constructor(D){this.deps=D}async buildSystemPrompt(D){let $=D.skillLimit??HI,[F,X]=await Promise.all([this.deps.brain.listSkills().catch(()=>[]),this.loadProjectPersonaDocs()]),J=F.slice(0,$),G=[`You are worker ${this.deps.workerId}.`,"Respond concisely and helpfully."];if(T4(G,"Project agent instructions",X.agent),T4(G,"Project soul / voice",X.soul),T4(G,"Project user profile",X.user),T4(G,"Project memory index",X.memory),T4(G,"Project continuity rollup",X.rollup),D.priorSummary&&D.priorSummary.trim().length>0)G.push(`Conversation summary so far: ${D.priorSummary.trim()}`);if(J.length>0){G.push("Available brain skills:");for(let Y of J)G.push(`- ${Y.name}: ${Y.description}`)}return{availableSkills:F,persona:X,promptSkillLimit:$,promptSkills:J,systemPrompt:G.join(`
1732
+ `)}]}async function DI(D,$,F,X,J,G,Y){let B={messages:f2D(F,X,J),...$?{model:$}:{},...G?{workspacePath:G}:{},temperature:0,tools:[]},H={...Y===void 0?{}:{engine:Y},...$===void 0?{}:{model:$},templateId:k2D,attempt:1},U="";try{for await(let V of D.run(B))if(V.type==="assistant_message_delta")U+=V.delta;else if(V.type==="error")throw Error(V.error)}catch(V){let A=String(V);_.warn(`[conversation] classifier error, defaulting to continue: ${A}`);let K=U.length>0?VQ(U):void 0;return{continue:!0,reason:"classifier-error-default-continue",source:"classifier-fallback",evaluator:"none",...H,...K===void 0?{}:{rawOutput:K},parseError:A}}let Q=null;try{Q=JSON.parse(U.trim())}catch(V){return{continue:!0,reason:"non-json-classifier-output",source:"classifier-fallback",evaluator:"heuristic",...H,rawOutput:VQ(U),parseError:String(V)}}if(Q&&typeof Q.continue==="boolean")return{continue:Q.continue,reason:String(Q.reason??""),source:"classifier-llm",evaluator:"llm",...H};return{continue:!0,reason:"malformed-response",source:"classifier-fallback",evaluator:"heuristic",...H,rawOutput:VQ(U),parseError:"classifier output missing boolean `continue` field"}}async function AQ(D,$=w2D){return b().select({role:a.role,content:a.content,richMetadata:a.richMetadata}).from(a).where(S(a.conversationId,D)).orderBy(OD(a.id)).limit($*3).all().filter((J)=>!g2D(J)).slice(0,$).reverse().map((J)=>({role:J.role,content:J.content}))}function g2D(D){if(D.role!=="system"||D.richMetadata===null)return!1;try{let $=JSON.parse(D.richMetadata);return $.kind==="compaction"||$.kind==="memory-flush"}catch{return!1}}var w2D=4,k2D="conversation-classifier-v1",sz=2048;var $I=R(()=>{ZD();gD();HD();V0()});import{readFile as h2D}from"fs/promises";import v2D from"path";class _Q{deps;constructor(D){this.deps=D}async snapshot(D){let[$,F]=await Promise.all([m2D(this.deps.workerId),c2D(this.deps.workerId)]);return{builtins:x2D,mcpTools:$,skills:D.skills.map((X)=>({description:X.description,id:X.id,name:X.name,...X.tags===void 0?{}:{tags:X.tags},version:X.version})),toolsets:F}}}function XI(D){let $=new Set(D.requiredContext),F=D.registry.builtins.filter((G)=>G.name==="load_skill"?$.has("skill_load"):$.has("memory_search")).map((G)=>G.name),X=$.has("mcp_tools")?D.registry.mcpTools.map((G)=>G.name):[],J=u2D(D.registry.skills,D.intent,D.promptSkillLimit);return{availableBuiltinCount:D.registry.builtins.length,availableMcpToolCount:D.registry.mcpTools.length,availableSkillCount:D.registry.skills.length,availableToolsets:D.registry.toolsets,deniedCapabilities:[],reason:y2D(F),selectedBuiltins:F,selectedMcpTools:X,selectedSkills:J}}function y2D(D){let $=[];if(D.includes("load_skill"))$.push("brain skill bodies");if(D.includes("memory_search"))$.push("brain memory snippets");if($.length===0)return"Capability registry selection recorded; no implemented context loader was required for this turn.";return`Capability registry selected ${$.join(" and ")}; orchestrator loads implemented Project Brain context before executor dispatch.`}function u2D(D,$,F){if($==="unknown"||$==="answer")return D.slice(0,F);let X=$.replace(/_/g,"-");return[...D].sort((G,Y)=>FI(Y,X)-FI(G,X)).slice(0,F)}function FI(D,$){let F=[D.name,D.description,...D.tags??[]].join(" ").toLowerCase();if(F.includes($))return 2;return $.split("-").reduce((J,G)=>J+(F.includes(G)?1:0),0)}async function m2D(D){let $=await JI(DF(D));if(!$)return[];let F=XJ($.servers);if(!F)return[];let X=[];for(let[J,G]of Object.entries(F)){let Y=XJ(G);if(!Y)continue;let B=Array.isArray(Y.tools)?Y.tools:[];if(B.length===0){X.push({description:KQ(Y.description)??`MCP server ${J}`,name:`mcp:${J}`,server:J});continue}for(let H of B){let U=XJ(H);if(!U)continue;let Q=KQ(U.name);if(!Q)continue;X.push({description:KQ(U.description)??`MCP tool ${Q} from ${J}`,name:Q,server:J})}}return X}async function c2D(D){let $=await JI(v2D.join(X2(D),"toolsets.json"));if(!$)return[];return(Array.isArray($.defaultToolsets)?$.defaultToolsets:[]).filter((X)=>typeof X==="string"&&X.length>0)}async function JI(D){try{let $=JSON.parse(await h2D(D,"utf8"));return XJ($)}catch{return null}}function XJ(D){return D!==null&&typeof D==="object"&&!Array.isArray(D)?D:null}function KQ(D){return typeof D==="string"&&D.length>0?D:null}var x2D;var GI=R(()=>{$0();x2D=[{name:"load_skill",description:"Load the full body of a selected skill on demand."},{name:"memory_search",description:"Search long-term worker memory on demand."}]});function i2D(D){if(D.length===0)return 0;let $=0,F=0;for(let X of D)if(X.charCodeAt(0)<=127)$+=1;else F+=1;return Math.max(1,Math.ceil($/3)+F)}function j6(D){return l2D+i2D(D.content)}function CQ(D){return D.reduce(($,F)=>$+j6(F),0)}function n2D(D){return D?.contextWindowTokens!==void 0||D?.reserveTokens!==void 0||D?.keepRecentTokens!==void 0||D?.compaction?.enabled===!0||D?.compaction?.triggerTokens!==void 0}function JJ(D,$){if(!n2D(D))return null;let F=D?.contextWindowTokens??r2D($)??p2D,X=o2D(D?.reserveTokens??a2D(F),F),J=Math.max(0,Math.min(D?.keepRecentTokens??F-X,F-X));return{contextWindowTokens:F,reserveTokens:X,keepRecentTokens:J,...D?.maxHistoryMessages===void 0?{}:{maxHistoryMessages:D.maxHistoryMessages}}}function BI(D){let $=j6(D.systemMessage),F=Math.max(0,Math.min(D.budget.keepRecentTokens,D.budget.contextWindowTokens-D.budget.reserveTokens-$)),X=[],J=0;for(let Y of D.historyNewestFirst){let B=j6(Y);if(!(J+B<=F)){if(X.length===0)X.push(Y),J+=B;break}X.push(Y),J+=B}return{messages:[D.systemMessage,...X.reverse()],contextTokens:$+J,historyTokens:J}}function N6(D){try{let $=H2(D);if($.modelId!==void 0&&$.modelId.length>0)return $.modelId;let F=$.body;if(typeof F.model==="string"&&F.model.length>0)return F.model;if(typeof F.defaultModel==="string"&&F.defaultModel.length>0)return F.defaultModel;return}catch{return}}function r2D(D){try{let F=H2(D).body,X=t2D(F.contextWindowTokens);if(X!==null)return X;let J=N6(D);return J===void 0?null:s2D(J)}catch{return null}}function s2D(D){let $=D.toLowerCase();if($.includes("gemini-2.5"))return 1e6;if($.includes("claude")||$.includes("sonnet")||$.includes("opus"))return 200000;if($.includes("gpt-5")||$.includes("gpt-4.1")||$.includes("gpt-4o"))return 128000;if($.includes("deepseek"))return 64000;if($.includes("qwen"))return 32000;return null}function a2D(D){return Math.min(d2D,Math.floor(D/4))}function o2D(D,$){return Math.max(0,Math.min(D,Math.max(0,$-1)))}function t2D(D){return typeof D==="number"&&Number.isInteger(D)&&D>0?D:null}var p2D=8192,d2D=1024,YI=2000,l2D=6;var MQ=R(()=>{_8()});import{readFile as e2D}from"fs/promises";class ZQ{deps;constructor(D){this.deps=D}async buildSystemPrompt(D){let $=D.skillLimit??HI,[F,X]=await Promise.all([this.deps.brain.listSkills().catch(()=>[]),this.loadProjectPersonaDocs()]),J=F.slice(0,$),G=[`You are worker ${this.deps.workerId}.`,"Respond concisely and helpfully."];if(T4(G,"Project agent instructions",X.agent),T4(G,"Project soul / voice",X.soul),T4(G,"Project user profile",X.user),T4(G,"Project memory index",X.memory),T4(G,"Project continuity rollup",X.rollup),D.priorSummary&&D.priorSummary.trim().length>0)G.push(`Conversation summary so far: ${D.priorSummary.trim()}`);if(J.length>0){G.push("Available brain skills:");for(let Y of J)G.push(`- ${Y.name}: ${Y.description}`)}return{availableSkills:F,persona:X,promptSkillLimit:$,promptSkills:J,systemPrompt:G.join(`
1733
1733
  `)}}async loadSkillBodies(D){let $=X1D(D.skillIds).slice(0,HI);if($.length===0)return{errors:[],loaded:[]};if(!this.deps.brain.loadSkill)return{errors:$.map((J)=>({id:J,reason:"brain-provider-load-skill-unavailable"})),loaded:[]};let F=[],X=[];for(let J of $)try{let G=await this.deps.brain.loadSkill(J);if(G===null){X.push({id:J,reason:"skill-not-found"});continue}F.push($1D(G))}catch(G){X.push({id:J,reason:G instanceof Error?G.message:String(G)})}return{errors:X,loaded:F}}async searchMemories(D){let $=D.query.trim();if($.length===0)return{errors:[],loaded:[]};try{let F=await this.deps.brain.searchMemories($);return{errors:[],loaded:J1D(F).slice(0,D1D).map(F1D).filter((X)=>X.content.length>0)}}catch(F){return{errors:[{query:$,reason:F instanceof Error?F.message:String(F)}],loaded:[]}}}async loadProjectPersonaDocs(){let D=this.deps.workerId,[$,F,X,J,G]=await Promise.all([S4(P7(D)),S4(L7(D)),S4(q7(D)),S4(N7(D)),S4(e$(D))]);return{agent:$,memory:J,rollup:G,soul:F,user:X}}}function RQ(D,$){if($.length===0)return D;let F=[D,"Loaded brain memories:","These are Project Brain memory snippets loaded for this turn. They are not executor-native tools or plugins."];for(let X of $){let J=X.score===null?"":`, score=${X.score}`;if(F.push(`### ${X.title} (${X.id}${J}, updated=${X.updatedAt})`),F.push(X.content),X.truncated)F.push("... truncated ...")}return F.join(`
1734
1734
  `)}function OQ(D,$){if($.length===0)return D;let F=[D,"Loaded brain skill bodies:","These are Project Brain instructions loaded for this turn. They are not executor-native tools or plugins."];for(let X of $)if(F.push(`### ${X.name} (${X.id}, v${X.version})`),F.push(X.body),X.truncated)F.push("... truncated ...");return F.join(`
1735
1735
  `)}class EQ{deps;constructor(D){this.deps=D}async compose(D){let $={role:"system",content:D.systemPrompt},F=JJ(this.deps.config.orchestrator,this.deps.config.executor);if(!F){let J=await this.deps.loadHistoryWindow(D.conversationId);return[$,...J]}let X=await this.deps.loadBudgetHistory(D.conversationId,F.maxHistoryMessages);return BI({systemMessage:$,historyNewestFirst:X,budget:F}).messages}}async function S4(D){try{let $=d8(await e2D(D,"utf8"));if($.length===0)return null;return $.length<=WI?$:`${$.slice(0,WI)}
1736
1736
  ... truncated ...`}catch{return null}}function $1D(D){let $=D.body.trim(),F=$.length>QI;return{body:F?$.slice(0,QI):$,description:D.description,id:D.id,name:D.name,truncated:F,version:D.version}}function F1D(D){let $=D.content.trim(),F=$.length>UI,X=typeof D.metadata.title==="string"&&D.metadata.title.trim().length>0?D.metadata.title.trim():D.id;return{content:F?$.slice(0,UI):$,id:D.id,score:typeof D.score==="number"&&Number.isFinite(D.score)?D.score:null,title:X,truncated:F,updatedAt:D.updatedAt}}function X1D(D){return Array.from(new Set(D.filter(($)=>$.trim().length>0)))}function J1D(D){let $=new Set,F=[];for(let X of D){if($.has(X.id))continue;$.add(X.id),F.push(X)}return F}function T4(D,$,F){if(F&&F.trim().length>0)D.push(`${$}:
1737
- ${F.trim()}`)}var HI=10,WI=6000,D1D=5,UI=3000,QI=6000;var VI=R(()=>{$0();MD();MQ()});function G1D(D={}){let $=D.enabled!==!1,F=D.threshold===void 0?8:Math.max(1,Math.floor(D.threshold)),X=0,J=!1;return{recordToolCall(){if(!$||J)return!1;if(X+=1,X>=F)return J=!0,!0;return!1},recordTextDelta(){X=0},recordToolProgress(){X=0},count(){return X},triggered(){return J}}}function AI(D){return G1D({enabled:D?.enabled??!0,threshold:D?.threshold??8})}function GJ(D,$){return{...jQ(D,$.source,"observe_only"),...$.attempt===void 0?{}:{attempt:$.attempt},confidence:$.confidence,evaluator:$.evaluator,intent:$.intent,...$.parseError===void 0?{}:{parseError:$.parseError},qualityProfile:$.qualityProfile,...$.rawOutput===void 0?{}:{rawOutput:$.rawOutput},reason:$.reason,requiredContext:$.requiredContext,risk:$.risk,sessionAction:$.sessionAction,...$.templateId===void 0?{}:{templateId:$.templateId}}}function KI(D){return{...jQ(D,D.source??"capability-registry",D.mode??"observe_only"),...D.availableBuiltinCount===void 0?{}:{availableBuiltinCount:D.availableBuiltinCount},...D.availableMcpToolCount===void 0?{}:{availableMcpToolCount:D.availableMcpToolCount},availableSkillCount:D.availableSkillCount,...D.availableToolsets===void 0?{}:{availableToolsets:D.availableToolsets},deniedCapabilities:D.deniedCapabilities,...D.loadedMemoryCount===void 0?{}:{loadedMemoryCount:D.loadedMemoryCount},...D.loadedMemoryIds===void 0?{}:{loadedMemoryIds:D.loadedMemoryIds},...D.loadedSkillCount===void 0?{}:{loadedSkillCount:D.loadedSkillCount},...D.loadedSkillIds===void 0?{}:{loadedSkillIds:D.loadedSkillIds},...D.memorySearchErrors===void 0?{}:{memorySearchErrors:D.memorySearchErrors},reason:D.reason,selectedBuiltins:D.selectedBuiltins,selectedMcpTools:D.selectedMcpTools,selectedSkills:D.selectedSkills,...D.skillLoadErrors===void 0?{}:{skillLoadErrors:D.skillLoadErrors}}}function _I(D,$,F={}){return{...jQ(D,"quality-gate",F.mode??"observe_only"),...$}}function CI(D,$){if(D==="retry"&&$==="repair")return"enforced";if(D==="block"&&$==="block")return"enforced";return"observe_only"}function jQ(D,$="s1-default",F="observe_only"){return{schemaVersion:2,mode:F,source:$,channel:D.channel,conversationId:D.conversationId,engine:D.engine,...D.gatewayConversationId===void 0?{}:{gatewayConversationId:D.gatewayConversationId},...D.model===void 0?{}:{model:D.model},sessionKey:D.sessionKey,...D.taskId===void 0?{}:{taskId:D.taskId}}}function Y1D(D){let $=z0(D).body;return $.length>MI?`${$.slice(0,MI)}\u2026[truncated]`:$}function LQ(D,$){let F=$.envelopeText.toLowerCase(),X=H1D(F),J=U1D(F,X),G=EI(F,X),Y=Q1D(F,X,J);return GJ(D,{confidence:X==="answer"?0.55:0.7,evaluator:"heuristic",intent:X,qualityProfile:Y,reason:`${$.sessionReason}; heuristic intent=${X}`,requiredContext:G,risk:J,sessionAction:$.sessionAction,source:"intent-heuristic",templateId:PQ})}async function OI(D){let $=await ZI(D,RI(D.classification),1);if($.kind==="ok")return $.decision;let F=[...RI(D.classification),{role:"user",content:["Previous output was not valid JSON. Output the JSON object only,","no markdown, no surrounding prose, no code fence."].join(`
1737
+ ${F.trim()}`)}var HI=10,WI=6000,D1D=5,UI=3000,QI=6000;var VI=R(()=>{$0();ZD();MQ()});function G1D(D={}){let $=D.enabled!==!1,F=D.threshold===void 0?8:Math.max(1,Math.floor(D.threshold)),X=0,J=!1;return{recordToolCall(){if(!$||J)return!1;if(X+=1,X>=F)return J=!0,!0;return!1},recordTextDelta(){X=0},recordToolProgress(){X=0},count(){return X},triggered(){return J}}}function AI(D){return G1D({enabled:D?.enabled??!0,threshold:D?.threshold??8})}function GJ(D,$){return{...jQ(D,$.source,"observe_only"),...$.attempt===void 0?{}:{attempt:$.attempt},confidence:$.confidence,evaluator:$.evaluator,intent:$.intent,...$.parseError===void 0?{}:{parseError:$.parseError},qualityProfile:$.qualityProfile,...$.rawOutput===void 0?{}:{rawOutput:$.rawOutput},reason:$.reason,requiredContext:$.requiredContext,risk:$.risk,sessionAction:$.sessionAction,...$.templateId===void 0?{}:{templateId:$.templateId}}}function KI(D){return{...jQ(D,D.source??"capability-registry",D.mode??"observe_only"),...D.availableBuiltinCount===void 0?{}:{availableBuiltinCount:D.availableBuiltinCount},...D.availableMcpToolCount===void 0?{}:{availableMcpToolCount:D.availableMcpToolCount},availableSkillCount:D.availableSkillCount,...D.availableToolsets===void 0?{}:{availableToolsets:D.availableToolsets},deniedCapabilities:D.deniedCapabilities,...D.loadedMemoryCount===void 0?{}:{loadedMemoryCount:D.loadedMemoryCount},...D.loadedMemoryIds===void 0?{}:{loadedMemoryIds:D.loadedMemoryIds},...D.loadedSkillCount===void 0?{}:{loadedSkillCount:D.loadedSkillCount},...D.loadedSkillIds===void 0?{}:{loadedSkillIds:D.loadedSkillIds},...D.memorySearchErrors===void 0?{}:{memorySearchErrors:D.memorySearchErrors},reason:D.reason,selectedBuiltins:D.selectedBuiltins,selectedMcpTools:D.selectedMcpTools,selectedSkills:D.selectedSkills,...D.skillLoadErrors===void 0?{}:{skillLoadErrors:D.skillLoadErrors}}}function _I(D,$,F={}){return{...jQ(D,"quality-gate",F.mode??"observe_only"),...$}}function CI(D,$){if(D==="retry"&&$==="repair")return"enforced";if(D==="block"&&$==="block")return"enforced";return"observe_only"}function jQ(D,$="s1-default",F="observe_only"){return{schemaVersion:2,mode:F,source:$,channel:D.channel,conversationId:D.conversationId,engine:D.engine,...D.gatewayConversationId===void 0?{}:{gatewayConversationId:D.gatewayConversationId},...D.model===void 0?{}:{model:D.model},sessionKey:D.sessionKey,...D.taskId===void 0?{}:{taskId:D.taskId}}}function Y1D(D){let $=z0(D).body;return $.length>MI?`${$.slice(0,MI)}\u2026[truncated]`:$}function LQ(D,$){let F=$.envelopeText.toLowerCase(),X=H1D(F),J=U1D(F,X),G=EI(F,X),Y=Q1D(F,X,J);return GJ(D,{confidence:X==="answer"?0.55:0.7,evaluator:"heuristic",intent:X,qualityProfile:Y,reason:`${$.sessionReason}; heuristic intent=${X}`,requiredContext:G,risk:J,sessionAction:$.sessionAction,source:"intent-heuristic",templateId:PQ})}async function OI(D){let $=await ZI(D,RI(D.classification),1);if($.kind==="ok")return $.decision;let F=[...RI(D.classification),{role:"user",content:["Previous output was not valid JSON. Output the JSON object only,","no markdown, no surrounding prose, no code fence."].join(`
1738
1738
  `)}],X=await ZI(D,F,2);if(X.kind==="ok")return X.decision;let J=LQ(D.context,D.classification),G=X.kind==="error"?X:$,Y=G.error,B=G.rawOutput.length>0?Y1D(G.rawOutput):void 0;return GJ(D.context,{attempt:G.attempt,confidence:Math.min(J.confidence,0.4),evaluator:"heuristic",intent:J.intent,parseError:Y,qualityProfile:J.qualityProfile,...B===void 0?{}:{rawOutput:B},reason:`llm-retry-exhausted: ${Y.slice(0,120)}`,requiredContext:J.requiredContext,risk:J.risk,sessionAction:J.sessionAction,source:"intent-fallback",templateId:PQ})}async function ZI(D,$,F){let X="";try{for await(let G of D.executor.run({messages:$,...D.model?{model:D.model}:{},...D.workspacePath?{workspacePath:D.workspacePath}:{},signal:D.signal,temperature:0,tools:[]}))if(D.notifyActivity(),G.type==="assistant_message_delta")X+=G.delta;else if(G.type==="error")throw Error(G.error);return{kind:"ok",decision:B1D(D.context,D.classification,JSON.parse(X.trim()),F)}}catch(J){return{kind:"error",error:String(J),rawOutput:X,attempt:F}}}function RI(D){let $=D.recentMessages.slice(-8).map((F)=>`- ${F.role}: ${F.content.slice(0,400)}`).join(`
1739
1739
  `);return[{role:"system",content:["Classify the current AIWorker inbound turn for routing observations.","Return only strict JSON with these fields:",'{"intent":"answer|code_work|planning|research|config_admin|memory_update|skill_request|unknown","risk":"low|medium|high","requiredContext":["recent_history|memory_search|skill_load|mcp_tools|workspace"],"qualityProfile":"default|code_review|planning|high_stakes","confidence":0..1,"reason":"short"}',"Do not include markdown or any other text."].join(`
1740
1740
  `)},{role:"user",content:[`Session action: ${D.sessionAction}`,`Session reason: ${D.sessionReason}`,`Prior summary: ${D.priorSummary?.trim()||"(none)"}`,"Recent messages:",$||"(none)",`Incoming: ${D.envelopeText}`].join(`
1741
- `)}]}function B1D(D,$,F,X){let J=A1D(F);if(!J)throw Error("intent classifier returned non-object JSON");let G=NQ(J.intent,["answer","code_work","planning","research","config_admin","memory_update","skill_request","unknown"])??"unknown",Y=NQ(J.risk,["low","medium","high"])??"low",B=NQ(J.qualityProfile,["default","code_review","planning","high_stakes"])??"default",H=V1D(J.requiredContext),U=typeof J.confidence==="number"&&Number.isFinite(J.confidence)?Math.max(0,Math.min(1,J.confidence)):0,Q=typeof J.reason==="string"&&J.reason.length>0?J.reason.slice(0,240):"llm intent classifier";return GJ(D,{attempt:X,confidence:U,evaluator:"llm",intent:G,qualityProfile:B,reason:Q,requiredContext:H.length>0?H:EI($.envelopeText.toLowerCase(),G),risk:Y,sessionAction:$.sessionAction,source:"intent-llm",templateId:PQ})}function H1D(D){if(/remember|\u8BB0\u4F4F|\u8BB0\u5FC6|memory/i.test(D))return"memory_update";if(/skill|\u6280\u80FD|\u80FD\u529B\u5305|capability/i.test(D))return"skill_request";if(/config|\u914D\u7F6E|\u521D\u59CB\u5316|init|mcp|soul|\.aiworker/i.test(D))return"config_admin";if(/review|\u5BA1\u67E5|code review|cr\b/i.test(D))return"code_work";if(/fix|bug|test|typecheck|lint|commit|\u4EE3\u7801|\u4FEE\u590D|\u5B9E\u73B0|\u6D4B\u8BD5|\u63D0\u4EA4|\u5F00\u53D1|\u91CD\u6784/i.test(D))return"code_work";if(/plan|proposal|roadmap|\u65B9\u6848|\u8BA1\u5212|\u89C4\u5212|\u62C6\u89E3|\u8BBE\u8BA1/i.test(D))return"planning";if(/research|search|lookup|\u8C03\u7814|\u641C\u7D22|\u67E5\u627E|\u67E5\u4E00\u4E0B|\u8D44\u6599/i.test(D))return"research";return D.trim().length===0?"unknown":"answer"}function U1D(D,$){if(W1D.some((F)=>F.test(D)))return"high";if($==="code_work"||$==="config_admin")return"medium";return"low"}function EI(D,$){let F=new Set(["recent_history"]);if($==="code_work"||$==="config_admin")F.add("workspace");if($==="research"||$==="memory_update"||/memory|\u8BB0\u5FC6/i.test(D))F.add("memory_search");if($==="skill_request"||$==="code_work")F.add("skill_load");if($==="config_admin"||/mcp/i.test(D))F.add("mcp_tools");return Array.from(F)}function Q1D(D,$,F){if(F==="high")return"high_stakes";if(/review|\u5BA1\u67E5|\u4EE3\u7801\u8BC4\u5BA1|code review/i.test(D))return"code_review";if($==="planning")return"planning";return"default"}function V1D(D){if(!Array.isArray(D))return[];let $=new Set(["recent_history","memory_search","skill_load","mcp_tools","workspace"]);return D.filter((F)=>typeof F==="string"&&$.has(F))}function A1D(D){return D!==null&&typeof D==="object"&&!Array.isArray(D)?D:null}function NQ(D,$){return typeof D==="string"&&$.includes(D)?D:null}var PQ="intent-classifier-v1",MI=2048,W1D;var jI=R(()=>{MD();W1D=[/prod(?:uction)?|deploy|delete|reset|secret|token|key|\u751F\u4EA7|\u90E8\u7F72|\u5220\u9664|\u91CD\u7F6E|\u5BC6\u94A5|\u4EE4\u724C/i,/force[- ]?push|force[- ]?kill|--force\b|reset --hard|drop\s+(?:table|database|index)|truncate/i,/\u843D\u8D26\s*\u76F4\u63A5|\u4EE3\u6263\s*\u4E2A\u7A0E|\u8DF3\u8FC7\s*(?:\u5BA1\u6279|\u5BA1\u6838|dry[- ]?run|review|\u786E\u8BA4)|\u4E0D\s*(?:\u5BA1\u6838|review|\u786E\u8BA4|\u901A\u77E5)|\u4E0D\s*(?:\u505A\s*)?A\/?B[\s-]*test/i,/\u7ACB\u5373\u4E0A\u7EBF|\u5F3A\u5236\s*(?:\u4E0A\u7EBF|\u53D1\u5E03|\u6267\u884C)|\u76F4\u63A5(?:\u843D\u8D26|\u6267\u884C|\u4E0A\u7EBF)|\u4E0D\u8981\s*(?:\u786E\u8BA4|\u5BA1\u6279)/]});function NI(D,$){if(!$)return"auto";for(let F of $.rules)if(K1D(F.pattern,D))return F.action;return $.default}function K1D(D,$){if(D.length===0)return!1;if(D==="*")return!0;if(!D.includes("*"))return D===$;return new RegExp(`^${D.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*")}$`).test($)}function YJ(D,$){return _I(D.context,$,{mode:CI(D.mode,$.action)})}async function TI(D){if((D.evaluator??"heuristic")==="llm"){let F=D.budgetMs??_1D,X=Date.now(),J=()=>Math.max(0,F-(Date.now()-X)),G=await LI(D,qI(D),J());if(G.kind==="ok")return G.payload;if(G.kind==="timeout")return PI(D,F,G.elapsedMs);let Y=[...qI(D),{role:"user",content:["Previous output was not valid JSON. Output the JSON object only,","no markdown, no surrounding prose, no code fence."].join(`
1741
+ `)}]}function B1D(D,$,F,X){let J=A1D(F);if(!J)throw Error("intent classifier returned non-object JSON");let G=NQ(J.intent,["answer","code_work","planning","research","config_admin","memory_update","skill_request","unknown"])??"unknown",Y=NQ(J.risk,["low","medium","high"])??"low",B=NQ(J.qualityProfile,["default","code_review","planning","high_stakes"])??"default",H=V1D(J.requiredContext),U=typeof J.confidence==="number"&&Number.isFinite(J.confidence)?Math.max(0,Math.min(1,J.confidence)):0,Q=typeof J.reason==="string"&&J.reason.length>0?J.reason.slice(0,240):"llm intent classifier";return GJ(D,{attempt:X,confidence:U,evaluator:"llm",intent:G,qualityProfile:B,reason:Q,requiredContext:H.length>0?H:EI($.envelopeText.toLowerCase(),G),risk:Y,sessionAction:$.sessionAction,source:"intent-llm",templateId:PQ})}function H1D(D){if(/remember|\u8BB0\u4F4F|\u8BB0\u5FC6|memory/i.test(D))return"memory_update";if(/skill|\u6280\u80FD|\u80FD\u529B\u5305|capability/i.test(D))return"skill_request";if(/config|\u914D\u7F6E|\u521D\u59CB\u5316|init|mcp|soul|\.aiworker/i.test(D))return"config_admin";if(/review|\u5BA1\u67E5|code review|cr\b/i.test(D))return"code_work";if(/fix|bug|test|typecheck|lint|commit|\u4EE3\u7801|\u4FEE\u590D|\u5B9E\u73B0|\u6D4B\u8BD5|\u63D0\u4EA4|\u5F00\u53D1|\u91CD\u6784/i.test(D))return"code_work";if(/plan|proposal|roadmap|\u65B9\u6848|\u8BA1\u5212|\u89C4\u5212|\u62C6\u89E3|\u8BBE\u8BA1/i.test(D))return"planning";if(/research|search|lookup|\u8C03\u7814|\u641C\u7D22|\u67E5\u627E|\u67E5\u4E00\u4E0B|\u8D44\u6599/i.test(D))return"research";return D.trim().length===0?"unknown":"answer"}function U1D(D,$){if(W1D.some((F)=>F.test(D)))return"high";if($==="code_work"||$==="config_admin")return"medium";return"low"}function EI(D,$){let F=new Set(["recent_history"]);if($==="code_work"||$==="config_admin")F.add("workspace");if($==="research"||$==="memory_update"||/memory|\u8BB0\u5FC6/i.test(D))F.add("memory_search");if($==="skill_request"||$==="code_work")F.add("skill_load");if($==="config_admin"||/mcp/i.test(D))F.add("mcp_tools");return Array.from(F)}function Q1D(D,$,F){if(F==="high")return"high_stakes";if(/review|\u5BA1\u67E5|\u4EE3\u7801\u8BC4\u5BA1|code review/i.test(D))return"code_review";if($==="planning")return"planning";return"default"}function V1D(D){if(!Array.isArray(D))return[];let $=new Set(["recent_history","memory_search","skill_load","mcp_tools","workspace"]);return D.filter((F)=>typeof F==="string"&&$.has(F))}function A1D(D){return D!==null&&typeof D==="object"&&!Array.isArray(D)?D:null}function NQ(D,$){return typeof D==="string"&&$.includes(D)?D:null}var PQ="intent-classifier-v1",MI=2048,W1D;var jI=R(()=>{ZD();W1D=[/prod(?:uction)?|deploy|delete|reset|secret|token|key|\u751F\u4EA7|\u90E8\u7F72|\u5220\u9664|\u91CD\u7F6E|\u5BC6\u94A5|\u4EE4\u724C/i,/force[- ]?push|force[- ]?kill|--force\b|reset --hard|drop\s+(?:table|database|index)|truncate/i,/\u843D\u8D26\s*\u76F4\u63A5|\u4EE3\u6263\s*\u4E2A\u7A0E|\u8DF3\u8FC7\s*(?:\u5BA1\u6279|\u5BA1\u6838|dry[- ]?run|review|\u786E\u8BA4)|\u4E0D\s*(?:\u5BA1\u6838|review|\u786E\u8BA4|\u901A\u77E5)|\u4E0D\s*(?:\u505A\s*)?A\/?B[\s-]*test/i,/\u7ACB\u5373\u4E0A\u7EBF|\u5F3A\u5236\s*(?:\u4E0A\u7EBF|\u53D1\u5E03|\u6267\u884C)|\u76F4\u63A5(?:\u843D\u8D26|\u6267\u884C|\u4E0A\u7EBF)|\u4E0D\u8981\s*(?:\u786E\u8BA4|\u5BA1\u6279)/]});function NI(D,$){if(!$)return"auto";for(let F of $.rules)if(K1D(F.pattern,D))return F.action;return $.default}function K1D(D,$){if(D.length===0)return!1;if(D==="*")return!0;if(!D.includes("*"))return D===$;return new RegExp(`^${D.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*")}$`).test($)}function YJ(D,$){return _I(D.context,$,{mode:CI(D.mode,$.action)})}async function TI(D){if((D.evaluator??"heuristic")==="llm"){let F=D.budgetMs??_1D,X=Date.now(),J=()=>Math.max(0,F-(Date.now()-X)),G=await LI(D,qI(D),J());if(G.kind==="ok")return G.payload;if(G.kind==="timeout")return PI(D,F,G.elapsedMs);let Y=[...qI(D),{role:"user",content:["Previous output was not valid JSON. Output the JSON object only,","no markdown, no surrounding prose, no code fence."].join(`
1742
1742
  `)}],B=await LI(D,Y,J());if(B.kind==="ok")return B.payload;if(B.kind==="timeout")return PI(D,F,B.elapsedMs);let H=qQ({...D,evaluator:"heuristic"}),U=B.error??G.error??"unknown error";return YJ(D,{action:H.action,dimensions:H.dimensions,evaluator:"heuristic",finalAnswerLength:H.finalAnswerLength,missing:H.missing,gateMode:H.gateMode,reason:`llm-retry-exhausted: ${U.slice(0,120)}`,score:H.score,status:H.status,suggestions:H.suggestions,threshold:H.threshold})}return qQ({...D,evaluator:"heuristic"})}function PI(D,$,F){let X=qQ({...D,evaluator:"heuristic"});return YJ(D,{action:X.action,dimensions:X.dimensions,evaluator:"heuristic",finalAnswerLength:X.finalAnswerLength,missing:X.missing,gateMode:X.gateMode,reason:`llm-budget-exhausted:${$}ms (consumed ${F}ms)`,score:X.score,status:X.status,suggestions:X.suggestions,threshold:X.threshold})}async function LI(D,$,F){if(F<=0)return{kind:"timeout",elapsedMs:0};let X=Date.now(),J,G=new Promise((Y)=>{J=setTimeout(()=>Y({kind:"timeout",elapsedMs:Date.now()-X}),F)});try{return await Promise.race([C1D(D,$),G])}finally{if(J!==void 0)clearTimeout(J)}}function wI(D){return[{role:"system",content:["Repair the assistant answer so it satisfies the quality gate.","Return only the improved answer. Do not mention the gate or scoring."].join(`
1743
1743
  `)},{role:"user",content:["Original user request:",D.requestText,"","Previous answer:",D.assistantText,"","Quality gate missing items:",D.gate.missing.length>0?D.gate.missing.map(($)=>`- ${$}`).join(`
1744
1744
  `):"(none)","","Suggestions:",D.gate.suggestions.length>0?D.gate.suggestions.map(($)=>`- ${$}`).join(`
@@ -1746,7 +1746,7 @@ ${F.trim()}`)}var HI=10,WI=6000,D1D=5,UI=3000,QI=6000;var VI=R(()=>{$0();MD();MQ
1746
1746
  `)}]}function qQ(D){let $=D.threshold??zQ(D.intentDecision.qualityProfile),F=D.assistantText.trim(),X=[],J=[],G=8;if(F.length===0)G=0,X.push("assistant answer is empty"),J.push("produce a concrete answer to the user request");else if(F.length<12)G=4,X.push("assistant answer is too short to verify completeness"),J.push("expand the answer with the key result and next step");if(D.intentDecision.risk==="high"&&F.length<80)G=Math.min(G,6),X.push("high-risk answer lacks enough detail"),J.push("include concrete verification, risk, and approval boundaries");return YJ(D,{action:kI(G,$,D.mode??"observe"),dimensions:{completeness:G,evidence:D.intentDecision.risk==="high"?Math.min(G,6):G,format:F.length>0?8:0,relevance:F.length>0?8:0,safety:D.intentDecision.risk==="high"?Math.min(G,6):8},evaluator:"heuristic",finalAnswerLength:D.assistantText.length,missing:X,gateMode:D.mode??"observe",reason:G>=$?"heuristic quality gate passed":"heuristic quality gate found gaps",score:G,status:G>=$?"passed":"failed",suggestions:J,threshold:$})}async function C1D(D,$){let F="";try{for await(let B of D.executor.run({messages:$,...D.model?{model:D.model}:{},...D.workspacePath?{workspacePath:D.workspacePath}:{},signal:D.signal,temperature:0,tools:[]}))if(D.notifyActivity(),B.type==="assistant_message_delta")F+=B.delta;else if(B.type==="error")throw Error(B.error);let X=JSON.parse(F.trim()),J=zI(X);if(!J)throw Error("quality gate returned non-object JSON");let G=II(J.threshold)??D.threshold??zQ(D.intentDecision.qualityProfile),Y=Math.max(0,Math.min(10,II(J.score)??0));return{kind:"ok",payload:YJ(D,{action:M1D(J.action,["pass","repair","warn","block"])??kI(Y,G,D.mode??"observe"),dimensions:zI(J.dimensions)??{},evaluator:"llm",finalAnswerLength:D.assistantText.length,missing:SI(J.missing),gateMode:D.mode??"observe",reason:typeof J.reason==="string"?J.reason.slice(0,240):"llm quality gate",score:Y,status:Y>=G?"passed":"failed",suggestions:SI(J.suggestions),threshold:G})}}catch(X){return{kind:"error",error:String(X)}}}function qI(D){return[{role:"system",content:["Review an AIWorker assistant answer.","Return only strict JSON:",'{"score":0..10,"threshold":number,"dimensions":{"relevance":0..10,"completeness":0..10,"evidence":0..10,"safety":0..10,"format":0..10},"missing":["..."],"suggestions":["..."],"action":"pass|repair|warn|block","reason":"short"}'].join(`
1747
1747
  `)},{role:"user",content:[`Quality profile: ${D.intentDecision.qualityProfile}`,`Risk: ${D.intentDecision.risk}`,`Mode: ${D.mode??"observe"}`,`Threshold: ${D.threshold??zQ(D.intentDecision.qualityProfile)}`,"","User request:",D.requestText,"","Assistant answer:",D.assistantText].join(`
1748
1748
  `)}]}function zQ(D){if(D==="high_stakes")return 8;if(D==="code_review"||D==="planning")return 7;return 5}function kI(D,$,F){if(D>=$)return"pass";if(F==="block")return"block";if(F==="retry")return"repair";if(F==="warn")return"warn";return"warn"}function zI(D){return D!==null&&typeof D==="object"&&!Array.isArray(D)?D:null}function II(D){return typeof D==="number"&&Number.isFinite(D)?D:null}function SI(D){return Array.isArray(D)?D.filter(($)=>typeof $==="string"):[]}function M1D(D,$){return typeof D==="string"&&$.includes(D)?D:null}var _1D=30000;var bI=()=>{};import{createHash as Z1D}from"crypto";class wQ{deps;capabilityRegistry;contextManager;constructor(D){this.deps=D;this.capabilityRegistry=new _Q({workerId:D.workerId}),this.contextManager=new ZQ({brain:D.brain,workerId:D.workerId})}controlExecutor(){return this.deps.controlExecutor??this.deps.executor}controlExecutorConfig(){return this.deps.controlExecutorConfig??this.deps.config.executor}controlExecutorReusesTaskExecutor(){return this.deps.controlExecutorReusesTaskExecutor??!0}controlWorkspacePath(D){if(!this.controlExecutorReusesTaskExecutor())return;return D?.path}async ingest(D){let $=IQ(D),F;try{this.deps.bus.emit("channel.inbound",{channel:D.channel,chatId:D.chatId,text:D.text});let X=await this.resolveConversation(D),{conversation:J,sessionKey:G}=X;F=J.id;let Y=await this.provisionWorkspace(J.id),B=this.persistUserMessage(J.id,D,G),H=yI(D);this.deps.bus.emit("conversation.message",{conversationId:J.id,...H===void 0?{}:{gatewayConversationId:H},messageId:B.id,role:"user"});let U=new AbortController,Q=null;await this.deps.processes.run({group:J.id,engine:this.deps.config.executor.engine,class:"interactive",meta:{conversationId:J.id,channel:D.channel},onSpawn:async()=>{return this.markTaskRunning($,J.id),{cancel:async()=>U.abort(),onActivity:(V)=>{return Q=V,()=>{if(Q===V)Q=null}}}},job:()=>this.run(J,D,Y,U.signal,()=>Q?.(),X)})}catch(X){throw this.markTaskFailed($,F,E1D(X),j1D(X)),X}}async run(D,$,F,X,J,G){let{sessionKey:Y}=G,B=b(),H=(await this.maybeCompactConversation({conversation:D,sessionKey:Y,workspace:F,signal:X,notifyActivity:J})).conversation,U=N6(this.deps.config.executor),Q=IQ($),V=yI($),A=this.deps.config.executor.engine,K={channel:$.channel,conversationId:H.id,engine:A,...V===void 0?{}:{gatewayConversationId:V},...U===void 0?{}:{model:U},sessionKey:Y,...Q===void 0?{}:{taskId:Q}},M=this.loadPromptTranscriptRowsNewestFirst(H.id,void 0,12).reverse(),[C,Z]=await Promise.all([this.classifyIntentDecision({decisionContext:K,envelope:$,model:U,notifyActivity:J,recentMessages:M.map((aD)=>({role:aD.role,content:aD.content})),resolved:G,signal:X,workspace:F}),this.contextManager.buildSystemPrompt({priorSummary:H.summary??null})]);this.deps.bus.emit("orchestrator.intent_decision",C),GX(C);let O=await this.capabilityRegistry.snapshot({skills:Z.availableSkills}),j=XI({intent:C.intent,promptSkillLimit:Z.promptSkillLimit,registry:O,requiredContext:C.requiredContext}),P=j.selectedBuiltins.includes("load_skill")?await this.contextManager.loadSkillBodies({skillIds:j.selectedSkills.map((aD)=>aD.id)}):{errors:[],loaded:[]},T=j.selectedBuiltins.includes("memory_search")?await this.contextManager.searchMemories({query:$.text}):{errors:[],loaded:[]},h=KI({...K,...j,loadedMemoryCount:T.loaded.length,loadedMemoryIds:T.loaded.map((aD)=>aD.id),loadedSkillCount:P.loaded.length,loadedSkillIds:P.loaded.map((aD)=>aD.id),memorySearchErrors:T.errors,mode:P.loaded.length>0||T.loaded.length>0?"enforced":"observe_only",skillLoadErrors:P.errors});this.deps.bus.emit("orchestrator.capability_decision",h);let q=RQ(OQ(Z.systemPrompt,P.loaded),T.loaded),N=await this.buildRunContext(H.id,q);j3(Y,{contextTokens:CQ(N)});let w=this.countAdmissionProposals(),i=this.buildAgentRunInput({messages:N,model:U,workspace:F,signal:X,sessionKey:Y,engine:A}),I=await this.collectAssistantText(i,H.id,Q,J,Y,V);if(!I.ok&&I.staleBindingCleared===!0&&i.engineBinding!==void 0&&I.text.length===0)i=this.buildAgentRunInput({messages:N,model:U,workspace:F,signal:X,sessionKey:Y,engine:A}),I=await this.collectAssistantText(i,H.id,Q,J,Y,V);if(!I.ok&&this.isContextOverflowError(I.error)){let aD=await this.maybeCompactConversation({conversation:H,sessionKey:Y,workspace:F,signal:X,notifyActivity:J,force:!0});if(aD.compacted){if(H=aD.conversation,q=OQ((await this.contextManager.buildSystemPrompt({priorSummary:H.summary??null})).systemPrompt,P.loaded),q=RQ(q,T.loaded),N=await this.buildRunContext(H.id,q),j3(Y,{contextTokens:CQ(N)}),i=this.buildAgentRunInput({messages:N,model:U,workspace:F,signal:X,sessionKey:Y,engine:A}),I=await this.collectAssistantText(i,H.id,Q,J,Y,V),!I.ok&&I.staleBindingCleared===!0&&i.engineBinding!==void 0&&I.text.length===0)i=this.buildAgentRunInput({messages:N,model:U,workspace:F,signal:X,sessionKey:Y,engine:A}),I=await this.collectAssistantText(i,H.id,Q,J,Y,V)}}if(!I.ok){let aD=I.error??"executor error";_.warn(`[orchestrator] executor error: ${aD}`),this.markTaskFailed(Q,H.id,aD,X.aborted),this.deps.bus.emit("orchestrator.error",{conversationId:H.id,...V===void 0?{}:{gatewayConversationId:V},...Q===void 0?{}:{taskId:Q},error:aD});return}let x=I.text;this.detectAdmissionBypass({admissionCountBefore:w,assistantText:x,conversationId:H.id,engine:A,gatewayConversationId:V,sessionKey:Y,taskId:Q});let y=this.deps.config.orchestrator?.decisionPipeline?.qualityGate,XD=await TI({assistantText:x,capabilityDecision:h,context:{...K,conversationId:H.id},evaluator:y?.evaluator??"heuristic",executor:this.controlExecutor(),intentDecision:C,mode:y?.mode??"observe",model:N6(this.controlExecutorConfig()),notifyActivity:J,requestText:$.text,signal:X,threshold:y?.threshold,workspacePath:this.controlWorkspacePath(F),...y?.budgetMs===void 0?{}:{budgetMs:y.budgetMs}});if(this.deps.bus.emit("orchestrator.quality_gate",XD),YX(XD),XD.action==="repair"&&y?.mode==="retry"){let aD=await this.runSuppressedExecutor({messages:wI({assistantText:x,gate:XD,requestText:$.text}),workspace:F,signal:X,notifyActivity:J}).catch((Lw)=>`Quality repair failed: ${String(Lw)}`);if(this.deps.bus.emit("orchestrator.repair_attempted",{conversationId:H.id,...V===void 0?{}:{gatewayConversationId:V},...Q===void 0?{}:{taskId:Q},originalLength:x.length,repairedLength:aD.length,status:aD.startsWith("Quality repair failed:")?"failed":"succeeded"}),!aD.startsWith("Quality repair failed:")&&aD.trim().length>0)x=aD.trim()}else if(XD.action==="block"&&y?.mode==="block")x="The response was blocked by the worker quality gate.";else if(XD.action==="warn"&&y?.mode==="warn")x=[x,"",`Quality gate warning: ${XD.reason}`].join(`
1749
- `);let kD=new Date().toISOString(),j9=B.insert(a).values({conversationId:H.id,role:"assistant",content:x,createdAt:kD}).returning({id:a.id}).all();B.update(n).set({lastActiveAt:kD}).where(S(n.id,H.id)).run(),j3(Y,{at:kD});let F5=j9[0]?.id;this.markTaskSucceeded(Q,H.id,{conversationId:H.id,assistantTextLength:x.length,...F5===void 0?{}:{assistantMessageId:F5}}),this.deps.bus.emit("orchestrator.finished",{conversationId:H.id,...V===void 0?{}:{gatewayConversationId:V},...Q===void 0?{}:{taskId:Q}}),await this.deliver($.channel,H,x)}async collectAssistantText(D,$,F,X,J,G){let Y="",B=!1,H=AI(this.deps.config.orchestrator?.deadLoop);try{for await(let U of this.deps.executor.run(D))if(X(),U.type==="assistant_message_delta")Y+=U.delta,H.recordTextDelta(),this.deps.bus.emit("orchestrator.text",{conversationId:$,...G===void 0?{}:{gatewayConversationId:G},...F===void 0?{}:{taskId:F},delta:U.delta});else if(U.type==="tool_use"){if(this.deps.bus.emit("orchestrator.tool_call",{conversationId:$,...G===void 0?{}:{gatewayConversationId:G},...F===void 0?{}:{taskId:F},call:{id:U.id,name:U.name,arguments:U.arguments}}),O1D(U.status))H.recordToolProgress();else if(H.recordToolCall()){let Q=`dead-loop-suspected:tool_call=${H.count()},no_text_delta`;return this.deps.bus.emit("orchestrator.aborted",{conversationId:$,...G===void 0?{}:{gatewayConversationId:G},...F===void 0?{}:{taskId:F},reason:Q}),_.warn(`[orchestrator] aborted run: ${Q}`),{ok:!1,text:Y,error:Q,staleBindingCleared:B}}}else if(U.type==="tool_result")H.recordToolProgress(),this.deps.bus.emit("orchestrator.tool_result",{conversationId:$,...G===void 0?{}:{gatewayConversationId:G},...F===void 0?{}:{taskId:F},result:{id:U.id,name:U.name,isError:U.isError===!0}});else if(U.type==="engine_binding"){if(U.engine===this.deps.config.executor.engine){if(JW(J,U.engine,U.binding),U.binding===null)B=!0}}else if(U.type==="error")return{ok:!1,text:Y,error:U.error,staleBindingCleared:B};return{ok:!0,text:Y}}catch(U){return _.error(`[orchestrator] run failed: ${String(U)}`),{ok:!1,text:Y,error:String(U),staleBindingCleared:B}}}countAdmissionProposals(){try{return new eD().count()}catch{return-1}}detectAdmissionBypass(D){if(D.admissionCountBefore<0)return;if(this.countAdmissionProposals()>D.admissionCountBefore)return;let F=R1D(D.assistantText);if(F===null)return;let X=new Date().toISOString();FN({at:X,conversationId:D.conversationId,engine:D.engine,claimExcerpt:F.claimExcerpt,reason:F.reason,sessionKey:D.sessionKey}),this.deps.bus.emit("brain.governance.bypass_suspected",{at:X,conversationId:D.conversationId,engine:D.engine,...D.gatewayConversationId===void 0?{}:{gatewayConversationId:D.gatewayConversationId},claimExcerpt:F.claimExcerpt,heuristic:!0,...D.taskId===void 0?{}:{taskId:D.taskId},reason:F.reason})}async classifyIntentDecision(D){let $={envelopeText:D.envelope.text,priorSummary:D.resolved.conversation.summary??null,recentMessages:D.recentMessages,sessionAction:D.resolved.sessionAction,sessionReason:D.resolved.sessionReason};if((this.deps.config.orchestrator?.decisionPipeline?.intentClassifier?.evaluator??"heuristic")==="llm")return OI({classification:$,context:D.decisionContext,executor:this.controlExecutor(),model:N6(this.controlExecutorConfig()),notifyActivity:D.notifyActivity,signal:D.signal,workspacePath:this.controlWorkspacePath(D.workspace)});return LQ(D.decisionContext,$)}buildAgentRunInput(D){let $=this.loadEngineBinding(D.sessionKey,D.engine);return{messages:D.messages,...D.model?{model:D.model}:{},...D.workspace?{workspacePath:D.workspace.path}:{},signal:D.signal,...$===void 0?{}:{engineBinding:$}}}loadEngineBinding(D,$){let F=S0(D)?.engineBindings[$];return k1D(F)?F:void 0}async deliver(D,$,F){let X=this.deps.config.channels.find((G)=>G.channel===D&&G.enabled);if(!X)return;let J=B6(D);try{await J.send(X,{channel:D,chatId:$.chatId,...$.threadId===void 0?{}:{threadId:$.threadId},text:F})}catch(G){_.warn(`[orchestrator] deliver to ${D} failed: ${String(G)}`)}}async resolveConversation(D){let $=az(D),F=await oz($),J=(F?!0:await tz(D))?null:await ez(D),G=F??J;if(!G){let V=this.createConversation(D);return this.upsertSession($,D,V.id),{conversation:V,sessionAction:"new_topic",sessionReason:"no-existing-conversation",sessionKey:$}}if(J)this.upsertSession($,D,G.id);if(b1D(D)){this.closeConversation(G);let V=this.createConversation(D);return this.rotateSession($,D,V.id,f1D(D)),{conversation:V,sessionAction:"reset_requested",sessionReason:"gateway-reset",sessionKey:$}}if(P1D(D,G.id))return{conversation:w4(G),sessionAction:"continue",sessionReason:"worker-admin-selected-conversation",sessionKey:$};if(F&&this.deps.config.executor.engine==="codex")return{conversation:w4(G),sessionAction:"continue",sessionReason:"codex-chat-id-continuity",sessionKey:$};let Y=await this.provisionWorkspace(G.id),B=await AQ(G.id),H=N6(this.controlExecutorConfig()),U=await DI(this.controlExecutor(),H,G.summary??null,B,D.text,this.controlWorkspacePath(Y),this.deps.config.executor.engine);if(this.deps.bus.emit("conversation.classifier",{conversationId:G.id,decision:U}),BX(U),U.continue)return{conversation:w4(G),sessionAction:"continue",sessionReason:U.reason,sessionKey:$};this.closeConversation(G);let Q=this.createConversation(D);return this.rotateSession($,D,Q.id,"classifier:new-topic"),{conversation:Q,sessionAction:"new_topic",sessionReason:U.reason||"classifier:new-topic",sessionKey:$}}closeConversation(D){let $=b(),F=new Date().toISOString();$.update(n).set({status:"closed",closedAt:F}).where(S(n.id,D.id)).run();let X=D.id;this.deps.processes.run({group:X,engine:this.deps.config.executor.engine,class:"background",meta:{conversationId:X,kind:"workspace.dispose"},onSpawn:async()=>({cancel:async()=>{},onActivity:()=>()=>{}}),job:()=>this.disposeWorkspace(X)}).catch((J)=>_.warn(`[orchestrator] dispose workspace job failed: ${String(J)}`))}async provisionWorkspace(D){try{return await this.deps.workspaces.createWorkspace(D)}catch($){return _.warn(`[orchestrator] workspace create failed for ${D}: ${String($)}`),null}}async disposeWorkspace(D){try{await this.deps.workspaces.disposeWorkspace(D)}catch($){_.warn(`[orchestrator] workspace dispose failed for ${D}: ${String($)}`)}}createConversation(D){let $=b(),F=crypto.randomUUID(),X=new Date().toISOString(),J=IQ(D),G=this.persistedAgentTaskId(J);$.insert(n).values({id:F,...G===void 0?{}:{taskId:G},channel:D.channel,chatId:D.chatId,...D.threadId===void 0?{}:{threadId:D.threadId},status:"open",startedAt:X,lastActiveAt:X}).run();let Y=$.select().from(n).where(S(n.id,F)).get();return this.deps.bus.emit("conversation.created",{conversationId:F,channel:D.channel,chatId:D.chatId,...J===void 0?{}:{taskId:J}}),w4(Y)}persistedAgentTaskId(D){if(D===void 0)return;return b().select({id:B0.id}).from(B0).where(S(B0.id,D)).get()?.id}markTaskRunning(D,$){if(D===void 0)return;b().update(B0).set({status:"running",conversationId:$,finishedAt:null,result:null,error:null}).where(S(B0.id,D)).run()}markTaskSucceeded(D,$,F){if(D===void 0)return;b().update(B0).set({status:"succeeded",conversationId:$,finishedAt:new Date().toISOString(),result:F,error:null}).where(S(B0.id,D)).run()}markTaskFailed(D,$,F,X=!1){if(D===void 0)return;let J=X?"cancelled":"failed";b().update(B0).set({status:J,...$===void 0?{}:{conversationId:$},finishedAt:new Date().toISOString(),result:null,error:N1D(F)}).where(S(B0.id,D)).run()}upsertSession(D,$,F){$W({sessionKey:D,currentConversationId:F,channel:$.channel,chatId:$.chatId,...$.threadId===void 0?{}:{threadId:$.threadId},accountId:$.accountId})}rotateSession(D,$,F,X){if(!FW({sessionKey:D,currentConversationId:F,resetReason:X}))this.upsertSession(D,$,F)}persistUserMessage(D,$,F){let X=b(),J=new Date().toISOString(),G=$.richMetadata?JSON.stringify($.richMetadata):null,Y=X.insert(a).values({conversationId:D,role:"user",content:$.text,...G===null?{}:{richMetadata:G},createdAt:J}).returning({id:a.id}).all();return X.update(n).set({lastActiveAt:J}).where(S(n.id,D)).run(),j3(F,{at:J}),{id:Y[0]?.id??-1}}async maybeCompactConversation(D){let $=this.deps.config.orchestrator?.compaction;if($?.enabled!==!0)return{conversation:D.conversation,compacted:!1};let F=JJ(this.deps.config.orchestrator,this.deps.config.executor);if(!F)return{conversation:D.conversation,compacted:!1};let X=this.loadLatestCompactionCheckpoint(D.conversation.id),J=this.loadPromptTranscriptRows(D.conversation.id,X?.compactedThroughMessageId);if(J.length<=1)return{conversation:D.conversation,compacted:!1};let G=(await this.contextManager.buildSystemPrompt({priorSummary:D.conversation.summary??null})).systemPrompt,Y=j6({role:"system",content:G}),B=Y+J.reduce((j,P)=>j+j6(BJ(P)),0),H=$.triggerTokens??Math.max(0,F.contextWindowTokens-F.reserveTokens);if(!D.force&&B<=H)return{conversation:D.conversation,compacted:!1};let U=Math.min(F.keepRecentTokens,Math.max(0,H-Y)),{candidateRows:Q}=L1D(J,U);if(Q.length===0)return{conversation:D.conversation,compacted:!1};let V=Q[0].id,A=Q[Q.length-1].id,K=await this.runPreCompactionMemoryFlush({conversationId:D.conversation.id,previousSummary:D.conversation.summary??null,rows:Q,compaction:$,workspace:D.workspace,signal:D.signal,notifyActivity:D.notifyActivity,fromId:V,throughId:A}),M;try{M=await this.generateCompactionSummary({previousSummary:D.conversation.summary??null,rows:Q,compaction:$,workspace:D.workspace,signal:D.signal,notifyActivity:D.notifyActivity})}catch(j){return _.warn(`[orchestrator] compaction summary failed: ${String(j)}`),{conversation:D.conversation,compacted:!1}}let C=new Date().toISOString(),Z=b();Z.insert(a).values({conversationId:D.conversation.id,role:"system",content:M,richMetadata:JSON.stringify({kind:"compaction",version:fI,compactedFromMessageId:V,compactedThroughMessageId:A,sourceMessageCount:Q.length,previousCompactionMessageId:X?.messageId??null,memoryFlush:K.attempted?{status:K.status,at:K.at,...K.proposalId===void 0?{}:{proposalId:K.proposalId},...K.error===void 0?{}:{error:K.error}}:{status:"disabled"}}),createdAt:C}).run(),Z.update(n).set({summary:M,lastActiveAt:C}).where(S(n.id,D.conversation.id)).run(),XW(D.sessionKey,{at:C,...K.attempted&&K.at!==void 0?{memoryFlushAt:K.at}:{}});let O=Z.select().from(n).where(S(n.id,D.conversation.id)).get();return{conversation:O?w4(O):{...D.conversation,summary:M,lastActiveAt:C},compacted:!0}}async runPreCompactionMemoryFlush(D){if(D.compaction.memoryFlush?.enabled!==!0)return{attempted:!1};let $=new Date().toISOString(),F={kind:"memory-flush",version:fI,compactedFromMessageId:D.fromId,compactedThroughMessageId:D.throughId};try{let J=(await this.runSuppressedExecutor({messages:S1D(D.previousSummary,D.rows,D.compaction),workspace:D.workspace,signal:D.signal,notifyActivity:D.notifyActivity})).trim();if(J.length===0||/^none\.?$/i.test(J))return this.persistAuditMessage(D.conversationId,"No durable memory changes requested by pre-compaction flush.",{...F,status:"empty"},$),{attempted:!0,at:$,status:"empty"};let G=this.proposePreCompactionMemory({at:$,content:J,conversationId:D.conversationId,fromId:D.fromId,throughId:D.throughId});return this.persistAuditMessage(D.conversationId,`Pending Brain admission proposal created: ${G.id}`,{...F,proposalId:G.id,status:"proposed"},$),{attempted:!0,at:$,proposalId:G.id,status:"proposed"}}catch(X){if(X.code==="duplicate-id"){let G=vI(D.conversationId,D.throughId);return this.persistAuditMessage(D.conversationId,`Pending Brain admission proposal already exists: ${G}`,{...F,proposalId:G,status:"already-proposed"},$),{attempted:!0,at:$,proposalId:G,status:"already-proposed"}}let J=String(X);return _.warn(`[orchestrator] pre-compaction memory flush failed: ${J}`),this.persistAuditMessage(D.conversationId,J,{...F,status:"failed",error:J},$),{attempted:!0,at:$,status:"failed",error:J}}}proposePreCompactionMemory(D){let $=vI(D.conversationId,D.throughId),F=$,X=o6.parse({body:D.content,indexEntry:`- [Pre-compaction memory ${D.throughId}](${F}.md) - Proposed by AIWorker compaction admission.`,topic:F});return new eD().propose({confidence:0.6,evidence:[{at:D.at,kind:"conversation",ref:D.conversationId,summary:"Pre-compaction memory flush source conversation."},{at:D.at,kind:"message",ref:`${D.conversationId}:${D.fromId}-${D.throughId}`,summary:"Transcript range compacted before this memory proposal."}],id:$,kind:"memory-add",payload:X,risk:"medium",rollback:`Reject ${$} before apply, or remove memories/${F}.md and its MEMORY.md index entry after apply.`,soulId:"general-assistant",summary:`Pre-compaction memory proposal for conversation ${D.conversationId}.`,target:`memories/${F}`},D.at)}async generateCompactionSummary(D){let F=(await this.runSuppressedExecutor({messages:I1D(D.previousSummary,D.rows,D.compaction),workspace:D.workspace,signal:D.signal,notifyActivity:D.notifyActivity})).trim();if(F.length>0)return F;return T1D(D.previousSummary,D.rows)}async runSuppressedExecutor(D){let $=N6(this.controlExecutorConfig()),F=this.controlWorkspacePath(D.workspace),X="";for await(let J of this.controlExecutor().run({messages:D.messages,...$?{model:$}:{},...F?{workspacePath:F}:{},signal:D.signal,temperature:0,tools:[]}))if(D.notifyActivity(),J.type==="assistant_message_delta")X+=J.delta;else if(J.type==="error")throw Error(J.error);return X}persistAuditMessage(D,$,F,X){b().insert(a).values({conversationId:D,role:"system",content:$,richMetadata:JSON.stringify(F),createdAt:X}).run()}loadLatestCompactionCheckpoint(D){let F=b().select({id:a.id,role:a.role,richMetadata:a.richMetadata}).from(a).where(TD(S(a.conversationId,D),S(a.role,"system"))).orderBy(RD(a.id)).all();for(let X of F){let J=mI(X);if(J?.kind!=="compaction")continue;let G=w1D(J.compactedThroughMessageId);if(G!==null)return{messageId:X.id,compactedThroughMessageId:G}}return null}loadPromptTranscriptRows(D,$){let F=$===void 0?S(a.conversationId,D):TD(S(a.conversationId,D),g7(a.id,$));return b().select({id:a.id,role:a.role,content:a.content,toolCalls:a.toolCalls,toolCallId:a.toolCallId,richMetadata:a.richMetadata}).from(a).where(F).orderBy(A1(a.id)).all().filter((J)=>!xI(J))}loadPromptTranscriptRowsNewestFirst(D,$,F){let X=$===void 0?S(a.conversationId,D):TD(S(a.conversationId,D),g7(a.id,$));return b().select({id:a.id,role:a.role,content:a.content,toolCalls:a.toolCalls,toolCallId:a.toolCallId,richMetadata:a.richMetadata}).from(a).where(X).orderBy(RD(a.id)).limit(F*3).all().filter((G)=>!xI(G)).slice(0,F)}isContextOverflowError(D){if(D===void 0)return!1;return/context|token|too large|maximum length|maximum prompt|prompt is too long/i.test(D)}async buildRunContext(D,$){return new EQ({config:this.deps.config,loadBudgetHistory:(F,X)=>this.loadBudgetHistory(F,X),loadHistoryWindow:(F)=>this.loadHistoryWindow(F)}).compose({conversationId:D,systemPrompt:$})}async loadHistoryWindow(D){let $=this.deps.config.orchestrator?.maxHistoryMessages??g$,F=this.loadLatestCompactionCheckpoint(D);if(!F)return(await AQ(D,$)).map((J)=>({role:J.role,content:J.content}));return this.loadPromptTranscriptRowsNewestFirst(D,F.compactedThroughMessageId,$).reverse().map(BJ)}async loadBudgetHistory(D,$){let F=this.loadLatestCompactionCheckpoint(D);return this.loadPromptTranscriptRowsNewestFirst(D,F?.compactedThroughMessageId,$??YI).map(BJ)}async runTool(D){let $=NI(D.toolName,this.deps.config.toolPolicy);if($==="auto")return{decision:"allow",policy:"auto"};if($==="deny"){let Y=`tool ${D.toolName} blocked by policy`;if(D.conversationId!==void 0)this.persistAssistantMessage(D.conversationId,Y);return this.deps.bus.emit("approval.denied",{taskId:D.taskId,toolCallId:D.toolCallId,toolName:D.toolName,reason:"policy"}),{decision:"deny",policy:"deny",syntheticAssistantMessage:Y}}let F=D.timeoutMs??PU,X=Date.now()+F;this.deps.bus.emit("approval.requested",{workerId:this.deps.workerId,taskId:D.taskId,toolCallId:D.toolCallId,toolName:D.toolName,params:D.params,expiresAt:X});let J;try{J=await this.deps.approvals.wait({taskId:D.taskId,toolCallId:D.toolCallId,toolName:D.toolName,params:D.params,timeoutMs:F})}catch{J="deny"}if(J==="allow")return{decision:"allow",policy:"ask"};let G=`tool ${D.toolName} blocked by policy`;if(D.conversationId!==void 0)this.persistAssistantMessage(D.conversationId,G);return{decision:"deny",policy:"ask",syntheticAssistantMessage:G}}persistAssistantMessage(D,$){let F=b(),X=new Date().toISOString();F.insert(a).values({conversationId:D,role:"assistant",content:$,createdAt:X}).run(),F.update(n).set({lastActiveAt:X}).where(S(n.id,D)).run()}async submitTask(D){let $=b(),F=crypto.randomUUID(),X=new Date().toISOString();$.insert(B0).values({id:F,prompt:D,status:"queued",createdAt:X}).run();let J={workerId:this.deps.workerId,channel:"web",accountId:"sys:task",chatId:`task:${F}`,text:D,receivedAt:X,raw:{taskId:F}};return this.ingest(J).catch((G)=>_.error(`[orchestrator] submitTask ingest failed: ${String(G)}`)),{id:F}}async continueConversation(D,$){let F=b(),X=F.select().from(n).where(TD(S(n.id,D),S(n.status,"open"))).get();if(!X)throw ND.notFound("conversation not found","not-found");let J=F.select().from(AD).where(TD(S(AD.currentConversationId,X.id),S(AD.status,"active"))).orderBy(RD(AD.lastInteractionAt)).get();if(!J||J.accountId===null)throw ND.notFound("active conversation session not found","not-found");let G=crypto.randomUUID(),Y=new Date().toISOString();F.insert(B0).values({id:G,prompt:$,status:"queued",createdAt:Y}).run();let B={taskId:G,source:"worker-admin",conversationId:X.id,[uI]:X.id},H={workerId:this.deps.workerId,channel:J.channel,accountId:J.accountId,chatId:J.chatId,...J.threadId===null?{}:{threadId:J.threadId},text:$,receivedAt:Y,raw:B};return this.ingest(H).catch((U)=>_.error(`[orchestrator] continueConversation ingest failed: ${String(U)}`)),{id:G}}}function R1D(D){let $=hI(D,[/(?:admission\s+proposal|proposal)[\s\S]{0,120}(?:submitted|created|queued|filed|opened|approved|accepted|applied|persisted|saved|recorded)/i,/(?:submitted|created|queued|filed|opened|approved|accepted|applied|persisted|saved|recorded)[\s\S]{0,120}(?:admission\s+proposal|proposal)/i,/(?:admission|proposal|\u63D0\u6848|\u7533\u8BF7|\u5BA1\u6279)[\s\S]{0,120}(?:\u5DF2\u63D0\u4EA4|\u5DF2\u521B\u5EFA|\u5DF2\u52A0\u5165|\u5DF2\u843D\u76D8|\u5DF2\u6301\u4E45\u5316|\u5DF2\u8BB0\u5F55|\u5DF2\u91C7\u7EB3|\u5DF2\u6279\u51C6|\u5DF2\u5E94\u7528)/i,/(?:\u5DF2\u63D0\u4EA4|\u5DF2\u521B\u5EFA|\u5DF2\u52A0\u5165|\u5DF2\u843D\u76D8|\u5DF2\u6301\u4E45\u5316|\u5DF2\u8BB0\u5F55|\u5DF2\u91C7\u7EB3|\u5DF2\u6279\u51C6|\u5DF2\u5E94\u7528)[\s\S]{0,120}(?:admission|proposal|\u63D0\u6848|\u7533\u8BF7|\u5BA1\u6279)/i]);if($!==null)return{claimExcerpt:$,reason:"assistant-claimed-admission-without-db-delta"};let F=hI(D,[/(?:\u957F\u671F\u8BB0\u5FC6|brain memory|project brain|canonical brain|\u8BB0\u5FC6)[\s\S]{0,120}(?:\u5DF2\u5199\u5165|\u5DF2\u4FDD\u5B58|\u5DF2\u843D\u76D8|\u5DF2\u6301\u4E45\u5316|\u5DF2\u8BB0\u5F55|remembered|saved|persisted)/i,/(?:\u5DF2\u5199\u5165|\u5DF2\u4FDD\u5B58|\u5DF2\u843D\u76D8|\u5DF2\u6301\u4E45\u5316|\u5DF2\u8BB0\u5F55|remembered|saved|persisted)[\s\S]{0,120}(?:\u957F\u671F\u8BB0\u5FC6|brain memory|project brain|canonical brain|\u8BB0\u5FC6)/i]);if(F!==null)return{claimExcerpt:F,reason:"assistant-claimed-memory-without-admission-delta"};return null}function hI(D,$){for(let F of $){let X=F.exec(D);if(!X)continue;let J=X[0]?.replace(/\s+/g," ").trim()??"";if(J.length===0)continue;let G=z0(J).body;return G.length<=180?G:`${G.slice(0,180)}...`}return null}function O1D(D){return D==="success"||D==="failed"||D==="denied"}function IQ(D){if(!D.raw||typeof D.raw!=="object"||Array.isArray(D.raw))return;let $=D.raw.taskId;return typeof $==="string"&&$.length>0?$:void 0}function E1D(D){if(D instanceof Error&&D.message.length>0)return D.message;return String(D)}function j1D(D){return D instanceof Error&&D.message==="cancelled"}function N1D(D){let $=D.replace(/\b([\w.-]*(?:api[_-]?key|token|secret|password|authorization)[\w.-]*)\b(\s*[:=]\s*)(?:"[^"]*"|'[^']*'|[^\s,;]+)/gi,"$1$2[redacted]").replace(/\bBearer\s+[^\s,;]+/gi,"Bearer [redacted]").replace(/\s+/g," ").trim();if($.length<=gI)return $;return`${$.slice(0,gI-3)}...`}function P1D(D,$){if(!D.raw||typeof D.raw!=="object"||Array.isArray(D.raw))return!1;return D.raw[uI]===$}function BJ(D){return{role:D.role,content:D.content,...D.toolCalls===null?{}:{toolCalls:D.toolCalls},...D.toolCallId===null?{}:{toolCallId:D.toolCallId}}}function L1D(D,$){let F=[],X=0;for(let Y=D.length-1;Y>=0;Y-=1){let B=D[Y],H=j6(BJ(B));if(F.length>0&&X+H>$)break;F.push(B),X+=H}let J=q1D(D,F.reverse()),G=J[0]?.id;if(G===void 0)return{candidateRows:D,recentRows:[]};return{candidateRows:D.filter((Y)=>Y.id<G),recentRows:J}}function q1D(D,$){let F=$[0]?.id;if(F===void 0)return $;let X=D.findIndex((J)=>J.id===F);if(X<0)return $;while(X>0){let J=z1D(D,X);if(J===null||J>=X)break;X=J}return D.slice(X)}function z1D(D,$){let F=new Set;for(let X=$;X<D.length;X+=1){let J=D[X];for(let G of J.toolCalls??[])F.add(G.id);if(J.role!=="tool"||J.toolCallId===null||F.has(J.toolCallId))continue;for(let G=$-1;G>=0;G-=1)if(D[G].toolCalls?.some((B)=>B.id===J.toolCallId)===!0)return G}return null}function I1D(D,$,F){return[{role:"system",content:["You compact an AIWorker conversation transcript for future prompt context.","Return a concise durable summary only.","Merge the previous durable summary with the new transcript rows.","Preserve user preferences, decisions, open tasks, constraints, named entities, and tool outcomes.","Do not invent facts. Do not mention that this is a summary unless needed for clarity."].join(`
1749
+ `);let kD=new Date().toISOString(),j9=B.insert(a).values({conversationId:H.id,role:"assistant",content:x,createdAt:kD}).returning({id:a.id}).all();B.update(n).set({lastActiveAt:kD}).where(S(n.id,H.id)).run(),j3(Y,{at:kD});let F5=j9[0]?.id;this.markTaskSucceeded(Q,H.id,{conversationId:H.id,assistantTextLength:x.length,...F5===void 0?{}:{assistantMessageId:F5}}),this.deps.bus.emit("orchestrator.finished",{conversationId:H.id,...V===void 0?{}:{gatewayConversationId:V},...Q===void 0?{}:{taskId:Q}}),await this.deliver($.channel,H,x)}async collectAssistantText(D,$,F,X,J,G){let Y="",B=!1,H=AI(this.deps.config.orchestrator?.deadLoop);try{for await(let U of this.deps.executor.run(D))if(X(),U.type==="assistant_message_delta")Y+=U.delta,H.recordTextDelta(),this.deps.bus.emit("orchestrator.text",{conversationId:$,...G===void 0?{}:{gatewayConversationId:G},...F===void 0?{}:{taskId:F},delta:U.delta});else if(U.type==="tool_use"){if(this.deps.bus.emit("orchestrator.tool_call",{conversationId:$,...G===void 0?{}:{gatewayConversationId:G},...F===void 0?{}:{taskId:F},call:{id:U.id,name:U.name,arguments:U.arguments}}),O1D(U.status))H.recordToolProgress();else if(H.recordToolCall()){let Q=`dead-loop-suspected:tool_call=${H.count()},no_text_delta`;return this.deps.bus.emit("orchestrator.aborted",{conversationId:$,...G===void 0?{}:{gatewayConversationId:G},...F===void 0?{}:{taskId:F},reason:Q}),_.warn(`[orchestrator] aborted run: ${Q}`),{ok:!1,text:Y,error:Q,staleBindingCleared:B}}}else if(U.type==="tool_result")H.recordToolProgress(),this.deps.bus.emit("orchestrator.tool_result",{conversationId:$,...G===void 0?{}:{gatewayConversationId:G},...F===void 0?{}:{taskId:F},result:{id:U.id,name:U.name,isError:U.isError===!0}});else if(U.type==="engine_binding"){if(U.engine===this.deps.config.executor.engine){if(JW(J,U.engine,U.binding),U.binding===null)B=!0}}else if(U.type==="error")return{ok:!1,text:Y,error:U.error,staleBindingCleared:B};return{ok:!0,text:Y}}catch(U){return _.error(`[orchestrator] run failed: ${String(U)}`),{ok:!1,text:Y,error:String(U),staleBindingCleared:B}}}countAdmissionProposals(){try{return new eD().count()}catch{return-1}}detectAdmissionBypass(D){if(D.admissionCountBefore<0)return;if(this.countAdmissionProposals()>D.admissionCountBefore)return;let F=R1D(D.assistantText);if(F===null)return;let X=new Date().toISOString();FN({at:X,conversationId:D.conversationId,engine:D.engine,claimExcerpt:F.claimExcerpt,reason:F.reason,sessionKey:D.sessionKey}),this.deps.bus.emit("brain.governance.bypass_suspected",{at:X,conversationId:D.conversationId,engine:D.engine,...D.gatewayConversationId===void 0?{}:{gatewayConversationId:D.gatewayConversationId},claimExcerpt:F.claimExcerpt,heuristic:!0,...D.taskId===void 0?{}:{taskId:D.taskId},reason:F.reason})}async classifyIntentDecision(D){let $={envelopeText:D.envelope.text,priorSummary:D.resolved.conversation.summary??null,recentMessages:D.recentMessages,sessionAction:D.resolved.sessionAction,sessionReason:D.resolved.sessionReason};if((this.deps.config.orchestrator?.decisionPipeline?.intentClassifier?.evaluator??"heuristic")==="llm")return OI({classification:$,context:D.decisionContext,executor:this.controlExecutor(),model:N6(this.controlExecutorConfig()),notifyActivity:D.notifyActivity,signal:D.signal,workspacePath:this.controlWorkspacePath(D.workspace)});return LQ(D.decisionContext,$)}buildAgentRunInput(D){let $=this.loadEngineBinding(D.sessionKey,D.engine);return{messages:D.messages,...D.model?{model:D.model}:{},...D.workspace?{workspacePath:D.workspace.path}:{},signal:D.signal,...$===void 0?{}:{engineBinding:$}}}loadEngineBinding(D,$){let F=S0(D)?.engineBindings[$];return k1D(F)?F:void 0}async deliver(D,$,F){let X=this.deps.config.channels.find((G)=>G.channel===D&&G.enabled);if(!X)return;let J=B6(D);try{await J.send(X,{channel:D,chatId:$.chatId,...$.threadId===void 0?{}:{threadId:$.threadId},text:F})}catch(G){_.warn(`[orchestrator] deliver to ${D} failed: ${String(G)}`)}}async resolveConversation(D){let $=az(D),F=await oz($),J=(F?!0:await tz(D))?null:await ez(D),G=F??J;if(!G){let V=this.createConversation(D);return this.upsertSession($,D,V.id),{conversation:V,sessionAction:"new_topic",sessionReason:"no-existing-conversation",sessionKey:$}}if(J)this.upsertSession($,D,G.id);if(b1D(D)){this.closeConversation(G);let V=this.createConversation(D);return this.rotateSession($,D,V.id,f1D(D)),{conversation:V,sessionAction:"reset_requested",sessionReason:"gateway-reset",sessionKey:$}}if(P1D(D,G.id))return{conversation:w4(G),sessionAction:"continue",sessionReason:"worker-admin-selected-conversation",sessionKey:$};if(F&&this.deps.config.executor.engine==="codex")return{conversation:w4(G),sessionAction:"continue",sessionReason:"codex-chat-id-continuity",sessionKey:$};let Y=await this.provisionWorkspace(G.id),B=await AQ(G.id),H=N6(this.controlExecutorConfig()),U=await DI(this.controlExecutor(),H,G.summary??null,B,D.text,this.controlWorkspacePath(Y),this.deps.config.executor.engine);if(this.deps.bus.emit("conversation.classifier",{conversationId:G.id,decision:U}),BX(U),U.continue)return{conversation:w4(G),sessionAction:"continue",sessionReason:U.reason,sessionKey:$};this.closeConversation(G);let Q=this.createConversation(D);return this.rotateSession($,D,Q.id,"classifier:new-topic"),{conversation:Q,sessionAction:"new_topic",sessionReason:U.reason||"classifier:new-topic",sessionKey:$}}closeConversation(D){let $=b(),F=new Date().toISOString();$.update(n).set({status:"closed",closedAt:F}).where(S(n.id,D.id)).run();let X=D.id;this.deps.processes.run({group:X,engine:this.deps.config.executor.engine,class:"background",meta:{conversationId:X,kind:"workspace.dispose"},onSpawn:async()=>({cancel:async()=>{},onActivity:()=>()=>{}}),job:()=>this.disposeWorkspace(X)}).catch((J)=>_.warn(`[orchestrator] dispose workspace job failed: ${String(J)}`))}async provisionWorkspace(D){try{return await this.deps.workspaces.createWorkspace(D)}catch($){return _.warn(`[orchestrator] workspace create failed for ${D}: ${String($)}`),null}}async disposeWorkspace(D){try{await this.deps.workspaces.disposeWorkspace(D)}catch($){_.warn(`[orchestrator] workspace dispose failed for ${D}: ${String($)}`)}}createConversation(D){let $=b(),F=crypto.randomUUID(),X=new Date().toISOString(),J=IQ(D),G=this.persistedAgentTaskId(J);$.insert(n).values({id:F,...G===void 0?{}:{taskId:G},channel:D.channel,chatId:D.chatId,...D.threadId===void 0?{}:{threadId:D.threadId},status:"open",startedAt:X,lastActiveAt:X}).run();let Y=$.select().from(n).where(S(n.id,F)).get();return this.deps.bus.emit("conversation.created",{conversationId:F,channel:D.channel,chatId:D.chatId,...J===void 0?{}:{taskId:J}}),w4(Y)}persistedAgentTaskId(D){if(D===void 0)return;return b().select({id:B0.id}).from(B0).where(S(B0.id,D)).get()?.id}markTaskRunning(D,$){if(D===void 0)return;b().update(B0).set({status:"running",conversationId:$,finishedAt:null,result:null,error:null}).where(S(B0.id,D)).run()}markTaskSucceeded(D,$,F){if(D===void 0)return;b().update(B0).set({status:"succeeded",conversationId:$,finishedAt:new Date().toISOString(),result:F,error:null}).where(S(B0.id,D)).run()}markTaskFailed(D,$,F,X=!1){if(D===void 0)return;let J=X?"cancelled":"failed";b().update(B0).set({status:J,...$===void 0?{}:{conversationId:$},finishedAt:new Date().toISOString(),result:null,error:N1D(F)}).where(S(B0.id,D)).run()}upsertSession(D,$,F){$W({sessionKey:D,currentConversationId:F,channel:$.channel,chatId:$.chatId,...$.threadId===void 0?{}:{threadId:$.threadId},accountId:$.accountId})}rotateSession(D,$,F,X){if(!FW({sessionKey:D,currentConversationId:F,resetReason:X}))this.upsertSession(D,$,F)}persistUserMessage(D,$,F){let X=b(),J=new Date().toISOString(),G=$.richMetadata?JSON.stringify($.richMetadata):null,Y=X.insert(a).values({conversationId:D,role:"user",content:$.text,...G===null?{}:{richMetadata:G},createdAt:J}).returning({id:a.id}).all();return X.update(n).set({lastActiveAt:J}).where(S(n.id,D)).run(),j3(F,{at:J}),{id:Y[0]?.id??-1}}async maybeCompactConversation(D){let $=this.deps.config.orchestrator?.compaction;if($?.enabled!==!0)return{conversation:D.conversation,compacted:!1};let F=JJ(this.deps.config.orchestrator,this.deps.config.executor);if(!F)return{conversation:D.conversation,compacted:!1};let X=this.loadLatestCompactionCheckpoint(D.conversation.id),J=this.loadPromptTranscriptRows(D.conversation.id,X?.compactedThroughMessageId);if(J.length<=1)return{conversation:D.conversation,compacted:!1};let G=(await this.contextManager.buildSystemPrompt({priorSummary:D.conversation.summary??null})).systemPrompt,Y=j6({role:"system",content:G}),B=Y+J.reduce((j,P)=>j+j6(BJ(P)),0),H=$.triggerTokens??Math.max(0,F.contextWindowTokens-F.reserveTokens);if(!D.force&&B<=H)return{conversation:D.conversation,compacted:!1};let U=Math.min(F.keepRecentTokens,Math.max(0,H-Y)),{candidateRows:Q}=L1D(J,U);if(Q.length===0)return{conversation:D.conversation,compacted:!1};let V=Q[0].id,A=Q[Q.length-1].id,K=await this.runPreCompactionMemoryFlush({conversationId:D.conversation.id,previousSummary:D.conversation.summary??null,rows:Q,compaction:$,workspace:D.workspace,signal:D.signal,notifyActivity:D.notifyActivity,fromId:V,throughId:A}),M;try{M=await this.generateCompactionSummary({previousSummary:D.conversation.summary??null,rows:Q,compaction:$,workspace:D.workspace,signal:D.signal,notifyActivity:D.notifyActivity})}catch(j){return _.warn(`[orchestrator] compaction summary failed: ${String(j)}`),{conversation:D.conversation,compacted:!1}}let C=new Date().toISOString(),Z=b();Z.insert(a).values({conversationId:D.conversation.id,role:"system",content:M,richMetadata:JSON.stringify({kind:"compaction",version:fI,compactedFromMessageId:V,compactedThroughMessageId:A,sourceMessageCount:Q.length,previousCompactionMessageId:X?.messageId??null,memoryFlush:K.attempted?{status:K.status,at:K.at,...K.proposalId===void 0?{}:{proposalId:K.proposalId},...K.error===void 0?{}:{error:K.error}}:{status:"disabled"}}),createdAt:C}).run(),Z.update(n).set({summary:M,lastActiveAt:C}).where(S(n.id,D.conversation.id)).run(),XW(D.sessionKey,{at:C,...K.attempted&&K.at!==void 0?{memoryFlushAt:K.at}:{}});let O=Z.select().from(n).where(S(n.id,D.conversation.id)).get();return{conversation:O?w4(O):{...D.conversation,summary:M,lastActiveAt:C},compacted:!0}}async runPreCompactionMemoryFlush(D){if(D.compaction.memoryFlush?.enabled!==!0)return{attempted:!1};let $=new Date().toISOString(),F={kind:"memory-flush",version:fI,compactedFromMessageId:D.fromId,compactedThroughMessageId:D.throughId};try{let J=(await this.runSuppressedExecutor({messages:S1D(D.previousSummary,D.rows,D.compaction),workspace:D.workspace,signal:D.signal,notifyActivity:D.notifyActivity})).trim();if(J.length===0||/^none\.?$/i.test(J))return this.persistAuditMessage(D.conversationId,"No durable memory changes requested by pre-compaction flush.",{...F,status:"empty"},$),{attempted:!0,at:$,status:"empty"};let G=this.proposePreCompactionMemory({at:$,content:J,conversationId:D.conversationId,fromId:D.fromId,throughId:D.throughId});return this.persistAuditMessage(D.conversationId,`Pending Brain admission proposal created: ${G.id}`,{...F,proposalId:G.id,status:"proposed"},$),{attempted:!0,at:$,proposalId:G.id,status:"proposed"}}catch(X){if(X.code==="duplicate-id"){let G=vI(D.conversationId,D.throughId);return this.persistAuditMessage(D.conversationId,`Pending Brain admission proposal already exists: ${G}`,{...F,proposalId:G,status:"already-proposed"},$),{attempted:!0,at:$,proposalId:G,status:"already-proposed"}}let J=String(X);return _.warn(`[orchestrator] pre-compaction memory flush failed: ${J}`),this.persistAuditMessage(D.conversationId,J,{...F,status:"failed",error:J},$),{attempted:!0,at:$,status:"failed",error:J}}}proposePreCompactionMemory(D){let $=vI(D.conversationId,D.throughId),F=$,X=o6.parse({body:D.content,indexEntry:`- [Pre-compaction memory ${D.throughId}](${F}.md) - Proposed by AIWorker compaction admission.`,topic:F});return new eD().propose({confidence:0.6,evidence:[{at:D.at,kind:"conversation",ref:D.conversationId,summary:"Pre-compaction memory flush source conversation."},{at:D.at,kind:"message",ref:`${D.conversationId}:${D.fromId}-${D.throughId}`,summary:"Transcript range compacted before this memory proposal."}],id:$,kind:"memory-add",payload:X,risk:"medium",rollback:`Reject ${$} before apply, or remove memories/${F}.md and its MEMORY.md index entry after apply.`,soulId:"general-assistant",summary:`Pre-compaction memory proposal for conversation ${D.conversationId}.`,target:`memories/${F}`},D.at)}async generateCompactionSummary(D){let F=(await this.runSuppressedExecutor({messages:I1D(D.previousSummary,D.rows,D.compaction),workspace:D.workspace,signal:D.signal,notifyActivity:D.notifyActivity})).trim();if(F.length>0)return F;return T1D(D.previousSummary,D.rows)}async runSuppressedExecutor(D){let $=N6(this.controlExecutorConfig()),F=this.controlWorkspacePath(D.workspace),X="";for await(let J of this.controlExecutor().run({messages:D.messages,...$?{model:$}:{},...F?{workspacePath:F}:{},signal:D.signal,temperature:0,tools:[]}))if(D.notifyActivity(),J.type==="assistant_message_delta")X+=J.delta;else if(J.type==="error")throw Error(J.error);return X}persistAuditMessage(D,$,F,X){b().insert(a).values({conversationId:D,role:"system",content:$,richMetadata:JSON.stringify(F),createdAt:X}).run()}loadLatestCompactionCheckpoint(D){let F=b().select({id:a.id,role:a.role,richMetadata:a.richMetadata}).from(a).where(TD(S(a.conversationId,D),S(a.role,"system"))).orderBy(OD(a.id)).all();for(let X of F){let J=mI(X);if(J?.kind!=="compaction")continue;let G=w1D(J.compactedThroughMessageId);if(G!==null)return{messageId:X.id,compactedThroughMessageId:G}}return null}loadPromptTranscriptRows(D,$){let F=$===void 0?S(a.conversationId,D):TD(S(a.conversationId,D),g7(a.id,$));return b().select({id:a.id,role:a.role,content:a.content,toolCalls:a.toolCalls,toolCallId:a.toolCallId,richMetadata:a.richMetadata}).from(a).where(F).orderBy(A1(a.id)).all().filter((J)=>!xI(J))}loadPromptTranscriptRowsNewestFirst(D,$,F){let X=$===void 0?S(a.conversationId,D):TD(S(a.conversationId,D),g7(a.id,$));return b().select({id:a.id,role:a.role,content:a.content,toolCalls:a.toolCalls,toolCallId:a.toolCallId,richMetadata:a.richMetadata}).from(a).where(X).orderBy(OD(a.id)).limit(F*3).all().filter((G)=>!xI(G)).slice(0,F)}isContextOverflowError(D){if(D===void 0)return!1;return/context|token|too large|maximum length|maximum prompt|prompt is too long/i.test(D)}async buildRunContext(D,$){return new EQ({config:this.deps.config,loadBudgetHistory:(F,X)=>this.loadBudgetHistory(F,X),loadHistoryWindow:(F)=>this.loadHistoryWindow(F)}).compose({conversationId:D,systemPrompt:$})}async loadHistoryWindow(D){let $=this.deps.config.orchestrator?.maxHistoryMessages??g$,F=this.loadLatestCompactionCheckpoint(D);if(!F)return(await AQ(D,$)).map((J)=>({role:J.role,content:J.content}));return this.loadPromptTranscriptRowsNewestFirst(D,F.compactedThroughMessageId,$).reverse().map(BJ)}async loadBudgetHistory(D,$){let F=this.loadLatestCompactionCheckpoint(D);return this.loadPromptTranscriptRowsNewestFirst(D,F?.compactedThroughMessageId,$??YI).map(BJ)}async runTool(D){let $=NI(D.toolName,this.deps.config.toolPolicy);if($==="auto")return{decision:"allow",policy:"auto"};if($==="deny"){let Y=`tool ${D.toolName} blocked by policy`;if(D.conversationId!==void 0)this.persistAssistantMessage(D.conversationId,Y);return this.deps.bus.emit("approval.denied",{taskId:D.taskId,toolCallId:D.toolCallId,toolName:D.toolName,reason:"policy"}),{decision:"deny",policy:"deny",syntheticAssistantMessage:Y}}let F=D.timeoutMs??PU,X=Date.now()+F;this.deps.bus.emit("approval.requested",{workerId:this.deps.workerId,taskId:D.taskId,toolCallId:D.toolCallId,toolName:D.toolName,params:D.params,expiresAt:X});let J;try{J=await this.deps.approvals.wait({taskId:D.taskId,toolCallId:D.toolCallId,toolName:D.toolName,params:D.params,timeoutMs:F})}catch{J="deny"}if(J==="allow")return{decision:"allow",policy:"ask"};let G=`tool ${D.toolName} blocked by policy`;if(D.conversationId!==void 0)this.persistAssistantMessage(D.conversationId,G);return{decision:"deny",policy:"ask",syntheticAssistantMessage:G}}persistAssistantMessage(D,$){let F=b(),X=new Date().toISOString();F.insert(a).values({conversationId:D,role:"assistant",content:$,createdAt:X}).run(),F.update(n).set({lastActiveAt:X}).where(S(n.id,D)).run()}async submitTask(D){let $=b(),F=crypto.randomUUID(),X=new Date().toISOString();$.insert(B0).values({id:F,prompt:D,status:"queued",createdAt:X}).run();let J={workerId:this.deps.workerId,channel:"web",accountId:"sys:task",chatId:`task:${F}`,text:D,receivedAt:X,raw:{taskId:F}};return this.ingest(J).catch((G)=>_.error(`[orchestrator] submitTask ingest failed: ${String(G)}`)),{id:F}}async continueConversation(D,$){let F=b(),X=F.select().from(n).where(TD(S(n.id,D),S(n.status,"open"))).get();if(!X)throw ND.notFound("conversation not found","not-found");let J=F.select().from(AD).where(TD(S(AD.currentConversationId,X.id),S(AD.status,"active"))).orderBy(OD(AD.lastInteractionAt)).get();if(!J||J.accountId===null)throw ND.notFound("active conversation session not found","not-found");let G=crypto.randomUUID(),Y=new Date().toISOString();F.insert(B0).values({id:G,prompt:$,status:"queued",createdAt:Y}).run();let B={taskId:G,source:"worker-admin",conversationId:X.id,[uI]:X.id},H={workerId:this.deps.workerId,channel:J.channel,accountId:J.accountId,chatId:J.chatId,...J.threadId===null?{}:{threadId:J.threadId},text:$,receivedAt:Y,raw:B};return this.ingest(H).catch((U)=>_.error(`[orchestrator] continueConversation ingest failed: ${String(U)}`)),{id:G}}}function R1D(D){let $=hI(D,[/(?:admission\s+proposal|proposal)[\s\S]{0,120}(?:submitted|created|queued|filed|opened|approved|accepted|applied|persisted|saved|recorded)/i,/(?:submitted|created|queued|filed|opened|approved|accepted|applied|persisted|saved|recorded)[\s\S]{0,120}(?:admission\s+proposal|proposal)/i,/(?:admission|proposal|\u63D0\u6848|\u7533\u8BF7|\u5BA1\u6279)[\s\S]{0,120}(?:\u5DF2\u63D0\u4EA4|\u5DF2\u521B\u5EFA|\u5DF2\u52A0\u5165|\u5DF2\u843D\u76D8|\u5DF2\u6301\u4E45\u5316|\u5DF2\u8BB0\u5F55|\u5DF2\u91C7\u7EB3|\u5DF2\u6279\u51C6|\u5DF2\u5E94\u7528)/i,/(?:\u5DF2\u63D0\u4EA4|\u5DF2\u521B\u5EFA|\u5DF2\u52A0\u5165|\u5DF2\u843D\u76D8|\u5DF2\u6301\u4E45\u5316|\u5DF2\u8BB0\u5F55|\u5DF2\u91C7\u7EB3|\u5DF2\u6279\u51C6|\u5DF2\u5E94\u7528)[\s\S]{0,120}(?:admission|proposal|\u63D0\u6848|\u7533\u8BF7|\u5BA1\u6279)/i]);if($!==null)return{claimExcerpt:$,reason:"assistant-claimed-admission-without-db-delta"};let F=hI(D,[/(?:\u957F\u671F\u8BB0\u5FC6|brain memory|project brain|canonical brain|\u8BB0\u5FC6)[\s\S]{0,120}(?:\u5DF2\u5199\u5165|\u5DF2\u4FDD\u5B58|\u5DF2\u843D\u76D8|\u5DF2\u6301\u4E45\u5316|\u5DF2\u8BB0\u5F55|remembered|saved|persisted)/i,/(?:\u5DF2\u5199\u5165|\u5DF2\u4FDD\u5B58|\u5DF2\u843D\u76D8|\u5DF2\u6301\u4E45\u5316|\u5DF2\u8BB0\u5F55|remembered|saved|persisted)[\s\S]{0,120}(?:\u957F\u671F\u8BB0\u5FC6|brain memory|project brain|canonical brain|\u8BB0\u5FC6)/i]);if(F!==null)return{claimExcerpt:F,reason:"assistant-claimed-memory-without-admission-delta"};return null}function hI(D,$){for(let F of $){let X=F.exec(D);if(!X)continue;let J=X[0]?.replace(/\s+/g," ").trim()??"";if(J.length===0)continue;let G=z0(J).body;return G.length<=180?G:`${G.slice(0,180)}...`}return null}function O1D(D){return D==="success"||D==="failed"||D==="denied"}function IQ(D){if(!D.raw||typeof D.raw!=="object"||Array.isArray(D.raw))return;let $=D.raw.taskId;return typeof $==="string"&&$.length>0?$:void 0}function E1D(D){if(D instanceof Error&&D.message.length>0)return D.message;return String(D)}function j1D(D){return D instanceof Error&&D.message==="cancelled"}function N1D(D){let $=D.replace(/\b([\w.-]*(?:api[_-]?key|token|secret|password|authorization)[\w.-]*)\b(\s*[:=]\s*)(?:"[^"]*"|'[^']*'|[^\s,;]+)/gi,"$1$2[redacted]").replace(/\bBearer\s+[^\s,;]+/gi,"Bearer [redacted]").replace(/\s+/g," ").trim();if($.length<=gI)return $;return`${$.slice(0,gI-3)}...`}function P1D(D,$){if(!D.raw||typeof D.raw!=="object"||Array.isArray(D.raw))return!1;return D.raw[uI]===$}function BJ(D){return{role:D.role,content:D.content,...D.toolCalls===null?{}:{toolCalls:D.toolCalls},...D.toolCallId===null?{}:{toolCallId:D.toolCallId}}}function L1D(D,$){let F=[],X=0;for(let Y=D.length-1;Y>=0;Y-=1){let B=D[Y],H=j6(BJ(B));if(F.length>0&&X+H>$)break;F.push(B),X+=H}let J=q1D(D,F.reverse()),G=J[0]?.id;if(G===void 0)return{candidateRows:D,recentRows:[]};return{candidateRows:D.filter((Y)=>Y.id<G),recentRows:J}}function q1D(D,$){let F=$[0]?.id;if(F===void 0)return $;let X=D.findIndex((J)=>J.id===F);if(X<0)return $;while(X>0){let J=z1D(D,X);if(J===null||J>=X)break;X=J}return D.slice(X)}function z1D(D,$){let F=new Set;for(let X=$;X<D.length;X+=1){let J=D[X];for(let G of J.toolCalls??[])F.add(G.id);if(J.role!=="tool"||J.toolCallId===null||F.has(J.toolCallId))continue;for(let G=$-1;G>=0;G-=1)if(D[G].toolCalls?.some((B)=>B.id===J.toolCallId)===!0)return G}return null}function I1D(D,$,F){return[{role:"system",content:["You compact an AIWorker conversation transcript for future prompt context.","Return a concise durable summary only.","Merge the previous durable summary with the new transcript rows.","Preserve user preferences, decisions, open tasks, constraints, named entities, and tool outcomes.","Do not invent facts. Do not mention that this is a summary unless needed for clarity."].join(`
1750
1750
  `)},{role:"user",content:["Previous durable summary:",D?.trim()||"(none)","","Transcript rows to compact. Raw rows remain stored for audit:",kQ($,F.maxSummaryMessages??TQ)].join(`
1751
1751
  `)}]}function S1D(D,$,F){return[{role:"system",content:["You are drafting a pre-compaction long-term memory proposal for AIWorker.","This turn is not delivered to the user.","Return only durable facts, preferences, decisions, or todos that should be proposed through Brain admission.","If there is nothing durable to write, return NONE."].join(`
1752
1752
  `)},{role:"user",content:["Previous durable summary:",D?.trim()||"(none)","","Transcript rows about to be compacted:",kQ($,F.maxSummaryMessages??TQ)].join(`
@@ -1754,7 +1754,7 @@ ${F.trim()}`)}var HI=10,WI=6000,D1D=5,UI=3000,QI=6000;var VI=R(()=>{$0();MD();MQ
1754
1754
  `);let F=Math.ceil($/2),X=Math.floor($/2),J=D.length-F-X;return[...D.slice(0,F).map(SQ),`... ${J} transcript rows omitted from summarizer prompt ...`,...D.slice(D.length-X).map(SQ)].join(`
1755
1755
  `)}function SQ(D){let $=D.toolCalls?.map((X)=>X.id).join(", "),F=[$?` toolCalls=${$}`:"",D.toolCallId?` toolCallId=${D.toolCallId}`:""].join("");return`#${D.id} ${D.role}${F}: ${D.content.slice(0,1500)}`}function T1D(D,$){let F=$.length===0?"no rows":`rows #${$[0].id}-#${$[$.length-1].id}`;return[D?.trim()||"",`Compacted ${F}.`,kQ($,Math.min(12,TQ))].filter((X)=>X.length>0).join(`
1756
1756
 
1757
- `)}function xI(D){if(D.role!=="system")return!1;let $=mI(D);return $?.kind==="compaction"||$?.kind==="memory-flush"}function mI(D){if(D.role!=="system"||D.richMetadata===null)return null;try{let $=JSON.parse(D.richMetadata);return $!==null&&typeof $==="object"&&!Array.isArray($)?$:null}catch{return null}}function w1D(D){return typeof D==="number"&&Number.isInteger(D)&&D>0?D:null}function k1D(D){return D!==null&&typeof D==="object"&&!Array.isArray(D)}function b1D(D){if(!D.raw||typeof D.raw!=="object"||Array.isArray(D.raw))return!1;let $=D.raw;return $.source==="gateway"&&$.sessionReset===!0}function yI(D){if(!D.raw||typeof D.raw!=="object"||Array.isArray(D.raw))return;return D.raw.source==="gateway"&&D.accountId==="sys:gateway"&&D.chatId.startsWith("gw:")?D.chatId:void 0}function f1D(D){if(!D.raw||typeof D.raw!=="object"||Array.isArray(D.raw))return"manual";let $=D.raw.resetCommand;return $==="/new"||$==="/reset"?`manual:${$}`:"manual"}function w4(D){return{id:D.id,...D.taskId===null?{}:{taskId:D.taskId},channel:D.channel,chatId:D.chatId,...D.threadId===null?{}:{threadId:D.threadId},status:D.status,...D.summary===null?{}:{summary:D.summary},startedAt:D.startedAt,lastActiveAt:D.lastActiveAt,...D.closedAt===null?{}:{closedAt:D.closedAt}}}var TQ=120,fI=1,gI=1000,uI;var cI=R(()=>{MD();gD();HD();V0();VW();jW();Y4();$I();vX();GI();MQ();VI();HX();jI();bI();uI=Symbol("worker-admin-continuation")});function P6(D,$,F){let X=kq(D,$),J=I4($.executor),G=nz({config:$,taskExecutor:J}),Y=new G4($.channels),B=new O4,H=g1D($),U=new C6,Q=new wQ({config:$,brain:X,executor:J,controlExecutor:G.executor,controlExecutorConfig:G.config,controlExecutorReusesTaskExecutor:G.reusesTaskExecutor,bus:B,workerId:D,workspaces:H,processes:F.processes,approvals:U}),V=fq(B),A=$.evolution.enabled?pq():()=>{return},K=new R4({workerId:D,getOrchestrator:()=>Q});return K.start(),{workerId:D,config:$,brain:X,executor:J,controlExecutor:G.executor,controlExecutorConfig:G.config,controlExecutorReusesTaskExecutor:G.reusesTaskExecutor,channels:Y,bus:B,orchestrator:Q,cron:K,workspaces:H,processes:F.processes,approvals:U,dispose(){V(),A(),U.dispose(),K.stop(),HN()}}}function g1D(D){let $=(()=>{if(D.executor.engine!=="claude-code")return;try{let Y=H2(D.executor).body.workspaceRoot;return typeof Y==="string"&&Y.length>0?Y:void 0}catch{return}})(),F=o.WORKER_WORKSPACE_GIT_ORIGIN,X=mD(),J=X.scope==="project"&&X.projectRoot&&!F&&!$?X.projectRoot:void 0;return new QQ({root:o.WORKER_DATA_ROOT,...$?{subdir:$}:{},...F?{gitOrigin:F}:{},...J?{projectRoot:J}:{}})}var pI=R(()=>{$0();DX();bq();LW();Y4();AU();KU();gq();dq();_8();WQ();iz();vX();rz();cI()});var dI=R(()=>{DX()});import{Buffer as G9}from"buffer";import{createCipheriv as h1D,createDecipheriv as v1D,randomBytes as x1D}from"crypto";class Y9{db;key;constructor(D,$){this.db=$;if(!/^[0-9a-f]{64}$/.test(D))throw Error("SecretsVault: AIWORKER_MASTER_KEY must be 32-byte hex (64 hex chars)");if(this.key=G9.from(D,"hex"),this.key.length!==u1D)throw Error("SecretsVault: decoded master key length is not 32 bytes")}async put(D,$){let{ciphertext:F,nonce:X,authTag:J}=this.encrypt($),G=await this.db.select({id:f0.id}).from(f0).where(S(f0.key,D)).get(),Y=new Date().toISOString();if(G)await this.db.update(f0).set({valueEnc:F,nonce:X,authTag:J,updatedAt:Y}).where(S(f0.id,G.id)).run();else await this.db.insert(f0).values({key:D,valueEnc:F,nonce:X,authTag:J,createdAt:Y,updatedAt:Y}).run()}async get(D){let $=await this.db.select().from(f0).where(S(f0.key,D)).get();if(!$)return null;return this.decrypt($.valueEnc,$.nonce,$.authTag)}async list(){return(await this.db.select({key:f0.key}).from(f0).all()).map(($)=>$.key)}async remove(D){await this.db.delete(f0).where(S(f0.key,D)).run()}async removeAll(){await this.db.delete(f0).run()}encryptString(D){return this.encrypt(D)}decryptString(D,$,F){return this.decrypt(D,$,F)}encrypt(D){let $=x1D(y1D),F=h1D(lI,this.key,$),X=G9.concat([F.update(D,"utf8"),F.final()]),J=F.getAuthTag();return{ciphertext:X.toString("base64"),nonce:$.toString("base64"),authTag:J.toString("base64")}}decrypt(D,$,F){let X=v1D(lI,this.key,G9.from($,"base64"));return X.setAuthTag(G9.from(F,"base64")),G9.concat([X.update(G9.from(D,"base64")),X.final()]).toString("utf8")}}var lI="aes-256-gcm",y1D=12,u1D=32;var bQ=R(()=>{gD();V0()});function cD(){if(!HJ)HJ=new Y9(o.AIWORKER_MASTER_KEY,b());return HJ}function iI(){HJ=null}var HJ=null;var nI=R(()=>{gD();dI();bQ();bQ()});function B9(D={}){let $=WJ(D.limit,m1D,1,c1D),F=WJ(D.offset,0,0,Number.MAX_SAFE_INTEGER),X=b(),J=D.status===void 0?X.select().from(AD).orderBy(RD(AD.lastInteractionAt)).limit($+1).offset(F).all():X.select().from(AD).where(S(AD.status,D.status)).orderBy(RD(AD.lastInteractionAt)).limit($+1).offset(F).all();return{sessions:J.slice(0,$).map((Y)=>sI(Y,D.config)),page:{limit:$,offset:F,hasMore:J.length>$}}}function H9(D,$){let F=S0(D);return F===null?null:sI(F,$)}function W9(D={}){let $=D.apply===!0,F=fQ(D);if(!$||F.planned.transcripts.length===0)return{...F,mode:$?"apply":"dry-run",applied:{conversationsDeleted:0,messagesDeleted:0}};let X=b(),J=F.planned.transcripts.map((H)=>H.conversationId);X.delete(n).where(TD(I1(n.id,J),E`${n.status} = 'closed'
1757
+ `)}function xI(D){if(D.role!=="system")return!1;let $=mI(D);return $?.kind==="compaction"||$?.kind==="memory-flush"}function mI(D){if(D.role!=="system"||D.richMetadata===null)return null;try{let $=JSON.parse(D.richMetadata);return $!==null&&typeof $==="object"&&!Array.isArray($)?$:null}catch{return null}}function w1D(D){return typeof D==="number"&&Number.isInteger(D)&&D>0?D:null}function k1D(D){return D!==null&&typeof D==="object"&&!Array.isArray(D)}function b1D(D){if(!D.raw||typeof D.raw!=="object"||Array.isArray(D.raw))return!1;let $=D.raw;return $.source==="gateway"&&$.sessionReset===!0}function yI(D){if(!D.raw||typeof D.raw!=="object"||Array.isArray(D.raw))return;return D.raw.source==="gateway"&&D.accountId==="sys:gateway"&&D.chatId.startsWith("gw:")?D.chatId:void 0}function f1D(D){if(!D.raw||typeof D.raw!=="object"||Array.isArray(D.raw))return"manual";let $=D.raw.resetCommand;return $==="/new"||$==="/reset"?`manual:${$}`:"manual"}function w4(D){return{id:D.id,...D.taskId===null?{}:{taskId:D.taskId},channel:D.channel,chatId:D.chatId,...D.threadId===null?{}:{threadId:D.threadId},status:D.status,...D.summary===null?{}:{summary:D.summary},startedAt:D.startedAt,lastActiveAt:D.lastActiveAt,...D.closedAt===null?{}:{closedAt:D.closedAt}}}var TQ=120,fI=1,gI=1000,uI;var cI=R(()=>{ZD();gD();HD();V0();VW();jW();Y4();$I();vX();GI();MQ();VI();HX();jI();bI();uI=Symbol("worker-admin-continuation")});function P6(D,$,F){let X=kq(D,$),J=I4($.executor),G=nz({config:$,taskExecutor:J}),Y=new G4($.channels),B=new O4,H=g1D($),U=new C6,Q=new wQ({config:$,brain:X,executor:J,controlExecutor:G.executor,controlExecutorConfig:G.config,controlExecutorReusesTaskExecutor:G.reusesTaskExecutor,bus:B,workerId:D,workspaces:H,processes:F.processes,approvals:U}),V=fq(B),A=$.evolution.enabled?pq():()=>{return},K=new R4({workerId:D,getOrchestrator:()=>Q});return K.start(),{workerId:D,config:$,brain:X,executor:J,controlExecutor:G.executor,controlExecutorConfig:G.config,controlExecutorReusesTaskExecutor:G.reusesTaskExecutor,channels:Y,bus:B,orchestrator:Q,cron:K,workspaces:H,processes:F.processes,approvals:U,dispose(){V(),A(),U.dispose(),K.stop(),HN()}}}function g1D(D){let $=(()=>{if(D.executor.engine!=="claude-code")return;try{let Y=H2(D.executor).body.workspaceRoot;return typeof Y==="string"&&Y.length>0?Y:void 0}catch{return}})(),F=o.WORKER_WORKSPACE_GIT_ORIGIN,X=mD(),J=X.scope==="project"&&X.projectRoot&&!F&&!$?X.projectRoot:void 0;return new QQ({root:o.WORKER_DATA_ROOT,...$?{subdir:$}:{},...F?{gitOrigin:F}:{},...J?{projectRoot:J}:{}})}var pI=R(()=>{$0();DX();bq();LW();Y4();AU();KU();gq();dq();_8();WQ();iz();vX();rz();cI()});var dI=R(()=>{DX()});import{Buffer as G9}from"buffer";import{createCipheriv as h1D,createDecipheriv as v1D,randomBytes as x1D}from"crypto";class Y9{db;key;constructor(D,$){this.db=$;if(!/^[0-9a-f]{64}$/.test(D))throw Error("SecretsVault: AIWORKER_MASTER_KEY must be 32-byte hex (64 hex chars)");if(this.key=G9.from(D,"hex"),this.key.length!==u1D)throw Error("SecretsVault: decoded master key length is not 32 bytes")}async put(D,$){let{ciphertext:F,nonce:X,authTag:J}=this.encrypt($),G=await this.db.select({id:f0.id}).from(f0).where(S(f0.key,D)).get(),Y=new Date().toISOString();if(G)await this.db.update(f0).set({valueEnc:F,nonce:X,authTag:J,updatedAt:Y}).where(S(f0.id,G.id)).run();else await this.db.insert(f0).values({key:D,valueEnc:F,nonce:X,authTag:J,createdAt:Y,updatedAt:Y}).run()}async get(D){let $=await this.db.select().from(f0).where(S(f0.key,D)).get();if(!$)return null;return this.decrypt($.valueEnc,$.nonce,$.authTag)}async list(){return(await this.db.select({key:f0.key}).from(f0).all()).map(($)=>$.key)}async remove(D){await this.db.delete(f0).where(S(f0.key,D)).run()}async removeAll(){await this.db.delete(f0).run()}encryptString(D){return this.encrypt(D)}decryptString(D,$,F){return this.decrypt(D,$,F)}encrypt(D){let $=x1D(y1D),F=h1D(lI,this.key,$),X=G9.concat([F.update(D,"utf8"),F.final()]),J=F.getAuthTag();return{ciphertext:X.toString("base64"),nonce:$.toString("base64"),authTag:J.toString("base64")}}decrypt(D,$,F){let X=v1D(lI,this.key,G9.from($,"base64"));return X.setAuthTag(G9.from(F,"base64")),G9.concat([X.update(G9.from(D,"base64")),X.final()]).toString("utf8")}}var lI="aes-256-gcm",y1D=12,u1D=32;var bQ=R(()=>{gD();V0()});function cD(){if(!HJ)HJ=new Y9(o.AIWORKER_MASTER_KEY,b());return HJ}function iI(){HJ=null}var HJ=null;var nI=R(()=>{gD();dI();bQ();bQ()});function B9(D={}){let $=WJ(D.limit,m1D,1,c1D),F=WJ(D.offset,0,0,Number.MAX_SAFE_INTEGER),X=b(),J=D.status===void 0?X.select().from(AD).orderBy(OD(AD.lastInteractionAt)).limit($+1).offset(F).all():X.select().from(AD).where(S(AD.status,D.status)).orderBy(OD(AD.lastInteractionAt)).limit($+1).offset(F).all();return{sessions:J.slice(0,$).map((Y)=>sI(Y,D.config)),page:{limit:$,offset:F,hasMore:J.length>$}}}function H9(D,$){let F=S0(D);return F===null?null:sI(F,$)}function W9(D={}){let $=D.apply===!0,F=fQ(D);if(!$||F.planned.transcripts.length===0)return{...F,mode:$?"apply":"dry-run",applied:{conversationsDeleted:0,messagesDeleted:0}};let X=b(),J=F.planned.transcripts.map((H)=>H.conversationId);X.delete(n).where(TD(I1(n.id,J),E`${n.status} = 'closed'
1758
1758
  AND ${n.closedAt} IS NOT NULL
1759
1759
  AND ${n.closedAt} <= ${F.cutoff}
1760
1760
  AND ${n.id} NOT IN (SELECT ${AD.currentConversationId} FROM ${AD})`)).run();let G=X.select({id:n.id}).from(n).where(I1(n.id,J)).all(),Y=new Set(G.map((H)=>H.id)),B=F.planned.transcripts.filter((H)=>!Y.has(H.conversationId));return{...F,mode:"apply",applied:{conversationsDeleted:B.length,messagesDeleted:B.reduce((H,U)=>H+U.messageCount,0)}}}function fQ(D={}){let $=WJ(D.olderThanDays,l1D,0,3650),F=WJ(D.limit,p1D,1,d1D),X=a1D(D.now,$),G=b().select({id:n.id,channel:n.channel,chatId:n.chatId,threadId:n.threadId,closedAt:n.closedAt,lastActiveAt:n.lastActiveAt}).from(n).where(E`${n.status} = 'closed'
@@ -1767,23 +1767,23 @@ ${F.trim()}`)}var HI=10,WI=6000,D1D=5,UI=3000,QI=6000;var VI=R(()=>{$0();MD();MQ
1767
1767
  `)});if(J)G=J(G)||G;console.log(G.map((H)=>{return H.title?`${H.title}:
1768
1768
  ${H.body}`:H.body}).join(`
1769
1769
 
1770
- `))}outputVersion(){let{name:D}=this.cli,{versionNumber:$}=this.cli.globalCommand;if($)console.log(`${D}/${$} ${iw}`)}checkRequiredArgs(){let D=this.args.filter(($)=>$.required).length;if(this.cli.args.length<D)throw new J5(`missing required args for command \`${this.rawName}\``)}checkUnknownOptions(){let{options:D,globalCommand:$}=this.cli;if(!this.config.allowUnknownOptions){for(let F of Object.keys(D))if(F!=="--"&&!this.hasOption(F)&&!$.hasOption(F))throw new J5(`Unknown option \`${F.length>1?`--${F}`:`-${F}`}\``)}}checkOptionValue(){let{options:D,globalCommand:$}=this.cli,F=[...$.options,...this.options];for(let X of F){let J=D[X.name.split(".")[0]];if(X.required){let G=F.some((Y)=>Y.negated&&Y.names.includes(X.name));if(J===!0||J===!1&&!G)throw new J5(`option \`${X.rawName}\` value is missing`)}}}}class pJ extends cJ{constructor(D){super("@@global@@","",{},D)}}var X5=Object.assign;class VA extends hw{constructor(D=""){super();this.name=D,this.commands=[],this.rawArgs=[],this.args=[],this.options={},this.globalCommand=new pJ(this),this.globalCommand.usage("<command> [options]")}usage(D){return this.globalCommand.usage(D),this}command(D,$,F){let X=new cJ(D,$||"",F,this);return X.globalCommand=this.globalCommand,this.commands.push(X),X}option(D,$,F){return this.globalCommand.option(D,$,F),this}help(D){return this.globalCommand.option("-h, --help","Display this message"),this.globalCommand.helpCallback=D,this.showHelpOnExit=!0,this}version(D,$="-v, --version"){return this.globalCommand.version(D,$),this.showVersionOnExit=!0,this}example(D){return this.globalCommand.example(D),this}outputHelp(){if(this.matchedCommand)this.matchedCommand.outputHelp();else this.globalCommand.outputHelp()}outputVersion(){this.globalCommand.outputVersion()}setParsedInfo({args:D,options:$},F,X){if(this.args=D,this.options=$,F)this.matchedCommand=F;if(X)this.matchedCommandName=X;return this}unsetMatchedCommand(){this.matchedCommand=void 0,this.matchedCommandName=void 0}parse(D=lw,{run:$=!0}={}){if(this.rawArgs=D,!this.name)this.name=D[1]?dw(D[1]):"cli";let F=!0;for(let J of this.commands){let G=this.mri(D.slice(2),J),Y=G.args[0];if(J.isMatched(Y)){F=!1;let B=X5(X5({},G),{args:G.args.slice(1)});this.setParsedInfo(B,J,Y),this.emit(`command:${Y}`,J)}}if(F){for(let J of this.commands)if(J.name===""){F=!1;let G=this.mri(D.slice(2),J);this.setParsedInfo(G,J),this.emit("command:!",J)}}if(F){let J=this.mri(D.slice(2));this.setParsedInfo(J)}if(this.options.help&&this.showHelpOnExit)this.outputHelp(),$=!1,this.unsetMatchedCommand();if(this.options.version&&this.showVersionOnExit&&this.matchedCommandName==null)this.outputVersion(),$=!1,this.unsetMatchedCommand();let X={args:this.args,options:this.options};if($)this.runMatchedCommand();if(!this.matchedCommand&&this.args[0])this.emit("command:*");return X}mri(D,$){let F=[...this.globalCommand.options,...$?$.options:[]],X=uw(F),J=[],G=D.indexOf("--");if(G>-1)J=D.slice(G+1),D=D.slice(0,G);let Y=xw(D,X);Y=Object.keys(Y).reduce((V,A)=>{return X5(X5({},V),{[UA(A)]:Y[A]})},{_:[]});let B=Y._,H={"--":J},U=$&&$.config.ignoreOptionDefaultValue?$.config.ignoreOptionDefaultValue:this.globalCommand.config.ignoreOptionDefaultValue,Q=Object.create(null);for(let V of F){if(!U&&V.config.default!==void 0)for(let A of V.names)H[A]=V.config.default;if(Array.isArray(V.config.type)){if(Q[V.name]===void 0)Q[V.name]=Object.create(null),Q[V.name].shouldTransform=!0,Q[V.name].transformFunction=V.config.type[0]}}for(let V of Object.keys(Y))if(V!=="_"){let A=V.split(".");cw(H,A,Y[V]),pw(H,Q)}return{args:B,options:H}}runMatchedCommand(){let{args:D,options:$,matchedCommand:F}=this;if(!F||!F.commandAction)return;F.checkUnknownOptions(),F.checkOptionValue(),F.checkRequiredArgs();let X=[];return F.args.forEach((J,G)=>{if(J.variadic)X.push(D.slice(G));else X.push(D[G])}),X.push($),F.commandAction.apply(this,X)}}var nw=(D="")=>new VA(D),AA=nw;HD();var k6={name:"@zonease/aiworker-cli",type:"module",version:"0.10.0",description:"AIWorker CLI \u2014 self-hosted Project Brain and Worker/Fleet aggregation runtime",license:"MIT",homepage:"https://github.com/ZonEaseTech/aiworker#readme",repository:{type:"git",url:"git+https://github.com/ZonEaseTech/aiworker.git"},publishConfig:{access:"public"},bin:{aiworker:"./dist/aiworker.js"},files:["README.md","dist/"],engines:{bun:">=1.1"},scripts:{typecheck:"tsc --noEmit",test:"bun test --timeout=15000","test:stress":"bun test --timeout=15000 --rerun-each=3 src/commands/worker/init.integration.test.ts src/commands/worker/sessions.test.ts",build:"bun run --filter '@zonease/aiworker-web' build && bun run build:bundle","build:bundle":"bun build --target=bun --minify --outfile=dist/aiworker-bun.js src/aiworker.ts && bun scripts/build-publish-manifest.ts",prepublishOnly:"bun run build","smoke:aiworker-run":"bun scripts/smoke-aiworker-run.ts","smoke:aiworker-fleet":"bun scripts/smoke-aiworker-fleet.ts"},devDependencies:{"@types/bun":"^1.2.13","@zonease/aiworker-api":"workspace:*","@zonease/aiworker-core":"workspace:*","@zonease/aiworker-fs-layout":"workspace:*","@zonease/aiworker-gateway":"workspace:*","@zonease/aiworker-gateway-proto":"workspace:*","@zonease/aiworker-shared":"workspace:*","@zonease/aiworker-storage-sqlite":"workspace:*",cac:"^6.7.14",consola:"^3.4.2",typescript:"^5.8.3",yaml:"^2.7.1"}};HD();import $R from"process";Z0();class I0 extends Error{code;constructor(D,$="operator_ws_error"){super(D);this.code=$;this.name="OperatorWsError"}}function iZ(){let D=null,$=!1,F=!1,X=new Map,J=new Map;function G(Z){for(let[,O]of X){if(O.timer)clearTimeout(O.timer);O.signalCleanup?.(),O.reject(Z)}X.clear()}function Y(Z){let O=X.get(Z.id);if(!O)return;if(X.delete(Z.id),O.timer)clearTimeout(O.timer);if(O.signalCleanup?.(),Z.ok)O.resolve(Z.result);else{let j=Z.error;O.reject(new I0(`${j.code}: ${j.message}`,j.code))}}function B(Z){let O=J.get(Z.name);if(!O||O.size===0)return;for(let j of O)try{j(Z.payload)}catch{}}function H(Z){let O=Q1(Z);if(!O.ok)return;let j=O.frame;if(j.type==="response")Y(j);else if(j.type==="event")B(j)}async function U(Z){if($)throw new I0("aiworker client \u5DF2\u7ECF\u8FDE\u63A5","already_connected");let O=Z.timeoutMs??1e4;await new Promise((j,P)=>{let T=!1,h;try{h=new WebSocket(Z.url)}catch(N){P(new I0(`WebSocket \u6784\u9020\u5931\u8D25 (${Z.url}): ${N instanceof Error?N.message:String(N)}`,"ws_construct_failed"));return}D=h;let q=setTimeout(()=>{if(T)return;T=!0;try{h.close()}catch{}P(new I0(`\u8FDE\u63A5 gateway \u8D85\u65F6 (>${O}ms): ${Z.url}`,"connect_timeout"))},O);h.onopen=()=>{let N={type:"connect",role:l8.OPERATOR,agentId:Z.deviceId,deviceId:Z.deviceId,auth:{token:Z.token},...Z.meta?{meta:Z.meta}:{}};try{h.send(dD(N))}catch(w){if(T)return;T=!0,clearTimeout(q),P(new I0(`\u53D1\u9001 connect \u5E27\u5931\u8D25: ${w instanceof Error?w.message:String(w)}`,"connect_send_failed"));return}if(!T)T=!0,clearTimeout(q),$=!0,j()},h.onmessage=(N)=>{let w=typeof N.data==="string"?N.data:N.data instanceof ArrayBuffer?new TextDecoder().decode(N.data):String(N.data);H(w)},h.onerror=(N)=>{if(T)return;T=!0,clearTimeout(q);let w=N.message??"unknown";P(new I0(`WS \u8FDE\u63A5\u9519\u8BEF: ${w}`,"ws_error"))},h.onclose=(N)=>{if(F=!0,$=!1,G(new I0(`WS \u5DF2\u5173\u95ED (code=${N.code}, reason=${N.reason||"n/a"})`,"ws_closed")),!T)T=!0,clearTimeout(q),P(new I0(`WS \u5728\u63E1\u624B\u9636\u6BB5\u88AB\u5173\u95ED (code=${N.code})`,"ws_closed_early"))}})}function Q(){if(!$||F||D===null||D.readyState!==WebSocket.OPEN)throw new I0("aiworker client \u672A\u8FDE\u63A5\u6216\u5DF2\u5173\u95ED","not_connected")}async function V(Z,O,j){Q();let P=crypto.randomUUID(),T={type:"request",id:P,method:Z,...O===void 0?{}:{params:O}};return await new Promise((h,q)=>{let N=j?.timeoutMs??30000,w=null,i=null,I={resolve:h,reject:q,timer:null,signalCleanup:null};if(w=setTimeout(()=>{X.delete(P),i?.(),q(new I0(`request ${Z} \u8D85\u65F6 (>${N}ms)`,"request_timeout"))},N),I.timer=w,j?.signal){let x=j.signal;if(x.aborted){X.delete(P),clearTimeout(w),q(x.reason??new I0(`request ${Z} \u88AB abort`,"aborted"));return}let y=()=>{if(X.delete(P),w)clearTimeout(w);q(x.reason??new I0(`request ${Z} \u88AB abort`,"aborted"))};x.addEventListener("abort",y,{once:!0}),i=()=>x.removeEventListener("abort",y),I.signalCleanup=i}X.set(P,I);try{D?.send(dD(T))}catch(x){if(X.delete(P),w)clearTimeout(w);i?.(),q(new I0(`request ${Z} \u53D1\u9001\u5931\u8D25: ${x instanceof Error?x.message:String(x)}`,"send_failed"))}})}async function A(Z,O,j){if(!o$(Z))throw new I0(`method ${Z} \u672A\u5728 @zonease/aiworker-gateway-proto \u6CE8\u518C`,"unknown_method");return await V(Z,O,j)}function K(Z,O){if(!KG(Z));let j=J.get(Z);if(!j)j=new Set,J.set(Z,j);return j.add(O),()=>{let P=J.get(Z);if(!P)return;if(P.delete(O),P.size===0)J.delete(Z)}}async function M(Z,O){if(!D||F)return;await new Promise((j)=>{let P=D;if(!P){j();return}if(P.readyState===WebSocket.CLOSED){F=!0,$=!1,j();return}let T=P.onclose;P.onclose=(h)=>{if(typeof T==="function")T.call(P,h);j()};try{P.close(Z,O)}catch{}})}function C(){return $&&!F&&D!==null&&D.readyState===WebSocket.OPEN}return{connect:U,request:A,requestRaw:V,onEvent:K,close:M,isOpen:C}}r8();async function bD(D,$={}){let F=await GF(),X=($.createClient??iZ)();try{await X.connect({url:z7($.gatewayUrl??F.gatewayUrl),deviceId:F.deviceId,token:$.token??F.deviceToken,...$.connectTimeoutMs===void 0?{}:{timeoutMs:$.connectTimeoutMs}});let J=await D({client:X,state:F});return await X.close(1000,"aiworker session done"),J}catch(J){try{await X.close(1011,"aiworker session error")}catch{}throw J}}function rD(D){let $=JSON.stringify(D,null,2);$R.stdout.write(`${$}
1770
+ `))}outputVersion(){let{name:D}=this.cli,{versionNumber:$}=this.cli.globalCommand;if($)console.log(`${D}/${$} ${iw}`)}checkRequiredArgs(){let D=this.args.filter(($)=>$.required).length;if(this.cli.args.length<D)throw new J5(`missing required args for command \`${this.rawName}\``)}checkUnknownOptions(){let{options:D,globalCommand:$}=this.cli;if(!this.config.allowUnknownOptions){for(let F of Object.keys(D))if(F!=="--"&&!this.hasOption(F)&&!$.hasOption(F))throw new J5(`Unknown option \`${F.length>1?`--${F}`:`-${F}`}\``)}}checkOptionValue(){let{options:D,globalCommand:$}=this.cli,F=[...$.options,...this.options];for(let X of F){let J=D[X.name.split(".")[0]];if(X.required){let G=F.some((Y)=>Y.negated&&Y.names.includes(X.name));if(J===!0||J===!1&&!G)throw new J5(`option \`${X.rawName}\` value is missing`)}}}}class pJ extends cJ{constructor(D){super("@@global@@","",{},D)}}var X5=Object.assign;class VA extends hw{constructor(D=""){super();this.name=D,this.commands=[],this.rawArgs=[],this.args=[],this.options={},this.globalCommand=new pJ(this),this.globalCommand.usage("<command> [options]")}usage(D){return this.globalCommand.usage(D),this}command(D,$,F){let X=new cJ(D,$||"",F,this);return X.globalCommand=this.globalCommand,this.commands.push(X),X}option(D,$,F){return this.globalCommand.option(D,$,F),this}help(D){return this.globalCommand.option("-h, --help","Display this message"),this.globalCommand.helpCallback=D,this.showHelpOnExit=!0,this}version(D,$="-v, --version"){return this.globalCommand.version(D,$),this.showVersionOnExit=!0,this}example(D){return this.globalCommand.example(D),this}outputHelp(){if(this.matchedCommand)this.matchedCommand.outputHelp();else this.globalCommand.outputHelp()}outputVersion(){this.globalCommand.outputVersion()}setParsedInfo({args:D,options:$},F,X){if(this.args=D,this.options=$,F)this.matchedCommand=F;if(X)this.matchedCommandName=X;return this}unsetMatchedCommand(){this.matchedCommand=void 0,this.matchedCommandName=void 0}parse(D=lw,{run:$=!0}={}){if(this.rawArgs=D,!this.name)this.name=D[1]?dw(D[1]):"cli";let F=!0;for(let J of this.commands){let G=this.mri(D.slice(2),J),Y=G.args[0];if(J.isMatched(Y)){F=!1;let B=X5(X5({},G),{args:G.args.slice(1)});this.setParsedInfo(B,J,Y),this.emit(`command:${Y}`,J)}}if(F){for(let J of this.commands)if(J.name===""){F=!1;let G=this.mri(D.slice(2),J);this.setParsedInfo(G,J),this.emit("command:!",J)}}if(F){let J=this.mri(D.slice(2));this.setParsedInfo(J)}if(this.options.help&&this.showHelpOnExit)this.outputHelp(),$=!1,this.unsetMatchedCommand();if(this.options.version&&this.showVersionOnExit&&this.matchedCommandName==null)this.outputVersion(),$=!1,this.unsetMatchedCommand();let X={args:this.args,options:this.options};if($)this.runMatchedCommand();if(!this.matchedCommand&&this.args[0])this.emit("command:*");return X}mri(D,$){let F=[...this.globalCommand.options,...$?$.options:[]],X=uw(F),J=[],G=D.indexOf("--");if(G>-1)J=D.slice(G+1),D=D.slice(0,G);let Y=xw(D,X);Y=Object.keys(Y).reduce((V,A)=>{return X5(X5({},V),{[UA(A)]:Y[A]})},{_:[]});let B=Y._,H={"--":J},U=$&&$.config.ignoreOptionDefaultValue?$.config.ignoreOptionDefaultValue:this.globalCommand.config.ignoreOptionDefaultValue,Q=Object.create(null);for(let V of F){if(!U&&V.config.default!==void 0)for(let A of V.names)H[A]=V.config.default;if(Array.isArray(V.config.type)){if(Q[V.name]===void 0)Q[V.name]=Object.create(null),Q[V.name].shouldTransform=!0,Q[V.name].transformFunction=V.config.type[0]}}for(let V of Object.keys(Y))if(V!=="_"){let A=V.split(".");cw(H,A,Y[V]),pw(H,Q)}return{args:B,options:H}}runMatchedCommand(){let{args:D,options:$,matchedCommand:F}=this;if(!F||!F.commandAction)return;F.checkUnknownOptions(),F.checkOptionValue(),F.checkRequiredArgs();let X=[];return F.args.forEach((J,G)=>{if(J.variadic)X.push(D.slice(G));else X.push(D[G])}),X.push($),F.commandAction.apply(this,X)}}var nw=(D="")=>new VA(D),AA=nw;HD();var k6={name:"@zonease/aiworker-cli",type:"module",version:"0.10.1",description:"AIWorker CLI \u2014 self-hosted Project Brain and Worker/Fleet aggregation runtime",license:"MIT",homepage:"https://github.com/ZonEaseTech/aiworker#readme",repository:{type:"git",url:"git+https://github.com/ZonEaseTech/aiworker.git"},publishConfig:{access:"public"},bin:{aiworker:"./dist/aiworker.js"},files:["README.md","dist/"],engines:{bun:">=1.1"},scripts:{typecheck:"tsc --noEmit",test:"bun test --timeout=15000","test:stress":"bun test --timeout=15000 --rerun-each=3 src/commands/worker/init.integration.test.ts src/commands/worker/sessions.test.ts",build:"bun run --filter '@zonease/aiworker-web' build && bun run build:bundle","build:bundle":"bun build --target=bun --minify --outfile=dist/aiworker-bun.js src/aiworker.ts && bun scripts/build-publish-manifest.ts",prepublishOnly:"bun run build","smoke:aiworker-run":"bun scripts/smoke-aiworker-run.ts","smoke:aiworker-fleet":"bun scripts/smoke-aiworker-fleet.ts"},devDependencies:{"@types/bun":"^1.2.13","@zonease/aiworker-api":"workspace:*","@zonease/aiworker-core":"workspace:*","@zonease/aiworker-fs-layout":"workspace:*","@zonease/aiworker-gateway":"workspace:*","@zonease/aiworker-gateway-proto":"workspace:*","@zonease/aiworker-shared":"workspace:*","@zonease/aiworker-storage-sqlite":"workspace:*",cac:"^6.7.14",consola:"^3.4.2",typescript:"^5.8.3",yaml:"^2.7.1"}};HD();import $R from"process";Z0();class I0 extends Error{code;constructor(D,$="operator_ws_error"){super(D);this.code=$;this.name="OperatorWsError"}}function iZ(){let D=null,$=!1,F=!1,X=new Map,J=new Map;function G(Z){for(let[,O]of X){if(O.timer)clearTimeout(O.timer);O.signalCleanup?.(),O.reject(Z)}X.clear()}function Y(Z){let O=X.get(Z.id);if(!O)return;if(X.delete(Z.id),O.timer)clearTimeout(O.timer);if(O.signalCleanup?.(),Z.ok)O.resolve(Z.result);else{let j=Z.error;O.reject(new I0(`${j.code}: ${j.message}`,j.code))}}function B(Z){let O=J.get(Z.name);if(!O||O.size===0)return;for(let j of O)try{j(Z.payload)}catch{}}function H(Z){let O=Q1(Z);if(!O.ok)return;let j=O.frame;if(j.type==="response")Y(j);else if(j.type==="event")B(j)}async function U(Z){if($)throw new I0("aiworker client \u5DF2\u7ECF\u8FDE\u63A5","already_connected");let O=Z.timeoutMs??1e4;await new Promise((j,P)=>{let T=!1,h;try{h=new WebSocket(Z.url)}catch(N){P(new I0(`WebSocket \u6784\u9020\u5931\u8D25 (${Z.url}): ${N instanceof Error?N.message:String(N)}`,"ws_construct_failed"));return}D=h;let q=setTimeout(()=>{if(T)return;T=!0;try{h.close()}catch{}P(new I0(`\u8FDE\u63A5 gateway \u8D85\u65F6 (>${O}ms): ${Z.url}`,"connect_timeout"))},O);h.onopen=()=>{let N={type:"connect",role:l8.OPERATOR,agentId:Z.deviceId,deviceId:Z.deviceId,auth:{token:Z.token},...Z.meta?{meta:Z.meta}:{}};try{h.send(dD(N))}catch(w){if(T)return;T=!0,clearTimeout(q),P(new I0(`\u53D1\u9001 connect \u5E27\u5931\u8D25: ${w instanceof Error?w.message:String(w)}`,"connect_send_failed"));return}if(!T)T=!0,clearTimeout(q),$=!0,j()},h.onmessage=(N)=>{let w=typeof N.data==="string"?N.data:N.data instanceof ArrayBuffer?new TextDecoder().decode(N.data):String(N.data);H(w)},h.onerror=(N)=>{if(T)return;T=!0,clearTimeout(q);let w=N.message??"unknown";P(new I0(`WS \u8FDE\u63A5\u9519\u8BEF: ${w}`,"ws_error"))},h.onclose=(N)=>{if(F=!0,$=!1,G(new I0(`WS \u5DF2\u5173\u95ED (code=${N.code}, reason=${N.reason||"n/a"})`,"ws_closed")),!T)T=!0,clearTimeout(q),P(new I0(`WS \u5728\u63E1\u624B\u9636\u6BB5\u88AB\u5173\u95ED (code=${N.code})`,"ws_closed_early"))}})}function Q(){if(!$||F||D===null||D.readyState!==WebSocket.OPEN)throw new I0("aiworker client \u672A\u8FDE\u63A5\u6216\u5DF2\u5173\u95ED","not_connected")}async function V(Z,O,j){Q();let P=crypto.randomUUID(),T={type:"request",id:P,method:Z,...O===void 0?{}:{params:O}};return await new Promise((h,q)=>{let N=j?.timeoutMs??30000,w=null,i=null,I={resolve:h,reject:q,timer:null,signalCleanup:null};if(w=setTimeout(()=>{X.delete(P),i?.(),q(new I0(`request ${Z} \u8D85\u65F6 (>${N}ms)`,"request_timeout"))},N),I.timer=w,j?.signal){let x=j.signal;if(x.aborted){X.delete(P),clearTimeout(w),q(x.reason??new I0(`request ${Z} \u88AB abort`,"aborted"));return}let y=()=>{if(X.delete(P),w)clearTimeout(w);q(x.reason??new I0(`request ${Z} \u88AB abort`,"aborted"))};x.addEventListener("abort",y,{once:!0}),i=()=>x.removeEventListener("abort",y),I.signalCleanup=i}X.set(P,I);try{D?.send(dD(T))}catch(x){if(X.delete(P),w)clearTimeout(w);i?.(),q(new I0(`request ${Z} \u53D1\u9001\u5931\u8D25: ${x instanceof Error?x.message:String(x)}`,"send_failed"))}})}async function A(Z,O,j){if(!o$(Z))throw new I0(`method ${Z} \u672A\u5728 @zonease/aiworker-gateway-proto \u6CE8\u518C`,"unknown_method");return await V(Z,O,j)}function K(Z,O){if(!KG(Z));let j=J.get(Z);if(!j)j=new Set,J.set(Z,j);return j.add(O),()=>{let P=J.get(Z);if(!P)return;if(P.delete(O),P.size===0)J.delete(Z)}}async function M(Z,O){if(!D||F)return;await new Promise((j)=>{let P=D;if(!P){j();return}if(P.readyState===WebSocket.CLOSED){F=!0,$=!1,j();return}let T=P.onclose;P.onclose=(h)=>{if(typeof T==="function")T.call(P,h);j()};try{P.close(Z,O)}catch{}})}function C(){return $&&!F&&D!==null&&D.readyState===WebSocket.OPEN}return{connect:U,request:A,requestRaw:V,onEvent:K,close:M,isOpen:C}}r8();async function bD(D,$={}){let F=await GF(),X=($.createClient??iZ)();try{await X.connect({url:z7($.gatewayUrl??F.gatewayUrl),deviceId:F.deviceId,token:$.token??F.deviceToken,...$.connectTimeoutMs===void 0?{}:{timeoutMs:$.connectTimeoutMs}});let J=await D({client:X,state:F});return await X.close(1000,"aiworker session done"),J}catch(J){try{await X.close(1011,"aiworker session error")}catch{}throw J}}function rD(D){let $=JSON.stringify(D,null,2);$R.stdout.write(`${$}
1771
1771
  `)}function l2(D){$R.stdout.write(`${JSON.stringify(D)}
1772
- `)}function LD(D){if(!(D instanceof I0))return 1;switch(D.code){case"NOT_FOUND":case"unknown_method":return 2;case"request_timeout":case"connect_timeout":return 3;case"ws_closed":case"ws_closed_early":case"not_connected":return 4;default:return 1}}async function FR(D={}){try{let $=await bD(async({client:F})=>{if(D.workerId!==void 0&&D.workerId.length>0)return await F.request("approval.list",{workerId:D.workerId});let J=(await F.request("workers.list",{})).workers.filter((Y)=>Y.online).map((Y)=>Y.workerId),G=[];for(let Y of J)try{let B=await F.request("approval.list",{workerId:Y});for(let H of B.approvals)G.push(H)}catch(B){_.warn(`approval.list ${Y} \u5931\u8D25: ${B instanceof Error?B.message:String(B)}`)}return{approvals:G}});return rD($),0}catch($){return _.error(`fleet approvals list \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),LD($)}}async function XR(D){try{let $=await bD(async({client:F})=>{return await F.request("approval.grant",{workerId:D.workerId,taskId:D.taskId,toolCallId:D.toolCallId,decision:D.deny===!0?"deny":"allow"})});return rD($),0}catch($){return _.error(`fleet approvals grant \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),LD($)}}Z0();HD();async function JR(D){let $=D.timeoutMs??120000;try{return await bD(async({client:F})=>{return await new Promise((X)=>{let J=!1,G=(Q)=>{if(J)return;J=!0,X(Q)},Y=setTimeout(()=>{l2({kind:"error",payload:{code:"timeout",message:`chat \u7B49\u5F85 agent.done \u8D85\u65F6 (>${$}ms)`}}),G(3)},$),B=D.workerId,H=(Q)=>{if(Q===null||typeof Q!=="object")return!1;let V=Q.workerId;return typeof V==="string"&&V===B},U=[];U.push(F.onEvent(YD.CHAT_MESSAGE,(Q)=>{if(!H(Q))return;l2({kind:YD.CHAT_MESSAGE,payload:Q})})),U.push(F.onEvent(YD.AGENT_THINKING,(Q)=>{if(!H(Q))return;l2({kind:YD.AGENT_THINKING,payload:Q})})),U.push(F.onEvent(YD.AGENT_TOOL_CALL,(Q)=>{if(!H(Q))return;l2({kind:YD.AGENT_TOOL_CALL,payload:Q})})),U.push(F.onEvent(YD.AGENT_DONE,(Q)=>{if(!H(Q))return;l2({kind:"done",payload:Q}),clearTimeout(Y);for(let V of U)V();G(0)})),F.request("chat.send",{workerId:D.workerId,content:D.content,...D.conversationId===void 0?{}:{conversationId:D.conversationId}},{timeoutMs:Math.min($,30000)}).then((Q)=>{l2({kind:"accepted",payload:Q})}).catch((Q)=>{l2({kind:"error",payload:{code:"request_failed",message:Q instanceof Error?Q.message:String(Q)}}),clearTimeout(Y);for(let V of U)V();G(LD(Q))})})})}catch(F){return _.error(`chat \u5931\u8D25: ${F instanceof Error?F.message:String(F)}`),LD(F)}}HD();async function GR(D){try{let $=await bD(async({client:F})=>{return await F.request("config.get",{workerId:D})});return rD($),0}catch($){return _.error(`fleet config get \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),LD($)}}async function YR(D){let $;try{$=JSON.parse(D.configJson)}catch(F){return _.error(`fleet config set \u53C2\u6570\u4E0D\u662F\u5408\u6CD5 JSON: ${F instanceof Error?F.message:String(F)}`),2}try{let F=await bD(async({client:X})=>{return await X.request("config.put",{workerId:D.workerId,ifMatch:D.ifMatch,config:$})});return rD(F),0}catch(F){return _.error(`fleet config set \u5931\u8D25: ${F instanceof Error?F.message:String(F)}`),LD(F)}}HD();async function BR(D={}){let $=D.withSession??bD,F=D.printJson??rD,X=D.errorToExitCode??LD;try{let J=await $(async({client:G})=>{return await G.request("enroll.list",{})});return F(J),0}catch(J){return _.error(`fleet enroll list \u5931\u8D25: ${J instanceof Error?J.message:String(J)}`),X(J)}}async function HR(D,$={}){let F=$.withSession??bD,X=$.printJson??rD,J=$.errorToExitCode??LD;try{let G=await F(async({client:Y})=>{return await Y.request("enroll.approve",{otp:D})});return _.success(`\u5DF2\u6279\u51C6 OTP ${D}\uFF0CworkerId=${G.workerId}`),X({workerId:G.workerId,deviceToken:G.deviceToken}),0}catch(G){return _.error(`fleet enroll approve \u5931\u8D25: ${G instanceof Error?G.message:String(G)}`),J(G)}}async function WR(D,$={}){let F=$.withSession??bD,X=$.printJson??rD,J=$.errorToExitCode??LD;try{let G=await F(async({client:Y})=>{return await Y.request("enroll.reject",{otp:D})});if(G.rejected)_.info(`\u5DF2\u62D2\u7EDD OTP ${D}`);else _.warn(`OTP ${D} \u4E0D\u5B58\u5728\u6216\u5DF2\u8FC7\u671F`);return X(G),0}catch(G){return _.error(`fleet enroll reject \u5931\u8D25: ${G instanceof Error?G.message:String(G)}`),J(G)}}Z0();HD();async function UR(D){let $=D.follow===!0,F=D.timeoutMs??($?3600000:5000);try{return await bD(async({client:X})=>{return await new Promise((J)=>{let G=!1,Y=(U)=>{if(G)return;G=!0,J(U)},B=X.onEvent(YD.LOGS_LINE,(U)=>{if(U===null||typeof U!=="object")return;let Q=U.workerId;if(typeof Q!=="string"||Q!==D.workerId)return;l2(U)}),H=setTimeout(()=>{B(),Y(0)},F);X.request("logs.tail",{workerId:D.workerId,follow:$,...D.tail===void 0?{}:{lines:D.tail}}).then(()=>{}).catch((U)=>{B(),clearTimeout(H),l2({kind:"error",payload:{code:"request_failed",message:U instanceof Error?U.message:String(U)}}),Y(LD(U))})})})}catch(X){return _.error(`logs \u5931\u8D25: ${X instanceof Error?X.message:String(X)}`),LD(X)}}HD();r8();async function QR(D,$={}){let F=$.withSession??bD,X=$.patchOperatorState??n8,J=$.printJson??rD,G=$.errorToExitCode??LD;try{let Y=await F(async({client:B})=>{return await B.request("workers.pair",{workerBaseUrl:D.workerUrl,bootstrapToken:D.bootstrapToken,...D.displayName===void 0?{}:{displayName:D.displayName}})},D.url===void 0?{}:{gatewayUrl:D.url});return await X({...D.url===void 0?{}:{gatewayUrl:D.url},deviceToken:Y.deviceToken,defaultWorkerId:Y.workerId}),_.success(`\u5DF2\u914D\u5BF9 worker ${Y.workerId}`),J({workerId:Y.workerId}),0}catch(Y){return _.error(`fleet pair \u5931\u8D25: ${Y instanceof Error?Y.message:String(Y)}`),G(Y)}}HD();var VR=["web","line","telegram","lark","whatsapp"];function Ki(D){if(!VR.includes(D))throw Error(`\u65E0\u6548 channel "${D}"\uFF0C\u53EF\u9009\u503C\uFF1A${VR.join(", ")}`);return D}async function AR(D){try{let $=await bD(async({client:F})=>{return await F.request("cron.list",{workerId:D})});return rD($),0}catch($){return _.error(`fleet schedule list \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),LD($)}}async function KR(D){try{let $=Ki(D.channel),F={expression:D.expression,prompt:D.prompt,channel:$,chatId:D.chatId};if(D.accountId!==void 0)F.accountId=D.accountId;if(D.enabled!==void 0)F.enabled=D.enabled;let X=await bD(async({client:J})=>{return await J.request("cron.add",{workerId:D.workerId,job:F})});return rD(X),0}catch($){return _.error(`fleet schedule add \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),LD($)}}async function _R(D,$){try{let F=await bD(async({client:X})=>{return await X.request("cron.remove",{workerId:D,jobId:$})});return rD(F),0}catch(F){return _.error(`fleet schedule remove \u5931\u8D25: ${F instanceof Error?F.message:String(F)}`),LD(F)}}HD();async function CR(D){try{let $=await bD(async({client:F})=>{return await F.request("token.rotate",{workerId:D})});return rD($),0}catch($){return _.error(`fleet token rotate \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),LD($)}}HD();async function MR(){try{let D=await bD(async({client:$})=>{return await $.request("workers.list",{})});return rD(D),0}catch(D){return _.error(`workers list \u5931\u8D25: ${D instanceof Error?D.message:String(D)}`),LD(D)}}async function ZR(D){try{let $=await bD(async({client:F})=>{return await F.request("workers.info",{workerId:D})});return rD($),0}catch($){return _.error(`workers info \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),LD($)}}async function RR(D={}){try{let $=await bD(async({client:X})=>{let J={...D.env??{}};if(D.forceId!==void 0&&D.forceId.length>0)J.AIWORKER_FORCE_ID=D.forceId;return await X.request("workers.launch",{...D.displayName===void 0?{}:{displayName:D.displayName},...D.image===void 0?{}:{image:D.image},...Object.keys(J).length===0?{}:{env:J}})}),{patchOperatorState:F}=await Promise.resolve().then(() => (r8(),vB));return await F({deviceToken:$.deviceToken,defaultWorkerId:$.workerId}),_.success(`\u5DF2 launch worker ${$.workerId}`),rD({workerId:$.workerId}),0}catch($){return _.error(`workers launch \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),LD($)}}async function OR(D){try{let $=await bD(async({client:F})=>{return await F.request("workers.stop",{workerId:D})});return rD($),0}catch($){return _.error(`workers stop \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),LD($)}}async function ER(D){try{let $=await bD(async({client:G})=>{return await G.request("workers.remove",{workerId:D})}),{loadOperatorState:F,saveOperatorState:X}=await Promise.resolve().then(() => (r8(),vB)),J=await F();if(J.defaultWorkerId===D){let G={...J};delete G.defaultWorkerId,await X(G)}return rD($),0}catch($){return _.error(`workers remove \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),LD($)}}import sF from"process";import{createHash as Xr}from"crypto";Z0();kH();fH();import{existsSync as PE,mkdirSync as bi}from"fs";import i7 from"path";import{fileURLToPath as fi}from"url";import{Database as gi}from"bun:sqlite";SF();var gH={};z8(gH,{registeredWorkers:()=>xD,auditEvents:()=>w1});var xD=Q0("registered_workers",{id:L("id").primaryKey(),baseUrl:L("base_url").notNull(),displayName:L("display_name").notNull(),apiTokenEnc:L("api_token_enc").notNull(),nonce:L("nonce").notNull(),authTag:L("auth_tag").notNull(),addedAt:L("added_at").notNull().$defaultFn(()=>new Date().toISOString()),addedBy:L("added_by").$type().notNull(),lastSeenAt:L("last_seen_at"),lastSeenState:L("last_seen_state").$type(),lastConfigVersion:vD("last_config_version")}),w1=Q0("audit_events",{id:vD("id").primaryKey({autoIncrement:!0}),at:L("at").notNull().$defaultFn(()=>new Date().toISOString()),actor:L("actor").notNull(),action:L("action").notNull(),workerId:L("worker_id"),detail:L("detail",{mode:"json"}).$type()},(D)=>({workerIdIdx:Y0("audit_events_worker_id_idx").on(D.workerId)}));var LE=i7.dirname(fi(import.meta.url));function hi(D){let $=i7.resolve(LE,"../../drizzle",D);if(PE($))return $;let F=i7.resolve(LE,"drizzle",D);if(PE(F))return F;return $}var hH=hi("fleet"),n7=null;function vi(D){let $=D===":memory:"?D:i7.resolve(D);try{if($!==":memory:")bi(i7.dirname($),{recursive:!0,mode:448});let F=new gi($,{create:!0});return F.exec("PRAGMA journal_mode = WAL"),F.exec("PRAGMA foreign_keys = ON"),Z3(F,{schema:gH})}catch(F){let X=F instanceof Error?F.message:String(F);throw Error(`Unable to open fleet database at ${$}. Ensure the parent directory exists and is writable, or set AIWORKER_FLEET_DB_PATH to a writable location. Original error: ${X}`)}}function qE(D){return n7=vi(D),n7}function vH(){if(!n7)throw Error("Fleet database not initialized. Call initFleetDb() first.");return n7}function xH(){n7=null}function zE(D=hH){wF(vH(),{migrationsFolder:D})}HD();$0();MD();jD();import IE from"path";import xi from"process";var yi=W.object({AIWORKER_GATEWAY_PORT:W.coerce.number().int().positive().max(65535).default(9218),AIWORKER_GATEWAY_HOST:W.string().min(1).default("127.0.0.1"),AIWORKER_ADMIN_EXTERNAL_AUTH:W.enum(["1","true","0","false"]).default("0").transform(W7),INTERNAL_SHARED_SECRET:W.string().min(16).optional(),NODE_ENV:W.enum(["development","production","test"]).default("development"),AIWORKER_MASTER_KEY:W.string().regex(/^[0-9a-f]{64}$/,"AIWORKER_MASTER_KEY must be 32-byte hex (64 hex chars)").optional(),AIWORKER_FLEET_DB_PATH:W.string().optional(),AIWORKER_GATEWAY_CAN_LAUNCH:W.enum(["true","false"]).default("false").transform((D)=>D==="true"),AIWORKER_MAX_WORKERS:W.coerce.number().int().positive().optional(),AIWORKER_JOIN_TOKEN:W.string().min(16).optional(),AIWORKER_ENROLL_OTP_TTL_SEC:W.coerce.number().int().min(30).max(3600).default(300),DOCKER_HOST:W.string().default("/var/run/docker.sock"),AIWORKER_IMAGE:W.string().optional(),AIWORKER_NETWORK:W.string().default("aiworker_default"),WORKER_DATA_ROOT:W.string().optional(),WORKER_MEMORY_LIMIT:W.string().optional(),WORKER_CPU_LIMIT:W.coerce.number().optional(),AIWORKER_LAUNCH_BASE_URL_TEMPLATE:W.string().default("http://{containerName}:9217")}).superRefine((D,$)=>{if(!D.AIWORKER_GATEWAY_CAN_LAUNCH)return;if(!D.INTERNAL_SHARED_SECRET)$.addIssue({code:W.ZodIssueCode.custom,path:["INTERNAL_SHARED_SECRET"],message:"INTERNAL_SHARED_SECRET is required when AIWORKER_GATEWAY_CAN_LAUNCH=true"});let F=[["AIWORKER_IMAGE",D.AIWORKER_IMAGE],["WORKER_DATA_ROOT",D.WORKER_DATA_ROOT],["WORKER_MEMORY_LIMIT",D.WORKER_MEMORY_LIMIT],["WORKER_CPU_LIMIT",D.WORKER_CPU_LIMIT]];for(let[X,J]of F)if(J===void 0||J==="")$.addIssue({code:W.ZodIssueCode.custom,path:[X],message:`${X} is required when AIWORKER_GATEWAY_CAN_LAUNCH=true`})});function SE(){let D=yi.parse(xi.env);return{port:D.AIWORKER_GATEWAY_PORT,host:D.AIWORKER_GATEWAY_HOST,adminExternalAuthAcknowledged:D.AIWORKER_ADMIN_EXTERNAL_AUTH,internalSharedSecret:D.INTERNAL_SHARED_SECRET,masterKeyHex:D.AIWORKER_MASTER_KEY,fleetDbPath:ui(D.AIWORKER_FLEET_DB_PATH),canLaunch:D.AIWORKER_GATEWAY_CAN_LAUNCH,maxWorkers:D.AIWORKER_MAX_WORKERS,joinToken:D.AIWORKER_JOIN_TOKEN,enrollOtpTtlSec:D.AIWORKER_ENROLL_OTP_TTL_SEC,nodeEnv:D.NODE_ENV,supervisor:{dockerHost:D.DOCKER_HOST,image:D.AIWORKER_IMAGE,network:D.AIWORKER_NETWORK,workerDataRoot:D.WORKER_DATA_ROOT,workerMemoryLimit:D.WORKER_MEMORY_LIMIT,workerCpuLimit:D.WORKER_CPU_LIMIT,launchBaseUrlTemplate:D.AIWORKER_LAUNCH_BASE_URL_TEMPLATE}}}function ui(D){if(D===":memory:")return D;let $=D&&D.length>0?D:IE.join(d2(),"fleet.db");return IE.resolve($)}Z0();function Y2(D,$){let F=dD($);D.forEach((X)=>{try{X.ws.send(F)}catch{}})}class kF{windowMs;threshold;blockMs;now;entries=new Map;constructor(D={}){this.windowMs=D.windowMs??60000,this.threshold=D.threshold??5,this.blockMs=D.blockMs??600000,this.now=D.now??(()=>Date.now())}isBlocked(D){if(!D)return{blocked:!1,retryAfterMs:0,blockUntil:0};let $=this.entries.get(D);if(!$)return{blocked:!1,retryAfterMs:0,blockUntil:0};let F=this.now();if($.blockUntil>F)return{blocked:!0,retryAfterMs:$.blockUntil-F,blockUntil:$.blockUntil};return{blocked:!1,retryAfterMs:0,blockUntil:0}}recordFailure(D){if(!D)return{blockedNow:!1,fails:0,blockUntil:0};let $=this.now(),F=this.entries.get(D);if(F&&F.blockUntil>$)return{blockedNow:!1,fails:F.fails,blockUntil:F.blockUntil};if(!F||$-F.firstFailAt>this.windowMs)F={fails:1,firstFailAt:$,blockUntil:0};else F.fails+=1;let X=!1;if(F.fails>=this.threshold&&F.blockUntil===0)F.blockUntil=$+this.blockMs,X=!0;return this.entries.set(D,F),{blockedNow:X,fails:F.fails,blockUntil:F.blockUntil}}recordSuccess(D){if(!D)return;this.entries.delete(D)}prune(){let D=this.now(),$=0;for(let[F,X]of this.entries){if(X.blockUntil>D)continue;if(D-X.firstFailAt>this.windowMs)this.entries.delete(F),$+=1}return $}snapshot(D){return this.entries.get(D)}size(){return this.entries.size}clear(){this.entries.clear()}}class bF{map=new Map;timeoutMs;now;idFactory;onExpire;timers=new Map;constructor(D={}){this.timeoutMs=D.timeoutMs??60000,this.now=D.now??(()=>Date.now()),this.idFactory=D.idFactory??(()=>crypto.randomUUID()),this.onExpire=D.onExpire}allocate(D){let $=this.idFactory(),F={...D,gatewayRequestId:$,createdAt:this.now()};if(this.map.set($,F),this.timeoutMs>0){let X=setTimeout(()=>{let J=this.map.get($);if(!J)return;this.map.delete($),this.timers.delete($),this.onExpire?.(J,"timeout")},this.timeoutMs);if(typeof X.unref==="function")X.unref();this.timers.set($,X)}return F}consume(D){let $=this.map.get(D);if(!$)return;return this.map.delete(D),this.clearTimer(D),$}cancelByOperator(D){let $=[];for(let F of this.map.values())if(F.operatorWs===D)$.push(F);for(let F of $)this.map.delete(F.gatewayRequestId),this.clearTimer(F.gatewayRequestId),this.onExpire?.(F,"operator_gone");return $}cancelByWorker(D){let $=[];for(let F of this.map.values())if(F.workerId===D)$.push(F);for(let F of $)this.map.delete(F.gatewayRequestId),this.clearTimer(F.gatewayRequestId),this.onExpire?.(F,"node_gone");return $}size(){return this.map.size}dispose(){for(let D of this.timers.values())clearTimeout(D);this.timers.clear(),this.map.clear()}clearTimer(D){let $=this.timers.get(D);if($)clearTimeout($),this.timers.delete(D)}}class fF{byWorkerId=new Map;byWs=new WeakMap;register(D){let $=this.byWorkerId.get(D.workerId);if(this.byWorkerId.set(D.workerId,D),this.byWs.set(D.ws,D),$)return this.byWs.delete($.ws),{replaced:$};return{}}unregisterByWs(D){let $=this.byWs.get(D);if(!$)return;let F=this.byWorkerId.get($.workerId);if(F&&F.ws===D)this.byWorkerId.delete($.workerId);return this.byWs.delete(D),$}get(D){return this.byWorkerId.get(D)}has(D){return this.byWorkerId.has(D)}list(){return Array.from(this.byWorkerId.values())}size(){return this.byWorkerId.size}}class gF{byWs=new Map;register(D){this.byWs.set(D.ws,D)}unregister(D){let $=this.byWs.get(D);if(!$)return;return this.byWs.delete(D),$}list(){return Array.from(this.byWs.values())}size(){return this.byWs.size}forEach(D){this.byWs.forEach(D)}}import{randomBytes as mi}from"crypto";var yH="ABCDEFGHJKMNPQRSTVWXYZ23456789",TE=4,ci=5;class hF{ttlMs;onExpire;generator;entries=new Map;wsToOtp=new WeakMap;disposed=!1;constructor(D){if(!Number.isFinite(D.ttlMs)||D.ttlMs<=0)throw Error("PendingEnrollmentRegistry: ttlMs \u5FC5\u987B\u4E3A\u6B63\u6570");this.ttlMs=D.ttlMs,this.onExpire=D.onExpire,this.generator=D.generateOtp??pi}submit(D){if(this.disposed)throw Error("PendingEnrollmentRegistry: already disposed");let $=this.allocateUniqueOtp(),F=Date.now(),X=F+this.ttlMs,J={otp:$,workerId:D.workerId,apiToken:D.apiToken,displayName:D.displayName,ws:D.ws,submittedAt:F,expiresAt:X,timer:setTimeout(()=>this.handleExpire($),this.ttlMs)};return this.entries.set($,J),this.wsToOtp.set(D.ws,$),{otp:$,expiresAt:X}}list(){return Array.from(this.entries.values()).map((D)=>({otp:D.otp,workerId:D.workerId,displayName:D.displayName,submittedAt:D.submittedAt,expiresAt:D.expiresAt}))}approve(D){return this.popInternal(D)}reject(D){return this.popInternal(D)}has(D){return this.entries.has(D)}removeByWs(D){let $=this.wsToOtp.get(D);if(!$)return;return this.popInternal($)}size(){return this.entries.size}dispose(){if(this.disposed)return;this.disposed=!0;for(let D of this.entries.values())clearTimeout(D.timer);this.entries.clear()}popInternal(D){let $=this.entries.get(D);if(!$)return;clearTimeout($.timer),this.entries.delete(D),this.wsToOtp.delete($.ws);let{timer:F,...X}=$;return X}handleExpire(D){let $=this.entries.get(D);if(!$)return;if(this.entries.delete(D),this.wsToOtp.delete($.ws),!this.onExpire)return;try{let{timer:F,...X}=$;this.onExpire(X)}catch{}}allocateUniqueOtp(){for(let D=0;D<ci;D++){let $=this.generator();if(!this.entries.has($))return $}throw Error("PendingEnrollmentRegistry: failed to allocate unique OTP after retries")}}function pi(){return`${wE(TE)}-${wE(TE)}`}function wE(D){let $=mi(D),F="";for(let X=0;X<D;X++)F+=yH[$[X]%yH.length];return F}V0();import{Buffer as U8}from"buffer";import{createCipheriv as di,createDecipheriv as li,randomBytes as ii,timingSafeEqual as ni}from"crypto";var kE="aes-256-gcm",ri=12,si=32,ai=/^[0-9a-f]{64}$/;function bE(D){if(!ai.test(D))throw Error("Gateway AIWORKER_MASTER_KEY must be 32-byte hex");let $=U8.from(D,"hex");if($.length!==si)throw Error("Gateway AIWORKER_MASTER_KEY must be 32-byte hex");return $}function vF(D,$){let F=bE($),X=ii(ri),J=di(kE,F,X),G=U8.concat([J.update(D,"utf8"),J.final()]),Y=J.getAuthTag();return{ciphertext:G.toString("base64"),nonce:X.toString("base64"),authTag:Y.toString("base64")}}function xF(D,$,F,X){let J=bE(X),G=li(kE,J,U8.from($,"base64"));return G.setAuthTag(U8.from(F,"base64")),U8.concat([G.update(U8.from(D,"base64")),G.final()]).toString("utf8")}function yF(D,$){let F=U8.from(D,"utf8"),X=U8.from($,"utf8");if(F.length!==X.length)return!1;return ni(F,X)}function oi(D){return D.replace(/[\\%_]/g,($)=>`\\${$}`)}class uF{db;constructor(D){this.db=D}listRegisteredWorkers(){return this.db.select().from(xD).orderBy(RD(xD.addedAt)).all().map(($)=>{let{apiTokenEnc:F,nonce:X,authTag:J,...G}=$;return{...G,lastSeenAt:G.lastSeenAt??void 0,lastSeenState:G.lastSeenState??void 0,lastConfigVersion:G.lastConfigVersion??void 0}})}getRegisteredWorker(D){let $=this.db.select().from(xD).where(S(xD.id,D)).get();if(!$)return;let{apiTokenEnc:F,nonce:X,authTag:J,...G}=$;return{...G,lastSeenAt:G.lastSeenAt??void 0,lastSeenState:G.lastSeenState??void 0,lastConfigVersion:G.lastConfigVersion??void 0}}getRegisteredWorkerRaw(D){let $=this.db.select().from(xD).where(S(xD.id,D)).get();if(!$)return;return{...$,lastSeenAt:$.lastSeenAt??void 0,lastSeenState:$.lastSeenState??void 0,lastConfigVersion:$.lastConfigVersion??void 0}}createRegisteredWorker(D,$){let F=vF(D.apiToken,$),X=new Date().toISOString(),J=D.baseUrl.replace(/\/+$/,""),G={id:D.workerId,baseUrl:J,displayName:D.displayName,apiTokenEnc:F.ciphertext,nonce:F.nonce,authTag:F.authTag,addedAt:X,addedBy:D.addedBy??"manual",lastSeenAt:X,lastSeenState:"online",lastConfigVersion:D.configVersion};this.db.insert(xD).values(G).run(),this.db.insert(w1).values({actor:"gateway",action:"gateway.worker.paired",workerId:D.workerId,detail:{baseUrl:J,displayName:D.displayName,addedBy:G.addedBy}}).run();let{apiTokenEnc:Y,nonce:B,authTag:H,...U}=G;return{...U,lastSeenAt:U.lastSeenAt??void 0,lastSeenState:U.lastSeenState??void 0,lastConfigVersion:U.lastConfigVersion??void 0}}upsertEnrolledWorker(D,$){let F=D.baseUrl.replace(/\/+$/,""),X=new Date().toISOString(),J=this.db.select().from(xD).where(S(xD.id,D.workerId)).get();if(!J){let U=vF(D.apiToken,$),Q={id:D.workerId,baseUrl:F,displayName:D.displayName,apiTokenEnc:U.ciphertext,nonce:U.nonce,authTag:U.authTag,addedAt:X,addedBy:D.addedBy??"self-enroll",lastSeenAt:X,lastSeenState:"online",lastConfigVersion:D.configVersion};this.db.insert(xD).values(Q).run();let{apiTokenEnc:V,nonce:A,authTag:K,...M}=Q;return{kind:"created",row:{...M,lastSeenAt:M.lastSeenAt??void 0,lastSeenState:M.lastSeenState??void 0,lastConfigVersion:M.lastConfigVersion??void 0}}}if(J.displayName!==D.displayName){this.db.update(xD).set({displayName:D.displayName,lastSeenAt:X,lastSeenState:"online"}).where(S(xD.id,D.workerId)).run();let{apiTokenEnc:U,nonce:Q,authTag:V,...A}=J;return{kind:"updated",row:{...A,displayName:D.displayName,lastSeenAt:X,lastSeenState:"online",lastConfigVersion:A.lastConfigVersion??void 0}}}this.db.update(xD).set({lastSeenAt:X,lastSeenState:"online"}).where(S(xD.id,D.workerId)).run();let{apiTokenEnc:G,nonce:Y,authTag:B,...H}=J;return{kind:"unchanged",row:{...H,lastSeenAt:X,lastSeenState:"online",lastConfigVersion:H.lastConfigVersion??void 0}}}updateEncryptedToken(D,$){if(!this.db.select({id:xD.id}).from(xD).where(S(xD.id,D.workerId)).get())return!1;let X=vF(D.newToken,$);return this.db.update(xD).set({apiTokenEnc:X.ciphertext,nonce:X.nonce,authTag:X.authTag}).where(S(xD.id,D.workerId)).run(),!0}removeRegisteredWorker(D){if(!this.db.select({id:xD.id}).from(xD).where(S(xD.id,D)).get())return!1;return this.db.delete(xD).where(S(xD.id,D)).run(),!0}countRegisteredWorkers(){return this.db.select({value:EF()}).from(xD).get()?.value??0}recordAudit(D){this.db.insert(w1).values({actor:D.actor,action:D.action,workerId:D.workerId??null,detail:D.detail}).run()}listAuditEvents(D={}){let $=Math.max(1,Math.min(200,D.limit??50)),F=[];if(typeof D.before==="number"&&Number.isFinite(D.before))F.push(QF(w1.id,D.before));if(D.actionPrefix&&D.actionPrefix.length>0){let B=`${oi(D.actionPrefix)}%`;F.push(E`${w1.action} LIKE ${B} ESCAPE '\\'`)}if(D.workerId&&D.workerId.length>0)F.push(S(w1.workerId,D.workerId));let X=F.length===0?void 0:F.length===1?F[0]:TD(...F),J=this.db.select().from(w1).where(X).orderBy(RD(w1.id)).limit($+1).all(),G=J.length>$;return{events:(G?J.slice(0,$):J).map((B)=>({id:B.id,at:B.at,actor:B.actor,action:B.action,workerId:B.workerId??null,detail:B.detail??null})),hasMore:G}}}Z0();MD();import{Buffer as vn}from"buffer";import{createHash as xn}from"crypto";import{resolve as uH,sep as ti}from"path";async function mF(D){let{webStaticDir:$}=D,F=uH($),X;try{X=ei(decodeURIComponent(D.pathnameAfterPrefix))}catch{return new Response("forbidden",{status:403})}let J=X===""?"index.html":X,G=uH(F,J);if(G!==F&&!G.startsWith(F+ti))return new Response("forbidden",{status:403});let Y=Bun.file(G);if(await Y.exists())return new Response(Y);if(!Dn(J)){let B=Bun.file(uH(F,"index.html"));if(await B.exists())return new Response(B)}return new Response("not found",{status:404})}function ei(D){let $=0;while($<D.length&&D[$]==="/")$+=1;return D.slice($)}function Dn(D){let $=D.lastIndexOf("/");return($===-1?D:D.slice($+1)).includes(".")}MD();function fE(D){if(p8(D.host))return;if(D.internalSharedSecret&&D.internalSharedSecret.length>0)return;throw Error(`[gateway] \u62D2\u7EDD\u542F\u52A8\uFF1Ahost="${D.host}" \u975E loopback\uFF0C\u4F46\u672A\u914D\u7F6E INTERNAL_SHARED_SECRET\u3002
1772
+ `)}function LD(D){if(!(D instanceof I0))return 1;switch(D.code){case"NOT_FOUND":case"unknown_method":return 2;case"request_timeout":case"connect_timeout":return 3;case"ws_closed":case"ws_closed_early":case"not_connected":return 4;default:return 1}}async function FR(D={}){try{let $=await bD(async({client:F})=>{if(D.workerId!==void 0&&D.workerId.length>0)return await F.request("approval.list",{workerId:D.workerId});let J=(await F.request("workers.list",{})).workers.filter((Y)=>Y.online).map((Y)=>Y.workerId),G=[];for(let Y of J)try{let B=await F.request("approval.list",{workerId:Y});for(let H of B.approvals)G.push(H)}catch(B){_.warn(`approval.list ${Y} \u5931\u8D25: ${B instanceof Error?B.message:String(B)}`)}return{approvals:G}});return rD($),0}catch($){return _.error(`fleet approvals list \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),LD($)}}async function XR(D){try{let $=await bD(async({client:F})=>{return await F.request("approval.grant",{workerId:D.workerId,taskId:D.taskId,toolCallId:D.toolCallId,decision:D.deny===!0?"deny":"allow"})});return rD($),0}catch($){return _.error(`fleet approvals grant \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),LD($)}}Z0();HD();async function JR(D){let $=D.timeoutMs??120000;try{return await bD(async({client:F})=>{return await new Promise((X)=>{let J=!1,G=(Q)=>{if(J)return;J=!0,X(Q)},Y=setTimeout(()=>{l2({kind:"error",payload:{code:"timeout",message:`chat \u7B49\u5F85 agent.done \u8D85\u65F6 (>${$}ms)`}}),G(3)},$),B=D.workerId,H=(Q)=>{if(Q===null||typeof Q!=="object")return!1;let V=Q.workerId;return typeof V==="string"&&V===B},U=[];U.push(F.onEvent(YD.CHAT_MESSAGE,(Q)=>{if(!H(Q))return;l2({kind:YD.CHAT_MESSAGE,payload:Q})})),U.push(F.onEvent(YD.AGENT_THINKING,(Q)=>{if(!H(Q))return;l2({kind:YD.AGENT_THINKING,payload:Q})})),U.push(F.onEvent(YD.AGENT_TOOL_CALL,(Q)=>{if(!H(Q))return;l2({kind:YD.AGENT_TOOL_CALL,payload:Q})})),U.push(F.onEvent(YD.AGENT_DONE,(Q)=>{if(!H(Q))return;l2({kind:"done",payload:Q}),clearTimeout(Y);for(let V of U)V();G(0)})),F.request("chat.send",{workerId:D.workerId,content:D.content,...D.conversationId===void 0?{}:{conversationId:D.conversationId}},{timeoutMs:Math.min($,30000)}).then((Q)=>{l2({kind:"accepted",payload:Q})}).catch((Q)=>{l2({kind:"error",payload:{code:"request_failed",message:Q instanceof Error?Q.message:String(Q)}}),clearTimeout(Y);for(let V of U)V();G(LD(Q))})})})}catch(F){return _.error(`chat \u5931\u8D25: ${F instanceof Error?F.message:String(F)}`),LD(F)}}HD();async function GR(D){try{let $=await bD(async({client:F})=>{return await F.request("config.get",{workerId:D})});return rD($),0}catch($){return _.error(`fleet config get \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),LD($)}}async function YR(D){let $;try{$=JSON.parse(D.configJson)}catch(F){return _.error(`fleet config set \u53C2\u6570\u4E0D\u662F\u5408\u6CD5 JSON: ${F instanceof Error?F.message:String(F)}`),2}try{let F=await bD(async({client:X})=>{return await X.request("config.put",{workerId:D.workerId,ifMatch:D.ifMatch,config:$})});return rD(F),0}catch(F){return _.error(`fleet config set \u5931\u8D25: ${F instanceof Error?F.message:String(F)}`),LD(F)}}HD();async function BR(D={}){let $=D.withSession??bD,F=D.printJson??rD,X=D.errorToExitCode??LD;try{let J=await $(async({client:G})=>{return await G.request("enroll.list",{})});return F(J),0}catch(J){return _.error(`fleet enroll list \u5931\u8D25: ${J instanceof Error?J.message:String(J)}`),X(J)}}async function HR(D,$={}){let F=$.withSession??bD,X=$.printJson??rD,J=$.errorToExitCode??LD;try{let G=await F(async({client:Y})=>{return await Y.request("enroll.approve",{otp:D})});return _.success(`\u5DF2\u6279\u51C6 OTP ${D}\uFF0CworkerId=${G.workerId}`),X({workerId:G.workerId,deviceToken:G.deviceToken}),0}catch(G){return _.error(`fleet enroll approve \u5931\u8D25: ${G instanceof Error?G.message:String(G)}`),J(G)}}async function WR(D,$={}){let F=$.withSession??bD,X=$.printJson??rD,J=$.errorToExitCode??LD;try{let G=await F(async({client:Y})=>{return await Y.request("enroll.reject",{otp:D})});if(G.rejected)_.info(`\u5DF2\u62D2\u7EDD OTP ${D}`);else _.warn(`OTP ${D} \u4E0D\u5B58\u5728\u6216\u5DF2\u8FC7\u671F`);return X(G),0}catch(G){return _.error(`fleet enroll reject \u5931\u8D25: ${G instanceof Error?G.message:String(G)}`),J(G)}}Z0();HD();async function UR(D){let $=D.follow===!0,F=D.timeoutMs??($?3600000:5000);try{return await bD(async({client:X})=>{return await new Promise((J)=>{let G=!1,Y=(U)=>{if(G)return;G=!0,J(U)},B=X.onEvent(YD.LOGS_LINE,(U)=>{if(U===null||typeof U!=="object")return;let Q=U.workerId;if(typeof Q!=="string"||Q!==D.workerId)return;l2(U)}),H=setTimeout(()=>{B(),Y(0)},F);X.request("logs.tail",{workerId:D.workerId,follow:$,...D.tail===void 0?{}:{lines:D.tail}}).then(()=>{}).catch((U)=>{B(),clearTimeout(H),l2({kind:"error",payload:{code:"request_failed",message:U instanceof Error?U.message:String(U)}}),Y(LD(U))})})})}catch(X){return _.error(`logs \u5931\u8D25: ${X instanceof Error?X.message:String(X)}`),LD(X)}}HD();r8();async function QR(D,$={}){let F=$.withSession??bD,X=$.patchOperatorState??n8,J=$.printJson??rD,G=$.errorToExitCode??LD;try{let Y=await F(async({client:B})=>{return await B.request("workers.pair",{workerBaseUrl:D.workerUrl,bootstrapToken:D.bootstrapToken,...D.displayName===void 0?{}:{displayName:D.displayName}})},D.url===void 0?{}:{gatewayUrl:D.url});return await X({...D.url===void 0?{}:{gatewayUrl:D.url},deviceToken:Y.deviceToken,defaultWorkerId:Y.workerId}),_.success(`\u5DF2\u914D\u5BF9 worker ${Y.workerId}`),J({workerId:Y.workerId}),0}catch(Y){return _.error(`fleet pair \u5931\u8D25: ${Y instanceof Error?Y.message:String(Y)}`),G(Y)}}HD();var VR=["web","line","telegram","lark","whatsapp"];function Ki(D){if(!VR.includes(D))throw Error(`\u65E0\u6548 channel "${D}"\uFF0C\u53EF\u9009\u503C\uFF1A${VR.join(", ")}`);return D}async function AR(D){try{let $=await bD(async({client:F})=>{return await F.request("cron.list",{workerId:D})});return rD($),0}catch($){return _.error(`fleet schedule list \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),LD($)}}async function KR(D){try{let $=Ki(D.channel),F={expression:D.expression,prompt:D.prompt,channel:$,chatId:D.chatId};if(D.accountId!==void 0)F.accountId=D.accountId;if(D.enabled!==void 0)F.enabled=D.enabled;let X=await bD(async({client:J})=>{return await J.request("cron.add",{workerId:D.workerId,job:F})});return rD(X),0}catch($){return _.error(`fleet schedule add \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),LD($)}}async function _R(D,$){try{let F=await bD(async({client:X})=>{return await X.request("cron.remove",{workerId:D,jobId:$})});return rD(F),0}catch(F){return _.error(`fleet schedule remove \u5931\u8D25: ${F instanceof Error?F.message:String(F)}`),LD(F)}}HD();async function CR(D){try{let $=await bD(async({client:F})=>{return await F.request("token.rotate",{workerId:D})});return rD($),0}catch($){return _.error(`fleet token rotate \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),LD($)}}HD();async function MR(){try{let D=await bD(async({client:$})=>{return await $.request("workers.list",{})});return rD(D),0}catch(D){return _.error(`workers list \u5931\u8D25: ${D instanceof Error?D.message:String(D)}`),LD(D)}}async function ZR(D){try{let $=await bD(async({client:F})=>{return await F.request("workers.info",{workerId:D})});return rD($),0}catch($){return _.error(`workers info \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),LD($)}}async function RR(D={}){try{let $=await bD(async({client:X})=>{let J={...D.env??{}};if(D.forceId!==void 0&&D.forceId.length>0)J.AIWORKER_FORCE_ID=D.forceId;return await X.request("workers.launch",{...D.displayName===void 0?{}:{displayName:D.displayName},...D.image===void 0?{}:{image:D.image},...Object.keys(J).length===0?{}:{env:J}})}),{patchOperatorState:F}=await Promise.resolve().then(() => (r8(),vB));return await F({deviceToken:$.deviceToken,defaultWorkerId:$.workerId}),_.success(`\u5DF2 launch worker ${$.workerId}`),rD({workerId:$.workerId}),0}catch($){return _.error(`workers launch \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),LD($)}}async function OR(D){try{let $=await bD(async({client:F})=>{return await F.request("workers.stop",{workerId:D})});return rD($),0}catch($){return _.error(`workers stop \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),LD($)}}async function ER(D){try{let $=await bD(async({client:G})=>{return await G.request("workers.remove",{workerId:D})}),{loadOperatorState:F,saveOperatorState:X}=await Promise.resolve().then(() => (r8(),vB)),J=await F();if(J.defaultWorkerId===D){let G={...J};delete G.defaultWorkerId,await X(G)}return rD($),0}catch($){return _.error(`workers remove \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),LD($)}}import sF from"process";import{createHash as Xr}from"crypto";Z0();kH();fH();import{existsSync as PE,mkdirSync as bi}from"fs";import i7 from"path";import{fileURLToPath as fi}from"url";import{Database as gi}from"bun:sqlite";SF();var gH={};z8(gH,{registeredWorkers:()=>xD,auditEvents:()=>w1});var xD=Q0("registered_workers",{id:L("id").primaryKey(),baseUrl:L("base_url").notNull(),displayName:L("display_name").notNull(),apiTokenEnc:L("api_token_enc").notNull(),nonce:L("nonce").notNull(),authTag:L("auth_tag").notNull(),addedAt:L("added_at").notNull().$defaultFn(()=>new Date().toISOString()),addedBy:L("added_by").$type().notNull(),lastSeenAt:L("last_seen_at"),lastSeenState:L("last_seen_state").$type(),lastConfigVersion:vD("last_config_version")}),w1=Q0("audit_events",{id:vD("id").primaryKey({autoIncrement:!0}),at:L("at").notNull().$defaultFn(()=>new Date().toISOString()),actor:L("actor").notNull(),action:L("action").notNull(),workerId:L("worker_id"),detail:L("detail",{mode:"json"}).$type()},(D)=>({workerIdIdx:Y0("audit_events_worker_id_idx").on(D.workerId)}));var LE=i7.dirname(fi(import.meta.url));function hi(D){let $=i7.resolve(LE,"../../drizzle",D);if(PE($))return $;let F=i7.resolve(LE,"drizzle",D);if(PE(F))return F;return $}var hH=hi("fleet"),n7=null;function vi(D){let $=D===":memory:"?D:i7.resolve(D);try{if($!==":memory:")bi(i7.dirname($),{recursive:!0,mode:448});let F=new gi($,{create:!0});return F.exec("PRAGMA journal_mode = WAL"),F.exec("PRAGMA foreign_keys = ON"),Z3(F,{schema:gH})}catch(F){let X=F instanceof Error?F.message:String(F);throw Error(`Unable to open fleet database at ${$}. Ensure the parent directory exists and is writable, or set AIWORKER_FLEET_DB_PATH to a writable location. Original error: ${X}`)}}function qE(D){return n7=vi(D),n7}function vH(){if(!n7)throw Error("Fleet database not initialized. Call initFleetDb() first.");return n7}function xH(){n7=null}function zE(D=hH){wF(vH(),{migrationsFolder:D})}HD();$0();ZD();jD();import IE from"path";import xi from"process";var yi=W.object({AIWORKER_GATEWAY_PORT:W.coerce.number().int().positive().max(65535).default(9218),AIWORKER_GATEWAY_HOST:W.string().min(1).default("127.0.0.1"),AIWORKER_ADMIN_EXTERNAL_AUTH:W.enum(["1","true","0","false"]).default("0").transform(W7),INTERNAL_SHARED_SECRET:W.string().min(16).optional(),NODE_ENV:W.enum(["development","production","test"]).default("development"),AIWORKER_MASTER_KEY:W.string().regex(/^[0-9a-f]{64}$/,"AIWORKER_MASTER_KEY must be 32-byte hex (64 hex chars)").optional(),AIWORKER_FLEET_DB_PATH:W.string().optional(),AIWORKER_GATEWAY_CAN_LAUNCH:W.enum(["true","false"]).default("false").transform((D)=>D==="true"),AIWORKER_MAX_WORKERS:W.coerce.number().int().positive().optional(),AIWORKER_JOIN_TOKEN:W.string().min(16).optional(),AIWORKER_ENROLL_OTP_TTL_SEC:W.coerce.number().int().min(30).max(3600).default(300),DOCKER_HOST:W.string().default("/var/run/docker.sock"),AIWORKER_IMAGE:W.string().optional(),AIWORKER_NETWORK:W.string().default("aiworker_default"),WORKER_DATA_ROOT:W.string().optional(),WORKER_MEMORY_LIMIT:W.string().optional(),WORKER_CPU_LIMIT:W.coerce.number().optional(),AIWORKER_LAUNCH_BASE_URL_TEMPLATE:W.string().default("http://{containerName}:9217")}).superRefine((D,$)=>{if(!D.AIWORKER_GATEWAY_CAN_LAUNCH)return;if(!D.INTERNAL_SHARED_SECRET)$.addIssue({code:W.ZodIssueCode.custom,path:["INTERNAL_SHARED_SECRET"],message:"INTERNAL_SHARED_SECRET is required when AIWORKER_GATEWAY_CAN_LAUNCH=true"});let F=[["AIWORKER_IMAGE",D.AIWORKER_IMAGE],["WORKER_DATA_ROOT",D.WORKER_DATA_ROOT],["WORKER_MEMORY_LIMIT",D.WORKER_MEMORY_LIMIT],["WORKER_CPU_LIMIT",D.WORKER_CPU_LIMIT]];for(let[X,J]of F)if(J===void 0||J==="")$.addIssue({code:W.ZodIssueCode.custom,path:[X],message:`${X} is required when AIWORKER_GATEWAY_CAN_LAUNCH=true`})});function SE(){let D=yi.parse(xi.env);return{port:D.AIWORKER_GATEWAY_PORT,host:D.AIWORKER_GATEWAY_HOST,adminExternalAuthAcknowledged:D.AIWORKER_ADMIN_EXTERNAL_AUTH,internalSharedSecret:D.INTERNAL_SHARED_SECRET,masterKeyHex:D.AIWORKER_MASTER_KEY,fleetDbPath:ui(D.AIWORKER_FLEET_DB_PATH),canLaunch:D.AIWORKER_GATEWAY_CAN_LAUNCH,maxWorkers:D.AIWORKER_MAX_WORKERS,joinToken:D.AIWORKER_JOIN_TOKEN,enrollOtpTtlSec:D.AIWORKER_ENROLL_OTP_TTL_SEC,nodeEnv:D.NODE_ENV,supervisor:{dockerHost:D.DOCKER_HOST,image:D.AIWORKER_IMAGE,network:D.AIWORKER_NETWORK,workerDataRoot:D.WORKER_DATA_ROOT,workerMemoryLimit:D.WORKER_MEMORY_LIMIT,workerCpuLimit:D.WORKER_CPU_LIMIT,launchBaseUrlTemplate:D.AIWORKER_LAUNCH_BASE_URL_TEMPLATE}}}function ui(D){if(D===":memory:")return D;let $=D&&D.length>0?D:IE.join(d2(),"fleet.db");return IE.resolve($)}Z0();function Y2(D,$){let F=dD($);D.forEach((X)=>{try{X.ws.send(F)}catch{}})}class kF{windowMs;threshold;blockMs;now;entries=new Map;constructor(D={}){this.windowMs=D.windowMs??60000,this.threshold=D.threshold??5,this.blockMs=D.blockMs??600000,this.now=D.now??(()=>Date.now())}isBlocked(D){if(!D)return{blocked:!1,retryAfterMs:0,blockUntil:0};let $=this.entries.get(D);if(!$)return{blocked:!1,retryAfterMs:0,blockUntil:0};let F=this.now();if($.blockUntil>F)return{blocked:!0,retryAfterMs:$.blockUntil-F,blockUntil:$.blockUntil};return{blocked:!1,retryAfterMs:0,blockUntil:0}}recordFailure(D){if(!D)return{blockedNow:!1,fails:0,blockUntil:0};let $=this.now(),F=this.entries.get(D);if(F&&F.blockUntil>$)return{blockedNow:!1,fails:F.fails,blockUntil:F.blockUntil};if(!F||$-F.firstFailAt>this.windowMs)F={fails:1,firstFailAt:$,blockUntil:0};else F.fails+=1;let X=!1;if(F.fails>=this.threshold&&F.blockUntil===0)F.blockUntil=$+this.blockMs,X=!0;return this.entries.set(D,F),{blockedNow:X,fails:F.fails,blockUntil:F.blockUntil}}recordSuccess(D){if(!D)return;this.entries.delete(D)}prune(){let D=this.now(),$=0;for(let[F,X]of this.entries){if(X.blockUntil>D)continue;if(D-X.firstFailAt>this.windowMs)this.entries.delete(F),$+=1}return $}snapshot(D){return this.entries.get(D)}size(){return this.entries.size}clear(){this.entries.clear()}}class bF{map=new Map;timeoutMs;now;idFactory;onExpire;timers=new Map;constructor(D={}){this.timeoutMs=D.timeoutMs??60000,this.now=D.now??(()=>Date.now()),this.idFactory=D.idFactory??(()=>crypto.randomUUID()),this.onExpire=D.onExpire}allocate(D){let $=this.idFactory(),F={...D,gatewayRequestId:$,createdAt:this.now()};if(this.map.set($,F),this.timeoutMs>0){let X=setTimeout(()=>{let J=this.map.get($);if(!J)return;this.map.delete($),this.timers.delete($),this.onExpire?.(J,"timeout")},this.timeoutMs);if(typeof X.unref==="function")X.unref();this.timers.set($,X)}return F}consume(D){let $=this.map.get(D);if(!$)return;return this.map.delete(D),this.clearTimer(D),$}cancelByOperator(D){let $=[];for(let F of this.map.values())if(F.operatorWs===D)$.push(F);for(let F of $)this.map.delete(F.gatewayRequestId),this.clearTimer(F.gatewayRequestId),this.onExpire?.(F,"operator_gone");return $}cancelByWorker(D){let $=[];for(let F of this.map.values())if(F.workerId===D)$.push(F);for(let F of $)this.map.delete(F.gatewayRequestId),this.clearTimer(F.gatewayRequestId),this.onExpire?.(F,"node_gone");return $}size(){return this.map.size}dispose(){for(let D of this.timers.values())clearTimeout(D);this.timers.clear(),this.map.clear()}clearTimer(D){let $=this.timers.get(D);if($)clearTimeout($),this.timers.delete(D)}}class fF{byWorkerId=new Map;byWs=new WeakMap;register(D){let $=this.byWorkerId.get(D.workerId);if(this.byWorkerId.set(D.workerId,D),this.byWs.set(D.ws,D),$)return this.byWs.delete($.ws),{replaced:$};return{}}unregisterByWs(D){let $=this.byWs.get(D);if(!$)return;let F=this.byWorkerId.get($.workerId);if(F&&F.ws===D)this.byWorkerId.delete($.workerId);return this.byWs.delete(D),$}get(D){return this.byWorkerId.get(D)}has(D){return this.byWorkerId.has(D)}list(){return Array.from(this.byWorkerId.values())}size(){return this.byWorkerId.size}}class gF{byWs=new Map;register(D){this.byWs.set(D.ws,D)}unregister(D){let $=this.byWs.get(D);if(!$)return;return this.byWs.delete(D),$}list(){return Array.from(this.byWs.values())}size(){return this.byWs.size}forEach(D){this.byWs.forEach(D)}}import{randomBytes as mi}from"crypto";var yH="ABCDEFGHJKMNPQRSTVWXYZ23456789",TE=4,ci=5;class hF{ttlMs;onExpire;generator;entries=new Map;wsToOtp=new WeakMap;disposed=!1;constructor(D){if(!Number.isFinite(D.ttlMs)||D.ttlMs<=0)throw Error("PendingEnrollmentRegistry: ttlMs \u5FC5\u987B\u4E3A\u6B63\u6570");this.ttlMs=D.ttlMs,this.onExpire=D.onExpire,this.generator=D.generateOtp??pi}submit(D){if(this.disposed)throw Error("PendingEnrollmentRegistry: already disposed");let $=this.allocateUniqueOtp(),F=Date.now(),X=F+this.ttlMs,J={otp:$,workerId:D.workerId,apiToken:D.apiToken,displayName:D.displayName,ws:D.ws,submittedAt:F,expiresAt:X,timer:setTimeout(()=>this.handleExpire($),this.ttlMs)};return this.entries.set($,J),this.wsToOtp.set(D.ws,$),{otp:$,expiresAt:X}}list(){return Array.from(this.entries.values()).map((D)=>({otp:D.otp,workerId:D.workerId,displayName:D.displayName,submittedAt:D.submittedAt,expiresAt:D.expiresAt}))}approve(D){return this.popInternal(D)}reject(D){return this.popInternal(D)}has(D){return this.entries.has(D)}removeByWs(D){let $=this.wsToOtp.get(D);if(!$)return;return this.popInternal($)}size(){return this.entries.size}dispose(){if(this.disposed)return;this.disposed=!0;for(let D of this.entries.values())clearTimeout(D.timer);this.entries.clear()}popInternal(D){let $=this.entries.get(D);if(!$)return;clearTimeout($.timer),this.entries.delete(D),this.wsToOtp.delete($.ws);let{timer:F,...X}=$;return X}handleExpire(D){let $=this.entries.get(D);if(!$)return;if(this.entries.delete(D),this.wsToOtp.delete($.ws),!this.onExpire)return;try{let{timer:F,...X}=$;this.onExpire(X)}catch{}}allocateUniqueOtp(){for(let D=0;D<ci;D++){let $=this.generator();if(!this.entries.has($))return $}throw Error("PendingEnrollmentRegistry: failed to allocate unique OTP after retries")}}function pi(){return`${wE(TE)}-${wE(TE)}`}function wE(D){let $=mi(D),F="";for(let X=0;X<D;X++)F+=yH[$[X]%yH.length];return F}V0();import{Buffer as U8}from"buffer";import{createCipheriv as di,createDecipheriv as li,randomBytes as ii,timingSafeEqual as ni}from"crypto";var kE="aes-256-gcm",ri=12,si=32,ai=/^[0-9a-f]{64}$/;function bE(D){if(!ai.test(D))throw Error("Gateway AIWORKER_MASTER_KEY must be 32-byte hex");let $=U8.from(D,"hex");if($.length!==si)throw Error("Gateway AIWORKER_MASTER_KEY must be 32-byte hex");return $}function vF(D,$){let F=bE($),X=ii(ri),J=di(kE,F,X),G=U8.concat([J.update(D,"utf8"),J.final()]),Y=J.getAuthTag();return{ciphertext:G.toString("base64"),nonce:X.toString("base64"),authTag:Y.toString("base64")}}function xF(D,$,F,X){let J=bE(X),G=li(kE,J,U8.from($,"base64"));return G.setAuthTag(U8.from(F,"base64")),U8.concat([G.update(U8.from(D,"base64")),G.final()]).toString("utf8")}function yF(D,$){let F=U8.from(D,"utf8"),X=U8.from($,"utf8");if(F.length!==X.length)return!1;return ni(F,X)}function oi(D){return D.replace(/[\\%_]/g,($)=>`\\${$}`)}class uF{db;constructor(D){this.db=D}listRegisteredWorkers(){return this.db.select().from(xD).orderBy(OD(xD.addedAt)).all().map(($)=>{let{apiTokenEnc:F,nonce:X,authTag:J,...G}=$;return{...G,lastSeenAt:G.lastSeenAt??void 0,lastSeenState:G.lastSeenState??void 0,lastConfigVersion:G.lastConfigVersion??void 0}})}getRegisteredWorker(D){let $=this.db.select().from(xD).where(S(xD.id,D)).get();if(!$)return;let{apiTokenEnc:F,nonce:X,authTag:J,...G}=$;return{...G,lastSeenAt:G.lastSeenAt??void 0,lastSeenState:G.lastSeenState??void 0,lastConfigVersion:G.lastConfigVersion??void 0}}getRegisteredWorkerRaw(D){let $=this.db.select().from(xD).where(S(xD.id,D)).get();if(!$)return;return{...$,lastSeenAt:$.lastSeenAt??void 0,lastSeenState:$.lastSeenState??void 0,lastConfigVersion:$.lastConfigVersion??void 0}}createRegisteredWorker(D,$){let F=vF(D.apiToken,$),X=new Date().toISOString(),J=D.baseUrl.replace(/\/+$/,""),G={id:D.workerId,baseUrl:J,displayName:D.displayName,apiTokenEnc:F.ciphertext,nonce:F.nonce,authTag:F.authTag,addedAt:X,addedBy:D.addedBy??"manual",lastSeenAt:X,lastSeenState:"online",lastConfigVersion:D.configVersion};this.db.insert(xD).values(G).run(),this.db.insert(w1).values({actor:"gateway",action:"gateway.worker.paired",workerId:D.workerId,detail:{baseUrl:J,displayName:D.displayName,addedBy:G.addedBy}}).run();let{apiTokenEnc:Y,nonce:B,authTag:H,...U}=G;return{...U,lastSeenAt:U.lastSeenAt??void 0,lastSeenState:U.lastSeenState??void 0,lastConfigVersion:U.lastConfigVersion??void 0}}upsertEnrolledWorker(D,$){let F=D.baseUrl.replace(/\/+$/,""),X=new Date().toISOString(),J=this.db.select().from(xD).where(S(xD.id,D.workerId)).get();if(!J){let U=vF(D.apiToken,$),Q={id:D.workerId,baseUrl:F,displayName:D.displayName,apiTokenEnc:U.ciphertext,nonce:U.nonce,authTag:U.authTag,addedAt:X,addedBy:D.addedBy??"self-enroll",lastSeenAt:X,lastSeenState:"online",lastConfigVersion:D.configVersion};this.db.insert(xD).values(Q).run();let{apiTokenEnc:V,nonce:A,authTag:K,...M}=Q;return{kind:"created",row:{...M,lastSeenAt:M.lastSeenAt??void 0,lastSeenState:M.lastSeenState??void 0,lastConfigVersion:M.lastConfigVersion??void 0}}}if(J.displayName!==D.displayName){this.db.update(xD).set({displayName:D.displayName,lastSeenAt:X,lastSeenState:"online"}).where(S(xD.id,D.workerId)).run();let{apiTokenEnc:U,nonce:Q,authTag:V,...A}=J;return{kind:"updated",row:{...A,displayName:D.displayName,lastSeenAt:X,lastSeenState:"online",lastConfigVersion:A.lastConfigVersion??void 0}}}this.db.update(xD).set({lastSeenAt:X,lastSeenState:"online"}).where(S(xD.id,D.workerId)).run();let{apiTokenEnc:G,nonce:Y,authTag:B,...H}=J;return{kind:"unchanged",row:{...H,lastSeenAt:X,lastSeenState:"online",lastConfigVersion:H.lastConfigVersion??void 0}}}updateEncryptedToken(D,$){if(!this.db.select({id:xD.id}).from(xD).where(S(xD.id,D.workerId)).get())return!1;let X=vF(D.newToken,$);return this.db.update(xD).set({apiTokenEnc:X.ciphertext,nonce:X.nonce,authTag:X.authTag}).where(S(xD.id,D.workerId)).run(),!0}removeRegisteredWorker(D){if(!this.db.select({id:xD.id}).from(xD).where(S(xD.id,D)).get())return!1;return this.db.delete(xD).where(S(xD.id,D)).run(),!0}countRegisteredWorkers(){return this.db.select({value:EF()}).from(xD).get()?.value??0}recordAudit(D){this.db.insert(w1).values({actor:D.actor,action:D.action,workerId:D.workerId??null,detail:D.detail}).run()}listAuditEvents(D={}){let $=Math.max(1,Math.min(200,D.limit??50)),F=[];if(typeof D.before==="number"&&Number.isFinite(D.before))F.push(QF(w1.id,D.before));if(D.actionPrefix&&D.actionPrefix.length>0){let B=`${oi(D.actionPrefix)}%`;F.push(E`${w1.action} LIKE ${B} ESCAPE '\\'`)}if(D.workerId&&D.workerId.length>0)F.push(S(w1.workerId,D.workerId));let X=F.length===0?void 0:F.length===1?F[0]:TD(...F),J=this.db.select().from(w1).where(X).orderBy(OD(w1.id)).limit($+1).all(),G=J.length>$;return{events:(G?J.slice(0,$):J).map((B)=>({id:B.id,at:B.at,actor:B.actor,action:B.action,workerId:B.workerId??null,detail:B.detail??null})),hasMore:G}}}Z0();ZD();import{Buffer as vn}from"buffer";import{createHash as xn}from"crypto";import{resolve as uH,sep as ti}from"path";async function mF(D){let{webStaticDir:$}=D,F=uH($),X;try{X=ei(decodeURIComponent(D.pathnameAfterPrefix))}catch{return new Response("forbidden",{status:403})}let J=X===""?"index.html":X,G=uH(F,J);if(G!==F&&!G.startsWith(F+ti))return new Response("forbidden",{status:403});let Y=Bun.file(G);if(await Y.exists())return new Response(Y);if(!Dn(J)){let B=Bun.file(uH(F,"index.html"));if(await B.exists())return new Response(B)}return new Response("not found",{status:404})}function ei(D){let $=0;while($<D.length&&D[$]==="/")$+=1;return D.slice($)}function Dn(D){let $=D.lastIndexOf("/");return($===-1?D:D.slice($+1)).includes(".")}ZD();function fE(D){if(p8(D.host))return;if(D.internalSharedSecret&&D.internalSharedSecret.length>0)return;throw Error(`[gateway] \u62D2\u7EDD\u542F\u52A8\uFF1Ahost="${D.host}" \u975E loopback\uFF0C\u4F46\u672A\u914D\u7F6E INTERNAL_SHARED_SECRET\u3002
1773
1773
  `+`
1774
1774
  `+`\u8FDC\u7A0B\u8FDE\u63A5\u4F1A\u88AB token \u6821\u9A8C\u62E6\u4E0B\uFF0C\u4F46\u53CD\u4EE3\u540E\u7684 loopback \u6D41\u91CF\u4F1A\u88AB\u65E0\u6761\u4EF6\u653E\u884C\uFF08\u53C2\u89C1 BUG-007 / BUG-019\uFF09\uFF0C
1775
1775
  `+`\u6CA1\u6709 INTERNAL_SHARED_SECRET \u8FD9\u4E00\u9053\u515C\u5E95\u610F\u5473\u7740\u53EA\u8981\u80FD reach \u7AEF\u53E3\u5C31\u80FD operator-grade \u64CD\u4F5C fleet\u3002
1776
1776
  `+`
1777
1777
  `+`\u4FEE\u590D\u65B9\u5F0F\u4E8C\u9009\u4E00\uFF1A
1778
1778
  `+` 1. AIWORKER_GATEWAY_HOST=127.0.0.1\uFF08\u9ED8\u8BA4\uFF09+ \u5728\u524D\u7F6E\u53CD\u4EE3\uFF08\u5982 Caddy\uFF09\u4E0A\u53E0 basic-auth\uFF1B
1779
- `+" 2. \u8BBE\u7F6E INTERNAL_SHARED_SECRET\uFF08>= 16 \u5B57\u7B26\uFF1B\u63A8\u8350 `openssl rand -hex 24`\uFF09\uFF0C\u8BA9 gateway \u5F3A\u5236 token \u6821\u9A8C\u3002")}import{Buffer as gE}from"buffer";import{timingSafeEqual as $n}from"crypto";function hE(D,$){let F=gE.from(D,"utf8"),X=gE.from($,"utf8");if(F.length!==X.length)return!1;return $n(F,X)}function vE(D){let $=D.path??"/ws",F=D.isOtpEnrollSubmit===!0;if($==="/enroll-ws"){if(!F)return{ok:!1,reason:"wrong_path:expected_enroll_otp"};return{ok:!0,via:"enroll-otp"}}if(F)return{ok:!1,reason:"wrong_path:otp_must_use_enroll_ws"};if(D.enrollToken!==void 0){if(!D.gatewayJoinToken)return{ok:!1,reason:"join_token_disabled"};if(!hE(D.enrollToken,D.gatewayJoinToken))return{ok:!1,reason:"join_token_mismatch"};return{ok:!0,via:"self-enroll"}}if(D.loopback)return{ok:!0,via:"loopback"};if(!D.sharedSecret)return{ok:!1,reason:"remote_requires_secret_but_unset"};if(D.presentedToken.length===0)return{ok:!1,reason:"missing_token"};if(!hE(D.presentedToken,D.sharedSecret))return{ok:!1,reason:"invalid_token"};return{ok:!0,via:"shared-secret"}}Z0();MD();var pF="/w/",c0="/api/worker",Fn=60000,mH=1048576,Xn=50,cF=0;async function uE(D,$,F){let X=Date.now(),J=Yn($.pathname);if(J===void 0)return fD(404,"not-found","Not a worker bridge path");if(!J.ok)return fD(400,"invalid-worker-id",J.message);let G=Jn(D,F,J.value.workerId);if(!G.ok)return G.response;if(J.value.workerApiPath===`${c0}/events/stream`)return An(D,$,F,J.value,X);let Y=await Bn(D,$,J.value);if(!Y.ok){if(Y.audit)cH(F,{workerId:J.value.workerId,method:Y.audit.method,path:$.pathname,result:"error",status:Y.response.status,latencyMs:pH(X),errorCode:Y.audit.errorCode});return Y.response}let B=await _n({ctx:F,workerId:J.value.workerId,method:Y.value.method,params:Y.value.params,signal:D.signal}),H=Cn(B,Y.value.transformResult,Y.value.statusForResult);return cH(F,{workerId:J.value.workerId,method:Y.value.method,path:$.pathname,result:B.ok?"success":"error",status:H.status,latencyMs:pH(X),...B.ok?{}:{errorCode:B.error.code}}),H}function mE(D){if(!D.startsWith(pF))return!1;let $=D.slice(pF.length),F=$.indexOf("/");if(F===-1)return!1;return $.slice(F).startsWith(c0)}function Jn(D,$,F){let X=Gn(D.headers.get("Authorization"));if(X===null)return{ok:!1,response:fD(401,"auth-required","missing worker bearer token",{"WWW-Authenticate":"Bearer"})};if(!$.masterKeyHex)return{ok:!1,response:fD(503,"auth-unavailable","gateway master key is not configured")};let J=$.persistence.getRegisteredWorkerRaw(F);if(!J)return{ok:!1,response:fD(404,"not-found",`worker ${F} is not registered`)};let G;try{G=xF(J.apiTokenEnc,J.nonce,J.authTag,$.masterKeyHex)}catch{return{ok:!1,response:fD(503,"auth-unavailable","worker token is not available")}}if(!yF(X,G))return{ok:!1,response:fD(401,"auth-failed","invalid worker bearer token",{"WWW-Authenticate":"Bearer"})};return{ok:!0}}function Gn(D){if(D===null)return null;let $=D.trim();if(!$.toLowerCase().startsWith("bearer "))return null;let F=$.slice(7).trim();return F.length===0?null:F}function Yn(D){if(!D.startsWith(pF))return;let $=D.slice(pF.length),F=$.indexOf("/"),X=F===-1?$:$.slice(0,F);if(!C2.test(X))return{ok:!1,message:`workerId must match ${String(C2)}`};let J=F===-1?"/":$.slice(F);return{ok:!0,value:{workerId:X,workerApiPath:J}}}async function Bn(D,$,F){if(F.workerApiPath===`${c0}/info`){if(D.method!=="GET")return{ok:!1,response:X0("GET")};return{ok:!0,value:{method:"workers.info",params:{workerId:F.workerId}}}}if(F.workerApiPath===`${c0}/config`){if(D.method==="GET")return{ok:!0,value:{method:"config.get",params:{workerId:F.workerId}}};if(D.method==="PUT"){let V=Kn(D.headers.get("If-Match"));if(!V.ok)return{ok:!1,response:fD(400,"invalid-if-match",V.message),audit:{method:"config.put",errorCode:"invalid-if-match"}};let A=await t8(D);if(!A.ok)return{ok:!1,response:fD(A.status,A.code,A.message),audit:{method:"config.put",errorCode:A.code}};return{ok:!0,value:{method:"config.put",params:{workerId:F.workerId,ifMatch:V.value,config:A.value}}}}return{ok:!1,response:X0("GET, PUT")}}if(F.workerApiPath===`${c0}/cron`){if(D.method==="GET")return{ok:!0,value:{method:"cron.list",params:{workerId:F.workerId}}};if(D.method==="POST"){let V=await t8(D);if(!V.ok)return{ok:!1,response:fD(V.status,V.code,V.message),audit:{method:"cron.add",errorCode:V.code}};return{ok:!0,value:{method:"cron.add",params:{workerId:F.workerId,job:V.value},transformResult:yE}}}return{ok:!1,response:X0("GET, POST")}}let X=F.workerApiPath.match(/^\/api\/worker\/cron\/([^/]+)$/);if(X){let V=decodeURIComponent(X[1]);if(D.method==="PATCH"){let A=await t8(D);if(!A.ok)return{ok:!1,response:fD(A.status,A.code,A.message),audit:{method:"cron.update",errorCode:A.code}};return{ok:!0,value:{method:"cron.update",params:{workerId:F.workerId,jobId:V,patch:A.value}}}}if(D.method==="DELETE")return{ok:!0,value:{method:"cron.remove",params:{workerId:F.workerId,jobId:V},transformResult:Vn}};return{ok:!1,response:X0("PATCH, DELETE")}}if(F.workerApiPath===`${c0}/approvals`){if(D.method!=="GET")return{ok:!1,response:X0("GET")};return{ok:!0,value:{method:"approval.list",params:{workerId:F.workerId}}}}let J=F.workerApiPath.match(/^\/api\/worker\/approvals\/([^/]+)\/([^/]+)\/grant$/);if(J){if(D.method!=="POST")return{ok:!1,response:X0("POST")};let V=await t8(D);if(!V.ok)return{ok:!1,response:fD(V.status,V.code,V.message),audit:{method:"approval.grant",errorCode:V.code}};let A=V.value.decision;if(A!=="allow"&&A!=="deny")return{ok:!1,response:fD(400,"invalid-body",'decision must be "allow" or "deny"'),audit:{method:"approval.grant",errorCode:"invalid-body"}};return{ok:!0,value:{method:"approval.grant",params:{workerId:F.workerId,taskId:decodeURIComponent(J[1]),toolCallId:decodeURIComponent(J[2]),decision:A}}}}if(F.workerApiPath===`${c0}/secrets`){if(D.method!=="GET")return{ok:!1,response:X0("GET")};return{ok:!0,value:{method:"secrets.list",params:{workerId:F.workerId}}}}let G=F.workerApiPath.match(/^\/api\/worker\/secrets\/([^/]+)$/);if(G){let V=decodeURIComponent(G[1]);if(!/^[\w.-]{1,128}$/.test(V)){let A=D.method==="DELETE"?"secrets.delete":"secrets.put";return{ok:!1,response:fD(400,"invalid-key","secret key must match [A-Za-z0-9._-] and be 1-128 chars"),audit:{method:A,errorCode:"invalid-key"}}}if(D.method==="PUT"){let A=await t8(D);if(!A.ok)return{ok:!1,response:fD(A.status,A.code,A.message),audit:{method:"secrets.put",errorCode:A.code}};let K=A.value.value;if(typeof K!=="string"||K.length===0)return{ok:!1,response:fD(400,"invalid-body","secret value must be a non-empty string"),audit:{method:"secrets.put",errorCode:"invalid-body"}};return{ok:!0,value:{method:"secrets.put",params:{workerId:F.workerId,key:V,value:K}}}}if(D.method==="DELETE")return{ok:!0,value:{method:"secrets.delete",params:{workerId:F.workerId,key:V}}};return{ok:!1,response:X0("PUT, DELETE")}}if(F.workerApiPath===`${c0}/engines`){if(D.method!=="GET")return{ok:!1,response:X0("GET")};return{ok:!0,value:{method:"engines.list",params:{workerId:F.workerId,refresh:$.searchParams.get("refresh")==="1"}}}}if(F.workerApiPath===`${c0}/brain/test`){if(D.method!=="POST")return{ok:!1,response:X0("POST")};return{ok:!0,value:{method:"brain.test",params:{workerId:F.workerId}}}}if(F.workerApiPath===`${c0}/brain/summary`){if(D.method!=="GET")return{ok:!1,response:X0("GET")};return{ok:!0,value:{method:"brain.summary",params:{workerId:F.workerId}}}}if(F.workerApiPath===`${c0}/brain/admission`){if(D.method!=="GET")return{ok:!1,response:X0("GET")};let V=Hn($);if(!V.ok)return{ok:!1,response:fD(400,"invalid-query",V.message)};return{ok:!0,value:{method:"brain.admission.list",params:{workerId:F.workerId,...V.value}}}}let Y=F.workerApiPath.match(/^\/api\/worker\/brain\/admission\/([^/]+)\/(approve|reject|apply)$/);if(Y){let V=decodeURIComponent(Y[1]),A=Y[2];if(D.method!=="POST")return{ok:!1,response:X0("POST")};let K=await t8(D);if(!K.ok)return{ok:!1,response:fD(K.status,K.code,K.message),audit:{method:`brain.admission.${A}`,errorCode:K.code}};let M=Un(K.value,A);if(!M.ok)return{ok:!1,response:fD(400,"invalid-body",M.message),audit:{method:`brain.admission.${A}`,errorCode:"invalid-body"}};return{ok:!0,value:{method:`brain.admission.${A}`,params:{workerId:F.workerId,id:V,...M.value},...A==="apply"?{statusForResult:Qn}:{}}}}let B=F.workerApiPath.match(/^\/api\/worker\/brain\/admission\/([^/]+)$/);if(B){if(D.method!=="GET")return{ok:!1,response:X0("GET")};return{ok:!0,value:{method:"brain.admission.show",params:{workerId:F.workerId,id:decodeURIComponent(B[1]),...dF($,"showSensitive")}}}}if(F.workerApiPath===`${c0}/brain/artifacts`){if(D.method!=="GET")return{ok:!1,response:X0("GET")};let V=Wn($);if(!V.ok)return{ok:!1,response:fD(400,"invalid-query",V.message)};return{ok:!0,value:{method:"brain.artifacts.list",params:{workerId:F.workerId,...V.value}}}}let H=F.workerApiPath.match(/^\/api\/worker\/brain\/artifacts\/([^/]+)$/);if(H){if(D.method!=="GET")return{ok:!1,response:X0("GET")};return{ok:!0,value:{method:"brain.artifacts.show",params:{workerId:F.workerId,id:decodeURIComponent(H[1]),...dF($,"showSensitive")}}}}if(F.workerApiPath===`${c0}/executor/test`){if(D.method!=="POST")return{ok:!1,response:X0("POST")};let V=await xE(D);if(!V.ok)return{ok:!1,response:fD(V.status,V.code,V.message),audit:{method:"executor.test",errorCode:V.code}};let A=V.value?.probe;return{ok:!0,value:{method:"executor.test",params:{workerId:F.workerId,...typeof A==="boolean"?{probe:A}:{}}}}}let U=F.workerApiPath.match(/^\/api\/worker\/channels\/([^/]+)\/test$/);if(U){if(D.method!=="POST")return{ok:!1,response:X0("POST")};let V=await xE(D);if(!V.ok)return{ok:!1,response:fD(V.status,V.code,V.message),audit:{method:"channel.test",errorCode:V.code}};return{ok:!0,value:{method:"channel.test",params:{workerId:F.workerId,channel:decodeURIComponent(U[1]),...V.value===void 0?{}:{body:V.value}}}}}if(F.workerApiPath===`${c0}/orchestrator/tasks`){if(D.method==="GET")return{ok:!0,value:{method:"orchestrator.tasks.list",params:{workerId:F.workerId}}};if(D.method==="POST"){let V=await t8(D);if(!V.ok)return{ok:!1,response:fD(V.status,V.code,V.message),audit:{method:"orchestrator.tasks.create",errorCode:V.code}};let A=V.value.prompt;if(typeof A!=="string"||A.trim().length===0||A.trim().length>8000)return{ok:!1,response:fD(400,"invalid-body","prompt is required and must be at most 8000 chars"),audit:{method:"orchestrator.tasks.create",errorCode:"invalid-body"}};return{ok:!0,value:{method:"orchestrator.tasks.create",params:{workerId:F.workerId,prompt:A},transformResult:yE}}}return{ok:!1,response:X0("GET, POST")}}if(F.workerApiPath===`${c0}/orchestrator/conversations`){if(D.method!=="GET")return{ok:!1,response:X0("GET")};return{ok:!0,value:{method:"orchestrator.conversations.list",params:{workerId:F.workerId}}}}let Q=F.workerApiPath.match(/^\/api\/worker\/orchestrator\/conversations\/([^/]+)\/messages$/);if(Q){if(D.method!=="GET")return{ok:!1,response:X0("GET")};return{ok:!0,value:{method:"orchestrator.messages.list",params:{workerId:F.workerId,conversationId:decodeURIComponent(Q[1])}}}}return{ok:!1,response:fD(404,"not-found",`Unsupported worker bridge path ${F.workerApiPath}`)}}function Hn(D){let $=cE(D,"limit");if(!$.ok)return $;return{ok:!0,value:{...Q8(D,"status"),...Q8(D,"kind"),...Q8(D,"scopeId"),...Q8(D,"soulId"),...$.value===void 0?{}:{limit:$.value},...dF(D,"showSensitive")}}}function Wn(D){let $=cE(D,"limit");if(!$.ok)return $;return{ok:!0,value:{...Q8(D,"scopeId"),...Q8(D,"type"),...Q8(D,"status"),...Q8(D,"minSensitivity"),...$.value===void 0?{}:{limit:$.value},...dF(D,"showSensitive")}}}function Q8(D,$){let F=D.searchParams.get($);if(F===null)return{};return F.length===0?{}:{[$]:F}}function dF(D,$){let F=D.searchParams.get($);if(F===null)return{};return{[$]:F==="true"}}function cE(D,$){let F=D.searchParams.get($);if(F===null)return{ok:!0};if(!/^\d+$/.test(F))return{ok:!1,message:`${$} must be a positive integer`};let X=Number.parseInt(F,10);if(!Number.isInteger(X)||X<1||X>500)return{ok:!1,message:`${$} must be between 1 and 500`};return{ok:!0,value:X}}function Un(D,$){if(D===null||typeof D!=="object"||Array.isArray(D))return{ok:!1,message:"request body must be a JSON object"};let F=D,X=F.decidedBy;if(typeof X!=="string"||X.trim().length===0)return{ok:!1,message:"decidedBy is required"};let J={decidedBy:X};if(F.reason!==void 0&&(typeof F.reason!=="string"||F.reason.length===0))return{ok:!1,message:"reason must be a non-empty string when provided"};if(typeof F.reason==="string")J.reason=F.reason;if($==="apply"){if(F.commit!==void 0&&typeof F.commit!=="boolean")return{ok:!1,message:"commit must be a boolean when provided"};if(typeof F.commit==="boolean")J.commit=F.commit;if(F.allowSecretBody!==void 0&&F.allowSecretBody!=="block"&&F.allowSecretBody!=="redact"&&F.allowSecretBody!=="raw")return{ok:!1,message:"allowSecretBody must be one of block | redact | raw when provided"};if(F.allowSecretBody==="block"||F.allowSecretBody==="redact"||F.allowSecretBody==="raw")J.allowSecretBody=F.allowSecretBody}return{ok:!0,value:J}}function Qn(D){let $=D.outcome;if($?.kind==="failed")return 500;if($?.kind==="blocked-by-secret-scan")return 409;return 200}async function t8(D){let $=Number.parseInt(D.headers.get("Content-Length")??"0",10);if(Number.isFinite($)&&$>mH)return{ok:!1,status:413,code:"payload-too-large",message:"Request body is too large"};let F=await D.text().catch(()=>{return});if(F===void 0)return{ok:!1,status:400,code:"invalid-body",message:"Request body must be readable"};if(new TextEncoder().encode(F).byteLength>mH)return{ok:!1,status:413,code:"payload-too-large",message:"Request body is too large"};try{return{ok:!0,value:JSON.parse(F)}}catch{return{ok:!1,status:400,code:"invalid-body",message:"Request body must be valid JSON"}}}async function xE(D){if(!D.body)return{ok:!0,value:void 0};let $=await D.text().catch(()=>{return});if($===void 0)return{ok:!1,status:400,code:"invalid-body",message:"Request body must be readable"};if($.trim().length===0)return{ok:!0,value:void 0};if(new TextEncoder().encode($).byteLength>mH)return{ok:!1,status:413,code:"payload-too-large",message:"Request body is too large"};try{return{ok:!0,value:JSON.parse($)}}catch{return{ok:!1,status:400,code:"invalid-body",message:"Request body must be valid JSON"}}}function yE(D){return D}function Vn(D){return Boolean(D.removed)?{ok:!0}:D}function An(D,$,F,X,J){if(D.method!=="GET")return X0("GET");if(cF>=Xn)return fD(503,"too-many-event-streams","Too many active worker event streams");if(!F.nodes.has(X.workerId)&&!F.persistence.getRegisteredWorker(X.workerId))return fD(404,"not-found",`worker ${X.workerId} is not registered`);if(!F.nodes.has(X.workerId))return fD(503,"node_offline",`worker ${X.workerId} \u5F53\u524D\u672A\u8FDE\u63A5\u5230 gateway`);cF+=1;let G=!1,Y=`http-sse-${crypto.randomUUID()}`,B,H=new ReadableStream({start(U){let Q=new TextEncoder,V=(C)=>{if(G)return;if(U.desiredSize!==null&&U.desiredSize<=0)return;U.enqueue(Q.encode(C))},A={send(C){let Z=Q1(C);if(!Z.ok||Z.frame.type!=="event")return;let O=Z.frame.payload;if(O.workerId!==X.workerId)return;V(`event: ${Z.frame.name}
1779
+ `+" 2. \u8BBE\u7F6E INTERNAL_SHARED_SECRET\uFF08>= 16 \u5B57\u7B26\uFF1B\u63A8\u8350 `openssl rand -hex 24`\uFF09\uFF0C\u8BA9 gateway \u5F3A\u5236 token \u6821\u9A8C\u3002")}import{Buffer as gE}from"buffer";import{timingSafeEqual as $n}from"crypto";function hE(D,$){let F=gE.from(D,"utf8"),X=gE.from($,"utf8");if(F.length!==X.length)return!1;return $n(F,X)}function vE(D){let $=D.path??"/ws",F=D.isOtpEnrollSubmit===!0;if($==="/enroll-ws"){if(!F)return{ok:!1,reason:"wrong_path:expected_enroll_otp"};return{ok:!0,via:"enroll-otp"}}if(F)return{ok:!1,reason:"wrong_path:otp_must_use_enroll_ws"};if(D.enrollToken!==void 0){if(!D.gatewayJoinToken)return{ok:!1,reason:"join_token_disabled"};if(!hE(D.enrollToken,D.gatewayJoinToken))return{ok:!1,reason:"join_token_mismatch"};return{ok:!0,via:"self-enroll"}}if(D.loopback)return{ok:!0,via:"loopback"};if(!D.sharedSecret)return{ok:!1,reason:"remote_requires_secret_but_unset"};if(D.presentedToken.length===0)return{ok:!1,reason:"missing_token"};if(!hE(D.presentedToken,D.sharedSecret))return{ok:!1,reason:"invalid_token"};return{ok:!0,via:"shared-secret"}}Z0();ZD();var pF="/w/",c0="/api/worker",Fn=60000,mH=1048576,Xn=50,cF=0;async function uE(D,$,F){let X=Date.now(),J=Yn($.pathname);if(J===void 0)return fD(404,"not-found","Not a worker bridge path");if(!J.ok)return fD(400,"invalid-worker-id",J.message);let G=Jn(D,F,J.value.workerId);if(!G.ok)return G.response;if(J.value.workerApiPath===`${c0}/events/stream`)return An(D,$,F,J.value,X);let Y=await Bn(D,$,J.value);if(!Y.ok){if(Y.audit)cH(F,{workerId:J.value.workerId,method:Y.audit.method,path:$.pathname,result:"error",status:Y.response.status,latencyMs:pH(X),errorCode:Y.audit.errorCode});return Y.response}let B=await _n({ctx:F,workerId:J.value.workerId,method:Y.value.method,params:Y.value.params,signal:D.signal}),H=Cn(B,Y.value.transformResult,Y.value.statusForResult);return cH(F,{workerId:J.value.workerId,method:Y.value.method,path:$.pathname,result:B.ok?"success":"error",status:H.status,latencyMs:pH(X),...B.ok?{}:{errorCode:B.error.code}}),H}function mE(D){if(!D.startsWith(pF))return!1;let $=D.slice(pF.length),F=$.indexOf("/");if(F===-1)return!1;return $.slice(F).startsWith(c0)}function Jn(D,$,F){let X=Gn(D.headers.get("Authorization"));if(X===null)return{ok:!1,response:fD(401,"auth-required","missing worker bearer token",{"WWW-Authenticate":"Bearer"})};if(!$.masterKeyHex)return{ok:!1,response:fD(503,"auth-unavailable","gateway master key is not configured")};let J=$.persistence.getRegisteredWorkerRaw(F);if(!J)return{ok:!1,response:fD(404,"not-found",`worker ${F} is not registered`)};let G;try{G=xF(J.apiTokenEnc,J.nonce,J.authTag,$.masterKeyHex)}catch{return{ok:!1,response:fD(503,"auth-unavailable","worker token is not available")}}if(!yF(X,G))return{ok:!1,response:fD(401,"auth-failed","invalid worker bearer token",{"WWW-Authenticate":"Bearer"})};return{ok:!0}}function Gn(D){if(D===null)return null;let $=D.trim();if(!$.toLowerCase().startsWith("bearer "))return null;let F=$.slice(7).trim();return F.length===0?null:F}function Yn(D){if(!D.startsWith(pF))return;let $=D.slice(pF.length),F=$.indexOf("/"),X=F===-1?$:$.slice(0,F);if(!C2.test(X))return{ok:!1,message:`workerId must match ${String(C2)}`};let J=F===-1?"/":$.slice(F);return{ok:!0,value:{workerId:X,workerApiPath:J}}}async function Bn(D,$,F){if(F.workerApiPath===`${c0}/info`){if(D.method!=="GET")return{ok:!1,response:X0("GET")};return{ok:!0,value:{method:"workers.info",params:{workerId:F.workerId}}}}if(F.workerApiPath===`${c0}/config`){if(D.method==="GET")return{ok:!0,value:{method:"config.get",params:{workerId:F.workerId}}};if(D.method==="PUT"){let V=Kn(D.headers.get("If-Match"));if(!V.ok)return{ok:!1,response:fD(400,"invalid-if-match",V.message),audit:{method:"config.put",errorCode:"invalid-if-match"}};let A=await t8(D);if(!A.ok)return{ok:!1,response:fD(A.status,A.code,A.message),audit:{method:"config.put",errorCode:A.code}};return{ok:!0,value:{method:"config.put",params:{workerId:F.workerId,ifMatch:V.value,config:A.value}}}}return{ok:!1,response:X0("GET, PUT")}}if(F.workerApiPath===`${c0}/cron`){if(D.method==="GET")return{ok:!0,value:{method:"cron.list",params:{workerId:F.workerId}}};if(D.method==="POST"){let V=await t8(D);if(!V.ok)return{ok:!1,response:fD(V.status,V.code,V.message),audit:{method:"cron.add",errorCode:V.code}};return{ok:!0,value:{method:"cron.add",params:{workerId:F.workerId,job:V.value},transformResult:yE}}}return{ok:!1,response:X0("GET, POST")}}let X=F.workerApiPath.match(/^\/api\/worker\/cron\/([^/]+)$/);if(X){let V=decodeURIComponent(X[1]);if(D.method==="PATCH"){let A=await t8(D);if(!A.ok)return{ok:!1,response:fD(A.status,A.code,A.message),audit:{method:"cron.update",errorCode:A.code}};return{ok:!0,value:{method:"cron.update",params:{workerId:F.workerId,jobId:V,patch:A.value}}}}if(D.method==="DELETE")return{ok:!0,value:{method:"cron.remove",params:{workerId:F.workerId,jobId:V},transformResult:Vn}};return{ok:!1,response:X0("PATCH, DELETE")}}if(F.workerApiPath===`${c0}/approvals`){if(D.method!=="GET")return{ok:!1,response:X0("GET")};return{ok:!0,value:{method:"approval.list",params:{workerId:F.workerId}}}}let J=F.workerApiPath.match(/^\/api\/worker\/approvals\/([^/]+)\/([^/]+)\/grant$/);if(J){if(D.method!=="POST")return{ok:!1,response:X0("POST")};let V=await t8(D);if(!V.ok)return{ok:!1,response:fD(V.status,V.code,V.message),audit:{method:"approval.grant",errorCode:V.code}};let A=V.value.decision;if(A!=="allow"&&A!=="deny")return{ok:!1,response:fD(400,"invalid-body",'decision must be "allow" or "deny"'),audit:{method:"approval.grant",errorCode:"invalid-body"}};return{ok:!0,value:{method:"approval.grant",params:{workerId:F.workerId,taskId:decodeURIComponent(J[1]),toolCallId:decodeURIComponent(J[2]),decision:A}}}}if(F.workerApiPath===`${c0}/secrets`){if(D.method!=="GET")return{ok:!1,response:X0("GET")};return{ok:!0,value:{method:"secrets.list",params:{workerId:F.workerId}}}}let G=F.workerApiPath.match(/^\/api\/worker\/secrets\/([^/]+)$/);if(G){let V=decodeURIComponent(G[1]);if(!/^[\w.-]{1,128}$/.test(V)){let A=D.method==="DELETE"?"secrets.delete":"secrets.put";return{ok:!1,response:fD(400,"invalid-key","secret key must match [A-Za-z0-9._-] and be 1-128 chars"),audit:{method:A,errorCode:"invalid-key"}}}if(D.method==="PUT"){let A=await t8(D);if(!A.ok)return{ok:!1,response:fD(A.status,A.code,A.message),audit:{method:"secrets.put",errorCode:A.code}};let K=A.value.value;if(typeof K!=="string"||K.length===0)return{ok:!1,response:fD(400,"invalid-body","secret value must be a non-empty string"),audit:{method:"secrets.put",errorCode:"invalid-body"}};return{ok:!0,value:{method:"secrets.put",params:{workerId:F.workerId,key:V,value:K}}}}if(D.method==="DELETE")return{ok:!0,value:{method:"secrets.delete",params:{workerId:F.workerId,key:V}}};return{ok:!1,response:X0("PUT, DELETE")}}if(F.workerApiPath===`${c0}/engines`){if(D.method!=="GET")return{ok:!1,response:X0("GET")};return{ok:!0,value:{method:"engines.list",params:{workerId:F.workerId,refresh:$.searchParams.get("refresh")==="1"}}}}if(F.workerApiPath===`${c0}/brain/test`){if(D.method!=="POST")return{ok:!1,response:X0("POST")};return{ok:!0,value:{method:"brain.test",params:{workerId:F.workerId}}}}if(F.workerApiPath===`${c0}/brain/summary`){if(D.method!=="GET")return{ok:!1,response:X0("GET")};return{ok:!0,value:{method:"brain.summary",params:{workerId:F.workerId}}}}if(F.workerApiPath===`${c0}/brain/admission`){if(D.method!=="GET")return{ok:!1,response:X0("GET")};let V=Hn($);if(!V.ok)return{ok:!1,response:fD(400,"invalid-query",V.message)};return{ok:!0,value:{method:"brain.admission.list",params:{workerId:F.workerId,...V.value}}}}let Y=F.workerApiPath.match(/^\/api\/worker\/brain\/admission\/([^/]+)\/(approve|reject|apply)$/);if(Y){let V=decodeURIComponent(Y[1]),A=Y[2];if(D.method!=="POST")return{ok:!1,response:X0("POST")};let K=await t8(D);if(!K.ok)return{ok:!1,response:fD(K.status,K.code,K.message),audit:{method:`brain.admission.${A}`,errorCode:K.code}};let M=Un(K.value,A);if(!M.ok)return{ok:!1,response:fD(400,"invalid-body",M.message),audit:{method:`brain.admission.${A}`,errorCode:"invalid-body"}};return{ok:!0,value:{method:`brain.admission.${A}`,params:{workerId:F.workerId,id:V,...M.value},...A==="apply"?{statusForResult:Qn}:{}}}}let B=F.workerApiPath.match(/^\/api\/worker\/brain\/admission\/([^/]+)$/);if(B){if(D.method!=="GET")return{ok:!1,response:X0("GET")};return{ok:!0,value:{method:"brain.admission.show",params:{workerId:F.workerId,id:decodeURIComponent(B[1]),...dF($,"showSensitive")}}}}if(F.workerApiPath===`${c0}/brain/artifacts`){if(D.method!=="GET")return{ok:!1,response:X0("GET")};let V=Wn($);if(!V.ok)return{ok:!1,response:fD(400,"invalid-query",V.message)};return{ok:!0,value:{method:"brain.artifacts.list",params:{workerId:F.workerId,...V.value}}}}let H=F.workerApiPath.match(/^\/api\/worker\/brain\/artifacts\/([^/]+)$/);if(H){if(D.method!=="GET")return{ok:!1,response:X0("GET")};return{ok:!0,value:{method:"brain.artifacts.show",params:{workerId:F.workerId,id:decodeURIComponent(H[1]),...dF($,"showSensitive")}}}}if(F.workerApiPath===`${c0}/executor/test`){if(D.method!=="POST")return{ok:!1,response:X0("POST")};let V=await xE(D);if(!V.ok)return{ok:!1,response:fD(V.status,V.code,V.message),audit:{method:"executor.test",errorCode:V.code}};let A=V.value?.probe;return{ok:!0,value:{method:"executor.test",params:{workerId:F.workerId,...typeof A==="boolean"?{probe:A}:{}}}}}let U=F.workerApiPath.match(/^\/api\/worker\/channels\/([^/]+)\/test$/);if(U){if(D.method!=="POST")return{ok:!1,response:X0("POST")};let V=await xE(D);if(!V.ok)return{ok:!1,response:fD(V.status,V.code,V.message),audit:{method:"channel.test",errorCode:V.code}};return{ok:!0,value:{method:"channel.test",params:{workerId:F.workerId,channel:decodeURIComponent(U[1]),...V.value===void 0?{}:{body:V.value}}}}}if(F.workerApiPath===`${c0}/orchestrator/tasks`){if(D.method==="GET")return{ok:!0,value:{method:"orchestrator.tasks.list",params:{workerId:F.workerId}}};if(D.method==="POST"){let V=await t8(D);if(!V.ok)return{ok:!1,response:fD(V.status,V.code,V.message),audit:{method:"orchestrator.tasks.create",errorCode:V.code}};let A=V.value.prompt;if(typeof A!=="string"||A.trim().length===0||A.trim().length>8000)return{ok:!1,response:fD(400,"invalid-body","prompt is required and must be at most 8000 chars"),audit:{method:"orchestrator.tasks.create",errorCode:"invalid-body"}};return{ok:!0,value:{method:"orchestrator.tasks.create",params:{workerId:F.workerId,prompt:A},transformResult:yE}}}return{ok:!1,response:X0("GET, POST")}}if(F.workerApiPath===`${c0}/orchestrator/conversations`){if(D.method!=="GET")return{ok:!1,response:X0("GET")};return{ok:!0,value:{method:"orchestrator.conversations.list",params:{workerId:F.workerId}}}}let Q=F.workerApiPath.match(/^\/api\/worker\/orchestrator\/conversations\/([^/]+)\/messages$/);if(Q){if(D.method!=="GET")return{ok:!1,response:X0("GET")};return{ok:!0,value:{method:"orchestrator.messages.list",params:{workerId:F.workerId,conversationId:decodeURIComponent(Q[1])}}}}return{ok:!1,response:fD(404,"not-found",`Unsupported worker bridge path ${F.workerApiPath}`)}}function Hn(D){let $=cE(D,"limit");if(!$.ok)return $;return{ok:!0,value:{...Q8(D,"status"),...Q8(D,"kind"),...Q8(D,"scopeId"),...Q8(D,"soulId"),...$.value===void 0?{}:{limit:$.value},...dF(D,"showSensitive")}}}function Wn(D){let $=cE(D,"limit");if(!$.ok)return $;return{ok:!0,value:{...Q8(D,"scopeId"),...Q8(D,"type"),...Q8(D,"status"),...Q8(D,"minSensitivity"),...$.value===void 0?{}:{limit:$.value},...dF(D,"showSensitive")}}}function Q8(D,$){let F=D.searchParams.get($);if(F===null)return{};return F.length===0?{}:{[$]:F}}function dF(D,$){let F=D.searchParams.get($);if(F===null)return{};return{[$]:F==="true"}}function cE(D,$){let F=D.searchParams.get($);if(F===null)return{ok:!0};if(!/^\d+$/.test(F))return{ok:!1,message:`${$} must be a positive integer`};let X=Number.parseInt(F,10);if(!Number.isInteger(X)||X<1||X>500)return{ok:!1,message:`${$} must be between 1 and 500`};return{ok:!0,value:X}}function Un(D,$){if(D===null||typeof D!=="object"||Array.isArray(D))return{ok:!1,message:"request body must be a JSON object"};let F=D,X=F.decidedBy;if(typeof X!=="string"||X.trim().length===0)return{ok:!1,message:"decidedBy is required"};let J={decidedBy:X};if(F.reason!==void 0&&(typeof F.reason!=="string"||F.reason.length===0))return{ok:!1,message:"reason must be a non-empty string when provided"};if(typeof F.reason==="string")J.reason=F.reason;if($==="apply"){if(F.commit!==void 0&&typeof F.commit!=="boolean")return{ok:!1,message:"commit must be a boolean when provided"};if(typeof F.commit==="boolean")J.commit=F.commit;if(F.allowSecretBody!==void 0&&F.allowSecretBody!=="block"&&F.allowSecretBody!=="redact"&&F.allowSecretBody!=="raw")return{ok:!1,message:"allowSecretBody must be one of block | redact | raw when provided"};if(F.allowSecretBody==="block"||F.allowSecretBody==="redact"||F.allowSecretBody==="raw")J.allowSecretBody=F.allowSecretBody}return{ok:!0,value:J}}function Qn(D){let $=D.outcome;if($?.kind==="failed")return 500;if($?.kind==="blocked-by-secret-scan")return 409;return 200}async function t8(D){let $=Number.parseInt(D.headers.get("Content-Length")??"0",10);if(Number.isFinite($)&&$>mH)return{ok:!1,status:413,code:"payload-too-large",message:"Request body is too large"};let F=await D.text().catch(()=>{return});if(F===void 0)return{ok:!1,status:400,code:"invalid-body",message:"Request body must be readable"};if(new TextEncoder().encode(F).byteLength>mH)return{ok:!1,status:413,code:"payload-too-large",message:"Request body is too large"};try{return{ok:!0,value:JSON.parse(F)}}catch{return{ok:!1,status:400,code:"invalid-body",message:"Request body must be valid JSON"}}}async function xE(D){if(!D.body)return{ok:!0,value:void 0};let $=await D.text().catch(()=>{return});if($===void 0)return{ok:!1,status:400,code:"invalid-body",message:"Request body must be readable"};if($.trim().length===0)return{ok:!0,value:void 0};if(new TextEncoder().encode($).byteLength>mH)return{ok:!1,status:413,code:"payload-too-large",message:"Request body is too large"};try{return{ok:!0,value:JSON.parse($)}}catch{return{ok:!1,status:400,code:"invalid-body",message:"Request body must be valid JSON"}}}function yE(D){return D}function Vn(D){return Boolean(D.removed)?{ok:!0}:D}function An(D,$,F,X,J){if(D.method!=="GET")return X0("GET");if(cF>=Xn)return fD(503,"too-many-event-streams","Too many active worker event streams");if(!F.nodes.has(X.workerId)&&!F.persistence.getRegisteredWorker(X.workerId))return fD(404,"not-found",`worker ${X.workerId} is not registered`);if(!F.nodes.has(X.workerId))return fD(503,"node_offline",`worker ${X.workerId} \u5F53\u524D\u672A\u8FDE\u63A5\u5230 gateway`);cF+=1;let G=!1,Y=`http-sse-${crypto.randomUUID()}`,B,H=new ReadableStream({start(U){let Q=new TextEncoder,V=(C)=>{if(G)return;if(U.desiredSize!==null&&U.desiredSize<=0)return;U.enqueue(Q.encode(C))},A={send(C){let Z=Q1(C);if(!Z.ok||Z.frame.type!=="event")return;let O=Z.frame.payload;if(O.workerId!==X.workerId)return;V(`event: ${Z.frame.name}
1780
1780
  data: ${JSON.stringify({...O,at:Z.frame.ts})}
1781
1781
 
1782
1782
  `)},close(){},data:{}},K,M=()=>{if(G)return;if(G=!0,cF=Math.max(0,cF-1),F.operators.unregister(A),K)clearInterval(K);D.signal.removeEventListener("abort",M)};if(B=M,K=setInterval(()=>V(`: keepalive
1783
1783
 
1784
1784
  `),30000),typeof K.unref==="function")K.unref();F.operators.register({agentId:Y,deviceId:Y,ws:A,connectedAt:Date.now()}),D.signal.addEventListener("abort",M,{once:!0}),V(`: connected
1785
1785
 
1786
- `)},cancel(){B?.()}});return cH(F,{workerId:X.workerId,method:"events.stream",path:$.pathname,result:"success",status:200,latencyMs:pH(J)}),new Response(H,{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}function Kn(D){if(D===null)return{ok:!1,message:"If-Match header is required"};let $=D.trim();if(!/^\d+$/.test($))return{ok:!1,message:"If-Match must be a non-negative integer"};let F=Number.parseInt($,10);if(!Number.isInteger(F)||F<0)return{ok:!1,message:"If-Match must be a non-negative integer"};return{ok:!0,value:F}}function _n(D){let $=D.ctx.nodes.get(D.workerId);if(!$)return Promise.resolve({type:"response",id:crypto.randomUUID(),ok:!1,error:{code:"node_offline",message:`worker ${D.workerId} \u5F53\u524D\u672A\u8FDE\u63A5\u5230 gateway`,details:{workerId:D.workerId}}});let F=`http-${crypto.randomUUID()}`;return new Promise((X)=>{let J=!1,G,Y,B,H=()=>{if(Y)clearTimeout(Y);if(B)D.signal?.removeEventListener("abort",B)},U=(A)=>{if(J)return;J=!0,H(),X(A)};B=()=>{if(G)D.ctx.forwards.consume(G);U({type:"response",id:F,ok:!1,error:{code:"request_aborted",message:"request aborted by client",details:{workerId:D.workerId,method:D.method}}})};let Q={send(A){let K=Q1(A);if(K.ok&&K.frame.type==="response"){U(K.frame);return}U({type:"response",id:F,ok:!1,error:{code:"bad_gateway",message:"gateway bridge received a non-response frame"}})},close(){},data:{}};if(Y=setTimeout(()=>{if(G)D.ctx.forwards.consume(G);U({type:"response",id:F,ok:!1,error:{code:"forward_timeout",message:`\u7B49\u5F85 worker ${D.workerId} \u54CD\u5E94\u8D85\u65F6`,details:{workerId:D.workerId,method:D.method}}})},Fn),typeof Y.unref==="function")Y.unref();D.signal?.addEventListener("abort",B,{once:!0});let V=D.ctx.forwards.allocate({operatorRequestId:F,operatorWs:Q,workerId:D.workerId,method:D.method});G=V.gatewayRequestId;try{$.ws.send(dD({type:"request",id:V.gatewayRequestId,method:D.method,params:D.params}))}catch(A){D.ctx.forwards.consume(V.gatewayRequestId),U({type:"response",id:F,ok:!1,error:{code:"forward_failed",message:`\u8F6C\u53D1\u5230 worker ${D.workerId} \u5931\u8D25: ${A instanceof Error?A.message:String(A)}`,details:{workerId:D.workerId}}})}})}function Cn(D,$,F){if(D.ok)return lF($?$(D.result):D.result,F?.(D.result)??200);let X=Zn(D.error.code);return lF({error:{code:X,message:D.error.message,...D.error.details===void 0?{}:{details:D.error.details}}},Mn(D.error.code))}function cH(D,$){D.persistence.recordAudit({actor:"gateway",action:"gateway.method.invoked",workerId:$.workerId,detail:{operator:"http-bridge",workerId:$.workerId,method:$.method,path:$.path,result:$.result,status:$.status,latencyMs:$.latencyMs,...$.errorCode===void 0?{}:{errorCode:$.errorCode}}})}function pH(D){return Math.max(0,Date.now()-D)}function Mn(D){switch(D){case"invalid_params":case"invalid_config":case"invalid_body":case"invalid_key":case"invalid_cron":case"invalid_state":return 400;case"version_conflict":case"conflict":case"invalid_transition":return 409;case"not_found":return 404;case"node_offline":case"node_gone":case"forward_failed":return 503;case"forward_timeout":return 504;case"request_aborted":return 499;case"method_not_implemented":return 501;default:return 502}}function Zn(D){switch(D){case"invalid_config":return"invalid-config";case"version_conflict":return"version-conflict";case"invalid_transition":return"invalid-transition";case"invalid_state":return"invalid-state";case"invalid_body":return"invalid-body";case"invalid_key":return"invalid-key";case"invalid_cron":return"invalid-cron";case"not_found":return"not-found";default:return D}}function X0(D){return lF({error:{code:"method-not-allowed",message:"method not allowed"}},405,{Allow:D})}function fD(D,$,F,X={}){return lF({error:{code:$,message:F}},D,X)}function lF(D,$,F={}){return new Response(JSON.stringify(D),{status:$,headers:{"Content-Type":"application/json",...F}})}Z0();Z0();jD();function pE(D){let $=W.object({workerId:W.string().min(1)}).safeParse(D.params);if(!$.success)return dH(D.operatorWs,D.operatorRequestId,{code:"invalid_params",message:`${D.method} \u7F3A\u5C11 workerId`,details:$.error.flatten()}),!1;let{workerId:F}=$.data,X=D.ctx.nodes.get(F);if(!X)return dH(D.operatorWs,D.operatorRequestId,{code:"node_offline",message:`worker ${F} \u5F53\u524D\u672A\u8FDE\u63A5\u5230 gateway`,details:{workerId:F}}),!1;let J=D.ctx.forwards.allocate({operatorRequestId:D.operatorRequestId,operatorWs:D.operatorWs,workerId:F,method:D.method});try{return X.ws.send(dD({type:"request",id:J.gatewayRequestId,method:D.method,params:D.params})),!0}catch(G){return D.ctx.forwards.consume(J.gatewayRequestId),dH(D.operatorWs,D.operatorRequestId,{code:"forward_failed",message:`\u8F6C\u53D1\u5230 worker ${F} \u5931\u8D25: ${G instanceof Error?G.message:String(G)}`,details:{workerId:F}}),!1}}function dH(D,$,F){let X=dD({type:"response",id:$,ok:!1,error:F});try{D.send(X)}catch{}}Z0();jD();var Rn=W.object({limit:W.number().int().positive().max(200).optional(),before:W.number().int().positive().optional(),action:W.string().min(1).optional(),workerId:W.string().min(1).optional()}).default({}),On=W.object({events:W.array(s$),hasMore:W.boolean()}),dE=(D,$)=>{let F=Rn.safeParse($??{});if(!F.success)return{ok:!1,code:"invalid_params",message:"audit.list \u53C2\u6570\u6821\u9A8C\u5931\u8D25",details:F.error.flatten()};let{events:X,hasMore:J}=D.persistence.listAuditEvents({...F.data.limit===void 0?{}:{limit:F.data.limit},...F.data.before===void 0?{}:{before:F.data.before},...F.data.action===void 0?{}:{actionPrefix:F.data.action},...F.data.workerId===void 0?{}:{workerId:F.data.workerId}}),G=On.safeParse({events:X,hasMore:J});if(!G.success)return{ok:!1,code:"internal_error",message:`audit.list \u8FD4\u56DE\u503C\u4E0D\u7B26\u5408 schema: ${G.error.message}`};return{ok:!0,result:G.data}};Z0();jD();import{createHash as En}from"crypto";var lE=W.object({otp:W.string().min(1)}),iE=(D)=>{if(!D.pendingEnrollments)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u521D\u59CB\u5316 pending enrollment registry"};let $=D.pendingEnrollments.list(),F=W.object({pending:W.array(r$)}).safeParse({pending:$});if(!F.success)return{ok:!1,code:"internal_error",message:`enroll.list \u6784\u9020\u7684 result \u4E0D\u7B26\u5408 schema: ${F.error.message}`};return{ok:!0,result:F.data}},nE=(D,$)=>{if(!D.pendingEnrollments)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u521D\u59CB\u5316 pending enrollment registry"};let F=lE.safeParse($);if(!F.success)return{ok:!1,code:"invalid_params",message:"enroll.approve \u7F3A\u5C11 otp",details:F.error.flatten()};if(!D.masterKeyHex)return{ok:!1,code:"master_key_missing",message:"gateway \u672A\u914D\u7F6E AIWORKER_MASTER_KEY,\u65E0\u6CD5\u52A0\u5BC6 worker token"};if(D.maxWorkers!==void 0){let Y=jn(D,F.data.otp);if(!(Y?D.persistence.getRegisteredWorker(Y.workerId)!==void 0:!1)){let H=D.persistence.countRegisteredWorkers();if(H>=D.maxWorkers)return{ok:!1,code:"quota_exceeded",message:`fleet \u5DF2\u8FBE ${D.maxWorkers} worker \u4E0A\u9650`,details:{limit:D.maxWorkers,current:H}}}}let X=D.pendingEnrollments.approve(F.data.otp);if(!X)return{ok:!1,code:"not_found",message:`OTP ${F.data.otp} \u4E0D\u5728\u5F85\u6279\u5217\u8868\u4E2D\uFF08\u6216\u5DF2\u8FC7\u671F / \u5DF2\u5904\u7406\uFF09`};let J=D.persistence.upsertEnrolledWorker({workerId:X.workerId,baseUrl:"",apiToken:X.apiToken,displayName:X.displayName??X.workerId,addedBy:"otp"},D.masterKeyHex);X.ws.data.role="node",X.ws.data.agentId=X.workerId;let{replaced:G}=D.nodes.register({workerId:X.workerId,deviceId:X.ws.data.deviceId??X.workerId,ws:X.ws,pairedAt:Date.now(),meta:{}});if(G){D.forwards.cancelByWorker(X.workerId);try{G.ws.close(1012,"replaced_by_enroll_approve")}catch{}}try{X.ws.send(dD({type:"event",name:YD.ENROLLMENT_APPROVED,payload:{workerId:X.workerId,deviceToken:X.apiToken},ts:Date.now()}))}catch{}if(Y2(D.operators,{type:"event",name:YD.WORKER_ONLINE,payload:{workerId:X.workerId,displayName:J.row.displayName,deviceId:X.ws.data.deviceId??X.workerId,connectedAt:Date.now()},ts:Date.now()}),J.kind!=="unchanged")D.persistence.recordAudit({actor:"gateway",action:"gateway.enrollment.approved",workerId:X.workerId,detail:{displayName:J.row.displayName,deviceId:X.ws.data.deviceId,change:J.kind}});return Y2(D.operators,{type:"event",name:YD.ENROLLMENT_PENDING,payload:{workerId:X.workerId,...X.displayName===void 0?{}:{displayName:X.displayName},otp:X.otp,submittedAt:X.submittedAt,expiresAt:X.expiresAt,reason:"approved"},ts:Date.now()}),{ok:!0,result:{workerId:X.workerId,deviceToken:X.apiToken}}},rE=(D,$)=>{if(!D.pendingEnrollments)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u521D\u59CB\u5316 pending enrollment registry"};let F=lE.safeParse($);if(!F.success)return{ok:!1,code:"invalid_params",message:"enroll.reject \u7F3A\u5C11 otp",details:F.error.flatten()};let X=D.pendingEnrollments.reject(F.data.otp);if(!X)return{ok:!0,result:{rejected:!1}};try{X.ws.close(4403,"enroll:rejected")}catch{}return D.persistence.recordAudit({actor:"gateway",action:"gateway.enrollment.rejected",workerId:X.workerId,detail:{displayName:X.displayName,otpHash:Nn(X.otp)}}),Y2(D.operators,{type:"event",name:YD.ENROLLMENT_PENDING,payload:{workerId:X.workerId,...X.displayName===void 0?{}:{displayName:X.displayName},otp:X.otp,submittedAt:X.submittedAt,expiresAt:X.expiresAt,reason:"rejected"},ts:Date.now()}),{ok:!0,result:{rejected:!0}}};function jn(D,$){let F=D.pendingEnrollments?.list().find((X)=>X.otp===$);return F?{workerId:F.workerId}:void 0}function Nn(D){return En("sha256").update(D).digest("hex").slice(0,16)}Z0();jD();var Pn=W.object({now:W.number().int(),online:W.array(i8)}),sE=(D)=>{let $=Date.now(),F=D.nodes.list().map((J)=>{let G=D.persistence.getRegisteredWorker(J.workerId);return{workerId:J.workerId,displayName:G?.displayName,online:!0,deviceId:J.deviceId,baseUrl:G?.baseUrl,lastSeenAt:J.pairedAt}}),X=Pn.safeParse({now:$,online:F});if(!X.success)return{ok:!1,code:"internal_error",message:`system.presence \u6784\u9020\u7684 result \u4E0D\u7B26\u5408 schema: ${X.error.message}`};return{ok:!0,result:X.data}};Z0();jD();import{Buffer as aE}from"buffer";var Ln=W.object({workerId:W.string().min(1)}),oE=async(D,$)=>{let F=Ln.safeParse($);if(!F.success)return{ok:!1,code:"invalid_params",message:"token.rotate \u7F3A\u5C11 workerId",details:F.error.flatten()};if(!D.masterKeyHex)return{ok:!1,code:"master_key_missing",message:"gateway \u672A\u914D\u7F6E AIWORKER_MASTER_KEY,\u65E0\u6CD5\u52A0\u5BC6 worker token"};let{workerId:X}=F.data;if(!D.persistence.getRegisteredWorker(X))return{ok:!1,code:"not_found",message:`worker ${X} \u4E0D\u5728 fleet \u4E2D`};let G=D.nodes.get(X);if(!G)return{ok:!1,code:"node_offline",message:`worker ${X} \u672A\u8FDE\u63A5\u5230 gateway`};return await new Promise((Y)=>{let B=new tE(Y,D,X),H=D.forwards.allocate({operatorRequestId:`internal:token-rotate:${X}:${Date.now()}`,operatorWs:B,workerId:X,method:"token.rotate"});try{G.ws.send(dD({type:"request",id:H.gatewayRequestId,method:"token.rotate",params:{workerId:X}}))}catch(U){D.forwards.consume(H.gatewayRequestId),Y({ok:!1,code:"forward_failed",message:`token.rotate \u53D1\u5F80 worker \u5931\u8D25: ${U instanceof Error?U.message:String(U)}`})}})};class tE{resolve;ctx;workerId;constructor(D,$,F){this.resolve=D;this.ctx=$;this.workerId=F}send(D){let $=typeof D==="string"?D:D instanceof ArrayBuffer?aE.from(new Uint8Array(D)).toString("utf8"):aE.from(D).toString("utf8"),F;try{F=JSON.parse($)}catch(Y){this.resolve({ok:!1,code:"internal_error",message:`token.rotate: \u65E0\u6CD5\u89E3\u6790 node \u54CD\u5E94: ${Y instanceof Error?Y.message:String(Y)}`});return}if(F.type!=="response"){this.resolve({ok:!1,code:"internal_error",message:"token.rotate: \u975E response frame"});return}if(!F.ok){this.resolve({ok:!1,code:F.error.code,message:F.error.message,details:F.error.details});return}let J=F.result?.deviceToken;if(typeof J!=="string"||J.length===0){this.resolve({ok:!1,code:"invalid_worker_response",message:"token.rotate: node \u8FD4\u56DE\u7684 deviceToken \u7F3A\u5931\u6216\u975E\u5B57\u7B26\u4E32"});return}if(!this.ctx.persistence.updateEncryptedToken({workerId:this.workerId,newToken:J},this.ctx.masterKeyHex)){this.resolve({ok:!1,code:"not_found",message:`worker ${this.workerId} \u5728 token.rotate \u56DE\u8C03\u671F\u95F4\u5DF2\u88AB\u5220\u9664`});return}this.ctx.persistence.recordAudit({actor:"gateway",action:"gateway.token.rotated",workerId:this.workerId,detail:{lastFour:J.slice(-4)}}),this.resolve({ok:!0,result:{deviceToken:J}})}close(){}}Z0();MD();jD();MD();class r7 extends Error{constructor(D="worker rejected bearer token"){super(D);this.name="WorkerClientAuthError"}}class e8 extends Error{cause;constructor(D,$){super(D);this.cause=$;this.name="WorkerClientNetworkError"}}class V8 extends Error{constructor(D){super(D);this.name="WorkerClientInvalidResponseError"}}var qn=1e4;class lH{baseUrl;apiToken;fetchImpl;timeoutMs;constructor(D){this.baseUrl=D.baseUrl.replace(/\/+$/,""),this.apiToken=D.apiToken,this.fetchImpl=D.fetchImpl??globalThis.fetch,this.timeoutMs=D.timeoutMs??qn}buildUrl(D){let $=D.replace(/^\/+/,"");return`${this.baseUrl}/api/worker/${$}`}async request(D,$,F){let X=new AbortController,J=setTimeout(()=>X.abort(),this.timeoutMs),G={Authorization:`Bearer ${this.apiToken}`},Y={method:D,headers:G,signal:X.signal};if(F!==void 0)Y.body=JSON.stringify(F),G["Content-Type"]="application/json";try{return await this.fetchImpl(this.buildUrl($),Y)}catch(B){if(B.name==="AbortError")throw new e8(`worker ${this.baseUrl} request timed out after ${this.timeoutMs}ms`,B);throw new e8(`worker ${this.baseUrl} unreachable: ${B.message??String(B)}`,B)}finally{clearTimeout(J)}}async info(){let D=await this.request("GET","info");if(D.status===401)throw new r7;if(!D.ok)throw new e8(`worker ${this.baseUrl} returned HTTP ${D.status}`);let $;try{$=await D.json()}catch(F){throw new V8(`worker ${this.baseUrl} /info returned non-JSON body: ${F.message}`)}if(!zn($))throw new V8(`worker ${this.baseUrl} /info response missing required fields`);return $}async rotateToken(){let D=await this.request("POST","token/rotate");if(D.status===401)throw new r7;if(!D.ok)throw new e8(`worker ${this.baseUrl} returned HTTP ${D.status} from /token/rotate`);let $;try{$=await D.json()}catch(X){throw new V8(`worker ${this.baseUrl} /token/rotate returned non-JSON body: ${X.message}`)}if(!$||typeof $!=="object"||!("newToken"in $))throw new V8(`worker ${this.baseUrl} /token/rotate response missing newToken`);let F=$.newToken;if(!J8(F))throw new V8(`worker ${this.baseUrl} /token/rotate returned a token that does not match wtk_<base64url>`);return{newToken:F}}}function zn(D){if(!D||typeof D!=="object")return!1;let $=D;return typeof $.workerId==="string"&&$.workerId.length>0&&typeof $.configVersion==="number"&&Number.isFinite($.configVersion)}class R3 extends Error{constructor(D){super(D);this.name="LaunchTimeoutError"}}class k1 extends Error{cause;constructor(D,$){super(D);this.cause=$;this.name="LaunchFailedError"}}function In(D){if(!D)return null;let $=Date.parse(D);if(!Number.isFinite($))return null;return $}var eE=(D)=>{let F=D.persistence.listRegisteredWorkers().map((J)=>{let G=D.nodes.has(J.id),Y=G?D.nodes.get(J.id):void 0,B=Y?Y.pairedAt:In(J.lastSeenAt);return{workerId:J.id,displayName:J.displayName,online:G,deviceId:Y?.deviceId,baseUrl:J.baseUrl,lastSeenAt:B}}),X=W.object({workers:W.array(i8)}).safeParse({workers:F});if(!X.success)return{ok:!1,code:"internal_error",message:`workers.list \u6784\u9020\u7684 result \u4E0D\u7B26\u5408 schema: ${X.error.message}`};return{ok:!0,result:X.data}},Dj=(D,$)=>{let F=W.object({workerId:W.string().min(1)}).safeParse($);if(!F.success)return{ok:!1,code:"invalid_params",message:"workers.remove \u7F3A\u5C11 workerId",details:F.error.flatten()};let{workerId:X}=F.data,J=D.persistence.getRegisteredWorker(X);if(!J)return{ok:!1,code:"not_found",message:`worker ${X} \u4E0D\u5728 fleet \u4E2D`};let G=D.nodes.get(X),Y=D.persistence.removeRegisteredWorker(X);if(G){D.forwards.cancelByWorker(X),D.nodes.unregisterByWs(G.ws);try{G.ws.close(1000,"removed_from_fleet")}catch(B){D.logger.warn(`[gateway] workers.remove \u5173\u95ED\u5728\u7EBF node \u65F6\u62A5\u9519 (workerId=${X})`,B)}}return D.persistence.recordAudit({actor:"gateway",action:"gateway.worker.removed",workerId:X,detail:{displayName:J.displayName,baseUrl:J.baseUrl}}),{ok:!0,result:{removed:Y}}},Sn=W.object({workerBaseUrl:W.string().min(1),bootstrapToken:W.string().regex(L1,"bootstrapToken must match wtk_<base64url>"),displayName:W.string().min(1).max(80).optional()});function Tn(D={}){return async($,F)=>{if(!$.masterKeyHex)return{ok:!1,code:"master_key_missing",message:"gateway \u672A\u914D\u7F6E AIWORKER_MASTER_KEY,\u65E0\u6CD5\u52A0\u5BC6 worker token"};let X=Sn.safeParse(F);if(!X.success)return{ok:!1,code:"invalid_params",message:"workers.pair \u53C2\u6570\u6821\u9A8C\u5931\u8D25",details:X.error.flatten()};let J=X.data;if($.maxWorkers!==void 0){let Q=$.persistence.countRegisteredWorkers();if(Q>=$.maxWorkers)return{ok:!1,code:"quota_exceeded",message:`fleet \u5DF2\u8FBE ${$.maxWorkers} worker \u4E0A\u9650`,details:{limit:$.maxWorkers,current:Q}}}let G=D.buildClient?D.buildClient(J.workerBaseUrl,J.bootstrapToken):new lH({baseUrl:J.workerBaseUrl,apiToken:J.bootstrapToken}),Y;try{Y=await G.info()}catch(Q){if(Q instanceof r7)return{ok:!1,code:"auth_failed",message:"worker \u62D2\u7EDD bootstrap token"};if(Q instanceof e8)return{ok:!1,code:"worker_unreachable",message:Q.message};if(Q instanceof V8)return{ok:!1,code:"invalid_worker_info",message:Q.message};throw Q}if($.persistence.getRegisteredWorker(Y.workerId))return{ok:!1,code:"already_registered",message:`worker ${Y.workerId} \u5DF2\u5728 fleet \u4E2D`,details:{workerId:Y.workerId}};let H=$.persistence.createRegisteredWorker({workerId:Y.workerId,baseUrl:J.workerBaseUrl,apiToken:J.bootstrapToken,displayName:J.displayName??Y.workerId,addedBy:"manual",configVersion:Y.configVersion},$.masterKeyHex),U=Q3.safeParse({workerId:H.id,deviceToken:J.bootstrapToken});if(!U.success)return{ok:!1,code:"internal_error",message:`workers.pair \u6784\u9020\u7684 result \u4E0D\u7B26\u5408 schema: ${U.error.message}`};return{ok:!0,result:U.data}}}var $j=Tn(),wn=W.object({displayName:W.string().min(1).max(80).optional(),image:W.string().optional(),env:W.record(W.string()).optional(),forceId:W.string().optional()});function kn(D={}){return async($,F)=>{if(!$.supervisor)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u5F00\u542F launch \u80FD\u529B (AIWORKER_GATEWAY_CAN_LAUNCH=false)"};if(!$.masterKeyHex)return{ok:!1,code:"master_key_missing",message:"gateway \u672A\u914D\u7F6E AIWORKER_MASTER_KEY,\u65E0\u6CD5\u52A0\u5BC6 worker token"};let X=wn.safeParse(F);if(!X.success)return{ok:!1,code:"invalid_params",message:"workers.launch \u53C2\u6570\u6821\u9A8C\u5931\u8D25",details:X.error.flatten()};let J=X.data,G=J.displayName??"worker";if($.maxWorkers!==void 0){let Q=$.persistence.countRegisteredWorkers();if(Q>=$.maxWorkers)return{ok:!1,code:"quota_exceeded",message:`fleet \u5DF2\u8FBE ${$.maxWorkers} worker \u4E0A\u9650`,details:{limit:$.maxWorkers,current:Q}}}let Y;try{Y=await $.supervisor.launchLocal({displayName:G,...J.forceId===void 0?{}:{forceId:J.forceId}})}catch(Q){if(Q instanceof R3)return{ok:!1,code:"launch_timeout",message:Q.message};if(Q instanceof k1)return{ok:!1,code:"launch_failed",message:Q.message};throw Q}if($.persistence.getRegisteredWorker(Y.workerId))return{ok:!1,code:"already_registered",message:`worker ${Y.workerId} \u5DF2\u5728 fleet \u4E2D`,details:{workerId:Y.workerId,containerName:Y.containerName}};let H=$.persistence.createRegisteredWorker({workerId:Y.workerId,baseUrl:Y.baseUrl,apiToken:Y.apiToken,displayName:G,addedBy:"launch-local"},$.masterKeyHex);$.persistence.recordAudit({actor:"gateway",action:"gateway.worker.launched",workerId:H.id,detail:{containerId:Y.containerId,containerName:Y.containerName,baseUrl:Y.baseUrl}});let U=Q3.safeParse({workerId:H.id,deviceToken:Y.apiToken});if(!U.success)return{ok:!1,code:"internal_error",message:`workers.launch \u6784\u9020\u7684 result \u4E0D\u7B26\u5408 schema: ${U.error.message}`};return{ok:!0,result:U.data}}}var Fj=kn();var bn={"system.presence":sE,"workers.list":eE,"workers.remove":Dj,"workers.pair":$j,"workers.launch":Fj,"token.rotate":oE,"enroll.list":iE,"enroll.approve":nE,"enroll.reject":rE,"audit.list":dE},fn=new Set(["system.presence","workers.list","audit.list","enroll.list"]);async function Xj(D,$,F,X){let J=E7(F.method);if(!J){O3($,{type:"response",id:F.id,ok:!1,error:{code:"unknown_method",message:`\u672A\u6CE8\u518C\u65B9\u6CD5 ${F.method}`,details:{method:F.method}}});return}let G=J.params.safeParse(F.params??void 0);if(!G.success){O3($,{type:"response",id:F.id,ok:!1,error:{code:"invalid_params",message:`${F.method} \u53C2\u6570\u6821\u9A8C\u5931\u8D25`,details:G.error.flatten()}});return}let Y=G.data;if(!fn.has(F.method))D.persistence.recordAudit({actor:"gateway",action:"gateway.method.invoked",workerId:gn(Y),detail:{method:F.method,agentId:X}});if(J.routing==="operator-to-gateway"){let B=bn[F.method];if(!B){O3($,{type:"response",id:F.id,ok:!1,error:{code:"handler_missing",message:`\u65B9\u6CD5 ${F.method} \u6CA1\u6709\u672C\u5730 handler \u7ED1\u5B9A`,details:{method:F.method}}});return}try{let H=await B(D,Y);if(H.ok)O3($,{type:"response",id:F.id,ok:!0,result:H.result});else O3($,{type:"response",id:F.id,ok:!1,error:{code:H.code,message:H.message,details:H.details}})}catch(H){D.logger.error(`[gateway] handler ${F.method} \u629B\u51FA\u5F02\u5E38`,H),O3($,{type:"response",id:F.id,ok:!1,error:{code:"internal_error",message:H instanceof Error?H.message:String(H)}})}return}pE({ctx:D,operatorWs:$,operatorRequestId:F.id,method:F.method,params:Y})}function Jj(D,$,F){let X=D.forwards.consume(F.id);if(!X){D.logger.warn(`[gateway] \u6536\u5230 node response \u4F46\u627E\u4E0D\u5230\u5339\u914D\u7684 pending (id=${F.id})`);return}let J=F.ok?{type:"response",id:X.operatorRequestId,ok:!0,result:F.result}:{type:"response",id:X.operatorRequestId,ok:!1,error:F.error};try{X.operatorWs.send(dD(J))}catch{}}function Gj(D,$,F){Y2(D.operators,F)}function gn(D){if(D&&typeof D==="object"&&"workerId"in D){let $=D.workerId;return typeof $==="string"&&$.length>0?$:null}return null}function O3(D,$){try{D.send(dD($))}catch{}}MD();var iF="/w/",hn="/api/worker";function Bj(D){if(!D.startsWith(iF))return!1;let $=Wj(D);return $!==void 0&&($.ok===!1||!$.value.pathnameAfterPrefix.startsWith(Uj()))}async function Hj(D,$,F){let X=Wj($.pathname);if(X===void 0)return new Response("not found",{status:404});if(!X.ok)return Yj({error:{code:"invalid-worker-id",message:X.message}},400);let{workerId:J}=X.value;if(!F.nodes.has(J)&&!F.persistence.getRegisteredWorker(J))return Yj({error:{code:"not-found",message:`worker ${J} is not registered`}},404);if(X.value.redirectToSlash){let G=new URL(`${iF}${J}/`,$);return Response.redirect(G.toString(),308)}if(!F.workerWebStaticDir)return new Response("not found",{status:404});return mF({webStaticDir:F.workerWebStaticDir,pathnameAfterPrefix:X.value.pathnameAfterPrefix})}function Wj(D){if(!D.startsWith(iF))return;let $=D.slice(iF.length),F=$.indexOf("/"),X=F===-1?$:$.slice(0,F);if(!C2.test(X))return{ok:!1,message:`workerId must match ${String(C2)}`};if(F===-1)return{ok:!0,value:{workerId:X,pathnameAfterPrefix:"",redirectToSlash:!0}};let J=$.slice(F+1);if(J.startsWith(Uj()))return;return{ok:!0,value:{workerId:X,pathnameAfterPrefix:J,redirectToSlash:!1}}}function Uj(){return hn.slice(1)}function Yj(D,$){return new Response(JSON.stringify(D),{status:$,headers:{"Content-Type":"application/json"}})}function Qj(D){let{config:$,context:F}=D;fE({host:$.host,internalSharedSecret:$.internalSharedSecret}),U7({surface:"fleet",host:$.host,serveWeb:F.webStaticDir!==void 0,externalAuthAcknowledged:$.adminExternalAuthAcknowledged}),yn({host:$.host,externalAuthAcknowledged:$.adminExternalAuthAcknowledged});let X=Bun.serve({port:$.port,hostname:$.host,fetch(G,Y){let B=new URL(G.url);if(B.pathname==="/health"&&G.method==="GET")return new Response(JSON.stringify({ok:!0,service:"aiworker-gateway",ts:Date.now()}),{status:200,headers:{"Content-Type":"application/json"}});if(B.pathname==="/health")return new Response("method not allowed",{status:405,headers:{Allow:"GET"}});if(B.pathname==="/admin"){let H=new URL("/admin/",B);return Response.redirect(H.toString(),308)}if(B.pathname.startsWith("/admin/")){if(!F.webStaticDir)return new Response("not found",{status:404});return mF({webStaticDir:F.webStaticDir,pathnameAfterPrefix:B.pathname.slice(7)})}if(mE(B.pathname))return uE(G,B,F);if(Bj(B.pathname))return Hj(G,B,F);if(B.pathname==="/ws"||B.pathname==="/enroll-ws"){let U=Y.requestIP(G)?.address,Q=p8(U);if(!Q&&F.connectRateLimiter){let K=F.connectRateLimiter.isBlocked(U);if(K.blocked)return new Response("rate_limited",{status:429,headers:{"Retry-After":String(Math.ceil(K.retryAfterMs/1000))}})}let V=B.pathname==="/enroll-ws"?"/enroll-ws":"/ws";if(Y.upgrade(G,{data:{role:void 0,agentId:void 0,deviceId:void 0,loopback:Q,remoteAddress:U,connectedAt:Date.now(),subscribedAll:!0,path:V}}))return;return new Response("upgrade failed",{status:400})}return new Response("not found",{status:404})},websocket:{maxPayloadLength:1048576,idleTimeout:120,open(G){F.logger.debug(`[gateway] ws opened (remote=${G.data.remoteAddress??"?"} loopback=${G.data.loopback})`)},message(G,Y){un(G,Y,F,$)},close(G,Y,B){cn(G,Y,B,F)}}}),J=X.port;if(typeof J!=="number")throw TypeError("Bun.serve did not return a TCP port \u2014 unix socket is not supported");return{server:X,port:J,context:F,stop:async()=>{F.forwards.dispose(),F.pendingEnrollments?.dispose(),await X.stop(!0)}}}function yn(D){if(p8(D.host))return;if(D.externalAuthAcknowledged)return;throw Error(`[fleet] refusing to serve /w/* on non-loopback host="${D.host}" without external-auth acknowledgement.
1786
+ `)},cancel(){B?.()}});return cH(F,{workerId:X.workerId,method:"events.stream",path:$.pathname,result:"success",status:200,latencyMs:pH(J)}),new Response(H,{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}function Kn(D){if(D===null)return{ok:!1,message:"If-Match header is required"};let $=D.trim();if(!/^\d+$/.test($))return{ok:!1,message:"If-Match must be a non-negative integer"};let F=Number.parseInt($,10);if(!Number.isInteger(F)||F<0)return{ok:!1,message:"If-Match must be a non-negative integer"};return{ok:!0,value:F}}function _n(D){let $=D.ctx.nodes.get(D.workerId);if(!$)return Promise.resolve({type:"response",id:crypto.randomUUID(),ok:!1,error:{code:"node_offline",message:`worker ${D.workerId} \u5F53\u524D\u672A\u8FDE\u63A5\u5230 gateway`,details:{workerId:D.workerId}}});let F=`http-${crypto.randomUUID()}`;return new Promise((X)=>{let J=!1,G,Y,B,H=()=>{if(Y)clearTimeout(Y);if(B)D.signal?.removeEventListener("abort",B)},U=(A)=>{if(J)return;J=!0,H(),X(A)};B=()=>{if(G)D.ctx.forwards.consume(G);U({type:"response",id:F,ok:!1,error:{code:"request_aborted",message:"request aborted by client",details:{workerId:D.workerId,method:D.method}}})};let Q={send(A){let K=Q1(A);if(K.ok&&K.frame.type==="response"){U(K.frame);return}U({type:"response",id:F,ok:!1,error:{code:"bad_gateway",message:"gateway bridge received a non-response frame"}})},close(){},data:{}};if(Y=setTimeout(()=>{if(G)D.ctx.forwards.consume(G);U({type:"response",id:F,ok:!1,error:{code:"forward_timeout",message:`\u7B49\u5F85 worker ${D.workerId} \u54CD\u5E94\u8D85\u65F6`,details:{workerId:D.workerId,method:D.method}}})},Fn),typeof Y.unref==="function")Y.unref();D.signal?.addEventListener("abort",B,{once:!0});let V=D.ctx.forwards.allocate({operatorRequestId:F,operatorWs:Q,workerId:D.workerId,method:D.method});G=V.gatewayRequestId;try{$.ws.send(dD({type:"request",id:V.gatewayRequestId,method:D.method,params:D.params}))}catch(A){D.ctx.forwards.consume(V.gatewayRequestId),U({type:"response",id:F,ok:!1,error:{code:"forward_failed",message:`\u8F6C\u53D1\u5230 worker ${D.workerId} \u5931\u8D25: ${A instanceof Error?A.message:String(A)}`,details:{workerId:D.workerId}}})}})}function Cn(D,$,F){if(D.ok)return lF($?$(D.result):D.result,F?.(D.result)??200);let X=Zn(D.error.code);return lF({error:{code:X,message:D.error.message,...D.error.details===void 0?{}:{details:D.error.details}}},Mn(D.error.code))}function cH(D,$){D.persistence.recordAudit({actor:"gateway",action:"gateway.method.invoked",workerId:$.workerId,detail:{operator:"http-bridge",workerId:$.workerId,method:$.method,path:$.path,result:$.result,status:$.status,latencyMs:$.latencyMs,...$.errorCode===void 0?{}:{errorCode:$.errorCode}}})}function pH(D){return Math.max(0,Date.now()-D)}function Mn(D){switch(D){case"invalid_params":case"invalid_config":case"invalid_body":case"invalid_key":case"invalid_cron":case"invalid_state":return 400;case"version_conflict":case"conflict":case"invalid_transition":return 409;case"not_found":return 404;case"node_offline":case"node_gone":case"forward_failed":return 503;case"forward_timeout":return 504;case"request_aborted":return 499;case"method_not_implemented":return 501;default:return 502}}function Zn(D){switch(D){case"invalid_config":return"invalid-config";case"version_conflict":return"version-conflict";case"invalid_transition":return"invalid-transition";case"invalid_state":return"invalid-state";case"invalid_body":return"invalid-body";case"invalid_key":return"invalid-key";case"invalid_cron":return"invalid-cron";case"not_found":return"not-found";default:return D}}function X0(D){return lF({error:{code:"method-not-allowed",message:"method not allowed"}},405,{Allow:D})}function fD(D,$,F,X={}){return lF({error:{code:$,message:F}},D,X)}function lF(D,$,F={}){return new Response(JSON.stringify(D),{status:$,headers:{"Content-Type":"application/json",...F}})}Z0();Z0();jD();function pE(D){let $=W.object({workerId:W.string().min(1)}).safeParse(D.params);if(!$.success)return dH(D.operatorWs,D.operatorRequestId,{code:"invalid_params",message:`${D.method} \u7F3A\u5C11 workerId`,details:$.error.flatten()}),!1;let{workerId:F}=$.data,X=D.ctx.nodes.get(F);if(!X)return dH(D.operatorWs,D.operatorRequestId,{code:"node_offline",message:`worker ${F} \u5F53\u524D\u672A\u8FDE\u63A5\u5230 gateway`,details:{workerId:F}}),!1;let J=D.ctx.forwards.allocate({operatorRequestId:D.operatorRequestId,operatorWs:D.operatorWs,workerId:F,method:D.method});try{return X.ws.send(dD({type:"request",id:J.gatewayRequestId,method:D.method,params:D.params})),!0}catch(G){return D.ctx.forwards.consume(J.gatewayRequestId),dH(D.operatorWs,D.operatorRequestId,{code:"forward_failed",message:`\u8F6C\u53D1\u5230 worker ${F} \u5931\u8D25: ${G instanceof Error?G.message:String(G)}`,details:{workerId:F}}),!1}}function dH(D,$,F){let X=dD({type:"response",id:$,ok:!1,error:F});try{D.send(X)}catch{}}Z0();jD();var Rn=W.object({limit:W.number().int().positive().max(200).optional(),before:W.number().int().positive().optional(),action:W.string().min(1).optional(),workerId:W.string().min(1).optional()}).default({}),On=W.object({events:W.array(s$),hasMore:W.boolean()}),dE=(D,$)=>{let F=Rn.safeParse($??{});if(!F.success)return{ok:!1,code:"invalid_params",message:"audit.list \u53C2\u6570\u6821\u9A8C\u5931\u8D25",details:F.error.flatten()};let{events:X,hasMore:J}=D.persistence.listAuditEvents({...F.data.limit===void 0?{}:{limit:F.data.limit},...F.data.before===void 0?{}:{before:F.data.before},...F.data.action===void 0?{}:{actionPrefix:F.data.action},...F.data.workerId===void 0?{}:{workerId:F.data.workerId}}),G=On.safeParse({events:X,hasMore:J});if(!G.success)return{ok:!1,code:"internal_error",message:`audit.list \u8FD4\u56DE\u503C\u4E0D\u7B26\u5408 schema: ${G.error.message}`};return{ok:!0,result:G.data}};Z0();jD();import{createHash as En}from"crypto";var lE=W.object({otp:W.string().min(1)}),iE=(D)=>{if(!D.pendingEnrollments)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u521D\u59CB\u5316 pending enrollment registry"};let $=D.pendingEnrollments.list(),F=W.object({pending:W.array(r$)}).safeParse({pending:$});if(!F.success)return{ok:!1,code:"internal_error",message:`enroll.list \u6784\u9020\u7684 result \u4E0D\u7B26\u5408 schema: ${F.error.message}`};return{ok:!0,result:F.data}},nE=(D,$)=>{if(!D.pendingEnrollments)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u521D\u59CB\u5316 pending enrollment registry"};let F=lE.safeParse($);if(!F.success)return{ok:!1,code:"invalid_params",message:"enroll.approve \u7F3A\u5C11 otp",details:F.error.flatten()};if(!D.masterKeyHex)return{ok:!1,code:"master_key_missing",message:"gateway \u672A\u914D\u7F6E AIWORKER_MASTER_KEY,\u65E0\u6CD5\u52A0\u5BC6 worker token"};if(D.maxWorkers!==void 0){let Y=jn(D,F.data.otp);if(!(Y?D.persistence.getRegisteredWorker(Y.workerId)!==void 0:!1)){let H=D.persistence.countRegisteredWorkers();if(H>=D.maxWorkers)return{ok:!1,code:"quota_exceeded",message:`fleet \u5DF2\u8FBE ${D.maxWorkers} worker \u4E0A\u9650`,details:{limit:D.maxWorkers,current:H}}}}let X=D.pendingEnrollments.approve(F.data.otp);if(!X)return{ok:!1,code:"not_found",message:`OTP ${F.data.otp} \u4E0D\u5728\u5F85\u6279\u5217\u8868\u4E2D\uFF08\u6216\u5DF2\u8FC7\u671F / \u5DF2\u5904\u7406\uFF09`};let J=D.persistence.upsertEnrolledWorker({workerId:X.workerId,baseUrl:"",apiToken:X.apiToken,displayName:X.displayName??X.workerId,addedBy:"otp"},D.masterKeyHex);X.ws.data.role="node",X.ws.data.agentId=X.workerId;let{replaced:G}=D.nodes.register({workerId:X.workerId,deviceId:X.ws.data.deviceId??X.workerId,ws:X.ws,pairedAt:Date.now(),meta:{}});if(G){D.forwards.cancelByWorker(X.workerId);try{G.ws.close(1012,"replaced_by_enroll_approve")}catch{}}try{X.ws.send(dD({type:"event",name:YD.ENROLLMENT_APPROVED,payload:{workerId:X.workerId,deviceToken:X.apiToken},ts:Date.now()}))}catch{}if(Y2(D.operators,{type:"event",name:YD.WORKER_ONLINE,payload:{workerId:X.workerId,displayName:J.row.displayName,deviceId:X.ws.data.deviceId??X.workerId,connectedAt:Date.now()},ts:Date.now()}),J.kind!=="unchanged")D.persistence.recordAudit({actor:"gateway",action:"gateway.enrollment.approved",workerId:X.workerId,detail:{displayName:J.row.displayName,deviceId:X.ws.data.deviceId,change:J.kind}});return Y2(D.operators,{type:"event",name:YD.ENROLLMENT_PENDING,payload:{workerId:X.workerId,...X.displayName===void 0?{}:{displayName:X.displayName},otp:X.otp,submittedAt:X.submittedAt,expiresAt:X.expiresAt,reason:"approved"},ts:Date.now()}),{ok:!0,result:{workerId:X.workerId,deviceToken:X.apiToken}}},rE=(D,$)=>{if(!D.pendingEnrollments)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u521D\u59CB\u5316 pending enrollment registry"};let F=lE.safeParse($);if(!F.success)return{ok:!1,code:"invalid_params",message:"enroll.reject \u7F3A\u5C11 otp",details:F.error.flatten()};let X=D.pendingEnrollments.reject(F.data.otp);if(!X)return{ok:!0,result:{rejected:!1}};try{X.ws.close(4403,"enroll:rejected")}catch{}return D.persistence.recordAudit({actor:"gateway",action:"gateway.enrollment.rejected",workerId:X.workerId,detail:{displayName:X.displayName,otpHash:Nn(X.otp)}}),Y2(D.operators,{type:"event",name:YD.ENROLLMENT_PENDING,payload:{workerId:X.workerId,...X.displayName===void 0?{}:{displayName:X.displayName},otp:X.otp,submittedAt:X.submittedAt,expiresAt:X.expiresAt,reason:"rejected"},ts:Date.now()}),{ok:!0,result:{rejected:!0}}};function jn(D,$){let F=D.pendingEnrollments?.list().find((X)=>X.otp===$);return F?{workerId:F.workerId}:void 0}function Nn(D){return En("sha256").update(D).digest("hex").slice(0,16)}Z0();jD();var Pn=W.object({now:W.number().int(),online:W.array(i8)}),sE=(D)=>{let $=Date.now(),F=D.nodes.list().map((J)=>{let G=D.persistence.getRegisteredWorker(J.workerId);return{workerId:J.workerId,displayName:G?.displayName,online:!0,deviceId:J.deviceId,baseUrl:G?.baseUrl,lastSeenAt:J.pairedAt}}),X=Pn.safeParse({now:$,online:F});if(!X.success)return{ok:!1,code:"internal_error",message:`system.presence \u6784\u9020\u7684 result \u4E0D\u7B26\u5408 schema: ${X.error.message}`};return{ok:!0,result:X.data}};Z0();jD();import{Buffer as aE}from"buffer";var Ln=W.object({workerId:W.string().min(1)}),oE=async(D,$)=>{let F=Ln.safeParse($);if(!F.success)return{ok:!1,code:"invalid_params",message:"token.rotate \u7F3A\u5C11 workerId",details:F.error.flatten()};if(!D.masterKeyHex)return{ok:!1,code:"master_key_missing",message:"gateway \u672A\u914D\u7F6E AIWORKER_MASTER_KEY,\u65E0\u6CD5\u52A0\u5BC6 worker token"};let{workerId:X}=F.data;if(!D.persistence.getRegisteredWorker(X))return{ok:!1,code:"not_found",message:`worker ${X} \u4E0D\u5728 fleet \u4E2D`};let G=D.nodes.get(X);if(!G)return{ok:!1,code:"node_offline",message:`worker ${X} \u672A\u8FDE\u63A5\u5230 gateway`};return await new Promise((Y)=>{let B=new tE(Y,D,X),H=D.forwards.allocate({operatorRequestId:`internal:token-rotate:${X}:${Date.now()}`,operatorWs:B,workerId:X,method:"token.rotate"});try{G.ws.send(dD({type:"request",id:H.gatewayRequestId,method:"token.rotate",params:{workerId:X}}))}catch(U){D.forwards.consume(H.gatewayRequestId),Y({ok:!1,code:"forward_failed",message:`token.rotate \u53D1\u5F80 worker \u5931\u8D25: ${U instanceof Error?U.message:String(U)}`})}})};class tE{resolve;ctx;workerId;constructor(D,$,F){this.resolve=D;this.ctx=$;this.workerId=F}send(D){let $=typeof D==="string"?D:D instanceof ArrayBuffer?aE.from(new Uint8Array(D)).toString("utf8"):aE.from(D).toString("utf8"),F;try{F=JSON.parse($)}catch(Y){this.resolve({ok:!1,code:"internal_error",message:`token.rotate: \u65E0\u6CD5\u89E3\u6790 node \u54CD\u5E94: ${Y instanceof Error?Y.message:String(Y)}`});return}if(F.type!=="response"){this.resolve({ok:!1,code:"internal_error",message:"token.rotate: \u975E response frame"});return}if(!F.ok){this.resolve({ok:!1,code:F.error.code,message:F.error.message,details:F.error.details});return}let J=F.result?.deviceToken;if(typeof J!=="string"||J.length===0){this.resolve({ok:!1,code:"invalid_worker_response",message:"token.rotate: node \u8FD4\u56DE\u7684 deviceToken \u7F3A\u5931\u6216\u975E\u5B57\u7B26\u4E32"});return}if(!this.ctx.persistence.updateEncryptedToken({workerId:this.workerId,newToken:J},this.ctx.masterKeyHex)){this.resolve({ok:!1,code:"not_found",message:`worker ${this.workerId} \u5728 token.rotate \u56DE\u8C03\u671F\u95F4\u5DF2\u88AB\u5220\u9664`});return}this.ctx.persistence.recordAudit({actor:"gateway",action:"gateway.token.rotated",workerId:this.workerId,detail:{lastFour:J.slice(-4)}}),this.resolve({ok:!0,result:{deviceToken:J}})}close(){}}Z0();ZD();jD();ZD();class r7 extends Error{constructor(D="worker rejected bearer token"){super(D);this.name="WorkerClientAuthError"}}class e8 extends Error{cause;constructor(D,$){super(D);this.cause=$;this.name="WorkerClientNetworkError"}}class V8 extends Error{constructor(D){super(D);this.name="WorkerClientInvalidResponseError"}}var qn=1e4;class lH{baseUrl;apiToken;fetchImpl;timeoutMs;constructor(D){this.baseUrl=D.baseUrl.replace(/\/+$/,""),this.apiToken=D.apiToken,this.fetchImpl=D.fetchImpl??globalThis.fetch,this.timeoutMs=D.timeoutMs??qn}buildUrl(D){let $=D.replace(/^\/+/,"");return`${this.baseUrl}/api/worker/${$}`}async request(D,$,F){let X=new AbortController,J=setTimeout(()=>X.abort(),this.timeoutMs),G={Authorization:`Bearer ${this.apiToken}`},Y={method:D,headers:G,signal:X.signal};if(F!==void 0)Y.body=JSON.stringify(F),G["Content-Type"]="application/json";try{return await this.fetchImpl(this.buildUrl($),Y)}catch(B){if(B.name==="AbortError")throw new e8(`worker ${this.baseUrl} request timed out after ${this.timeoutMs}ms`,B);throw new e8(`worker ${this.baseUrl} unreachable: ${B.message??String(B)}`,B)}finally{clearTimeout(J)}}async info(){let D=await this.request("GET","info");if(D.status===401)throw new r7;if(!D.ok)throw new e8(`worker ${this.baseUrl} returned HTTP ${D.status}`);let $;try{$=await D.json()}catch(F){throw new V8(`worker ${this.baseUrl} /info returned non-JSON body: ${F.message}`)}if(!zn($))throw new V8(`worker ${this.baseUrl} /info response missing required fields`);return $}async rotateToken(){let D=await this.request("POST","token/rotate");if(D.status===401)throw new r7;if(!D.ok)throw new e8(`worker ${this.baseUrl} returned HTTP ${D.status} from /token/rotate`);let $;try{$=await D.json()}catch(X){throw new V8(`worker ${this.baseUrl} /token/rotate returned non-JSON body: ${X.message}`)}if(!$||typeof $!=="object"||!("newToken"in $))throw new V8(`worker ${this.baseUrl} /token/rotate response missing newToken`);let F=$.newToken;if(!J8(F))throw new V8(`worker ${this.baseUrl} /token/rotate returned a token that does not match wtk_<base64url>`);return{newToken:F}}}function zn(D){if(!D||typeof D!=="object")return!1;let $=D;return typeof $.workerId==="string"&&$.workerId.length>0&&typeof $.configVersion==="number"&&Number.isFinite($.configVersion)}class R3 extends Error{constructor(D){super(D);this.name="LaunchTimeoutError"}}class k1 extends Error{cause;constructor(D,$){super(D);this.cause=$;this.name="LaunchFailedError"}}function In(D){if(!D)return null;let $=Date.parse(D);if(!Number.isFinite($))return null;return $}var eE=(D)=>{let F=D.persistence.listRegisteredWorkers().map((J)=>{let G=D.nodes.has(J.id),Y=G?D.nodes.get(J.id):void 0,B=Y?Y.pairedAt:In(J.lastSeenAt);return{workerId:J.id,displayName:J.displayName,online:G,deviceId:Y?.deviceId,baseUrl:J.baseUrl,lastSeenAt:B}}),X=W.object({workers:W.array(i8)}).safeParse({workers:F});if(!X.success)return{ok:!1,code:"internal_error",message:`workers.list \u6784\u9020\u7684 result \u4E0D\u7B26\u5408 schema: ${X.error.message}`};return{ok:!0,result:X.data}},Dj=(D,$)=>{let F=W.object({workerId:W.string().min(1)}).safeParse($);if(!F.success)return{ok:!1,code:"invalid_params",message:"workers.remove \u7F3A\u5C11 workerId",details:F.error.flatten()};let{workerId:X}=F.data,J=D.persistence.getRegisteredWorker(X);if(!J)return{ok:!1,code:"not_found",message:`worker ${X} \u4E0D\u5728 fleet \u4E2D`};let G=D.nodes.get(X),Y=D.persistence.removeRegisteredWorker(X);if(G){D.forwards.cancelByWorker(X),D.nodes.unregisterByWs(G.ws);try{G.ws.close(1000,"removed_from_fleet")}catch(B){D.logger.warn(`[gateway] workers.remove \u5173\u95ED\u5728\u7EBF node \u65F6\u62A5\u9519 (workerId=${X})`,B)}}return D.persistence.recordAudit({actor:"gateway",action:"gateway.worker.removed",workerId:X,detail:{displayName:J.displayName,baseUrl:J.baseUrl}}),{ok:!0,result:{removed:Y}}},Sn=W.object({workerBaseUrl:W.string().min(1),bootstrapToken:W.string().regex(L1,"bootstrapToken must match wtk_<base64url>"),displayName:W.string().min(1).max(80).optional()});function Tn(D={}){return async($,F)=>{if(!$.masterKeyHex)return{ok:!1,code:"master_key_missing",message:"gateway \u672A\u914D\u7F6E AIWORKER_MASTER_KEY,\u65E0\u6CD5\u52A0\u5BC6 worker token"};let X=Sn.safeParse(F);if(!X.success)return{ok:!1,code:"invalid_params",message:"workers.pair \u53C2\u6570\u6821\u9A8C\u5931\u8D25",details:X.error.flatten()};let J=X.data;if($.maxWorkers!==void 0){let Q=$.persistence.countRegisteredWorkers();if(Q>=$.maxWorkers)return{ok:!1,code:"quota_exceeded",message:`fleet \u5DF2\u8FBE ${$.maxWorkers} worker \u4E0A\u9650`,details:{limit:$.maxWorkers,current:Q}}}let G=D.buildClient?D.buildClient(J.workerBaseUrl,J.bootstrapToken):new lH({baseUrl:J.workerBaseUrl,apiToken:J.bootstrapToken}),Y;try{Y=await G.info()}catch(Q){if(Q instanceof r7)return{ok:!1,code:"auth_failed",message:"worker \u62D2\u7EDD bootstrap token"};if(Q instanceof e8)return{ok:!1,code:"worker_unreachable",message:Q.message};if(Q instanceof V8)return{ok:!1,code:"invalid_worker_info",message:Q.message};throw Q}if($.persistence.getRegisteredWorker(Y.workerId))return{ok:!1,code:"already_registered",message:`worker ${Y.workerId} \u5DF2\u5728 fleet \u4E2D`,details:{workerId:Y.workerId}};let H=$.persistence.createRegisteredWorker({workerId:Y.workerId,baseUrl:J.workerBaseUrl,apiToken:J.bootstrapToken,displayName:J.displayName??Y.workerId,addedBy:"manual",configVersion:Y.configVersion},$.masterKeyHex),U=Q3.safeParse({workerId:H.id,deviceToken:J.bootstrapToken});if(!U.success)return{ok:!1,code:"internal_error",message:`workers.pair \u6784\u9020\u7684 result \u4E0D\u7B26\u5408 schema: ${U.error.message}`};return{ok:!0,result:U.data}}}var $j=Tn(),wn=W.object({displayName:W.string().min(1).max(80).optional(),image:W.string().optional(),env:W.record(W.string()).optional(),forceId:W.string().optional()});function kn(D={}){return async($,F)=>{if(!$.supervisor)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u5F00\u542F launch \u80FD\u529B (AIWORKER_GATEWAY_CAN_LAUNCH=false)"};if(!$.masterKeyHex)return{ok:!1,code:"master_key_missing",message:"gateway \u672A\u914D\u7F6E AIWORKER_MASTER_KEY,\u65E0\u6CD5\u52A0\u5BC6 worker token"};let X=wn.safeParse(F);if(!X.success)return{ok:!1,code:"invalid_params",message:"workers.launch \u53C2\u6570\u6821\u9A8C\u5931\u8D25",details:X.error.flatten()};let J=X.data,G=J.displayName??"worker";if($.maxWorkers!==void 0){let Q=$.persistence.countRegisteredWorkers();if(Q>=$.maxWorkers)return{ok:!1,code:"quota_exceeded",message:`fleet \u5DF2\u8FBE ${$.maxWorkers} worker \u4E0A\u9650`,details:{limit:$.maxWorkers,current:Q}}}let Y;try{Y=await $.supervisor.launchLocal({displayName:G,...J.forceId===void 0?{}:{forceId:J.forceId}})}catch(Q){if(Q instanceof R3)return{ok:!1,code:"launch_timeout",message:Q.message};if(Q instanceof k1)return{ok:!1,code:"launch_failed",message:Q.message};throw Q}if($.persistence.getRegisteredWorker(Y.workerId))return{ok:!1,code:"already_registered",message:`worker ${Y.workerId} \u5DF2\u5728 fleet \u4E2D`,details:{workerId:Y.workerId,containerName:Y.containerName}};let H=$.persistence.createRegisteredWorker({workerId:Y.workerId,baseUrl:Y.baseUrl,apiToken:Y.apiToken,displayName:G,addedBy:"launch-local"},$.masterKeyHex);$.persistence.recordAudit({actor:"gateway",action:"gateway.worker.launched",workerId:H.id,detail:{containerId:Y.containerId,containerName:Y.containerName,baseUrl:Y.baseUrl}});let U=Q3.safeParse({workerId:H.id,deviceToken:Y.apiToken});if(!U.success)return{ok:!1,code:"internal_error",message:`workers.launch \u6784\u9020\u7684 result \u4E0D\u7B26\u5408 schema: ${U.error.message}`};return{ok:!0,result:U.data}}}var Fj=kn();var bn={"system.presence":sE,"workers.list":eE,"workers.remove":Dj,"workers.pair":$j,"workers.launch":Fj,"token.rotate":oE,"enroll.list":iE,"enroll.approve":nE,"enroll.reject":rE,"audit.list":dE},fn=new Set(["system.presence","workers.list","audit.list","enroll.list"]);async function Xj(D,$,F,X){let J=E7(F.method);if(!J){O3($,{type:"response",id:F.id,ok:!1,error:{code:"unknown_method",message:`\u672A\u6CE8\u518C\u65B9\u6CD5 ${F.method}`,details:{method:F.method}}});return}let G=J.params.safeParse(F.params??void 0);if(!G.success){O3($,{type:"response",id:F.id,ok:!1,error:{code:"invalid_params",message:`${F.method} \u53C2\u6570\u6821\u9A8C\u5931\u8D25`,details:G.error.flatten()}});return}let Y=G.data;if(!fn.has(F.method))D.persistence.recordAudit({actor:"gateway",action:"gateway.method.invoked",workerId:gn(Y),detail:{method:F.method,agentId:X}});if(J.routing==="operator-to-gateway"){let B=bn[F.method];if(!B){O3($,{type:"response",id:F.id,ok:!1,error:{code:"handler_missing",message:`\u65B9\u6CD5 ${F.method} \u6CA1\u6709\u672C\u5730 handler \u7ED1\u5B9A`,details:{method:F.method}}});return}try{let H=await B(D,Y);if(H.ok)O3($,{type:"response",id:F.id,ok:!0,result:H.result});else O3($,{type:"response",id:F.id,ok:!1,error:{code:H.code,message:H.message,details:H.details}})}catch(H){D.logger.error(`[gateway] handler ${F.method} \u629B\u51FA\u5F02\u5E38`,H),O3($,{type:"response",id:F.id,ok:!1,error:{code:"internal_error",message:H instanceof Error?H.message:String(H)}})}return}pE({ctx:D,operatorWs:$,operatorRequestId:F.id,method:F.method,params:Y})}function Jj(D,$,F){let X=D.forwards.consume(F.id);if(!X){D.logger.warn(`[gateway] \u6536\u5230 node response \u4F46\u627E\u4E0D\u5230\u5339\u914D\u7684 pending (id=${F.id})`);return}let J=F.ok?{type:"response",id:X.operatorRequestId,ok:!0,result:F.result}:{type:"response",id:X.operatorRequestId,ok:!1,error:F.error};try{X.operatorWs.send(dD(J))}catch{}}function Gj(D,$,F){Y2(D.operators,F)}function gn(D){if(D&&typeof D==="object"&&"workerId"in D){let $=D.workerId;return typeof $==="string"&&$.length>0?$:null}return null}function O3(D,$){try{D.send(dD($))}catch{}}ZD();var iF="/w/",hn="/api/worker";function Bj(D){if(!D.startsWith(iF))return!1;let $=Wj(D);return $!==void 0&&($.ok===!1||!$.value.pathnameAfterPrefix.startsWith(Uj()))}async function Hj(D,$,F){let X=Wj($.pathname);if(X===void 0)return new Response("not found",{status:404});if(!X.ok)return Yj({error:{code:"invalid-worker-id",message:X.message}},400);let{workerId:J}=X.value;if(!F.nodes.has(J)&&!F.persistence.getRegisteredWorker(J))return Yj({error:{code:"not-found",message:`worker ${J} is not registered`}},404);if(X.value.redirectToSlash){let G=new URL(`${iF}${J}/`,$);return Response.redirect(G.toString(),308)}if(!F.workerWebStaticDir)return new Response("not found",{status:404});return mF({webStaticDir:F.workerWebStaticDir,pathnameAfterPrefix:X.value.pathnameAfterPrefix})}function Wj(D){if(!D.startsWith(iF))return;let $=D.slice(iF.length),F=$.indexOf("/"),X=F===-1?$:$.slice(0,F);if(!C2.test(X))return{ok:!1,message:`workerId must match ${String(C2)}`};if(F===-1)return{ok:!0,value:{workerId:X,pathnameAfterPrefix:"",redirectToSlash:!0}};let J=$.slice(F+1);if(J.startsWith(Uj()))return;return{ok:!0,value:{workerId:X,pathnameAfterPrefix:J,redirectToSlash:!1}}}function Uj(){return hn.slice(1)}function Yj(D,$){return new Response(JSON.stringify(D),{status:$,headers:{"Content-Type":"application/json"}})}function Qj(D){let{config:$,context:F}=D;fE({host:$.host,internalSharedSecret:$.internalSharedSecret}),U7({surface:"fleet",host:$.host,serveWeb:F.webStaticDir!==void 0,externalAuthAcknowledged:$.adminExternalAuthAcknowledged}),yn({host:$.host,externalAuthAcknowledged:$.adminExternalAuthAcknowledged});let X=Bun.serve({port:$.port,hostname:$.host,fetch(G,Y){let B=new URL(G.url);if(B.pathname==="/health"&&G.method==="GET")return new Response(JSON.stringify({ok:!0,service:"aiworker-gateway",ts:Date.now()}),{status:200,headers:{"Content-Type":"application/json"}});if(B.pathname==="/health")return new Response("method not allowed",{status:405,headers:{Allow:"GET"}});if(B.pathname==="/admin"){let H=new URL("/admin/",B);return Response.redirect(H.toString(),308)}if(B.pathname.startsWith("/admin/")){if(!F.webStaticDir)return new Response("not found",{status:404});return mF({webStaticDir:F.webStaticDir,pathnameAfterPrefix:B.pathname.slice(7)})}if(mE(B.pathname))return uE(G,B,F);if(Bj(B.pathname))return Hj(G,B,F);if(B.pathname==="/ws"||B.pathname==="/enroll-ws"){let U=Y.requestIP(G)?.address,Q=p8(U);if(!Q&&F.connectRateLimiter){let K=F.connectRateLimiter.isBlocked(U);if(K.blocked)return new Response("rate_limited",{status:429,headers:{"Retry-After":String(Math.ceil(K.retryAfterMs/1000))}})}let V=B.pathname==="/enroll-ws"?"/enroll-ws":"/ws";if(Y.upgrade(G,{data:{role:void 0,agentId:void 0,deviceId:void 0,loopback:Q,remoteAddress:U,connectedAt:Date.now(),subscribedAll:!0,path:V}}))return;return new Response("upgrade failed",{status:400})}return new Response("not found",{status:404})},websocket:{maxPayloadLength:1048576,idleTimeout:120,open(G){F.logger.debug(`[gateway] ws opened (remote=${G.data.remoteAddress??"?"} loopback=${G.data.loopback})`)},message(G,Y){un(G,Y,F,$)},close(G,Y,B){cn(G,Y,B,F)}}}),J=X.port;if(typeof J!=="number")throw TypeError("Bun.serve did not return a TCP port \u2014 unix socket is not supported");return{server:X,port:J,context:F,stop:async()=>{F.forwards.dispose(),F.pendingEnrollments?.dispose(),await X.stop(!0)}}}function yn(D){if(p8(D.host))return;if(D.externalAuthAcknowledged)return;throw Error(`[fleet] refusing to serve /w/* on non-loopback host="${D.host}" without external-auth acknowledgement.
1787
1787
 
1788
1788
  The /w/:workerId/* bridge exposes worker management APIs through gateway WS/RPC.
1789
1789
 
@@ -1796,7 +1796,7 @@ Fix one of these ways:
1796
1796
  `));return}_.box(["First-run secrets for aiworker-gateway:"," install -d -m 0700 ~/.config/aiworker",` sh -c 'umask 077; printf "AIWORKER_MASTER_KEY=%s\\nINTERNAL_SHARED_SECRET=%s\\n" "$(openssl rand -hex 32)" "$(openssl rand -base64 24)" > ~/.config/aiworker/gateway.env'`," chmod 600 ~/.config/aiworker/gateway.env"].join(`
1797
1797
  `))}x0();HD();import gQ from"process";x0();gD();import e1D from"process";async function D8D(D){let $=cD(),F=g1(D).map((J)=>J.path),X=new Map;for(let J of F){let G=await $.get(J);if(G!==null)X.set(J,G)}return T3(D,X)}async function pD(D={}){D4(o.WORKER_DB_PATH);let $=e1D.env.WORKER_MIGRATIONS_FOLDER??E3;$4($);let F=cD(),X=b(),J=await J6(X,F,{...o.AIWORKER_FORCE_ID===void 0?{}:{forceId:o.AIWORKER_FORCE_ID},...o.AIWORKER_FORCE_TOKEN===void 0?{}:{forceToken:o.AIWORKER_FORCE_TOKEN}});if(!D.silent)G6(J.workerId,J.token,X,J.justMinted);let G=await X6(X),Y=await D8D(G.config),B=new Z6({maxConcurrentTotal:o.MAX_CONCURRENT_TOTAL,perEngineLimits:{...o.perEngineLimits},stallTimeoutMs:o.PROCESS_STALL_TIMEOUT_MS,killTimeoutMs:o.PROCESS_KILL_TIMEOUT_MS,autoCleanupDelayMs:o.PROCESS_AUTO_CLEANUP_DELAY_MS,gcIntervalMs:o.PROCESS_GC_INTERVAL_MS});return{workerId:J.workerId,token:J.token,tokenJustMinted:J.justMinted,configVersion:G.version,hydrated:Y,db:X,processes:B}}function UJ(D){return P6(D.workerId,D.hydrated,{processes:D.processes})}function $8D(){return`http://${gQ.env.AIW_LOCAL_WORKER_HOST??"localhost"}:${o.PORT}`}async function eI(D,$={}){let F=await pD({silent:!0}),X=`${$8D()}${D}`,J=new Headers($.headers??{});if(J.set("Authorization",`Bearer ${F.token}`),$.body!==void 0&&!J.has("content-type"))J.set("content-type","application/json");let G=await fetch(X,{...$,headers:J}),Y=null;try{Y=await G.json()}catch{Y=null}return{status:G.status,body:Y}}async function hQ(){try{let{status:D,body:$}=await eI("/api/worker/approvals");if(D!==200)return _.error(`approvals list HTTP ${D}: ${JSON.stringify($)}`),1;return gQ.stdout.write(`${JSON.stringify($,null,2)}
1798
1798
  `),0}catch(D){return _.error(`approvals list \u5931\u8D25: ${D instanceof Error?D.message:String(D)}`),1}}async function vQ(D){try{let $=D.deny===!0?"deny":"allow",{status:F,body:X}=await eI(`/api/worker/approvals/${encodeURIComponent(D.taskId)}/${encodeURIComponent(D.toolCallId)}/grant`,{method:"POST",body:JSON.stringify({decision:$})});if(F!==200)return _.error(`approvals grant HTTP ${F}: ${JSON.stringify(X)}`),1;return gQ.stdout.write(`${JSON.stringify(X,null,2)}
1799
- `),0}catch($){return _.error(`approvals grant \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}x0();$0();MD();HD();import{existsSync as QJ,readFileSync as F8D}from"fs";import{readFile as xQ}from"fs/promises";import k4 from"path";import X8D from"process";var J8D=$2();async function x1(D){let $=await pD({silent:!0});return await D($)}async function yQ(D){let $=await pD({silent:!0}),F=UJ($);try{return await D($,F)}finally{F.dispose()}}function G8D(D){if(D===void 0)return 50;if(!Number.isInteger(D)||D<1||D>200)throw new U9("limit must be an integer between 1 and 200");return D}function DS(D){let $=D.env??X8D.env,F=D.showSensitive===!0,X=$.AIWORKER_ADMIN_REVEAL==="1";if(F&&X)return{redactSensitive:!1};if(F&&!X)return{redactSensitive:!0,showSensitiveDeniedReason:"missing-env-gate"};return{redactSensitive:!0}}function Y8D(D){return{id:D.id,content:D.content,metadata:D.metadata,createdAt:D.createdAt,updatedAt:D.updatedAt,...D.score===void 0?{}:{score:D.score}}}function B8D(D){return{id:D.id,name:D.name,description:D.description,version:D.version,...D.tags===void 0?{}:{tags:D.tags}}}async function uQ(){try{return await yQ(async(D,$)=>{let F=await $.brain.health(),X=await $.brain.listSkills().catch(()=>[]),G=(await $.brain.listMemories({limit:200}).catch(()=>[])).length,Y=W8D(),B=D.hydrated.orchestrator?.decisionPipeline,H={intentEvaluator:B?.intentClassifier?.evaluator??"heuristic",qualityEvaluator:B?.qualityGate?.evaluator??"heuristic",qualityMode:B?.qualityGate?.mode??"observe",...B?.qualityGate?.threshold===void 0?{}:{qualityThreshold:B.qualityGate.threshold},conversationClassifierEnabled:!0};return console.log(JSON.stringify({workerId:D.workerId,configVersion:D.configVersion,status:F.status,brainRetrieval:D.hydrated.brainRetrieval,brainWriteTarget:D.hydrated.brainWriteTarget,brains:D.hydrated.brains.map((U)=>C8(D.workerId,U,D.hydrated.brainWriteTarget)),scope:H8D(),decisionPipeline:z3(H),assets:{identity:Y,skillCount:X.length,memoryCount:G,hint:X.length===0&&G===0?"No brain skills or memories yet. Add `.aiworker/skills/<id>/SKILL.md` or `.aiworker/memories/<topic>.md` directly; brain runtime does not write them automatically.":void 0}},null,2)),0})}catch(D){return _.error(`[aiworker brain status] failed: ${D instanceof Error?D.message:String(D)}`),1}}function H8D(){let D=mD();if(D.scope!=="project"||!D.projectRoot)return{status:"not-applicable"};let $=k4.join(D.projectRoot,".aiworker","scope.json");if(!QJ($))return{status:"missing"};let F;try{F=F8D($,"utf8")}catch(G){return{error:G instanceof Error?G.message:String(G),status:"malformed"}}let X=q1(F);if(X.status==="malformed")return{error:X.error,status:"malformed"};let J=X.manifest;return{manifest:{...J.approval===void 0?{}:{approval:J.approval},artifactRootCount:J.artifactRoots?.length??0,kind:J.kind,labels:J.labels??[],primarySoul:J.primarySoul,...J.privacy===void 0?{}:{privacy:J.privacy},...J.retention===void 0?{}:{retention:J.retention}},status:"ok"}}function W8D(){let D=mD();if(D.scope!=="project"||!D.projectRoot)return{agent:!1,soul:!1,user:!1};let $=k4.join(D.projectRoot,".aiworker");return{root:$,agent:QJ(k4.join($,"AGENT.md")),soul:QJ(k4.join($,"SOUL.md")),user:QJ(k4.join($,"USER.md"))}}async function mQ(){try{return await yQ(async(D,$)=>{let F=await $.brain.listSkills();return console.log(JSON.stringify({workerId:D.workerId,count:F.length,skills:F.map(B8D)},null,2)),0})}catch(D){return _.error(`[aiworker brain skills] failed: ${D instanceof Error?D.message:String(D)}`),1}}async function cQ(D={}){try{let $=G8D(D.limit);return await yQ(async(F,X)=>{let J=D.query?.trim(),G=J?(await X.brain.searchMemories(J)).slice(0,$):await X.brain.listMemories({limit:$});return console.log(JSON.stringify({workerId:F.workerId,...J?{query:J}:{},count:G.length,memories:G.map(Y8D)},null,2)),0})}catch($){return _.error(`[aiworker brain memories] failed: ${$ instanceof Error?$.message:String($)}`),$ instanceof U9?2:1}}class U9 extends Error{}function $S(D){if(D===void 0)return 50;if(!Number.isInteger(D)||D<1||D>200)throw new U9("limit must be an integer between 1 and 200");return D}function FS(D){return{id:D.id,type:D.type,sensitivity:D.sensitivity,source:D.source,status:D.status,ref:D.ref,...D.scopeId===void 0?{}:{scopeId:D.scopeId},...D.hash===void 0?{}:{hash:D.hash},...D.retention===void 0?{}:{retention:D.retention},...D.summary===void 0?{}:{summary:D.summary},evidenceRefs:D.evidenceRefs,...D.metadata===void 0?{}:{metadata:D.metadata},createdAt:D.createdAt,updatedAt:D.updatedAt}}async function pQ(D={}){try{let $=$S(D.limit);return await x1(async(F)=>{let X=new a0,J={limit:$};if(D.scopeId!==void 0)J.scopeId=D.scopeId;if(D.type!==void 0)J.type=D.type;if(D.status!==void 0)J.status=D.status;if(D.minSensitivity!==void 0)J.minSensitivity=D.minSensitivity;let G=X.list(J,{redactSensitive:D.showSensitive!==!0});return console.log(JSON.stringify({workerId:F.workerId,count:G.length,redacted:D.showSensitive!==!0,artifacts:G.map(FS)},null,2)),0})}catch($){return _.error(`[aiworker brain artifacts list] failed: ${$ instanceof Error?$.message:String($)}`),$ instanceof U9?2:1}}async function dQ(D,$={}){if(D===void 0||D==="")return _.error("[aiworker brain artifacts show] id is required"),2;try{return await x1(async(F)=>{let J=new a0().get(D,{redactSensitive:$.showSensitive!==!0});if(J===null)return _.error(`[aiworker brain artifacts show] artifact "${D}" not found`),1;return console.log(JSON.stringify({workerId:F.workerId,redacted:$.showSensitive!==!0,artifact:FS(J)},null,2)),0})}catch(F){return _.error(`[aiworker brain artifacts show] failed: ${F instanceof Error?F.message:String(F)}`),1}}function VJ(D){return{id:D.id,soulId:D.soulId,kind:D.kind,status:D.status,risk:D.risk,confidence:D.confidence,target:D.target,summary:D.summary,rollback:D.rollback,...D.scopeId===void 0?{}:{scopeId:D.scopeId},evidenceCount:D.evidence.length,...D.payload===void 0?{}:{payload:D.payload},createdAt:D.createdAt,updatedAt:D.updatedAt}}function XS(D){return{...VJ(D),evidence:D.evidence}}async function lQ(D={}){try{let $=$S(D.limit);return await x1(async(F)=>{let X=new eD,J={limit:$};if(D.status!==void 0)J.status=D.status;if(D.kind!==void 0)J.kind=D.kind;if(D.scopeId!==void 0)J.scopeId=D.scopeId;if(D.soulId!==void 0)J.soulId=D.soulId;let G=DS({showSensitive:D.showSensitive});if(G.showSensitiveDeniedReason==="missing-env-gate")_.warn("[aiworker brain admission list] --show-sensitive ignored: set AIWORKER_ADMIN_REVEAL=1 in the worker process env to unlock plaintext");let Y=X.list(J,{redactSensitive:G.redactSensitive});return console.log(JSON.stringify({workerId:F.workerId,count:Y.proposals.length,redacted:G.redactSensitive,proposals:Y.proposals.map(VJ),skipped:Y.skipped},null,2)),0})}catch($){return _.error(`[aiworker brain admission list] failed: ${$ instanceof Error?$.message:String($)}`),$ instanceof U9?2:1}}async function iQ(D,$={}){if(D===void 0||D==="")return _.error("[aiworker brain admission show] id is required"),2;try{return await x1(async(F)=>{let X=new eD,J=DS({showSensitive:$.showSensitive});if(J.showSensitiveDeniedReason==="missing-env-gate")_.warn("[aiworker brain admission show] --show-sensitive ignored: set AIWORKER_ADMIN_REVEAL=1 in the worker process env to unlock plaintext");let G=X.get(D,{redactSensitive:J.redactSensitive});if(G===null)return _.error(`[aiworker brain admission show] proposal "${D}" not found`),1;let Y=X.listDecisions(D);return console.log(JSON.stringify({workerId:F.workerId,redacted:J.redactSensitive,proposal:XS(G),decisions:Y},null,2)),0})}catch(F){return _.error(`[aiworker brain admission show] failed: ${F instanceof Error?F.message:String(F)}`),1}}async function nQ(D,$){if(D===void 0||D==="")return _.error("[aiworker brain admission approve] id is required"),2;try{return await x1(async(F)=>{let J=new eD().approve(D,{decidedBy:$.decidedBy,...$.reason===void 0?{}:{reason:$.reason}});return console.log(JSON.stringify({workerId:F.workerId,decision:"approved",proposal:VJ(J)},null,2)),0})}catch(F){return _.error(`[aiworker brain admission approve] failed: ${F instanceof Error?F.message:String(F)}`),1}}async function rQ(D,$){if(D===void 0||D==="")return _.error("[aiworker brain admission reject] id is required"),2;try{return await x1(async(F)=>{let J=new eD().reject(D,{decidedBy:$.decidedBy,...$.reason===void 0?{}:{reason:$.reason}});return console.log(JSON.stringify({workerId:F.workerId,decision:"rejected",proposal:VJ(J)},null,2)),0})}catch(F){return _.error(`[aiworker brain admission reject] failed: ${F instanceof Error?F.message:String(F)}`),1}}function U8D(D){if(D===void 0)return[];return(Array.isArray(D)?[...D]:[D]).filter((F)=>typeof F==="string").map((F)=>F.trim()).filter((F)=>F.length>0)}async function sQ(D){if(D.task===void 0||D.task.trim()==="")return _.error("[aiworker brain brief] --task is required"),2;let $=U8D(D.artifactRefs);try{return await x1(async(F)=>{let X=u0(F.workerId),J=mD(),Y=await new Y6({artifactRegistry:new a0,brainHome:X,scopeManifestReader:async()=>{if(J.scope!=="project"||!J.projectRoot)return null;try{let B=await xQ(eZ(J.projectRoot),"utf8"),H=q1(B);return H.status==="ok"?H.manifest:null}catch{return null}},soulRegistry:J8D}).compile({task:D.task,...D.scopeId===void 0?{}:{scopeId:D.scopeId},...D.soulId===void 0?{}:{soulId:D.soulId},...$.length===0?{}:{artifactRefs:$},...D.executor===void 0?{}:{executor:D.executor},...D.tokenBudget===void 0?{}:{tokenBudget:D.tokenBudget}});return console.log(JSON.stringify({workerId:F.workerId,brief:Y,note:"Brief is a projection of canonical brain (<brainHome>); orchestrator system prompt is unchanged."},null,2)),0})}catch(F){return _.error(`[aiworker brain brief] failed: ${F instanceof Error?F.message:String(F)}`),1}}async function aQ(D){let $=[["id","--id"],["target","--target"],["summary","--summary"],["rollback","--rollback"],["soulId","--soul"]];for(let[G,Y]of $){let B=D[G];if(B===void 0||typeof B==="string"&&B.trim()==="")return _.error(`[aiworker brain admission propose] ${Y} is required`),2}let F=D.risk;if(F!==void 0&&F!=="low"&&F!=="medium"&&F!=="high")return _.error(`[aiworker brain admission propose] --risk must be one of low | medium | high, got "${F}"`),2;let X,J;try{if(D.evidencePath!==void 0)X=JSON.parse(await xQ(D.evidencePath,"utf8"));if(D.payloadPath!==void 0)J=JSON.parse(await xQ(D.payloadPath,"utf8"))}catch(G){return _.error(`[aiworker brain admission propose] failed to read fixture file: ${G instanceof Error?G.message:String(G)}`),2}if(X!==void 0&&!Array.isArray(X))return _.error("[aiworker brain admission propose] --evidence file must contain a JSON array"),2;if(J!==void 0&&(J===null||typeof J!=="object"||Array.isArray(J)))return _.error("[aiworker brain admission propose] --payload file must contain a JSON object"),2;try{return await x1(async(G)=>{let Y=new eD,B={confidence:D.confidence??0.5,id:D.id,kind:D.kind??"memory-add",rollback:D.rollback,soulId:D.soulId,summary:D.summary,target:D.target,...F===void 0?{}:{risk:F},...D.scopeId===void 0?{}:{scopeId:D.scopeId},...X===void 0?{}:{evidence:X},...J===void 0?{}:{payload:J}},H=Y.propose(B);return console.log(JSON.stringify({workerId:G.workerId,proposal:XS(H)},null,2)),0})}catch(G){return _.error(`[aiworker brain admission propose] failed: ${G instanceof Error?G.message:String(G)}`),1}}async function oQ(D,$){if(D===void 0||D==="")return _.error("[aiworker brain admission apply] id is required"),2;try{return await x1(async(F)=>{let X=new eD,J=u0(F.workerId),G=await X.apply(D,{brainHome:J,commit:$.commit===!0,decidedBy:$.decidedBy,...$.allowSecretBody===void 0?{}:{allowSecretBody:$.allowSecretBody}});if(console.log(JSON.stringify({workerId:F.workerId,outcome:G},null,2)),G.kind==="failed"||G.kind==="blocked-by-secret-scan")return 1;return 0})}catch(F){return _.error(`[aiworker brain admission apply] failed: ${F instanceof Error?F.message:String(F)}`),1}}x0();HD();async function tQ(){await pD({silent:!0});let{getWorkerDb:D}=await Promise.resolve().then(() => (gD(),GW)),$=await P0(D());return console.log(JSON.stringify({version:$.version,config:$.config},null,2)),0}async function eQ(D){let $=await pD({silent:!0}),F;try{F=JSON.parse(D.json)}catch(Y){return _.error(`[aiworker config set] invalid JSON: ${String(Y)}`),2}let{getWorkerDb:X}=await Promise.resolve().then(() => (gD(),GW)),J=X(),G=cD();try{let Y=await K6(J,G,F,D.ifMatch===void 0?{}:{ifMatchVersion:D.ifMatch});return await _6($.workerId,Y.config,Y.version),_.success(`[aiworker config set] stored config v${Y.version}`),0}catch(Y){if(Y instanceof w2)return _.error(`[aiworker config set] invalid config: ${JSON.stringify(Y.issues,null,2)}`),2;if(Y instanceof k2)return _.error(`[aiworker config set] version conflict: expected ${Y.expected}, stored is ${Y.actual}`),3;throw Y}}$0();MD();import{existsSync as _J,readFileSync as N8D}from"fs";import f4 from"path";import K0 from"process";MD();m8();import{access as V8D,readFile as HS}from"fs/promises";import F1 from"path";var JS={"browser-smoke":{description:"Browser smoke checks for UI flows.",risk:"medium"},"calendar-draft":{description:"Draft calendar events or scheduling proposals without sending.",risk:"low"},"candidate-draft":{description:"Draft candidate notes and recruiting process artifacts.",risk:"low"},"design-review":{description:"Review product UI, interaction states, and design-system usage.",risk:"low"},"filesystem-read":{description:"Read project files and local context.",risk:"low"},"filesystem-write":{description:"Write project files.",risk:"high"},git:{description:"Inspect and prepare git changes.",risk:"high"},"knowledge-search":{description:"Search project knowledge bases.",risk:"low"},logs:{description:"Read runtime logs.",risk:"medium"},"network-diagnostics":{description:"Inspect network and service reachability.",risk:"medium"},"note-draft":{description:"Draft notes or summaries.",risk:"low"},reporting:{description:"Prepare operational reports.",risk:"low"},shell:{description:"Run local shell commands.",risk:"high"},"spreadsheet-draft":{description:"Draft spreadsheet analysis and reports.",risk:"low"},"task-tracking":{description:"Draft task updates and status reports.",risk:"low"},test:{description:"Run project test and quality gates.",risk:"medium"},"ticket-draft":{description:"Draft support tickets and customer-facing replies.",risk:"low"}},Q8D={audit:{description:"Audit evidence and traceability support."},code:{description:"Code implementation and debugging support."},coordination:{description:"Cross-person coordination and handoff support."},"design-system":{description:"Design-system consistency support."},finance:{description:"Finance operations assistance."},general:{description:"General project assistant capabilities."},"hr-ops":{description:"HR operations workflow support."},"incident-response":{description:"Incident response and runbook support."},interview:{description:"Interview preparation and evaluation support."},"knowledge-base":{description:"Knowledge-base lookup and drafting support."},monitoring:{description:"Monitoring and observability support."},ops:{description:"Operations and deployment support."},planning:{description:"Planning and task decomposition support."},product:{description:"Product discovery and specification support."},qa:{description:"QA planning and verification support."},reconciliation:{description:"Reconciliation and mismatch analysis support."},recruiting:{description:"Recruiting process support."},regression:{description:"Regression analysis and test planning support."},"release-gates":{description:"Release gate verification support."},reporting:{description:"Progress and operational reporting support."},"repo-maintenance":{description:"Repository maintenance support."},review:{description:"Code and artifact review support."},support:{description:"Support triage and response support."},triage:{description:"Issue triage support."},ux:{description:"UX workflow and interface review support."}};function GS(D){return Object.hasOwn(Q8D,D)}function YS(D){return Object.hasOwn(JS,D)}function BS(D){return JS[D]?.risk}var A8D=/(?:^|[.*-])(?:write|delete|remove|deploy|publish|shell|git|exec|run|restart|stop|scale|database|db)(?:[.*-]|$)/i;async function AJ(D){let $=await K8D(F1.join(D,"policy.json")),F=await _8D(F1.join(D,"toolsets.json"),$.data),X=await C8D(F1.join(D,"capability-packs.json"),$.data),J=await M8D(F1.join(D,"mcp.json")),G=await Z8D(F1.join(D,"skills")),Y=[b4("policy","policy.json",F1.join(D,"policy.json"),$.issues),b4("toolsets","toolsets.json",F1.join(D,"toolsets.json"),F.issues),b4("capability-packs","capability-packs.json",F1.join(D,"capability-packs.json"),X.issues),b4("mcp","mcp.json",F1.join(D,"mcp.json"),J.issues),b4("skills","skills/",F1.join(D,"skills"),G.issues)];return{checks:Y,root:D,status:j8D(Y.map((B)=>B.status))}}async function K8D(D){let $=await KJ(D,uY,"policy.json");if(!$.data)return $;let F=[...$.issues];if(!$.data.toolPolicy)F.push(hD("warning","policy.tool_policy_missing","policy.json does not define toolPolicy; capability gating will fall back to runtime defaults.","toolPolicy"));else for(let[X,J]of $.data.toolPolicy.rules.entries())if(J.action==="auto"&&A8D.test(J.pattern))F.push(hD("warning","policy.high_risk_auto_rule",`toolPolicy rule "${J.pattern}" auto-approves a high-risk pattern.`,`toolPolicy.rules.${X}`));return{data:$.data,issues:F}}async function _8D(D,$){let F=await KJ(D,mY,"toolsets.json");if(!F.data)return F;let X=[...F.issues],J=new Set;for(let[G,Y]of F.data.defaultToolsets.entries()){if(J.has(Y)){X.push(hD("error","toolsets.duplicate_default",`defaultToolsets contains duplicate toolset "${Y}".`,`defaultToolsets.${G}`));continue}if(J.add(Y),!YS(Y)){X.push(hD("error","toolsets.unknown_default",`defaultToolsets references unknown toolset "${Y}".`,`defaultToolsets.${G}`));continue}if(BS(Y)==="high"&&$?.risk.highRiskRequiresApproval!==!0)X.push(hD("error","toolsets.high_risk_without_approval",`High-risk toolset "${Y}" requires policy.risk.highRiskRequiresApproval=true.`,`defaultToolsets.${G}`))}if(F.data.defaultToolsets.length===0)X.push(hD("warning","toolsets.empty_defaults","No default toolsets are enabled.","defaultToolsets"));return{data:F.data,issues:X}}async function C8D(D,$){let F=await KJ(D,xY,"capability-packs.json");if(!F.data)return F;let X=[...F.issues],J=new Set,G=$?.soul?.preset;if(G&&F.data.soul&&F.data.soul!==G)X.push(hD("error","packs.soul_mismatch",`capability-packs.json soul "${F.data.soul}" does not match policy soul "${G}".`,"soul"));for(let[Y,B]of F.data.packs.entries()){if(J.has(B.id)){X.push(hD("error","packs.duplicate",`Capability pack "${B.id}" is listed more than once.`,`packs.${Y}`));continue}if(J.add(B.id),!GS(B.id))X.push(hD("error","packs.unknown",`Unknown capability pack "${B.id}".`,`packs.${Y}.id`));if(typeof B.validation==="string")X.push(hD("warning","packs.legacy_validation",`Capability pack "${B.id}" still uses legacy validation string "${B.validation}".`,`packs.${Y}.validation`))}if(F.data.packs.length===0)X.push(hD("warning","packs.empty","No capability packs are declared.","packs"));return{data:F.data,issues:X}}async function M8D(D){let $=await KJ(D,cY,"mcp.json");if(!$.data)return $;let F=[...$.issues];for(let[X,J]of Object.entries($.data.servers)){let G=`servers.${X}`;if(DV(J,G,F),J.disabled===!0)continue;if(J.transport==="stdio"&&!J.command)F.push(hD("error","mcp.stdio_missing_command",`MCP server "${X}" uses stdio but has no command.`,G));if((J.transport==="streamable-http"||J.transport==="sse")&&!J.url)F.push(hD("error","mcp.http_missing_url",`MCP server "${X}" uses ${J.transport} but has no url.`,G));if(!J.command&&!J.url)F.push(hD("warning","mcp.declared_only",`MCP server "${X}" has no command or url; doctor can only validate its declared tool descriptors.`,G))}return{data:$.data,issues:F}}async function Z8D(D){let $=[];try{await V8D(D)}catch{return{issues:[hD("error","skills.dir_missing","skills/ directory is missing.","skills")]}}let F=new Bun.Glob("**/SKILL.md"),X=[],J=new Map,G=0;for await(let Y of F.scan({cwd:D})){G+=1;let B=F1.join(D,Y),H=await HS(B,"utf8"),U=R8D(H,Y);if(U.rawIssue){$.push(U.rawIssue);continue}let Q=c8.safeParse(U.metadata);if(!Q.success){$.push(...WS(Q.error.issues,`skills/${Y}`));continue}if(Q.data.version&&!/^\d+\.\d+\.\d+(?:[-+][a-z0-9.-]+)?$/i.test(Q.data.version))$.push(hD("warning","skills.version_format",`Skill "${Q.data.name}" version "${Q.data.version}" is not semver-like.`,`skills/${Y}.version`));let V=J.get(Q.data.name);if(V)$.push(hD("error","skills.duplicate_name",`Skill name "${Q.data.name}" is duplicated by ${V} and ${Y}.`,`skills/${Y}.name`));J.set(Q.data.name,Y),X.push(Q.data)}if(G===0)$.push(hD("info","brain-skills.empty","No brain skill files configured yet (.aiworker/skills/ is empty). Optional \u2014 add `.aiworker/skills/<name>/SKILL.md` directly.",".aiworker/skills/"));return{data:X,issues:$}}async function KJ(D,$,F){let X;try{X=await HS(D,"utf8")}catch{return{issues:[hD("error","manifest.missing",`${F} is missing.`,F)]}}let J;try{J=JSON.parse(X)}catch(Y){let B=Y instanceof Error?Y.message:"invalid JSON";return{issues:[hD("error","manifest.invalid_json",`${F} is not valid JSON: ${B}`,F)]}}let G=$.safeParse(J);if(!G.success)return{issues:WS(G.error.issues,F)};return{data:G.data,issues:[]}}function R8D(D,$){let F=$.split(".").pop()?.toLowerCase();if(F==="yaml"||F==="yml")try{let J=K2(D);if(!$V(J))return{rawIssue:hD("error","skills.yaml_not_object","Skill YAML metadata must be an object.",`skills/${$}`)};return{metadata:J}}catch(J){let G=J instanceof Error?J.message:"invalid YAML";return{rawIssue:hD("error","skills.invalid_yaml",`Skill YAML metadata is invalid: ${G}`,`skills/${$}`)}}let X=D.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?/);if(!X)return{rawIssue:hD("error","skills.frontmatter_missing","Skill markdown requires YAML frontmatter with name and description.",`skills/${$}`)};try{let J=K2(X[1]??"");if(!$V(J))return{rawIssue:hD("error","skills.frontmatter_not_object","Skill frontmatter must be an object.",`skills/${$}`)};return{metadata:J}}catch(J){let G=J instanceof Error?J.message:"invalid YAML frontmatter";return{rawIssue:hD("error","skills.invalid_frontmatter",`Skill frontmatter is invalid: ${G}`,`skills/${$}`)}}}function DV(D,$,F){if(Array.isArray(D)){D.forEach((X,J)=>DV(X,`${$}.${J}`,F));return}if(!$V(D))return;for(let[X,J]of Object.entries(D)){let G=`${$}.${X}`;if(X==="secretRef")continue;if(O8D(X)){if(B7.safeParse(J).success)continue;if(typeof J==="string"&&J.length===0)F.push(hD("warning","mcp.empty_secret_value",`Secret-like field "${G}" is empty; prefer a secretRef or remove it.`,G));else F.push(hD("error","mcp.plaintext_secret",`Secret-like field "${G}" must use { "secretRef": "..." } instead of plaintext.`,G));continue}DV(J,G,F)}}function O8D(D){return/token|secret|api[-_]?key|authorization|password|cookie/i.test(D)}function $V(D){return D!==null&&typeof D==="object"&&!Array.isArray(D)}function WS(D,$){return D.map((F)=>{let X=F.path.length===0?$:`${$}.${F.path.join(".")}`;return hD("error","manifest.schema_invalid",F.message,X)})}function b4(D,$,F,X){return{id:D,issues:X,label:$,path:F,status:E8D(X)}}function E8D(D){if(D.some(($)=>$.severity==="error"))return"fail";if(D.some(($)=>$.severity==="warning"))return"warn";return"pass"}function j8D(D){if(D.includes("fail"))return"fail";if(D.includes("warn"))return"warn";if(D.includes("pending"))return"pending";return"pass"}function hD(D,$,F,X){return X===void 0?{code:$,message:F,severity:D}:{code:$,message:F,path:X,severity:D}}var P8D=$2();function L8D(D){let $=f4.join(D,"scope.json");if(!_J($))return{status:"missing",issues:[]};let F;try{F=N8D($,"utf8")}catch(B){return{issues:[],message:B instanceof Error?B.message:String(B),status:"malformed"}}let X=q1(F);if(X.status==="malformed")return{issues:[],message:X.error,status:"malformed"};let J=[],G=X.manifest,Y=P8D.get(G.primarySoul);if(Y===void 0)return J.push(`primarySoul "${G.primarySoul}" is not a built-in Soul (use \`aiworker soul list\`).`),{issues:J,manifest:G,status:"unknown-soul"};if(!Y.supportedScopeKinds.includes(G.kind))return J.push(`kind "${G.kind}" is not in Soul "${Y.manifest.id}" supportedScopeKinds (${Y.supportedScopeKinds.join(", ")}).`),{issues:J,manifest:G,status:"kind-mismatch"};return{issues:J,manifest:G,status:"ok"}}function q8D(D){switch(D){case"ok":return"PASS";case"missing":return"WARN";case"malformed":case"unknown-soul":case"kind-mismatch":return"FAIL"}}function z8D(D){if(!D.artifactRoots||D.artifactRoots.length===0)return"<none declared>";return D.artifactRoots.map(($)=>$.path).join(", ")}function I8D(D){let $=(X)=>_J(f4.join(D,X)),F=()=>{let X=f4.join(D,"skills");if(!_J(X))return!0;try{return R1("fs").readdirSync(X).length===0}catch{return!0}};if(!$("scope.json"))return!1;if(!F())return!1;return!0}function S8D(D,$){if($==="error")D.fail+=1;else if($==="warning")D.warn+=1;else D.info+=1}async function FV(){let D=mD(),$=D.scope==="project"&&D.projectRoot?f4.join(D.projectRoot,".aiworker"):D.home,F=await AJ($),X=L8D($),J=I8D($),G={pass:0,info:0,warn:0,fail:0};for(let H of F.checks){if(H.status==="pass")G.pass+=1;else if(H.status==="fail")G.fail+=1;else G.warn+=1;for(let U of H.issues){if(J&&U.severity==="info"&&U.code.endsWith(".empty"))continue;S8D(G,U.severity)}}let Y=G.fail>0?"FAIL":G.warn>0?"WARN":"OK",B=J?" (fresh-init defaults; expected to be sparse)":"";if(K0.stdout.write(`[aiworker doctor] ${Y} \u2014 ${F.checks.length} checks; ${G.pass} PASS \xB7 ${G.info} info \xB7 ${G.warn} WARN \xB7 ${G.fail} FAIL${B}
1799
+ `),0}catch($){return _.error(`approvals grant \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}x0();$0();ZD();HD();import{existsSync as QJ,readFileSync as F8D}from"fs";import{readFile as xQ}from"fs/promises";import k4 from"path";import X8D from"process";var J8D=$2();async function x1(D){let $=await pD({silent:!0});return await D($)}async function yQ(D){let $=await pD({silent:!0}),F=UJ($);try{return await D($,F)}finally{F.dispose()}}function G8D(D){if(D===void 0)return 50;if(!Number.isInteger(D)||D<1||D>200)throw new U9("limit must be an integer between 1 and 200");return D}function DS(D){let $=D.env??X8D.env,F=D.showSensitive===!0,X=$.AIWORKER_ADMIN_REVEAL==="1";if(F&&X)return{redactSensitive:!1};if(F&&!X)return{redactSensitive:!0,showSensitiveDeniedReason:"missing-env-gate"};return{redactSensitive:!0}}function Y8D(D){return{id:D.id,content:D.content,metadata:D.metadata,createdAt:D.createdAt,updatedAt:D.updatedAt,...D.score===void 0?{}:{score:D.score}}}function B8D(D){return{id:D.id,name:D.name,description:D.description,version:D.version,...D.tags===void 0?{}:{tags:D.tags}}}async function uQ(){try{return await yQ(async(D,$)=>{let F=await $.brain.health(),X=await $.brain.listSkills().catch(()=>[]),G=(await $.brain.listMemories({limit:200}).catch(()=>[])).length,Y=W8D(),B=D.hydrated.orchestrator?.decisionPipeline,H={intentEvaluator:B?.intentClassifier?.evaluator??"heuristic",qualityEvaluator:B?.qualityGate?.evaluator??"heuristic",qualityMode:B?.qualityGate?.mode??"observe",...B?.qualityGate?.threshold===void 0?{}:{qualityThreshold:B.qualityGate.threshold},conversationClassifierEnabled:!0};return console.log(JSON.stringify({workerId:D.workerId,configVersion:D.configVersion,status:F.status,brainRetrieval:D.hydrated.brainRetrieval,brainWriteTarget:D.hydrated.brainWriteTarget,brains:D.hydrated.brains.map((U)=>C8(D.workerId,U,D.hydrated.brainWriteTarget)),scope:H8D(),decisionPipeline:z3(H),assets:{identity:Y,skillCount:X.length,memoryCount:G,hint:X.length===0&&G===0?"No brain skills or memories yet. Add `.aiworker/skills/<id>/SKILL.md` or `.aiworker/memories/<topic>.md` directly; brain runtime does not write them automatically.":void 0}},null,2)),0})}catch(D){return _.error(`[aiworker brain status] failed: ${D instanceof Error?D.message:String(D)}`),1}}function H8D(){let D=mD();if(D.scope!=="project"||!D.projectRoot)return{status:"not-applicable"};let $=k4.join(D.projectRoot,".aiworker","scope.json");if(!QJ($))return{status:"missing"};let F;try{F=F8D($,"utf8")}catch(G){return{error:G instanceof Error?G.message:String(G),status:"malformed"}}let X=q1(F);if(X.status==="malformed")return{error:X.error,status:"malformed"};let J=X.manifest;return{manifest:{...J.approval===void 0?{}:{approval:J.approval},artifactRootCount:J.artifactRoots?.length??0,kind:J.kind,labels:J.labels??[],primarySoul:J.primarySoul,...J.privacy===void 0?{}:{privacy:J.privacy},...J.retention===void 0?{}:{retention:J.retention}},status:"ok"}}function W8D(){let D=mD();if(D.scope!=="project"||!D.projectRoot)return{agent:!1,soul:!1,user:!1};let $=k4.join(D.projectRoot,".aiworker");return{root:$,agent:QJ(k4.join($,"AGENT.md")),soul:QJ(k4.join($,"SOUL.md")),user:QJ(k4.join($,"USER.md"))}}async function mQ(){try{return await yQ(async(D,$)=>{let F=await $.brain.listSkills();return console.log(JSON.stringify({workerId:D.workerId,count:F.length,skills:F.map(B8D)},null,2)),0})}catch(D){return _.error(`[aiworker brain skills] failed: ${D instanceof Error?D.message:String(D)}`),1}}async function cQ(D={}){try{let $=G8D(D.limit);return await yQ(async(F,X)=>{let J=D.query?.trim(),G=J?(await X.brain.searchMemories(J)).slice(0,$):await X.brain.listMemories({limit:$});return console.log(JSON.stringify({workerId:F.workerId,...J?{query:J}:{},count:G.length,memories:G.map(Y8D)},null,2)),0})}catch($){return _.error(`[aiworker brain memories] failed: ${$ instanceof Error?$.message:String($)}`),$ instanceof U9?2:1}}class U9 extends Error{}function $S(D){if(D===void 0)return 50;if(!Number.isInteger(D)||D<1||D>200)throw new U9("limit must be an integer between 1 and 200");return D}function FS(D){return{id:D.id,type:D.type,sensitivity:D.sensitivity,source:D.source,status:D.status,ref:D.ref,...D.scopeId===void 0?{}:{scopeId:D.scopeId},...D.hash===void 0?{}:{hash:D.hash},...D.retention===void 0?{}:{retention:D.retention},...D.summary===void 0?{}:{summary:D.summary},evidenceRefs:D.evidenceRefs,...D.metadata===void 0?{}:{metadata:D.metadata},createdAt:D.createdAt,updatedAt:D.updatedAt}}async function pQ(D={}){try{let $=$S(D.limit);return await x1(async(F)=>{let X=new a0,J={limit:$};if(D.scopeId!==void 0)J.scopeId=D.scopeId;if(D.type!==void 0)J.type=D.type;if(D.status!==void 0)J.status=D.status;if(D.minSensitivity!==void 0)J.minSensitivity=D.minSensitivity;let G=X.list(J,{redactSensitive:D.showSensitive!==!0});return console.log(JSON.stringify({workerId:F.workerId,count:G.length,redacted:D.showSensitive!==!0,artifacts:G.map(FS)},null,2)),0})}catch($){return _.error(`[aiworker brain artifacts list] failed: ${$ instanceof Error?$.message:String($)}`),$ instanceof U9?2:1}}async function dQ(D,$={}){if(D===void 0||D==="")return _.error("[aiworker brain artifacts show] id is required"),2;try{return await x1(async(F)=>{let J=new a0().get(D,{redactSensitive:$.showSensitive!==!0});if(J===null)return _.error(`[aiworker brain artifacts show] artifact "${D}" not found`),1;return console.log(JSON.stringify({workerId:F.workerId,redacted:$.showSensitive!==!0,artifact:FS(J)},null,2)),0})}catch(F){return _.error(`[aiworker brain artifacts show] failed: ${F instanceof Error?F.message:String(F)}`),1}}function VJ(D){return{id:D.id,soulId:D.soulId,kind:D.kind,status:D.status,risk:D.risk,confidence:D.confidence,target:D.target,summary:D.summary,rollback:D.rollback,...D.scopeId===void 0?{}:{scopeId:D.scopeId},evidenceCount:D.evidence.length,...D.payload===void 0?{}:{payload:D.payload},createdAt:D.createdAt,updatedAt:D.updatedAt}}function XS(D){return{...VJ(D),evidence:D.evidence}}async function lQ(D={}){try{let $=$S(D.limit);return await x1(async(F)=>{let X=new eD,J={limit:$};if(D.status!==void 0)J.status=D.status;if(D.kind!==void 0)J.kind=D.kind;if(D.scopeId!==void 0)J.scopeId=D.scopeId;if(D.soulId!==void 0)J.soulId=D.soulId;let G=DS({showSensitive:D.showSensitive});if(G.showSensitiveDeniedReason==="missing-env-gate")_.warn("[aiworker brain admission list] --show-sensitive ignored: set AIWORKER_ADMIN_REVEAL=1 in the worker process env to unlock plaintext");let Y=X.list(J,{redactSensitive:G.redactSensitive});return console.log(JSON.stringify({workerId:F.workerId,count:Y.proposals.length,redacted:G.redactSensitive,proposals:Y.proposals.map(VJ),skipped:Y.skipped},null,2)),0})}catch($){return _.error(`[aiworker brain admission list] failed: ${$ instanceof Error?$.message:String($)}`),$ instanceof U9?2:1}}async function iQ(D,$={}){if(D===void 0||D==="")return _.error("[aiworker brain admission show] id is required"),2;try{return await x1(async(F)=>{let X=new eD,J=DS({showSensitive:$.showSensitive});if(J.showSensitiveDeniedReason==="missing-env-gate")_.warn("[aiworker brain admission show] --show-sensitive ignored: set AIWORKER_ADMIN_REVEAL=1 in the worker process env to unlock plaintext");let G=X.get(D,{redactSensitive:J.redactSensitive});if(G===null)return _.error(`[aiworker brain admission show] proposal "${D}" not found`),1;let Y=X.listDecisions(D);return console.log(JSON.stringify({workerId:F.workerId,redacted:J.redactSensitive,proposal:XS(G),decisions:Y},null,2)),0})}catch(F){return _.error(`[aiworker brain admission show] failed: ${F instanceof Error?F.message:String(F)}`),1}}async function nQ(D,$){if(D===void 0||D==="")return _.error("[aiworker brain admission approve] id is required"),2;try{return await x1(async(F)=>{let J=new eD().approve(D,{decidedBy:$.decidedBy,...$.reason===void 0?{}:{reason:$.reason}});return console.log(JSON.stringify({workerId:F.workerId,decision:"approved",proposal:VJ(J)},null,2)),0})}catch(F){return _.error(`[aiworker brain admission approve] failed: ${F instanceof Error?F.message:String(F)}`),1}}async function rQ(D,$){if(D===void 0||D==="")return _.error("[aiworker brain admission reject] id is required"),2;try{return await x1(async(F)=>{let J=new eD().reject(D,{decidedBy:$.decidedBy,...$.reason===void 0?{}:{reason:$.reason}});return console.log(JSON.stringify({workerId:F.workerId,decision:"rejected",proposal:VJ(J)},null,2)),0})}catch(F){return _.error(`[aiworker brain admission reject] failed: ${F instanceof Error?F.message:String(F)}`),1}}function U8D(D){if(D===void 0)return[];return(Array.isArray(D)?[...D]:[D]).filter((F)=>typeof F==="string").map((F)=>F.trim()).filter((F)=>F.length>0)}async function sQ(D){if(D.task===void 0||D.task.trim()==="")return _.error("[aiworker brain brief] --task is required"),2;let $=U8D(D.artifactRefs);try{return await x1(async(F)=>{let X=u0(F.workerId),J=mD(),Y=await new Y6({artifactRegistry:new a0,brainHome:X,scopeManifestReader:async()=>{if(J.scope!=="project"||!J.projectRoot)return null;try{let B=await xQ(eZ(J.projectRoot),"utf8"),H=q1(B);return H.status==="ok"?H.manifest:null}catch{return null}},soulRegistry:J8D}).compile({task:D.task,...D.scopeId===void 0?{}:{scopeId:D.scopeId},...D.soulId===void 0?{}:{soulId:D.soulId},...$.length===0?{}:{artifactRefs:$},...D.executor===void 0?{}:{executor:D.executor},...D.tokenBudget===void 0?{}:{tokenBudget:D.tokenBudget}});return console.log(JSON.stringify({workerId:F.workerId,brief:Y,note:"Brief is a projection of canonical brain (<brainHome>); orchestrator system prompt is unchanged."},null,2)),0})}catch(F){return _.error(`[aiworker brain brief] failed: ${F instanceof Error?F.message:String(F)}`),1}}async function aQ(D){let $=[["id","--id"],["target","--target"],["summary","--summary"],["rollback","--rollback"],["soulId","--soul"]];for(let[G,Y]of $){let B=D[G];if(B===void 0||typeof B==="string"&&B.trim()==="")return _.error(`[aiworker brain admission propose] ${Y} is required`),2}let F=D.risk;if(F!==void 0&&F!=="low"&&F!=="medium"&&F!=="high")return _.error(`[aiworker brain admission propose] --risk must be one of low | medium | high, got "${F}"`),2;let X,J;try{if(D.evidencePath!==void 0)X=JSON.parse(await xQ(D.evidencePath,"utf8"));if(D.payloadPath!==void 0)J=JSON.parse(await xQ(D.payloadPath,"utf8"))}catch(G){return _.error(`[aiworker brain admission propose] failed to read fixture file: ${G instanceof Error?G.message:String(G)}`),2}if(X!==void 0&&!Array.isArray(X))return _.error("[aiworker brain admission propose] --evidence file must contain a JSON array"),2;if(J!==void 0&&(J===null||typeof J!=="object"||Array.isArray(J)))return _.error("[aiworker brain admission propose] --payload file must contain a JSON object"),2;try{return await x1(async(G)=>{let Y=new eD,B={confidence:D.confidence??0.5,id:D.id,kind:D.kind??"memory-add",rollback:D.rollback,soulId:D.soulId,summary:D.summary,target:D.target,...F===void 0?{}:{risk:F},...D.scopeId===void 0?{}:{scopeId:D.scopeId},...X===void 0?{}:{evidence:X},...J===void 0?{}:{payload:J}},H=Y.propose(B);return console.log(JSON.stringify({workerId:G.workerId,proposal:XS(H)},null,2)),0})}catch(G){return _.error(`[aiworker brain admission propose] failed: ${G instanceof Error?G.message:String(G)}`),1}}async function oQ(D,$){if(D===void 0||D==="")return _.error("[aiworker brain admission apply] id is required"),2;try{return await x1(async(F)=>{let X=new eD,J=u0(F.workerId),G=await X.apply(D,{brainHome:J,commit:$.commit===!0,decidedBy:$.decidedBy,...$.allowSecretBody===void 0?{}:{allowSecretBody:$.allowSecretBody}});if(console.log(JSON.stringify({workerId:F.workerId,outcome:G},null,2)),G.kind==="failed"||G.kind==="blocked-by-secret-scan")return 1;return 0})}catch(F){return _.error(`[aiworker brain admission apply] failed: ${F instanceof Error?F.message:String(F)}`),1}}x0();HD();async function tQ(){await pD({silent:!0});let{getWorkerDb:D}=await Promise.resolve().then(() => (gD(),GW)),$=await P0(D());return console.log(JSON.stringify({version:$.version,config:$.config},null,2)),0}async function eQ(D){let $=await pD({silent:!0}),F;try{F=JSON.parse(D.json)}catch(Y){return _.error(`[aiworker config set] invalid JSON: ${String(Y)}`),2}let{getWorkerDb:X}=await Promise.resolve().then(() => (gD(),GW)),J=X(),G=cD();try{let Y=await K6(J,G,F,D.ifMatch===void 0?{}:{ifMatchVersion:D.ifMatch});return await _6($.workerId,Y.config,Y.version),_.success(`[aiworker config set] stored config v${Y.version}`),0}catch(Y){if(Y instanceof w2)return _.error(`[aiworker config set] invalid config: ${JSON.stringify(Y.issues,null,2)}`),2;if(Y instanceof k2)return _.error(`[aiworker config set] version conflict: expected ${Y.expected}, stored is ${Y.actual}`),3;throw Y}}$0();ZD();import{existsSync as _J,readFileSync as N8D}from"fs";import f4 from"path";import K0 from"process";ZD();m8();import{access as V8D,readFile as HS}from"fs/promises";import F1 from"path";var JS={"browser-smoke":{description:"Browser smoke checks for UI flows.",risk:"medium"},"calendar-draft":{description:"Draft calendar events or scheduling proposals without sending.",risk:"low"},"candidate-draft":{description:"Draft candidate notes and recruiting process artifacts.",risk:"low"},"design-review":{description:"Review product UI, interaction states, and design-system usage.",risk:"low"},"filesystem-read":{description:"Read project files and local context.",risk:"low"},"filesystem-write":{description:"Write project files.",risk:"high"},git:{description:"Inspect and prepare git changes.",risk:"high"},"knowledge-search":{description:"Search project knowledge bases.",risk:"low"},logs:{description:"Read runtime logs.",risk:"medium"},"network-diagnostics":{description:"Inspect network and service reachability.",risk:"medium"},"note-draft":{description:"Draft notes or summaries.",risk:"low"},reporting:{description:"Prepare operational reports.",risk:"low"},shell:{description:"Run local shell commands.",risk:"high"},"spreadsheet-draft":{description:"Draft spreadsheet analysis and reports.",risk:"low"},"task-tracking":{description:"Draft task updates and status reports.",risk:"low"},test:{description:"Run project test and quality gates.",risk:"medium"},"ticket-draft":{description:"Draft support tickets and customer-facing replies.",risk:"low"}},Q8D={audit:{description:"Audit evidence and traceability support."},code:{description:"Code implementation and debugging support."},coordination:{description:"Cross-person coordination and handoff support."},"design-system":{description:"Design-system consistency support."},finance:{description:"Finance operations assistance."},general:{description:"General project assistant capabilities."},"hr-ops":{description:"HR operations workflow support."},"incident-response":{description:"Incident response and runbook support."},interview:{description:"Interview preparation and evaluation support."},"knowledge-base":{description:"Knowledge-base lookup and drafting support."},monitoring:{description:"Monitoring and observability support."},ops:{description:"Operations and deployment support."},planning:{description:"Planning and task decomposition support."},product:{description:"Product discovery and specification support."},qa:{description:"QA planning and verification support."},reconciliation:{description:"Reconciliation and mismatch analysis support."},recruiting:{description:"Recruiting process support."},regression:{description:"Regression analysis and test planning support."},"release-gates":{description:"Release gate verification support."},reporting:{description:"Progress and operational reporting support."},"repo-maintenance":{description:"Repository maintenance support."},review:{description:"Code and artifact review support."},support:{description:"Support triage and response support."},triage:{description:"Issue triage support."},ux:{description:"UX workflow and interface review support."}};function GS(D){return Object.hasOwn(Q8D,D)}function YS(D){return Object.hasOwn(JS,D)}function BS(D){return JS[D]?.risk}var A8D=/(?:^|[.*-])(?:write|delete|remove|deploy|publish|shell|git|exec|run|restart|stop|scale|database|db)(?:[.*-]|$)/i;async function AJ(D){let $=await K8D(F1.join(D,"policy.json")),F=await _8D(F1.join(D,"toolsets.json"),$.data),X=await C8D(F1.join(D,"capability-packs.json"),$.data),J=await M8D(F1.join(D,"mcp.json")),G=await Z8D(F1.join(D,"skills")),Y=[b4("policy","policy.json",F1.join(D,"policy.json"),$.issues),b4("toolsets","toolsets.json",F1.join(D,"toolsets.json"),F.issues),b4("capability-packs","capability-packs.json",F1.join(D,"capability-packs.json"),X.issues),b4("mcp","mcp.json",F1.join(D,"mcp.json"),J.issues),b4("skills","skills/",F1.join(D,"skills"),G.issues)];return{checks:Y,root:D,status:j8D(Y.map((B)=>B.status))}}async function K8D(D){let $=await KJ(D,uY,"policy.json");if(!$.data)return $;let F=[...$.issues];if(!$.data.toolPolicy)F.push(hD("warning","policy.tool_policy_missing","policy.json does not define toolPolicy; capability gating will fall back to runtime defaults.","toolPolicy"));else for(let[X,J]of $.data.toolPolicy.rules.entries())if(J.action==="auto"&&A8D.test(J.pattern))F.push(hD("warning","policy.high_risk_auto_rule",`toolPolicy rule "${J.pattern}" auto-approves a high-risk pattern.`,`toolPolicy.rules.${X}`));return{data:$.data,issues:F}}async function _8D(D,$){let F=await KJ(D,mY,"toolsets.json");if(!F.data)return F;let X=[...F.issues],J=new Set;for(let[G,Y]of F.data.defaultToolsets.entries()){if(J.has(Y)){X.push(hD("error","toolsets.duplicate_default",`defaultToolsets contains duplicate toolset "${Y}".`,`defaultToolsets.${G}`));continue}if(J.add(Y),!YS(Y)){X.push(hD("error","toolsets.unknown_default",`defaultToolsets references unknown toolset "${Y}".`,`defaultToolsets.${G}`));continue}if(BS(Y)==="high"&&$?.risk.highRiskRequiresApproval!==!0)X.push(hD("error","toolsets.high_risk_without_approval",`High-risk toolset "${Y}" requires policy.risk.highRiskRequiresApproval=true.`,`defaultToolsets.${G}`))}if(F.data.defaultToolsets.length===0)X.push(hD("warning","toolsets.empty_defaults","No default toolsets are enabled.","defaultToolsets"));return{data:F.data,issues:X}}async function C8D(D,$){let F=await KJ(D,xY,"capability-packs.json");if(!F.data)return F;let X=[...F.issues],J=new Set,G=$?.soul?.preset;if(G&&F.data.soul&&F.data.soul!==G)X.push(hD("error","packs.soul_mismatch",`capability-packs.json soul "${F.data.soul}" does not match policy soul "${G}".`,"soul"));for(let[Y,B]of F.data.packs.entries()){if(J.has(B.id)){X.push(hD("error","packs.duplicate",`Capability pack "${B.id}" is listed more than once.`,`packs.${Y}`));continue}if(J.add(B.id),!GS(B.id))X.push(hD("error","packs.unknown",`Unknown capability pack "${B.id}".`,`packs.${Y}.id`));if(typeof B.validation==="string")X.push(hD("warning","packs.legacy_validation",`Capability pack "${B.id}" still uses legacy validation string "${B.validation}".`,`packs.${Y}.validation`))}if(F.data.packs.length===0)X.push(hD("warning","packs.empty","No capability packs are declared.","packs"));return{data:F.data,issues:X}}async function M8D(D){let $=await KJ(D,cY,"mcp.json");if(!$.data)return $;let F=[...$.issues];for(let[X,J]of Object.entries($.data.servers)){let G=`servers.${X}`;if(DV(J,G,F),J.disabled===!0)continue;if(J.transport==="stdio"&&!J.command)F.push(hD("error","mcp.stdio_missing_command",`MCP server "${X}" uses stdio but has no command.`,G));if((J.transport==="streamable-http"||J.transport==="sse")&&!J.url)F.push(hD("error","mcp.http_missing_url",`MCP server "${X}" uses ${J.transport} but has no url.`,G));if(!J.command&&!J.url)F.push(hD("warning","mcp.declared_only",`MCP server "${X}" has no command or url; doctor can only validate its declared tool descriptors.`,G))}return{data:$.data,issues:F}}async function Z8D(D){let $=[];try{await V8D(D)}catch{return{issues:[hD("error","skills.dir_missing","skills/ directory is missing.","skills")]}}let F=new Bun.Glob("**/SKILL.md"),X=[],J=new Map,G=0;for await(let Y of F.scan({cwd:D})){G+=1;let B=F1.join(D,Y),H=await HS(B,"utf8"),U=R8D(H,Y);if(U.rawIssue){$.push(U.rawIssue);continue}let Q=c8.safeParse(U.metadata);if(!Q.success){$.push(...WS(Q.error.issues,`skills/${Y}`));continue}if(Q.data.version&&!/^\d+\.\d+\.\d+(?:[-+][a-z0-9.-]+)?$/i.test(Q.data.version))$.push(hD("warning","skills.version_format",`Skill "${Q.data.name}" version "${Q.data.version}" is not semver-like.`,`skills/${Y}.version`));let V=J.get(Q.data.name);if(V)$.push(hD("error","skills.duplicate_name",`Skill name "${Q.data.name}" is duplicated by ${V} and ${Y}.`,`skills/${Y}.name`));J.set(Q.data.name,Y),X.push(Q.data)}if(G===0)$.push(hD("info","brain-skills.empty","No brain skill files configured yet (.aiworker/skills/ is empty). Optional \u2014 add `.aiworker/skills/<name>/SKILL.md` directly.",".aiworker/skills/"));return{data:X,issues:$}}async function KJ(D,$,F){let X;try{X=await HS(D,"utf8")}catch{return{issues:[hD("error","manifest.missing",`${F} is missing.`,F)]}}let J;try{J=JSON.parse(X)}catch(Y){let B=Y instanceof Error?Y.message:"invalid JSON";return{issues:[hD("error","manifest.invalid_json",`${F} is not valid JSON: ${B}`,F)]}}let G=$.safeParse(J);if(!G.success)return{issues:WS(G.error.issues,F)};return{data:G.data,issues:[]}}function R8D(D,$){let F=$.split(".").pop()?.toLowerCase();if(F==="yaml"||F==="yml")try{let J=K2(D);if(!$V(J))return{rawIssue:hD("error","skills.yaml_not_object","Skill YAML metadata must be an object.",`skills/${$}`)};return{metadata:J}}catch(J){let G=J instanceof Error?J.message:"invalid YAML";return{rawIssue:hD("error","skills.invalid_yaml",`Skill YAML metadata is invalid: ${G}`,`skills/${$}`)}}let X=D.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?/);if(!X)return{rawIssue:hD("error","skills.frontmatter_missing","Skill markdown requires YAML frontmatter with name and description.",`skills/${$}`)};try{let J=K2(X[1]??"");if(!$V(J))return{rawIssue:hD("error","skills.frontmatter_not_object","Skill frontmatter must be an object.",`skills/${$}`)};return{metadata:J}}catch(J){let G=J instanceof Error?J.message:"invalid YAML frontmatter";return{rawIssue:hD("error","skills.invalid_frontmatter",`Skill frontmatter is invalid: ${G}`,`skills/${$}`)}}}function DV(D,$,F){if(Array.isArray(D)){D.forEach((X,J)=>DV(X,`${$}.${J}`,F));return}if(!$V(D))return;for(let[X,J]of Object.entries(D)){let G=`${$}.${X}`;if(X==="secretRef")continue;if(O8D(X)){if(B7.safeParse(J).success)continue;if(typeof J==="string"&&J.length===0)F.push(hD("warning","mcp.empty_secret_value",`Secret-like field "${G}" is empty; prefer a secretRef or remove it.`,G));else F.push(hD("error","mcp.plaintext_secret",`Secret-like field "${G}" must use { "secretRef": "..." } instead of plaintext.`,G));continue}DV(J,G,F)}}function O8D(D){return/token|secret|api[-_]?key|authorization|password|cookie/i.test(D)}function $V(D){return D!==null&&typeof D==="object"&&!Array.isArray(D)}function WS(D,$){return D.map((F)=>{let X=F.path.length===0?$:`${$}.${F.path.join(".")}`;return hD("error","manifest.schema_invalid",F.message,X)})}function b4(D,$,F,X){return{id:D,issues:X,label:$,path:F,status:E8D(X)}}function E8D(D){if(D.some(($)=>$.severity==="error"))return"fail";if(D.some(($)=>$.severity==="warning"))return"warn";return"pass"}function j8D(D){if(D.includes("fail"))return"fail";if(D.includes("warn"))return"warn";if(D.includes("pending"))return"pending";return"pass"}function hD(D,$,F,X){return X===void 0?{code:$,message:F,severity:D}:{code:$,message:F,path:X,severity:D}}var P8D=$2();function L8D(D){let $=f4.join(D,"scope.json");if(!_J($))return{status:"missing",issues:[]};let F;try{F=N8D($,"utf8")}catch(B){return{issues:[],message:B instanceof Error?B.message:String(B),status:"malformed"}}let X=q1(F);if(X.status==="malformed")return{issues:[],message:X.error,status:"malformed"};let J=[],G=X.manifest,Y=P8D.get(G.primarySoul);if(Y===void 0)return J.push(`primarySoul "${G.primarySoul}" is not a built-in Soul (use \`aiworker soul list\`).`),{issues:J,manifest:G,status:"unknown-soul"};if(!Y.supportedScopeKinds.includes(G.kind))return J.push(`kind "${G.kind}" is not in Soul "${Y.manifest.id}" supportedScopeKinds (${Y.supportedScopeKinds.join(", ")}).`),{issues:J,manifest:G,status:"kind-mismatch"};return{issues:J,manifest:G,status:"ok"}}function q8D(D){switch(D){case"ok":return"PASS";case"missing":return"WARN";case"malformed":case"unknown-soul":case"kind-mismatch":return"FAIL"}}function z8D(D){if(!D.artifactRoots||D.artifactRoots.length===0)return"<none declared>";return D.artifactRoots.map(($)=>$.path).join(", ")}function I8D(D){let $=(X)=>_J(f4.join(D,X)),F=()=>{let X=f4.join(D,"skills");if(!_J(X))return!0;try{return R1("fs").readdirSync(X).length===0}catch{return!0}};if(!$("scope.json"))return!1;if(!F())return!1;return!0}function S8D(D,$){if($==="error")D.fail+=1;else if($==="warning")D.warn+=1;else D.info+=1}async function FV(){let D=mD(),$=D.scope==="project"&&D.projectRoot?f4.join(D.projectRoot,".aiworker"):D.home,F=await AJ($),X=L8D($),J=I8D($),G={pass:0,info:0,warn:0,fail:0};for(let H of F.checks){if(H.status==="pass")G.pass+=1;else if(H.status==="fail")G.fail+=1;else G.warn+=1;for(let U of H.issues){if(J&&U.severity==="info"&&U.code.endsWith(".empty"))continue;S8D(G,U.severity)}}let Y=G.fail>0?"FAIL":G.warn>0?"WARN":"OK",B=J?" (fresh-init defaults; expected to be sparse)":"";if(K0.stdout.write(`[aiworker doctor] ${Y} \u2014 ${F.checks.length} checks; ${G.pass} PASS \xB7 ${G.info} info \xB7 ${G.warn} WARN \xB7 ${G.fail} FAIL${B}
1800
1800
  `),K0.stdout.write(`[aiworker doctor] Project Brain capability validation
1801
1801
  `),K0.stdout.write(`Scope : ${D.scope}
1802
1802
  `),K0.stdout.write(`Root : ${F.root}
@@ -1815,7 +1815,7 @@ Fix one of these ways:
1815
1815
  `);else{let U=X.message??X.issues.join("; ");K0.stdout.write(` ${H.padEnd(7)} scope.json \u2014 ${X.status}: ${U}
1816
1816
  `)}K0.stdout.write(" Brain runtime: run `aiworker brain status` for live skill / memory counts and write target.\n")}for(let H of F.checks){K0.stdout.write(` ${US(H.status).padEnd(7)} ${H.label}
1817
1817
  `);for(let U of H.issues){if(J&&U.severity==="info"&&U.code.endsWith(".empty"))continue;let Q=U.path?` ${U.path}`:"";K0.stdout.write(` - [${U.severity}] ${U.code}${Q}: ${U.message}
1818
- `)}}if(X.status==="malformed"||X.status==="unknown-soul"||X.status==="kind-mismatch")return 1;return F.status==="fail"?1:0}function US(D){return D.toUpperCase()}x0();$0();MD();HD();import{accessSync as T8D,constants as w8D,existsSync as h4}from"fs";import{mkdir as k8D,readFile as GV,writeFile as b8D}from"fs/promises";import L6 from"path";import DD from"process";var v4="executor-capabilities.json",Q9={codex:{binary:"codex"},"claude-code":{binary:"claude"}},KS={engines:{},schemaVersion:1},f8D=/authorization|bearer|token|secret|api[-_]?key|private[-_]?key|password/i;async function YV(D,$){let F=A9();if(!F.ok)return F.code;let X=ZJ($.engine);if(!X.ok)return X.code;let J=x8D($);if(!J.ok)return J.code;let G=CS(J.value,`engines.${X.value}.mcp.${D}`);if(G.length>0)return KV("[aiworker executor mcp add] invalid MCP descriptor",G),2;let Y=await x4(F.value.manifestPath);if(!Y.ok)return Y.code;let B=c8D(Y.manifest,X.value,D,J.value);if($.dryRun===!0)return DD.stdout.write(`[aiworker executor mcp add] dry-run
1818
+ `)}}if(X.status==="malformed"||X.status==="unknown-soul"||X.status==="kind-mismatch")return 1;return F.status==="fail"?1:0}function US(D){return D.toUpperCase()}x0();$0();ZD();HD();import{accessSync as T8D,constants as w8D,existsSync as h4}from"fs";import{mkdir as k8D,readFile as GV,writeFile as b8D}from"fs/promises";import L6 from"path";import DD from"process";var v4="executor-capabilities.json",Q9={codex:{binary:"codex"},"claude-code":{binary:"claude"}},KS={engines:{},schemaVersion:1},f8D=/authorization|bearer|token|secret|api[-_]?key|private[-_]?key|password/i;async function YV(D,$){let F=A9();if(!F.ok)return F.code;let X=ZJ($.engine);if(!X.ok)return X.code;let J=x8D($);if(!J.ok)return J.code;let G=CS(J.value,`engines.${X.value}.mcp.${D}`);if(G.length>0)return KV("[aiworker executor mcp add] invalid MCP descriptor",G),2;let Y=await x4(F.value.manifestPath);if(!Y.ok)return Y.code;let B=c8D(Y.manifest,X.value,D,J.value);if($.dryRun===!0)return DD.stdout.write(`[aiworker executor mcp add] dry-run
1819
1819
  `),DD.stdout.write(`Manifest: ${F.value.manifestPath}
1820
1820
  `),DD.stdout.write(`Engine : ${X.value}
1821
1821
  `),DD.stdout.write(`Server : ${D}
@@ -1842,7 +1842,7 @@ Fix one of these ways:
1842
1842
  `)}DD.stdout.write(` INFO engine login/auth state is managed by each engine CLI; AIWorker does not probe it
1843
1843
  `);for(let O of A)DD.stdout.write(` - [warning] ${O.code} ${O.path}: ${O.message}
1844
1844
  `);for(let O of Y)DD.stdout.write(` - [error] ${O.code} ${O.path}: ${O.message}
1845
- `);return Y.length>0?1:0}function g8D(D,$){if(!h4(L6.join(D,"scope.json")))return!1;if(Object.keys($.engines).length>0)return!1;return!0}async function WV(D){let $=h8D(D.engine);if(!$.ok)return $.code;let F=D.variant??"default";if(D.permissionPolicy!==void 0&&!v8D(D.permissionPolicy))return _.error("[aiworker executor select] --permission-policy must be auto, supervised, or plan"),2;let X={engine:$.value,variant:F,...D.modelId===void 0?{}:{modelId:D.modelId},...D.reasoningId===void 0?{}:{reasoningId:D.reasoningId},...D.permissionPolicy===void 0?{}:{permissionPolicy:D.permissionPolicy}};try{H2(X)}catch(B){return _.error(`[aiworker executor select] ${B instanceof Error?B.message:String(B)}`),2}await ZS();let J=await pD({silent:!0}),G=await P0(J.db),Y={...G.config,executor:X};if(DD.stdout.write("[aiworker executor select] "),DD.stdout.write(D.apply===!0?`apply
1845
+ `);return Y.length>0?1:0}function g8D(D,$){if(!h4(L6.join(D,"scope.json")))return!1;if(Object.keys($.engines).length>0)return!1;return!0}async function WV(D){let $=h8D(D.engine);if(!$.ok)return $.code;let F=D.variant??"default";if(D.permissionPolicy!==void 0&&!v8D(D.permissionPolicy))return _.error("[aiworker executor select] --permission-policy must be auto, supervised, or plan"),2;let X={engine:$.value,variant:F,...D.modelId===void 0?{}:{modelId:D.modelId},...D.reasoningId===void 0?{}:{reasoningId:D.reasoningId},...D.permissionPolicy===void 0?{}:{permissionPolicy:D.permissionPolicy},...D.timeoutMs===void 0?{}:{overrides:{timeoutMs:D.timeoutMs}}};try{H2(X)}catch(B){return _.error(`[aiworker executor select] ${B instanceof Error?B.message:String(B)}`),2}await ZS();let J=await pD({silent:!0}),G=await P0(J.db),Y={...G.config,executor:X};if(DD.stdout.write("[aiworker executor select] "),DD.stdout.write(D.apply===!0?`apply
1846
1846
  `:`dry-run
1847
1847
  `),DD.stdout.write(`Current : ${VS(G.config.executor)} (config v${G.version})
1848
1848
  `),DD.stdout.write(`Target : ${VS(X)}
@@ -1859,11 +1859,11 @@ Fix one of these ways:
1859
1859
  `)}return 0}async function QV(D){let $=A9();if(!$.ok)return $.code;let F=Y6D(D);if(!F.ok)return F.code;let X=await x4($.value.manifestPath);if(!X.ok)return X.code;let J=B6D(X.manifest,F.value);if(J===void 0)return _.error(`[aiworker executor capability show] capability not found: ${D}`),2;return DD.stdout.write(`${JSON.stringify({ref:D,descriptor:J},null,2)}
1860
1860
  `),0}async function _S(){let D=A9({quiet:!0});if(!D.ok)return D;let $=await u8D(D.value.manifestPath),F=await RS();if(!$.ok){let B=$.issues.map((H)=>({...H,severity:"error"}));return{ok:!0,report:{configuredExecutor:F,engines:[],file:D.value.manifestPath,issues:B,manifest:{declaredCapabilities:0,declaredEngines:0,empty:!0},root:D.value.root,status:AS(B)}}}let X=X6D($.manifest,F),J=[],G=[],Y=AV($.manifest);if(F.source==="worker-config"&&F.defaultStub)J.push({code:"executor.config_default_stub",message:"Worker config still selects the safe http/default stub executor; run `aiworker executor select --engine <engine> --apply` (candidates: claude-code | codex | acp | cursor | mcp | http) when ready.",path:"worker_config.executor",severity:"warning"});if(Y.empty)J.push({code:"executor.capability_manifest_empty",message:"Project executor overlay is empty; AIWorker treats it as a bootstrap hint only, not as the complete view of effective executor capabilities.",path:v4,severity:"warning"});for(let B of X){let H=Q9[B].binary,U=MJ(H)!==null,Q=Object.values($.manifest.engines[B]?.mcp??{}).filter((V)=>V.disabled!==!0).length;if(G.push({binary:H,binaryFound:U,engine:B,mcpCount:Q}),!U)J.push({code:"executor.binary_missing",message:`Engine CLI "${H}" was not found on PATH; configure the engine CLI or continue with another executor.`,path:`engines.${B}`,severity:"warning"});J.push(...VV($.manifest,B,{requireBinary:!1,requireProjectionCompatibility:!0}).map((V)=>({...V,severity:"error"})))}return{ok:!0,report:{configuredExecutor:F,engines:G,file:D.value.manifestPath,issues:J,manifest:Y,root:D.value.root,status:AS(J)}}}function A9(D={}){let $=mD();if($.scope!=="project"||!$.projectRoot){if(D.quiet!==!0)_.error("[aiworker executor] executor capability commands require project scope; run `aiworker init --soul <preset>` in a project first");return{code:2,ok:!1}}let F=L6.join($.projectRoot,".aiworker");return{ok:!0,value:{manifestPath:L6.join(F,v4),projectRoot:$.projectRoot,root:F}}}function ZJ(D){if(D===void 0)return _.error("[aiworker executor] --engine is required; supported engines: codex, claude-code"),{code:2,ok:!1};let $=H7.safeParse(D);if(!$.success)return _.error(`[aiworker executor] unsupported engine "${D}". Supported engines: codex, claude-code`),{code:2,ok:!1};return{ok:!0,value:$.data}}function h8D(D){if(D===void 0)return _.error(`[aiworker executor select] --engine is required; supported engines: ${Object.keys(F6).join(", ")}`),{code:2,ok:!1};if(D in F6)return{ok:!0,value:D};return _.error(`[aiworker executor select] unsupported engine "${D}". Supported engines: ${Object.keys(F6).join(", ")}`),{code:2,ok:!1}}function v8D(D){return D==="auto"||D==="supervised"||D==="plan"}function x8D(D){if((D.scope??"project")!=="project")return _.error("[aiworker executor mcp add] only --scope project is supported"),{code:2,ok:!1};let F=y8D(D);if(!F.ok)return F;let X={scope:"project",transport:F.value,...D.description===void 0?{}:{description:D.description},...D.command===void 0?{}:{command:D.command},...D.url===void 0?{}:{url:D.url},...D.bearerTokenEnvVar===void 0?{}:{bearerTokenEnvVar:D.bearerTokenEnvVar}},J=XV(D.arg);if(J.length>0)X.args=J;let G=QS(XV(D.env),"env");if(!G.ok)return G;if(Object.keys(G.value).length>0)X.env=G.value;let Y=QS(XV(D.header),"header");if(!Y.ok)return Y;if(Object.keys(Y.value).length>0)X.headers=Y.value;return{ok:!0,value:X}}function y8D(D){if(D.transport!==void 0){let $=k$.safeParse(D.transport);if(!$.success)return _.error(`[aiworker executor mcp add] unsupported transport "${D.transport}". Use stdio, streamable-http, or sse`),{code:2,ok:!1};return{ok:!0,value:$.data}}if(D.url!==void 0)return{ok:!0,value:"streamable-http"};return{ok:!0,value:"stdio"}}function XV(D){if(D===void 0)return[];return Array.isArray(D)?D:[D]}function QS(D,$){let F={};for(let X of D){let J=X.indexOf("=");if(J<=0)return _.error(`[aiworker executor mcp add] --${$} must use key=value`),{code:2,ok:!1};let G=X.slice(0,J).trim(),Y=X.slice(J+1).trim();if(G.length===0||Y.length===0)return _.error(`[aiworker executor mcp add] --${$} must use non-empty key=value`),{code:2,ok:!1};F[G]=Y.startsWith("secretRef:")?{secretRef:Y.slice(10)}:Y}return{ok:!0,value:F}}async function x4(D){if(!h4(D))return{manifest:KS,ok:!0};try{let $=JSON.parse(await GV(D,"utf8")),F=f$.safeParse($);if(!F.success)return KV("[aiworker executor] invalid project executor overlay manifest",F.error.issues.map((X)=>({code:"manifest.invalid",message:X.message,path:X.path.join(".")||v4}))),{code:1,ok:!1};return{manifest:F.data,ok:!0}}catch($){let F=$ instanceof Error?$.message:String($);return _.error(`[aiworker executor] failed to read ${D}: ${F}`),{code:1,ok:!1}}}async function u8D(D){if(!h4(D))return{manifest:KS,ok:!0};try{let $=JSON.parse(await GV(D,"utf8")),F=f$.safeParse($);if(!F.success)return{issues:F.error.issues.map((X)=>({code:"manifest.invalid",message:X.message,path:X.path.join(".")||v4})),ok:!1};return{manifest:F.data,ok:!0}}catch($){return{issues:[{code:"manifest.read_failed",message:$ instanceof Error?$.message:String($),path:D}],ok:!1}}}async function m8D(D,$){await k8D(L6.dirname(D),{recursive:!0}),await b8D(D,`${JSON.stringify($,null,2)}
1861
1861
  `,"utf8")}function c8D(D,$,F,X){return{...D,engines:{...D.engines,[$]:{...D.engines[$]??{},mcp:{...D.engines[$]?.mcp??{},[F]:X}}}}}function VV(D,$,F){let X=[],J=D.engines[$],G=Q9[$].binary;if(F.requireBinary&&!MJ(G))X.push({code:"executor.binary_missing",message:`Required engine CLI "${G}" was not found on PATH.`,path:`engines.${$}`});for(let[Y,B]of Object.entries(J?.mcp??{})){if(B.disabled===!0)continue;if(X.push(...CS(B,`engines.${$}.mcp.${Y}`)),F.rejectSecretRefs===!0)X.push(...JV(B,`engines.${$}.mcp.${Y}`));if(F.requireProjectionCompatibility===!0)X.push(...l8D($,B,`engines.${$}.mcp.${Y}`))}return X.push(...p8D(J,`engines.${$}`)),X}function CS(D,$){let F=[],X=b$.safeParse(D);if(!X.success)F.push(...X.error.issues.map((J)=>({code:"executor.mcp.invalid",message:J.message,path:`${$}.${J.path.join(".")}`})));if(D.transport==="stdio"&&!D.command)F.push({code:"executor.mcp.stdio_missing_command",message:"stdio MCP servers require command.",path:$});if((D.transport==="streamable-http"||D.transport==="sse")&&!D.url)F.push({code:"executor.mcp.http_missing_url",message:`${D.transport} MCP servers require url.`,path:$});return F.push(...CJ(D,$)),F}function CJ(D,$){let F=[];if(Array.isArray(D))return D.forEach((X,J)=>F.push(...CJ(X,`${$}.${J}`))),F;if(!V9(D))return F;for(let[X,J]of Object.entries(D)){let G=`${$}.${X}`;if(X==="secretRef"||X==="bearerTokenEnvVar")continue;if(f8D.test(X)&&!RJ(J)){F.push({code:"executor.mcp.plaintext_secret",message:`Secret-like field "${G}" must use { "secretRef": "..." }.`,path:G});continue}F.push(...CJ(J,G))}return F}function JV(D,$){let F=[];if(Array.isArray(D))return D.forEach((X,J)=>F.push(...JV(X,`${$}.${J}`))),F;if(!V9(D))return F;if(RJ(D))return F.push({code:"executor.mcp.secret_ref_projection_unsupported",message:"Non-dry-run sync cannot hydrate secretRef values yet; run dry-run or configure this server with the engine CLI after resolving the secret manually.",path:$}),F;for(let[X,J]of Object.entries(D))F.push(...JV(J,`${$}.${X}`));return F}function p8D(D,$){let F=[];if(!D)return F;for(let X of["plugins","policies","skills"])F.push(...d8D(D[X],`${$}.${X}`));return F}function d8D(D,$){return CJ(D,$).map((F)=>({...F,code:"executor.capability.plaintext_secret",message:F.message.replace("Secret-like field","Secret-like project executor overlay field")}))}function l8D(D,$,F){let X=[];if(D==="codex"){if($.transport==="sse")X.push({code:"executor.mcp.codex_transport_unsupported",message:"Codex CLI `mcp add` supports stdio and streamable HTTP; SSE projection is not supported.",path:`${F}.transport`});if($.headers&&Object.keys($.headers).length>0)X.push({code:"executor.mcp.codex_headers_unsupported",message:"Codex CLI does not expose generic HTTP header projection; use bearerTokenEnvVar when a bearer token is needed.",path:`${F}.headers`});if($.transport!=="stdio"&&$.env&&Object.keys($.env).length>0)X.push({code:"executor.mcp.codex_env_http_unsupported",message:"Codex CLI only accepts --env for stdio MCP servers.",path:`${F}.env`});if($.transport==="stdio"&&$.bearerTokenEnvVar!==void 0)X.push({code:"executor.mcp.codex_bearer_stdio_unsupported",message:"Codex CLI only accepts --bearer-token-env-var for streamable HTTP MCP servers.",path:`${F}.bearerTokenEnvVar`})}return X}function i8D(D,$){let F=D.engines[$];if(!F?.mcp)return[];let X=Q9[$].binary;return Object.entries(F.mcp).filter(([,J])=>J.disabled!==!0).map(([J,G])=>({args:n8D($,J,G),binary:X,serverName:J}))}function n8D(D,$,F){if(D==="codex")return r8D($,F);return s8D($,F)}function r8D(D,$){let F=["mcp","add",D];if($.transport==="stdio"){if(MS(F,"--env",$.env),$.command)F.push("--",$.command,...$.args??[]);return F}if($.url)F.push("--url",$.url);if($.bearerTokenEnvVar)F.push("--bearer-token-env-var",$.bearerTokenEnvVar);return F}function s8D(D,$){let F=["mcp","add","--scope",$.scope,"--transport",a8D($.transport)];if(MS(F,"--env",$.env),o8D(F,$.headers),$.transport==="stdio"){if($.command)F.push(D,"--",$.command,...$.args??[]);return F}if(F.push(D),$.url)F.push($.url);return F}function a8D(D){return D==="streamable-http"?"http":D}function MS(D,$,F){if(!F)return;for(let[X,J]of Object.entries(F)){let G=RJ(J)?`secretRef:${J.secretRef}`:J;D.push($,`${X}=${G}`)}}function o8D(D,$){if(!$)return;for(let[F,X]of Object.entries($)){let J=RJ(X)?`secretRef:${X.secretRef}`:X;D.push("--header",`${F}: ${J}`)}}function MJ(D){let $=DD.env.PATH??"";for(let F of $.split(L6.delimiter)){if(!F)continue;let X=L6.join(F,D);try{if(h4(X))return T8D(X,w8D.X_OK),X}catch{}}return null}function t8D(D=DD.env){let $=new Set(["PATH","HOME","USER","LOGNAME","SHELL","PWD","LANG","TZ","TERM","TMPDIR","TMP","TEMP"]),F=["LC_","NODE_","NPM_CONFIG_","XDG_","CLAUDE_","CODEX_"],X=["AIWORKER_","INTERNAL_","WORKER_"],J=["_TOKEN","_SECRET","_API_KEY","_PRIVATE_KEY","_PASSWORD"],G={};for(let[Y,B]of Object.entries(D)){if(B===void 0)continue;if(X.some((H)=>Y.startsWith(H)))continue;if(J.some((H)=>Y.endsWith(H)))continue;if(!$.has(Y)&&!F.some((H)=>Y.startsWith(H)))continue;G[Y]=B}return G}async function ZS(){let D=mD(),$=L6.join(D.home,".env");if(!h4($))return;let F=e8D(await GV($,"utf8"));for(let[X,J]of Object.entries(F))if(DD.env[X]===void 0)DD.env[X]=J}function e8D(D){let $={};for(let F of D.split(`
1862
- `)){let X=F.trim();if(!X||X.startsWith("#"))continue;let J=X.indexOf("=");if(J<=0)continue;$[X.slice(0,J).trim()]=X.slice(J+1).trim()}return $}async function RS(){try{await ZS();let D=await pD({silent:!0});return{defaultStub:D6D(D.hydrated.executor),engine:D.hydrated.executor.engine,source:"worker-config",variant:D.hydrated.executor.variant,version:D.configVersion}}catch(D){return{message:D instanceof Error?D.message:String(D),source:"unavailable"}}}function D6D(D){return D.engine===o2.engine&&D.variant===o2.variant&&JSON.stringify(D.overrides??{})===JSON.stringify(o2.overrides??{})}function VS(D){let $=[D.modelId===void 0?void 0:`model=${D.modelId}`,D.permissionPolicy===void 0?void 0:`permission=${D.permissionPolicy}`,D.reasoningId===void 0?void 0:`reasoning=${D.reasoningId}`].filter((F)=>F!==void 0);return`${D.engine}/${D.variant}${$.length===0?"":` (${$.join(", ")})`}`}function $6D(D,$){if($.source==="unavailable"){D(` WARN configured task executor unavailable
1862
+ `)){let X=F.trim();if(!X||X.startsWith("#"))continue;let J=X.indexOf("=");if(J<=0)continue;$[X.slice(0,J).trim()]=X.slice(J+1).trim()}return $}async function RS(){try{await ZS();let D=await pD({silent:!0});return{defaultStub:D6D(D.hydrated.executor),engine:D.hydrated.executor.engine,source:"worker-config",variant:D.hydrated.executor.variant,version:D.configVersion}}catch(D){return{message:D instanceof Error?D.message:String(D),source:"unavailable"}}}function D6D(D){return D.engine===o2.engine&&D.variant===o2.variant&&JSON.stringify(D.overrides??{})===JSON.stringify(o2.overrides??{})}function VS(D){let $=[D.modelId===void 0?void 0:`model=${D.modelId}`,D.permissionPolicy===void 0?void 0:`permission=${D.permissionPolicy}`,D.reasoningId===void 0?void 0:`reasoning=${D.reasoningId}`,typeof D.overrides?.timeoutMs==="number"?`timeout=${D.overrides.timeoutMs}ms`:void 0].filter((F)=>F!==void 0);return`${D.engine}/${D.variant}${$.length===0?"":` (${$.join(", ")})`}`}function $6D(D,$){if($.source==="unavailable"){D(` WARN configured task executor unavailable
1863
1863
  `),D(` - [warning] executor.config_unavailable worker_config.executor: ${$.message}
1864
1864
  `);return}let F=$.defaultStub?"WARN":"PASS";D(` ${F.padEnd(7)} configured task executor: ${$.engine}/${$.variant} (config v${$.version})
1865
1865
  `)}function AV(D){let F=Object.values(D.engines).reduce((X,J)=>{return X+g4(J.mcp)+g4(J.plugins)+g4(J.policies)+g4(J.skills)},0);return{declaredCapabilities:F,declaredEngines:Object.keys(D.engines).length,empty:F===0}}function g4(D){if(!D)return 0;return Object.values(D).filter(($)=>!V9($)||$.disabled!==!0).length}function F6D(D,$,F){let X=[];if($.source==="unavailable")X.push({code:"executor.config_unavailable",message:$.message,path:"worker_config.executor"});else if($.defaultStub)X.push({code:"executor.config_default_stub",message:"Worker config still selects the safe http/default stub executor.",path:"worker_config.executor"});if(AV(D).empty)X.push({code:"executor-overlay.capabilities.empty",message:"No project executor overlay entries are declared (optional \u2014 projects only need an overlay when they pin engine-specific MCP / config).",path:v4});for(let J of F){let G=D.engines[J];if(!G||g4(G.mcp)===0)X.push({code:"executor-overlay.mcp.empty",message:`No executor MCP overlay entries declared for engine "${J}" (optional unless this project must pin engine-specific MCP servers; distinct from brain skills under .aiworker/skills/).`,path:`engines.${J}.mcp`})}return X}function X6D(D,$){let F=new Set(Object.keys(D.engines));if($.source==="worker-config"&&J6D($.engine))F.add($.engine);return[...F]}function J6D(D){return D==="codex"||D==="claude-code"}function G6D(D){let $=[];for(let[F,X]of Object.entries(D.engines))for(let J of["mcp","plugins","policies","skills"]){let G=X[J];if(!G)continue;for(let[Y,B]of Object.entries(G))$.push({disabled:V9(B)&&B.disabled===!0,engine:F,kind:J,name:Y,status:V9(B)&&typeof B.status==="string"?B.status:"declared"})}return $}function Y6D(D){let[$,F,...X]=D.split("."),J=H7.safeParse($),G=F==="mcp"||F==="plugins"||F==="policies"||F==="skills"?F:null,Y=X.join(".");if(!J.success||G===null||Y.length===0)return _.error("[aiworker executor capability show] ref must use <engine>.<kind>.<name>, for example codex.mcp.context7"),{code:2,ok:!1};return{ok:!0,value:{engine:J.data,kind:G,name:Y}}}function B6D(D,$){return D.engines[$.engine]?.[$.kind]?.[$.name]}function KV(D,$){_.error(D);for(let F of $)DD.stderr.write(` - ${F.code} ${F.path}: ${F.message}
1866
- `)}function AS(D){if(D.some(($)=>$.severity==="error"))return"fail";if(D.some(($)=>$.severity==="warning"))return"warn";return"pass"}function H6D(D){return D.map(($)=>{if(/^[\w./:=@+-]+$/.test($))return $;return`'${$.replaceAll("'","'\\''")}'`}).join(" ")}function V9(D){return D!==null&&typeof D==="object"&&!Array.isArray(D)}function RJ(D){return V9(D)&&typeof D.secretRef==="string"&&D.secretRef.length>0}x0();$0();MD();HD();import{chmodSync as O6D,existsSync as X1,mkdirSync as E6D,writeFileSync as j6D}from"fs";import{homedir as N6D}from"os";import G0 from"path";import ID from"process";import{createInterface as vS}from"readline/promises";import{randomBytes as OS}from"crypto";import{chmodSync as ES,existsSync as jS,mkdirSync as W6D,readFileSync as U6D,writeFileSync as NS}from"fs";import{homedir as Q6D}from"os";import PS from"path";import b2 from"process";var V6D=PS.join(Q6D(),".aiworker"),OJ=["AIWORKER_GATEWAY_URL","AIWORKER_JOIN_TOKEN","AIWORKER_DISPLAY_NAME","AIWORKER_ENROLL_MODE"];function q6(D={}){let $=D.home??b2.env.AIWORKER_HOME??V6D,F=PS.join($,".env");if(jS(F)){let B=U6D(F,"utf8"),H=_6D(B);if(H.changed)NS(F,H.text,{mode:384}),ES(F,384);let U=A6D(H.text);for(let[Q,V]of Object.entries(U))if(b2.env[Q]===void 0)b2.env[Q]=V;return{minted:!1,envFile:F,freshMasterKey:null}}if(!jS($))W6D($,{recursive:!0,mode:448});let X=b2.env.AIWORKER_MASTER_KEY??OS(32).toString("hex"),J=b2.env.INTERNAL_SHARED_SECRET??OS(24).toString("hex"),G=["# FEAT-030 first-run minted env. chmod 0600.","# Persisted to disk so subsequent `aiworker` calls keep the same worker-local startup env.","# \u663E\u5F0F `export KEY=...` \u4ECD\u7136\u4F18\u5148\uFF08\u5E76\u4F1A\u56DE\u5199\u672C\u6587\u4EF6\u4E2D\u7684 worker \u5165\u7F51\u542F\u52A8\u9879\uFF09\u3002",`AIWORKER_MASTER_KEY=${X}`,`INTERNAL_SHARED_SECRET=${J}`];if(K6D(G),G.push(""),NS(F,G.join(`
1866
+ `)}function AS(D){if(D.some(($)=>$.severity==="error"))return"fail";if(D.some(($)=>$.severity==="warning"))return"warn";return"pass"}function H6D(D){return D.map(($)=>{if(/^[\w./:=@+-]+$/.test($))return $;return`'${$.replaceAll("'","'\\''")}'`}).join(" ")}function V9(D){return D!==null&&typeof D==="object"&&!Array.isArray(D)}function RJ(D){return V9(D)&&typeof D.secretRef==="string"&&D.secretRef.length>0}x0();$0();ZD();HD();import{chmodSync as O6D,existsSync as X1,mkdirSync as E6D,writeFileSync as j6D}from"fs";import{homedir as N6D}from"os";import G0 from"path";import ID from"process";import{createInterface as vS}from"readline/promises";import{randomBytes as OS}from"crypto";import{chmodSync as ES,existsSync as jS,mkdirSync as W6D,readFileSync as U6D,writeFileSync as NS}from"fs";import{homedir as Q6D}from"os";import PS from"path";import b2 from"process";var V6D=PS.join(Q6D(),".aiworker"),OJ=["AIWORKER_GATEWAY_URL","AIWORKER_JOIN_TOKEN","AIWORKER_DISPLAY_NAME","AIWORKER_ENROLL_MODE"];function q6(D={}){let $=D.home??b2.env.AIWORKER_HOME??V6D,F=PS.join($,".env");if(jS(F)){let B=U6D(F,"utf8"),H=_6D(B);if(H.changed)NS(F,H.text,{mode:384}),ES(F,384);let U=A6D(H.text);for(let[Q,V]of Object.entries(U))if(b2.env[Q]===void 0)b2.env[Q]=V;return{minted:!1,envFile:F,freshMasterKey:null}}if(!jS($))W6D($,{recursive:!0,mode:448});let X=b2.env.AIWORKER_MASTER_KEY??OS(32).toString("hex"),J=b2.env.INTERNAL_SHARED_SECRET??OS(24).toString("hex"),G=["# FEAT-030 first-run minted env. chmod 0600.","# Persisted to disk so subsequent `aiworker` calls keep the same worker-local startup env.","# \u663E\u5F0F `export KEY=...` \u4ECD\u7136\u4F18\u5148\uFF08\u5E76\u4F1A\u56DE\u5199\u672C\u6587\u4EF6\u4E2D\u7684 worker \u5165\u7F51\u542F\u52A8\u9879\uFF09\u3002",`AIWORKER_MASTER_KEY=${X}`,`INTERNAL_SHARED_SECRET=${J}`];if(K6D(G),G.push(""),NS(F,G.join(`
1867
1867
  `),{mode:384}),ES(F,384),b2.env.AIWORKER_MASTER_KEY===void 0)b2.env.AIWORKER_MASTER_KEY=X;if(b2.env.INTERNAL_SHARED_SECRET===void 0)b2.env.INTERNAL_SHARED_SECRET=J;let Y=b2.env.AIWORKER_MASTER_KEY===X?X:null;if(Y&&D.printOnMint!==!1)C6D(Y,F);return{minted:!0,envFile:F,freshMasterKey:Y}}function A6D(D){let $={};for(let F of D.split(`
1868
1868
  `)){let X=LS(F);if(!X)continue;$[X.key]=X.value}return $}function LS(D){let $=D.trim();if(!$||$.startsWith("#"))return null;let F=$.indexOf("=");if(F<=0)return null;let X=$.slice(0,F).trim(),J=$.slice(F+1).trim();if(J.startsWith('"')&&J.endsWith('"')||J.startsWith("'")&&J.endsWith("'"))J=J.slice(1,-1);return{key:X,value:J}}function qS(){let D={};for(let $ of OJ){let F=b2.env[$];if(F!==void 0)D[$]=F}return D}function K6D(D){let $=qS(),F=OJ.filter((X)=>$[X]!==void 0);if(F.length===0)return;D.push(""),D.push("# Worker-local gateway enrollment startup env.");for(let X of F)D.push(_V(X,$[X]))}function _6D(D){let $=qS(),F=OJ.filter((B)=>$[B]!==void 0);if(F.length===0)return{changed:!1,text:D};let X=new Set(F),J=D.split(`
1869
1869
  `),G=!1;for(let B=0;B<J.length;B+=1){let H=LS(J[B]);if(!H||$[H.key]===void 0)continue;X.delete(H.key);let U=$[H.key];if(H.value===U)continue;J[B]=_V(H.key,U),G=!0}if(X.size>0){if(J.length>0&&J[J.length-1]!=="")J.push("");J.push("# Worker-local gateway enrollment startup env.");for(let B of OJ)if(X.has(B))J.push(_V(B,$[B]));J.push(""),G=!0}let Y=J.join(`
@@ -1871,7 +1871,7 @@ Fix one of these ways:
1871
1871
  `)?`${Y}
1872
1872
  `:Y}}function _V(D,$){return`${D}=${$}`}function C6D(D,$){let F=["","\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510","\u2502 \u26A0\uFE0F AIWORKER first-run setup \u2502","\u2502 \u2502",`\u2502 AIWORKER_MASTER_KEY (\u5199\u5165 ${M6D($,40)}) \u2502`,`\u2502 ${D} \u2502`,"\u2502 \u2502","\u2502 \u8BF7\u79BB\u7EBF\u5907\u4EFD\u6B64\u5BC6\u94A5\u3002\u4E22\u5931 = fleet.db / worker.db \u52A0\u5BC6\u6570\u636E\u5168\u90E8\u89E3\u4E0D\u5F00\uFF0C \u2502","\u2502 \u6240\u6709\u5DF2\u6CE8\u518C worker \u5FC5\u987B\u91CD enroll\u3002 \u2502","\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518",""];b2.stderr.write(`${F.join(`
1873
1873
  `)}
1874
- `)}function M6D(D,$){if(D.length<=$)return D.padEnd($);return`\u2026${D.slice(-($-1))}`.padEnd($)}MD();var d0="customize",CV="\u4E0D\u76F4\u63A5\u8C03\u7528\u5DE5\u5177\u63A2\u7D22\uFF1B\u5148\u4E00\u53E5\u8BDD\u53CD\u95EE\u5173\u952E\u7F3A\u5931\uFF1A\u7528\u6237\u7684\u76EE\u6807 / \u8F93\u5165\u6216\u8BC1\u636E / \u65F6\u95F4\u6216\u8D44\u6E90\u7EA6\u675F / \u671F\u671B\u4EA7\u51FA\u5F62\u6001\u3002",Z6D=new Set(["developer","project-manager","devops-sre","product-designer","qa-reviewer","support-operator","finance-ops","hr-recruiting","general-assistant"]);function zS(D){return Z6D.has(D)}function IS(D){let $=D.manifest.id;if(!zS($))throw Error(`unsupported Soul module id "${$}" \u2014 projection layer expects a built-in id`);let F=n$($);if(!F)throw Error(`missing file-first Soul pack for built-in id "${$}"`);return{agentMd:F.agentMd,brainSkillPacks:F.brainSkillPacks,boundaries:D.initProjection.boundaries,communicationStyle:D.riskPolicy.communicationStyle,description:D.manifest.description,id:$,label:D.manifest.label,outOfScope:D.riskPolicy.outOfScopeStrategy,packs:D.initProjection.packs,responsibilities:D.initProjection.responsibilities,riskPolicy:D.riskPolicy.riskNotes,soulMd:F.soulMd,toolsets:D.initProjection.toolsets,vagueContextStrategy:D.riskPolicy.vagueContextStrategy??CV}}var y1=U3.map(IS),R6D=$2();function K9(D){if(!zS(D))return;let $=R6D.get(D);return $?IS($):void 0}function _9(){return[...y1.map((D)=>D.id),d0].join(", ")}function MV(D,$){return{...D,highRiskRequiresApproval:!0,source:$}}var P6D=$2(),L6D=[".aiworker/",".aiworker/AGENT.md",".aiworker/SOUL.md",".aiworker/USER.md",".aiworker/MEMORY.md",".aiworker/ROLLUP.md",".aiworker/mcp.json",".aiworker/policy.json",".aiworker/toolsets.json",".aiworker/capability-packs.json",".aiworker/executor-capabilities.json",".aiworker/scope.json",".aiworker/.gitignore",".aiworker/skills/",".aiworker/memories/",".aiworker/local/",".aiworker/local/.gitignore",".aiworker/local/workspaces/"],q6D=[".aiworker/local/.env",".aiworker/local/worker.db"],z6D=[".aiworker/local/identity.json"],I6D=[{path:"AGENTS.md",type:"file"},{path:"CLAUDE.md",type:"file"},{path:".agents/",type:"directory"},{path:".claude/",type:"directory"}];function xS(){return Boolean(ID.stdin.isTTY&&ID.stdout.isTTY)}function z6(D){return _.error(`[aiworker init] ${D}`),2}async function S6D(D){if(D.soul===void 0)return{};return yS(D.soul,"flag")}async function SS(D,$="brand-new project init"){if(D.soul!==void 0)return yS(D.soul,"flag");if(!xS())return{code:z6(`${$} requires a Soul preset in non-interactive mode; pass --soul <preset>. Available presets: ${_9()}`)};let F=await w6D();if(!F)return{code:z6("Soul selection was cancelled")};return{soul:F}}async function yS(D,$){let F=D.trim();if(F===d0){if(!xS())return{code:z6("customize requires an interactive terminal; use a built-in preset such as --soul developer in non-interactive mode")};let J=await uS($);if(!J)return{code:z6("customize flow was cancelled")};return{soul:J}}let X=K9(F);if(!X)return{code:z6(`unknown Soul preset "${D}". Available presets: ${_9()}`)};return{soul:MV(X,$)}}function T6D(D){let $=D.trim();if($.length===0)return"developer";let F=Number.parseInt($,10);if(Number.isInteger(F)&&String(F)===$)return[...y1.map((J)=>J.id),d0][F-1]??null;if($===d0)return d0;return K9($)?.id??null}async function w6D(){ID.stdout.write(`[aiworker init] Select a Soul preset before worker identity is created:
1874
+ `)}function M6D(D,$){if(D.length<=$)return D.padEnd($);return`\u2026${D.slice(-($-1))}`.padEnd($)}ZD();var d0="customize",CV="\u4E0D\u76F4\u63A5\u8C03\u7528\u5DE5\u5177\u63A2\u7D22\uFF1B\u5148\u4E00\u53E5\u8BDD\u53CD\u95EE\u5173\u952E\u7F3A\u5931\uFF1A\u7528\u6237\u7684\u76EE\u6807 / \u8F93\u5165\u6216\u8BC1\u636E / \u65F6\u95F4\u6216\u8D44\u6E90\u7EA6\u675F / \u671F\u671B\u4EA7\u51FA\u5F62\u6001\u3002",Z6D=new Set(["developer","project-manager","devops-sre","product-designer","qa-reviewer","support-operator","finance-ops","hr-recruiting","general-assistant"]);function zS(D){return Z6D.has(D)}function IS(D){let $=D.manifest.id;if(!zS($))throw Error(`unsupported Soul module id "${$}" \u2014 projection layer expects a built-in id`);let F=n$($);if(!F)throw Error(`missing file-first Soul pack for built-in id "${$}"`);return{agentMd:F.agentMd,brainSkillPacks:F.brainSkillPacks,boundaries:D.initProjection.boundaries,communicationStyle:D.riskPolicy.communicationStyle,description:D.manifest.description,id:$,label:D.manifest.label,outOfScope:D.riskPolicy.outOfScopeStrategy,packs:D.initProjection.packs,responsibilities:D.initProjection.responsibilities,riskPolicy:D.riskPolicy.riskNotes,soulMd:F.soulMd,toolsets:D.initProjection.toolsets,vagueContextStrategy:D.riskPolicy.vagueContextStrategy??CV}}var y1=U3.map(IS),R6D=$2();function K9(D){if(!zS(D))return;let $=R6D.get(D);return $?IS($):void 0}function _9(){return[...y1.map((D)=>D.id),d0].join(", ")}function MV(D,$){return{...D,highRiskRequiresApproval:!0,source:$}}var P6D=$2(),L6D=[".aiworker/",".aiworker/AGENT.md",".aiworker/SOUL.md",".aiworker/USER.md",".aiworker/MEMORY.md",".aiworker/ROLLUP.md",".aiworker/mcp.json",".aiworker/policy.json",".aiworker/toolsets.json",".aiworker/capability-packs.json",".aiworker/executor-capabilities.json",".aiworker/scope.json",".aiworker/.gitignore",".aiworker/skills/",".aiworker/memories/",".aiworker/local/",".aiworker/local/.gitignore",".aiworker/local/workspaces/"],q6D=[".aiworker/local/.env",".aiworker/local/worker.db"],z6D=[".aiworker/local/identity.json"],I6D=[{path:"AGENTS.md",type:"file"},{path:"CLAUDE.md",type:"file"},{path:".agents/",type:"directory"},{path:".claude/",type:"directory"}];function xS(){return Boolean(ID.stdin.isTTY&&ID.stdout.isTTY)}function z6(D){return _.error(`[aiworker init] ${D}`),2}async function S6D(D){if(D.soul===void 0)return{};return yS(D.soul,"flag")}async function SS(D,$="brand-new project init"){if(D.soul!==void 0)return yS(D.soul,"flag");if(!xS())return{code:z6(`${$} requires a Soul preset in non-interactive mode; pass --soul <preset>. Available presets: ${_9()}`)};let F=await w6D();if(!F)return{code:z6("Soul selection was cancelled")};return{soul:F}}async function yS(D,$){let F=D.trim();if(F===d0){if(!xS())return{code:z6("customize requires an interactive terminal; use a built-in preset such as --soul developer in non-interactive mode")};let J=await uS($);if(!J)return{code:z6("customize flow was cancelled")};return{soul:J}}let X=K9(F);if(!X)return{code:z6(`unknown Soul preset "${D}". Available presets: ${_9()}`)};return{soul:MV(X,$)}}function T6D(D){let $=D.trim();if($.length===0)return"developer";let F=Number.parseInt($,10);if(Number.isInteger(F)&&String(F)===$)return[...y1.map((J)=>J.id),d0][F-1]??null;if($===d0)return d0;return K9($)?.id??null}async function w6D(){ID.stdout.write(`[aiworker init] Select a Soul preset before worker identity is created:
1875
1875
  `),y1.forEach(($,F)=>{ID.stdout.write(` ${F+1}. ${$.id} - ${$.description}
1876
1876
  `)}),ID.stdout.write(` ${y1.length+1}. ${d0} - \u81EA\u5B9A\u4E49\u804C\u8D23\u3001\u8FB9\u754C\u3001\u6C9F\u901A\u98CE\u683C\u548C\u98CE\u9669\u7B56\u7565\u3002
1877
1877
  `);let D=vS({input:ID.stdin,output:ID.stdout});try{for(let $=0;$<3;$+=1){let F=T6D(await D.question("Soul preset [developer]: "));if(F===null){ID.stdout.write(`Unsupported preset. Available presets: ${_9()}
@@ -2062,7 +2062,7 @@ ${D.vagueContextStrategy}
2062
2062
  --scalar-sidebar-search-border-color: transparent;
2063
2063
  --scalar-sidebar-search-color: var(--scalar-color-3);
2064
2064
  }
2065
- `,iV=(D)=>{let $={...I3D,...D};return async(F)=>F.html(`${lT($,S3D)}`)};x0();gD();HD();MD();HD();function iT(D,$){if(D instanceof ND)return $.json(D.toJSON(),D.status);return _.error("Unhandled error:",D),$.json({error:{code:"INTERNAL_ERROR",message:"An unexpected error occurred"}},500)}HD();var nT=async(D,$)=>{let F=performance.now();await $();let X=Math.round(performance.now()-F);_.info(`${D.req.method} ${D.req.path} ${D.res.status} ${X}ms`)};import{resolve as nV,sep as T3D}from"path";function rT(D){let $=nV(D);return async(F)=>{let X=new URL(F.req.url),J;try{J=w3D(decodeURIComponent(X.pathname.slice(7)))}catch{return F.text("forbidden",403)}let G=J===""?"index.html":J,Y=nV($,G);if(Y!==$&&!Y.startsWith($+T3D))return F.text("forbidden",403);let B=Bun.file(Y);if(await B.exists())return new Response(B);if(!k3D(G)){let H=Bun.file(nV($,"index.html"));if(await H.exists())return new Response(H)}return F.text("not found",404)}}function w3D(D){let $=0;while($<D.length&&D[$]==="/")$+=1;return D.slice($)}function k3D(D){let $=D.lastIndexOf("/");return($===-1?D:D.slice($+1)).includes(".")}import tT from"process";x0();$0();jD();var b3D=W.object({limit:W.coerce.number().int().min(1).max(500).optional(),showSensitive:W.coerce.boolean().optional()}),f3D=W.object({status:W.enum(["pending","approved","rejected","applied","failed"]).optional(),kind:W.string().min(1).optional(),scopeId:W.string().min(1).optional(),soulId:W.string().min(1).optional(),limit:W.coerce.number().int().min(1).max(500).optional(),showSensitive:W.coerce.boolean().optional()}),g3D=W.object({scopeId:W.string().min(1).optional(),type:W.string().min(1).optional(),status:W.enum(["active","archived","removed"]).optional(),minSensitivity:W.enum(["public","internal","confidential","secret"]).optional(),limit:W.coerce.number().int().min(1).max(500).optional(),showSensitive:W.coerce.boolean().optional()}),sT=W.object({decidedBy:W.string().min(1).max(200),reason:W.string().min(1).max(2000).optional()}),h3D=W.object({decidedBy:W.string().min(1).max(200),commit:W.boolean().optional(),allowSecretBody:W.enum(["block","redact","raw"]).optional()}),v3D=W.object({confidence:W.number().min(0).max(1).default(0.5),evidence:W.array(W.record(W.string(),W.unknown())).optional(),id:W.string().min(1).max(200),kind:W.string().min(1).max(80).default("memory-add"),payload:W.record(W.string(),W.unknown()).optional(),risk:W.enum(["low","medium","high"]).optional(),rollback:W.string().min(1).max(4000),scopeId:W.string().min(1).max(200).optional(),soulId:W.string().min(1).max(200),summary:W.string().min(1).max(2000),target:W.string().min(1).max(2000)}),x3D=tT.env.WORKER_DEV_TOOLS==="true";function aT(D){if(!D)return{redact:!0,denied:!1};if(tT.env.AIWORKER_ADMIN_REVEAL==="1")return{redact:!1,denied:!1};return{redact:!0,denied:!0}}function O9(){return new eD}function oT(){return new a0}function eT(D){let $=new e0;return $.get("/summary",(F)=>{let X=M8(D.getDecisionPipelineConfig?.()??{});return F.json({workerId:D.getWorkerId(),brainSummary:X,checkedAt:new Date().toISOString()})}),$.get("/admission",(F)=>{let X=f3D.safeParse(F.req.query());if(!X.success)return F.json({error:{code:"invalid-query",message:X.error.message}},400);let J=X.data,G=aT(J.showSensitive===!0),Y=G.redact,B={};if(J.status!==void 0)B.status=J.status;if(J.kind!==void 0)B.kind=J.kind;if(J.scopeId!==void 0)B.scopeId=J.scopeId;if(J.soulId!==void 0)B.soulId=J.soulId;if(J.limit!==void 0)B.limit=J.limit;let H=O9().list(B,{redactSensitive:Y});return F.json({count:H.proposals.length,redacted:Y,...G.denied?{showSensitiveDenied:"missing-env-gate: set AIWORKER_ADMIN_REVEAL=1 in worker env"}:{},proposals:H.proposals,skipped:H.skipped})}),$.get("/admission/:id",(F)=>{let X=F.req.query("showSensitive")==="true",J=aT(X),G=F.req.param("id"),Y=O9(),B=Y.get(G,{redactSensitive:J.redact});if(B===null)return F.json({error:{code:"not-found",message:`admission proposal "${G}" not found`}},404);let H=Y.listDecisions(G);return F.json({redacted:J.redact,...J.denied?{showSensitiveDenied:"missing-env-gate: set AIWORKER_ADMIN_REVEAL=1 in worker env"}:{},proposal:B,decisions:H})}),$.post("/admission",async(F)=>{if(!x3D)return F.json({error:{code:"dev-tools-disabled",message:"POST /admission is debug-only; set WORKER_DEV_TOOLS=true to enable"}},403);let X=await F.req.json().catch(()=>null),J=v3D.safeParse(X);if(!J.success)return F.json({error:{code:"invalid-body",message:J.error.message}},400);try{let G=J.data,Y=O9().propose({confidence:G.confidence,id:G.id,kind:G.kind,rollback:G.rollback,soulId:G.soulId,summary:G.summary,target:G.target,...G.risk===void 0?{}:{risk:G.risk},...G.scopeId===void 0?{}:{scopeId:G.scopeId},...G.evidence===void 0?{}:{evidence:G.evidence},...G.payload===void 0?{}:{payload:G.payload}});return F.json({debugWarning:"this proposal was injected via debug-only POST /admission; do not enable in production workflows",proposal:Y},201)}catch(G){return hJ(F,G)}}),$.post("/admission/:id/approve",async(F)=>{let X=F.req.param("id"),J=await F.req.json().catch(()=>null),G=sT.safeParse(J);if(!G.success)return F.json({error:{code:"invalid-body",message:G.error.message}},400);try{let Y=O9().approve(X,{decidedBy:G.data.decidedBy,...G.data.reason===void 0?{}:{reason:G.data.reason}});return F.json({decision:"approved",proposal:Y})}catch(Y){return hJ(F,Y)}}),$.post("/admission/:id/reject",async(F)=>{let X=F.req.param("id"),J=await F.req.json().catch(()=>null),G=sT.safeParse(J);if(!G.success)return F.json({error:{code:"invalid-body",message:G.error.message}},400);try{let Y=O9().reject(X,{decidedBy:G.data.decidedBy,...G.data.reason===void 0?{}:{reason:G.data.reason}});return F.json({decision:"rejected",proposal:Y})}catch(Y){return hJ(F,Y)}}),$.post("/admission/:id/apply",async(F)=>{let X=F.req.param("id"),J=await F.req.json().catch(()=>null),G=h3D.safeParse(J);if(!G.success)return F.json({error:{code:"invalid-body",message:G.error.message}},400);try{let Y=u0(D.getWorkerId()),B=await O9().apply(X,{brainHome:Y,commit:G.data.commit===!0,decidedBy:G.data.decidedBy,...G.data.allowSecretBody===void 0?{}:{allowSecretBody:G.data.allowSecretBody}}),H=B.kind==="failed"?500:B.kind==="blocked-by-secret-scan"?409:200;return F.json({outcome:B},H)}catch(Y){return hJ(F,Y)}}),$.get("/artifacts",(F)=>{let X=g3D.safeParse(F.req.query());if(!X.success)return F.json({error:{code:"invalid-query",message:X.error.message}},400);let J=X.data,G=J.showSensitive!==!0,Y={};if(J.scopeId!==void 0)Y.scopeId=J.scopeId;if(J.type!==void 0)Y.type=J.type;if(J.status!==void 0)Y.status=J.status;if(J.minSensitivity!==void 0)Y.minSensitivity=J.minSensitivity;if(J.limit!==void 0)Y.limit=J.limit;let B=oT().list(Y,{redactSensitive:G});return F.json({count:B.length,redacted:G,artifacts:B})}),$.get("/artifacts/:id",(F)=>{let X=F.req.query("showSensitive")==="true",J=F.req.param("id"),G=oT().get(J,{redactSensitive:!X});if(G===null)return F.json({error:{code:"not-found",message:`brain artifact "${J}" not found`}},404);return F.json({redacted:!X,artifact:G})}),$.get("/artifacts/:id/echo-limit",(F)=>{let X=b3D.safeParse(F.req.query());return F.json({ok:X.success})}),$}function hJ(D,$){let F=$ instanceof Error?$.message:String($),X=$.code;if(X==="not-found")return D.json({error:{code:"not-found",message:F}},404);if(X==="duplicate-id")return D.json({error:{code:"conflict",message:F}},409);if(X==="invalid-transition")return D.json({error:{code:"invalid-transition",message:F}},409);return D.json({error:{code:"invalid-state",message:F}},400)}x0();MD();HD();function Dw(D,$){let F=new e0;return F.get("/whatsapp/webhook",(X)=>{let G=D().channels.get("whatsapp");if(!G||G.credentials.channel!=="whatsapp")return X.text("whatsapp channel is not bound to this worker",404);let Y=X.req.query("hub.mode"),B=X.req.query("hub.verify_token"),H=X.req.query("hub.challenge")??"";if(Y==="subscribe"&&B!==void 0&&_1(B,G.credentials.verifyToken))return X.text(H,200);return X.text("forbidden",403)}),F.post("/:channel/webhook",async(X)=>{let J=D(),G=X.req.param("channel"),Y=J.channels.get(G);if(!Y)throw ND.notFound(`Channel ${G} is not bound to this worker`);let B=J.channels.adapter(G),H=await X.req.text(),U={};X.req.raw.headers.forEach((V,A)=>{U[A.toLowerCase()]=V});try{await B.verify(H,U,Y)}catch(V){return _.warn(`[channel:${G}] signature verification failed: ${String(V)}`),X.json({ok:!1,error:"signature verification failed"},401)}let Q=await B.toEnvelopes(H,$,Y);for(let V of Q)await J.orchestrator.ingest(V);return X.json({ok:!0,accepted:Q.length})}),F}var rV=class{writer;encoder;writable;abortSubscribers=[];responseReadable;aborted=!1;closed=!1;constructor(D,$){this.writable=D,this.writer=D.getWriter(),this.encoder=new TextEncoder;let F=$.getReader();this.abortSubscribers.push(async()=>{await F.cancel()}),this.responseReadable=new ReadableStream({async pull(X){let{done:J,value:G}=await F.read();J?X.close():X.enqueue(G)},cancel:()=>{this.abort()}})}async write(D){try{if(typeof D==="string")D=this.encoder.encode(D);await this.writer.write(D)}catch{}return this}async writeln(D){return await this.write(D+`
2065
+ `,iV=(D)=>{let $={...I3D,...D};return async(F)=>F.html(`${lT($,S3D)}`)};x0();gD();HD();ZD();HD();function iT(D,$){if(D instanceof ND)return $.json(D.toJSON(),D.status);return _.error("Unhandled error:",D),$.json({error:{code:"INTERNAL_ERROR",message:"An unexpected error occurred"}},500)}HD();var nT=async(D,$)=>{let F=performance.now();await $();let X=Math.round(performance.now()-F);_.info(`${D.req.method} ${D.req.path} ${D.res.status} ${X}ms`)};import{resolve as nV,sep as T3D}from"path";function rT(D){let $=nV(D);return async(F)=>{let X=new URL(F.req.url),J;try{J=w3D(decodeURIComponent(X.pathname.slice(7)))}catch{return F.text("forbidden",403)}let G=J===""?"index.html":J,Y=nV($,G);if(Y!==$&&!Y.startsWith($+T3D))return F.text("forbidden",403);let B=Bun.file(Y);if(await B.exists())return new Response(B);if(!k3D(G)){let H=Bun.file(nV($,"index.html"));if(await H.exists())return new Response(H)}return F.text("not found",404)}}function w3D(D){let $=0;while($<D.length&&D[$]==="/")$+=1;return D.slice($)}function k3D(D){let $=D.lastIndexOf("/");return($===-1?D:D.slice($+1)).includes(".")}import tT from"process";x0();$0();jD();var b3D=W.object({limit:W.coerce.number().int().min(1).max(500).optional(),showSensitive:W.coerce.boolean().optional()}),f3D=W.object({status:W.enum(["pending","approved","rejected","applied","failed"]).optional(),kind:W.string().min(1).optional(),scopeId:W.string().min(1).optional(),soulId:W.string().min(1).optional(),limit:W.coerce.number().int().min(1).max(500).optional(),showSensitive:W.coerce.boolean().optional()}),g3D=W.object({scopeId:W.string().min(1).optional(),type:W.string().min(1).optional(),status:W.enum(["active","archived","removed"]).optional(),minSensitivity:W.enum(["public","internal","confidential","secret"]).optional(),limit:W.coerce.number().int().min(1).max(500).optional(),showSensitive:W.coerce.boolean().optional()}),sT=W.object({decidedBy:W.string().min(1).max(200),reason:W.string().min(1).max(2000).optional()}),h3D=W.object({decidedBy:W.string().min(1).max(200),commit:W.boolean().optional(),allowSecretBody:W.enum(["block","redact","raw"]).optional()}),v3D=W.object({confidence:W.number().min(0).max(1).default(0.5),evidence:W.array(W.record(W.string(),W.unknown())).optional(),id:W.string().min(1).max(200),kind:W.string().min(1).max(80).default("memory-add"),payload:W.record(W.string(),W.unknown()).optional(),risk:W.enum(["low","medium","high"]).optional(),rollback:W.string().min(1).max(4000),scopeId:W.string().min(1).max(200).optional(),soulId:W.string().min(1).max(200),summary:W.string().min(1).max(2000),target:W.string().min(1).max(2000)}),x3D=tT.env.WORKER_DEV_TOOLS==="true";function aT(D){if(!D)return{redact:!0,denied:!1};if(tT.env.AIWORKER_ADMIN_REVEAL==="1")return{redact:!1,denied:!1};return{redact:!0,denied:!0}}function O9(){return new eD}function oT(){return new a0}function eT(D){let $=new e0;return $.get("/summary",(F)=>{let X=M8(D.getDecisionPipelineConfig?.()??{});return F.json({workerId:D.getWorkerId(),brainSummary:X,checkedAt:new Date().toISOString()})}),$.get("/admission",(F)=>{let X=f3D.safeParse(F.req.query());if(!X.success)return F.json({error:{code:"invalid-query",message:X.error.message}},400);let J=X.data,G=aT(J.showSensitive===!0),Y=G.redact,B={};if(J.status!==void 0)B.status=J.status;if(J.kind!==void 0)B.kind=J.kind;if(J.scopeId!==void 0)B.scopeId=J.scopeId;if(J.soulId!==void 0)B.soulId=J.soulId;if(J.limit!==void 0)B.limit=J.limit;let H=O9().list(B,{redactSensitive:Y});return F.json({count:H.proposals.length,redacted:Y,...G.denied?{showSensitiveDenied:"missing-env-gate: set AIWORKER_ADMIN_REVEAL=1 in worker env"}:{},proposals:H.proposals,skipped:H.skipped})}),$.get("/admission/:id",(F)=>{let X=F.req.query("showSensitive")==="true",J=aT(X),G=F.req.param("id"),Y=O9(),B=Y.get(G,{redactSensitive:J.redact});if(B===null)return F.json({error:{code:"not-found",message:`admission proposal "${G}" not found`}},404);let H=Y.listDecisions(G);return F.json({redacted:J.redact,...J.denied?{showSensitiveDenied:"missing-env-gate: set AIWORKER_ADMIN_REVEAL=1 in worker env"}:{},proposal:B,decisions:H})}),$.post("/admission",async(F)=>{if(!x3D)return F.json({error:{code:"dev-tools-disabled",message:"POST /admission is debug-only; set WORKER_DEV_TOOLS=true to enable"}},403);let X=await F.req.json().catch(()=>null),J=v3D.safeParse(X);if(!J.success)return F.json({error:{code:"invalid-body",message:J.error.message}},400);try{let G=J.data,Y=O9().propose({confidence:G.confidence,id:G.id,kind:G.kind,rollback:G.rollback,soulId:G.soulId,summary:G.summary,target:G.target,...G.risk===void 0?{}:{risk:G.risk},...G.scopeId===void 0?{}:{scopeId:G.scopeId},...G.evidence===void 0?{}:{evidence:G.evidence},...G.payload===void 0?{}:{payload:G.payload}});return F.json({debugWarning:"this proposal was injected via debug-only POST /admission; do not enable in production workflows",proposal:Y},201)}catch(G){return hJ(F,G)}}),$.post("/admission/:id/approve",async(F)=>{let X=F.req.param("id"),J=await F.req.json().catch(()=>null),G=sT.safeParse(J);if(!G.success)return F.json({error:{code:"invalid-body",message:G.error.message}},400);try{let Y=O9().approve(X,{decidedBy:G.data.decidedBy,...G.data.reason===void 0?{}:{reason:G.data.reason}});return F.json({decision:"approved",proposal:Y})}catch(Y){return hJ(F,Y)}}),$.post("/admission/:id/reject",async(F)=>{let X=F.req.param("id"),J=await F.req.json().catch(()=>null),G=sT.safeParse(J);if(!G.success)return F.json({error:{code:"invalid-body",message:G.error.message}},400);try{let Y=O9().reject(X,{decidedBy:G.data.decidedBy,...G.data.reason===void 0?{}:{reason:G.data.reason}});return F.json({decision:"rejected",proposal:Y})}catch(Y){return hJ(F,Y)}}),$.post("/admission/:id/apply",async(F)=>{let X=F.req.param("id"),J=await F.req.json().catch(()=>null),G=h3D.safeParse(J);if(!G.success)return F.json({error:{code:"invalid-body",message:G.error.message}},400);try{let Y=u0(D.getWorkerId()),B=await O9().apply(X,{brainHome:Y,commit:G.data.commit===!0,decidedBy:G.data.decidedBy,...G.data.allowSecretBody===void 0?{}:{allowSecretBody:G.data.allowSecretBody}}),H=B.kind==="failed"?500:B.kind==="blocked-by-secret-scan"?409:200;return F.json({outcome:B},H)}catch(Y){return hJ(F,Y)}}),$.get("/artifacts",(F)=>{let X=g3D.safeParse(F.req.query());if(!X.success)return F.json({error:{code:"invalid-query",message:X.error.message}},400);let J=X.data,G=J.showSensitive!==!0,Y={};if(J.scopeId!==void 0)Y.scopeId=J.scopeId;if(J.type!==void 0)Y.type=J.type;if(J.status!==void 0)Y.status=J.status;if(J.minSensitivity!==void 0)Y.minSensitivity=J.minSensitivity;if(J.limit!==void 0)Y.limit=J.limit;let B=oT().list(Y,{redactSensitive:G});return F.json({count:B.length,redacted:G,artifacts:B})}),$.get("/artifacts/:id",(F)=>{let X=F.req.query("showSensitive")==="true",J=F.req.param("id"),G=oT().get(J,{redactSensitive:!X});if(G===null)return F.json({error:{code:"not-found",message:`brain artifact "${J}" not found`}},404);return F.json({redacted:!X,artifact:G})}),$.get("/artifacts/:id/echo-limit",(F)=>{let X=b3D.safeParse(F.req.query());return F.json({ok:X.success})}),$}function hJ(D,$){let F=$ instanceof Error?$.message:String($),X=$.code;if(X==="not-found")return D.json({error:{code:"not-found",message:F}},404);if(X==="duplicate-id")return D.json({error:{code:"conflict",message:F}},409);if(X==="invalid-transition")return D.json({error:{code:"invalid-transition",message:F}},409);return D.json({error:{code:"invalid-state",message:F}},400)}x0();ZD();HD();function Dw(D,$){let F=new e0;return F.get("/whatsapp/webhook",(X)=>{let G=D().channels.get("whatsapp");if(!G||G.credentials.channel!=="whatsapp")return X.text("whatsapp channel is not bound to this worker",404);let Y=X.req.query("hub.mode"),B=X.req.query("hub.verify_token"),H=X.req.query("hub.challenge")??"";if(Y==="subscribe"&&B!==void 0&&_1(B,G.credentials.verifyToken))return X.text(H,200);return X.text("forbidden",403)}),F.post("/:channel/webhook",async(X)=>{let J=D(),G=X.req.param("channel"),Y=J.channels.get(G);if(!Y)throw ND.notFound(`Channel ${G} is not bound to this worker`);let B=J.channels.adapter(G),H=await X.req.text(),U={};X.req.raw.headers.forEach((V,A)=>{U[A.toLowerCase()]=V});try{await B.verify(H,U,Y)}catch(V){return _.warn(`[channel:${G}] signature verification failed: ${String(V)}`),X.json({ok:!1,error:"signature verification failed"},401)}let Q=await B.toEnvelopes(H,$,Y);for(let V of Q)await J.orchestrator.ingest(V);return X.json({ok:!0,accepted:Q.length})}),F}var rV=class{writer;encoder;writable;abortSubscribers=[];responseReadable;aborted=!1;closed=!1;constructor(D,$){this.writable=D,this.writer=D.getWriter(),this.encoder=new TextEncoder;let F=$.getReader();this.abortSubscribers.push(async()=>{await F.cancel()}),this.responseReadable=new ReadableStream({async pull(X){let{done:J,value:G}=await F.read();J?X.close():X.enqueue(G)},cancel:()=>{this.abort()}})}async write(D){try{if(typeof D==="string")D=this.encoder.encode(D);await this.writer.write(D)}catch{}return this}async writeln(D){return await this.write(D+`
2066
2066
  `),this}sleep(D){return new Promise(($)=>setTimeout($,D))}async close(){try{await this.writer.close()}catch{}this.closed=!0}async pipe(D){this.writer.releaseLock(),await D.pipeTo(this.writable,{preventClose:!0}),this.writer=this.writable.getWriter()}onAbort(D){this.abortSubscribers.push(D)}abort(){if(!this.aborted)this.aborted=!0,this.abortSubscribers.forEach((D)=>D())}};var vJ=()=>{let D=typeof Bun<"u"?Bun.version:void 0;if(D===void 0)return!1;let $=D.startsWith("1.1")||D.startsWith("1.0")||D.startsWith("0.");return vJ=()=>$,$};var $w=class extends rV{constructor(D,$){super(D,$)}async writeSSE(D){let F=(await r4(D.data,TJ.Stringify,!1,{})).split(/\r\n|\r|\n/).map((J)=>{return`data: ${J}`}).join(`
2067
2067
  `);for(let J of["event","id","retry"])if(D[J]&&/[\r\n]/.test(D[J]))throw Error(`${J} must not contain "\\r" or "\\n"`);let X=[D.event&&`event: ${D.event}`,F,D.id&&`id: ${D.id}`,D.retry&&`retry: ${D.retry}`].filter(Boolean).join(`
2068
2068
  `)+`
@@ -2071,10 +2071,10 @@ ${D.vagueContextStrategy}
2071
2071
 
2072
2072
  `),X>0){if(U=setInterval(()=>{Y.write(`: keepalive
2073
2073
 
2074
- `)},X),typeof U.unref==="function")U.unref()}await V})}),F}MD();gD();V0();var E9=new e0;E9.get("/observations",(D)=>{let $=b().select().from(b0).orderBy(RD(b0.noticedAt)).limit(200).all();return D.json({observations:$})});E9.get("/drafts",(D)=>{let $=D.req.query("status"),F=b().select().from(p0).orderBy(RD(p0.createdAt)).limit(100),X=$?F.where(S(p0.status,$)).all():F.all();return D.json({drafts:X})});E9.post("/drafts/:id/approve",async(D)=>{let $=Number(D.req.param("id"));if(!Number.isFinite($))throw ND.badRequest("invalid draft id");let F=await D.req.json().catch(()=>({})),X=new Date().toISOString();return b().update(p0).set({status:"approved",decidedAt:X,decidedBy:F.decidedBy??"operator"}).where(S(p0.id,$)).run(),D.json({ok:!0})});E9.post("/drafts/:id/reject",async(D)=>{let $=Number(D.req.param("id"));if(!Number.isFinite($))throw ND.badRequest("invalid draft id");let F=await D.req.json().catch(()=>({})),X=new Date().toISOString();return b().update(p0).set({status:"rejected",decidedAt:X,decidedBy:F.decidedBy??"operator"}).where(S(p0.id,$)).run(),D.json({ok:!0})});x0();function Xw({getIdentity:D}){return async($,F)=>{let X=$.req.header("Authorization");if(!X)return $.json({code:"auth-failed",message:"missing Authorization header"},401);let[J,G]=X.split(/\s+/,2);if(!J||J.toLowerCase()!=="bearer"||!G)return $.json({code:"auth-failed",message:"expected Bearer scheme"},401);let{tokenPlaintext:Y}=D();if(!Y||!_1(G,Y))return $.json({code:"auth-failed",message:"invalid bearer token"},401);await F()}}x0();MD();gD();HD();jD();var p3D=W.object({value:W.string().min(1)}),Jw=W.string().regex(/^[\w.-]{1,128}$/,{message:"secret key \u4EC5\u5141\u8BB8 [A-Za-z0-9._-]\uFF0C\u957F\u5EA6 1-128"}),d3D=W.object({probe:W.boolean().optional()}).optional(),l3D=W.object({chatId:W.string().optional(),text:W.string().optional()}).optional(),i3D=W.object({limit:W.coerce.number().int().min(1).max(200).optional().default(50),offset:W.coerce.number().int().min(0).optional().default(0),status:W.enum(["active","closed"]).optional()}),n3D=W.object({olderThanDays:W.number().int().min(0).max(3650).optional().default(30),limit:W.number().int().min(1).max(200).optional().default(50),apply:W.boolean().optional().default(!1)}),Gw=W.enum(["web","line","telegram","lark","whatsapp"]),r3D=W.object({expression:W.string().min(1),prompt:W.string().min(1),channel:Gw,chatId:W.string().min(1),accountId:W.string().min(1).optional(),enabled:W.boolean().optional()}),s3D=W.object({expression:W.string().min(1).optional(),prompt:W.string().min(1).optional(),channel:Gw.optional(),chatId:W.string().min(1).optional(),accountId:W.string().min(1).optional(),enabled:W.boolean().optional()}).refine((D)=>Object.keys(D).length>0,{message:"\u81F3\u5C11\u63D0\u4F9B\u4E00\u4E2A\u5F85\u66F4\u65B0\u5B57\u6BB5"});function Yw(D){let $=new e0;return $.get("/info",async(F)=>{let X=D.getState(),J=await P0(b()),G=await s3(X,J.config,{runtimeVersion:D.runtimeVersion,...o.AIWORKER_ADVERTISED_BASE_URL===void 0?{}:{advertisedBaseUrl:o.AIWORKER_ADVERTISED_BASE_URL}});return F.json(G)}),$.get("/config",async(F)=>{let X=await P0(b());return F.json(X)}),$.put("/config",async(F)=>{let X=await F.req.json().catch(()=>null),J=F.req.header("If-Match"),G=J===void 0?void 0:Number.parseInt(J,10);if(J!==void 0&&Number.isNaN(G))return F.json({error:{code:"invalid-if-match",message:"If-Match must be an integer"}},400);try{let Y=await l3({db:b(),vault:cD(),raw:X,...G===void 0?{}:{ifMatchVersion:G},workerId:D.getState().workerId,reloadRuntime:D.reloadRuntime});return F.json(Y)}catch(Y){if(Y instanceof w2)return F.json({error:{code:"invalid-config",message:Y.message,details:Y.issues}},400);if(Y instanceof k2)return F.json({error:{code:"version-conflict",message:Y.message,expected:Y.expected,actual:Y.actual}},409);throw Y}}),$.get("/secrets",async(F)=>{let X=await a3(cD());return F.json({keys:X})}),$.put("/secrets/:key",async(F)=>{let X=Jw.safeParse(F.req.param("key"));if(!X.success)return F.json({error:{code:"invalid-key",message:X.error.issues[0]?.message??"invalid secret key"}},400);let J=await F.req.json().catch(()=>null),G=p3D.safeParse(J);if(!G.success)return F.json({error:{code:"invalid-body",message:"invalid secret body",details:G.error.flatten().fieldErrors}},400);try{return await o3(cD(),X.data,G.data.value),F.json({ok:!0},200)}catch(Y){if(Y instanceof ND)return F.json(Y.toJSON(),Y.status);throw Y}}),$.delete("/secrets/:key",async(F)=>{let X=Jw.safeParse(F.req.param("key"));if(!X.success)return F.json({error:{code:"invalid-key",message:X.error.issues[0]?.message??"invalid secret key"}},400);try{return await t3(cD(),X.data),F.json({ok:!0},200)}catch(J){if(J instanceof ND)return F.json(J.toJSON(),J.status);throw J}}),$.post("/brain/test",async(F)=>{let X=D.getState(),J=await P0(b()),G=await i3(X,J.config);return F.json(G)}),$.post("/executor/test",async(F)=>{let X=await F.req.json().catch(()=>null),J=d3D.safeParse(X??{});if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid executor test body"}},400);let G=D.getState(),Y=await P0(b()),B=await r3(G,Y.config,J.data??{});return F.json(B)}),$.post("/channels/:channel/test",async(F)=>{let X=F.req.param("channel"),J=await F.req.json().catch(()=>null),G=l3D.safeParse(J??{});if(!G.success)return F.json({error:{code:"invalid-body",message:"invalid channel test body"}},400);try{let Y=D.getState(),B=await n3(Y,X,G.data??{});return F.json(B)}catch(Y){if(Y instanceof ND)return F.json(Y.toJSON(),Y.status);throw Y}}),$.post("/token/rotate",async(F)=>{let X=D.getState(),J=await L8(b(),cD(),X);return F.json(J)}),$.get("/sessions",(F)=>{let X=i3D.safeParse({limit:F.req.query("limit"),offset:F.req.query("offset"),status:F.req.query("status")});if(!X.success)return F.json({error:{code:"invalid-query",message:"invalid sessions query",details:X.error.flatten().fieldErrors}},400);let J=B9({config:D.getState().runtime.config,limit:X.data.limit,offset:X.data.offset,...X.data.status===void 0?{}:{status:X.data.status}});return F.json(J)}),$.get("/sessions/:sessionKey",(F)=>{let X=H9(F.req.param("sessionKey"),D.getState().runtime.config);if(X===null)return F.json({error:{code:"not-found",message:"session not found"}},404);return F.json({session:X})}),$.post("/sessions/maintenance/closed-transcripts",async(F)=>{let X=await F.req.json().catch(()=>{return}),J=n3D.safeParse(X??{});if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid session maintenance body",details:J.error.flatten().fieldErrors}},400);let G=J.data,Y=W9({olderThanDays:G.olderThanDays,limit:G.limit,apply:G.apply});return F.json(Y)}),$.post("/reload",async(F)=>{let X=await P0(b());try{return await D.reloadRuntime(X.config,X.version),F.json({ok:!0,version:X.version})}catch(J){return _.error("[worker mgmt] forced reload failed",J),F.json({ok:!1,version:X.version,error:J.message??String(J)},500)}}),$.get("/runtime/processes/capacity",(F)=>{let X=D.getState().runtime.processes.snapshot();return F.json(X)}),$.get("/engines",async(F)=>{let X=F.req.query("refresh")==="1",J=await d3().probeAll({refresh:X});return F.json({engines:J})}),$.get("/approvals",(F)=>{let J=D.getState().runtime.approvals.list().map((G)=>({taskId:G.taskId,toolCallId:G.toolCallId,toolName:G.toolName,params:G.params,expiresAt:G.expiresAt}));return F.json({approvals:J})}),$.post("/approvals/:taskId/:toolCallId/grant",async(F)=>{let X=F.req.param("taskId"),J=F.req.param("toolCallId"),G=await F.req.json().catch(()=>null),Y=W.object({decision:W.enum(["allow","deny"])}).safeParse(G);if(!Y.success)return F.json({error:{code:"invalid-body",message:'decision must be "allow" or "deny"'}},400);let B=D.getState().runtime.approvals.grant(X,J,Y.data.decision);return F.json({granted:B})}),$.get("/cron",async(F)=>{let X=await D.getState().runtime.cron.listJobs();return F.json({jobs:X})}),$.post("/cron",async(F)=>{let X=await F.req.json().catch(()=>null),J=r3D.safeParse(X);if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid cron job body",details:J.error.flatten().fieldErrors}},400);try{let G=await D.getState().runtime.cron.addJob(J.data);return F.json({job:G},201)}catch(G){return F.json({error:{code:"invalid-cron",message:G instanceof Error?G.message:String(G)}},400)}}),$.patch("/cron/:id",async(F)=>{let X=F.req.param("id"),J=await F.req.json().catch(()=>null),G=s3D.safeParse(J);if(!G.success)return F.json({error:{code:"invalid-body",message:"invalid cron patch body",details:G.error.flatten().fieldErrors}},400);try{let Y=await D.getState().runtime.cron.updateJob(X,G.data);if(!Y)return F.json({error:{code:"not-found",message:`cron job ${X} \u4E0D\u5B58\u5728`}},404);return F.json({job:Y})}catch(Y){return F.json({error:{code:"invalid-cron",message:Y instanceof Error?Y.message:String(Y)}},400)}}),$.delete("/cron/:id",async(F)=>{let X=F.req.param("id");if(!(await D.getState().runtime.cron.removeJob(X)).removed)return F.json({error:{code:"not-found",message:`cron job ${X} \u4E0D\u5B58\u5728`}},404);return F.json({ok:!0})}),$}MD();gD();V0();jD();var Bw=W.object({prompt:W.string().trim().min(1,"prompt is required").max(8000,"prompt exceeds 8000 characters")});function Hw(D){let $=new e0;return $.get("/tasks",(F)=>{let X=b().select().from(B0).orderBy(RD(B0.createdAt)).limit(200).all();return F.json({tasks:X})}),$.post("/tasks",async(F)=>{let X=await F.req.json().catch(()=>null),J=Bw.safeParse(X);if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid task body",details:J.error.flatten().fieldErrors}},400);let G=await D().orchestrator.submitTask(J.data.prompt);return F.json({task:G},201)}),$.post("/conversations/:id/messages",async(F)=>{let X=await F.req.json().catch(()=>null),J=Bw.safeParse(X);if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid conversation message body",details:J.error.flatten().fieldErrors}},400);try{let G=await D().orchestrator.continueConversation(F.req.param("id"),J.data.prompt);return F.json({task:G},201)}catch(G){if(G instanceof ND)return F.json(G.toJSON(),G.status);throw G}}),$.get("/conversations",(F)=>{let X=b().select().from(n).orderBy(RD(n.lastActiveAt)).limit(200).all();return F.json({conversations:X})}),$.get("/conversations/:id/messages",(F)=>{let X=F.req.param("id"),J=b().select().from(a).where(S(a.conversationId,X)).all();return F.json({messages:J})}),$}var o3D="dev";async function Ww(D){let $=cD(),F=new Set(g1(D).map((J)=>J.path)),X=new Map;for(let J of F){let G=await $.get(J);if(G!==null)X.set(J,G)}return T3(D,X)}async function Uw(D={}){let $=D.runtimeVersion??o3D;D4(o.WORKER_DB_PATH),$4(o.WORKER_MIGRATIONS_FOLDER);let F=cD(),X=b(),J=await J6(X,F,{...o.AIWORKER_FORCE_ID===void 0?{}:{forceId:o.AIWORKER_FORCE_ID},...o.AIWORKER_FORCE_TOKEN===void 0?{}:{forceToken:o.AIWORKER_FORCE_TOKEN}});G6(J.workerId,J.token,X,J.justMinted),_.info(`[worker ${J.workerId}] worker.db ready at ${o.WORKER_DB_PATH}`);let G=await X6(X),Y=await Ww(G.config),B=new Z6({maxConcurrentTotal:o.MAX_CONCURRENT_TOTAL,perEngineLimits:{...o.perEngineLimits},stallTimeoutMs:o.PROCESS_STALL_TIMEOUT_MS,killTimeoutMs:o.PROCESS_KILL_TIMEOUT_MS,autoCleanupDelayMs:o.PROCESS_AUTO_CLEANUP_DELAY_MS,gcIntervalMs:o.PROCESS_GC_INTERVAL_MS}),H=P6(J.workerId,Y,{processes:B});_.info(`[worker ${J.workerId}] runtime built \u2014 brains=${Y.brains.length} executor=${Y.executor.engine}/${Y.executor.variant} channels=${H.channels.list().length}`);let U={workerId:J.workerId,runtime:H,configVersion:G.version,startedAt:new Date().toISOString(),tokenPlaintext:J.token},Q=Promise.resolve();async function V(M,C){let Z=await Ww(M);B.setLimits({maxConcurrentTotal:o.MAX_CONCURRENT_TOTAL,perEngineLimits:{...o.perEngineLimits}});let O=P6(U.workerId,Z,{processes:B}),j=U.runtime;if(U.runtime=O,U.configVersion=C,D.onRuntimeReloaded)try{D.onRuntimeReloaded()}catch(P){_.warn(`[worker ${U.workerId}] onRuntimeReloaded hook failed: ${String(P)}`)}try{j.dispose()}catch(P){_.warn(`[worker ${U.workerId}] previous runtime dispose failed: ${String(P)}`)}_.info(`[worker ${U.workerId}] runtime reloaded to config version ${C}`)}function A(M,C){let Z=Q.catch(()=>{return}).then(()=>V(M,C));return Q=Z,Z}let K=new e0;if(K.use(nT),K.onError(iT),D.webStaticDir){let M=D.webStaticDir;K.get("/admin",(C)=>C.redirect("/admin/",308)),K.use("/admin/*",rT(M))}return K.get("/health",async(M)=>{let[C,Z]=await Promise.all([U.runtime.brain.health().catch(()=>null),U.runtime.executor.health().catch(()=>null)]);return M.json({mode:"worker",workerId:U.workerId,status:"ok",brain:C,executor:Z,configVersion:U.configVersion,startedAt:U.startedAt,checkedAt:new Date().toISOString(),workerHome:a3D.dirname(o.WORKER_DB_PATH),runtimeVersion:$})}),K.route("/",Dw(()=>U.runtime,U.workerId)),K.use("/api/worker/*",Xw({getIdentity:()=>({tokenPlaintext:U.tokenPlaintext})})),K.route("/api/worker/orchestrator",Hw(()=>U.runtime)),K.route("/api/worker/evolution",E9),K.route("/api/worker/events",Fw(()=>U.runtime)),K.route("/api/worker/brain",eT({getWorkerId:()=>U.workerId,getDecisionPipelineConfig:()=>{let M=U.runtime.config.orchestrator?.decisionPipeline,C={intentEvaluator:M?.intentClassifier?.evaluator??"heuristic",qualityEvaluator:M?.qualityGate?.evaluator??"heuristic",qualityMode:M?.qualityGate?.mode??"observe",conversationClassifierEnabled:!0};if(M?.qualityGate?.threshold!==void 0)C.qualityThreshold=M.qualityGate.threshold;return C}})),K.route("/api/worker",Yw({getState:()=>U,reloadRuntime:A,runtimeVersion:$})),t3D(K),K.doc("/openapi.json",{openapi:"3.1.0",info:{title:"AIWorker Worker API",version:$,description:`Per-worker surface: channels, orchestrator, memory, skills, execution, evolution. Worker id: ${U.workerId}`}}),K.get("/docs",iV({spec:{url:"/openapi.json"}})),{app:K,port:o.PORT,state:U,reloadRuntime:A}}function t3D(D){let $=W.object({}).passthrough().openapi("WorkerEndpointResponse"),F=W.object({error:W.object({code:W.string(),message:W.string()})}).openapi("WorkerErrorResponse"),X={200:{description:"OK",content:{"application/json":{schema:$}}}},J={description:"Error",content:{"application/json":{schema:F}}},G=[{method:"get",path:"/health",summary:"Worker health snapshot (public)",tags:["health"]},{method:"get",path:"/api/worker/info",summary:"Worker identity, brainSummary, scope manifest, runtime version",tags:["management"],requireAuth:!0},{method:"get",path:"/api/worker/sessions",summary:"Active orchestrator sessions",tags:["management"],requireAuth:!0},{method:"get",path:"/api/worker/schedule",summary:"Worker cron schedule snapshot",tags:["management"],requireAuth:!0},{method:"get",path:"/api/worker/approvals",summary:"Pending tool approval requests",tags:["management"],requireAuth:!0},{method:"get",path:"/api/worker/brain/summary",summary:"Brain summary aggregate (memories / skills / artifacts / admission)",tags:["brain"],requireAuth:!0},{method:"get",path:"/api/worker/brain/admission",summary:"List admission proposals",tags:["brain"],requireAuth:!0},{method:"get",path:"/api/worker/brain/admission/{id}",summary:"Show admission proposal + decisions",tags:["brain"],requireAuth:!0},{method:"post",path:"/api/worker/brain/admission/{id}/approve",summary:"Approve a pending admission proposal",tags:["brain"],requireAuth:!0},{method:"post",path:"/api/worker/brain/admission/{id}/apply",summary:"Materialize an approved admission proposal (dry-run unless commit=true)",tags:["brain"],requireAuth:!0},{method:"get",path:"/api/worker/orchestrator/tasks",summary:"List recent worker orchestrator tasks",tags:["orchestrator"],requireAuth:!0},{method:"post",path:"/api/worker/orchestrator/tasks",summary:"Submit a worker orchestrator task",tags:["orchestrator"],requireAuth:!0},{method:"get",path:"/api/worker/orchestrator/conversations",summary:"List recent worker orchestrator conversations",tags:["orchestrator"],requireAuth:!0},{method:"get",path:"/api/worker/orchestrator/conversations/{id}/messages",summary:"List messages for a worker orchestrator conversation",tags:["orchestrator"],requireAuth:!0},{method:"post",path:"/api/worker/orchestrator/conversations/{id}/messages",summary:"Continue an existing worker orchestrator conversation",tags:["orchestrator"],requireAuth:!0},{method:"get",path:"/api/worker/events/stream",summary:"SSE stream of orchestrator events",tags:["events"],requireAuth:!0}];for(let Y of G){let B={...X};if(Y.requireAuth)B[401]=J,B[403]=J;D.openAPIRegistry.registerPath({method:Y.method,path:Y.path,summary:Y.summary,tags:Y.tags,...Y.requireAuth?{security:[{bearerAuth:[]}]}:{},responses:B})}D.openAPIRegistry.registerComponent("securitySchemes","bearerAuth",{type:"http",scheme:"bearer",description:"Worker bearer token. Obtain via `aiworker token rotate` or first-run mint."})}x0();$0();MD();gD();HD();async function X9D(D,$){let F=D==="*"?"0.0.0.0":D;return new Promise((X)=>{let J=F9D(),G=(Y)=>{J.removeAllListeners();let B=Y.code??"ERROR";X(`port ${$} on host ${F} unavailable: ${B} (${Y.message})`)};J.once("error",G),J.once("listening",()=>{J.removeAllListeners(),J.close(()=>X(null))});try{J.listen({host:F,port:$})}catch(Y){G(Y)}})}function Aw({host:D,port:$}){let F=W9D(D);return`http://${U9D(F)}:${$}/admin/`}function J9D({token:D,...$}){return`${Aw($)}#token=${encodeURIComponent(D)}`}function G9D(D){return`[aiworker serve] worker admin: ${D}\uFF08\u65E0 token \u4F1A\u663E\u793A\u9501\u5B9A\u6001\uFF1B\u4F7F\u7528 --open \u6253\u5F00\u4F1A\u901A\u8FC7 URL fragment \u6CE8\u5165 bearer\uFF09`}function Y9D({open:D,stdoutIsTTY:$}){if(D===!1)return!1;if(D===!0)return!0;return $}function B9D(D,$=U2.platform){if($==="darwin")return{command:"open",args:[D]};if($==="win32")return{command:"cmd",args:["/c","start","",D]};return{command:"xdg-open",args:[D]}}function Qw(D){if(!D)return{redact:!0,denied:!1};if(U2.env.AIWORKER_ADMIN_REVEAL==="1")return{redact:!1,denied:!1};return{redact:!0,denied:!0}}function Vw(D,$){let F=Error($);return F.code=D,F}async function D5(D={}){let $=D.runtimeVersion??"dev",F=null,X=U2.env.AIWORKER_WORKER_NO_SERVE_WEB==="1",J=D.serveWeb!==!1&&!X,G=J?s7("worker"):void 0;if(J&&!G)_.warn("[aiworker serve] web \u9759\u6001\u8D44\u6E90\u672A\u627E\u5230\uFF08apps/web/dist/worker \u7F3A\u5931\uFF1F\uFF09\uFF0C/admin/* \u5C06\u8FD4\u56DE 404");let Y=D.host??o.AIWORKER_WORKER_HOST;U7({surface:"worker",host:Y,serveWeb:G!==void 0,externalAuthAcknowledged:o.AIWORKER_ADMIN_EXTERNAL_AUTH});let{app:B,port:H,state:U,reloadRuntime:Q}=await Uw({onRuntimeReloaded:()=>F?.notifyRuntimeReloaded(),runtimeVersion:$,...G?{webStaticDir:G}:{}}),V=D.port??H,A=await X9D(Y,V);if(A!==null)_.error(`[aiworker serve] ${A}`),_.error(`[aiworker serve] hint: \`lsof -tiTCP:${V} -sTCP:LISTEN\` to find the holding pid, then \`kill -TERM <pid>\` and retry.`),U2.exit(1);let K=Bun.serve({port:V,hostname:Y,fetch:B.fetch});_.success(`[aiworker serve] worker ${U.workerId} listening on ${Y}:${V} (config v${U.configVersion})`);let M=null;if(D.pidFile!==void 0)try{D9D(D.pidFile,`${U2.pid}
2074
+ `)},X),typeof U.unref==="function")U.unref()}await V})}),F}ZD();gD();V0();var E9=new e0;E9.get("/observations",(D)=>{let $=b().select().from(b0).orderBy(OD(b0.noticedAt)).limit(200).all();return D.json({observations:$})});E9.get("/drafts",(D)=>{let $=D.req.query("status"),F=b().select().from(p0).orderBy(OD(p0.createdAt)).limit(100),X=$?F.where(S(p0.status,$)).all():F.all();return D.json({drafts:X})});E9.post("/drafts/:id/approve",async(D)=>{let $=Number(D.req.param("id"));if(!Number.isFinite($))throw ND.badRequest("invalid draft id");let F=await D.req.json().catch(()=>({})),X=new Date().toISOString();return b().update(p0).set({status:"approved",decidedAt:X,decidedBy:F.decidedBy??"operator"}).where(S(p0.id,$)).run(),D.json({ok:!0})});E9.post("/drafts/:id/reject",async(D)=>{let $=Number(D.req.param("id"));if(!Number.isFinite($))throw ND.badRequest("invalid draft id");let F=await D.req.json().catch(()=>({})),X=new Date().toISOString();return b().update(p0).set({status:"rejected",decidedAt:X,decidedBy:F.decidedBy??"operator"}).where(S(p0.id,$)).run(),D.json({ok:!0})});x0();function Xw({getIdentity:D}){return async($,F)=>{let X=$.req.header("Authorization");if(!X)return $.json({code:"auth-failed",message:"missing Authorization header"},401);let[J,G]=X.split(/\s+/,2);if(!J||J.toLowerCase()!=="bearer"||!G)return $.json({code:"auth-failed",message:"expected Bearer scheme"},401);let{tokenPlaintext:Y}=D();if(!Y||!_1(G,Y))return $.json({code:"auth-failed",message:"invalid bearer token"},401);await F()}}x0();ZD();gD();HD();jD();var p3D=W.object({value:W.string().min(1)}),Jw=W.string().regex(/^[\w.-]{1,128}$/,{message:"secret key \u4EC5\u5141\u8BB8 [A-Za-z0-9._-]\uFF0C\u957F\u5EA6 1-128"}),d3D=W.object({probe:W.boolean().optional()}).optional(),l3D=W.object({chatId:W.string().optional(),text:W.string().optional()}).optional(),i3D=W.object({limit:W.coerce.number().int().min(1).max(200).optional().default(50),offset:W.coerce.number().int().min(0).optional().default(0),status:W.enum(["active","closed"]).optional()}),n3D=W.object({olderThanDays:W.number().int().min(0).max(3650).optional().default(30),limit:W.number().int().min(1).max(200).optional().default(50),apply:W.boolean().optional().default(!1)}),Gw=W.enum(["web","line","telegram","lark","whatsapp"]),r3D=W.object({expression:W.string().min(1),prompt:W.string().min(1),channel:Gw,chatId:W.string().min(1),accountId:W.string().min(1).optional(),enabled:W.boolean().optional()}),s3D=W.object({expression:W.string().min(1).optional(),prompt:W.string().min(1).optional(),channel:Gw.optional(),chatId:W.string().min(1).optional(),accountId:W.string().min(1).optional(),enabled:W.boolean().optional()}).refine((D)=>Object.keys(D).length>0,{message:"\u81F3\u5C11\u63D0\u4F9B\u4E00\u4E2A\u5F85\u66F4\u65B0\u5B57\u6BB5"});function Yw(D){let $=new e0;return $.get("/info",async(F)=>{let X=D.getState(),J=await P0(b()),G=await s3(X,J.config,{runtimeVersion:D.runtimeVersion,...o.AIWORKER_ADVERTISED_BASE_URL===void 0?{}:{advertisedBaseUrl:o.AIWORKER_ADVERTISED_BASE_URL}});return F.json(G)}),$.get("/config",async(F)=>{let X=await P0(b());return F.json(X)}),$.put("/config",async(F)=>{let X=await F.req.json().catch(()=>null),J=F.req.header("If-Match"),G=J===void 0?void 0:Number.parseInt(J,10);if(J!==void 0&&Number.isNaN(G))return F.json({error:{code:"invalid-if-match",message:"If-Match must be an integer"}},400);try{let Y=await l3({db:b(),vault:cD(),raw:X,...G===void 0?{}:{ifMatchVersion:G},workerId:D.getState().workerId,reloadRuntime:D.reloadRuntime});return F.json(Y)}catch(Y){if(Y instanceof w2)return F.json({error:{code:"invalid-config",message:Y.message,details:Y.issues}},400);if(Y instanceof k2)return F.json({error:{code:"version-conflict",message:Y.message,expected:Y.expected,actual:Y.actual}},409);throw Y}}),$.get("/secrets",async(F)=>{let X=await a3(cD());return F.json({keys:X})}),$.put("/secrets/:key",async(F)=>{let X=Jw.safeParse(F.req.param("key"));if(!X.success)return F.json({error:{code:"invalid-key",message:X.error.issues[0]?.message??"invalid secret key"}},400);let J=await F.req.json().catch(()=>null),G=p3D.safeParse(J);if(!G.success)return F.json({error:{code:"invalid-body",message:"invalid secret body",details:G.error.flatten().fieldErrors}},400);try{return await o3(cD(),X.data,G.data.value),F.json({ok:!0},200)}catch(Y){if(Y instanceof ND)return F.json(Y.toJSON(),Y.status);throw Y}}),$.delete("/secrets/:key",async(F)=>{let X=Jw.safeParse(F.req.param("key"));if(!X.success)return F.json({error:{code:"invalid-key",message:X.error.issues[0]?.message??"invalid secret key"}},400);try{return await t3(cD(),X.data),F.json({ok:!0},200)}catch(J){if(J instanceof ND)return F.json(J.toJSON(),J.status);throw J}}),$.post("/brain/test",async(F)=>{let X=D.getState(),J=await P0(b()),G=await i3(X,J.config);return F.json(G)}),$.post("/executor/test",async(F)=>{let X=await F.req.json().catch(()=>null),J=d3D.safeParse(X??{});if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid executor test body"}},400);let G=D.getState(),Y=await P0(b()),B=await r3(G,Y.config,J.data??{});return F.json(B)}),$.post("/channels/:channel/test",async(F)=>{let X=F.req.param("channel"),J=await F.req.json().catch(()=>null),G=l3D.safeParse(J??{});if(!G.success)return F.json({error:{code:"invalid-body",message:"invalid channel test body"}},400);try{let Y=D.getState(),B=await n3(Y,X,G.data??{});return F.json(B)}catch(Y){if(Y instanceof ND)return F.json(Y.toJSON(),Y.status);throw Y}}),$.post("/token/rotate",async(F)=>{let X=D.getState(),J=await L8(b(),cD(),X);return F.json(J)}),$.get("/sessions",(F)=>{let X=i3D.safeParse({limit:F.req.query("limit"),offset:F.req.query("offset"),status:F.req.query("status")});if(!X.success)return F.json({error:{code:"invalid-query",message:"invalid sessions query",details:X.error.flatten().fieldErrors}},400);let J=B9({config:D.getState().runtime.config,limit:X.data.limit,offset:X.data.offset,...X.data.status===void 0?{}:{status:X.data.status}});return F.json(J)}),$.get("/sessions/:sessionKey",(F)=>{let X=H9(F.req.param("sessionKey"),D.getState().runtime.config);if(X===null)return F.json({error:{code:"not-found",message:"session not found"}},404);return F.json({session:X})}),$.post("/sessions/maintenance/closed-transcripts",async(F)=>{let X=await F.req.json().catch(()=>{return}),J=n3D.safeParse(X??{});if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid session maintenance body",details:J.error.flatten().fieldErrors}},400);let G=J.data,Y=W9({olderThanDays:G.olderThanDays,limit:G.limit,apply:G.apply});return F.json(Y)}),$.post("/reload",async(F)=>{let X=await P0(b());try{return await D.reloadRuntime(X.config,X.version),F.json({ok:!0,version:X.version})}catch(J){return _.error("[worker mgmt] forced reload failed",J),F.json({ok:!1,version:X.version,error:J.message??String(J)},500)}}),$.get("/runtime/processes/capacity",(F)=>{let X=D.getState().runtime.processes.snapshot();return F.json(X)}),$.get("/engines",async(F)=>{let X=F.req.query("refresh")==="1",J=await d3().probeAll({refresh:X});return F.json({engines:J})}),$.get("/approvals",(F)=>{let J=D.getState().runtime.approvals.list().map((G)=>({taskId:G.taskId,toolCallId:G.toolCallId,toolName:G.toolName,params:G.params,expiresAt:G.expiresAt}));return F.json({approvals:J})}),$.post("/approvals/:taskId/:toolCallId/grant",async(F)=>{let X=F.req.param("taskId"),J=F.req.param("toolCallId"),G=await F.req.json().catch(()=>null),Y=W.object({decision:W.enum(["allow","deny"])}).safeParse(G);if(!Y.success)return F.json({error:{code:"invalid-body",message:'decision must be "allow" or "deny"'}},400);let B=D.getState().runtime.approvals.grant(X,J,Y.data.decision);return F.json({granted:B})}),$.get("/cron",async(F)=>{let X=await D.getState().runtime.cron.listJobs();return F.json({jobs:X})}),$.post("/cron",async(F)=>{let X=await F.req.json().catch(()=>null),J=r3D.safeParse(X);if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid cron job body",details:J.error.flatten().fieldErrors}},400);try{let G=await D.getState().runtime.cron.addJob(J.data);return F.json({job:G},201)}catch(G){return F.json({error:{code:"invalid-cron",message:G instanceof Error?G.message:String(G)}},400)}}),$.patch("/cron/:id",async(F)=>{let X=F.req.param("id"),J=await F.req.json().catch(()=>null),G=s3D.safeParse(J);if(!G.success)return F.json({error:{code:"invalid-body",message:"invalid cron patch body",details:G.error.flatten().fieldErrors}},400);try{let Y=await D.getState().runtime.cron.updateJob(X,G.data);if(!Y)return F.json({error:{code:"not-found",message:`cron job ${X} \u4E0D\u5B58\u5728`}},404);return F.json({job:Y})}catch(Y){return F.json({error:{code:"invalid-cron",message:Y instanceof Error?Y.message:String(Y)}},400)}}),$.delete("/cron/:id",async(F)=>{let X=F.req.param("id");if(!(await D.getState().runtime.cron.removeJob(X)).removed)return F.json({error:{code:"not-found",message:`cron job ${X} \u4E0D\u5B58\u5728`}},404);return F.json({ok:!0})}),$}ZD();gD();V0();jD();var Bw=W.object({prompt:W.string().trim().min(1,"prompt is required").max(8000,"prompt exceeds 8000 characters")});function Hw(D){let $=new e0;return $.get("/tasks",(F)=>{let X=b().select().from(B0).orderBy(OD(B0.createdAt)).limit(200).all();return F.json({tasks:X})}),$.post("/tasks",async(F)=>{let X=await F.req.json().catch(()=>null),J=Bw.safeParse(X);if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid task body",details:J.error.flatten().fieldErrors}},400);let G=await D().orchestrator.submitTask(J.data.prompt);return F.json({task:G},201)}),$.post("/conversations/:id/messages",async(F)=>{let X=await F.req.json().catch(()=>null),J=Bw.safeParse(X);if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid conversation message body",details:J.error.flatten().fieldErrors}},400);try{let G=await D().orchestrator.continueConversation(F.req.param("id"),J.data.prompt);return F.json({task:G},201)}catch(G){if(G instanceof ND)return F.json(G.toJSON(),G.status);throw G}}),$.get("/conversations",(F)=>{let X=b().select().from(n).orderBy(OD(n.lastActiveAt)).limit(200).all();return F.json({conversations:X})}),$.get("/conversations/:id/messages",(F)=>{let X=F.req.param("id"),J=b().select().from(a).where(S(a.conversationId,X)).all();return F.json({messages:J})}),$}var o3D="dev";async function Ww(D){let $=cD(),F=new Set(g1(D).map((J)=>J.path)),X=new Map;for(let J of F){let G=await $.get(J);if(G!==null)X.set(J,G)}return T3(D,X)}async function Uw(D={}){let $=D.runtimeVersion??o3D;D4(o.WORKER_DB_PATH),$4(o.WORKER_MIGRATIONS_FOLDER);let F=cD(),X=b(),J=await J6(X,F,{...o.AIWORKER_FORCE_ID===void 0?{}:{forceId:o.AIWORKER_FORCE_ID},...o.AIWORKER_FORCE_TOKEN===void 0?{}:{forceToken:o.AIWORKER_FORCE_TOKEN}});G6(J.workerId,J.token,X,J.justMinted),_.info(`[worker ${J.workerId}] worker.db ready at ${o.WORKER_DB_PATH}`);let G=await X6(X),Y=await Ww(G.config),B=new Z6({maxConcurrentTotal:o.MAX_CONCURRENT_TOTAL,perEngineLimits:{...o.perEngineLimits},stallTimeoutMs:o.PROCESS_STALL_TIMEOUT_MS,killTimeoutMs:o.PROCESS_KILL_TIMEOUT_MS,autoCleanupDelayMs:o.PROCESS_AUTO_CLEANUP_DELAY_MS,gcIntervalMs:o.PROCESS_GC_INTERVAL_MS}),H=P6(J.workerId,Y,{processes:B});_.info(`[worker ${J.workerId}] runtime built \u2014 brains=${Y.brains.length} executor=${Y.executor.engine}/${Y.executor.variant} channels=${H.channels.list().length}`);let U={workerId:J.workerId,runtime:H,configVersion:G.version,startedAt:new Date().toISOString(),tokenPlaintext:J.token},Q=Promise.resolve();async function V(M,C){let Z=await Ww(M);B.setLimits({maxConcurrentTotal:o.MAX_CONCURRENT_TOTAL,perEngineLimits:{...o.perEngineLimits}});let O=P6(U.workerId,Z,{processes:B}),j=U.runtime;if(U.runtime=O,U.configVersion=C,D.onRuntimeReloaded)try{D.onRuntimeReloaded()}catch(P){_.warn(`[worker ${U.workerId}] onRuntimeReloaded hook failed: ${String(P)}`)}try{j.dispose()}catch(P){_.warn(`[worker ${U.workerId}] previous runtime dispose failed: ${String(P)}`)}_.info(`[worker ${U.workerId}] runtime reloaded to config version ${C}`)}function A(M,C){let Z=Q.catch(()=>{return}).then(()=>V(M,C));return Q=Z,Z}let K=new e0;if(K.use(nT),K.onError(iT),D.webStaticDir){let M=D.webStaticDir;K.get("/admin",(C)=>C.redirect("/admin/",308)),K.use("/admin/*",rT(M))}return K.get("/health",async(M)=>{let[C,Z]=await Promise.all([U.runtime.brain.health().catch(()=>null),U.runtime.executor.health().catch(()=>null)]);return M.json({mode:"worker",workerId:U.workerId,status:"ok",brain:C,executor:Z,configVersion:U.configVersion,startedAt:U.startedAt,checkedAt:new Date().toISOString(),workerHome:a3D.dirname(o.WORKER_DB_PATH),runtimeVersion:$})}),K.route("/",Dw(()=>U.runtime,U.workerId)),K.use("/api/worker/*",Xw({getIdentity:()=>({tokenPlaintext:U.tokenPlaintext})})),K.route("/api/worker/orchestrator",Hw(()=>U.runtime)),K.route("/api/worker/evolution",E9),K.route("/api/worker/events",Fw(()=>U.runtime)),K.route("/api/worker/brain",eT({getWorkerId:()=>U.workerId,getDecisionPipelineConfig:()=>{let M=U.runtime.config.orchestrator?.decisionPipeline,C={intentEvaluator:M?.intentClassifier?.evaluator??"heuristic",qualityEvaluator:M?.qualityGate?.evaluator??"heuristic",qualityMode:M?.qualityGate?.mode??"observe",conversationClassifierEnabled:!0};if(M?.qualityGate?.threshold!==void 0)C.qualityThreshold=M.qualityGate.threshold;return C}})),K.route("/api/worker",Yw({getState:()=>U,reloadRuntime:A,runtimeVersion:$})),t3D(K),K.doc("/openapi.json",{openapi:"3.1.0",info:{title:"AIWorker Worker API",version:$,description:`Per-worker surface: channels, orchestrator, memory, skills, execution, evolution. Worker id: ${U.workerId}`}}),K.get("/docs",iV({spec:{url:"/openapi.json"}})),{app:K,port:o.PORT,state:U,reloadRuntime:A}}function t3D(D){let $=W.object({}).passthrough().openapi("WorkerEndpointResponse"),F=W.object({error:W.object({code:W.string(),message:W.string()})}).openapi("WorkerErrorResponse"),X={200:{description:"OK",content:{"application/json":{schema:$}}}},J={description:"Error",content:{"application/json":{schema:F}}},G=[{method:"get",path:"/health",summary:"Worker health snapshot (public)",tags:["health"]},{method:"get",path:"/api/worker/info",summary:"Worker identity, brainSummary, scope manifest, runtime version",tags:["management"],requireAuth:!0},{method:"get",path:"/api/worker/sessions",summary:"Active orchestrator sessions",tags:["management"],requireAuth:!0},{method:"get",path:"/api/worker/schedule",summary:"Worker cron schedule snapshot",tags:["management"],requireAuth:!0},{method:"get",path:"/api/worker/approvals",summary:"Pending tool approval requests",tags:["management"],requireAuth:!0},{method:"get",path:"/api/worker/brain/summary",summary:"Brain summary aggregate (memories / skills / artifacts / admission)",tags:["brain"],requireAuth:!0},{method:"get",path:"/api/worker/brain/admission",summary:"List admission proposals",tags:["brain"],requireAuth:!0},{method:"get",path:"/api/worker/brain/admission/{id}",summary:"Show admission proposal + decisions",tags:["brain"],requireAuth:!0},{method:"post",path:"/api/worker/brain/admission/{id}/approve",summary:"Approve a pending admission proposal",tags:["brain"],requireAuth:!0},{method:"post",path:"/api/worker/brain/admission/{id}/apply",summary:"Materialize an approved admission proposal (dry-run unless commit=true)",tags:["brain"],requireAuth:!0},{method:"get",path:"/api/worker/orchestrator/tasks",summary:"List recent worker orchestrator tasks",tags:["orchestrator"],requireAuth:!0},{method:"post",path:"/api/worker/orchestrator/tasks",summary:"Submit a worker orchestrator task",tags:["orchestrator"],requireAuth:!0},{method:"get",path:"/api/worker/orchestrator/conversations",summary:"List recent worker orchestrator conversations",tags:["orchestrator"],requireAuth:!0},{method:"get",path:"/api/worker/orchestrator/conversations/{id}/messages",summary:"List messages for a worker orchestrator conversation",tags:["orchestrator"],requireAuth:!0},{method:"post",path:"/api/worker/orchestrator/conversations/{id}/messages",summary:"Continue an existing worker orchestrator conversation",tags:["orchestrator"],requireAuth:!0},{method:"get",path:"/api/worker/events/stream",summary:"SSE stream of orchestrator events",tags:["events"],requireAuth:!0}];for(let Y of G){let B={...X};if(Y.requireAuth)B[401]=J,B[403]=J;D.openAPIRegistry.registerPath({method:Y.method,path:Y.path,summary:Y.summary,tags:Y.tags,...Y.requireAuth?{security:[{bearerAuth:[]}]}:{},responses:B})}D.openAPIRegistry.registerComponent("securitySchemes","bearerAuth",{type:"http",scheme:"bearer",description:"Worker bearer token. Obtain via `aiworker token rotate` or first-run mint."})}x0();$0();ZD();gD();HD();async function X9D(D,$){let F=D==="*"?"0.0.0.0":D;return new Promise((X)=>{let J=F9D(),G=(Y)=>{J.removeAllListeners();let B=Y.code??"ERROR";X(`port ${$} on host ${F} unavailable: ${B} (${Y.message})`)};J.once("error",G),J.once("listening",()=>{J.removeAllListeners(),J.close(()=>X(null))});try{J.listen({host:F,port:$})}catch(Y){G(Y)}})}function Aw({host:D,port:$}){let F=W9D(D);return`http://${U9D(F)}:${$}/admin/`}function J9D({token:D,...$}){return`${Aw($)}#token=${encodeURIComponent(D)}`}function G9D(D){return`[aiworker serve] worker admin: ${D}\uFF08\u65E0 token \u4F1A\u663E\u793A\u9501\u5B9A\u6001\uFF1B\u4F7F\u7528 --open \u6253\u5F00\u4F1A\u901A\u8FC7 URL fragment \u6CE8\u5165 bearer\uFF09`}function Y9D({open:D,stdoutIsTTY:$}){if(D===!1)return!1;if(D===!0)return!0;return $}function B9D(D,$=U2.platform){if($==="darwin")return{command:"open",args:[D]};if($==="win32")return{command:"cmd",args:["/c","start","",D]};return{command:"xdg-open",args:[D]}}function Qw(D){if(!D)return{redact:!0,denied:!1};if(U2.env.AIWORKER_ADMIN_REVEAL==="1")return{redact:!1,denied:!1};return{redact:!0,denied:!0}}function Vw(D,$){let F=Error($);return F.code=D,F}async function D5(D={}){let $=D.runtimeVersion??"dev",F=null,X=U2.env.AIWORKER_WORKER_NO_SERVE_WEB==="1",J=D.serveWeb!==!1&&!X,G=J?s7("worker"):void 0;if(J&&!G)_.warn("[aiworker serve] web \u9759\u6001\u8D44\u6E90\u672A\u627E\u5230\uFF08apps/web/dist/worker \u7F3A\u5931\uFF1F\uFF09\uFF0C/admin/* \u5C06\u8FD4\u56DE 404");let Y=D.host??o.AIWORKER_WORKER_HOST;U7({surface:"worker",host:Y,serveWeb:G!==void 0,externalAuthAcknowledged:o.AIWORKER_ADMIN_EXTERNAL_AUTH});let{app:B,port:H,state:U,reloadRuntime:Q}=await Uw({onRuntimeReloaded:()=>F?.notifyRuntimeReloaded(),runtimeVersion:$,...G?{webStaticDir:G}:{}}),V=D.port??H,A=await X9D(Y,V);if(A!==null)_.error(`[aiworker serve] ${A}`),_.error(`[aiworker serve] hint: \`lsof -tiTCP:${V} -sTCP:LISTEN\` to find the holding pid, then \`kill -TERM <pid>\` and retry.`),U2.exit(1);let K=Bun.serve({port:V,hostname:Y,fetch:B.fetch});_.success(`[aiworker serve] worker ${U.workerId} listening on ${Y}:${V} (config v${U.configVersion})`);let M=null;if(D.pidFile!==void 0)try{D9D(D.pidFile,`${U2.pid}
2075
2075
  `,{encoding:"utf8"}),M=D.pidFile,_.info(`[aiworker serve] pid ${U2.pid} written to ${D.pidFile}`)}catch(I){_.warn(`[aiworker serve] pid-file write failed: ${I instanceof Error?I.message:String(I)}`)}if(G){_.info(`[aiworker serve] /admin/* serving worker bundle from ${G}`);let I=Aw({host:Y,port:V});if(_.info(G9D(I)),Y9D({open:D.open,stdoutIsTTY:U2.stdout.isTTY===!0})){let x=J9D({host:Y,port:V,token:U.tokenPlaintext});Q9D(x)}}else if(D.open===!0)_.warn("[aiworker serve] --open \u5DF2\u8BF7\u6C42\uFF0C\u4F46 worker web \u9759\u6001\u8D44\u6E90\u672A\u6302\u8F7D\uFF0C\u8DF3\u8FC7\u6253\u5F00\u6D4F\u89C8\u5668");let C=o.AIWORKER_GATEWAY_URL,Z=o.AIWORKER_JOIN_TOKEN,O=o.AIWORKER_DISPLAY_NAME,j=o.AIWORKER_ENROLL_MODE,P=D.gateway&&D.gateway.length>0?D.gateway:void 0,T,h=D.gatewayToken??"",q,N="legacy";if(P)T=P;else if(C&&C.length>0){let I=j==="otp",x=!!Z&&Z.length>0;if(!I&&x)T=C,N="self-enroll",q={mode:"join-token",joinToken:Z,apiToken:U.tokenPlaintext,...O?{displayName:O}:{}};else{let y=new URL(C);if(y.pathname="/enroll-ws",T=y.toString(),N="otp",h=U.tokenPlaintext,q={mode:"otp",apiToken:U.tokenPlaintext,...O?{displayName:O}:{}},I&&x)_.info("[aiworker serve] AIWORKER_ENROLL_MODE=otp \u5DF2\u751F\u6548\uFF0C\u5FFD\u7565 AIWORKER_JOIN_TOKEN")}}else if(Z&&Z.length>0)_.warn("[aiworker serve] AIWORKER_JOIN_TOKEN set but AIWORKER_GATEWAY_URL missing; skipping self-enroll");if(T){if(N==="self-enroll")_.info(`[aiworker serve] self-enrolling to ${T} as ${O??U.workerId}`);else if(N==="otp")_.info(`[aiworker serve] OTP enrolling to ${T}; awaiting operator approval`);F=hX({url:T,token:h,workerId:U.workerId,...D.gatewayReconnect===!1?{reconnect:!1}:{},...q?{enroll:q}:{},...N==="otp"?{onEnrollmentOtp:({otp:I,expiresAt:x})=>{let y=Math.max(0,Math.round((x-Date.now())/1000)),XD=H9D(I,y);U2.stdout.write(`${XD}
2076
2076
  `),_.info(`[aiworker serve] OTP ${I} \u5DF2\u7B7E\u53D1\uFF0C\u8BF7\u7528 \`aiworker fleet enroll approve ${I}\` \u51C6\u5165\uFF1Bexpires in ${y}s`)},onEnrollmentApproved:({workerId:I,deviceToken:x})=>{_.success(`[aiworker serve] approved as ${I}; deviceToken=${x.slice(0,8)}\u2026\uFF0C\u5DF2\u52A0\u5165 fleet`)}}:{},getRuntime:()=>U.runtime,handlers:{workersInfo:async()=>{let I=await P0(b());return await s3(U,I.config,{runtimeVersion:$,...o.AIWORKER_ADVERTISED_BASE_URL===void 0?{}:{advertisedBaseUrl:o.AIWORKER_ADVERTISED_BASE_URL}})},workersStop:async()=>{setTimeout(()=>{try{U2.kill(U2.pid,"SIGTERM")}catch(I){_.error(`[aiworker serve] workers.stop failed to signal self: ${String(I)}`)}},0)},configGet:async()=>{let I=await P0(b());return{version:I.version,config:I.config}},configPut:async({ifMatch:I,config:x})=>{let y=await l3({db:b(),vault:cD(),raw:x,ifMatchVersion:I,workerId:U.workerId,reloadRuntime:Q});return{version:y.version,appliedAt:Date.now(),runtimeReload:y.runtimeReload}},tokenRotate:async()=>{let{newToken:I}=await L8(b(),cD(),U);return{deviceToken:I}},...fX(()=>U.runtime.cron),secretsList:async()=>{return{keys:await a3(cD())}},secretsPut:async({key:I,value:x})=>{return await o3(cD(),I,x),{ok:!0}},secretsDelete:async({key:I})=>{return await t3(cD(),I),{ok:!0}},enginesList:async({refresh:I})=>{return{engines:await d3().probeAll({refresh:I===!0})}},brainTest:async()=>{let I=await P0(b());return await i3(U,I.config)},brainSummary:async()=>{let I=U.runtime.config.orchestrator?.decisionPipeline,x={intentEvaluator:I?.intentClassifier?.evaluator??"heuristic",qualityEvaluator:I?.qualityGate?.evaluator??"heuristic",qualityMode:I?.qualityGate?.mode??"observe",conversationClassifierEnabled:!0};if(I?.qualityGate?.threshold!==void 0)x.qualityThreshold=I.qualityGate.threshold;return{workerId:U.workerId,brainSummary:M8(x),checkedAt:new Date().toISOString()}},brainAdmissionList:async(I)=>{let x=Qw(I.showSensitive===!0),y={};if(I.status!==void 0)y.status=I.status;if(I.kind!==void 0)y.kind=I.kind;if(I.scopeId!==void 0)y.scopeId=I.scopeId;if(I.soulId!==void 0)y.soulId=I.soulId;if(I.limit!==void 0)y.limit=I.limit;let XD=new eD().list(y,{redactSensitive:x.redact});return{count:XD.proposals.length,redacted:x.redact,...x.denied?{showSensitiveDenied:"missing-env-gate: set AIWORKER_ADMIN_REVEAL=1 in worker env"}:{},proposals:XD.proposals,skipped:XD.skipped}},brainAdmissionShow:async({id:I,showSensitive:x})=>{let y=Qw(x===!0),XD=new eD,kD=XD.get(I,{redactSensitive:y.redact});if(kD===null)throw Vw("not-found",`admission proposal "${I}" not found`);return{redacted:y.redact,...y.denied?{showSensitiveDenied:"missing-env-gate: set AIWORKER_ADMIN_REVEAL=1 in worker env"}:{},proposal:kD,decisions:XD.listDecisions(I)}},brainAdmissionApprove:async({id:I,decidedBy:x,reason:y})=>{return{decision:"approved",proposal:new eD().approve(I,{decidedBy:x,...y===void 0?{}:{reason:y}})}},brainAdmissionReject:async({id:I,decidedBy:x,reason:y})=>{return{decision:"rejected",proposal:new eD().reject(I,{decidedBy:x,...y===void 0?{}:{reason:y}})}},brainAdmissionApply:async({id:I,decidedBy:x,commit:y,allowSecretBody:XD})=>{let kD={brainHome:u0(U.workerId),commit:y===!0,decidedBy:x};if(XD!==void 0)kD.allowSecretBody=XD;return{outcome:await new eD().apply(I,kD)}},brainArtifactsList:async(I)=>{let x=I.showSensitive!==!0,y={};if(I.scopeId!==void 0)y.scopeId=I.scopeId;if(I.type!==void 0)y.type=I.type;if(I.status!==void 0)y.status=I.status;if(I.minSensitivity!==void 0)y.minSensitivity=I.minSensitivity;if(I.limit!==void 0)y.limit=I.limit;let XD={redactSensitive:x},kD=new a0().list(y,XD);return{count:kD.length,redacted:x,artifacts:kD}},brainArtifactsShow:async({id:I,showSensitive:x})=>{let y=x!==!0,XD=new a0().get(I,{redactSensitive:y});if(XD===null)throw Vw("not-found",`brain artifact "${I}" not found`);return{redacted:y,artifact:XD}},executorTest:async({probe:I})=>{let x=await P0(b());return await r3(U,x.config,{probe:I===!0})},channelTest:async({channel:I,body:x})=>{return await n3(U,I,x??{})},tasksList:async()=>{return{tasks:tH(200)}},tasksCreate:async({prompt:I})=>{return{task:await U.runtime.orchestrator.submitTask(I)}},conversationsList:async()=>{return{conversations:eH(200)}},messagesList:async({conversationId:I})=>{return{messages:DW(I)}}}}),_.success(`[aiworker serve] gateway-client dialing ${T}`)}let w=!1,i=async(I)=>{if(w)return;w=!0,_.info(`[aiworker serve] received ${I}, shutting down`);try{if(F)await F.stop(),F=null}catch(x){_.warn(`[aiworker serve] gateway shutdown failed: ${String(x)}`)}try{K.stop()}catch(x){_.warn(`[aiworker serve] http shutdown failed: ${String(x)}`)}if(M!==null)try{await $9D(M)}catch{}U2.exit(0)};U2.once("SIGTERM",()=>void i("SIGTERM")),U2.once("SIGINT",()=>void i("SIGINT")),await new Promise(()=>{})}function H9D(D,$){let F=`OTP: ${D}`,X=`expires in ${$}s`,J=Math.max(F.length,X.length)+6,G="\u2500".repeat(J),Y=(B)=>`\u2502 ${B}${" ".repeat(J-B.length-4)}\u2502`;return["",`\u250C${G}\u2510`,Y(F),Y(X),`\u2514${G}\u2518`].join(`
2077
- `)}function W9D(D){let $=D.trim();if($===""||$==="0.0.0.0"||$==="*")return"127.0.0.1";if($==="::"||$==="[::]"||$==="0:0:0:0:0:0:0:0")return"::1";if($.startsWith("[")&&$.endsWith("]"))return $.slice(1,-1);return $}function U9D(D){return D.includes(":")?`[${D}]`:D}function Q9D(D){let{command:$,args:F}=B9D(D);try{let X=e3D($,F,{detached:!0,stdio:"ignore"});X.once("error",(J)=>{_.warn(`[aiworker serve] \u6253\u5F00\u6D4F\u89C8\u5668\u5931\u8D25\uFF1A${J instanceof Error?J.message:String(J)}`)}),X.unref(),_.info("[aiworker serve] \u6B63\u5728\u6253\u5F00 worker admin\uFF08bearer \u901A\u8FC7 URL fragment \u5E26\u5165\uFF0CUI \u4F1A\u7ACB\u5373\u6E05\u7406 hash\uFF09")}catch(X){_.warn(`[aiworker serve] \u6253\u5F00\u6D4F\u89C8\u5668\u5931\u8D25\uFF1A${X instanceof Error?X.message:String(X)}`)}}x0();HD();async function aV(D={}){try{let $=V9D(D.status),F=await pD({silent:!0}),X=B9({config:F.hydrated,limit:D.limit,offset:D.offset,...$===void 0?{}:{status:$}});return console.log(JSON.stringify(X,null,2)),0}catch($){return _.error(`[aiworker sessions list] failed: ${$ instanceof Error?$.message:String($)}`),$ instanceof eV?2:1}}async function oV(D){try{let $=await pD({silent:!0}),F=H9(D,$.hydrated);if(F===null)return _.error(`[aiworker sessions show] session not found: ${D}`),1;return console.log(JSON.stringify({session:F},null,2)),0}catch($){return _.error(`[aiworker sessions show] failed: ${$ instanceof Error?$.message:String($)}`),1}}async function tV(D={}){try{await pD({silent:!0});let $=W9({olderThanDays:D.olderThanDays,limit:D.limit,apply:D.apply===!0});return console.log(JSON.stringify($,null,2)),0}catch($){return _.error(`[aiworker sessions maintenance] failed: ${$ instanceof Error?$.message:String($)}`),1}}class eV extends Error{}function V9D(D){if(D===void 0)return;if(D==="active"||D==="closed")return D;throw new eV('status must be "active" or "closed"')}MD();import u1 from"process";var A9D=$2();function $5(D){return D.join(", ")}function K9D(){let D=Math.max(...y1.map(($)=>$.id.length),d0.length);u1.stdout.write(`[aiworker soul] built-in presets
2077
+ `)}function W9D(D){let $=D.trim();if($===""||$==="0.0.0.0"||$==="*")return"127.0.0.1";if($==="::"||$==="[::]"||$==="0:0:0:0:0:0:0:0")return"::1";if($.startsWith("[")&&$.endsWith("]"))return $.slice(1,-1);return $}function U9D(D){return D.includes(":")?`[${D}]`:D}function Q9D(D){let{command:$,args:F}=B9D(D);try{let X=e3D($,F,{detached:!0,stdio:"ignore"});X.once("error",(J)=>{_.warn(`[aiworker serve] \u6253\u5F00\u6D4F\u89C8\u5668\u5931\u8D25\uFF1A${J instanceof Error?J.message:String(J)}`)}),X.unref(),_.info("[aiworker serve] \u6B63\u5728\u6253\u5F00 worker admin\uFF08bearer \u901A\u8FC7 URL fragment \u5E26\u5165\uFF0CUI \u4F1A\u7ACB\u5373\u6E05\u7406 hash\uFF09")}catch(X){_.warn(`[aiworker serve] \u6253\u5F00\u6D4F\u89C8\u5668\u5931\u8D25\uFF1A${X instanceof Error?X.message:String(X)}`)}}x0();HD();async function aV(D={}){try{let $=V9D(D.status),F=await pD({silent:!0}),X=B9({config:F.hydrated,limit:D.limit,offset:D.offset,...$===void 0?{}:{status:$}});return console.log(JSON.stringify(X,null,2)),0}catch($){return _.error(`[aiworker sessions list] failed: ${$ instanceof Error?$.message:String($)}`),$ instanceof eV?2:1}}async function oV(D){try{let $=await pD({silent:!0}),F=H9(D,$.hydrated);if(F===null)return _.error(`[aiworker sessions show] session not found: ${D}`),1;return console.log(JSON.stringify({session:F},null,2)),0}catch($){return _.error(`[aiworker sessions show] failed: ${$ instanceof Error?$.message:String($)}`),1}}async function tV(D={}){try{await pD({silent:!0});let $=W9({olderThanDays:D.olderThanDays,limit:D.limit,apply:D.apply===!0});return console.log(JSON.stringify($,null,2)),0}catch($){return _.error(`[aiworker sessions maintenance] failed: ${$ instanceof Error?$.message:String($)}`),1}}class eV extends Error{}function V9D(D){if(D===void 0)return;if(D==="active"||D==="closed")return D;throw new eV('status must be "active" or "closed"')}ZD();import u1 from"process";var A9D=$2();function $5(D){return D.join(", ")}function K9D(){let D=Math.max(...y1.map(($)=>$.id.length),d0.length);u1.stdout.write(`[aiworker soul] built-in presets
2078
2078
  `);for(let $ of y1)u1.stdout.write(` ${$.id.padEnd(D)} ${$.label} \u2014 ${$.description} packs=${$5($.packs)} toolsets=${$5($.toolsets)}
2079
2079
  `);u1.stdout.write(` ${d0.padEnd(D)} Custom \u2014 \u901A\u8FC7 \`aiworker init --soul customize\` \u4EA4\u4E92\u751F\u6210\u804C\u8D23\u3001\u8FB9\u754C\u548C\u80FD\u529B\u8349\u6848\u3002
2080
2080
  `),u1.stdout.write("\nCapability packs and toolsets are initialized as draft. Run `aiworker doctor` inside a project for static validation status.\n")}async function DA(){return K9D(),0}async function $A(D){if(D===d0)return u1.stdout.write(["[aiworker soul] customize"," type: interactive template"," usage: aiworker init --soul customize"," asks: responsibilities, boundaries, out-of-scope behavior, communication style, risk approval, packs, toolsets"," output: project-local SOUL.md, AGENT.md, policy.json, toolsets.json, capability-packs.json drafts"].join(`
@@ -2125,5 +2125,5 @@ ${D.vagueContextStrategy}
2125
2125
  `)}function Ew(D,$){let F=D.slice(2),X=F.findIndex((G)=>G==="--help"||G==="-h");if(X<0)return null;let J=F.slice(0,X).filter((G)=>!G.startsWith("-"));for(let G=J.length;G>=1;G--){let Y=J.slice(0,G).join(" ");if(YA($,Y)!==null)return Y}return null}function S9D(D,$){if(D.matchedCommand?.name)return T9D($);let F=$[0]??{body:"aiworker"},X=$.find((G)=>G.title==="Options"),J=I9D.map((G)=>({title:G.title,body:w9D(D,G)}));return[F,{title:"\u7528\u6CD5",body:" $ aiworker <command> [options]"},{title:"\u4F7F\u7528\u5F15\u5BFC",body:[" \u65B0\u5EFA\u672C\u5730 worker\uFF1Aaiworker up --soul developer"," \u663E\u5F0F\u89D2\u8272\u5165\u53E3\uFF1Aaiworker worker up --soul developer"," \u67E5\u770B Soul \u80FD\u529B\uFF1Aaiworker soul list -> aiworker soul show developer"," \u67E5\u770B Brain \u72B6\u6001\uFF1Aaiworker brain status -> aiworker brain skills",' \u53EA\u8BD5\u4E00\u6B21\u6D88\u606F\uFF1Aaiworker run --message "..."'," \u7BA1\u7406 fleet\uFF1Aaiworker gateway start -> aiworker fleet pair \u6216 aiworker fleet enroll list",' \u5DF2\u63A5\u5165 fleet \u540E\u5BF9\u8BDD\uFF1Aaiworker fleet chat <workerId> "..."'," \u90E8\u7F72\u3001\u6E05\u7406\u3001\u5DE5\u5177\u5BA1\u6279\u4E0D\u662F\u9996\u6B21\u4F7F\u7528\u5FC5\u9700\u8DEF\u5F84\uFF1B\u9700\u8981\u65F6\u518D\u770B\u9AD8\u7EA7\u7EF4\u62A4\u547D\u4EE4\u3002"].join(`
2126
2126
  `)},...J,{title:"\u66F4\u591A",body:[" aiworker <command> --help \u67E5\u770B\u67D0\u4E2A\u547D\u4EE4\u7684\u53C2\u6570\u548C\u9009\u9879"," aiworker scope \u786E\u8BA4\u5F53\u524D\u547D\u4EE4\u4F1A\u843D\u5230\u54EA\u4E2A AIWORKER_HOME"].join(`
2127
2127
  `)},...X?[{...jw(X),title:"\u9009\u9879"}]:[]]}function T9D(D){return D.map(jw)}function jw(D){let $={Examples:"\u793A\u4F8B",Options:"\u9009\u9879",Usage:"\u7528\u6CD5"};return{...D,...D.title?{title:$[D.title]??D.title}:{},body:D.body.replaceAll(/ \(default: ([^)]+)\)/g,"\uFF08\u9ED8\u8BA4\uFF1A$1\uFF09")}}function w9D(D,$){let F=$.commands.map((J)=>{let G=D.commands.find((Y)=>Y.name===J);return{name:G?.rawName??J,summary:Rw[J]??G?.description??""}}),X=Math.max(...F.map((J)=>J.name.length));return[` ${$.hint}`,"",...F.map((J)=>` ${J.name.padEnd(X)} ${J.summary}`)].join(`
2128
- `)}$0();import k9D from"process";function b9D(D){let $=D.slice(2);if($.length===0)return!1;if($.some((X)=>X==="--help"||X==="-h"||X==="--version"||X==="-v"))return!1;let F=$[0]??"";if(F==="scope"||F==="worker scope"||F==="doctor"||F==="worker doctor"||F==="init"||F==="worker init"||F==="up"||F==="worker up"||F==="gateway install systemd")return!1;if(F.startsWith("executor ")||F.startsWith("worker executor "))return!1;if(F==="soul list"||F==="soul show"||F==="worker soul list"||F==="worker soul show")return!1;return!0}function Nw(D=k9D.argv){if(!b9D(D))return;let $=mD();q6({home:$.home})}var g=AA("aiworker");function yJ(D=k.argv){let $=D.slice(2);if($.includes("--no-open"))return!1;if($.includes("--open"))return!0;return}function ED(D){let $=D?.[0];return typeof $==="number"&&Number.isFinite($)?$:void 0}g.command("init","\u521D\u59CB\u5316 worker.db\u3001\u8EAB\u4EFD\u3001token \u548C\u9ED8\u8BA4\u914D\u7F6E\uFF08\u9ED8\u8BA4\u5F53\u524D\u9879\u76EE `<cwd>/.aiworker/`\uFF1B--global \u4F7F\u7528\u65E7\u7248 ~/.aiworker\uFF09").option("--global","\u521D\u59CB\u5316\u65E7\u7248\u7528\u6237\u7EA7 `~/.aiworker/`\uFF08\u5355\u4E3B\u673A\u5168\u5C40 worker\uFF09").option("--force","\u517C\u5BB9\u65E7\u811A\u672C\uFF1B\u9879\u76EE\u521D\u59CB\u5316\u5141\u8BB8\u5728\u975E git \u76EE\u5F55\u8FD0\u884C\uFF0C\u4E14\u4ECD\u4E0D\u4F1A\u8986\u76D6\u73B0\u6709\u6587\u4EF6").option("--dry-run","\u53EA\u6253\u5370\u521D\u59CB\u5316\u9884\u68C0\u548C\u8BA1\u5212\u5199\u5165\uFF0C\u4E0D\u521B\u5EFA\u6216\u4FEE\u6539\u6587\u4EF6").option("--soul <preset>","\u9879\u76EE\u7EA7\u521D\u59CB\u5316\u4F7F\u7528\u7684 Soul \u9884\u8BBE\uFF1B\u975E\u4EA4\u4E92 brand-new init \u5FC5\u586B\uFF0C\u53EF\u9009 developer/project-manager/devops-sre/product-designer/qa-reviewer/support-operator/finance-ops/hr-recruiting/general-assistant/customize").option("--token-file <path>","\u9996\u6B21\u521D\u59CB\u5316\u65F6\u628A\u5B8C\u6574 bootstrap token \u5199\u5165 chmod 600 \u6587\u4EF6\uFF1B\u9ED8\u8BA4\u5199\u5165 worker local bootstrap-token.txt").option("--show-token","\u9996\u6B21\u521D\u59CB\u5316\u65F6\u5728 stdout \u9AD8\u53EF\u89C1 warning block \u4E2D\u663E\u793A\u5B8C\u6574 bootstrap token").action(async(D)=>{k.exit(await y4({...D.global===!0?{global:!0}:{},...D.force===!0?{force:!0}:{},...D.dryRun===!0?{dryRun:!0}:{},...D.soul===void 0?{}:{soul:D.soul},...D.tokenFile===void 0?{}:{tokenFile:D.tokenFile},...D.showToken===!0?{showToken:!0}:{}}))});g.command("up","\u4E00\u6761\u547D\u4EE4\u521D\u59CB\u5316\u3001\u9A8C\u8BC1\u5E76\u542F\u52A8\u672C\u5730 worker HTTP/admin").option("--soul <preset>","brand-new project \u521D\u59CB\u5316\u4F7F\u7528\u7684 Soul \u9884\u8BBE\uFF1B\u5DF2\u521D\u59CB\u5316\u9879\u76EE\u4E0D\u4F1A\u6D88\u8D39\u6B64\u53C2\u6570").option("--dry-run","\u53EA\u6253\u5370 up \u9636\u6BB5\u548C\u9884\u68C0\u7ED3\u679C\uFF0C\u4E0D\u521D\u59CB\u5316\u3001\u4E0D\u542F\u52A8 HTTP server\u3001\u4E0D\u6253\u5F00\u6D4F\u89C8\u5668").option("--port <n>","\u8986\u76D6 PORT \u73AF\u5883\u53D8\u91CF",{type:[Number]}).option("--host <host>","\u8986\u76D6 AIWORKER_WORKER_HOST\uFF08\u9ED8\u8BA4 127.0.0.1\uFF09").option("--gateway <url>","\u968F HTTP server \u4E00\u8D77\u8FDE\u63A5\u6307\u5B9A gateway WebSocket URL").option("--gateway-token <token>","\u8FDE\u63A5 gateway \u65F6\u4F7F\u7528\u7684 bearer token\uFF08loopback \u53EF\u7701\u7565\uFF09").option("--no-reconnect","\u5173\u95ED gateway-client \u81EA\u52A8\u91CD\u8FDE\uFF08smoke / \u6D4B\u8BD5\u65F6\u4F7F\u7528\uFF09").option("--no-serve-web","\u4E0D\u6302\u8F7D worker bundle \u5230 /admin/*\uFF08\u9ED8\u8BA4\u6302\u8F7D\uFF09").option("--open","\u542F\u52A8\u540E\u6253\u5F00 worker admin").option("--no-open","\u542F\u52A8\u540E\u4E0D\u81EA\u52A8\u6253\u5F00 worker admin").action(async(D)=>{let $=yJ(),F=ED(D.port);k.exit(await JA({...D.soul===void 0?{}:{soul:D.soul},...D.dryRun===!0?{dryRun:!0}:{},...F===void 0?{}:{port:F},...D.host===void 0?{}:{host:D.host},...D.gateway===void 0?{}:{gateway:D.gateway},...D.gatewayToken===void 0?{}:{gatewayToken:D.gatewayToken},...D.reconnect===!1?{gatewayReconnect:!1}:{},...D.serveWeb===!1?{serveWeb:!1}:{},...$===void 0?{}:{open:$},runtimeVersion:k6.version}))});g.command("scope","\u6253\u5370\u5F53\u524D aiworker scope\uFF08user/project/explicit\uFF09\u548C\u5173\u952E\u5E03\u5C40\u6587\u4EF6\u72B6\u6001").action(async()=>{k.exitCode=await LV()});g.command("doctor","\u9759\u6001\u9A8C\u8BC1\u5F53\u524D `.aiworker/` capability manifests\u3001Skill metadata \u548C MCP descriptors").action(async()=>{k.exit(await FV())});g.command("executor mcp add <name>","\u5728 project executor overlay \u4E2D\u58F0\u660E\u4E00\u4E2A MCP server hint\uFF0C\u5199\u5165 `.aiworker/executor-capabilities.json`").option("--engine <engine>","\u76EE\u6807 engine\uFF1Acodex \u6216 claude-code").option("--scope <scope>","MCP \u914D\u7F6E scope\uFF1B\u5F53\u524D\u4EC5\u652F\u6301 project").option("--transport <transport>","MCP transport\uFF1Astdio / streamable-http / sse\uFF1B\u672A\u6307\u5B9A\u65F6\u6309 --url \u63A8\u65AD").option("--url <url>","HTTP/SSE MCP server URL").option("--command <command>","stdio MCP server command").option("--arg <value>","stdio command \u53C2\u6570\uFF1B\u53EF\u91CD\u590D").option("--env <key=value>","\u6295\u5F71\u5230 engine CLI \u7684 env\uFF1Bsecret \u7528 key=secretRef:<ref>\uFF1B\u53EF\u91CD\u590D").option("--header <key=value>","\u6295\u5F71\u5230 engine CLI \u7684 header\uFF1Bsecret \u7528 key=secretRef:<ref>\uFF1B\u53EF\u91CD\u590D").option("--bearer-token-env-var <env>","Codex streamable HTTP MCP bearer token \u73AF\u5883\u53D8\u91CF\u540D").option("--description <text>","MCP server \u63CF\u8FF0").option("--dry-run","\u53EA\u9884\u89C8 manifest \u53D8\u66F4\uFF0C\u4E0D\u5199\u6587\u4EF6").action(async(D,$)=>{k.exit(await YV(D,$))});g.command("executor mcp sync","\u628A project executor overlay best-effort \u6295\u5F71\u5230 engine \u5B98\u65B9 project-scope MCP \u914D\u7F6E\uFF08\u975E effective capability source of truth\uFF09").option("--engine <engine>","\u76EE\u6807 engine\uFF1Acodex \u6216 claude-code").option("--dry-run","\u53EA\u6253\u5370\u5C06\u6267\u884C\u7684 engine CLI \u547D\u4EE4").action(async(D)=>{k.exit(await BV(D))});g.command("executor select","\u663E\u5F0F\u9009\u62E9\u672C\u5730 worker \u7684 task executor\uFF0C\u4E0D\u5199 engine project config").option("--engine <engine>","\u76EE\u6807 task executor engine\uFF0C\u4F8B\u5982 codex / claude-code / http").option("--variant <variant>","executor variant\uFF08\u9ED8\u8BA4 default\uFF09").option("--model-id <model>","\u53EF\u9009 per-request model override").option("--reasoning-id <id>","\u53EF\u9009 reasoning preset").option("--permission-policy <policy>","\u53EF\u9009\u6743\u9650\u7B56\u7565\uFF1Aauto / supervised / plan").option("--if-match <version>","apply \u65F6\u4F7F\u7528\u7684\u4E50\u89C2\u9501\uFF1B\u5F53\u524D config version \u4E0D\u7B49\u4E8E\u6B64\u503C\u5219\u62D2\u7EDD",{type:[Number]}).option("--apply","\u6301\u4E45\u5316 executor \u9009\u62E9\uFF1B\u9ED8\u8BA4\u53EA dry-run").option("--dry-run","\u53EA\u6253\u5370\u5C06\u66F4\u65B0\u7684 executor \u9009\u62E9").action(async(D)=>{k.exit(await WV({...D.apply===!0?{apply:!0}:{},...D.dryRun===!0?{dryRun:!0}:{},...D.engine===void 0?{}:{engine:D.engine},...D.variant===void 0?{}:{variant:D.variant},...D.modelId===void 0?{}:{modelId:D.modelId},...D.reasoningId===void 0?{}:{reasoningId:D.reasoningId},...D.permissionPolicy===void 0?{}:{permissionPolicy:D.permissionPolicy},ifMatch:ED(D.ifMatch)}))});g.command("executor doctor","\u6821\u9A8C project executor overlay \u4E0E engine CLI readiness\uFF08\u4E0D\u63A2\u6D4B user/host ambient capabilities\uFF09").option("--engine <engine>","\u53EA\u68C0\u67E5\u4E00\u4E2A engine\uFF1Acodex \u6216 claude-code").action(async(D)=>{k.exit(await HV(D))});g.command("executor capability list","\u53EA\u8BFB\u5217\u51FA .aiworker/executor-capabilities.json \u4E2D\u7684 project executor overlay \u6761\u76EE").option("--engine <engine>","\u53EA\u5217\u51FA\u4E00\u4E2A engine\uFF1Acodex \u6216 claude-code").action(async(D)=>{k.exit(await UV(D))});g.command("executor capability show <ref>","\u53EA\u8BFB\u67E5\u770B\u5355\u6761 project executor overlay descriptor\uFF0Cref \u5F62\u5982 codex.mcp.context7").action(async(D)=>{k.exit(await QV(D))});g.command("soul list","\u5217\u51FA\u5185\u7F6E Soul \u9884\u8BBE\u53CA\u5176\u58F0\u660E\u80FD\u529B").action(async()=>{k.exit(await DA())});g.command("soul show <preset>","\u67E5\u770B\u67D0\u4E2A Soul \u9884\u8BBE\u7684\u804C\u8D23\u3001\u8FB9\u754C\u3001\u80FD\u529B\u8349\u6848\u548C\u98CE\u9669\u7B56\u7565").action(async(D)=>{k.exit(await $A(D))});g.command("brain status","\u53EA\u8BFB\u8BCA\u65AD\u672C\u5730 worker runtime brain source\u3001\u5199\u5165\u76EE\u6807\u3001decision pipeline\uFF08heuristic/LLM\u3001observe_only/enforced\u3001recent fallback\uFF09\u548C\u5065\u5EB7\u72B6\u6001").action(async()=>{k.exit(await uQ())});g.command("brain skills","\u53EA\u8BFB\u5217\u51FA\u672C\u5730 runtime brain \u66B4\u9732\u7684 brain skill").action(async()=>{k.exit(await mQ())});g.command("brain memories","\u53EA\u8BFB\u5217\u51FA\u6216\u641C\u7D22\u672C\u5730 runtime brain memory").option("--query <text>","\u641C\u7D22 memory \u5185\u5BB9\u3001\u6807\u9898\u6216 metadata").option("--limit <n>","\u6700\u591A\u8FD4\u56DE memory \u6570\u91CF\uFF081-200\uFF0C\u9ED8\u8BA4 50\uFF09",{type:[Number]}).action(async(D)=>{k.exit(await cQ({limit:ED(D.limit),...D.query===void 0?{}:{query:D.query}}))});g.command("brain artifacts list","\u53EA\u8BFB\u5217\u51FA\u672C\u5730 worker scope \u6CE8\u518C\u7684 brain artifact").option("--scope <id>","\u6309 scope id \u8FC7\u6EE4").option("--type <id>","\u6309 artifact type \u8FC7\u6EE4").option("--status <s>","active / archived / removed").option("--min-sensitivity <s>","public / internal / confidential / secret").option("--limit <n>","\u6700\u591A\u8FD4\u56DE artifact \u6570\u91CF\uFF081-200\uFF0C\u9ED8\u8BA4 50\uFF09",{type:[Number]}).option("--show-sensitive","\u4E0D\u518D redact confidential / secret artifact \u7684 ref / hash").action(async(D)=>{k.exit(await pQ({...D.scope===void 0?{}:{scopeId:D.scope},...D.type===void 0?{}:{type:D.type},...D.status===void 0?{}:{status:D.status},...D.minSensitivity===void 0?{}:{minSensitivity:D.minSensitivity},limit:ED(D.limit),...D.showSensitive===void 0?{}:{showSensitive:D.showSensitive}}))});g.command("brain artifacts show <id>","\u53EA\u8BFB\u67E5\u770B\u5355\u4E2A brain artifact").option("--show-sensitive","\u4E0D\u518D redact confidential / secret artifact \u7684 ref / hash").action(async(D,$)=>{k.exit(await dQ(D,{...$.showSensitive===void 0?{}:{showSensitive:$.showSensitive}}))});g.command("brain admission list","\u5217\u51FA\u672C\u5730 worker \u7684 brain admission proposal").option("--status <s>","pending / approved / rejected / applied / failed").option("--kind <k>","\u6309 proposal kind \u8FC7\u6EE4\uFF08\u6765\u81EA Soul.schemaPack.proposalTypes\uFF09").option("--scope <id>","\u6309 scope id \u8FC7\u6EE4").option("--soul <id>","\u6309 Soul id \u8FC7\u6EE4").option("--limit <n>","\u6700\u591A\u8FD4\u56DE proposal \u6570\u91CF\uFF081-200\uFF0C\u9ED8\u8BA4 50\uFF09",{type:[Number]}).option("--show-sensitive","\u4E0D\u518D redact evidence / payload \u4E2D secret-like \u5B57\u6BB5").action(async(D)=>{k.exit(await lQ({...D.status===void 0?{}:{status:D.status},...D.kind===void 0?{}:{kind:D.kind},...D.scope===void 0?{}:{scopeId:D.scope},...D.soul===void 0?{}:{soulId:D.soul},limit:ED(D.limit),...D.showSensitive===void 0?{}:{showSensitive:D.showSensitive}}))});g.command("brain admission show <id>","\u53EA\u8BFB\u67E5\u770B\u5355\u4E2A admission proposal \u4E0E decision \u5386\u53F2").option("--show-sensitive","\u4E0D\u518D redact evidence / payload \u4E2D secret-like \u5B57\u6BB5").action(async(D,$)=>{k.exit(await iQ(D,{...$.showSensitive===void 0?{}:{showSensitive:$.showSensitive}}))});g.command("brain admission approve <id>","\u628A pending proposal \u6807\u8BB0\u4E3A approved\uFF08\u4E0D\u4F1A\u81EA\u52A8 apply\uFF09").option("--decided-by <name>","\u8BB0\u5F55\u51B3\u7B56\u64CD\u4F5C\u8005\uFF08\u5FC5\u586B\uFF09").option("--reason <text>","\u5BA1\u6279\u7406\u7531").action(async(D,$)=>{if($.decidedBy===void 0||$.decidedBy==="")_.error("[aiworker brain admission approve] --decided-by is required"),k.exit(2);k.exit(await nQ(D,{decidedBy:$.decidedBy,...$.reason===void 0?{}:{reason:$.reason}}))});g.command("brain admission reject <id>","\u628A pending proposal \u6807\u8BB0\u4E3A rejected").option("--decided-by <name>","\u8BB0\u5F55\u51B3\u7B56\u64CD\u4F5C\u8005\uFF08\u5FC5\u586B\uFF09").option("--reason <text>","\u62D2\u7EDD\u7406\u7531").action(async(D,$)=>{if($.decidedBy===void 0||$.decidedBy==="")_.error("[aiworker brain admission reject] --decided-by is required"),k.exit(2);k.exit(await rQ(D,{decidedBy:$.decidedBy,...$.reason===void 0?{}:{reason:$.reason}}))});g.command("brain admission apply <id>","\u6267\u884C approved proposal\uFF08\u9ED8\u8BA4 dry-run\uFF1BMVP \u4EC5\u652F\u6301 memory-add\uFF09").option("--decided-by <name>","\u8BB0\u5F55\u51B3\u7B56\u64CD\u4F5C\u8005\uFF08\u5FC5\u586B\uFF09").option("--commit","\u771F\u6B63\u5199 filesystem\uFF1B\u9ED8\u8BA4 dry-run \u4EC5\u6253\u5370 diff").option("--allow-secret-body <mode>","BUG-055 secret-body \u5904\u7406\u7B56\u7565\uFF1Ablock | redact | raw\uFF08\u9ED8\u8BA4 block\uFF09").action(async(D,$)=>{if($.decidedBy===void 0||$.decidedBy==="")_.error("[aiworker brain admission apply] --decided-by is required"),k.exit(2);if($.allowSecretBody!==void 0&&$.allowSecretBody!=="block"&&$.allowSecretBody!=="redact"&&$.allowSecretBody!=="raw")_.error(`[aiworker brain admission apply] --allow-secret-body must be one of block | redact | raw, got "${$.allowSecretBody}"`),k.exit(2);k.exit(await oQ(D,{decidedBy:$.decidedBy,...$.commit===void 0?{}:{commit:$.commit},...$.allowSecretBody===void 0?{}:{allowSecretBody:$.allowSecretBody}}))});g.command("brain admission propose","\u63D0\u4EA4\u4E00\u6761 pending brain admission proposal\uFF08\u9700 operator \u540E\u7EED approve/apply\uFF09").option("--id <id>","proposal id\uFF08\u5FC5\u586B\uFF0Ckebab-case\uFF09").option("--kind <kind>","proposal kind\uFF08\u9ED8\u8BA4 memory-add\uFF09").option("--target <text>","target \u8DEF\u5F84\u6216 artifact id\uFF08\u5FC5\u586B\uFF09").option("--summary <text>","proposal \u6458\u8981\uFF08\u5FC5\u586B\uFF09").option("--rollback <text>","rollback \u63CF\u8FF0\uFF08\u5FC5\u586B\uFF09").option("--soul <id>","soul id\uFF08\u5FC5\u586B\uFF09").option("--scope <id>","scope id\uFF08\u53EF\u9009\uFF09").option("--risk <level>","low | medium | high\uFF08\u9ED8\u8BA4 high\uFF09").option("--confidence <n>","0..1 \u4E4B\u95F4\u7684\u5C0F\u6570\uFF08\u9ED8\u8BA4 0.5\uFF09",{type:[Number]}).option("--evidence <path>","\u4ECE JSON \u6587\u4EF6\u8BFB\u53D6 evidence \u6570\u7EC4\uFF08\u53EF\u9009\uFF09").option("--payload <path>","\u4ECE JSON \u6587\u4EF6\u8BFB\u53D6 payload \u5BF9\u8C61\uFF08\u53EF\u9009\uFF09").action(async(D)=>{k.exit(await aQ({...D.id===void 0?{}:{id:D.id},...D.kind===void 0?{}:{kind:D.kind},...D.target===void 0?{}:{target:D.target},...D.summary===void 0?{}:{summary:D.summary},...D.rollback===void 0?{}:{rollback:D.rollback},...D.soul===void 0?{}:{soulId:D.soul},...D.scope===void 0?{}:{scopeId:D.scope},...D.risk===void 0?{}:{risk:D.risk},confidence:ED(D.confidence),...D.evidence===void 0?{}:{evidencePath:D.evidence},...D.payload===void 0?{}:{payloadPath:D.payload}}))});g.command("brain brief","\u628A canonical brain\uFF08AGENT/SOUL/USER/MEMORY/ROLLUP + scope manifest + Soul + artifacts\uFF09\u6295\u5F71\u6210 task-specific brief\uFF1Bpreview-only").option("--task <text>","\u4EFB\u52A1\u63CF\u8FF0\uFF08\u5FC5\u586B\uFF09").option("--scope <id>","\u6307\u5B9A scope id\uFF08\u9ED8\u8BA4\u4ECE .aiworker/scope.json \u8BFB\u53D6\uFF09").option("--soul <id>","\u6307\u5B9A Soul id\uFF08\u9ED8\u8BA4 scope manifest \u7684 primarySoul\uFF09").option("--artifact <id>","\u5173\u8054\u7684 brain artifact id\uFF1B\u53EF\u91CD\u590D\u51FA\u73B0",{type:[String]}).option("--executor <engine>","\u8BB0\u5F55\u76EE\u6807 executor engine \u63D0\u793A\uFF0C\u4E0D\u5B9E\u9645\u542F\u52A8 executor").option("--token-budget <n>","\u9ED8\u8BA4 4000\uFF1B\u8303\u56F4 200..50000",{type:[Number]}).action(async(D)=>{if(D.task===void 0||D.task.trim()==="")_.error("[aiworker brain brief] --task is required"),k.exit(2);k.exit(await sQ({task:D.task,...D.scope===void 0?{}:{scopeId:D.scope},...D.soul===void 0?{}:{soulId:D.soul},...D.artifact===void 0?{}:{artifactRefs:D.artifact},...D.executor===void 0?{}:{executor:D.executor},tokenBudget:ED(D.tokenBudget)}))});g.command("run","\u4E0D\u542F\u52A8 HTTP server\uFF0C\u76F4\u63A5\u7ED9 orchestrator \u6295\u9012\u4E00\u6761\u6D88\u606F").option("--message <text>","\u8981\u6295\u9012\u7684\u7528\u6237\u6D88\u606F\uFF08\u5FC5\u586B\uFF09").option("--chat-id <id>",'\u5408\u6210 chat id\uFF08\u9ED8\u8BA4 "cli:stdin"\uFF09').option("--dry-run","\u5B8C\u6210 bootstrap\uFF0C\u4F46\u4E0D\u771F\u6B63\u6295\u9012 envelope").option("--timeout-ms <n>","\u7B49\u5F85\u7EC8\u6001\u4E8B\u4EF6\u7684\u6700\u957F\u65F6\u95F4\uFF0C\u5355\u4F4D\u6BEB\u79D2\uFF08\u9ED8\u8BA4 120000\uFF09",{type:[Number]}).action(async(D)=>{let $=await OV({message:D.message,chatId:D.chatId,dryRun:D.dryRun,timeoutMs:ED(D.timeoutMs)});k.exit($)});g.command("serve","\u542F\u52A8 worker HTTP server\uFF08\u7B49\u4EF7\u4E8E AIWORKER_MODE=worker\uFF09").option("--port <n>","\u8986\u76D6 PORT \u73AF\u5883\u53D8\u91CF",{type:[Number]}).option("--host <host>","\u8986\u76D6 AIWORKER_WORKER_HOST\uFF08\u9ED8\u8BA4 127.0.0.1\uFF09").option("--gateway <url>","\u968F HTTP server \u4E00\u8D77\u8FDE\u63A5\u6307\u5B9A gateway WebSocket URL").option("--gateway-token <token>","\u8FDE\u63A5 gateway \u65F6\u4F7F\u7528\u7684 bearer token\uFF08loopback \u53EF\u7701\u7565\uFF09").option("--no-reconnect","\u5173\u95ED gateway-client \u81EA\u52A8\u91CD\u8FDE\uFF08smoke / \u6D4B\u8BD5\u65F6\u4F7F\u7528\uFF09").option("--no-serve-web","\u4E0D\u6302\u8F7D worker bundle \u5230 /admin/*\uFF08\u9ED8\u8BA4\u6302\u8F7D\uFF09").option("--open","\u542F\u52A8\u540E\u6253\u5F00 worker admin").option("--no-open","\u542F\u52A8\u540E\u4E0D\u81EA\u52A8\u6253\u5F00 worker admin").option("--pid-file <path>","TODO-016\uFF1Adaemon pid \u5199\u5165\u6307\u5B9A\u8DEF\u5F84\uFF08\u5173\u95ED\u65F6\u6E05\u7406\uFF09\uFF1B\u9002\u5408 setsid \u5305\u88C5\u4E0B\u7684\u8FDB\u7A0B\u8DDF\u8E2A").action(async(D)=>{let $={},F=ED(D.port);if(F!==void 0)$.port=F;if(D.host!==void 0)$.host=D.host;if(D.gateway!==void 0)$.gateway=D.gateway;if(D.gatewayToken!==void 0)$.gatewayToken=D.gatewayToken;if(D.reconnect===!1)$.gatewayReconnect=!1;if(D.serveWeb===!1)$.serveWeb=!1;if(D.pidFile!==void 0&&D.pidFile.trim().length>0)$.pidFile=D.pidFile.trim();let X=yJ();if(X!==void 0)$.open=X;$.runtimeVersion=k6.version,await D5($)});g.command("config show","\u4EE5 JSON \u6253\u5370\u672C\u5730 worker \u914D\u7F6E\uFF08\u7F3A\u5931\u65F6\u4F1A\u521D\u59CB\u5316\u672C\u5730 worker \u72B6\u6001\uFF09").action(async()=>{k.exit(await tQ())});g.command("config set <json>","\u66FF\u6362\u672C\u5730 worker \u914D\u7F6E").option("--if-match <version>","\u4E50\u89C2\u9501\uFF1B\u5F53\u524D\u5B58\u50A8 version \u4E0D\u7B49\u4E8E\u6B64\u503C\u5219\u62D2\u7EDD",{type:[Number]}).action(async(D,$)=>{k.exit(await eQ({json:D,ifMatch:ED($.ifMatch)}))});g.command("token rotate","\u751F\u6210\u65B0\u7684 bearer token\uFF1B\u660E\u6587\u53EA\u6253\u5370\u4E00\u6B21").action(async()=>{k.exit(await FA())});g.command("approvals list","\u5217\u51FA\u5F53\u524D worker \u8FDB\u7A0B\u5185\u6302\u8D77\u7684\u5DE5\u5177\u5BA1\u6279").action(async()=>{k.exit(await hQ())});g.command("approvals grant <taskId> <toolCallId>","\u89E3\u9501\u67D0\u6761\u6302\u8D77\u7684\u5DE5\u5177\u5BA1\u6279").option("--deny","\u4E0B\u53D1\u62D2\u7EDD\u51B3\u7B56\uFF1B\u9ED8\u8BA4\u5141\u8BB8").action(async(D,$,F)=>{k.exit(await vQ({taskId:D,toolCallId:$,...F.deny===void 0?{}:{deny:F.deny}}))});g.command("schedule list","\u5217\u51FA\u672C\u5730 worker.db \u4E2D\u6301\u4E45\u5316\u7684\u6240\u6709 cron \u4EFB\u52A1").action(async()=>{k.exit(await jV())});g.command("schedule add","\u5411\u672C\u5730 worker.db \u65B0\u589E cron \u4EFB\u52A1\uFF08\u4F1A\u5148\u6821\u9A8C\u8868\u8FBE\u5F0F\uFF09").option("--expression <expr>","\u4E94\u6BB5 cron \u8868\u8FBE\u5F0F\uFF08\u5FC5\u586B\uFF09").option("--prompt <text>","\u4EFB\u52A1\u89E6\u53D1\u65F6\u5408\u6210\u7684 envelope.text\uFF08\u5FC5\u586B\uFF09").option("--channel <channel>","channel \u7C7B\u578B\uFF1Aweb/line/telegram/lark/whatsapp\uFF08\u5FC5\u586B\uFF09").option("--chat-id <id>","\u4EFB\u52A1\u89E6\u53D1\u65F6\u4F7F\u7528\u7684 chatId\uFF08\u5FC5\u586B\uFF09").option("--account-id <id>","\u8986\u76D6 accountId\uFF08\u9ED8\u8BA4 sys:cron\uFF09").option("--disabled","\u4EE5 enabled=false \u4FDD\u5B58\uFF08\u9ED8\u8BA4 enabled=true\uFF09").action(async(D)=>{if(!D.expression||!D.prompt||!D.channel||!D.chatId)_.error("[aiworker schedule add] requires --expression, --prompt, --channel, --chat-id"),k.exit(2);let $=await NV({expression:D.expression,prompt:D.prompt,channel:D.channel,chatId:D.chatId,...D.accountId===void 0?{}:{accountId:D.accountId},...D.disabled===!0?{enabled:!1}:{}});k.exit($)});g.command("schedule remove <jobId>","\u4ECE\u672C\u5730 worker.db \u5220\u9664\u4E00\u6761 cron \u4EFB\u52A1").action(async(D)=>{k.exit(await PV(D))});g.command("sessions list","\u4ECE worker.db \u5217\u51FA\u672C\u5730 worker \u4F1A\u8BDD\u72B6\u6001").option("--limit <n>","\u6700\u591A\u8FD4\u56DE\u4F1A\u8BDD\u6570\uFF081-200\uFF0C\u9ED8\u8BA4 50\uFF09",{type:[Number]}).option("--offset <n>","\u5206\u9875\u504F\u79FB\u91CF\uFF08\u9ED8\u8BA4 0\uFF09",{type:[Number]}).option("--status <status>","\u6309\u72B6\u6001\u8FC7\u6EE4\uFF1Aactive \u6216 closed").action(async(D)=>{k.exit(await aV({limit:ED(D.limit),offset:ED(D.offset),...D.status===void 0?{}:{status:D.status}}))});g.command("sessions show <sessionKey>","\u6309 session key \u67E5\u770B\u4E00\u4E2A\u672C\u5730 worker \u4F1A\u8BDD\u72B6\u6001").action(async(D)=>{k.exit(await oV(D))});g.command("sessions maintenance","\u8BD5\u7B97\u5DF2\u5173\u95ED transcript \u6E05\u7406\uFF1B\u5E26 --apply \u624D\u4F1A\u5B9E\u9645\u5220\u9664").option("--older-than-days <n>","\u5DF2\u5173\u95ED transcript \u4FDD\u7559\u5929\u6570\uFF08\u9ED8\u8BA4 30\uFF09",{type:[Number]}).option("--limit <n>","\u6700\u591A\u8BD5\u7B97/\u6E05\u7406 transcript \u6570\u91CF\uFF081-200\uFF0C\u9ED8\u8BA4 50\uFF09",{type:[Number]}).option("--apply","\u5B9E\u9645\u5220\u9664\u8BA1\u5212\u5185\u7684\u5DF2\u5173\u95ED transcript\uFF0C\u800C\u4E0D\u662F dry-run").action(async(D)=>{k.exit(await tV({olderThanDays:ED(D.olderThanDays),limit:ED(D.limit),...D.apply===void 0?{}:{apply:D.apply}}))});g.command("worker init","\u521D\u59CB\u5316 worker.db\u3001\u8EAB\u4EFD\u3001token \u548C\u9ED8\u8BA4\u914D\u7F6E\uFF08\u9ED8\u8BA4\u5F53\u524D\u9879\u76EE `<cwd>/.aiworker/`\uFF1B--global \u4F7F\u7528\u65E7\u7248 ~/.aiworker\uFF09").option("--global","\u521D\u59CB\u5316\u65E7\u7248\u7528\u6237\u7EA7 `~/.aiworker/`\uFF08\u5355\u4E3B\u673A\u5168\u5C40 worker\uFF09").option("--force","\u9879\u76EE\u521D\u59CB\u5316\u5141\u8BB8\u5728\u975E git \u76EE\u5F55\u8FD0\u884C\uFF0C\u4E14\u4ECD\u4E0D\u4F1A\u8986\u76D6\u73B0\u6709\u6587\u4EF6").option("--dry-run","\u53EA\u6253\u5370\u521D\u59CB\u5316\u9884\u68C0\u548C\u8BA1\u5212\u5199\u5165\uFF0C\u4E0D\u521B\u5EFA\u6216\u4FEE\u6539\u6587\u4EF6").option("--soul <preset>","\u9879\u76EE\u7EA7\u521D\u59CB\u5316\u4F7F\u7528\u7684 Soul \u9884\u8BBE\uFF1B\u975E\u4EA4\u4E92 brand-new init \u5FC5\u586B\uFF0C\u53EF\u9009 developer/project-manager/devops-sre/product-designer/qa-reviewer/support-operator/finance-ops/hr-recruiting/general-assistant/customize").option("--token-file <path>","\u9996\u6B21\u521D\u59CB\u5316\u65F6\u628A\u5B8C\u6574 bootstrap token \u5199\u5165 chmod 600 \u6587\u4EF6\uFF1B\u9ED8\u8BA4\u5199\u5165 worker local bootstrap-token.txt").option("--show-token","\u9996\u6B21\u521D\u59CB\u5316\u65F6\u5728 stdout \u9AD8\u53EF\u89C1 warning block \u4E2D\u663E\u793A\u5B8C\u6574 bootstrap token").action(async(D)=>{k.exit(await y4({...D.global===!0?{global:!0}:{},...D.force===!0?{force:!0}:{},...D.dryRun===!0?{dryRun:!0}:{},...D.soul===void 0?{}:{soul:D.soul},...D.tokenFile===void 0?{}:{tokenFile:D.tokenFile},...D.showToken===!0?{showToken:!0}:{}}))});g.command("worker up","\u4E00\u6761\u547D\u4EE4\u521D\u59CB\u5316\u3001\u9A8C\u8BC1\u5E76\u542F\u52A8\u672C\u5730 worker HTTP/admin").option("--soul <preset>","brand-new project \u521D\u59CB\u5316\u4F7F\u7528\u7684 Soul \u9884\u8BBE\uFF1B\u5DF2\u521D\u59CB\u5316\u9879\u76EE\u4E0D\u4F1A\u6D88\u8D39\u6B64\u53C2\u6570").option("--dry-run","\u53EA\u6253\u5370 up \u9636\u6BB5\u548C\u9884\u68C0\u7ED3\u679C\uFF0C\u4E0D\u521D\u59CB\u5316\u3001\u4E0D\u542F\u52A8 HTTP server\u3001\u4E0D\u6253\u5F00\u6D4F\u89C8\u5668").option("--port <n>","\u8986\u76D6 PORT \u73AF\u5883\u53D8\u91CF",{type:[Number]}).option("--host <host>","\u8986\u76D6 AIWORKER_WORKER_HOST\uFF08\u9ED8\u8BA4 127.0.0.1\uFF09").option("--gateway <url>","\u968F HTTP server \u4E00\u8D77\u8FDE\u63A5\u6307\u5B9A gateway WebSocket URL").option("--gateway-token <token>","\u8FDE\u63A5 gateway \u65F6\u4F7F\u7528\u7684 bearer token\uFF08loopback \u53EF\u7701\u7565\uFF09").option("--no-reconnect","\u5173\u95ED gateway-client \u81EA\u52A8\u91CD\u8FDE\uFF08smoke / \u6D4B\u8BD5\u65F6\u4F7F\u7528\uFF09").option("--no-serve-web","\u4E0D\u6302\u8F7D worker bundle \u5230 /admin/*\uFF08\u9ED8\u8BA4\u6302\u8F7D\uFF09").option("--open","\u542F\u52A8\u540E\u6253\u5F00 worker admin").option("--no-open","\u542F\u52A8\u540E\u4E0D\u81EA\u52A8\u6253\u5F00 worker admin").action(async(D)=>{let $=yJ(),F=ED(D.port);k.exit(await JA({...D.soul===void 0?{}:{soul:D.soul},...D.dryRun===!0?{dryRun:!0}:{},...F===void 0?{}:{port:F},...D.host===void 0?{}:{host:D.host},...D.gateway===void 0?{}:{gateway:D.gateway},...D.gatewayToken===void 0?{}:{gatewayToken:D.gatewayToken},...D.reconnect===!1?{gatewayReconnect:!1}:{},...D.serveWeb===!1?{serveWeb:!1}:{},...$===void 0?{}:{open:$},runtimeVersion:k6.version}))});g.command("worker scope","\u6253\u5370\u5F53\u524D aiworker scope\uFF08user/project/explicit\uFF09\u548C\u5173\u952E\u5E03\u5C40\u6587\u4EF6\u72B6\u6001").action(async()=>{k.exitCode=await LV()});g.command("worker doctor","\u9759\u6001\u9A8C\u8BC1\u5F53\u524D `.aiworker/` capability manifests\u3001Skill metadata \u548C MCP descriptors").action(async()=>{k.exit(await FV())});g.command("worker executor mcp add <name>","\u5728 project executor overlay \u4E2D\u58F0\u660E\u4E00\u4E2A MCP server hint\uFF0C\u5199\u5165 `.aiworker/executor-capabilities.json`").option("--engine <engine>","\u76EE\u6807 engine\uFF1Acodex \u6216 claude-code").option("--scope <scope>","MCP \u914D\u7F6E scope\uFF1B\u5F53\u524D\u4EC5\u652F\u6301 project").option("--transport <transport>","MCP transport\uFF1Astdio / streamable-http / sse\uFF1B\u672A\u6307\u5B9A\u65F6\u6309 --url \u63A8\u65AD").option("--url <url>","HTTP/SSE MCP server URL").option("--command <command>","stdio MCP server command").option("--arg <value>","stdio command \u53C2\u6570\uFF1B\u53EF\u91CD\u590D").option("--env <key=value>","\u6295\u5F71\u5230 engine CLI \u7684 env\uFF1Bsecret \u7528 key=secretRef:<ref>\uFF1B\u53EF\u91CD\u590D").option("--header <key=value>","\u6295\u5F71\u5230 engine CLI \u7684 header\uFF1Bsecret \u7528 key=secretRef:<ref>\uFF1B\u53EF\u91CD\u590D").option("--bearer-token-env-var <env>","Codex streamable HTTP MCP bearer token \u73AF\u5883\u53D8\u91CF\u540D").option("--description <text>","MCP server \u63CF\u8FF0").option("--dry-run","\u53EA\u9884\u89C8 manifest \u53D8\u66F4\uFF0C\u4E0D\u5199\u6587\u4EF6").action(async(D,$)=>{k.exit(await YV(D,$))});g.command("worker executor mcp sync","\u628A project executor overlay best-effort \u6295\u5F71\u5230 engine \u5B98\u65B9 project-scope MCP \u914D\u7F6E\uFF08\u975E effective capability source of truth\uFF09").option("--engine <engine>","\u76EE\u6807 engine\uFF1Acodex \u6216 claude-code").option("--dry-run","\u53EA\u6253\u5370\u5C06\u6267\u884C\u7684 engine CLI \u547D\u4EE4").action(async(D)=>{k.exit(await BV(D))});g.command("worker executor select","\u663E\u5F0F\u9009\u62E9\u672C\u5730 worker \u7684 task executor\uFF0C\u4E0D\u5199 engine project config").option("--engine <engine>","\u76EE\u6807 task executor engine\uFF0C\u4F8B\u5982 codex / claude-code / http").option("--variant <variant>","executor variant\uFF08\u9ED8\u8BA4 default\uFF09").option("--model-id <model>","\u53EF\u9009 per-request model override").option("--reasoning-id <id>","\u53EF\u9009 reasoning preset").option("--permission-policy <policy>","\u53EF\u9009\u6743\u9650\u7B56\u7565\uFF1Aauto / supervised / plan").option("--if-match <version>","apply \u65F6\u4F7F\u7528\u7684\u4E50\u89C2\u9501\uFF1B\u5F53\u524D config version \u4E0D\u7B49\u4E8E\u6B64\u503C\u5219\u62D2\u7EDD",{type:[Number]}).option("--apply","\u6301\u4E45\u5316 executor \u9009\u62E9\uFF1B\u9ED8\u8BA4\u53EA dry-run").option("--dry-run","\u53EA\u6253\u5370\u5C06\u66F4\u65B0\u7684 executor \u9009\u62E9").action(async(D)=>{k.exit(await WV({...D.apply===!0?{apply:!0}:{},...D.dryRun===!0?{dryRun:!0}:{},...D.engine===void 0?{}:{engine:D.engine},...D.variant===void 0?{}:{variant:D.variant},...D.modelId===void 0?{}:{modelId:D.modelId},...D.reasoningId===void 0?{}:{reasoningId:D.reasoningId},...D.permissionPolicy===void 0?{}:{permissionPolicy:D.permissionPolicy},ifMatch:ED(D.ifMatch)}))});g.command("worker executor doctor","\u6821\u9A8C project executor overlay \u4E0E engine CLI readiness\uFF08\u4E0D\u63A2\u6D4B user/host ambient capabilities\uFF09").option("--engine <engine>","\u53EA\u68C0\u67E5\u4E00\u4E2A engine\uFF1Acodex \u6216 claude-code").action(async(D)=>{k.exit(await HV(D))});g.command("worker executor capability list","\u53EA\u8BFB\u5217\u51FA .aiworker/executor-capabilities.json \u4E2D\u7684 project executor overlay \u6761\u76EE").option("--engine <engine>","\u53EA\u5217\u51FA\u4E00\u4E2A engine\uFF1Acodex \u6216 claude-code").action(async(D)=>{k.exit(await UV(D))});g.command("worker executor capability show <ref>","\u53EA\u8BFB\u67E5\u770B\u5355\u6761 project executor overlay descriptor\uFF0Cref \u5F62\u5982 codex.mcp.context7").action(async(D)=>{k.exit(await QV(D))});g.command("worker soul list","\u5217\u51FA\u5185\u7F6E Soul \u9884\u8BBE\u53CA\u5176\u58F0\u660E\u80FD\u529B").action(async()=>{k.exit(await DA())});g.command("worker soul show <preset>","\u67E5\u770B\u67D0\u4E2A Soul \u9884\u8BBE\u7684\u804C\u8D23\u3001\u8FB9\u754C\u3001\u80FD\u529B\u8349\u6848\u548C\u98CE\u9669\u7B56\u7565").action(async(D)=>{k.exit(await $A(D))});g.command("worker brain status","\u53EA\u8BFB\u8BCA\u65AD\u672C\u5730 worker runtime brain source\u3001\u5199\u5165\u76EE\u6807\u548C\u5065\u5EB7\u72B6\u6001").action(async()=>{k.exit(await uQ())});g.command("worker brain skills","\u53EA\u8BFB\u5217\u51FA\u672C\u5730 runtime brain \u66B4\u9732\u7684 brain skill").action(async()=>{k.exit(await mQ())});g.command("worker brain memories","\u53EA\u8BFB\u5217\u51FA\u6216\u641C\u7D22\u672C\u5730 runtime brain memory").option("--query <text>","\u641C\u7D22 memory \u5185\u5BB9\u3001\u6807\u9898\u6216 metadata").option("--limit <n>","\u6700\u591A\u8FD4\u56DE memory \u6570\u91CF\uFF081-200\uFF0C\u9ED8\u8BA4 50\uFF09",{type:[Number]}).action(async(D)=>{k.exit(await cQ({limit:ED(D.limit),...D.query===void 0?{}:{query:D.query}}))});g.command("worker brain artifacts list","\u53EA\u8BFB\u5217\u51FA\u672C\u5730 worker scope \u6CE8\u518C\u7684 brain artifact").option("--scope <id>","\u6309 scope id \u8FC7\u6EE4").option("--type <id>","\u6309 artifact type \u8FC7\u6EE4").option("--status <s>","active / archived / removed").option("--min-sensitivity <s>","public / internal / confidential / secret").option("--limit <n>","\u6700\u591A\u8FD4\u56DE artifact \u6570\u91CF\uFF081-200\uFF0C\u9ED8\u8BA4 50\uFF09",{type:[Number]}).option("--show-sensitive","\u4E0D\u518D redact confidential / secret artifact \u7684 ref / hash").action(async(D)=>{k.exit(await pQ({...D.scope===void 0?{}:{scopeId:D.scope},...D.type===void 0?{}:{type:D.type},...D.status===void 0?{}:{status:D.status},...D.minSensitivity===void 0?{}:{minSensitivity:D.minSensitivity},limit:ED(D.limit),...D.showSensitive===void 0?{}:{showSensitive:D.showSensitive}}))});g.command("worker brain artifacts show <id>","\u53EA\u8BFB\u67E5\u770B\u5355\u4E2A brain artifact").option("--show-sensitive","\u4E0D\u518D redact confidential / secret artifact \u7684 ref / hash").action(async(D,$)=>{k.exit(await dQ(D,{...$.showSensitive===void 0?{}:{showSensitive:$.showSensitive}}))});g.command("worker brain admission list","\u5217\u51FA\u672C\u5730 worker \u7684 brain admission proposal").option("--status <s>","pending / approved / rejected / applied / failed").option("--kind <k>","\u6309 proposal kind \u8FC7\u6EE4").option("--scope <id>","\u6309 scope id \u8FC7\u6EE4").option("--soul <id>","\u6309 Soul id \u8FC7\u6EE4").option("--limit <n>","\u6700\u591A\u8FD4\u56DE proposal \u6570\u91CF\uFF081-200\uFF0C\u9ED8\u8BA4 50\uFF09",{type:[Number]}).option("--show-sensitive","\u4E0D\u518D redact evidence / payload \u4E2D secret-like \u5B57\u6BB5").action(async(D)=>{k.exit(await lQ({...D.status===void 0?{}:{status:D.status},...D.kind===void 0?{}:{kind:D.kind},...D.scope===void 0?{}:{scopeId:D.scope},...D.soul===void 0?{}:{soulId:D.soul},limit:ED(D.limit),...D.showSensitive===void 0?{}:{showSensitive:D.showSensitive}}))});g.command("worker brain admission show <id>","\u53EA\u8BFB\u67E5\u770B\u5355\u4E2A admission proposal \u4E0E decision \u5386\u53F2").option("--show-sensitive","\u4E0D\u518D redact evidence / payload \u4E2D secret-like \u5B57\u6BB5").action(async(D,$)=>{k.exit(await iQ(D,{...$.showSensitive===void 0?{}:{showSensitive:$.showSensitive}}))});g.command("worker brain admission approve <id>","\u628A pending proposal \u6807\u8BB0\u4E3A approved\uFF08\u4E0D\u4F1A\u81EA\u52A8 apply\uFF09").option("--decided-by <name>","\u8BB0\u5F55\u51B3\u7B56\u64CD\u4F5C\u8005\uFF08\u5FC5\u586B\uFF09").option("--reason <text>","\u5BA1\u6279\u7406\u7531").action(async(D,$)=>{if($.decidedBy===void 0||$.decidedBy==="")_.error("[aiworker worker brain admission approve] --decided-by is required"),k.exit(2);k.exit(await nQ(D,{decidedBy:$.decidedBy,...$.reason===void 0?{}:{reason:$.reason}}))});g.command("worker brain admission reject <id>","\u628A pending proposal \u6807\u8BB0\u4E3A rejected").option("--decided-by <name>","\u8BB0\u5F55\u51B3\u7B56\u64CD\u4F5C\u8005\uFF08\u5FC5\u586B\uFF09").option("--reason <text>","\u62D2\u7EDD\u7406\u7531").action(async(D,$)=>{if($.decidedBy===void 0||$.decidedBy==="")_.error("[aiworker worker brain admission reject] --decided-by is required"),k.exit(2);k.exit(await rQ(D,{decidedBy:$.decidedBy,...$.reason===void 0?{}:{reason:$.reason}}))});g.command("worker brain admission apply <id>","\u6267\u884C approved proposal\uFF08\u9ED8\u8BA4 dry-run\uFF1BMVP \u4EC5\u652F\u6301 memory-add\uFF09").option("--decided-by <name>","\u8BB0\u5F55\u51B3\u7B56\u64CD\u4F5C\u8005\uFF08\u5FC5\u586B\uFF09").option("--commit","\u771F\u6B63\u5199 filesystem\uFF1B\u9ED8\u8BA4 dry-run \u4EC5\u6253\u5370 diff").option("--allow-secret-body <mode>","BUG-055 secret-body \u5904\u7406\u7B56\u7565\uFF1Ablock | redact | raw\uFF08\u9ED8\u8BA4 block\uFF09").action(async(D,$)=>{if($.decidedBy===void 0||$.decidedBy==="")_.error("[aiworker worker brain admission apply] --decided-by is required"),k.exit(2);if($.allowSecretBody!==void 0&&$.allowSecretBody!=="block"&&$.allowSecretBody!=="redact"&&$.allowSecretBody!=="raw")_.error(`[aiworker worker brain admission apply] --allow-secret-body must be one of block | redact | raw, got "${$.allowSecretBody}"`),k.exit(2);k.exit(await oQ(D,{decidedBy:$.decidedBy,...$.commit===void 0?{}:{commit:$.commit},...$.allowSecretBody===void 0?{}:{allowSecretBody:$.allowSecretBody}}))});g.command("worker brain admission propose","\u63D0\u4EA4\u4E00\u6761 pending brain admission proposal\uFF08\u9700 operator \u540E\u7EED approve/apply\uFF09").option("--id <id>","proposal id\uFF08\u5FC5\u586B\uFF0Ckebab-case\uFF09").option("--kind <kind>","proposal kind\uFF08\u9ED8\u8BA4 memory-add\uFF09").option("--target <text>","target \u8DEF\u5F84\u6216 artifact id\uFF08\u5FC5\u586B\uFF09").option("--summary <text>","proposal \u6458\u8981\uFF08\u5FC5\u586B\uFF09").option("--rollback <text>","rollback \u63CF\u8FF0\uFF08\u5FC5\u586B\uFF09").option("--soul <id>","soul id\uFF08\u5FC5\u586B\uFF09").option("--scope <id>","scope id\uFF08\u53EF\u9009\uFF09").option("--risk <level>","low | medium | high\uFF08\u9ED8\u8BA4 high\uFF09").option("--confidence <n>","0..1 \u4E4B\u95F4\u7684\u5C0F\u6570\uFF08\u9ED8\u8BA4 0.5\uFF09",{type:[Number]}).option("--evidence <path>","\u4ECE JSON \u6587\u4EF6\u8BFB\u53D6 evidence \u6570\u7EC4\uFF08\u53EF\u9009\uFF09").option("--payload <path>","\u4ECE JSON \u6587\u4EF6\u8BFB\u53D6 payload \u5BF9\u8C61\uFF08\u53EF\u9009\uFF09").action(async(D)=>{k.exit(await aQ({...D.id===void 0?{}:{id:D.id},...D.kind===void 0?{}:{kind:D.kind},...D.target===void 0?{}:{target:D.target},...D.summary===void 0?{}:{summary:D.summary},...D.rollback===void 0?{}:{rollback:D.rollback},...D.soul===void 0?{}:{soulId:D.soul},...D.scope===void 0?{}:{scopeId:D.scope},...D.risk===void 0?{}:{risk:D.risk},confidence:ED(D.confidence),...D.evidence===void 0?{}:{evidencePath:D.evidence},...D.payload===void 0?{}:{payloadPath:D.payload}}))});g.command("worker brain brief","\u628A canonical brain \u6295\u5F71\u6210 task-specific brief\uFF1Bpreview-only").option("--task <text>","\u4EFB\u52A1\u63CF\u8FF0\uFF08\u5FC5\u586B\uFF09").option("--scope <id>","\u6307\u5B9A scope id\uFF08\u9ED8\u8BA4\u4ECE .aiworker/scope.json \u8BFB\u53D6\uFF09").option("--soul <id>","\u6307\u5B9A Soul id\uFF08\u9ED8\u8BA4 scope manifest \u7684 primarySoul\uFF09").option("--artifact <id>","\u5173\u8054\u7684 brain artifact id\uFF1B\u53EF\u91CD\u590D\u51FA\u73B0",{type:[String]}).option("--executor <engine>","\u8BB0\u5F55\u76EE\u6807 executor engine \u63D0\u793A").option("--token-budget <n>","\u9ED8\u8BA4 4000\uFF1B\u8303\u56F4 200..50000",{type:[Number]}).action(async(D)=>{if(D.task===void 0||D.task.trim()==="")_.error("[aiworker worker brain brief] --task is required"),k.exit(2);k.exit(await sQ({task:D.task,...D.scope===void 0?{}:{scopeId:D.scope},...D.soul===void 0?{}:{soulId:D.soul},...D.artifact===void 0?{}:{artifactRefs:D.artifact},...D.executor===void 0?{}:{executor:D.executor},tokenBudget:ED(D.tokenBudget)}))});g.command("worker run","\u4E0D\u542F\u52A8 HTTP server\uFF0C\u76F4\u63A5\u7ED9 orchestrator \u6295\u9012\u4E00\u6761\u6D88\u606F").option("--message <text>","\u8981\u6295\u9012\u7684\u7528\u6237\u6D88\u606F\uFF08\u5FC5\u586B\uFF09").option("--chat-id <id>",'\u5408\u6210 chat id\uFF08\u9ED8\u8BA4 "cli:stdin"\uFF09').option("--dry-run","\u5B8C\u6210 bootstrap\uFF0C\u4F46\u4E0D\u771F\u6B63\u6295\u9012 envelope").option("--timeout-ms <n>","\u7B49\u5F85\u7EC8\u6001\u4E8B\u4EF6\u7684\u6700\u957F\u65F6\u95F4\uFF0C\u5355\u4F4D\u6BEB\u79D2\uFF08\u9ED8\u8BA4 120000\uFF09",{type:[Number]}).action(async(D)=>{let $=await OV({message:D.message,chatId:D.chatId,dryRun:D.dryRun,timeoutMs:ED(D.timeoutMs)});k.exit($)});g.command("worker serve","\u542F\u52A8 worker HTTP server\uFF08\u7B49\u4EF7\u4E8E AIWORKER_MODE=worker\uFF09").option("--port <n>","\u8986\u76D6 PORT \u73AF\u5883\u53D8\u91CF",{type:[Number]}).option("--host <host>","\u8986\u76D6 AIWORKER_WORKER_HOST\uFF08\u9ED8\u8BA4 127.0.0.1\uFF09").option("--gateway <url>","\u968F HTTP server \u4E00\u8D77\u8FDE\u63A5\u6307\u5B9A gateway WebSocket URL").option("--gateway-token <token>","\u8FDE\u63A5 gateway \u65F6\u4F7F\u7528\u7684 bearer token\uFF08loopback \u53EF\u7701\u7565\uFF09").option("--no-reconnect","\u5173\u95ED gateway-client \u81EA\u52A8\u91CD\u8FDE\uFF08smoke / \u6D4B\u8BD5\u65F6\u4F7F\u7528\uFF09").option("--no-serve-web","\u4E0D\u6302\u8F7D worker bundle \u5230 /admin/*\uFF08\u9ED8\u8BA4\u6302\u8F7D\uFF09").option("--open","\u542F\u52A8\u540E\u6253\u5F00 worker admin").option("--no-open","\u542F\u52A8\u540E\u4E0D\u81EA\u52A8\u6253\u5F00 worker admin").option("--pid-file <path>","TODO-016\uFF1Adaemon pid \u5199\u5165\u6307\u5B9A\u8DEF\u5F84\uFF08\u5173\u95ED\u65F6\u6E05\u7406\uFF09\uFF1B\u9002\u5408 setsid \u5305\u88C5\u4E0B\u7684\u8FDB\u7A0B\u8DDF\u8E2A").action(async(D)=>{let $={},F=ED(D.port);if(F!==void 0)$.port=F;if(D.host!==void 0)$.host=D.host;if(D.gateway!==void 0)$.gateway=D.gateway;if(D.gatewayToken!==void 0)$.gatewayToken=D.gatewayToken;if(D.reconnect===!1)$.gatewayReconnect=!1;if(D.serveWeb===!1)$.serveWeb=!1;if(D.pidFile!==void 0&&D.pidFile.trim().length>0)$.pidFile=D.pidFile.trim();let X=yJ();if(X!==void 0)$.open=X;$.runtimeVersion=k6.version,await D5($)});g.command("worker config show","\u4EE5 JSON \u6253\u5370\u672C\u5730 worker \u914D\u7F6E\uFF08\u7F3A\u5931\u65F6\u4F1A\u521D\u59CB\u5316\u672C\u5730 worker \u72B6\u6001\uFF09").action(async()=>{k.exit(await tQ())});g.command("worker config set <json>","\u66FF\u6362\u672C\u5730 worker \u914D\u7F6E").option("--if-match <version>","\u4E50\u89C2\u9501\uFF1B\u5F53\u524D\u5B58\u50A8 version \u4E0D\u7B49\u4E8E\u6B64\u503C\u5219\u62D2\u7EDD",{type:[Number]}).action(async(D,$)=>{k.exit(await eQ({json:D,ifMatch:ED($.ifMatch)}))});g.command("worker token rotate","\u751F\u6210\u65B0\u7684 bearer token\uFF1B\u660E\u6587\u53EA\u6253\u5370\u4E00\u6B21").action(async()=>{k.exit(await FA())});g.command("worker approvals list","\u5217\u51FA\u5F53\u524D worker \u8FDB\u7A0B\u5185\u6302\u8D77\u7684\u5DE5\u5177\u5BA1\u6279").action(async()=>{k.exit(await hQ())});g.command("worker approvals grant <taskId> <toolCallId>","\u89E3\u9501\u67D0\u6761\u6302\u8D77\u7684\u5DE5\u5177\u5BA1\u6279").option("--deny","\u4E0B\u53D1\u62D2\u7EDD\u51B3\u7B56\uFF1B\u9ED8\u8BA4\u5141\u8BB8").action(async(D,$,F)=>{k.exit(await vQ({taskId:D,toolCallId:$,...F.deny===void 0?{}:{deny:F.deny}}))});g.command("worker schedule list","\u5217\u51FA\u672C\u5730 worker.db \u4E2D\u6301\u4E45\u5316\u7684\u6240\u6709 cron \u4EFB\u52A1").action(async()=>{k.exit(await jV())});g.command("worker schedule add","\u5411\u672C\u5730 worker.db \u65B0\u589E cron \u4EFB\u52A1\uFF08\u4F1A\u5148\u6821\u9A8C\u8868\u8FBE\u5F0F\uFF09").option("--expression <expr>","\u4E94\u6BB5 cron \u8868\u8FBE\u5F0F\uFF08\u5FC5\u586B\uFF09").option("--prompt <text>","\u4EFB\u52A1\u89E6\u53D1\u65F6\u5408\u6210\u7684 envelope.text\uFF08\u5FC5\u586B\uFF09").option("--channel <channel>","channel \u7C7B\u578B\uFF1Aweb/line/telegram/lark/whatsapp\uFF08\u5FC5\u586B\uFF09").option("--chat-id <id>","\u4EFB\u52A1\u89E6\u53D1\u65F6\u4F7F\u7528\u7684 chatId\uFF08\u5FC5\u586B\uFF09").option("--account-id <id>","\u8986\u76D6 accountId\uFF08\u9ED8\u8BA4 sys:cron\uFF09").option("--disabled","\u4EE5 enabled=false \u4FDD\u5B58\uFF08\u9ED8\u8BA4 enabled=true\uFF09").action(async(D)=>{if(!D.expression||!D.prompt||!D.channel||!D.chatId)_.error("[aiworker worker schedule add] requires --expression, --prompt, --channel, --chat-id"),k.exit(2);let $=await NV({expression:D.expression,prompt:D.prompt,channel:D.channel,chatId:D.chatId,...D.accountId===void 0?{}:{accountId:D.accountId},...D.disabled===!0?{enabled:!1}:{}});k.exit($)});g.command("worker schedule remove <jobId>","\u4ECE\u672C\u5730 worker.db \u5220\u9664\u4E00\u6761 cron \u4EFB\u52A1").action(async(D)=>{k.exit(await PV(D))});g.command("worker sessions list","\u4ECE worker.db \u5217\u51FA\u672C\u5730 worker \u4F1A\u8BDD\u72B6\u6001").option("--limit <n>","\u6700\u591A\u8FD4\u56DE\u4F1A\u8BDD\u6570\uFF081-200\uFF0C\u9ED8\u8BA4 50\uFF09",{type:[Number]}).option("--offset <n>","\u5206\u9875\u504F\u79FB\u91CF\uFF08\u9ED8\u8BA4 0\uFF09",{type:[Number]}).option("--status <status>","\u6309\u72B6\u6001\u8FC7\u6EE4\uFF1Aactive \u6216 closed").action(async(D)=>{k.exit(await aV({limit:ED(D.limit),offset:ED(D.offset),...D.status===void 0?{}:{status:D.status}}))});g.command("worker sessions show <sessionKey>","\u6309 session key \u67E5\u770B\u4E00\u4E2A\u672C\u5730 worker \u4F1A\u8BDD\u72B6\u6001").action(async(D)=>{k.exit(await oV(D))});g.command("worker sessions maintenance","\u8BD5\u7B97\u5DF2\u5173\u95ED transcript \u6E05\u7406\uFF1B\u5E26 --apply \u624D\u4F1A\u5B9E\u9645\u5220\u9664").option("--older-than-days <n>","\u5DF2\u5173\u95ED transcript \u4FDD\u7559\u5929\u6570\uFF08\u9ED8\u8BA4 30\uFF09",{type:[Number]}).option("--limit <n>","\u6700\u591A\u8BD5\u7B97/\u6E05\u7406 transcript \u6570\u91CF\uFF081-200\uFF0C\u9ED8\u8BA4 50\uFF09",{type:[Number]}).option("--apply","\u5B9E\u9645\u5220\u9664\u8BA1\u5212\u5185\u7684\u5DF2\u5173\u95ED transcript\uFF0C\u800C\u4E0D\u662F dry-run").action(async(D)=>{k.exit(await tV({olderThanDays:ED(D.olderThanDays),limit:ED(D.limit),...D.apply===void 0?{}:{apply:D.apply}}))});g.command("fleet list","\u5217\u51FA fleet \u5185\u6240\u6709 worker").action(async()=>{k.exit(await MR())});g.command("fleet info <workerId>","\u67E5\u770B\u67D0\u4E2A worker \u7684\u8FD0\u884C\u65F6\u4FE1\u606F").action(async(D)=>{k.exit(await ZR(D))});g.command("fleet launch","\u8BA9 gateway \u5728\u672C\u673A\u62C9\u8D77\u4E00\u4E2A\u65B0\u7684 worker \u5BB9\u5668\u5E76\u5B8C\u6210\u914D\u5BF9").option("--display-name <name>","worker \u5C55\u793A\u540D").option("--image <image>","\u5BB9\u5668\u955C\u50CF\uFF08\u9ED8\u8BA4\u7531 gateway \u51B3\u5B9A\uFF09").option("--force-id <id>","\u5F3A\u5236\u4F7F\u7528\u7ED9\u5B9A workerId\uFF08\u7528\u4E8E\u5907\u4EFD\u6062\u590D\uFF09").action(async(D)=>{k.exit(await RR({...D.displayName===void 0?{}:{displayName:D.displayName},...D.image===void 0?{}:{image:D.image},...D.forceId===void 0?{}:{forceId:D.forceId}}))});g.command("fleet stop <workerId>","\u5411\u76EE\u6807 worker \u4E0B\u53D1\u505C\u6B62\u6307\u4EE4\uFF08\u4E0D\u6458\u9664\u6CE8\u518C\uFF09").action(async(D)=>{k.exit(await OR(D))});g.command("fleet remove <workerId>","\u628A worker \u4ECE fleet \u4E2D\u6458\u9664\uFF08deviceToken \u4F5C\u5E9F\uFF09").action(async(D)=>{k.exit(await ER(D))});g.command("gateway start","\u542F\u52A8 gateway server\uFF08\u9ED8\u8BA4\u524D\u53F0\u8FD0\u884C\uFF0C\u9002\u5408 systemd\uFF1B--detach \u4F7F\u7528\u540E\u53F0\u5B88\u62A4\u8FDB\u7A0B\uFF09").option("--port <n>","\u76D1\u542C\u7AEF\u53E3\uFF08\u9ED8\u8BA4 9218\uFF09",{type:[Number]}).option("--detach","\u540E\u53F0\u5B88\u62A4\u8FDB\u7A0B\u6A21\u5F0F\uFF1Aspawn \u81EA\u8EAB\uFF0C\u5E76\u628A PID/log \u5199\u5165 ~/.aiworker/").option("--no-serve-web","\u4E0D\u6302\u8F7D fleet bundle \u5230 /admin/*\uFF08\u9ED8\u8BA4\u6302\u8F7D\uFF09").action(async(D)=>{let F=k.env.AIWORKER_GATEWAY_INTERNAL_FOREGROUND==="1"?!1:D.detach===!0,X=ED(D.port);k.exit(await Ej({...X===void 0?{}:{port:X},detach:F,...D.serveWeb===!1?{serveWeb:!1}:{}}))});g.command("gateway status","\u663E\u793A\u540E\u53F0 gateway \u5B88\u62A4\u8FDB\u7A0B\u662F\u5426\u8FD0\u884C\uFF08foreground/systemd \u5B9E\u4F8B\u4E0D\u7531\u6B64\u547D\u4EE4\u8DDF\u8E2A\uFF09").action(()=>{k.exit(jj())});g.command("gateway stop","\u505C\u6B62\u540E\u53F0 gateway \u5B88\u62A4\u8FDB\u7A0B\uFF08foreground/systemd \u5B9E\u4F8B\u8BF7\u7531\u5176 supervisor \u505C\u6B62\uFF09").option("--timeout-ms <n>","SIGTERM \u8D85\u65F6\u65F6\u95F4\uFF08\u9ED8\u8BA4 5000ms\uFF09",{type:[Number]}).action(async(D)=>{let $=ED(D.timeoutMs);k.exit(await Nj($===void 0?{}:{timeoutMs:$}))});g.command("fleet pair","\u901A\u8FC7 bootstrap token \u628A\u4E00\u4E2A\u5DF2\u542F\u52A8\u7684 worker \u6CE8\u518C\u5230 gateway").option("--url <wsUrl>","gateway WebSocket URL\uFF08\u9ED8\u8BA4\u4F7F\u7528 aiworker.json \u91CC\u7684 gatewayUrl\uFF09").option("--worker-url <httpUrl>","worker HTTP base URL\uFF08\u5FC5\u586B\uFF09").option("--bootstrap-token <token>","worker \u6253\u5370\u7684\u4E00\u6B21\u6027 bootstrap token\uFF08\u5FC5\u586B\uFF09").option("--display-name <name>","\u53EF\u9009 worker \u5C55\u793A\u540D").action(async(D)=>{if(!D.workerUrl||!D.bootstrapToken)_.error("fleet pair \u5FC5\u987B\u540C\u65F6\u63D0\u4F9B --worker-url \u548C --bootstrap-token"),k.exit(2);k.exit(await QR({...D.url===void 0?{}:{url:D.url},workerUrl:D.workerUrl,bootstrapToken:D.bootstrapToken,...D.displayName===void 0?{}:{displayName:D.displayName}}))});g.command("fleet chat <workerId> <text>","\u5411\u67D0\u4E2A worker \u53D1\u9001\u4E00\u6761\u6D88\u606F\uFF0C\u5E76\u963B\u585E\u5230 agent.done\uFF08NDJSON \u8F93\u51FA\uFF09").option("--conversation-id <id>","\u663E\u5F0F\u6307\u5B9A\u4F1A\u8BDD id\uFF1B\u4E0D\u4F20\u5219\u7531 worker \u65B0\u5EFA").option("--timeout-ms <n>","\u7B49\u5F85 agent.done \u7684\u603B\u8D85\u65F6\u65F6\u95F4\uFF08\u9ED8\u8BA4 120000\uFF09",{type:[Number]}).action(async(D,$,F)=>{let X=ED(F.timeoutMs);k.exit(await JR({workerId:D,content:$,...F.conversationId===void 0?{}:{conversationId:F.conversationId},...X===void 0?{}:{timeoutMs:X}}))});g.command("fleet config get <workerId>","\u8BFB\u53D6\u76EE\u6807 worker \u7684\u5F53\u524D\u914D\u7F6E").action(async(D)=>{k.exit(await GR(D))});g.command("fleet config set <workerId> <json>","\u66F4\u65B0 worker \u914D\u7F6E\uFF08\u9700\u8981 --if-match \u63D0\u4F9B\u5F53\u524D\u7248\u672C\uFF09").option("--if-match <version>","\u4E50\u89C2\u9501\uFF1B\u5F53\u524D\u5B58\u50A8\u7684 version \u4E0D\u7B49\u4E8E\u6B64\u503C\u5219\u62D2\u7EDD",{type:[Number]}).action(async(D,$,F)=>{let X=ED(F.ifMatch);if(X===void 0)_.error("fleet config set \u5FC5\u987B\u663E\u5F0F\u63D0\u4F9B --if-match <version> \u4EE5\u9632\u6B62\u8BEF\u8986\u76D6"),k.exit(2);k.exit(await YR({workerId:D,configJson:$,ifMatch:X}))});g.command("fleet token rotate <workerId>","\u4E3A\u76EE\u6807 worker \u8F6E\u6362 deviceToken\uFF08\u65E7 token \u7ACB\u5373\u5931\u6548\uFF09").action(async(D)=>{k.exit(await CR(D))});g.command("fleet approvals list","\u5217\u51FA\u6302\u8D77\u7684\u5DE5\u5177\u5BA1\u6279\uFF1B\u9ED8\u8BA4\u8986\u76D6\u6240\u6709\u5728\u7EBF worker").option("--worker <id>","\u53EA\u67E5\u6307\u5B9A workerId\uFF08\u4E0D\u4F20\u5219\u805A\u5408\u6240\u6709\u5728\u7EBF worker\uFF09").action(async(D)=>{k.exit(await FR({...D.worker===void 0?{}:{workerId:D.worker}}))});g.command("fleet approvals grant <workerId> <taskId> <toolCallId>","\u89E3\u9501\u67D0\u6761 worker \u4E0A\u6302\u8D77\u7684\u5DE5\u5177\u5BA1\u6279").option("--deny","\u4E0B\u53D1\u62D2\u7EDD\u51B3\u7B56\uFF1B\u4E0D\u5E26\u6B64 flag \u9ED8\u8BA4\u5141\u8BB8").action(async(D,$,F,X)=>{k.exit(await XR({workerId:D,taskId:$,toolCallId:F,...X.deny===void 0?{}:{deny:X.deny}}))});g.command("fleet schedule list <workerId>","\u5217\u51FA\u67D0 worker \u4E0A\u6240\u6709 cron \u4EFB\u52A1").action(async(D)=>{k.exit(await AR(D))});g.command("fleet schedule add <workerId>","\u5728\u67D0 worker \u4E0A\u65B0\u589E\u4E00\u6761 cron \u4EFB\u52A1").option("--expression <expr>","\u4E94\u6BB5 cron \u8868\u8FBE\u5F0F\uFF08\u5FC5\u586B\uFF09").option("--prompt <text>","cron \u89E6\u53D1\u65F6\u5408\u6210\u7684 envelope.text\uFF08\u5FC5\u586B\uFF09").option("--channel <channel>","channel \u7C7B\u578B\uFF1Aweb/line/telegram/lark/whatsapp\uFF08\u5FC5\u586B\uFF09").option("--chat-id <id>","\u89E6\u53D1\u65F6\u4F7F\u7528\u7684 chatId\uFF08\u5FC5\u586B\uFF09").option("--account-id <id>","accountId\uFF0C\u9ED8\u8BA4 sys:cron").option("--disabled","\u9ED8\u8BA4 enabled=true\uFF1B\u5E26\u6B64\u9009\u9879\u6539\u4E3A false").action(async(D,$)=>{if(!$.expression||!$.prompt||!$.channel||!$.chatId)_.error("fleet schedule add \u5FC5\u987B\u63D0\u4F9B --expression / --prompt / --channel / --chat-id"),k.exit(2);k.exit(await KR({workerId:D,expression:$.expression,prompt:$.prompt,channel:$.channel,chatId:$.chatId,...$.accountId===void 0?{}:{accountId:$.accountId},...$.disabled===!0?{enabled:!1}:{}}))});g.command("fleet schedule remove <workerId> <jobId>","\u5220\u9664\u67D0 worker \u4E0A\u7684\u67D0\u6761 cron \u4EFB\u52A1").action(async(D,$)=>{k.exit(await _R(D,$))});g.command("fleet enroll list","\u5217\u51FA gateway \u5F53\u524D\u6240\u6709\u5F85\u5904\u7406\u7684 OTP enrollment").action(async()=>{k.exit(await BR())});g.command("fleet enroll approve <otp>","\u6279\u51C6\u67D0\u6761\u5F85\u5904\u7406\u7684 OTP enrollment\uFF08worker \u7ACB\u5373\u52A0\u5165 fleet\uFF09").action(async(D)=>{k.exit(await HR(D))});g.command("fleet enroll reject <otp>","\u62D2\u7EDD\u67D0\u6761\u5F85\u5904\u7406\u7684 OTP enrollment\uFF08worker \u6536\u5230 close 4403\uFF09").action(async(D)=>{k.exit(await WR(D))});g.command("fleet logs <workerId>","\u8BA2\u9605\u67D0\u4E2A worker \u7684\u65E5\u5FD7\u5C3E\u90E8\uFF08NDJSON \u8F93\u51FA\uFF09").option("--follow","\u6301\u7EED\u8BA2\u9605\u76F4\u5230\u8D85\u65F6\u6216 Ctrl-C").option("--tail <n>","\u8BF7\u6C42\u5386\u53F2\u884C\u6570\uFF0C\u4E0A\u9650 1000",{type:[Number]}).option("--timeout-ms <n>","\u8BA2\u9605\u603B\u8D85\u65F6",{type:[Number]}).action(async(D,$)=>{let F=ED($.tail),X=ED($.timeoutMs);k.exit(await UR({workerId:D,...$.follow===void 0?{}:{follow:$.follow},...F===void 0?{}:{tail:F},...X===void 0?{}:{timeoutMs:X}}))});g.command("gateway install systemd","\u6E32\u67D3 aiworker-gateway.service \u5E76\uFF08\u53EF\u9009\uFF09\u6CE8\u518C\u5230 systemd").option("--user","systemd \u7528\u6237\u5B9E\u4F8B\uFF08\u9ED8\u8BA4\uFF09\uFF1B\u5199\u5230 ~/.config/systemd/user/").option("--system","systemd \u7CFB\u7EDF\u5B9E\u4F8B\uFF08\u9700 root\uFF09\uFF1B\u5199\u5230 /etc/systemd/system/").option("--dry-run","\u53EA\u5F80 stdout \u6253 unit \u5185\u5BB9\uFF0C\u4E0D\u5199\u76D8\u4E5F\u4E0D systemctl").option("--out <path>","\u8986\u76D6\u76EE\u6807\u8DEF\u5F84\uFF08\u5F02\u5E38\u5E03\u5C40/\u6D4B\u8BD5\u7528\uFF09\uFF1B\u81EA\u52A8\u8DF3\u8FC7 systemctl").option("--no-enable","\u5199\u76D8\u540E\u8DF3\u8FC7 systemctl daemon-reload \u548C enable --now").option("--exec-start <command>","\u9AD8\u7EA7\u8986\u76D6\uFF1A\u624B\u52A8\u6307\u5B9A\u5B8C\u6574 systemd ExecStart \u547D\u4EE4").action(async(D)=>{if(D.user===!0&&D.system===!0)_.error("gateway install systemd: \u4E0D\u80FD\u540C\u65F6\u6307\u5B9A --user \u548C --system"),k.exit(2);k.exit(await wj({scope:D.system===!0?"system":"user",...D.dryRun===!0?{dryRun:!0}:{},...D.out===void 0?{}:{out:D.out},...D.enable===!1?{noEnable:!0}:{},...D.execStart===void 0?{}:{execStart:D.execStart}}))});Ow(g);g.version(k6.version);GA(g);function f9D(D,$=g){let F=new Set,X=1;for(let J of $.commands){let G=J.name;if(typeof G==="string"&&G.includes(" ")){F.add(G);let Y=G.split(" ").length;if(Y>X)X=Y}}if(F.size===0||D.length<4)return D;for(let J=X;J>=2;J--){if(D.length<2+J)continue;let G=D.slice(2,2+J);if(G.some((B)=>typeof B!=="string"))continue;let Y=G.join(" ");if(F.has(Y)){let B=D.slice();return B.splice(2,J,Y),Pw(B)}}return Pw(D)}function Pw(D){let $=D[2];if($!=="executor mcp add"&&$!=="worker executor mcp add")return D;let F=D.slice();for(let X=3;X<F.length-1;X++)if(F[X]==="--arg"&&F[X+1]?.startsWith("-")===!0)F.splice(X,2,`--arg=${F[X+1]}`);return F}class T6 extends Error{constructor(D){super(D);this.name="CliUsageError"}}var g9D={"config set":{ifMatch:{integer:!0,min:1}},"executor select":{ifMatch:{integer:!0,min:1}},"fleet chat":{timeoutMs:{integer:!0,min:1}},"fleet config set":{ifMatch:{integer:!0,min:1}},"fleet logs":{tail:{integer:!0,min:0,max:1000},timeoutMs:{integer:!0,min:1}},"gateway start":{port:{integer:!0,min:0,max:65535}},"gateway stop":{timeoutMs:{integer:!0,min:0}},run:{timeoutMs:{integer:!0,min:1}},serve:{port:{integer:!0,min:1,max:65535}},up:{port:{integer:!0,min:1,max:65535}},"sessions list":{limit:{integer:!0,min:1,max:200},offset:{integer:!0,min:0}},"sessions maintenance":{limit:{integer:!0,min:1,max:200},olderThanDays:{integer:!0,min:0,max:3650}},"worker config set":{ifMatch:{integer:!0,min:1}},"worker executor select":{ifMatch:{integer:!0,min:1}},"worker run":{timeoutMs:{integer:!0,min:1}},"worker serve":{port:{integer:!0,min:1,max:65535}},"worker up":{port:{integer:!0,min:1,max:65535}},"worker sessions list":{limit:{integer:!0,min:1,max:200},offset:{integer:!0,min:0}},"worker sessions maintenance":{limit:{integer:!0,min:1,max:200},olderThanDays:{integer:!0,min:0,max:3650}}};function h9D(D){return D instanceof Error&&D.name==="CACError"}function v9D(D){return/--[a-z0-9][\w-]*/i.exec(D)?.[0]??D}function x9D(D){return D.split(",").map(($)=>/^-{1,2}[a-z0-9][\w-]*/i.exec($.trim())?.[0]).filter(($)=>$!==void 0)}function y9D(D,$){let F=D.slice(2);return x9D($.rawName).some((J)=>F.some((G)=>G===J||G.startsWith(`${J}=`)))}function u9D(D){D.checkUnknownOptions(),D.checkOptionValue(),D.checkRequiredArgs()}function m9D(D,$){let F=g9D[D.name]??{};for(let X of D.options){if(!Array.isArray(X.config?.type)||X.config.type[0]!==Number)continue;if(!y9D($,X))continue;let J=g.options[X.name];if(J===void 0)continue;let G=Array.isArray(J)?J:[J];for(let Y of G){let B=v9D(X.rawName);if(typeof Y!=="number"||!Number.isFinite(Y))throw new T6(`${B} must be a finite number`);let H=F[X.name];if(H?.integer===!0&&!Number.isInteger(Y))throw new T6(`${B} must be an integer`);if(H?.min!==void 0&&Y<H.min)throw new T6(`${B} must be >= ${H.min}`);if(H?.max!==void 0&&Y>H.max)throw new T6(`${B} must be <= ${H.max}`)}}}function c9D(){return g.options.help===!0||g.options.version===!0&&g.matchedCommandName==null}async function p9D(D=k.argv){let $=f9D(D);try{g.unsetMatchedCommand();let F=Ew($,g);if(F!==null)return k.stdout.write(`${YA(g,F)}
2128
+ `)}$0();import k9D from"process";function b9D(D){let $=D.slice(2);if($.length===0)return!1;if($.some((X)=>X==="--help"||X==="-h"||X==="--version"||X==="-v"))return!1;let F=$[0]??"";if(F==="scope"||F==="worker scope"||F==="doctor"||F==="worker doctor"||F==="init"||F==="worker init"||F==="up"||F==="worker up"||F==="gateway install systemd")return!1;if(F.startsWith("executor ")||F.startsWith("worker executor "))return!1;if(F==="soul list"||F==="soul show"||F==="worker soul list"||F==="worker soul show")return!1;return!0}function Nw(D=k9D.argv){if(!b9D(D))return;let $=mD();q6({home:$.home})}var g=AA("aiworker");function yJ(D=k.argv){let $=D.slice(2);if($.includes("--no-open"))return!1;if($.includes("--open"))return!0;return}function MD(D){let $=D?.[0];return typeof $==="number"&&Number.isFinite($)?$:void 0}g.command("init","\u521D\u59CB\u5316 worker.db\u3001\u8EAB\u4EFD\u3001token \u548C\u9ED8\u8BA4\u914D\u7F6E\uFF08\u9ED8\u8BA4\u5F53\u524D\u9879\u76EE `<cwd>/.aiworker/`\uFF1B--global \u4F7F\u7528\u65E7\u7248 ~/.aiworker\uFF09").option("--global","\u521D\u59CB\u5316\u65E7\u7248\u7528\u6237\u7EA7 `~/.aiworker/`\uFF08\u5355\u4E3B\u673A\u5168\u5C40 worker\uFF09").option("--force","\u517C\u5BB9\u65E7\u811A\u672C\uFF1B\u9879\u76EE\u521D\u59CB\u5316\u5141\u8BB8\u5728\u975E git \u76EE\u5F55\u8FD0\u884C\uFF0C\u4E14\u4ECD\u4E0D\u4F1A\u8986\u76D6\u73B0\u6709\u6587\u4EF6").option("--dry-run","\u53EA\u6253\u5370\u521D\u59CB\u5316\u9884\u68C0\u548C\u8BA1\u5212\u5199\u5165\uFF0C\u4E0D\u521B\u5EFA\u6216\u4FEE\u6539\u6587\u4EF6").option("--soul <preset>","\u9879\u76EE\u7EA7\u521D\u59CB\u5316\u4F7F\u7528\u7684 Soul \u9884\u8BBE\uFF1B\u975E\u4EA4\u4E92 brand-new init \u5FC5\u586B\uFF0C\u53EF\u9009 developer/project-manager/devops-sre/product-designer/qa-reviewer/support-operator/finance-ops/hr-recruiting/general-assistant/customize").option("--token-file <path>","\u9996\u6B21\u521D\u59CB\u5316\u65F6\u628A\u5B8C\u6574 bootstrap token \u5199\u5165 chmod 600 \u6587\u4EF6\uFF1B\u9ED8\u8BA4\u5199\u5165 worker local bootstrap-token.txt").option("--show-token","\u9996\u6B21\u521D\u59CB\u5316\u65F6\u5728 stdout \u9AD8\u53EF\u89C1 warning block \u4E2D\u663E\u793A\u5B8C\u6574 bootstrap token").action(async(D)=>{k.exit(await y4({...D.global===!0?{global:!0}:{},...D.force===!0?{force:!0}:{},...D.dryRun===!0?{dryRun:!0}:{},...D.soul===void 0?{}:{soul:D.soul},...D.tokenFile===void 0?{}:{tokenFile:D.tokenFile},...D.showToken===!0?{showToken:!0}:{}}))});g.command("up","\u4E00\u6761\u547D\u4EE4\u521D\u59CB\u5316\u3001\u9A8C\u8BC1\u5E76\u542F\u52A8\u672C\u5730 worker HTTP/admin").option("--soul <preset>","brand-new project \u521D\u59CB\u5316\u4F7F\u7528\u7684 Soul \u9884\u8BBE\uFF1B\u5DF2\u521D\u59CB\u5316\u9879\u76EE\u4E0D\u4F1A\u6D88\u8D39\u6B64\u53C2\u6570").option("--dry-run","\u53EA\u6253\u5370 up \u9636\u6BB5\u548C\u9884\u68C0\u7ED3\u679C\uFF0C\u4E0D\u521D\u59CB\u5316\u3001\u4E0D\u542F\u52A8 HTTP server\u3001\u4E0D\u6253\u5F00\u6D4F\u89C8\u5668").option("--port <n>","\u8986\u76D6 PORT \u73AF\u5883\u53D8\u91CF",{type:[Number]}).option("--host <host>","\u8986\u76D6 AIWORKER_WORKER_HOST\uFF08\u9ED8\u8BA4 127.0.0.1\uFF09").option("--gateway <url>","\u968F HTTP server \u4E00\u8D77\u8FDE\u63A5\u6307\u5B9A gateway WebSocket URL").option("--gateway-token <token>","\u8FDE\u63A5 gateway \u65F6\u4F7F\u7528\u7684 bearer token\uFF08loopback \u53EF\u7701\u7565\uFF09").option("--no-reconnect","\u5173\u95ED gateway-client \u81EA\u52A8\u91CD\u8FDE\uFF08smoke / \u6D4B\u8BD5\u65F6\u4F7F\u7528\uFF09").option("--no-serve-web","\u4E0D\u6302\u8F7D worker bundle \u5230 /admin/*\uFF08\u9ED8\u8BA4\u6302\u8F7D\uFF09").option("--open","\u542F\u52A8\u540E\u6253\u5F00 worker admin").option("--no-open","\u542F\u52A8\u540E\u4E0D\u81EA\u52A8\u6253\u5F00 worker admin").action(async(D)=>{let $=yJ(),F=MD(D.port);k.exit(await JA({...D.soul===void 0?{}:{soul:D.soul},...D.dryRun===!0?{dryRun:!0}:{},...F===void 0?{}:{port:F},...D.host===void 0?{}:{host:D.host},...D.gateway===void 0?{}:{gateway:D.gateway},...D.gatewayToken===void 0?{}:{gatewayToken:D.gatewayToken},...D.reconnect===!1?{gatewayReconnect:!1}:{},...D.serveWeb===!1?{serveWeb:!1}:{},...$===void 0?{}:{open:$},runtimeVersion:k6.version}))});g.command("scope","\u6253\u5370\u5F53\u524D aiworker scope\uFF08user/project/explicit\uFF09\u548C\u5173\u952E\u5E03\u5C40\u6587\u4EF6\u72B6\u6001").action(async()=>{k.exitCode=await LV()});g.command("doctor","\u9759\u6001\u9A8C\u8BC1\u5F53\u524D `.aiworker/` capability manifests\u3001Skill metadata \u548C MCP descriptors").action(async()=>{k.exit(await FV())});g.command("executor mcp add <name>","\u5728 project executor overlay \u4E2D\u58F0\u660E\u4E00\u4E2A MCP server hint\uFF0C\u5199\u5165 `.aiworker/executor-capabilities.json`").option("--engine <engine>","\u76EE\u6807 engine\uFF1Acodex \u6216 claude-code").option("--scope <scope>","MCP \u914D\u7F6E scope\uFF1B\u5F53\u524D\u4EC5\u652F\u6301 project").option("--transport <transport>","MCP transport\uFF1Astdio / streamable-http / sse\uFF1B\u672A\u6307\u5B9A\u65F6\u6309 --url \u63A8\u65AD").option("--url <url>","HTTP/SSE MCP server URL").option("--command <command>","stdio MCP server command").option("--arg <value>","stdio command \u53C2\u6570\uFF1B\u53EF\u91CD\u590D").option("--env <key=value>","\u6295\u5F71\u5230 engine CLI \u7684 env\uFF1Bsecret \u7528 key=secretRef:<ref>\uFF1B\u53EF\u91CD\u590D").option("--header <key=value>","\u6295\u5F71\u5230 engine CLI \u7684 header\uFF1Bsecret \u7528 key=secretRef:<ref>\uFF1B\u53EF\u91CD\u590D").option("--bearer-token-env-var <env>","Codex streamable HTTP MCP bearer token \u73AF\u5883\u53D8\u91CF\u540D").option("--description <text>","MCP server \u63CF\u8FF0").option("--dry-run","\u53EA\u9884\u89C8 manifest \u53D8\u66F4\uFF0C\u4E0D\u5199\u6587\u4EF6").action(async(D,$)=>{k.exit(await YV(D,$))});g.command("executor mcp sync","\u628A project executor overlay best-effort \u6295\u5F71\u5230 engine \u5B98\u65B9 project-scope MCP \u914D\u7F6E\uFF08\u975E effective capability source of truth\uFF09").option("--engine <engine>","\u76EE\u6807 engine\uFF1Acodex \u6216 claude-code").option("--dry-run","\u53EA\u6253\u5370\u5C06\u6267\u884C\u7684 engine CLI \u547D\u4EE4").action(async(D)=>{k.exit(await BV(D))});g.command("executor select","\u663E\u5F0F\u9009\u62E9\u672C\u5730 worker \u7684 task executor\uFF0C\u4E0D\u5199 engine project config").option("--engine <engine>","\u76EE\u6807 task executor engine\uFF0C\u4F8B\u5982 codex / claude-code / http").option("--variant <variant>","executor variant\uFF08\u9ED8\u8BA4 default\uFF09").option("--model-id <model>","\u53EF\u9009 per-request model override").option("--reasoning-id <id>","\u53EF\u9009 reasoning preset").option("--permission-policy <policy>","\u53EF\u9009\u6743\u9650\u7B56\u7565\uFF1Aauto / supervised / plan").option("--timeout-ms <n>","\u53EF\u9009 executor \u5355 turn hard timeout\uFF0C\u5355\u4F4D\u6BEB\u79D2",{type:[Number]}).option("--if-match <version>","apply \u65F6\u4F7F\u7528\u7684\u4E50\u89C2\u9501\uFF1B\u5F53\u524D config version \u4E0D\u7B49\u4E8E\u6B64\u503C\u5219\u62D2\u7EDD",{type:[Number]}).option("--apply","\u6301\u4E45\u5316 executor \u9009\u62E9\uFF1B\u9ED8\u8BA4\u53EA dry-run").option("--dry-run","\u53EA\u6253\u5370\u5C06\u66F4\u65B0\u7684 executor \u9009\u62E9").action(async(D)=>{k.exit(await WV({...D.apply===!0?{apply:!0}:{},...D.dryRun===!0?{dryRun:!0}:{},...D.engine===void 0?{}:{engine:D.engine},...D.variant===void 0?{}:{variant:D.variant},...D.modelId===void 0?{}:{modelId:D.modelId},...D.reasoningId===void 0?{}:{reasoningId:D.reasoningId},...D.permissionPolicy===void 0?{}:{permissionPolicy:D.permissionPolicy},timeoutMs:MD(D.timeoutMs),ifMatch:MD(D.ifMatch)}))});g.command("executor doctor","\u6821\u9A8C project executor overlay \u4E0E engine CLI readiness\uFF08\u4E0D\u63A2\u6D4B user/host ambient capabilities\uFF09").option("--engine <engine>","\u53EA\u68C0\u67E5\u4E00\u4E2A engine\uFF1Acodex \u6216 claude-code").action(async(D)=>{k.exit(await HV(D))});g.command("executor capability list","\u53EA\u8BFB\u5217\u51FA .aiworker/executor-capabilities.json \u4E2D\u7684 project executor overlay \u6761\u76EE").option("--engine <engine>","\u53EA\u5217\u51FA\u4E00\u4E2A engine\uFF1Acodex \u6216 claude-code").action(async(D)=>{k.exit(await UV(D))});g.command("executor capability show <ref>","\u53EA\u8BFB\u67E5\u770B\u5355\u6761 project executor overlay descriptor\uFF0Cref \u5F62\u5982 codex.mcp.context7").action(async(D)=>{k.exit(await QV(D))});g.command("soul list","\u5217\u51FA\u5185\u7F6E Soul \u9884\u8BBE\u53CA\u5176\u58F0\u660E\u80FD\u529B").action(async()=>{k.exit(await DA())});g.command("soul show <preset>","\u67E5\u770B\u67D0\u4E2A Soul \u9884\u8BBE\u7684\u804C\u8D23\u3001\u8FB9\u754C\u3001\u80FD\u529B\u8349\u6848\u548C\u98CE\u9669\u7B56\u7565").action(async(D)=>{k.exit(await $A(D))});g.command("brain status","\u53EA\u8BFB\u8BCA\u65AD\u672C\u5730 worker runtime brain source\u3001\u5199\u5165\u76EE\u6807\u3001decision pipeline\uFF08heuristic/LLM\u3001observe_only/enforced\u3001recent fallback\uFF09\u548C\u5065\u5EB7\u72B6\u6001").action(async()=>{k.exit(await uQ())});g.command("brain skills","\u53EA\u8BFB\u5217\u51FA\u672C\u5730 runtime brain \u66B4\u9732\u7684 brain skill").action(async()=>{k.exit(await mQ())});g.command("brain memories","\u53EA\u8BFB\u5217\u51FA\u6216\u641C\u7D22\u672C\u5730 runtime brain memory").option("--query <text>","\u641C\u7D22 memory \u5185\u5BB9\u3001\u6807\u9898\u6216 metadata").option("--limit <n>","\u6700\u591A\u8FD4\u56DE memory \u6570\u91CF\uFF081-200\uFF0C\u9ED8\u8BA4 50\uFF09",{type:[Number]}).action(async(D)=>{k.exit(await cQ({limit:MD(D.limit),...D.query===void 0?{}:{query:D.query}}))});g.command("brain artifacts list","\u53EA\u8BFB\u5217\u51FA\u672C\u5730 worker scope \u6CE8\u518C\u7684 brain artifact").option("--scope <id>","\u6309 scope id \u8FC7\u6EE4").option("--type <id>","\u6309 artifact type \u8FC7\u6EE4").option("--status <s>","active / archived / removed").option("--min-sensitivity <s>","public / internal / confidential / secret").option("--limit <n>","\u6700\u591A\u8FD4\u56DE artifact \u6570\u91CF\uFF081-200\uFF0C\u9ED8\u8BA4 50\uFF09",{type:[Number]}).option("--show-sensitive","\u4E0D\u518D redact confidential / secret artifact \u7684 ref / hash").action(async(D)=>{k.exit(await pQ({...D.scope===void 0?{}:{scopeId:D.scope},...D.type===void 0?{}:{type:D.type},...D.status===void 0?{}:{status:D.status},...D.minSensitivity===void 0?{}:{minSensitivity:D.minSensitivity},limit:MD(D.limit),...D.showSensitive===void 0?{}:{showSensitive:D.showSensitive}}))});g.command("brain artifacts show <id>","\u53EA\u8BFB\u67E5\u770B\u5355\u4E2A brain artifact").option("--show-sensitive","\u4E0D\u518D redact confidential / secret artifact \u7684 ref / hash").action(async(D,$)=>{k.exit(await dQ(D,{...$.showSensitive===void 0?{}:{showSensitive:$.showSensitive}}))});g.command("brain admission list","\u5217\u51FA\u672C\u5730 worker \u7684 brain admission proposal").option("--status <s>","pending / approved / rejected / applied / failed").option("--kind <k>","\u6309 proposal kind \u8FC7\u6EE4\uFF08\u6765\u81EA Soul.schemaPack.proposalTypes\uFF09").option("--scope <id>","\u6309 scope id \u8FC7\u6EE4").option("--soul <id>","\u6309 Soul id \u8FC7\u6EE4").option("--limit <n>","\u6700\u591A\u8FD4\u56DE proposal \u6570\u91CF\uFF081-200\uFF0C\u9ED8\u8BA4 50\uFF09",{type:[Number]}).option("--show-sensitive","\u4E0D\u518D redact evidence / payload \u4E2D secret-like \u5B57\u6BB5").action(async(D)=>{k.exit(await lQ({...D.status===void 0?{}:{status:D.status},...D.kind===void 0?{}:{kind:D.kind},...D.scope===void 0?{}:{scopeId:D.scope},...D.soul===void 0?{}:{soulId:D.soul},limit:MD(D.limit),...D.showSensitive===void 0?{}:{showSensitive:D.showSensitive}}))});g.command("brain admission show <id>","\u53EA\u8BFB\u67E5\u770B\u5355\u4E2A admission proposal \u4E0E decision \u5386\u53F2").option("--show-sensitive","\u4E0D\u518D redact evidence / payload \u4E2D secret-like \u5B57\u6BB5").action(async(D,$)=>{k.exit(await iQ(D,{...$.showSensitive===void 0?{}:{showSensitive:$.showSensitive}}))});g.command("brain admission approve <id>","\u628A pending proposal \u6807\u8BB0\u4E3A approved\uFF08\u4E0D\u4F1A\u81EA\u52A8 apply\uFF09").option("--decided-by <name>","\u8BB0\u5F55\u51B3\u7B56\u64CD\u4F5C\u8005\uFF08\u5FC5\u586B\uFF09").option("--reason <text>","\u5BA1\u6279\u7406\u7531").action(async(D,$)=>{if($.decidedBy===void 0||$.decidedBy==="")_.error("[aiworker brain admission approve] --decided-by is required"),k.exit(2);k.exit(await nQ(D,{decidedBy:$.decidedBy,...$.reason===void 0?{}:{reason:$.reason}}))});g.command("brain admission reject <id>","\u628A pending proposal \u6807\u8BB0\u4E3A rejected").option("--decided-by <name>","\u8BB0\u5F55\u51B3\u7B56\u64CD\u4F5C\u8005\uFF08\u5FC5\u586B\uFF09").option("--reason <text>","\u62D2\u7EDD\u7406\u7531").action(async(D,$)=>{if($.decidedBy===void 0||$.decidedBy==="")_.error("[aiworker brain admission reject] --decided-by is required"),k.exit(2);k.exit(await rQ(D,{decidedBy:$.decidedBy,...$.reason===void 0?{}:{reason:$.reason}}))});g.command("brain admission apply <id>","\u6267\u884C approved proposal\uFF08\u9ED8\u8BA4 dry-run\uFF1BMVP \u4EC5\u652F\u6301 memory-add\uFF09").option("--decided-by <name>","\u8BB0\u5F55\u51B3\u7B56\u64CD\u4F5C\u8005\uFF08\u5FC5\u586B\uFF09").option("--commit","\u771F\u6B63\u5199 filesystem\uFF1B\u9ED8\u8BA4 dry-run \u4EC5\u6253\u5370 diff").option("--allow-secret-body <mode>","BUG-055 secret-body \u5904\u7406\u7B56\u7565\uFF1Ablock | redact | raw\uFF08\u9ED8\u8BA4 block\uFF09").action(async(D,$)=>{if($.decidedBy===void 0||$.decidedBy==="")_.error("[aiworker brain admission apply] --decided-by is required"),k.exit(2);if($.allowSecretBody!==void 0&&$.allowSecretBody!=="block"&&$.allowSecretBody!=="redact"&&$.allowSecretBody!=="raw")_.error(`[aiworker brain admission apply] --allow-secret-body must be one of block | redact | raw, got "${$.allowSecretBody}"`),k.exit(2);k.exit(await oQ(D,{decidedBy:$.decidedBy,...$.commit===void 0?{}:{commit:$.commit},...$.allowSecretBody===void 0?{}:{allowSecretBody:$.allowSecretBody}}))});g.command("brain admission propose","\u63D0\u4EA4\u4E00\u6761 pending brain admission proposal\uFF08\u9700 operator \u540E\u7EED approve/apply\uFF09").option("--id <id>","proposal id\uFF08\u5FC5\u586B\uFF0Ckebab-case\uFF09").option("--kind <kind>","proposal kind\uFF08\u9ED8\u8BA4 memory-add\uFF09").option("--target <text>","target \u8DEF\u5F84\u6216 artifact id\uFF08\u5FC5\u586B\uFF09").option("--summary <text>","proposal \u6458\u8981\uFF08\u5FC5\u586B\uFF09").option("--rollback <text>","rollback \u63CF\u8FF0\uFF08\u5FC5\u586B\uFF09").option("--soul <id>","soul id\uFF08\u5FC5\u586B\uFF09").option("--scope <id>","scope id\uFF08\u53EF\u9009\uFF09").option("--risk <level>","low | medium | high\uFF08\u9ED8\u8BA4 high\uFF09").option("--confidence <n>","0..1 \u4E4B\u95F4\u7684\u5C0F\u6570\uFF08\u9ED8\u8BA4 0.5\uFF09",{type:[Number]}).option("--evidence <path>","\u4ECE JSON \u6587\u4EF6\u8BFB\u53D6 evidence \u6570\u7EC4\uFF08\u53EF\u9009\uFF09").option("--payload <path>","\u4ECE JSON \u6587\u4EF6\u8BFB\u53D6 payload \u5BF9\u8C61\uFF08\u53EF\u9009\uFF09").action(async(D)=>{k.exit(await aQ({...D.id===void 0?{}:{id:D.id},...D.kind===void 0?{}:{kind:D.kind},...D.target===void 0?{}:{target:D.target},...D.summary===void 0?{}:{summary:D.summary},...D.rollback===void 0?{}:{rollback:D.rollback},...D.soul===void 0?{}:{soulId:D.soul},...D.scope===void 0?{}:{scopeId:D.scope},...D.risk===void 0?{}:{risk:D.risk},confidence:MD(D.confidence),...D.evidence===void 0?{}:{evidencePath:D.evidence},...D.payload===void 0?{}:{payloadPath:D.payload}}))});g.command("brain brief","\u628A canonical brain\uFF08AGENT/SOUL/USER/MEMORY/ROLLUP + scope manifest + Soul + artifacts\uFF09\u6295\u5F71\u6210 task-specific brief\uFF1Bpreview-only").option("--task <text>","\u4EFB\u52A1\u63CF\u8FF0\uFF08\u5FC5\u586B\uFF09").option("--scope <id>","\u6307\u5B9A scope id\uFF08\u9ED8\u8BA4\u4ECE .aiworker/scope.json \u8BFB\u53D6\uFF09").option("--soul <id>","\u6307\u5B9A Soul id\uFF08\u9ED8\u8BA4 scope manifest \u7684 primarySoul\uFF09").option("--artifact <id>","\u5173\u8054\u7684 brain artifact id\uFF1B\u53EF\u91CD\u590D\u51FA\u73B0",{type:[String]}).option("--executor <engine>","\u8BB0\u5F55\u76EE\u6807 executor engine \u63D0\u793A\uFF0C\u4E0D\u5B9E\u9645\u542F\u52A8 executor").option("--token-budget <n>","\u9ED8\u8BA4 4000\uFF1B\u8303\u56F4 200..50000",{type:[Number]}).action(async(D)=>{if(D.task===void 0||D.task.trim()==="")_.error("[aiworker brain brief] --task is required"),k.exit(2);k.exit(await sQ({task:D.task,...D.scope===void 0?{}:{scopeId:D.scope},...D.soul===void 0?{}:{soulId:D.soul},...D.artifact===void 0?{}:{artifactRefs:D.artifact},...D.executor===void 0?{}:{executor:D.executor},tokenBudget:MD(D.tokenBudget)}))});g.command("run","\u4E0D\u542F\u52A8 HTTP server\uFF0C\u76F4\u63A5\u7ED9 orchestrator \u6295\u9012\u4E00\u6761\u6D88\u606F").option("--message <text>","\u8981\u6295\u9012\u7684\u7528\u6237\u6D88\u606F\uFF08\u5FC5\u586B\uFF09").option("--chat-id <id>",'\u5408\u6210 chat id\uFF08\u9ED8\u8BA4 "cli:stdin"\uFF09').option("--dry-run","\u5B8C\u6210 bootstrap\uFF0C\u4F46\u4E0D\u771F\u6B63\u6295\u9012 envelope").option("--timeout-ms <n>","\u7B49\u5F85\u7EC8\u6001\u4E8B\u4EF6\u7684\u6700\u957F\u65F6\u95F4\uFF0C\u5355\u4F4D\u6BEB\u79D2\uFF08\u9ED8\u8BA4 120000\uFF09",{type:[Number]}).action(async(D)=>{let $=await OV({message:D.message,chatId:D.chatId,dryRun:D.dryRun,timeoutMs:MD(D.timeoutMs)});k.exit($)});g.command("serve","\u542F\u52A8 worker HTTP server\uFF08\u7B49\u4EF7\u4E8E AIWORKER_MODE=worker\uFF09").option("--port <n>","\u8986\u76D6 PORT \u73AF\u5883\u53D8\u91CF",{type:[Number]}).option("--host <host>","\u8986\u76D6 AIWORKER_WORKER_HOST\uFF08\u9ED8\u8BA4 127.0.0.1\uFF09").option("--gateway <url>","\u968F HTTP server \u4E00\u8D77\u8FDE\u63A5\u6307\u5B9A gateway WebSocket URL").option("--gateway-token <token>","\u8FDE\u63A5 gateway \u65F6\u4F7F\u7528\u7684 bearer token\uFF08loopback \u53EF\u7701\u7565\uFF09").option("--no-reconnect","\u5173\u95ED gateway-client \u81EA\u52A8\u91CD\u8FDE\uFF08smoke / \u6D4B\u8BD5\u65F6\u4F7F\u7528\uFF09").option("--no-serve-web","\u4E0D\u6302\u8F7D worker bundle \u5230 /admin/*\uFF08\u9ED8\u8BA4\u6302\u8F7D\uFF09").option("--open","\u542F\u52A8\u540E\u6253\u5F00 worker admin").option("--no-open","\u542F\u52A8\u540E\u4E0D\u81EA\u52A8\u6253\u5F00 worker admin").option("--pid-file <path>","TODO-016\uFF1Adaemon pid \u5199\u5165\u6307\u5B9A\u8DEF\u5F84\uFF08\u5173\u95ED\u65F6\u6E05\u7406\uFF09\uFF1B\u9002\u5408 setsid \u5305\u88C5\u4E0B\u7684\u8FDB\u7A0B\u8DDF\u8E2A").action(async(D)=>{let $={},F=MD(D.port);if(F!==void 0)$.port=F;if(D.host!==void 0)$.host=D.host;if(D.gateway!==void 0)$.gateway=D.gateway;if(D.gatewayToken!==void 0)$.gatewayToken=D.gatewayToken;if(D.reconnect===!1)$.gatewayReconnect=!1;if(D.serveWeb===!1)$.serveWeb=!1;if(D.pidFile!==void 0&&D.pidFile.trim().length>0)$.pidFile=D.pidFile.trim();let X=yJ();if(X!==void 0)$.open=X;$.runtimeVersion=k6.version,await D5($)});g.command("config show","\u4EE5 JSON \u6253\u5370\u672C\u5730 worker \u914D\u7F6E\uFF08\u7F3A\u5931\u65F6\u4F1A\u521D\u59CB\u5316\u672C\u5730 worker \u72B6\u6001\uFF09").action(async()=>{k.exit(await tQ())});g.command("config set <json>","\u66FF\u6362\u672C\u5730 worker \u914D\u7F6E").option("--if-match <version>","\u4E50\u89C2\u9501\uFF1B\u5F53\u524D\u5B58\u50A8 version \u4E0D\u7B49\u4E8E\u6B64\u503C\u5219\u62D2\u7EDD",{type:[Number]}).action(async(D,$)=>{k.exit(await eQ({json:D,ifMatch:MD($.ifMatch)}))});g.command("token rotate","\u751F\u6210\u65B0\u7684 bearer token\uFF1B\u660E\u6587\u53EA\u6253\u5370\u4E00\u6B21").action(async()=>{k.exit(await FA())});g.command("approvals list","\u5217\u51FA\u5F53\u524D worker \u8FDB\u7A0B\u5185\u6302\u8D77\u7684\u5DE5\u5177\u5BA1\u6279").action(async()=>{k.exit(await hQ())});g.command("approvals grant <taskId> <toolCallId>","\u89E3\u9501\u67D0\u6761\u6302\u8D77\u7684\u5DE5\u5177\u5BA1\u6279").option("--deny","\u4E0B\u53D1\u62D2\u7EDD\u51B3\u7B56\uFF1B\u9ED8\u8BA4\u5141\u8BB8").action(async(D,$,F)=>{k.exit(await vQ({taskId:D,toolCallId:$,...F.deny===void 0?{}:{deny:F.deny}}))});g.command("schedule list","\u5217\u51FA\u672C\u5730 worker.db \u4E2D\u6301\u4E45\u5316\u7684\u6240\u6709 cron \u4EFB\u52A1").action(async()=>{k.exit(await jV())});g.command("schedule add","\u5411\u672C\u5730 worker.db \u65B0\u589E cron \u4EFB\u52A1\uFF08\u4F1A\u5148\u6821\u9A8C\u8868\u8FBE\u5F0F\uFF09").option("--expression <expr>","\u4E94\u6BB5 cron \u8868\u8FBE\u5F0F\uFF08\u5FC5\u586B\uFF09").option("--prompt <text>","\u4EFB\u52A1\u89E6\u53D1\u65F6\u5408\u6210\u7684 envelope.text\uFF08\u5FC5\u586B\uFF09").option("--channel <channel>","channel \u7C7B\u578B\uFF1Aweb/line/telegram/lark/whatsapp\uFF08\u5FC5\u586B\uFF09").option("--chat-id <id>","\u4EFB\u52A1\u89E6\u53D1\u65F6\u4F7F\u7528\u7684 chatId\uFF08\u5FC5\u586B\uFF09").option("--account-id <id>","\u8986\u76D6 accountId\uFF08\u9ED8\u8BA4 sys:cron\uFF09").option("--disabled","\u4EE5 enabled=false \u4FDD\u5B58\uFF08\u9ED8\u8BA4 enabled=true\uFF09").action(async(D)=>{if(!D.expression||!D.prompt||!D.channel||!D.chatId)_.error("[aiworker schedule add] requires --expression, --prompt, --channel, --chat-id"),k.exit(2);let $=await NV({expression:D.expression,prompt:D.prompt,channel:D.channel,chatId:D.chatId,...D.accountId===void 0?{}:{accountId:D.accountId},...D.disabled===!0?{enabled:!1}:{}});k.exit($)});g.command("schedule remove <jobId>","\u4ECE\u672C\u5730 worker.db \u5220\u9664\u4E00\u6761 cron \u4EFB\u52A1").action(async(D)=>{k.exit(await PV(D))});g.command("sessions list","\u4ECE worker.db \u5217\u51FA\u672C\u5730 worker \u4F1A\u8BDD\u72B6\u6001").option("--limit <n>","\u6700\u591A\u8FD4\u56DE\u4F1A\u8BDD\u6570\uFF081-200\uFF0C\u9ED8\u8BA4 50\uFF09",{type:[Number]}).option("--offset <n>","\u5206\u9875\u504F\u79FB\u91CF\uFF08\u9ED8\u8BA4 0\uFF09",{type:[Number]}).option("--status <status>","\u6309\u72B6\u6001\u8FC7\u6EE4\uFF1Aactive \u6216 closed").action(async(D)=>{k.exit(await aV({limit:MD(D.limit),offset:MD(D.offset),...D.status===void 0?{}:{status:D.status}}))});g.command("sessions show <sessionKey>","\u6309 session key \u67E5\u770B\u4E00\u4E2A\u672C\u5730 worker \u4F1A\u8BDD\u72B6\u6001").action(async(D)=>{k.exit(await oV(D))});g.command("sessions maintenance","\u8BD5\u7B97\u5DF2\u5173\u95ED transcript \u6E05\u7406\uFF1B\u5E26 --apply \u624D\u4F1A\u5B9E\u9645\u5220\u9664").option("--older-than-days <n>","\u5DF2\u5173\u95ED transcript \u4FDD\u7559\u5929\u6570\uFF08\u9ED8\u8BA4 30\uFF09",{type:[Number]}).option("--limit <n>","\u6700\u591A\u8BD5\u7B97/\u6E05\u7406 transcript \u6570\u91CF\uFF081-200\uFF0C\u9ED8\u8BA4 50\uFF09",{type:[Number]}).option("--apply","\u5B9E\u9645\u5220\u9664\u8BA1\u5212\u5185\u7684\u5DF2\u5173\u95ED transcript\uFF0C\u800C\u4E0D\u662F dry-run").action(async(D)=>{k.exit(await tV({olderThanDays:MD(D.olderThanDays),limit:MD(D.limit),...D.apply===void 0?{}:{apply:D.apply}}))});g.command("worker init","\u521D\u59CB\u5316 worker.db\u3001\u8EAB\u4EFD\u3001token \u548C\u9ED8\u8BA4\u914D\u7F6E\uFF08\u9ED8\u8BA4\u5F53\u524D\u9879\u76EE `<cwd>/.aiworker/`\uFF1B--global \u4F7F\u7528\u65E7\u7248 ~/.aiworker\uFF09").option("--global","\u521D\u59CB\u5316\u65E7\u7248\u7528\u6237\u7EA7 `~/.aiworker/`\uFF08\u5355\u4E3B\u673A\u5168\u5C40 worker\uFF09").option("--force","\u9879\u76EE\u521D\u59CB\u5316\u5141\u8BB8\u5728\u975E git \u76EE\u5F55\u8FD0\u884C\uFF0C\u4E14\u4ECD\u4E0D\u4F1A\u8986\u76D6\u73B0\u6709\u6587\u4EF6").option("--dry-run","\u53EA\u6253\u5370\u521D\u59CB\u5316\u9884\u68C0\u548C\u8BA1\u5212\u5199\u5165\uFF0C\u4E0D\u521B\u5EFA\u6216\u4FEE\u6539\u6587\u4EF6").option("--soul <preset>","\u9879\u76EE\u7EA7\u521D\u59CB\u5316\u4F7F\u7528\u7684 Soul \u9884\u8BBE\uFF1B\u975E\u4EA4\u4E92 brand-new init \u5FC5\u586B\uFF0C\u53EF\u9009 developer/project-manager/devops-sre/product-designer/qa-reviewer/support-operator/finance-ops/hr-recruiting/general-assistant/customize").option("--token-file <path>","\u9996\u6B21\u521D\u59CB\u5316\u65F6\u628A\u5B8C\u6574 bootstrap token \u5199\u5165 chmod 600 \u6587\u4EF6\uFF1B\u9ED8\u8BA4\u5199\u5165 worker local bootstrap-token.txt").option("--show-token","\u9996\u6B21\u521D\u59CB\u5316\u65F6\u5728 stdout \u9AD8\u53EF\u89C1 warning block \u4E2D\u663E\u793A\u5B8C\u6574 bootstrap token").action(async(D)=>{k.exit(await y4({...D.global===!0?{global:!0}:{},...D.force===!0?{force:!0}:{},...D.dryRun===!0?{dryRun:!0}:{},...D.soul===void 0?{}:{soul:D.soul},...D.tokenFile===void 0?{}:{tokenFile:D.tokenFile},...D.showToken===!0?{showToken:!0}:{}}))});g.command("worker up","\u4E00\u6761\u547D\u4EE4\u521D\u59CB\u5316\u3001\u9A8C\u8BC1\u5E76\u542F\u52A8\u672C\u5730 worker HTTP/admin").option("--soul <preset>","brand-new project \u521D\u59CB\u5316\u4F7F\u7528\u7684 Soul \u9884\u8BBE\uFF1B\u5DF2\u521D\u59CB\u5316\u9879\u76EE\u4E0D\u4F1A\u6D88\u8D39\u6B64\u53C2\u6570").option("--dry-run","\u53EA\u6253\u5370 up \u9636\u6BB5\u548C\u9884\u68C0\u7ED3\u679C\uFF0C\u4E0D\u521D\u59CB\u5316\u3001\u4E0D\u542F\u52A8 HTTP server\u3001\u4E0D\u6253\u5F00\u6D4F\u89C8\u5668").option("--port <n>","\u8986\u76D6 PORT \u73AF\u5883\u53D8\u91CF",{type:[Number]}).option("--host <host>","\u8986\u76D6 AIWORKER_WORKER_HOST\uFF08\u9ED8\u8BA4 127.0.0.1\uFF09").option("--gateway <url>","\u968F HTTP server \u4E00\u8D77\u8FDE\u63A5\u6307\u5B9A gateway WebSocket URL").option("--gateway-token <token>","\u8FDE\u63A5 gateway \u65F6\u4F7F\u7528\u7684 bearer token\uFF08loopback \u53EF\u7701\u7565\uFF09").option("--no-reconnect","\u5173\u95ED gateway-client \u81EA\u52A8\u91CD\u8FDE\uFF08smoke / \u6D4B\u8BD5\u65F6\u4F7F\u7528\uFF09").option("--no-serve-web","\u4E0D\u6302\u8F7D worker bundle \u5230 /admin/*\uFF08\u9ED8\u8BA4\u6302\u8F7D\uFF09").option("--open","\u542F\u52A8\u540E\u6253\u5F00 worker admin").option("--no-open","\u542F\u52A8\u540E\u4E0D\u81EA\u52A8\u6253\u5F00 worker admin").action(async(D)=>{let $=yJ(),F=MD(D.port);k.exit(await JA({...D.soul===void 0?{}:{soul:D.soul},...D.dryRun===!0?{dryRun:!0}:{},...F===void 0?{}:{port:F},...D.host===void 0?{}:{host:D.host},...D.gateway===void 0?{}:{gateway:D.gateway},...D.gatewayToken===void 0?{}:{gatewayToken:D.gatewayToken},...D.reconnect===!1?{gatewayReconnect:!1}:{},...D.serveWeb===!1?{serveWeb:!1}:{},...$===void 0?{}:{open:$},runtimeVersion:k6.version}))});g.command("worker scope","\u6253\u5370\u5F53\u524D aiworker scope\uFF08user/project/explicit\uFF09\u548C\u5173\u952E\u5E03\u5C40\u6587\u4EF6\u72B6\u6001").action(async()=>{k.exitCode=await LV()});g.command("worker doctor","\u9759\u6001\u9A8C\u8BC1\u5F53\u524D `.aiworker/` capability manifests\u3001Skill metadata \u548C MCP descriptors").action(async()=>{k.exit(await FV())});g.command("worker executor mcp add <name>","\u5728 project executor overlay \u4E2D\u58F0\u660E\u4E00\u4E2A MCP server hint\uFF0C\u5199\u5165 `.aiworker/executor-capabilities.json`").option("--engine <engine>","\u76EE\u6807 engine\uFF1Acodex \u6216 claude-code").option("--scope <scope>","MCP \u914D\u7F6E scope\uFF1B\u5F53\u524D\u4EC5\u652F\u6301 project").option("--transport <transport>","MCP transport\uFF1Astdio / streamable-http / sse\uFF1B\u672A\u6307\u5B9A\u65F6\u6309 --url \u63A8\u65AD").option("--url <url>","HTTP/SSE MCP server URL").option("--command <command>","stdio MCP server command").option("--arg <value>","stdio command \u53C2\u6570\uFF1B\u53EF\u91CD\u590D").option("--env <key=value>","\u6295\u5F71\u5230 engine CLI \u7684 env\uFF1Bsecret \u7528 key=secretRef:<ref>\uFF1B\u53EF\u91CD\u590D").option("--header <key=value>","\u6295\u5F71\u5230 engine CLI \u7684 header\uFF1Bsecret \u7528 key=secretRef:<ref>\uFF1B\u53EF\u91CD\u590D").option("--bearer-token-env-var <env>","Codex streamable HTTP MCP bearer token \u73AF\u5883\u53D8\u91CF\u540D").option("--description <text>","MCP server \u63CF\u8FF0").option("--dry-run","\u53EA\u9884\u89C8 manifest \u53D8\u66F4\uFF0C\u4E0D\u5199\u6587\u4EF6").action(async(D,$)=>{k.exit(await YV(D,$))});g.command("worker executor mcp sync","\u628A project executor overlay best-effort \u6295\u5F71\u5230 engine \u5B98\u65B9 project-scope MCP \u914D\u7F6E\uFF08\u975E effective capability source of truth\uFF09").option("--engine <engine>","\u76EE\u6807 engine\uFF1Acodex \u6216 claude-code").option("--dry-run","\u53EA\u6253\u5370\u5C06\u6267\u884C\u7684 engine CLI \u547D\u4EE4").action(async(D)=>{k.exit(await BV(D))});g.command("worker executor select","\u663E\u5F0F\u9009\u62E9\u672C\u5730 worker \u7684 task executor\uFF0C\u4E0D\u5199 engine project config").option("--engine <engine>","\u76EE\u6807 task executor engine\uFF0C\u4F8B\u5982 codex / claude-code / http").option("--variant <variant>","executor variant\uFF08\u9ED8\u8BA4 default\uFF09").option("--model-id <model>","\u53EF\u9009 per-request model override").option("--reasoning-id <id>","\u53EF\u9009 reasoning preset").option("--permission-policy <policy>","\u53EF\u9009\u6743\u9650\u7B56\u7565\uFF1Aauto / supervised / plan").option("--timeout-ms <n>","\u53EF\u9009 executor \u5355 turn hard timeout\uFF0C\u5355\u4F4D\u6BEB\u79D2",{type:[Number]}).option("--if-match <version>","apply \u65F6\u4F7F\u7528\u7684\u4E50\u89C2\u9501\uFF1B\u5F53\u524D config version \u4E0D\u7B49\u4E8E\u6B64\u503C\u5219\u62D2\u7EDD",{type:[Number]}).option("--apply","\u6301\u4E45\u5316 executor \u9009\u62E9\uFF1B\u9ED8\u8BA4\u53EA dry-run").option("--dry-run","\u53EA\u6253\u5370\u5C06\u66F4\u65B0\u7684 executor \u9009\u62E9").action(async(D)=>{k.exit(await WV({...D.apply===!0?{apply:!0}:{},...D.dryRun===!0?{dryRun:!0}:{},...D.engine===void 0?{}:{engine:D.engine},...D.variant===void 0?{}:{variant:D.variant},...D.modelId===void 0?{}:{modelId:D.modelId},...D.reasoningId===void 0?{}:{reasoningId:D.reasoningId},...D.permissionPolicy===void 0?{}:{permissionPolicy:D.permissionPolicy},timeoutMs:MD(D.timeoutMs),ifMatch:MD(D.ifMatch)}))});g.command("worker executor doctor","\u6821\u9A8C project executor overlay \u4E0E engine CLI readiness\uFF08\u4E0D\u63A2\u6D4B user/host ambient capabilities\uFF09").option("--engine <engine>","\u53EA\u68C0\u67E5\u4E00\u4E2A engine\uFF1Acodex \u6216 claude-code").action(async(D)=>{k.exit(await HV(D))});g.command("worker executor capability list","\u53EA\u8BFB\u5217\u51FA .aiworker/executor-capabilities.json \u4E2D\u7684 project executor overlay \u6761\u76EE").option("--engine <engine>","\u53EA\u5217\u51FA\u4E00\u4E2A engine\uFF1Acodex \u6216 claude-code").action(async(D)=>{k.exit(await UV(D))});g.command("worker executor capability show <ref>","\u53EA\u8BFB\u67E5\u770B\u5355\u6761 project executor overlay descriptor\uFF0Cref \u5F62\u5982 codex.mcp.context7").action(async(D)=>{k.exit(await QV(D))});g.command("worker soul list","\u5217\u51FA\u5185\u7F6E Soul \u9884\u8BBE\u53CA\u5176\u58F0\u660E\u80FD\u529B").action(async()=>{k.exit(await DA())});g.command("worker soul show <preset>","\u67E5\u770B\u67D0\u4E2A Soul \u9884\u8BBE\u7684\u804C\u8D23\u3001\u8FB9\u754C\u3001\u80FD\u529B\u8349\u6848\u548C\u98CE\u9669\u7B56\u7565").action(async(D)=>{k.exit(await $A(D))});g.command("worker brain status","\u53EA\u8BFB\u8BCA\u65AD\u672C\u5730 worker runtime brain source\u3001\u5199\u5165\u76EE\u6807\u548C\u5065\u5EB7\u72B6\u6001").action(async()=>{k.exit(await uQ())});g.command("worker brain skills","\u53EA\u8BFB\u5217\u51FA\u672C\u5730 runtime brain \u66B4\u9732\u7684 brain skill").action(async()=>{k.exit(await mQ())});g.command("worker brain memories","\u53EA\u8BFB\u5217\u51FA\u6216\u641C\u7D22\u672C\u5730 runtime brain memory").option("--query <text>","\u641C\u7D22 memory \u5185\u5BB9\u3001\u6807\u9898\u6216 metadata").option("--limit <n>","\u6700\u591A\u8FD4\u56DE memory \u6570\u91CF\uFF081-200\uFF0C\u9ED8\u8BA4 50\uFF09",{type:[Number]}).action(async(D)=>{k.exit(await cQ({limit:MD(D.limit),...D.query===void 0?{}:{query:D.query}}))});g.command("worker brain artifacts list","\u53EA\u8BFB\u5217\u51FA\u672C\u5730 worker scope \u6CE8\u518C\u7684 brain artifact").option("--scope <id>","\u6309 scope id \u8FC7\u6EE4").option("--type <id>","\u6309 artifact type \u8FC7\u6EE4").option("--status <s>","active / archived / removed").option("--min-sensitivity <s>","public / internal / confidential / secret").option("--limit <n>","\u6700\u591A\u8FD4\u56DE artifact \u6570\u91CF\uFF081-200\uFF0C\u9ED8\u8BA4 50\uFF09",{type:[Number]}).option("--show-sensitive","\u4E0D\u518D redact confidential / secret artifact \u7684 ref / hash").action(async(D)=>{k.exit(await pQ({...D.scope===void 0?{}:{scopeId:D.scope},...D.type===void 0?{}:{type:D.type},...D.status===void 0?{}:{status:D.status},...D.minSensitivity===void 0?{}:{minSensitivity:D.minSensitivity},limit:MD(D.limit),...D.showSensitive===void 0?{}:{showSensitive:D.showSensitive}}))});g.command("worker brain artifacts show <id>","\u53EA\u8BFB\u67E5\u770B\u5355\u4E2A brain artifact").option("--show-sensitive","\u4E0D\u518D redact confidential / secret artifact \u7684 ref / hash").action(async(D,$)=>{k.exit(await dQ(D,{...$.showSensitive===void 0?{}:{showSensitive:$.showSensitive}}))});g.command("worker brain admission list","\u5217\u51FA\u672C\u5730 worker \u7684 brain admission proposal").option("--status <s>","pending / approved / rejected / applied / failed").option("--kind <k>","\u6309 proposal kind \u8FC7\u6EE4").option("--scope <id>","\u6309 scope id \u8FC7\u6EE4").option("--soul <id>","\u6309 Soul id \u8FC7\u6EE4").option("--limit <n>","\u6700\u591A\u8FD4\u56DE proposal \u6570\u91CF\uFF081-200\uFF0C\u9ED8\u8BA4 50\uFF09",{type:[Number]}).option("--show-sensitive","\u4E0D\u518D redact evidence / payload \u4E2D secret-like \u5B57\u6BB5").action(async(D)=>{k.exit(await lQ({...D.status===void 0?{}:{status:D.status},...D.kind===void 0?{}:{kind:D.kind},...D.scope===void 0?{}:{scopeId:D.scope},...D.soul===void 0?{}:{soulId:D.soul},limit:MD(D.limit),...D.showSensitive===void 0?{}:{showSensitive:D.showSensitive}}))});g.command("worker brain admission show <id>","\u53EA\u8BFB\u67E5\u770B\u5355\u4E2A admission proposal \u4E0E decision \u5386\u53F2").option("--show-sensitive","\u4E0D\u518D redact evidence / payload \u4E2D secret-like \u5B57\u6BB5").action(async(D,$)=>{k.exit(await iQ(D,{...$.showSensitive===void 0?{}:{showSensitive:$.showSensitive}}))});g.command("worker brain admission approve <id>","\u628A pending proposal \u6807\u8BB0\u4E3A approved\uFF08\u4E0D\u4F1A\u81EA\u52A8 apply\uFF09").option("--decided-by <name>","\u8BB0\u5F55\u51B3\u7B56\u64CD\u4F5C\u8005\uFF08\u5FC5\u586B\uFF09").option("--reason <text>","\u5BA1\u6279\u7406\u7531").action(async(D,$)=>{if($.decidedBy===void 0||$.decidedBy==="")_.error("[aiworker worker brain admission approve] --decided-by is required"),k.exit(2);k.exit(await nQ(D,{decidedBy:$.decidedBy,...$.reason===void 0?{}:{reason:$.reason}}))});g.command("worker brain admission reject <id>","\u628A pending proposal \u6807\u8BB0\u4E3A rejected").option("--decided-by <name>","\u8BB0\u5F55\u51B3\u7B56\u64CD\u4F5C\u8005\uFF08\u5FC5\u586B\uFF09").option("--reason <text>","\u62D2\u7EDD\u7406\u7531").action(async(D,$)=>{if($.decidedBy===void 0||$.decidedBy==="")_.error("[aiworker worker brain admission reject] --decided-by is required"),k.exit(2);k.exit(await rQ(D,{decidedBy:$.decidedBy,...$.reason===void 0?{}:{reason:$.reason}}))});g.command("worker brain admission apply <id>","\u6267\u884C approved proposal\uFF08\u9ED8\u8BA4 dry-run\uFF1BMVP \u4EC5\u652F\u6301 memory-add\uFF09").option("--decided-by <name>","\u8BB0\u5F55\u51B3\u7B56\u64CD\u4F5C\u8005\uFF08\u5FC5\u586B\uFF09").option("--commit","\u771F\u6B63\u5199 filesystem\uFF1B\u9ED8\u8BA4 dry-run \u4EC5\u6253\u5370 diff").option("--allow-secret-body <mode>","BUG-055 secret-body \u5904\u7406\u7B56\u7565\uFF1Ablock | redact | raw\uFF08\u9ED8\u8BA4 block\uFF09").action(async(D,$)=>{if($.decidedBy===void 0||$.decidedBy==="")_.error("[aiworker worker brain admission apply] --decided-by is required"),k.exit(2);if($.allowSecretBody!==void 0&&$.allowSecretBody!=="block"&&$.allowSecretBody!=="redact"&&$.allowSecretBody!=="raw")_.error(`[aiworker worker brain admission apply] --allow-secret-body must be one of block | redact | raw, got "${$.allowSecretBody}"`),k.exit(2);k.exit(await oQ(D,{decidedBy:$.decidedBy,...$.commit===void 0?{}:{commit:$.commit},...$.allowSecretBody===void 0?{}:{allowSecretBody:$.allowSecretBody}}))});g.command("worker brain admission propose","\u63D0\u4EA4\u4E00\u6761 pending brain admission proposal\uFF08\u9700 operator \u540E\u7EED approve/apply\uFF09").option("--id <id>","proposal id\uFF08\u5FC5\u586B\uFF0Ckebab-case\uFF09").option("--kind <kind>","proposal kind\uFF08\u9ED8\u8BA4 memory-add\uFF09").option("--target <text>","target \u8DEF\u5F84\u6216 artifact id\uFF08\u5FC5\u586B\uFF09").option("--summary <text>","proposal \u6458\u8981\uFF08\u5FC5\u586B\uFF09").option("--rollback <text>","rollback \u63CF\u8FF0\uFF08\u5FC5\u586B\uFF09").option("--soul <id>","soul id\uFF08\u5FC5\u586B\uFF09").option("--scope <id>","scope id\uFF08\u53EF\u9009\uFF09").option("--risk <level>","low | medium | high\uFF08\u9ED8\u8BA4 high\uFF09").option("--confidence <n>","0..1 \u4E4B\u95F4\u7684\u5C0F\u6570\uFF08\u9ED8\u8BA4 0.5\uFF09",{type:[Number]}).option("--evidence <path>","\u4ECE JSON \u6587\u4EF6\u8BFB\u53D6 evidence \u6570\u7EC4\uFF08\u53EF\u9009\uFF09").option("--payload <path>","\u4ECE JSON \u6587\u4EF6\u8BFB\u53D6 payload \u5BF9\u8C61\uFF08\u53EF\u9009\uFF09").action(async(D)=>{k.exit(await aQ({...D.id===void 0?{}:{id:D.id},...D.kind===void 0?{}:{kind:D.kind},...D.target===void 0?{}:{target:D.target},...D.summary===void 0?{}:{summary:D.summary},...D.rollback===void 0?{}:{rollback:D.rollback},...D.soul===void 0?{}:{soulId:D.soul},...D.scope===void 0?{}:{scopeId:D.scope},...D.risk===void 0?{}:{risk:D.risk},confidence:MD(D.confidence),...D.evidence===void 0?{}:{evidencePath:D.evidence},...D.payload===void 0?{}:{payloadPath:D.payload}}))});g.command("worker brain brief","\u628A canonical brain \u6295\u5F71\u6210 task-specific brief\uFF1Bpreview-only").option("--task <text>","\u4EFB\u52A1\u63CF\u8FF0\uFF08\u5FC5\u586B\uFF09").option("--scope <id>","\u6307\u5B9A scope id\uFF08\u9ED8\u8BA4\u4ECE .aiworker/scope.json \u8BFB\u53D6\uFF09").option("--soul <id>","\u6307\u5B9A Soul id\uFF08\u9ED8\u8BA4 scope manifest \u7684 primarySoul\uFF09").option("--artifact <id>","\u5173\u8054\u7684 brain artifact id\uFF1B\u53EF\u91CD\u590D\u51FA\u73B0",{type:[String]}).option("--executor <engine>","\u8BB0\u5F55\u76EE\u6807 executor engine \u63D0\u793A").option("--token-budget <n>","\u9ED8\u8BA4 4000\uFF1B\u8303\u56F4 200..50000",{type:[Number]}).action(async(D)=>{if(D.task===void 0||D.task.trim()==="")_.error("[aiworker worker brain brief] --task is required"),k.exit(2);k.exit(await sQ({task:D.task,...D.scope===void 0?{}:{scopeId:D.scope},...D.soul===void 0?{}:{soulId:D.soul},...D.artifact===void 0?{}:{artifactRefs:D.artifact},...D.executor===void 0?{}:{executor:D.executor},tokenBudget:MD(D.tokenBudget)}))});g.command("worker run","\u4E0D\u542F\u52A8 HTTP server\uFF0C\u76F4\u63A5\u7ED9 orchestrator \u6295\u9012\u4E00\u6761\u6D88\u606F").option("--message <text>","\u8981\u6295\u9012\u7684\u7528\u6237\u6D88\u606F\uFF08\u5FC5\u586B\uFF09").option("--chat-id <id>",'\u5408\u6210 chat id\uFF08\u9ED8\u8BA4 "cli:stdin"\uFF09').option("--dry-run","\u5B8C\u6210 bootstrap\uFF0C\u4F46\u4E0D\u771F\u6B63\u6295\u9012 envelope").option("--timeout-ms <n>","\u7B49\u5F85\u7EC8\u6001\u4E8B\u4EF6\u7684\u6700\u957F\u65F6\u95F4\uFF0C\u5355\u4F4D\u6BEB\u79D2\uFF08\u9ED8\u8BA4 120000\uFF09",{type:[Number]}).action(async(D)=>{let $=await OV({message:D.message,chatId:D.chatId,dryRun:D.dryRun,timeoutMs:MD(D.timeoutMs)});k.exit($)});g.command("worker serve","\u542F\u52A8 worker HTTP server\uFF08\u7B49\u4EF7\u4E8E AIWORKER_MODE=worker\uFF09").option("--port <n>","\u8986\u76D6 PORT \u73AF\u5883\u53D8\u91CF",{type:[Number]}).option("--host <host>","\u8986\u76D6 AIWORKER_WORKER_HOST\uFF08\u9ED8\u8BA4 127.0.0.1\uFF09").option("--gateway <url>","\u968F HTTP server \u4E00\u8D77\u8FDE\u63A5\u6307\u5B9A gateway WebSocket URL").option("--gateway-token <token>","\u8FDE\u63A5 gateway \u65F6\u4F7F\u7528\u7684 bearer token\uFF08loopback \u53EF\u7701\u7565\uFF09").option("--no-reconnect","\u5173\u95ED gateway-client \u81EA\u52A8\u91CD\u8FDE\uFF08smoke / \u6D4B\u8BD5\u65F6\u4F7F\u7528\uFF09").option("--no-serve-web","\u4E0D\u6302\u8F7D worker bundle \u5230 /admin/*\uFF08\u9ED8\u8BA4\u6302\u8F7D\uFF09").option("--open","\u542F\u52A8\u540E\u6253\u5F00 worker admin").option("--no-open","\u542F\u52A8\u540E\u4E0D\u81EA\u52A8\u6253\u5F00 worker admin").option("--pid-file <path>","TODO-016\uFF1Adaemon pid \u5199\u5165\u6307\u5B9A\u8DEF\u5F84\uFF08\u5173\u95ED\u65F6\u6E05\u7406\uFF09\uFF1B\u9002\u5408 setsid \u5305\u88C5\u4E0B\u7684\u8FDB\u7A0B\u8DDF\u8E2A").action(async(D)=>{let $={},F=MD(D.port);if(F!==void 0)$.port=F;if(D.host!==void 0)$.host=D.host;if(D.gateway!==void 0)$.gateway=D.gateway;if(D.gatewayToken!==void 0)$.gatewayToken=D.gatewayToken;if(D.reconnect===!1)$.gatewayReconnect=!1;if(D.serveWeb===!1)$.serveWeb=!1;if(D.pidFile!==void 0&&D.pidFile.trim().length>0)$.pidFile=D.pidFile.trim();let X=yJ();if(X!==void 0)$.open=X;$.runtimeVersion=k6.version,await D5($)});g.command("worker config show","\u4EE5 JSON \u6253\u5370\u672C\u5730 worker \u914D\u7F6E\uFF08\u7F3A\u5931\u65F6\u4F1A\u521D\u59CB\u5316\u672C\u5730 worker \u72B6\u6001\uFF09").action(async()=>{k.exit(await tQ())});g.command("worker config set <json>","\u66FF\u6362\u672C\u5730 worker \u914D\u7F6E").option("--if-match <version>","\u4E50\u89C2\u9501\uFF1B\u5F53\u524D\u5B58\u50A8 version \u4E0D\u7B49\u4E8E\u6B64\u503C\u5219\u62D2\u7EDD",{type:[Number]}).action(async(D,$)=>{k.exit(await eQ({json:D,ifMatch:MD($.ifMatch)}))});g.command("worker token rotate","\u751F\u6210\u65B0\u7684 bearer token\uFF1B\u660E\u6587\u53EA\u6253\u5370\u4E00\u6B21").action(async()=>{k.exit(await FA())});g.command("worker approvals list","\u5217\u51FA\u5F53\u524D worker \u8FDB\u7A0B\u5185\u6302\u8D77\u7684\u5DE5\u5177\u5BA1\u6279").action(async()=>{k.exit(await hQ())});g.command("worker approvals grant <taskId> <toolCallId>","\u89E3\u9501\u67D0\u6761\u6302\u8D77\u7684\u5DE5\u5177\u5BA1\u6279").option("--deny","\u4E0B\u53D1\u62D2\u7EDD\u51B3\u7B56\uFF1B\u9ED8\u8BA4\u5141\u8BB8").action(async(D,$,F)=>{k.exit(await vQ({taskId:D,toolCallId:$,...F.deny===void 0?{}:{deny:F.deny}}))});g.command("worker schedule list","\u5217\u51FA\u672C\u5730 worker.db \u4E2D\u6301\u4E45\u5316\u7684\u6240\u6709 cron \u4EFB\u52A1").action(async()=>{k.exit(await jV())});g.command("worker schedule add","\u5411\u672C\u5730 worker.db \u65B0\u589E cron \u4EFB\u52A1\uFF08\u4F1A\u5148\u6821\u9A8C\u8868\u8FBE\u5F0F\uFF09").option("--expression <expr>","\u4E94\u6BB5 cron \u8868\u8FBE\u5F0F\uFF08\u5FC5\u586B\uFF09").option("--prompt <text>","\u4EFB\u52A1\u89E6\u53D1\u65F6\u5408\u6210\u7684 envelope.text\uFF08\u5FC5\u586B\uFF09").option("--channel <channel>","channel \u7C7B\u578B\uFF1Aweb/line/telegram/lark/whatsapp\uFF08\u5FC5\u586B\uFF09").option("--chat-id <id>","\u4EFB\u52A1\u89E6\u53D1\u65F6\u4F7F\u7528\u7684 chatId\uFF08\u5FC5\u586B\uFF09").option("--account-id <id>","\u8986\u76D6 accountId\uFF08\u9ED8\u8BA4 sys:cron\uFF09").option("--disabled","\u4EE5 enabled=false \u4FDD\u5B58\uFF08\u9ED8\u8BA4 enabled=true\uFF09").action(async(D)=>{if(!D.expression||!D.prompt||!D.channel||!D.chatId)_.error("[aiworker worker schedule add] requires --expression, --prompt, --channel, --chat-id"),k.exit(2);let $=await NV({expression:D.expression,prompt:D.prompt,channel:D.channel,chatId:D.chatId,...D.accountId===void 0?{}:{accountId:D.accountId},...D.disabled===!0?{enabled:!1}:{}});k.exit($)});g.command("worker schedule remove <jobId>","\u4ECE\u672C\u5730 worker.db \u5220\u9664\u4E00\u6761 cron \u4EFB\u52A1").action(async(D)=>{k.exit(await PV(D))});g.command("worker sessions list","\u4ECE worker.db \u5217\u51FA\u672C\u5730 worker \u4F1A\u8BDD\u72B6\u6001").option("--limit <n>","\u6700\u591A\u8FD4\u56DE\u4F1A\u8BDD\u6570\uFF081-200\uFF0C\u9ED8\u8BA4 50\uFF09",{type:[Number]}).option("--offset <n>","\u5206\u9875\u504F\u79FB\u91CF\uFF08\u9ED8\u8BA4 0\uFF09",{type:[Number]}).option("--status <status>","\u6309\u72B6\u6001\u8FC7\u6EE4\uFF1Aactive \u6216 closed").action(async(D)=>{k.exit(await aV({limit:MD(D.limit),offset:MD(D.offset),...D.status===void 0?{}:{status:D.status}}))});g.command("worker sessions show <sessionKey>","\u6309 session key \u67E5\u770B\u4E00\u4E2A\u672C\u5730 worker \u4F1A\u8BDD\u72B6\u6001").action(async(D)=>{k.exit(await oV(D))});g.command("worker sessions maintenance","\u8BD5\u7B97\u5DF2\u5173\u95ED transcript \u6E05\u7406\uFF1B\u5E26 --apply \u624D\u4F1A\u5B9E\u9645\u5220\u9664").option("--older-than-days <n>","\u5DF2\u5173\u95ED transcript \u4FDD\u7559\u5929\u6570\uFF08\u9ED8\u8BA4 30\uFF09",{type:[Number]}).option("--limit <n>","\u6700\u591A\u8BD5\u7B97/\u6E05\u7406 transcript \u6570\u91CF\uFF081-200\uFF0C\u9ED8\u8BA4 50\uFF09",{type:[Number]}).option("--apply","\u5B9E\u9645\u5220\u9664\u8BA1\u5212\u5185\u7684\u5DF2\u5173\u95ED transcript\uFF0C\u800C\u4E0D\u662F dry-run").action(async(D)=>{k.exit(await tV({olderThanDays:MD(D.olderThanDays),limit:MD(D.limit),...D.apply===void 0?{}:{apply:D.apply}}))});g.command("fleet list","\u5217\u51FA fleet \u5185\u6240\u6709 worker").action(async()=>{k.exit(await MR())});g.command("fleet info <workerId>","\u67E5\u770B\u67D0\u4E2A worker \u7684\u8FD0\u884C\u65F6\u4FE1\u606F").action(async(D)=>{k.exit(await ZR(D))});g.command("fleet launch","\u8BA9 gateway \u5728\u672C\u673A\u62C9\u8D77\u4E00\u4E2A\u65B0\u7684 worker \u5BB9\u5668\u5E76\u5B8C\u6210\u914D\u5BF9").option("--display-name <name>","worker \u5C55\u793A\u540D").option("--image <image>","\u5BB9\u5668\u955C\u50CF\uFF08\u9ED8\u8BA4\u7531 gateway \u51B3\u5B9A\uFF09").option("--force-id <id>","\u5F3A\u5236\u4F7F\u7528\u7ED9\u5B9A workerId\uFF08\u7528\u4E8E\u5907\u4EFD\u6062\u590D\uFF09").action(async(D)=>{k.exit(await RR({...D.displayName===void 0?{}:{displayName:D.displayName},...D.image===void 0?{}:{image:D.image},...D.forceId===void 0?{}:{forceId:D.forceId}}))});g.command("fleet stop <workerId>","\u5411\u76EE\u6807 worker \u4E0B\u53D1\u505C\u6B62\u6307\u4EE4\uFF08\u4E0D\u6458\u9664\u6CE8\u518C\uFF09").action(async(D)=>{k.exit(await OR(D))});g.command("fleet remove <workerId>","\u628A worker \u4ECE fleet \u4E2D\u6458\u9664\uFF08deviceToken \u4F5C\u5E9F\uFF09").action(async(D)=>{k.exit(await ER(D))});g.command("gateway start","\u542F\u52A8 gateway server\uFF08\u9ED8\u8BA4\u524D\u53F0\u8FD0\u884C\uFF0C\u9002\u5408 systemd\uFF1B--detach \u4F7F\u7528\u540E\u53F0\u5B88\u62A4\u8FDB\u7A0B\uFF09").option("--port <n>","\u76D1\u542C\u7AEF\u53E3\uFF08\u9ED8\u8BA4 9218\uFF09",{type:[Number]}).option("--detach","\u540E\u53F0\u5B88\u62A4\u8FDB\u7A0B\u6A21\u5F0F\uFF1Aspawn \u81EA\u8EAB\uFF0C\u5E76\u628A PID/log \u5199\u5165 ~/.aiworker/").option("--no-serve-web","\u4E0D\u6302\u8F7D fleet bundle \u5230 /admin/*\uFF08\u9ED8\u8BA4\u6302\u8F7D\uFF09").action(async(D)=>{let F=k.env.AIWORKER_GATEWAY_INTERNAL_FOREGROUND==="1"?!1:D.detach===!0,X=MD(D.port);k.exit(await Ej({...X===void 0?{}:{port:X},detach:F,...D.serveWeb===!1?{serveWeb:!1}:{}}))});g.command("gateway status","\u663E\u793A\u540E\u53F0 gateway \u5B88\u62A4\u8FDB\u7A0B\u662F\u5426\u8FD0\u884C\uFF08foreground/systemd \u5B9E\u4F8B\u4E0D\u7531\u6B64\u547D\u4EE4\u8DDF\u8E2A\uFF09").action(()=>{k.exit(jj())});g.command("gateway stop","\u505C\u6B62\u540E\u53F0 gateway \u5B88\u62A4\u8FDB\u7A0B\uFF08foreground/systemd \u5B9E\u4F8B\u8BF7\u7531\u5176 supervisor \u505C\u6B62\uFF09").option("--timeout-ms <n>","SIGTERM \u8D85\u65F6\u65F6\u95F4\uFF08\u9ED8\u8BA4 5000ms\uFF09",{type:[Number]}).action(async(D)=>{let $=MD(D.timeoutMs);k.exit(await Nj($===void 0?{}:{timeoutMs:$}))});g.command("fleet pair","\u901A\u8FC7 bootstrap token \u628A\u4E00\u4E2A\u5DF2\u542F\u52A8\u7684 worker \u6CE8\u518C\u5230 gateway").option("--url <wsUrl>","gateway WebSocket URL\uFF08\u9ED8\u8BA4\u4F7F\u7528 aiworker.json \u91CC\u7684 gatewayUrl\uFF09").option("--worker-url <httpUrl>","worker HTTP base URL\uFF08\u5FC5\u586B\uFF09").option("--bootstrap-token <token>","worker \u6253\u5370\u7684\u4E00\u6B21\u6027 bootstrap token\uFF08\u5FC5\u586B\uFF09").option("--display-name <name>","\u53EF\u9009 worker \u5C55\u793A\u540D").action(async(D)=>{if(!D.workerUrl||!D.bootstrapToken)_.error("fleet pair \u5FC5\u987B\u540C\u65F6\u63D0\u4F9B --worker-url \u548C --bootstrap-token"),k.exit(2);k.exit(await QR({...D.url===void 0?{}:{url:D.url},workerUrl:D.workerUrl,bootstrapToken:D.bootstrapToken,...D.displayName===void 0?{}:{displayName:D.displayName}}))});g.command("fleet chat <workerId> <text>","\u5411\u67D0\u4E2A worker \u53D1\u9001\u4E00\u6761\u6D88\u606F\uFF0C\u5E76\u963B\u585E\u5230 agent.done\uFF08NDJSON \u8F93\u51FA\uFF09").option("--conversation-id <id>","\u663E\u5F0F\u6307\u5B9A\u4F1A\u8BDD id\uFF1B\u4E0D\u4F20\u5219\u7531 worker \u65B0\u5EFA").option("--timeout-ms <n>","\u7B49\u5F85 agent.done \u7684\u603B\u8D85\u65F6\u65F6\u95F4\uFF08\u9ED8\u8BA4 120000\uFF09",{type:[Number]}).action(async(D,$,F)=>{let X=MD(F.timeoutMs);k.exit(await JR({workerId:D,content:$,...F.conversationId===void 0?{}:{conversationId:F.conversationId},...X===void 0?{}:{timeoutMs:X}}))});g.command("fleet config get <workerId>","\u8BFB\u53D6\u76EE\u6807 worker \u7684\u5F53\u524D\u914D\u7F6E").action(async(D)=>{k.exit(await GR(D))});g.command("fleet config set <workerId> <json>","\u66F4\u65B0 worker \u914D\u7F6E\uFF08\u9700\u8981 --if-match \u63D0\u4F9B\u5F53\u524D\u7248\u672C\uFF09").option("--if-match <version>","\u4E50\u89C2\u9501\uFF1B\u5F53\u524D\u5B58\u50A8\u7684 version \u4E0D\u7B49\u4E8E\u6B64\u503C\u5219\u62D2\u7EDD",{type:[Number]}).action(async(D,$,F)=>{let X=MD(F.ifMatch);if(X===void 0)_.error("fleet config set \u5FC5\u987B\u663E\u5F0F\u63D0\u4F9B --if-match <version> \u4EE5\u9632\u6B62\u8BEF\u8986\u76D6"),k.exit(2);k.exit(await YR({workerId:D,configJson:$,ifMatch:X}))});g.command("fleet token rotate <workerId>","\u4E3A\u76EE\u6807 worker \u8F6E\u6362 deviceToken\uFF08\u65E7 token \u7ACB\u5373\u5931\u6548\uFF09").action(async(D)=>{k.exit(await CR(D))});g.command("fleet approvals list","\u5217\u51FA\u6302\u8D77\u7684\u5DE5\u5177\u5BA1\u6279\uFF1B\u9ED8\u8BA4\u8986\u76D6\u6240\u6709\u5728\u7EBF worker").option("--worker <id>","\u53EA\u67E5\u6307\u5B9A workerId\uFF08\u4E0D\u4F20\u5219\u805A\u5408\u6240\u6709\u5728\u7EBF worker\uFF09").action(async(D)=>{k.exit(await FR({...D.worker===void 0?{}:{workerId:D.worker}}))});g.command("fleet approvals grant <workerId> <taskId> <toolCallId>","\u89E3\u9501\u67D0\u6761 worker \u4E0A\u6302\u8D77\u7684\u5DE5\u5177\u5BA1\u6279").option("--deny","\u4E0B\u53D1\u62D2\u7EDD\u51B3\u7B56\uFF1B\u4E0D\u5E26\u6B64 flag \u9ED8\u8BA4\u5141\u8BB8").action(async(D,$,F,X)=>{k.exit(await XR({workerId:D,taskId:$,toolCallId:F,...X.deny===void 0?{}:{deny:X.deny}}))});g.command("fleet schedule list <workerId>","\u5217\u51FA\u67D0 worker \u4E0A\u6240\u6709 cron \u4EFB\u52A1").action(async(D)=>{k.exit(await AR(D))});g.command("fleet schedule add <workerId>","\u5728\u67D0 worker \u4E0A\u65B0\u589E\u4E00\u6761 cron \u4EFB\u52A1").option("--expression <expr>","\u4E94\u6BB5 cron \u8868\u8FBE\u5F0F\uFF08\u5FC5\u586B\uFF09").option("--prompt <text>","cron \u89E6\u53D1\u65F6\u5408\u6210\u7684 envelope.text\uFF08\u5FC5\u586B\uFF09").option("--channel <channel>","channel \u7C7B\u578B\uFF1Aweb/line/telegram/lark/whatsapp\uFF08\u5FC5\u586B\uFF09").option("--chat-id <id>","\u89E6\u53D1\u65F6\u4F7F\u7528\u7684 chatId\uFF08\u5FC5\u586B\uFF09").option("--account-id <id>","accountId\uFF0C\u9ED8\u8BA4 sys:cron").option("--disabled","\u9ED8\u8BA4 enabled=true\uFF1B\u5E26\u6B64\u9009\u9879\u6539\u4E3A false").action(async(D,$)=>{if(!$.expression||!$.prompt||!$.channel||!$.chatId)_.error("fleet schedule add \u5FC5\u987B\u63D0\u4F9B --expression / --prompt / --channel / --chat-id"),k.exit(2);k.exit(await KR({workerId:D,expression:$.expression,prompt:$.prompt,channel:$.channel,chatId:$.chatId,...$.accountId===void 0?{}:{accountId:$.accountId},...$.disabled===!0?{enabled:!1}:{}}))});g.command("fleet schedule remove <workerId> <jobId>","\u5220\u9664\u67D0 worker \u4E0A\u7684\u67D0\u6761 cron \u4EFB\u52A1").action(async(D,$)=>{k.exit(await _R(D,$))});g.command("fleet enroll list","\u5217\u51FA gateway \u5F53\u524D\u6240\u6709\u5F85\u5904\u7406\u7684 OTP enrollment").action(async()=>{k.exit(await BR())});g.command("fleet enroll approve <otp>","\u6279\u51C6\u67D0\u6761\u5F85\u5904\u7406\u7684 OTP enrollment\uFF08worker \u7ACB\u5373\u52A0\u5165 fleet\uFF09").action(async(D)=>{k.exit(await HR(D))});g.command("fleet enroll reject <otp>","\u62D2\u7EDD\u67D0\u6761\u5F85\u5904\u7406\u7684 OTP enrollment\uFF08worker \u6536\u5230 close 4403\uFF09").action(async(D)=>{k.exit(await WR(D))});g.command("fleet logs <workerId>","\u8BA2\u9605\u67D0\u4E2A worker \u7684\u65E5\u5FD7\u5C3E\u90E8\uFF08NDJSON \u8F93\u51FA\uFF09").option("--follow","\u6301\u7EED\u8BA2\u9605\u76F4\u5230\u8D85\u65F6\u6216 Ctrl-C").option("--tail <n>","\u8BF7\u6C42\u5386\u53F2\u884C\u6570\uFF0C\u4E0A\u9650 1000",{type:[Number]}).option("--timeout-ms <n>","\u8BA2\u9605\u603B\u8D85\u65F6",{type:[Number]}).action(async(D,$)=>{let F=MD($.tail),X=MD($.timeoutMs);k.exit(await UR({workerId:D,...$.follow===void 0?{}:{follow:$.follow},...F===void 0?{}:{tail:F},...X===void 0?{}:{timeoutMs:X}}))});g.command("gateway install systemd","\u6E32\u67D3 aiworker-gateway.service \u5E76\uFF08\u53EF\u9009\uFF09\u6CE8\u518C\u5230 systemd").option("--user","systemd \u7528\u6237\u5B9E\u4F8B\uFF08\u9ED8\u8BA4\uFF09\uFF1B\u5199\u5230 ~/.config/systemd/user/").option("--system","systemd \u7CFB\u7EDF\u5B9E\u4F8B\uFF08\u9700 root\uFF09\uFF1B\u5199\u5230 /etc/systemd/system/").option("--dry-run","\u53EA\u5F80 stdout \u6253 unit \u5185\u5BB9\uFF0C\u4E0D\u5199\u76D8\u4E5F\u4E0D systemctl").option("--out <path>","\u8986\u76D6\u76EE\u6807\u8DEF\u5F84\uFF08\u5F02\u5E38\u5E03\u5C40/\u6D4B\u8BD5\u7528\uFF09\uFF1B\u81EA\u52A8\u8DF3\u8FC7 systemctl").option("--no-enable","\u5199\u76D8\u540E\u8DF3\u8FC7 systemctl daemon-reload \u548C enable --now").option("--exec-start <command>","\u9AD8\u7EA7\u8986\u76D6\uFF1A\u624B\u52A8\u6307\u5B9A\u5B8C\u6574 systemd ExecStart \u547D\u4EE4").action(async(D)=>{if(D.user===!0&&D.system===!0)_.error("gateway install systemd: \u4E0D\u80FD\u540C\u65F6\u6307\u5B9A --user \u548C --system"),k.exit(2);k.exit(await wj({scope:D.system===!0?"system":"user",...D.dryRun===!0?{dryRun:!0}:{},...D.out===void 0?{}:{out:D.out},...D.enable===!1?{noEnable:!0}:{},...D.execStart===void 0?{}:{execStart:D.execStart}}))});Ow(g);g.version(k6.version);GA(g);function f9D(D,$=g){let F=new Set,X=1;for(let J of $.commands){let G=J.name;if(typeof G==="string"&&G.includes(" ")){F.add(G);let Y=G.split(" ").length;if(Y>X)X=Y}}if(F.size===0||D.length<4)return D;for(let J=X;J>=2;J--){if(D.length<2+J)continue;let G=D.slice(2,2+J);if(G.some((B)=>typeof B!=="string"))continue;let Y=G.join(" ");if(F.has(Y)){let B=D.slice();return B.splice(2,J,Y),Pw(B)}}return Pw(D)}function Pw(D){let $=D[2];if($!=="executor mcp add"&&$!=="worker executor mcp add")return D;let F=D.slice();for(let X=3;X<F.length-1;X++)if(F[X]==="--arg"&&F[X+1]?.startsWith("-")===!0)F.splice(X,2,`--arg=${F[X+1]}`);return F}class T6 extends Error{constructor(D){super(D);this.name="CliUsageError"}}var g9D={"config set":{ifMatch:{integer:!0,min:1}},"executor select":{ifMatch:{integer:!0,min:1},timeoutMs:{integer:!0,min:1}},"fleet chat":{timeoutMs:{integer:!0,min:1}},"fleet config set":{ifMatch:{integer:!0,min:1}},"fleet logs":{tail:{integer:!0,min:0,max:1000},timeoutMs:{integer:!0,min:1}},"gateway start":{port:{integer:!0,min:0,max:65535}},"gateway stop":{timeoutMs:{integer:!0,min:0}},run:{timeoutMs:{integer:!0,min:1}},serve:{port:{integer:!0,min:1,max:65535}},up:{port:{integer:!0,min:1,max:65535}},"sessions list":{limit:{integer:!0,min:1,max:200},offset:{integer:!0,min:0}},"sessions maintenance":{limit:{integer:!0,min:1,max:200},olderThanDays:{integer:!0,min:0,max:3650}},"worker config set":{ifMatch:{integer:!0,min:1}},"worker executor select":{ifMatch:{integer:!0,min:1},timeoutMs:{integer:!0,min:1}},"worker run":{timeoutMs:{integer:!0,min:1}},"worker serve":{port:{integer:!0,min:1,max:65535}},"worker up":{port:{integer:!0,min:1,max:65535}},"worker sessions list":{limit:{integer:!0,min:1,max:200},offset:{integer:!0,min:0}},"worker sessions maintenance":{limit:{integer:!0,min:1,max:200},olderThanDays:{integer:!0,min:0,max:3650}}};function h9D(D){return D instanceof Error&&D.name==="CACError"}function v9D(D){return/--[a-z0-9][\w-]*/i.exec(D)?.[0]??D}function x9D(D){return D.split(",").map(($)=>/^-{1,2}[a-z0-9][\w-]*/i.exec($.trim())?.[0]).filter(($)=>$!==void 0)}function y9D(D,$){let F=D.slice(2);return x9D($.rawName).some((J)=>F.some((G)=>G===J||G.startsWith(`${J}=`)))}function u9D(D){D.checkUnknownOptions(),D.checkOptionValue(),D.checkRequiredArgs()}function m9D(D,$){let F=g9D[D.name]??{};for(let X of D.options){if(!Array.isArray(X.config?.type)||X.config.type[0]!==Number)continue;if(!y9D($,X))continue;let J=g.options[X.name];if(J===void 0)continue;let G=Array.isArray(J)?J:[J];for(let Y of G){let B=v9D(X.rawName);if(typeof Y!=="number"||!Number.isFinite(Y))throw new T6(`${B} must be a finite number`);let H=F[X.name];if(H?.integer===!0&&!Number.isInteger(Y))throw new T6(`${B} must be an integer`);if(H?.min!==void 0&&Y<H.min)throw new T6(`${B} must be >= ${H.min}`);if(H?.max!==void 0&&Y>H.max)throw new T6(`${B} must be <= ${H.max}`)}}}function c9D(){return g.options.help===!0||g.options.version===!0&&g.matchedCommandName==null}async function p9D(D=k.argv){let $=f9D(D);try{g.unsetMatchedCommand();let F=Ew($,g);if(F!==null)return k.stdout.write(`${YA(g,F)}
2129
2129
  `),0;let X=g.parse($,{run:!1});if(c9D())return 0;if(!g.matchedCommand&&X.args[0])throw new T6(`Unknown command: ${X.args[0]}`);let J=g.matchedCommand;if(J)u9D(J),m9D(J,$);return Nw($),await g.runMatchedCommand(),typeof k.exitCode==="number"?k.exitCode:0}catch(F){let X=F instanceof T6||h9D(F),J=F instanceof Error?F.message:String(F);return _.error(J),X?2:1}}if(import.meta.main)k.exit(await p9D(k.argv));export{p9D as runCli,f9D as preprocessArgv,g as cli};