@zonease/aiworker-cli 0.4.8 → 0.4.10

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.
@@ -0,0 +1,549 @@
1
+ #!/usr/bin/env bun
2
+ // @bun
3
+ var zq=Object.create;var{getPrototypeOf:Lq,defineProperty:JF,getOwnPropertyNames:jq}=Object;var Iq=Object.prototype.hasOwnProperty;function Tq(D){return this[D]}var wq,Sq,fq=(D,$,F)=>{var X=D!=null&&typeof D==="object";if(X){var J=$?wq??=new WeakMap:Sq??=new WeakMap,Y=J.get(D);if(Y)return Y}F=D!=null?zq(Lq(D)):{};let G=$||!D||!D.__esModule?JF(F,"default",{value:D,enumerable:!0}):F;for(let B of jq(D))if(!Iq.call(G,B))JF(G,B,{get:Tq.bind(D,B),enumerable:!0});if(X)J.set(D,G);return G};var b=(D,$)=>()=>($||D(($={exports:{}}).exports,$),$.exports);var bq=(D)=>D;function kq(D,$){this[D]=bq.bind(null,$)}var r8=(D,$)=>{for(var F in $)JF(D,F,{get:$[F],enumerable:!0,configurable:!0,set:kq.bind($,F)})};var M=(D,$)=>()=>(D&&($=D(D=0)),$);var U8=import.meta.require;function HF(D){if(D===null||typeof D!=="object")return!1;let $=Object.getPrototypeOf(D);if($!==null&&$!==Object.prototype&&Object.getPrototypeOf($)!==null)return!1;if(Symbol.iterator in D)return!1;if(Symbol.toStringTag in D)return Object.prototype.toString.call(D)==="[object Module]";return!0}function _F(D,$,F=".",X){if(!HF($))return _F(D,{},F,X);let J=Object.assign({},$);for(let Y in D){if(Y==="__proto__"||Y==="constructor")continue;let G=D[Y];if(G===null||G===void 0)continue;if(X&&X(J,Y,G,F))continue;if(Array.isArray(G)&&Array.isArray(J[Y]))J[Y]=[...G,...J[Y]];else if(HF(G)&&HF(J[Y]))J[Y]=_F(G,J[Y],(F?`${F}.`:"")+Y.toString(),X);else J[Y]=G}return J}function nq(D){return(...$)=>$.reduce((F,X)=>_F(F,X,"",D),{})}function rq(D){return Object.prototype.toString.call(D)==="[object Object]"}function oq(D){if(!rq(D))return!1;if(!D.message&&!D.args)return!1;if(D.stack)return!1;return!0}class eD{options;_lastLog;_mockFn;constructor(D={}){let $=D.types||VF;this.options=sq({...D,defaults:{...D.defaults},level:QF(D.level,$),reporters:[...D.reporters||[]]},{types:VF,throttle:1000,throttleMin:5,formatOptions:{date:!0,colors:!1,compact:!0}});for(let F in $){let X={type:F,...this.options.defaults,...$[F]};this[F]=this._wrapLogFn(X),this[F].raw=this._wrapLogFn(X,!0)}if(this.options.mockFn)this.mockTypes();this._lastLog={}}get level(){return this.options.level}set level(D){this.options.level=QF(D,this.options.types,this.options.level)}prompt(D,$){if(!this.options.prompt)throw Error("prompt is not supported!");return this.options.prompt(D,$)}create(D){let $=new eD({...this.options,...D});if(this._mockFn)$.mockTypes(this._mockFn);return $}withDefaults(D){return this.create({...this.options,defaults:{...this.options.defaults,...D}})}withTag(D){return this.withDefaults({tag:this.options.defaults.tag?this.options.defaults.tag+":"+D:D})}addReporter(D){return this.options.reporters.push(D),this}removeReporter(D){if(D){let $=this.options.reporters.indexOf(D);if($!==-1)return this.options.reporters.splice($,1)}else this.options.reporters.splice(0);return this}setReporters(D){return this.options.reporters=Array.isArray(D)?D:[D],this}wrapAll(){this.wrapConsole(),this.wrapStd()}restoreAll(){this.restoreConsole(),this.restoreStd()}wrapConsole(){for(let D in this.options.types){if(!console["__"+D])console["__"+D]=console[D];console[D]=this[D].raw}}restoreConsole(){for(let D in this.options.types)if(console["__"+D])console[D]=console["__"+D],delete console["__"+D]}wrapStd(){this._wrapStream(this.options.stdout,"log"),this._wrapStream(this.options.stderr,"log")}_wrapStream(D,$){if(!D)return;if(!D.__write)D.__write=D.write;D.write=(F)=>{this[$].raw(String(F).trim())}}restoreStd(){this._restoreStream(this.options.stdout),this._restoreStream(this.options.stderr)}_restoreStream(D){if(!D)return;if(D.__write)D.write=D.__write,delete D.__write}pauseLogs(){WF=!0}resumeLogs(){WF=!1;let D=AH.splice(0);for(let $ of D)$[0]._logFn($[1],$[2])}mockTypes(D){let $=D||this.options.mockFn;if(this._mockFn=$,typeof $!=="function")return;for(let F in this.options.types)this[F]=$(F,this.options.types[F])||this[F],this[F].raw=this[F]}_wrapLogFn(D,$){return(...F)=>{if(WF){AH.push([this,D,F,$]);return}return this._logFn(D,F,$)}}_logFn(D,$,F){if((D.level||0)>this.level)return!1;let X={date:new Date,args:[],...D,level:QF(D.level,this.options.types)};if(!F&&$.length===1&&oq($[0]))Object.assign(X,$[0]);else X.args=[...$];if(X.message)X.args.unshift(X.message),delete X.message;if(X.additional){if(!Array.isArray(X.additional))X.additional=X.additional.split(`
4
+ `);X.args.push(`
5
+ `+X.additional.join(`
6
+ `)),delete X.additional}X.type=typeof X.type==="string"?X.type.toLowerCase():"log",X.tag=typeof X.tag==="string"?X.tag:"";let J=(G=!1)=>{let B=(this._lastLog.count||0)-this.options.throttleMin;if(this._lastLog.object&&B>0){let H=[...this._lastLog.object.args];if(B>1)H.push(`(repeated ${B} times)`);this._log({...this._lastLog.object,args:H}),this._lastLog.count=1}if(G)this._lastLog.object=X,this._log(X)};clearTimeout(this._lastLog.timeout);let Y=this._lastLog.time&&X.date?X.date.getTime()-this._lastLog.time.getTime():0;if(this._lastLog.time=X.date,Y<this.options.throttle)try{let G=JSON.stringify([X.type,X.tag,X.args]),B=this._lastLog.serialized===G;if(this._lastLog.serialized=G,B){if(this._lastLog.count=(this._lastLog.count||0)+1,this._lastLog.count>this.options.throttleMin){this._lastLog.timeout=setTimeout(J,this.options.throttle);return}}}catch{}J(!0)}_log(D){for(let $ of this.options.reporters)$.log(D,{options:this.options})}}function QF(D,$={},F=3){if(D===void 0)return F;if(typeof D==="number")return D;if($[D]&&$[D].level!==void 0)return $[D].level;return F}function KH(D={}){return new eD(D)}var G0,VF,sq,WF=!1,AH;var UF=M(()=>{G0={silent:Number.NEGATIVE_INFINITY,fatal:0,error:0,warn:1,log:2,info:3,success:3,fail:3,ready:3,start:3,box:3,debug:4,trace:5,verbose:Number.POSITIVE_INFINITY},VF={silent:{level:-1},fatal:{level:G0.fatal},error:{level:G0.error},warn:{level:G0.warn},log:{level:G0.log},info:{level:G0.info},success:{level:G0.success},fail:{level:G0.fail},ready:{level:G0.info},start:{level:G0.info},box:{level:G0.info},debug:{level:G0.debug},trace:{level:G0.trace},verbose:{level:G0.verbose}};sq=nq();AH=[];eD.prototype.add=eD.prototype.addReporter;eD.prototype.remove=eD.prototype.removeReporter;eD.prototype.clear=eD.prototype.removeReporter;eD.prototype.withScope=eD.prototype.withTag;eD.prototype.mock=eD.prototype.mockTypes;eD.prototype.pause=eD.prototype.pauseLogs;eD.prototype.resume=eD.prototype.resumeLogs});import{formatWithOptions as CH}from"util";import{sep as aq}from"path";function KF(D,$){let F=process.cwd()+aq;return D.split(`
7
+ `).splice($.split(`
8
+ `).length).map((J)=>J.trim().replace("file://","").replace(F,""))}function tq(D,$){return($.__write||$.write).call($,D)}class w7{formatStack(D,$,F){let X=" ".repeat((F?.errorLevel||0)+1);return X+KF(D,$).join(`
9
+ ${X}`)}formatError(D,$){let F=D.message??CH($,D),X=D.stack?this.formatStack(D.stack,F,$):"",J=$?.errorLevel||0,Y=J>0?`${" ".repeat(J)}[cause]: `:"",G=D.cause?`
10
+
11
+ `+this.formatError(D.cause,{...$,errorLevel:J+1}):"";return Y+F+`
12
+ `+X+G}formatArgs(D,$){let F=D.map((X)=>{if(X&&typeof X.stack==="string")return this.formatError(X,$);return X});return CH($,...F)}formatDate(D,$){return $.date?D.toLocaleTimeString():""}filterAndJoin(D){return D.filter(Boolean).join(" ")}formatLogObj(D,$){let F=this.formatArgs(D.args,$);if(D.type==="box")return`
13
+ `+[AF(D.tag),D.title&&D.title,...F.split(`
14
+ `)].filter(Boolean).map((X)=>" > "+X).join(`
15
+ `)+`
16
+ `;return this.filterAndJoin([AF(D.type),AF(D.tag),F])}log(D,$){let F=this.formatLogObj(D,{columns:$.options.stdout.columns||0,...$.options.formatOptions});return tq(F+`
17
+ `,D.level<2?$.options.stderr||process.stderr:$.options.stdout||process.stdout)}}var AF=(D)=>D?`[${D}]`:"";var OH=()=>{};import*as S7 from"tty";function PH(D,$,F,X,J=$.slice(0,Math.max(0,D))+X,Y=$.slice(Math.max(0,D+F.length)),G=Y.indexOf(F)){return J+(G<0?Y:PH(G,Y,F,X))}function YN(D,$,F,X,J){return D<0?F+$+X:F+PH(D,$,X,J)+X}function BN(D,$,F=D,X=D.length+1){return(J)=>J||!(J===""||J===void 0)?YN((""+J).indexOf($,X),J,D,$,F):""}function JD(D,$,F){return BN(`\x1B[${D}m`,`\x1B[${$}m`,F)}function HN(D=GN){return D?RH:Object.fromEntries(Object.keys(RH).map(($)=>[$,String]))}function WN(D,$="reset"){return P0[D]||P0[$]}function A8(D){return D.replace(new RegExp(QN,"g"),"")}function qH(D,$={}){let F={...$,style:{...VN,...$.style}},X=D.split(`
18
+ `),J=[],Y=WN(F.style.borderColor),G={...typeof F.style.borderStyle==="string"?EH[F.style.borderStyle]||EH.solid:F.style.borderStyle};if(Y)for(let A in G)G[A]=Y(G[A]);let B=F.style.padding%2===0?F.style.padding:F.style.padding+1,H=X.length+B,W=Math.max(...X.map((A)=>A8(A).length),F.title?A8(F.title).length:0)+B,V=W+B,_=F.style.marginLeft>0?" ".repeat(F.style.marginLeft):"";if(F.style.marginTop>0)J.push("".repeat(F.style.marginTop));if(F.title){let A=Y?Y(F.title):F.title,O=G.h.repeat(Math.floor((W-A8(F.title).length)/2)),C=G.h.repeat(W-A8(F.title).length-A8(O).length+B);J.push(`${_}${G.tl}${O}${A}${C}${G.tr}`)}else J.push(`${_}${G.tl}${G.h.repeat(V)}${G.tr}`);let U=F.style.valign==="center"?Math.floor((H-X.length)/2):F.style.valign==="top"?H-X.length-B:H-X.length;for(let A=0;A<H;A++)if(A<U||A>=U+X.length)J.push(`${_}${G.v}${" ".repeat(V)}${G.v}`);else{let O=X[A-U],C=" ".repeat(B),K=" ".repeat(W-A8(O).length);J.push(`${_}${G.v}${C}${O}${K}${G.v}`)}if(J.push(`${_}${G.bl}${G.h.repeat(V)}${G.br}`),F.style.marginBottom>0)J.push("".repeat(F.style.marginBottom));return J.join(`
19
+ `)}var K8,MH,eq,DN,$N,FN,ZH,XN,JN,GN,RH,P0,QN,EH,VN;var NH=M(()=>{({env:K8={},argv:MH=[],platform:eq=""}=typeof process>"u"?{}:process),DN="NO_COLOR"in K8||MH.includes("--no-color"),$N="FORCE_COLOR"in K8||MH.includes("--color"),FN=eq==="win32",ZH=K8.TERM==="dumb",XN=S7&&S7.isatty&&S7.isatty(1)&&K8.TERM&&!ZH,JN="CI"in K8&&(("GITHUB_ACTIONS"in K8)||("GITLAB_CI"in K8)||("CIRCLECI"in K8)),GN=!DN&&($N||FN&&!ZH||XN||JN);RH={reset:JD(0,0),bold:JD(1,22,"\x1B[22m\x1B[1m"),dim:JD(2,22,"\x1B[22m\x1B[2m"),italic:JD(3,23),underline:JD(4,24),inverse:JD(7,27),hidden:JD(8,28),strikethrough:JD(9,29),black:JD(30,39),red:JD(31,39),green:JD(32,39),yellow:JD(33,39),blue:JD(34,39),magenta:JD(35,39),cyan:JD(36,39),white:JD(37,39),gray:JD(90,39),bgBlack:JD(40,49),bgRed:JD(41,49),bgGreen:JD(42,49),bgYellow:JD(43,49),bgBlue:JD(44,49),bgMagenta:JD(45,49),bgCyan:JD(46,49),bgWhite:JD(47,49),blackBright:JD(90,39),redBright:JD(91,39),greenBright:JD(92,39),yellowBright:JD(93,39),blueBright:JD(94,39),magentaBright:JD(95,39),cyanBright:JD(96,39),whiteBright:JD(97,39),bgBlackBright:JD(100,49),bgRedBright:JD(101,49),bgGreenBright:JD(102,49),bgYellowBright:JD(103,49),bgBlueBright:JD(104,49),bgMagentaBright:JD(105,49),bgCyanBright:JD(106,49),bgWhiteBright:JD(107,49)};P0=HN();QN=[String.raw`[\u001B\u009B][[\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\d\/#&.:=?%@~_]+)*|[a-zA-Z\d]+(?:;[-a-zA-Z\d\/#&.:=?%@~_]*)*)?\u0007)`,String.raw`(?:(?:\d{1,4}(?:;\d{0,4})*)?[\dA-PR-TZcf-nq-uy=><~]))`].join("|");EH={solid:{tl:"\u250C",tr:"\u2510",bl:"\u2514",br:"\u2518",h:"\u2500",v:"\u2502"},double:{tl:"\u2554",tr:"\u2557",bl:"\u255A",br:"\u255D",h:"\u2550",v:"\u2551"},doubleSingle:{tl:"\u2553",tr:"\u2556",bl:"\u2559",br:"\u255C",h:"\u2500",v:"\u2551"},doubleSingleRounded:{tl:"\u256D",tr:"\u256E",bl:"\u2570",br:"\u256F",h:"\u2500",v:"\u2551"},singleThick:{tl:"\u250F",tr:"\u2513",bl:"\u2517",br:"\u251B",h:"\u2501",v:"\u2503"},singleDouble:{tl:"\u2552",tr:"\u2555",bl:"\u2558",br:"\u255B",h:"\u2550",v:"\u2502"},singleDoubleRounded:{tl:"\u256D",tr:"\u256E",bl:"\u2570",br:"\u256F",h:"\u2550",v:"\u2502"},rounded:{tl:"\u256D",tr:"\u256E",bl:"\u2570",br:"\u256F",h:"\u2500",v:"\u2502"}},VN={borderColor:"white",borderStyle:"rounded",valign:"center",padding:2,marginLeft:1,marginTop:1,marginBottom:1}});var rH={};r8(rH,{prompt:()=>sH,kCancel:()=>nH});import H2,{stdin as _N,stdout as UN}from"process";import zH from"readline";import{WriteStream as AN}from"tty";function KN(D){return D&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D}function CN(){if(LH)return CF;LH=1;let D="\x1B",$=`${D}[`,F="\x07",X={to(G,B){if(!B)return`${$}${G+1}G`;return`${$}${B+1};${G+1}H`},move(G,B){let H="";if(G<0)H+=`${$}${-G}D`;else if(G>0)H+=`${$}${G}C`;if(B<0)H+=`${$}${-B}A`;else if(B>0)H+=`${$}${B}B`;return H},up:(G=1)=>`${$}${G}A`,down:(G=1)=>`${$}${G}B`,forward:(G=1)=>`${$}${G}C`,backward:(G=1)=>`${$}${G}D`,nextLine:(G=1)=>`${$}E`.repeat(G),prevLine:(G=1)=>`${$}F`.repeat(G),left:`${$}G`,hide:`${$}?25l`,show:`${$}?25h`,save:`${D}7`,restore:`${D}8`},J={up:(G=1)=>`${$}S`.repeat(G),down:(G=1)=>`${$}T`.repeat(G)},Y={screen:`${$}2J`,up:(G=1)=>`${$}1J`.repeat(G),down:(G=1)=>`${$}J`.repeat(G),line:`${$}2K`,lineEnd:`${$}K`,lineStart:`${$}1K`,lines(G){let B="";for(let H=0;H<G;H++)B+=this.line+(H<G-1?X.up():"");if(G)B+=X.left;return B}};return CF={cursor:X,scroll:J,erase:Y,beep:F},CF}function ON(){if(jH)return f7.exports;jH=1;let D=process||{},$=D.argv||[],F=D.env||{},X=!(!!F.NO_COLOR||$.includes("--no-color"))&&(!!F.FORCE_COLOR||$.includes("--color")||D.platform==="win32"||(D.stdout||{}).isTTY&&F.TERM!=="dumb"||!!F.CI),J=(B,H,W=B)=>(V)=>{let _=""+V,U=_.indexOf(H,B.length);return~U?B+Y(_,H,W,U)+H:B+_+H},Y=(B,H,W,V)=>{let _="",U=0;do _+=B.substring(U,V)+W,U=V+H.length,V=B.indexOf(H,U);while(~V);return _+B.substring(U)},G=(B=X)=>{let H=B?J:()=>String;return{isColorSupported:B,reset:H("\x1B[0m","\x1B[0m"),bold:H("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:H("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:H("\x1B[3m","\x1B[23m"),underline:H("\x1B[4m","\x1B[24m"),inverse:H("\x1B[7m","\x1B[27m"),hidden:H("\x1B[8m","\x1B[28m"),strikethrough:H("\x1B[9m","\x1B[29m"),black:H("\x1B[30m","\x1B[39m"),red:H("\x1B[31m","\x1B[39m"),green:H("\x1B[32m","\x1B[39m"),yellow:H("\x1B[33m","\x1B[39m"),blue:H("\x1B[34m","\x1B[39m"),magenta:H("\x1B[35m","\x1B[39m"),cyan:H("\x1B[36m","\x1B[39m"),white:H("\x1B[37m","\x1B[39m"),gray:H("\x1B[90m","\x1B[39m"),bgBlack:H("\x1B[40m","\x1B[49m"),bgRed:H("\x1B[41m","\x1B[49m"),bgGreen:H("\x1B[42m","\x1B[49m"),bgYellow:H("\x1B[43m","\x1B[49m"),bgBlue:H("\x1B[44m","\x1B[49m"),bgMagenta:H("\x1B[45m","\x1B[49m"),bgCyan:H("\x1B[46m","\x1B[49m"),bgWhite:H("\x1B[47m","\x1B[49m"),blackBright:H("\x1B[90m","\x1B[39m"),redBright:H("\x1B[91m","\x1B[39m"),greenBright:H("\x1B[92m","\x1B[39m"),yellowBright:H("\x1B[93m","\x1B[39m"),blueBright:H("\x1B[94m","\x1B[39m"),magentaBright:H("\x1B[95m","\x1B[39m"),cyanBright:H("\x1B[96m","\x1B[39m"),whiteBright:H("\x1B[97m","\x1B[39m"),bgBlackBright:H("\x1B[100m","\x1B[49m"),bgRedBright:H("\x1B[101m","\x1B[49m"),bgGreenBright:H("\x1B[102m","\x1B[49m"),bgYellowBright:H("\x1B[103m","\x1B[49m"),bgBlueBright:H("\x1B[104m","\x1B[49m"),bgMagentaBright:H("\x1B[105m","\x1B[49m"),bgCyanBright:H("\x1B[106m","\x1B[49m"),bgWhiteBright:H("\x1B[107m","\x1B[49m")}};return f7.exports=G(),f7.exports.createColors=G,f7.exports}function EN({onlyFirst:D=!1}={}){let $=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp($,D?void 0:"g")}function gH(D){if(typeof D!="string")throw TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(MN,"")}function yH(D){return D&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D}function E3(D,$={}){if(typeof D!="string"||D.length===0||($={ambiguousIsNarrow:!0,...$},D=gH(D),D.length===0))return 0;D=D.replace(NN()," ");let F=$.ambiguousIsNarrow?1:2,X=0;for(let J of D){let Y=J.codePointAt(0);if(Y<=31||Y>=127&&Y<=159||Y>=768&&Y<=879)continue;switch(PN.eastAsianWidth(J)){case"F":case"W":X+=2;break;case"A":X+=F;break;default:X+=1}}return X}function jN(){let D=new Map;for(let[$,F]of Object.entries(wD)){for(let[X,J]of Object.entries(F))wD[X]={open:`\x1B[${J[0]}m`,close:`\x1B[${J[1]}m`},F[X]=wD[X],D.set(J[0],J[1]);Object.defineProperty(wD,$,{value:F,enumerable:!1})}return Object.defineProperty(wD,"codes",{value:D,enumerable:!1}),wD.color.close="\x1B[39m",wD.bgColor.close="\x1B[49m",wD.color.ansi=IH(),wD.color.ansi256=TH(),wD.color.ansi16m=wH(),wD.bgColor.ansi=IH(OF),wD.bgColor.ansi256=TH(OF),wD.bgColor.ansi16m=wH(OF),Object.defineProperties(wD,{rgbToAnsi256:{value:($,F,X)=>$===F&&F===X?$<8?16:$>248?231:Math.round(($-8)/247*24)+232:16+36*Math.round($/255*5)+6*Math.round(F/255*5)+Math.round(X/255*5),enumerable:!1},hexToRgb:{value:($)=>{let F=/[a-f\d]{6}|[a-f\d]{3}/i.exec($.toString(16));if(!F)return[0,0,0];let[X]=F;X.length===3&&(X=[...X].map((Y)=>Y+Y).join(""));let J=Number.parseInt(X,16);return[J>>16&255,J>>8&255,J&255]},enumerable:!1},hexToAnsi256:{value:($)=>wD.rgbToAnsi256(...wD.hexToRgb($)),enumerable:!1},ansi256ToAnsi:{value:($)=>{if($<8)return 30+$;if($<16)return 90+($-8);let F,X,J;if($>=232)F=(($-232)*10+8)/255,X=F,J=F;else{$-=16;let B=$%36;F=Math.floor($/36)/5,X=Math.floor(B/6)/5,J=B%6/5}let Y=Math.max(F,X,J)*2;if(Y===0)return 30;let G=30+(Math.round(J)<<2|Math.round(X)<<1|Math.round(F));return Y===2&&(G+=60),G},enumerable:!1},rgbToAnsi:{value:($,F,X)=>wD.ansi256ToAnsi(wD.rgbToAnsi256($,F,X)),enumerable:!1},hexToAnsi:{value:($)=>wD.ansi256ToAnsi(wD.hexToAnsi256($)),enumerable:!1}}),wD}function bH(D,$,F){return String(D).normalize().replace(/\r\n/g,`
20
+ `).split(`
21
+ `).map((X)=>bN(X,$,F)).join(`
22
+ `)}function cH(D,$){if(typeof D=="string")return k7.aliases.get(D)===$;for(let F of D)if(F!==void 0&&cH(F,$))return!0;return!1}function vN(D,$){if(D===$)return;let F=D.split(`
23
+ `),X=$.split(`
24
+ `),J=[];for(let Y=0;Y<Math.max(F.length,X.length);Y++)F[Y]!==X[Y]&&J.push(Y);return J}function b7(D,$){let F=D;F.isTTY&&F.setRawMode($)}class M3{constructor(D,$=!0){k0(this,"input"),k0(this,"output"),k0(this,"_abortSignal"),k0(this,"rl"),k0(this,"opts"),k0(this,"_render"),k0(this,"_track",!1),k0(this,"_prevFrame",""),k0(this,"_subscribers",new Map),k0(this,"_cursor",0),k0(this,"state","initial"),k0(this,"error",""),k0(this,"value");let{input:F=_N,output:X=UN,render:J,signal:Y,...G}=D;this.opts=G,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=J.bind(this),this._track=$,this._abortSignal=Y,this.input=F,this.output=X}unsubscribe(){this._subscribers.clear()}setSubscriber(D,$){let F=this._subscribers.get(D)??[];F.push($),this._subscribers.set(D,F)}on(D,$){this.setSubscriber(D,{cb:$})}once(D,$){this.setSubscriber(D,{cb:$,once:!0})}emit(D,...$){let F=this._subscribers.get(D)??[],X=[];for(let J of F)J.cb(...$),J.once&&X.push(()=>F.splice(F.indexOf(J),1));for(let J of X)J()}prompt(){return new Promise((D,$)=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),D(kH);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}let F=new AN(0);F._write=(X,J,Y)=>{this._track&&(this.value=this.rl?.line.replace(/\t/g,""),this._cursor=this.rl?.cursor??0,this.emit("value",this.value)),Y()},this.input.pipe(F),this.rl=zH.createInterface({input:this.input,output:F,tabSize:2,prompt:"",escapeCodeTimeout:50}),zH.emitKeypressEvents(this.input,this.rl),this.rl.prompt(),this.opts.initialValue!==void 0&&this._track&&this.rl.write(this.opts.initialValue),this.input.on("keypress",this.onKeypress),b7(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(W2.cursor.show),this.output.off("resize",this.render),b7(this.input,!1),D(this.value)}),this.once("cancel",()=>{this.output.write(W2.cursor.show),this.output.off("resize",this.render),b7(this.input,!1),D(kH)})})}onKeypress(D,$){if(this.state==="error"&&(this.state="active"),$?.name&&(!this._track&&k7.aliases.has($.name)&&this.emit("cursor",k7.aliases.get($.name)),k7.actions.has($.name)&&this.emit("cursor",$.name)),D&&(D.toLowerCase()==="y"||D.toLowerCase()==="n")&&this.emit("confirm",D.toLowerCase()==="y"),D==="\t"&&this.opts.placeholder&&(this.value||(this.rl?.write(this.opts.placeholder),this.emit("value",this.opts.placeholder))),D&&this.emit("key",D.toLowerCase()),$?.name==="return"){if(this.opts.validate){let F=this.opts.validate(this.value);F&&(this.error=F instanceof Error?F.message:F,this.state="error",this.rl?.write(this.value))}this.state!=="error"&&(this.state="submit")}cH([D,$?.name,$?.sequence],"cancel")&&(this.state="cancel"),(this.state==="submit"||this.state==="cancel")&&this.emit("finalize"),this.render(),(this.state==="submit"||this.state==="cancel")&&this.close()}close(){this.input.unpipe(),this.input.removeListener("keypress",this.onKeypress),this.output.write(`
25
+ `),b7(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let D=bH(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
26
+ `).length-1;this.output.write(W2.cursor.move(-999,D*-1))}render(){let D=bH(this._render(this)??"",process.stdout.columns,{hard:!0});if(D!==this._prevFrame){if(this.state==="initial")this.output.write(W2.cursor.hide);else{let $=vN(this._prevFrame,D);if(this.restoreCursor(),$&&$?.length===1){let F=$[0];this.output.write(W2.cursor.move(0,F)),this.output.write(W2.erase.lines(1));let X=D.split(`
27
+ `);this.output.write(X[F]),this._prevFrame=D,this.output.write(W2.cursor.move(0,X.length-F-1));return}if($&&$?.length>1){let F=$[0];this.output.write(W2.cursor.move(0,F)),this.output.write(W2.erase.down());let X=D.split(`
28
+ `).slice(F);this.output.write(X.join(`
29
+ `)),this._prevFrame=D;return}this.output.write(W2.erase.down())}this.output.write(D),this.state==="initial"&&(this.state="active"),this._prevFrame=D}}}function cN(){return H2.platform!=="win32"?H2.env.TERM!=="linux":!!H2.env.CI||!!H2.env.WT_SESSION||!!H2.env.TERMINUS_SUBLIME||H2.env.ConEmuTask==="{cmd::Cmder}"||H2.env.TERM_PROGRAM==="Terminus-Sublime"||H2.env.TERM_PROGRAM==="vscode"||H2.env.TERM==="xterm-256color"||H2.env.TERM==="alacritty"||H2.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}async function sH(D,$={}){let F=(X)=>{if(typeof X!=="symbol"||X.toString()!=="Symbol(clack:cancel)")return X;switch($.cancel){case"reject":{let J=Error("Prompt cancelled.");if(J.name="ConsolaPromptCancelledError",Error.captureStackTrace)Error.captureStackTrace(J,sH);throw J}case"undefined":return;case"null":return null;case"symbol":return nH;default:case"default":return $.default??$.initial}};if(!$.type||$.type==="text")return await aN({message:D,defaultValue:$.default,placeholder:$.placeholder,initialValue:$.initial}).then(F);if($.type==="confirm")return await tN({message:D,initialValue:$.initial}).then(F);if($.type==="select")return await eN({message:D,options:$.options.map((X)=>typeof X==="string"?{value:X,label:X}:X),initialValue:$.initial}).then(F);if($.type==="multiselect")return await Dz({message:D,options:$.options.map((X)=>typeof X==="string"?{value:X,label:X}:X),required:$.required,initialValues:$.initial}).then(F);throw Error(`Unknown prompt type: ${$.type}`)}var CF,LH,W2,f7,jH,RN,v,MN,uH,ZN,PN,qN=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g},NN,OF=10,IH=(D=0)=>($)=>`\x1B[${$+D}m`,TH=(D=0)=>($)=>`\x1B[${38+D};5;${$}m`,wH=(D=0)=>($,F,X)=>`\x1B[${38+D};2;${$};${F};${X}m`,wD,zN,LN,IN,v7,TN=39,PF="\x07",mH="[",wN="]",pH="m",qF,SH=(D)=>`${v7.values().next().value}${mH}${D}${pH}`,fH=(D)=>`${v7.values().next().value}${qF}${D}${PF}`,SN=(D)=>D.split(" ").map(($)=>E3($)),RF=(D,$,F)=>{let X=[...$],J=!1,Y=!1,G=E3(gH(D[D.length-1]));for(let[B,H]of X.entries()){let W=E3(H);if(G+W<=F?D[D.length-1]+=H:(D.push(H),G=0),v7.has(H)&&(J=!0,Y=X.slice(B+1).join("").startsWith(qF)),J){Y?H===PF&&(J=!1,Y=!1):H===pH&&(J=!1);continue}G+=W,G===F&&B<X.length-1&&(D.push(""),G=0)}!G&&D[D.length-1].length>0&&D.length>1&&(D[D.length-2]+=D.pop())},fN=(D)=>{let $=D.split(" "),F=$.length;for(;F>0&&!(E3($[F-1])>0);)F--;return F===$.length?D:$.slice(0,F).join(" ")+$.slice(F).join("")},bN=(D,$,F={})=>{if(F.trim!==!1&&D.trim()==="")return"";let X="",J,Y,G=SN(D),B=[""];for(let[W,V]of D.split(" ").entries()){F.trim!==!1&&(B[B.length-1]=B[B.length-1].trimStart());let _=E3(B[B.length-1]);if(W!==0&&(_>=$&&(F.wordWrap===!1||F.trim===!1)&&(B.push(""),_=0),(_>0||F.trim===!1)&&(B[B.length-1]+=" ",_++)),F.hard&&G[W]>$){let U=$-_,A=1+Math.floor((G[W]-U-1)/$);Math.floor((G[W]-1)/$)<A&&B.push(""),RF(B,V,$);continue}if(_+G[W]>$&&_>0&&G[W]>0){if(F.wordWrap===!1&&_<$){RF(B,V,$);continue}B.push("")}if(_+G[W]>$&&F.wordWrap===!1){RF(B,V,$);continue}B[B.length-1]+=V}F.trim!==!1&&(B=B.map((W)=>fN(W)));let H=[...B.join(`
30
+ `)];for(let[W,V]of H.entries()){if(X+=V,v7.has(V)){let{groups:U}=new RegExp(`(?:\\${mH}(?<code>\\d+)m|\\${qF}(?<uri>.*)${PF})`).exec(H.slice(W).join(""))||{groups:{}};if(U.code!==void 0){let A=Number.parseFloat(U.code);J=A===TN?void 0:A}else U.uri!==void 0&&(Y=U.uri.length===0?void 0:U.uri)}let _=IN.codes.get(Number(J));H[W+1]===`
31
+ `?(Y&&(X+=fH("")),J&&_&&(X+=SH(_))):V===`
32
+ `&&(J&&_&&(X+=SH(J)),Y&&(X+=fH(Y)))}return X},kN,k7,kH,hN,xN=(D,$,F)=>($ in D)?hN(D,$,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[$]=F,k0=(D,$,F)=>(xN(D,typeof $!="symbol"?$+"":$,F),F),lH,gN,yN=(D,$,F)=>($ in D)?gN(D,$,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[$]=F,vH=(D,$,F)=>(yN(D,typeof $!="symbol"?$+"":$,F),F),uN,mN,pN=(D,$,F)=>($ in D)?mN(D,$,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[$]=F,hH=(D,$,F)=>(pN(D,typeof $!="symbol"?$+"":$,F),F),dH,iH,lN,Q2=(D,$)=>lN?D:$,dN,iN,nN,sN,ND,d1,EF,MF,rN,xH,oN,h7=(D)=>{switch(D){case"initial":case"active":return v.cyan(dN);case"cancel":return v.red(iN);case"error":return v.yellow(nN);case"submit":return v.green(sN)}},ZF=(D)=>{let{cursor:$,options:F,style:X}=D,J=D.maxItems??Number.POSITIVE_INFINITY,Y=Math.max(process.stdout.rows-4,0),G=Math.min(Y,Math.max(J,5)),B=0;$>=B+G-3?B=Math.max(Math.min($-G+3,F.length-G),0):$<B+2&&(B=Math.max($-2,0));let H=G<F.length&&B>0,W=G<F.length&&B+G<F.length;return F.slice(B,B+G).map((V,_,U)=>{let A=_===0&&H,O=_===U.length-1&&W;return A||O?v.dim("..."):X(V,_+B===$)})},aN=(D)=>new iH({validate:D.validate,placeholder:D.placeholder,defaultValue:D.defaultValue,initialValue:D.initialValue,render(){let $=`${v.gray(ND)}
33
+ ${h7(this.state)} ${D.message}
34
+ `,F=D.placeholder?v.inverse(D.placeholder[0])+v.dim(D.placeholder.slice(1)):v.inverse(v.hidden("_")),X=this.value?this.valueWithCursor:F;switch(this.state){case"error":return`${$.trim()}
35
+ ${v.yellow(ND)} ${X}
36
+ ${v.yellow(d1)} ${v.yellow(this.error)}
37
+ `;case"submit":return`${$}${v.gray(ND)} ${v.dim(this.value||D.placeholder)}`;case"cancel":return`${$}${v.gray(ND)} ${v.strikethrough(v.dim(this.value??""))}${this.value?.trim()?`
38
+ ${v.gray(ND)}`:""}`;default:return`${$}${v.cyan(ND)} ${X}
39
+ ${v.cyan(d1)}
40
+ `}}}).prompt(),tN=(D)=>{let $=D.active??"Yes",F=D.inactive??"No";return new lH({active:$,inactive:F,initialValue:D.initialValue??!0,render(){let X=`${v.gray(ND)}
41
+ ${h7(this.state)} ${D.message}
42
+ `,J=this.value?$:F;switch(this.state){case"submit":return`${X}${v.gray(ND)} ${v.dim(J)}`;case"cancel":return`${X}${v.gray(ND)} ${v.strikethrough(v.dim(J))}
43
+ ${v.gray(ND)}`;default:return`${X}${v.cyan(ND)} ${this.value?`${v.green(EF)} ${$}`:`${v.dim(MF)} ${v.dim($)}`} ${v.dim("/")} ${this.value?`${v.dim(MF)} ${v.dim(F)}`:`${v.green(EF)} ${F}`}
44
+ ${v.cyan(d1)}
45
+ `}}}).prompt()},eN=(D)=>{let $=(F,X)=>{let J=F.label??String(F.value);switch(X){case"selected":return`${v.dim(J)}`;case"active":return`${v.green(EF)} ${J} ${F.hint?v.dim(`(${F.hint})`):""}`;case"cancelled":return`${v.strikethrough(v.dim(J))}`;default:return`${v.dim(MF)} ${v.dim(J)}`}};return new dH({options:D.options,initialValue:D.initialValue,render(){let F=`${v.gray(ND)}
46
+ ${h7(this.state)} ${D.message}
47
+ `;switch(this.state){case"submit":return`${F}${v.gray(ND)} ${$(this.options[this.cursor],"selected")}`;case"cancel":return`${F}${v.gray(ND)} ${$(this.options[this.cursor],"cancelled")}
48
+ ${v.gray(ND)}`;default:return`${F}${v.cyan(ND)} ${ZF({cursor:this.cursor,options:this.options,maxItems:D.maxItems,style:(X,J)=>$(X,J?"active":"inactive")}).join(`
49
+ ${v.cyan(ND)} `)}
50
+ ${v.cyan(d1)}
51
+ `}}}).prompt()},Dz=(D)=>{let $=(F,X)=>{let J=F.label??String(F.value);return X==="active"?`${v.cyan(rN)} ${J} ${F.hint?v.dim(`(${F.hint})`):""}`:X==="selected"?`${v.green(xH)} ${v.dim(J)}`:X==="cancelled"?`${v.strikethrough(v.dim(J))}`:X==="active-selected"?`${v.green(xH)} ${J} ${F.hint?v.dim(`(${F.hint})`):""}`:X==="submitted"?`${v.dim(J)}`:`${v.dim(oN)} ${v.dim(J)}`};return new uN({options:D.options,initialValues:D.initialValues,required:D.required??!0,cursorAt:D.cursorAt,validate(F){if(this.required&&F.length===0)return`Please select at least one option.
52
+ ${v.reset(v.dim(`Press ${v.gray(v.bgWhite(v.inverse(" space ")))} to select, ${v.gray(v.bgWhite(v.inverse(" enter ")))} to submit`))}`},render(){let F=`${v.gray(ND)}
53
+ ${h7(this.state)} ${D.message}
54
+ `,X=(J,Y)=>{let G=this.value.includes(J.value);return Y&&G?$(J,"active-selected"):G?$(J,"selected"):$(J,Y?"active":"inactive")};switch(this.state){case"submit":return`${F}${v.gray(ND)} ${this.options.filter(({value:J})=>this.value.includes(J)).map((J)=>$(J,"submitted")).join(v.dim(", "))||v.dim("none")}`;case"cancel":{let J=this.options.filter(({value:Y})=>this.value.includes(Y)).map((Y)=>$(Y,"cancelled")).join(v.dim(", "));return`${F}${v.gray(ND)} ${J.trim()?`${J}
55
+ ${v.gray(ND)}`:""}`}case"error":{let J=this.error.split(`
56
+ `).map((Y,G)=>G===0?`${v.yellow(d1)} ${v.yellow(Y)}`:` ${Y}`).join(`
57
+ `);return`${F+v.yellow(ND)} ${ZF({options:this.options,cursor:this.cursor,maxItems:D.maxItems,style:X}).join(`
58
+ ${v.yellow(ND)} `)}
59
+ ${J}
60
+ `}default:return`${F}${v.cyan(ND)} ${ZF({options:this.options,cursor:this.cursor,maxItems:D.maxItems,style:X}).join(`
61
+ ${v.cyan(ND)} `)}
62
+ ${v.cyan(d1)}
63
+ `}}}).prompt()},nH;var oH=M(()=>{W2=CN(),f7={exports:{}};RN=ON(),v=KN(RN);MN=EN();uH={exports:{}};(function(D){var $={};D.exports=$,$.eastAsianWidth=function(X){var J=X.charCodeAt(0),Y=X.length==2?X.charCodeAt(1):0,G=J;return 55296<=J&&J<=56319&&56320<=Y&&Y<=57343&&(J&=1023,Y&=1023,G=J<<10|Y,G+=65536),G==12288||65281<=G&&G<=65376||65504<=G&&G<=65510?"F":G==8361||65377<=G&&G<=65470||65474<=G&&G<=65479||65482<=G&&G<=65487||65490<=G&&G<=65495||65498<=G&&G<=65500||65512<=G&&G<=65518?"H":4352<=G&&G<=4447||4515<=G&&G<=4519||4602<=G&&G<=4607||9001<=G&&G<=9002||11904<=G&&G<=11929||11931<=G&&G<=12019||12032<=G&&G<=12245||12272<=G&&G<=12283||12289<=G&&G<=12350||12353<=G&&G<=12438||12441<=G&&G<=12543||12549<=G&&G<=12589||12593<=G&&G<=12686||12688<=G&&G<=12730||12736<=G&&G<=12771||12784<=G&&G<=12830||12832<=G&&G<=12871||12880<=G&&G<=13054||13056<=G&&G<=19903||19968<=G&&G<=42124||42128<=G&&G<=42182||43360<=G&&G<=43388||44032<=G&&G<=55203||55216<=G&&G<=55238||55243<=G&&G<=55291||63744<=G&&G<=64255||65040<=G&&G<=65049||65072<=G&&G<=65106||65108<=G&&G<=65126||65128<=G&&G<=65131||110592<=G&&G<=110593||127488<=G&&G<=127490||127504<=G&&G<=127546||127552<=G&&G<=127560||127568<=G&&G<=127569||131072<=G&&G<=194367||177984<=G&&G<=196605||196608<=G&&G<=262141?"W":32<=G&&G<=126||162<=G&&G<=163||165<=G&&G<=166||G==172||G==175||10214<=G&&G<=10221||10629<=G&&G<=10630?"Na":G==161||G==164||167<=G&&G<=168||G==170||173<=G&&G<=174||176<=G&&G<=180||182<=G&&G<=186||188<=G&&G<=191||G==198||G==208||215<=G&&G<=216||222<=G&&G<=225||G==230||232<=G&&G<=234||236<=G&&G<=237||G==240||242<=G&&G<=243||247<=G&&G<=250||G==252||G==254||G==257||G==273||G==275||G==283||294<=G&&G<=295||G==299||305<=G&&G<=307||G==312||319<=G&&G<=322||G==324||328<=G&&G<=331||G==333||338<=G&&G<=339||358<=G&&G<=359||G==363||G==462||G==464||G==466||G==468||G==470||G==472||G==474||G==476||G==593||G==609||G==708||G==711||713<=G&&G<=715||G==717||G==720||728<=G&&G<=731||G==733||G==735||768<=G&&G<=879||913<=G&&G<=929||931<=G&&G<=937||945<=G&&G<=961||963<=G&&G<=969||G==1025||1040<=G&&G<=1103||G==1105||G==8208||8211<=G&&G<=8214||8216<=G&&G<=8217||8220<=G&&G<=8221||8224<=G&&G<=8226||8228<=G&&G<=8231||G==8240||8242<=G&&G<=8243||G==8245||G==8251||G==8254||G==8308||G==8319||8321<=G&&G<=8324||G==8364||G==8451||G==8453||G==8457||G==8467||G==8470||8481<=G&&G<=8482||G==8486||G==8491||8531<=G&&G<=8532||8539<=G&&G<=8542||8544<=G&&G<=8555||8560<=G&&G<=8569||G==8585||8592<=G&&G<=8601||8632<=G&&G<=8633||G==8658||G==8660||G==8679||G==8704||8706<=G&&G<=8707||8711<=G&&G<=8712||G==8715||G==8719||G==8721||G==8725||G==8730||8733<=G&&G<=8736||G==8739||G==8741||8743<=G&&G<=8748||G==8750||8756<=G&&G<=8759||8764<=G&&G<=8765||G==8776||G==8780||G==8786||8800<=G&&G<=8801||8804<=G&&G<=8807||8810<=G&&G<=8811||8814<=G&&G<=8815||8834<=G&&G<=8835||8838<=G&&G<=8839||G==8853||G==8857||G==8869||G==8895||G==8978||9312<=G&&G<=9449||9451<=G&&G<=9547||9552<=G&&G<=9587||9600<=G&&G<=9615||9618<=G&&G<=9621||9632<=G&&G<=9633||9635<=G&&G<=9641||9650<=G&&G<=9651||9654<=G&&G<=9655||9660<=G&&G<=9661||9664<=G&&G<=9665||9670<=G&&G<=9672||G==9675||9678<=G&&G<=9681||9698<=G&&G<=9701||G==9711||9733<=G&&G<=9734||G==9737||9742<=G&&G<=9743||9748<=G&&G<=9749||G==9756||G==9758||G==9792||G==9794||9824<=G&&G<=9825||9827<=G&&G<=9829||9831<=G&&G<=9834||9836<=G&&G<=9837||G==9839||9886<=G&&G<=9887||9918<=G&&G<=9919||9924<=G&&G<=9933||9935<=G&&G<=9953||G==9955||9960<=G&&G<=9983||G==10045||G==10071||10102<=G&&G<=10111||11093<=G&&G<=11097||12872<=G&&G<=12879||57344<=G&&G<=63743||65024<=G&&G<=65039||G==65533||127232<=G&&G<=127242||127248<=G&&G<=127277||127280<=G&&G<=127337||127344<=G&&G<=127386||917760<=G&&G<=917999||983040<=G&&G<=1048573||1048576<=G&&G<=1114109?"A":"N"},$.characterLength=function(X){var J=this.eastAsianWidth(X);return J=="F"||J=="W"||J=="A"?2:1};function F(X){return X.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}$.length=function(X){for(var J=F(X),Y=0,G=0;G<J.length;G++)Y=Y+this.characterLength(J[G]);return Y},$.slice=function(X,J,Y){textLen=$.length(X),J=J||0,Y=Y||1,J<0&&(J=textLen+J),Y<0&&(Y=textLen+Y);for(var G="",B=0,H=F(X),W=0;W<H.length;W++){var V=H[W],_=$.length(V);if(B>=J-(_==2?1:0))if(B+_<=Y)G+=V;else break;B+=_}return G}})(uH);ZN=uH.exports,PN=yH(ZN),NN=yH(qN);wD={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(wD.modifier);zN=Object.keys(wD.color),LN=Object.keys(wD.bgColor);[...zN,...LN];IN=jN(),v7=new Set(["\x1B","\x9B"]),qF=`${wN}8;;`;kN=["up","down","left","right","space","enter","cancel"],k7={actions:new Set(kN),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["\x03","cancel"],["escape","cancel"]])};globalThis.process.platform.startsWith("win");kH=Symbol("clack:cancel");hN=Object.defineProperty;lH=class lH extends M3{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(D){super(D,!1),this.value=!!D.initialValue,this.on("value",()=>{this.value=this._value}),this.on("confirm",($)=>{this.output.write(W2.cursor.move(0,-1)),this.value=$,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}};gN=Object.defineProperty,uN=class extends M3{constructor(D){super(D,!1),vH(this,"options"),vH(this,"cursor",0),this.options=D.options,this.value=[...D.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:$})=>$===D.cursorAt),0),this.on("key",($)=>{$==="a"&&this.toggleAll()}),this.on("cursor",($)=>{switch($){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break;case"space":this.toggleValue();break}})}get _value(){return this.options[this.cursor].value}toggleAll(){let D=this.value.length===this.options.length;this.value=D?[]:this.options.map(($)=>$.value)}toggleValue(){let D=this.value.includes(this._value);this.value=D?this.value.filter(($)=>$!==this._value):[...this.value,this._value]}},mN=Object.defineProperty;dH=class dH extends M3{constructor(D){super(D,!1),hH(this,"options"),hH(this,"cursor",0),this.options=D.options,this.cursor=this.options.findIndex(({value:$})=>$===D.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on("cursor",($)=>{switch($){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break}this.changeValue()})}get _value(){return this.options[this.cursor]}changeValue(){this.value=this._value.value}};iH=class iH extends M3{get valueWithCursor(){if(this.state==="submit")return this.value;if(this.cursor>=this.value.length)return`${this.value}\u2588`;let D=this.value.slice(0,this.cursor),[$,...F]=this.value.slice(this.cursor);return`${D}${v.inverse($)}${F.join("")}`}get cursor(){return this._cursor}constructor(D){super(D),this.on("finalize",()=>{this.value||(this.value=D.defaultValue)})}};lN=cN(),dN=Q2("\u276F",">"),iN=Q2("\u25A0","x"),nN=Q2("\u25B2","x"),sN=Q2("\u2714","\u221A"),ND=Q2(""),d1=Q2(""),EF=Q2("\u25CF",">"),MF=Q2("\u25CB"," "),rN=Q2("\u25FB","[\u2022]"),xH=Q2("\u25FC","[+]"),oN=Q2("\u25FB","[ ]");`${v.gray(ND)} `;nH=Symbol.for("cancel")});import aH from"process";function Xz(){if(globalThis.process?.env)for(let D of Fz){let $=D[1]||D[0];if(globalThis.process?.env[$])return{name:D[0].toLowerCase(),...D[2]}}return globalThis.process?.env?.SHELL==="/bin/jsh"&&globalThis.process?.versions?.webcontainer?{name:"stackblitz",ci:!1}:{name:"",ci:!1}}function o8(D){return D?D!=="false":!1}function Oz(){let D=Cz.find(($)=>$[0]);if(D)return{name:D[1]}}function Ez({onlyFirst:D=!1}={}){let F=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(F,D?void 0:"g")}function Zz(D){if(typeof D!=="string")throw TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(Mz,"")}function Pz(D){return D===161||D===164||D===167||D===168||D===170||D===173||D===174||D>=176&&D<=180||D>=182&&D<=186||D>=188&&D<=191||D===198||D===208||D===215||D===216||D>=222&&D<=225||D===230||D>=232&&D<=234||D===236||D===237||D===240||D===242||D===243||D>=247&&D<=250||D===252||D===254||D===257||D===273||D===275||D===283||D===294||D===295||D===299||D>=305&&D<=307||D===312||D>=319&&D<=322||D===324||D>=328&&D<=331||D===333||D===338||D===339||D===358||D===359||D===363||D===462||D===464||D===466||D===468||D===470||D===472||D===474||D===476||D===593||D===609||D===708||D===711||D>=713&&D<=715||D===717||D===720||D>=728&&D<=731||D===733||D===735||D>=768&&D<=879||D>=913&&D<=929||D>=931&&D<=937||D>=945&&D<=961||D>=963&&D<=969||D===1025||D>=1040&&D<=1103||D===1105||D===8208||D>=8211&&D<=8214||D===8216||D===8217||D===8220||D===8221||D>=8224&&D<=8226||D>=8228&&D<=8231||D===8240||D===8242||D===8243||D===8245||D===8251||D===8254||D===8308||D===8319||D>=8321&&D<=8324||D===8364||D===8451||D===8453||D===8457||D===8467||D===8470||D===8481||D===8482||D===8486||D===8491||D===8531||D===8532||D>=8539&&D<=8542||D>=8544&&D<=8555||D>=8560&&D<=8569||D===8585||D>=8592&&D<=8601||D===8632||D===8633||D===8658||D===8660||D===8679||D===8704||D===8706||D===8707||D===8711||D===8712||D===8715||D===8719||D===8721||D===8725||D===8730||D>=8733&&D<=8736||D===8739||D===8741||D>=8743&&D<=8748||D===8750||D>=8756&&D<=8759||D===8764||D===8765||D===8776||D===8780||D===8786||D===8800||D===8801||D>=8804&&D<=8807||D===8810||D===8811||D===8814||D===8815||D===8834||D===8835||D===8838||D===8839||D===8853||D===8857||D===8869||D===8895||D===8978||D>=9312&&D<=9449||D>=9451&&D<=9547||D>=9552&&D<=9587||D>=9600&&D<=9615||D>=9618&&D<=9621||D===9632||D===9633||D>=9635&&D<=9641||D===9650||D===9651||D===9654||D===9655||D===9660||D===9661||D===9664||D===9665||D>=9670&&D<=9672||D===9675||D>=9678&&D<=9681||D>=9698&&D<=9701||D===9711||D===9733||D===9734||D===9737||D===9742||D===9743||D===9756||D===9758||D===9792||D===9794||D===9824||D===9825||D>=9827&&D<=9829||D>=9831&&D<=9834||D===9836||D===9837||D===9839||D===9886||D===9887||D===9919||D>=9926&&D<=9933||D>=9935&&D<=9939||D>=9941&&D<=9953||D===9955||D===9960||D===9961||D>=9963&&D<=9969||D===9972||D>=9974&&D<=9977||D===9979||D===9980||D===9982||D===9983||D===10045||D>=10102&&D<=10111||D>=11094&&D<=11097||D>=12872&&D<=12879||D>=57344&&D<=63743||D>=65024&&D<=65039||D===65533||D>=127232&&D<=127242||D>=127248&&D<=127277||D>=127280&&D<=127337||D>=127344&&D<=127373||D===127375||D===127376||D>=127387&&D<=127404||D>=917760&&D<=917999||D>=983040&&D<=1048573||D>=1048576&&D<=1114109}function qz(D){return D===12288||D>=65281&&D<=65376||D>=65504&&D<=65510}function Nz(D){return D>=4352&&D<=4447||D===8986||D===8987||D===9001||D===9002||D>=9193&&D<=9196||D===9200||D===9203||D===9725||D===9726||D===9748||D===9749||D>=9776&&D<=9783||D>=9800&&D<=9811||D===9855||D>=9866&&D<=9871||D===9875||D===9889||D===9898||D===9899||D===9917||D===9918||D===9924||D===9925||D===9934||D===9940||D===9962||D===9970||D===9971||D===9973||D===9978||D===9981||D===9989||D===9994||D===9995||D===10024||D===10060||D===10062||D>=10067&&D<=10069||D===10071||D>=10133&&D<=10135||D===10160||D===10175||D===11035||D===11036||D===11088||D===11093||D>=11904&&D<=11929||D>=11931&&D<=12019||D>=12032&&D<=12245||D>=12272&&D<=12287||D>=12289&&D<=12350||D>=12353&&D<=12438||D>=12441&&D<=12543||D>=12549&&D<=12591||D>=12593&&D<=12686||D>=12688&&D<=12773||D>=12783&&D<=12830||D>=12832&&D<=12871||D>=12880&&D<=42124||D>=42128&&D<=42182||D>=43360&&D<=43388||D>=44032&&D<=55203||D>=63744&&D<=64255||D>=65040&&D<=65049||D>=65072&&D<=65106||D>=65108&&D<=65126||D>=65128&&D<=65131||D>=94176&&D<=94180||D===94192||D===94193||D>=94208&&D<=100343||D>=100352&&D<=101589||D>=101631&&D<=101640||D>=110576&&D<=110579||D>=110581&&D<=110587||D===110589||D===110590||D>=110592&&D<=110882||D===110898||D>=110928&&D<=110930||D===110933||D>=110948&&D<=110951||D>=110960&&D<=111355||D>=119552&&D<=119638||D>=119648&&D<=119670||D===126980||D===127183||D===127374||D>=127377&&D<=127386||D>=127488&&D<=127490||D>=127504&&D<=127547||D>=127552&&D<=127560||D===127568||D===127569||D>=127584&&D<=127589||D>=127744&&D<=127776||D>=127789&&D<=127797||D>=127799&&D<=127868||D>=127870&&D<=127891||D>=127904&&D<=127946||D>=127951&&D<=127955||D>=127968&&D<=127984||D===127988||D>=127992&&D<=128062||D===128064||D>=128066&&D<=128252||D>=128255&&D<=128317||D>=128331&&D<=128334||D>=128336&&D<=128359||D===128378||D===128405||D===128406||D===128420||D>=128507&&D<=128591||D>=128640&&D<=128709||D===128716||D>=128720&&D<=128722||D>=128725&&D<=128727||D>=128732&&D<=128735||D===128747||D===128748||D>=128756&&D<=128764||D>=128992&&D<=129003||D===129008||D>=129292&&D<=129338||D>=129340&&D<=129349||D>=129351&&D<=129535||D>=129648&&D<=129660||D>=129664&&D<=129673||D>=129679&&D<=129734||D>=129742&&D<=129756||D>=129759&&D<=129769||D>=129776&&D<=129784||D>=131072&&D<=196605||D>=196608&&D<=262141}function zz(D){if(!Number.isSafeInteger(D))throw TypeError(`Expected a code point, got \`${typeof D}\`.`)}function Lz(D,{ambiguousAsWide:$=!1}={}){if(zz(D),qz(D)||Nz(D)||$&&Pz(D))return 2;return 1}function wz(D,$={}){if(typeof D!=="string"||D.length===0)return 0;let{ambiguousIsNarrow:F=!0,countAnsiEscapeCodes:X=!1}=$;if(!X)D=Zz(D);if(D.length===0)return 0;let J=0,Y={ambiguousAsWide:!F};for(let{segment:G}of Iz.segment(D)){let B=G.codePointAt(0);if(B<=31||B>=127&&B<=159)continue;if(B>=8203&&B<=8207||B===65279)continue;if(B>=768&&B<=879||B>=6832&&B<=6911||B>=7616&&B<=7679||B>=8400&&B<=8447||B>=65056&&B<=65071)continue;if(B>=55296&&B<=57343)continue;if(B>=65024&&B<=65039)continue;if(Tz.test(G))continue;if(jz().test(G)){J+=2;continue}J+=Lz(B,Y)}return J}function Sz(){let{env:D}=aH,{TERM:$,TERM_PROGRAM:F}=D;if(aH.platform!=="win32")return $!=="linux";return Boolean(D.WT_SESSION)||Boolean(D.TERMINUS_SUBLIME)||D.ConEmuTask==="{cmd::Cmder}"||F==="Terminus-Sublime"||F==="vscode"||$==="xterm-256color"||$==="alacritty"||$==="rxvt-unicode"||$==="rxvt-unicode-256color"||D.TERMINAL_EMULATOR==="JetBrains-JediTerm"}function DW(D){if(typeof Intl!=="object"||!Intl.Segmenter)return A8(D).length;return wz(D)}function x7(D){return D.replace(/`([^`]+)`/gm,($,F)=>P0.cyan(F)).replace(/\s+_([^_]+)_\s+/gm,($,F)=>` ${P0.underline(F)} `)}function vz(D="white"){return P0[D]||P0.white}function hz(D="bgWhite"){return P0[`bg${D[0].toUpperCase()}${D.slice(1)}`]||P0.bgWhite}function xz(D={}){let $=gz();if(process.env.CONSOLA_LEVEL)$=Number.parseInt(process.env.CONSOLA_LEVEL)??$;return KH({level:$,defaults:{level:$},stdout:process.stdout,stderr:process.stderr,prompt:(...X)=>Promise.resolve().then(() => (oH(),rH)).then((J)=>J.prompt(...X)),reporters:D.reporters||[D.fancy??!(NF||zF)?new XW:new w7],...D})}function gz(){if(Gz)return G0.debug;if(zF)return G0.warn;return G0.info}var g7,Z3=(D)=>globalThis.process?.env||import.meta.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(D?g7:globalThis),C8,$z,Fz,$W,Jz,NF,FW,Gz,zF,Yz,Bz,Hz,tH,Wz,Qz,Vz,_z,Uz,Az,Kz,Cz,Rz,Mz,jz=()=>{return/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g},Iz,Tz,fz,bz,kz,b2=(D,$)=>kz?D:$,eH,XW,E;var GD=M(()=>{UF();UF();OH();NH();g7=Object.create(null),C8=new Proxy(g7,{get(D,$){return Z3()[$]??g7[$]},has(D,$){let F=Z3();return $ in F||$ in g7},set(D,$,F){let X=Z3(!0);return X[$]=F,!0},deleteProperty(D,$){if(!$)return!1;let F=Z3(!0);return delete F[$],!0},ownKeys(){let D=Z3(!0);return Object.keys(D)}}),$z=typeof process<"u"&&process.env&&"development"||"",Fz=[["APPVEYOR"],["AWS_AMPLIFY","AWS_APP_ID",{ci:!0}],["AZURE_PIPELINES","SYSTEM_TEAMFOUNDATIONCOLLECTIONURI"],["AZURE_STATIC","INPUT_AZURE_STATIC_WEB_APPS_API_TOKEN"],["APPCIRCLE","AC_APPCIRCLE"],["BAMBOO","bamboo_planKey"],["BITBUCKET","BITBUCKET_COMMIT"],["BITRISE","BITRISE_IO"],["BUDDY","BUDDY_WORKSPACE_ID"],["BUILDKITE"],["CIRCLE","CIRCLECI"],["CIRRUS","CIRRUS_CI"],["CLOUDFLARE_PAGES","CF_PAGES",{ci:!0}],["CODEBUILD","CODEBUILD_BUILD_ARN"],["CODEFRESH","CF_BUILD_ID"],["DRONE"],["DRONE","DRONE_BUILD_EVENT"],["DSARI"],["GITHUB_ACTIONS"],["GITLAB","GITLAB_CI"],["GITLAB","CI_MERGE_REQUEST_ID"],["GOCD","GO_PIPELINE_LABEL"],["LAYERCI"],["HUDSON","HUDSON_URL"],["JENKINS","JENKINS_URL"],["MAGNUM"],["NETLIFY"],["NETLIFY","NETLIFY_LOCAL",{ci:!1}],["NEVERCODE"],["RENDER"],["SAIL","SAILCI"],["SEMAPHORE"],["SCREWDRIVER"],["SHIPPABLE"],["SOLANO","TDDIUM"],["STRIDER"],["TEAMCITY","TEAMCITY_VERSION"],["TRAVIS"],["VERCEL","NOW_BUILDER"],["VERCEL","VERCEL",{ci:!1}],["VERCEL","VERCEL_ENV",{ci:!1}],["APPCENTER","APPCENTER_BUILD_ID"],["CODESANDBOX","CODESANDBOX_SSE",{ci:!1}],["CODESANDBOX","CODESANDBOX_HOST",{ci:!1}],["STACKBLITZ"],["STORMKIT"],["CLEAVR"],["ZEABUR"],["CODESPHERE","CODESPHERE_APP_ID",{ci:!0}],["RAILWAY","RAILWAY_PROJECT_ID"],["RAILWAY","RAILWAY_SERVICE_ID"],["DENO-DEPLOY","DENO_DEPLOYMENT_ID"],["FIREBASE_APP_HOSTING","FIREBASE_APP_HOSTING",{ci:!0}]];$W=Xz();$W.name;Jz=globalThis.process?.platform||"",NF=o8(C8.CI)||$W.ci!==!1,FW=o8(globalThis.process?.stdout&&globalThis.process?.stdout.isTTY),Gz=o8(C8.DEBUG),zF=$z==="test"||o8(C8.TEST);o8(C8.MINIMAL);Yz=/^win/i.test(Jz);!o8(C8.NO_COLOR)&&(o8(C8.FORCE_COLOR)||(FW||Yz)&&C8.TERM);Bz=(globalThis.process?.versions?.node||"").replace(/^v/,"")||null;Number(Bz?.split(".")[0]);Hz=globalThis.process||Object.create(null),tH={versions:{}};new Proxy(Hz,{get(D,$){if($==="env")return C8;if($ in D)return D[$];if($ in tH)return tH[$]}});Wz=globalThis.process?.release?.name==="node",Qz=!!globalThis.Bun||!!globalThis.process?.versions?.bun,Vz=!!globalThis.Deno,_z=!!globalThis.fastly,Uz=!!globalThis.Netlify,Az=!!globalThis.EdgeRuntime,Kz=globalThis.navigator?.userAgent==="Cloudflare-Workers",Cz=[[Uz,"netlify"],[Az,"edge-light"],[Kz,"workerd"],[_z,"fastly"],[Vz,"deno"],[Qz,"bun"],[Wz,"node"]];Rz=Oz();Rz?.name;Mz=Ez();Iz=globalThis.Intl?.Segmenter?new Intl.Segmenter:{segment:(D)=>D.split("")},Tz=/^\p{Default_Ignorable_Code_Point}$/u;fz={info:"cyan",fail:"red",success:"green",ready:"green",start:"magenta"},bz={0:"red",1:"yellow"},kz=Sz(),eH={error:b2("\u2716","\xD7"),fatal:b2("\u2716","\xD7"),ready:b2("\u2714","\u221A"),warn:b2("\u26A0","\u203C"),info:b2("\u2139","i"),success:b2("\u2714","\u221A"),debug:b2("\u2699","D"),trace:b2("\u2192","\u2192"),fail:b2("\u2716","\xD7"),start:b2("\u25D0","o"),log:""};XW=class XW extends w7{formatStack(D,$,F){let X=" ".repeat((F?.errorLevel||0)+1);return`
64
+ ${X}`+KF(D,$).map((J)=>" "+J.replace(/^at +/,(Y)=>P0.gray(Y)).replace(/\((.+)\)/,(Y,G)=>`(${P0.cyan(G)})`)).join(`
65
+ ${X}`)}formatType(D,$,F){let X=fz[D.type]||bz[D.level]||"gray";if($)return hz(X)(P0.black(` ${D.type.toUpperCase()} `));let J=typeof eH[D.type]==="string"?eH[D.type]:D.icon||D.type;return J?vz(X)(J):""}formatLogObj(D,$){let[F,...X]=this.formatArgs(D.args,$).split(`
66
+ `);if(D.type==="box")return qH(x7(F+(X.length>0?`
67
+ `+X.join(`
68
+ `):"")),{title:D.title?x7(D.title):void 0,style:D.style});let J=this.formatDate(D.date,$),Y=J&&P0.gray(J),G=D.badge??D.level<2,B=this.formatType(D,G,$),H=D.tag?P0.gray(D.tag):"",W,V=this.filterAndJoin([B,x7(F)]),_=this.filterAndJoin($.columns?[H,Y]:[H]),U=($.columns||0)-DW(V)-DW(_)-2;if(W=U>0&&($.columns||0)>=80?V+" ".repeat(U)+_:(_?`${P0.gray(`[${_}]`)} `:"")+V,W+=x7(X.length>0?`
69
+ `+X.join(`
70
+ `):""),D.type==="trace"){let A=Error("Trace: "+D.message);W+=this.formatStack(A.stack||"",A.message)}return G?`
71
+ `+W+`
72
+ `:W}};E=xz()});var QD,LF,h,k2=(D)=>{switch(typeof D){case"undefined":return h.undefined;case"string":return h.string;case"number":return Number.isNaN(D)?h.nan:h.number;case"boolean":return h.boolean;case"function":return h.function;case"bigint":return h.bigint;case"symbol":return h.symbol;case"object":if(Array.isArray(D))return h.array;if(D===null)return h.null;if(D.then&&typeof D.then==="function"&&D.catch&&typeof D.catch==="function")return h.promise;if(typeof Map<"u"&&D instanceof Map)return h.map;if(typeof Set<"u"&&D instanceof Set)return h.set;if(typeof Date<"u"&&D instanceof Date)return h.date;return h.object;default:return h.unknown}};var P3=M(()=>{(function(D){D.assertEqual=(J)=>{};function $(J){}D.assertIs=$;function F(J){throw Error()}D.assertNever=F,D.arrayToEnum=(J)=>{let Y={};for(let G of J)Y[G]=G;return Y},D.getValidEnumValues=(J)=>{let Y=D.objectKeys(J).filter((B)=>typeof J[J[B]]!=="number"),G={};for(let B of Y)G[B]=J[B];return D.objectValues(G)},D.objectValues=(J)=>{return D.objectKeys(J).map(function(Y){return J[Y]})},D.objectKeys=typeof Object.keys==="function"?(J)=>Object.keys(J):(J)=>{let Y=[];for(let G in J)if(Object.prototype.hasOwnProperty.call(J,G))Y.push(G);return Y},D.find=(J,Y)=>{for(let G of J)if(Y(G))return G;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,Y=" | "){return J.map((G)=>typeof G==="string"?`'${G}'`:G).join(Y)}D.joinValues=X,D.jsonStringifyReplacer=(J,Y)=>{if(typeof Y==="bigint")return Y.toString();return Y}})(QD||(QD={}));(function(D){D.mergeShapes=($,F)=>{return{...$,...F}}})(LF||(LF={}));h=QD.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"])});var f,uz=(D)=>{return JSON.stringify(D,null,2).replace(/"([^"]+)":/g,"$1:")},j0;var y7=M(()=>{P3();f=QD.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"]);j0=class j0 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 Y of J.issues)if(Y.code==="invalid_union")Y.unionErrors.map(X);else if(Y.code==="invalid_return_type")X(Y.returnTypeError);else if(Y.code==="invalid_arguments")X(Y.argumentsError);else if(Y.path.length===0)F._errors.push($(Y));else{let G=F,B=0;while(B<Y.path.length){let H=Y.path[B];if(B!==Y.path.length-1)G[H]=G[H]||{_errors:[]};else G[H]=G[H]||{_errors:[]},G[H]._errors.push($(Y));G=G[H],B++}}};return X(this),F}static assert(D){if(!(D instanceof j0))throw Error(`Not a ZodError: ${D}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,QD.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()}};j0.create=(D)=>{return new j0(D)}});var mz=(D,$)=>{let F;switch(D.code){case f.invalid_type:if(D.received===h.undefined)F="Required";else F=`Expected ${D.expected}, received ${D.received}`;break;case f.invalid_literal:F=`Invalid literal value, expected ${JSON.stringify(D.expected,QD.jsonStringifyReplacer)}`;break;case f.unrecognized_keys:F=`Unrecognized key(s) in object: ${QD.joinValues(D.keys,", ")}`;break;case f.invalid_union:F="Invalid input";break;case f.invalid_union_discriminator:F=`Invalid discriminator value. Expected ${QD.joinValues(D.options)}`;break;case f.invalid_enum_value:F=`Invalid enum value. Expected ${QD.joinValues(D.options)}, received '${D.received}'`;break;case f.invalid_arguments:F="Invalid function arguments";break;case f.invalid_return_type:F="Invalid function return type";break;case f.invalid_date:F="Invalid date";break;case f.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 QD.assertNever(D.validation);else if(D.validation!=="regex")F=`Invalid ${D.validation}`;else F="Invalid";break;case f.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 f.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 f.custom:F="Invalid input";break;case f.invalid_intersection_types:F="Intersection results could not be merged";break;case f.not_multiple_of:F=`Number must be a multiple of ${D.multipleOf}`;break;case f.not_finite:F="Number must be finite";break;default:F=$.defaultError,QD.assertNever(D)}return{message:F}},r2;var jF=M(()=>{y7();P3();r2=mz});function pz(D){GW=D}function i1(){return GW}var GW;var u7=M(()=>{jF();GW=r2});function y(D,$){let F=i1(),X=q3({issueData:$,data:D.data,path:D.path,errorMaps:[D.common.contextualErrorMap,D.schemaErrorMap,F,F===r2?void 0:r2].filter((J)=>!!J)});D.common.issues.push(X)}class Y0{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 n;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,Y=await X.value;F.push({key:J,value:Y})}return Y0.mergeObjectSync(D,F)}static mergeObjectSync(D,$){let F={};for(let X of $){let{key:J,value:Y}=X;if(J.status==="aborted")return n;if(Y.status==="aborted")return n;if(J.status==="dirty")D.dirty();if(Y.status==="dirty")D.dirty();if(J.value!=="__proto__"&&(typeof Y.value<"u"||X.alwaysSet))F[J.value]=Y.value}return{status:D.value,value:F}}}var q3=(D)=>{let{data:$,path:F,errorMaps:X,issueData:J}=D,Y=[...F,...J.path||[]],G={...J,path:Y};if(J.message!==void 0)return{...J,path:Y,message:J.message};let B="",H=X.filter((W)=>!!W).slice().reverse();for(let W of H)B=W(G,{data:$,defaultError:B}).message;return{...J,path:Y,message:B}},cz,n,a8=(D)=>({status:"dirty",value:D}),V0=(D)=>({status:"valid",value:D}),m7=(D)=>D.status==="aborted",p7=(D)=>D.status==="dirty",O8=(D)=>D.status==="valid",n1=(D)=>typeof Promise<"u"&&D instanceof Promise;var IF=M(()=>{u7();jF();cz=[];n=Object.freeze({status:"aborted"})});var YW=()=>{};var l;var BW=M(()=>{(function(D){D.errToObj=($)=>typeof $==="string"?{message:$}:$||{},D.toString=($)=>typeof $==="string"?$:$?.message})(l||(l={}))});class A2{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 FD(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:(G,B)=>{let{message:H}=D;if(G.code==="invalid_enum_value")return{message:H??B.defaultError};if(typeof B.data>"u")return{message:H??X??B.defaultError};if(G.code!=="invalid_type")return{message:B.defaultError};return{message:H??F??B.defaultError}},description:J}}class YD{get description(){return this._def.description}_getType(D){return k2(D.data)}_getOrReturnCtx(D,$){return $||{common:D.parent.common,data:D.data,parsedType:k2(D.data),schemaErrorMap:this._def.errorMap,path:D.path,parent:D.parent}}_processInputParams(D){return{status:new Y0,ctx:{common:D.parent.common,data:D.data,parsedType:k2(D.data),schemaErrorMap:this._def.errorMap,path:D.path,parent:D.parent}}}_parseSync(D){let $=this._parse(D);if(n1($))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:k2(D)},X=this._parseSync({data:D,path:F.path,parent:F});return HW(F,X)}"~validate"(D){let $={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:D,parsedType:k2(D)};if(!this["~standard"].async)try{let F=this._parseSync({data:D,path:[],parent:$});return O8(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)=>O8(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:k2(D)},X=this._parse({data:D,path:F.path,parent:F}),J=await(n1(X)?X:Promise.resolve(X));return HW(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 Y=D(X),G=()=>J.addIssue({code:f.custom,...F(X)});if(typeof Promise<"u"&&Y instanceof Promise)return Y.then((B)=>{if(!B)return G(),!1;else return!0});if(!Y)return G(),!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 K2({schema:this,typeName:o.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 U2.create(this,this._def)}nullable(){return a2.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return _2.create(this)}promise(){return $1.create(this,this._def)}or(D){return e1.create([this,D],this._def)}and(D){return D6.create(this,D,this._def)}transform(D){return new K2({...FD(this._def),schema:this,typeName:o.ZodEffects,effect:{type:"transform",transform:D}})}default(D){let $=typeof D==="function"?D:()=>D;return new J6({...FD(this._def),innerType:this,defaultValue:$,typeName:o.ZodDefault})}brand(){return new l7({typeName:o.ZodBranded,type:this,...FD(this._def)})}catch(D){let $=typeof D==="function"?D:()=>D;return new G6({...FD(this._def),innerType:this,catchValue:$,typeName:o.ZodCatch})}describe(D){return new this.constructor({...this._def,description:D})}pipe(D){return T3.create(this,D)}readonly(){return Y6.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}function VW(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 YL(D){return new RegExp(`^${VW(D)}$`)}function _W(D){let $=`${QW}T${VW(D)}`,F=[];if(F.push(D.local?"Z?":"Z"),D.offset)F.push("([+-]\\d{2}:?\\d{2})");return $=`${$}(${F.join("|")})`,new RegExp(`^${$}$`)}function BL(D,$){if(($==="v4"||!$)&&ez.test(D))return!0;if(($==="v6"||!$)&&$L.test(D))return!0;return!1}function HL(D,$){if(!rz.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 WL(D,$){if(($==="v4"||!$)&&DL.test(D))return!0;if(($==="v6"||!$)&&FL.test(D))return!0;return!1}function QL(D,$){let F=(D.toString().split(".")[1]||"").length,X=($.toString().split(".")[1]||"").length,J=F>X?F:X,Y=Number.parseInt(D.toFixed(J).replace(".","")),G=Number.parseInt($.toFixed(J).replace(".",""));return Y%G/10**J}function s1(D){if(D instanceof hD){let $={};for(let F in D.shape){let X=D.shape[F];$[F]=U2.create(s1(X))}return new hD({...D._def,shape:()=>$})}else if(D instanceof _2)return new _2({...D._def,type:s1(D.element)});else if(D instanceof U2)return U2.create(s1(D.unwrap()));else if(D instanceof a2)return a2.create(s1(D.unwrap()));else if(D instanceof h2)return h2.create(D.items.map(($)=>s1($)));else return D}function wF(D,$){let F=k2(D),X=k2($);if(D===$)return{valid:!0,data:D};else if(F===h.object&&X===h.object){let J=QD.objectKeys($),Y=QD.objectKeys(D).filter((B)=>J.indexOf(B)!==-1),G={...D,...$};for(let B of Y){let H=wF(D[B],$[B]);if(!H.valid)return{valid:!1};G[B]=H.data}return{valid:!0,data:G}}else if(F===h.array&&X===h.array){if(D.length!==$.length)return{valid:!1};let J=[];for(let Y=0;Y<D.length;Y++){let G=D[Y],B=$[Y],H=wF(G,B);if(!H.valid)return{valid:!1};J.push(H.data)}return{valid:!0,data:J}}else if(F===h.date&&X===h.date&&+D===+$)return{valid:!0,data:D};else return{valid:!1}}function UW(D,$){return new Z8({values:D,typeName:o.ZodEnum,...FD($)})}function WW(D,$){let F=typeof D==="function"?D($):typeof D==="string"?{message:D}:D;return typeof F==="string"?{message:F}:F}function AW(D,$={},F){if(D)return e8.create().superRefine((X,J)=>{let Y=D(X);if(Y instanceof Promise)return Y.then((G)=>{if(!G){let B=WW($,X),H=B.fatal??F??!0;J.addIssue({code:"custom",...B,fatal:H})}});if(!Y){let G=WW($,X),B=G.fatal??F??!0;J.addIssue({code:"custom",...G,fatal:B})}return});return e8.create()}var HW=(D,$)=>{if(O8($))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 j0(D.common.issues);return this._error=F,this._error}}}},lz,dz,iz,nz,sz,rz,oz,az,tz="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",TF,ez,DL,$L,FL,XL,JL,QW="((\\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])))",GL,V2,E8,M8,o1,t8,N3,a1,t1,e8,R8,v2,z3,_2,hD,e1,o2=(D)=>{if(D instanceof $6)return o2(D.schema);else if(D instanceof K2)return o2(D.innerType());else if(D instanceof F6)return[D.value];else if(D instanceof Z8)return D.options;else if(D instanceof X6)return QD.objectValues(D.enum);else if(D instanceof J6)return o2(D._def.innerType);else if(D instanceof a1)return[void 0];else if(D instanceof t1)return[null];else if(D instanceof U2)return[void 0,...o2(D.unwrap())];else if(D instanceof a2)return[null,...o2(D.unwrap())];else if(D instanceof l7)return o2(D.unwrap());else if(D instanceof Y6)return o2(D.unwrap());else if(D instanceof G6)return o2(D._def.innerType);else return[]},c7,D6,h2,L3,j3,D1,r1,$6,F6,Z8,X6,$1,K2,U2,a2,J6,G6,I3,VL,l7,T3,Y6,_L,o,UL=(D,$={message:`Input not instance of ${D.name}`})=>AW((F)=>F instanceof D,$),KW,CW,AL,KL,OW,CL,OL,RL,EL,ML,ZL,PL,qL,NL,zL,LL,jL,IL,TL,wL,SL,fL,bL,kL,vL,hL,xL,gL,yL,uL,mL,pL,cL,lL,dL=()=>KW().optional(),iL=()=>CW().optional(),nL=()=>OW().optional(),sL,rL;var RW=M(()=>{y7();u7();BW();IF();P3();lz=/^c[^\s-]{8,}$/i,dz=/^[0-9a-z]+$/,iz=/^[0-9A-HJKMNP-TV-Z]{26}$/i,nz=/^[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,sz=/^[a-z0-9_-]{21}$/i,rz=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,oz=/^[-+]?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)?)??$/,az=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,ez=/^(?:(?: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])$/,DL=/^(?:(?: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])$/,$L=/^(([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]))$/,FL=/^(([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])$/,XL=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,JL=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,GL=new RegExp(`^${QW}$`);V2=class V2 extends YD{_parse(D){if(this._def.coerce)D.data=String(D.data);if(this._getType(D)!==h.string){let J=this._getOrReturnCtx(D);return y(J,{code:f.invalid_type,expected:h.string,received:J.parsedType}),n}let F=new Y0,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),y(X,{code:f.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),y(X,{code:f.too_big,maximum:J.value,type:"string",inclusive:!0,exact:!1,message:J.message}),F.dirty()}else if(J.kind==="length"){let Y=D.data.length>J.value,G=D.data.length<J.value;if(Y||G){if(X=this._getOrReturnCtx(D,X),Y)y(X,{code:f.too_big,maximum:J.value,type:"string",inclusive:!0,exact:!0,message:J.message});else if(G)y(X,{code:f.too_small,minimum:J.value,type:"string",inclusive:!0,exact:!0,message:J.message});F.dirty()}}else if(J.kind==="email"){if(!az.test(D.data))X=this._getOrReturnCtx(D,X),y(X,{validation:"email",code:f.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="emoji"){if(!TF)TF=new RegExp(tz,"u");if(!TF.test(D.data))X=this._getOrReturnCtx(D,X),y(X,{validation:"emoji",code:f.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="uuid"){if(!nz.test(D.data))X=this._getOrReturnCtx(D,X),y(X,{validation:"uuid",code:f.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="nanoid"){if(!sz.test(D.data))X=this._getOrReturnCtx(D,X),y(X,{validation:"nanoid",code:f.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cuid"){if(!lz.test(D.data))X=this._getOrReturnCtx(D,X),y(X,{validation:"cuid",code:f.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cuid2"){if(!dz.test(D.data))X=this._getOrReturnCtx(D,X),y(X,{validation:"cuid2",code:f.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="ulid"){if(!iz.test(D.data))X=this._getOrReturnCtx(D,X),y(X,{validation:"ulid",code:f.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="url")try{new URL(D.data)}catch{X=this._getOrReturnCtx(D,X),y(X,{validation:"url",code:f.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),y(X,{validation:"regex",code:f.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),y(X,{code:f.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),y(X,{code:f.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),y(X,{code:f.invalid_string,validation:{endsWith:J.value},message:J.message}),F.dirty()}else if(J.kind==="datetime"){if(!_W(J).test(D.data))X=this._getOrReturnCtx(D,X),y(X,{code:f.invalid_string,validation:"datetime",message:J.message}),F.dirty()}else if(J.kind==="date"){if(!GL.test(D.data))X=this._getOrReturnCtx(D,X),y(X,{code:f.invalid_string,validation:"date",message:J.message}),F.dirty()}else if(J.kind==="time"){if(!YL(J).test(D.data))X=this._getOrReturnCtx(D,X),y(X,{code:f.invalid_string,validation:"time",message:J.message}),F.dirty()}else if(J.kind==="duration"){if(!oz.test(D.data))X=this._getOrReturnCtx(D,X),y(X,{validation:"duration",code:f.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="ip"){if(!BL(D.data,J.version))X=this._getOrReturnCtx(D,X),y(X,{validation:"ip",code:f.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="jwt"){if(!HL(D.data,J.alg))X=this._getOrReturnCtx(D,X),y(X,{validation:"jwt",code:f.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cidr"){if(!WL(D.data,J.version))X=this._getOrReturnCtx(D,X),y(X,{validation:"cidr",code:f.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="base64"){if(!XL.test(D.data))X=this._getOrReturnCtx(D,X),y(X,{validation:"base64",code:f.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="base64url"){if(!JL.test(D.data))X=this._getOrReturnCtx(D,X),y(X,{validation:"base64url",code:f.invalid_string,message:J.message}),F.dirty()}else QD.assertNever(J);return{status:F.value,value:D.data}}_regex(D,$,F){return this.refinement((X)=>D.test(X),{validation:$,code:f.invalid_string,...l.errToObj(F)})}_addCheck(D){return new V2({...this._def,checks:[...this._def.checks,D]})}email(D){return this._addCheck({kind:"email",...l.errToObj(D)})}url(D){return this._addCheck({kind:"url",...l.errToObj(D)})}emoji(D){return this._addCheck({kind:"emoji",...l.errToObj(D)})}uuid(D){return this._addCheck({kind:"uuid",...l.errToObj(D)})}nanoid(D){return this._addCheck({kind:"nanoid",...l.errToObj(D)})}cuid(D){return this._addCheck({kind:"cuid",...l.errToObj(D)})}cuid2(D){return this._addCheck({kind:"cuid2",...l.errToObj(D)})}ulid(D){return this._addCheck({kind:"ulid",...l.errToObj(D)})}base64(D){return this._addCheck({kind:"base64",...l.errToObj(D)})}base64url(D){return this._addCheck({kind:"base64url",...l.errToObj(D)})}jwt(D){return this._addCheck({kind:"jwt",...l.errToObj(D)})}ip(D){return this._addCheck({kind:"ip",...l.errToObj(D)})}cidr(D){return this._addCheck({kind:"cidr",...l.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,...l.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,...l.errToObj(D?.message)})}duration(D){return this._addCheck({kind:"duration",...l.errToObj(D)})}regex(D,$){return this._addCheck({kind:"regex",regex:D,...l.errToObj($)})}includes(D,$){return this._addCheck({kind:"includes",value:D,position:$?.position,...l.errToObj($?.message)})}startsWith(D,$){return this._addCheck({kind:"startsWith",value:D,...l.errToObj($)})}endsWith(D,$){return this._addCheck({kind:"endsWith",value:D,...l.errToObj($)})}min(D,$){return this._addCheck({kind:"min",value:D,...l.errToObj($)})}max(D,$){return this._addCheck({kind:"max",value:D,...l.errToObj($)})}length(D,$){return this._addCheck({kind:"length",value:D,...l.errToObj($)})}nonempty(D){return this.min(1,l.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:o.ZodString,coerce:D?.coerce??!1,...FD(D)})};E8=class E8 extends YD{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)!==h.number){let J=this._getOrReturnCtx(D);return y(J,{code:f.invalid_type,expected:h.number,received:J.parsedType}),n}let F=void 0,X=new Y0;for(let J of this._def.checks)if(J.kind==="int"){if(!QD.isInteger(D.data))F=this._getOrReturnCtx(D,F),y(F,{code:f.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),y(F,{code:f.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),y(F,{code:f.too_big,maximum:J.value,type:"number",inclusive:J.inclusive,exact:!1,message:J.message}),X.dirty()}else if(J.kind==="multipleOf"){if(QL(D.data,J.value)!==0)F=this._getOrReturnCtx(D,F),y(F,{code:f.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),y(F,{code:f.not_finite,message:J.message}),X.dirty()}else QD.assertNever(J);return{status:X.value,value:D.data}}gte(D,$){return this.setLimit("min",D,!0,l.toString($))}gt(D,$){return this.setLimit("min",D,!1,l.toString($))}lte(D,$){return this.setLimit("max",D,!0,l.toString($))}lt(D,$){return this.setLimit("max",D,!1,l.toString($))}setLimit(D,$,F,X){return new E8({...this._def,checks:[...this._def.checks,{kind:D,value:$,inclusive:F,message:l.toString(X)}]})}_addCheck(D){return new E8({...this._def,checks:[...this._def.checks,D]})}int(D){return this._addCheck({kind:"int",message:l.toString(D)})}positive(D){return this._addCheck({kind:"min",value:0,inclusive:!1,message:l.toString(D)})}negative(D){return this._addCheck({kind:"max",value:0,inclusive:!1,message:l.toString(D)})}nonpositive(D){return this._addCheck({kind:"max",value:0,inclusive:!0,message:l.toString(D)})}nonnegative(D){return this._addCheck({kind:"min",value:0,inclusive:!0,message:l.toString(D)})}multipleOf(D,$){return this._addCheck({kind:"multipleOf",value:D,message:l.toString($)})}finite(D){return this._addCheck({kind:"finite",message:l.toString(D)})}safe(D){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:l.toString(D)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:l.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"&&QD.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)}};E8.create=(D)=>{return new E8({checks:[],typeName:o.ZodNumber,coerce:D?.coerce||!1,...FD(D)})};M8=class M8 extends YD{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)!==h.bigint)return this._getInvalidInput(D);let F=void 0,X=new Y0;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),y(F,{code:f.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),y(F,{code:f.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),y(F,{code:f.not_multiple_of,multipleOf:J.value,message:J.message}),X.dirty()}else QD.assertNever(J);return{status:X.value,value:D.data}}_getInvalidInput(D){let $=this._getOrReturnCtx(D);return y($,{code:f.invalid_type,expected:h.bigint,received:$.parsedType}),n}gte(D,$){return this.setLimit("min",D,!0,l.toString($))}gt(D,$){return this.setLimit("min",D,!1,l.toString($))}lte(D,$){return this.setLimit("max",D,!0,l.toString($))}lt(D,$){return this.setLimit("max",D,!1,l.toString($))}setLimit(D,$,F,X){return new M8({...this._def,checks:[...this._def.checks,{kind:D,value:$,inclusive:F,message:l.toString(X)}]})}_addCheck(D){return new M8({...this._def,checks:[...this._def.checks,D]})}positive(D){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:l.toString(D)})}negative(D){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:l.toString(D)})}nonpositive(D){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:l.toString(D)})}nonnegative(D){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:l.toString(D)})}multipleOf(D,$){return this._addCheck({kind:"multipleOf",value:D,message:l.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}};M8.create=(D)=>{return new M8({checks:[],typeName:o.ZodBigInt,coerce:D?.coerce??!1,...FD(D)})};o1=class o1 extends YD{_parse(D){if(this._def.coerce)D.data=Boolean(D.data);if(this._getType(D)!==h.boolean){let F=this._getOrReturnCtx(D);return y(F,{code:f.invalid_type,expected:h.boolean,received:F.parsedType}),n}return V0(D.data)}};o1.create=(D)=>{return new o1({typeName:o.ZodBoolean,coerce:D?.coerce||!1,...FD(D)})};t8=class t8 extends YD{_parse(D){if(this._def.coerce)D.data=new Date(D.data);if(this._getType(D)!==h.date){let J=this._getOrReturnCtx(D);return y(J,{code:f.invalid_type,expected:h.date,received:J.parsedType}),n}if(Number.isNaN(D.data.getTime())){let J=this._getOrReturnCtx(D);return y(J,{code:f.invalid_date}),n}let F=new Y0,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),y(X,{code:f.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),y(X,{code:f.too_big,message:J.message,inclusive:!0,exact:!1,maximum:J.value,type:"date"}),F.dirty()}else QD.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:l.toString($)})}max(D,$){return this._addCheck({kind:"max",value:D.getTime(),message:l.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:o.ZodDate,...FD(D)})};N3=class N3 extends YD{_parse(D){if(this._getType(D)!==h.symbol){let F=this._getOrReturnCtx(D);return y(F,{code:f.invalid_type,expected:h.symbol,received:F.parsedType}),n}return V0(D.data)}};N3.create=(D)=>{return new N3({typeName:o.ZodSymbol,...FD(D)})};a1=class a1 extends YD{_parse(D){if(this._getType(D)!==h.undefined){let F=this._getOrReturnCtx(D);return y(F,{code:f.invalid_type,expected:h.undefined,received:F.parsedType}),n}return V0(D.data)}};a1.create=(D)=>{return new a1({typeName:o.ZodUndefined,...FD(D)})};t1=class t1 extends YD{_parse(D){if(this._getType(D)!==h.null){let F=this._getOrReturnCtx(D);return y(F,{code:f.invalid_type,expected:h.null,received:F.parsedType}),n}return V0(D.data)}};t1.create=(D)=>{return new t1({typeName:o.ZodNull,...FD(D)})};e8=class e8 extends YD{constructor(){super(...arguments);this._any=!0}_parse(D){return V0(D.data)}};e8.create=(D)=>{return new e8({typeName:o.ZodAny,...FD(D)})};R8=class R8 extends YD{constructor(){super(...arguments);this._unknown=!0}_parse(D){return V0(D.data)}};R8.create=(D)=>{return new R8({typeName:o.ZodUnknown,...FD(D)})};v2=class v2 extends YD{_parse(D){let $=this._getOrReturnCtx(D);return y($,{code:f.invalid_type,expected:h.never,received:$.parsedType}),n}};v2.create=(D)=>{return new v2({typeName:o.ZodNever,...FD(D)})};z3=class z3 extends YD{_parse(D){if(this._getType(D)!==h.undefined){let F=this._getOrReturnCtx(D);return y(F,{code:f.invalid_type,expected:h.void,received:F.parsedType}),n}return V0(D.data)}};z3.create=(D)=>{return new z3({typeName:o.ZodVoid,...FD(D)})};_2=class _2 extends YD{_parse(D){let{ctx:$,status:F}=this._processInputParams(D),X=this._def;if($.parsedType!==h.array)return y($,{code:f.invalid_type,expected:h.array,received:$.parsedType}),n;if(X.exactLength!==null){let Y=$.data.length>X.exactLength.value,G=$.data.length<X.exactLength.value;if(Y||G)y($,{code:Y?f.too_big:f.too_small,minimum:G?X.exactLength.value:void 0,maximum:Y?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)y($,{code:f.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)y($,{code:f.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((Y,G)=>{return X.type._parseAsync(new A2($,Y,$.path,G))})).then((Y)=>{return Y0.mergeArray(F,Y)});let J=[...$.data].map((Y,G)=>{return X.type._parseSync(new A2($,Y,$.path,G))});return Y0.mergeArray(F,J)}get element(){return this._def.type}min(D,$){return new _2({...this._def,minLength:{value:D,message:l.toString($)}})}max(D,$){return new _2({...this._def,maxLength:{value:D,message:l.toString($)}})}length(D,$){return new _2({...this._def,exactLength:{value:D,message:l.toString($)}})}nonempty(D){return this.min(1,D)}};_2.create=(D,$)=>{return new _2({type:D,minLength:null,maxLength:null,exactLength:null,typeName:o.ZodArray,...FD($)})};hD=class hD extends YD{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(),$=QD.objectKeys(D);return this._cached={shape:D,keys:$},this._cached}_parse(D){if(this._getType(D)!==h.object){let H=this._getOrReturnCtx(D);return y(H,{code:f.invalid_type,expected:h.object,received:H.parsedType}),n}let{status:F,ctx:X}=this._processInputParams(D),{shape:J,keys:Y}=this._getCached(),G=[];if(!(this._def.catchall instanceof v2&&this._def.unknownKeys==="strip")){for(let H in X.data)if(!Y.includes(H))G.push(H)}let B=[];for(let H of Y){let W=J[H],V=X.data[H];B.push({key:{status:"valid",value:H},value:W._parse(new A2(X,V,X.path,H)),alwaysSet:H in X.data})}if(this._def.catchall instanceof v2){let H=this._def.unknownKeys;if(H==="passthrough")for(let W of G)B.push({key:{status:"valid",value:W},value:{status:"valid",value:X.data[W]}});else if(H==="strict"){if(G.length>0)y(X,{code:f.unrecognized_keys,keys:G}),F.dirty()}else if(H==="strip");else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let H=this._def.catchall;for(let W of G){let V=X.data[W];B.push({key:{status:"valid",value:W},value:H._parse(new A2(X,V,X.path,W)),alwaysSet:W in X.data})}}if(X.common.async)return Promise.resolve().then(async()=>{let H=[];for(let W of B){let V=await W.key,_=await W.value;H.push({key:V,value:_,alwaysSet:W.alwaysSet})}return H}).then((H)=>{return Y0.mergeObjectSync(F,H)});else return Y0.mergeObjectSync(F,B)}get shape(){return this._def.shape()}strict(D){return l.errToObj,new hD({...this._def,unknownKeys:"strict",...D!==void 0?{errorMap:($,F)=>{let X=this._def.errorMap?.($,F).message??F.defaultError;if($.code==="unrecognized_keys")return{message:l.errToObj(D).message??X};return{message:X}}}:{}})}strip(){return new hD({...this._def,unknownKeys:"strip"})}passthrough(){return new hD({...this._def,unknownKeys:"passthrough"})}extend(D){return new hD({...this._def,shape:()=>({...this._def.shape(),...D})})}merge(D){return new hD({unknownKeys:D._def.unknownKeys,catchall:D._def.catchall,shape:()=>({...this._def.shape(),...D._def.shape()}),typeName:o.ZodObject})}setKey(D,$){return this.augment({[D]:$})}catchall(D){return new hD({...this._def,catchall:D})}pick(D){let $={};for(let F of QD.objectKeys(D))if(D[F]&&this.shape[F])$[F]=this.shape[F];return new hD({...this._def,shape:()=>$})}omit(D){let $={};for(let F of QD.objectKeys(this.shape))if(!D[F])$[F]=this.shape[F];return new hD({...this._def,shape:()=>$})}deepPartial(){return s1(this)}partial(D){let $={};for(let F of QD.objectKeys(this.shape)){let X=this.shape[F];if(D&&!D[F])$[F]=X;else $[F]=X.optional()}return new hD({...this._def,shape:()=>$})}required(D){let $={};for(let F of QD.objectKeys(this.shape))if(D&&!D[F])$[F]=this.shape[F];else{let J=this.shape[F];while(J instanceof U2)J=J._def.innerType;$[F]=J}return new hD({...this._def,shape:()=>$})}keyof(){return UW(QD.objectKeys(this.shape))}};hD.create=(D,$)=>{return new hD({shape:()=>D,unknownKeys:"strip",catchall:v2.create(),typeName:o.ZodObject,...FD($)})};hD.strictCreate=(D,$)=>{return new hD({shape:()=>D,unknownKeys:"strict",catchall:v2.create(),typeName:o.ZodObject,...FD($)})};hD.lazycreate=(D,$)=>{return new hD({shape:D,unknownKeys:"strip",catchall:v2.create(),typeName:o.ZodObject,...FD($)})};e1=class e1 extends YD{_parse(D){let{ctx:$}=this._processInputParams(D),F=this._def.options;function X(J){for(let G of J)if(G.result.status==="valid")return G.result;for(let G of J)if(G.result.status==="dirty")return $.common.issues.push(...G.ctx.common.issues),G.result;let Y=J.map((G)=>new j0(G.ctx.common.issues));return y($,{code:f.invalid_union,unionErrors:Y}),n}if($.common.async)return Promise.all(F.map(async(J)=>{let Y={...$,common:{...$.common,issues:[]},parent:null};return{result:await J._parseAsync({data:$.data,path:$.path,parent:Y}),ctx:Y}})).then(X);else{let J=void 0,Y=[];for(let B of F){let H={...$,common:{...$.common,issues:[]},parent:null},W=B._parseSync({data:$.data,path:$.path,parent:H});if(W.status==="valid")return W;else if(W.status==="dirty"&&!J)J={result:W,ctx:H};if(H.common.issues.length)Y.push(H.common.issues)}if(J)return $.common.issues.push(...J.ctx.common.issues),J.result;let G=Y.map((B)=>new j0(B));return y($,{code:f.invalid_union,unionErrors:G}),n}}get options(){return this._def.options}};e1.create=(D,$)=>{return new e1({options:D,typeName:o.ZodUnion,...FD($)})};c7=class c7 extends YD{_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==h.object)return y($,{code:f.invalid_type,expected:h.object,received:$.parsedType}),n;let F=this.discriminator,X=$.data[F],J=this.optionsMap.get(X);if(!J)return y($,{code:f.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[F]}),n;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 Y=o2(J.shape[D]);if(!Y.length)throw Error(`A discriminator value for key \`${D}\` could not be extracted from all schema options`);for(let G of Y){if(X.has(G))throw Error(`Discriminator property ${String(D)} has duplicate value ${String(G)}`);X.set(G,J)}}return new c7({typeName:o.ZodDiscriminatedUnion,discriminator:D,options:$,optionsMap:X,...FD(F)})}};D6=class D6 extends YD{_parse(D){let{status:$,ctx:F}=this._processInputParams(D),X=(J,Y)=>{if(m7(J)||m7(Y))return n;let G=wF(J.value,Y.value);if(!G.valid)return y(F,{code:f.invalid_intersection_types}),n;if(p7(J)||p7(Y))$.dirty();return{status:$.value,value:G.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,Y])=>X(J,Y));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}))}};D6.create=(D,$,F)=>{return new D6({left:D,right:$,typeName:o.ZodIntersection,...FD(F)})};h2=class h2 extends YD{_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==h.array)return y(F,{code:f.invalid_type,expected:h.array,received:F.parsedType}),n;if(F.data.length<this._def.items.length)return y(F,{code:f.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n;if(!this._def.rest&&F.data.length>this._def.items.length)y(F,{code:f.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),$.dirty();let J=[...F.data].map((Y,G)=>{let B=this._def.items[G]||this._def.rest;if(!B)return null;return B._parse(new A2(F,Y,F.path,G))}).filter((Y)=>!!Y);if(F.common.async)return Promise.all(J).then((Y)=>{return Y0.mergeArray($,Y)});else return Y0.mergeArray($,J)}get items(){return this._def.items}rest(D){return new h2({...this._def,rest:D})}};h2.create=(D,$)=>{if(!Array.isArray(D))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new h2({items:D,typeName:o.ZodTuple,rest:null,...FD($)})};L3=class L3 extends YD{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==h.object)return y(F,{code:f.invalid_type,expected:h.object,received:F.parsedType}),n;let X=[],J=this._def.keyType,Y=this._def.valueType;for(let G in F.data)X.push({key:J._parse(new A2(F,G,F.path,G)),value:Y._parse(new A2(F,F.data[G],F.path,G)),alwaysSet:G in F.data});if(F.common.async)return Y0.mergeObjectAsync($,X);else return Y0.mergeObjectSync($,X)}get element(){return this._def.valueType}static create(D,$,F){if($ instanceof YD)return new L3({keyType:D,valueType:$,typeName:o.ZodRecord,...FD(F)});return new L3({keyType:V2.create(),valueType:D,typeName:o.ZodRecord,...FD($)})}};j3=class j3 extends YD{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==h.map)return y(F,{code:f.invalid_type,expected:h.map,received:F.parsedType}),n;let X=this._def.keyType,J=this._def.valueType,Y=[...F.data.entries()].map(([G,B],H)=>{return{key:X._parse(new A2(F,G,F.path,[H,"key"])),value:J._parse(new A2(F,B,F.path,[H,"value"]))}});if(F.common.async){let G=new Map;return Promise.resolve().then(async()=>{for(let B of Y){let H=await B.key,W=await B.value;if(H.status==="aborted"||W.status==="aborted")return n;if(H.status==="dirty"||W.status==="dirty")$.dirty();G.set(H.value,W.value)}return{status:$.value,value:G}})}else{let G=new Map;for(let B of Y){let{key:H,value:W}=B;if(H.status==="aborted"||W.status==="aborted")return n;if(H.status==="dirty"||W.status==="dirty")$.dirty();G.set(H.value,W.value)}return{status:$.value,value:G}}}};j3.create=(D,$,F)=>{return new j3({valueType:$,keyType:D,typeName:o.ZodMap,...FD(F)})};D1=class D1 extends YD{_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==h.set)return y(F,{code:f.invalid_type,expected:h.set,received:F.parsedType}),n;let X=this._def;if(X.minSize!==null){if(F.data.size<X.minSize.value)y(F,{code:f.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)y(F,{code:f.too_big,maximum:X.maxSize.value,type:"set",inclusive:!0,exact:!1,message:X.maxSize.message}),$.dirty()}let J=this._def.valueType;function Y(B){let H=new Set;for(let W of B){if(W.status==="aborted")return n;if(W.status==="dirty")$.dirty();H.add(W.value)}return{status:$.value,value:H}}let G=[...F.data.values()].map((B,H)=>J._parse(new A2(F,B,F.path,H)));if(F.common.async)return Promise.all(G).then((B)=>Y(B));else return Y(G)}min(D,$){return new D1({...this._def,minSize:{value:D,message:l.toString($)}})}max(D,$){return new D1({...this._def,maxSize:{value:D,message:l.toString($)}})}size(D,$){return this.min(D,$).max(D,$)}nonempty(D){return this.min(1,D)}};D1.create=(D,$)=>{return new D1({valueType:D,minSize:null,maxSize:null,typeName:o.ZodSet,...FD($)})};r1=class r1 extends YD{constructor(){super(...arguments);this.validate=this.implement}_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==h.function)return y($,{code:f.invalid_type,expected:h.function,received:$.parsedType}),n;function F(G,B){return q3({data:G,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,i1(),r2].filter((H)=>!!H),issueData:{code:f.invalid_arguments,argumentsError:B}})}function X(G,B){return q3({data:G,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,i1(),r2].filter((H)=>!!H),issueData:{code:f.invalid_return_type,returnTypeError:B}})}let J={errorMap:$.common.contextualErrorMap},Y=$.data;if(this._def.returns instanceof $1){let G=this;return V0(async function(...B){let H=new j0([]),W=await G._def.args.parseAsync(B,J).catch((U)=>{throw H.addIssue(F(B,U)),H}),V=await Reflect.apply(Y,this,W);return await G._def.returns._def.type.parseAsync(V,J).catch((U)=>{throw H.addIssue(X(V,U)),H})})}else{let G=this;return V0(function(...B){let H=G._def.args.safeParse(B,J);if(!H.success)throw new j0([F(B,H.error)]);let W=Reflect.apply(Y,this,H.data),V=G._def.returns.safeParse(W,J);if(!V.success)throw new j0([X(W,V.error)]);return V.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...D){return new r1({...this._def,args:h2.create(D).rest(R8.create())})}returns(D){return new r1({...this._def,returns:D})}implement(D){return this.parse(D)}strictImplement(D){return this.parse(D)}static create(D,$,F){return new r1({args:D?D:h2.create([]).rest(R8.create()),returns:$||R8.create(),typeName:o.ZodFunction,...FD(F)})}};$6=class $6 extends YD{get schema(){return this._def.getter()}_parse(D){let{ctx:$}=this._processInputParams(D);return this._def.getter()._parse({data:$.data,path:$.path,parent:$})}};$6.create=(D,$)=>{return new $6({getter:D,typeName:o.ZodLazy,...FD($)})};F6=class F6 extends YD{_parse(D){if(D.data!==this._def.value){let $=this._getOrReturnCtx(D);return y($,{received:$.data,code:f.invalid_literal,expected:this._def.value}),n}return{status:"valid",value:D.data}}get value(){return this._def.value}};F6.create=(D,$)=>{return new F6({value:D,typeName:o.ZodLiteral,...FD($)})};Z8=class Z8 extends YD{_parse(D){if(typeof D.data!=="string"){let $=this._getOrReturnCtx(D),F=this._def.values;return y($,{expected:QD.joinValues(F),received:$.parsedType,code:f.invalid_type}),n}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 y($,{received:$.data,code:f.invalid_enum_value,options:F}),n}return V0(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 Z8.create(D,{...this._def,...$})}exclude(D,$=this._def){return Z8.create(this.options.filter((F)=>!D.includes(F)),{...this._def,...$})}};Z8.create=UW;X6=class X6 extends YD{_parse(D){let $=QD.getValidEnumValues(this._def.values),F=this._getOrReturnCtx(D);if(F.parsedType!==h.string&&F.parsedType!==h.number){let X=QD.objectValues($);return y(F,{expected:QD.joinValues(X),received:F.parsedType,code:f.invalid_type}),n}if(!this._cache)this._cache=new Set(QD.getValidEnumValues(this._def.values));if(!this._cache.has(D.data)){let X=QD.objectValues($);return y(F,{received:F.data,code:f.invalid_enum_value,options:X}),n}return V0(D.data)}get enum(){return this._def.values}};X6.create=(D,$)=>{return new X6({values:D,typeName:o.ZodNativeEnum,...FD($)})};$1=class $1 extends YD{unwrap(){return this._def.type}_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==h.promise&&$.common.async===!1)return y($,{code:f.invalid_type,expected:h.promise,received:$.parsedType}),n;let F=$.parsedType===h.promise?$.data:Promise.resolve($.data);return V0(F.then((X)=>{return this._def.type.parseAsync(X,{path:$.path,errorMap:$.common.contextualErrorMap})}))}};$1.create=(D,$)=>{return new $1({type:D,typeName:o.ZodPromise,...FD($)})};K2=class K2 extends YD{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===o.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(D){let{status:$,ctx:F}=this._processInputParams(D),X=this._def.effect||null,J={addIssue:(Y)=>{if(y(F,Y),Y.fatal)$.abort();else $.dirty()},get path(){return F.path}};if(J.addIssue=J.addIssue.bind(J),X.type==="preprocess"){let Y=X.transform(F.data,J);if(F.common.async)return Promise.resolve(Y).then(async(G)=>{if($.value==="aborted")return n;let B=await this._def.schema._parseAsync({data:G,path:F.path,parent:F});if(B.status==="aborted")return n;if(B.status==="dirty")return a8(B.value);if($.value==="dirty")return a8(B.value);return B});else{if($.value==="aborted")return n;let G=this._def.schema._parseSync({data:Y,path:F.path,parent:F});if(G.status==="aborted")return n;if(G.status==="dirty")return a8(G.value);if($.value==="dirty")return a8(G.value);return G}}if(X.type==="refinement"){let Y=(G)=>{let B=X.refinement(G,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 G};if(F.common.async===!1){let G=this._def.schema._parseSync({data:F.data,path:F.path,parent:F});if(G.status==="aborted")return n;if(G.status==="dirty")$.dirty();return Y(G.value),{status:$.value,value:G.value}}else return this._def.schema._parseAsync({data:F.data,path:F.path,parent:F}).then((G)=>{if(G.status==="aborted")return n;if(G.status==="dirty")$.dirty();return Y(G.value).then(()=>{return{status:$.value,value:G.value}})})}if(X.type==="transform")if(F.common.async===!1){let Y=this._def.schema._parseSync({data:F.data,path:F.path,parent:F});if(!O8(Y))return n;let G=X.transform(Y.value,J);if(G instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:$.value,value:G}}else return this._def.schema._parseAsync({data:F.data,path:F.path,parent:F}).then((Y)=>{if(!O8(Y))return n;return Promise.resolve(X.transform(Y.value,J)).then((G)=>({status:$.value,value:G}))});QD.assertNever(X)}};K2.create=(D,$,F)=>{return new K2({schema:D,typeName:o.ZodEffects,effect:$,...FD(F)})};K2.createWithPreprocess=(D,$,F)=>{return new K2({schema:$,effect:{type:"preprocess",transform:D},typeName:o.ZodEffects,...FD(F)})};U2=class U2 extends YD{_parse(D){if(this._getType(D)===h.undefined)return V0(void 0);return this._def.innerType._parse(D)}unwrap(){return this._def.innerType}};U2.create=(D,$)=>{return new U2({innerType:D,typeName:o.ZodOptional,...FD($)})};a2=class a2 extends YD{_parse(D){if(this._getType(D)===h.null)return V0(null);return this._def.innerType._parse(D)}unwrap(){return this._def.innerType}};a2.create=(D,$)=>{return new a2({innerType:D,typeName:o.ZodNullable,...FD($)})};J6=class J6 extends YD{_parse(D){let{ctx:$}=this._processInputParams(D),F=$.data;if($.parsedType===h.undefined)F=this._def.defaultValue();return this._def.innerType._parse({data:F,path:$.path,parent:$})}removeDefault(){return this._def.innerType}};J6.create=(D,$)=>{return new J6({innerType:D,typeName:o.ZodDefault,defaultValue:typeof $.default==="function"?$.default:()=>$.default,...FD($)})};G6=class G6 extends YD{_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(n1(X))return X.then((J)=>{return{status:"valid",value:J.status==="valid"?J.value:this._def.catchValue({get error(){return new j0(F.common.issues)},input:F.data})}});else return{status:"valid",value:X.status==="valid"?X.value:this._def.catchValue({get error(){return new j0(F.common.issues)},input:F.data})}}removeCatch(){return this._def.innerType}};G6.create=(D,$)=>{return new G6({innerType:D,typeName:o.ZodCatch,catchValue:typeof $.catch==="function"?$.catch:()=>$.catch,...FD($)})};I3=class I3 extends YD{_parse(D){if(this._getType(D)!==h.nan){let F=this._getOrReturnCtx(D);return y(F,{code:f.invalid_type,expected:h.nan,received:F.parsedType}),n}return{status:"valid",value:D.data}}};I3.create=(D)=>{return new I3({typeName:o.ZodNaN,...FD(D)})};VL=Symbol("zod_brand");l7=class l7 extends YD{_parse(D){let{ctx:$}=this._processInputParams(D),F=$.data;return this._def.type._parse({data:F,path:$.path,parent:$})}unwrap(){return this._def.type}};T3=class T3 extends YD{_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 n;if(J.status==="dirty")return $.dirty(),a8(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 n;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 T3({in:D,out:$,typeName:o.ZodPipeline})}};Y6=class Y6 extends YD{_parse(D){let $=this._def.innerType._parse(D),F=(X)=>{if(O8(X))X.value=Object.freeze(X.value);return X};return n1($)?$.then((X)=>F(X)):F($)}unwrap(){return this._def.innerType}};Y6.create=(D,$)=>{return new Y6({innerType:D,typeName:o.ZodReadonly,...FD($)})};_L={object:hD.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"})(o||(o={}));KW=V2.create,CW=E8.create,AL=I3.create,KL=M8.create,OW=o1.create,CL=t8.create,OL=N3.create,RL=a1.create,EL=t1.create,ML=e8.create,ZL=R8.create,PL=v2.create,qL=z3.create,NL=_2.create,zL=hD.create,LL=hD.strictCreate,jL=e1.create,IL=c7.create,TL=D6.create,wL=h2.create,SL=L3.create,fL=j3.create,bL=D1.create,kL=r1.create,vL=$6.create,hL=F6.create,xL=Z8.create,gL=X6.create,yL=$1.create,uL=K2.create,mL=U2.create,pL=a2.create,cL=K2.createWithPreprocess,lL=T3.create,sL={string:(D)=>V2.create({...D,coerce:!0}),number:(D)=>E8.create({...D,coerce:!0}),boolean:(D)=>o1.create({...D,coerce:!0}),bigint:(D)=>M8.create({...D,coerce:!0}),date:(D)=>t8.create({...D,coerce:!0})},rL=n});var Q={};r8(Q,{void:()=>qL,util:()=>QD,unknown:()=>ZL,union:()=>jL,undefined:()=>RL,tuple:()=>wL,transformer:()=>uL,symbol:()=>OL,string:()=>KW,strictObject:()=>LL,setErrorMap:()=>pz,set:()=>bL,record:()=>SL,quotelessJson:()=>uz,promise:()=>yL,preprocess:()=>cL,pipeline:()=>lL,ostring:()=>dL,optional:()=>mL,onumber:()=>iL,oboolean:()=>nL,objectUtil:()=>LF,object:()=>zL,number:()=>CW,nullable:()=>pL,null:()=>EL,never:()=>PL,nativeEnum:()=>gL,nan:()=>AL,map:()=>fL,makeIssue:()=>q3,literal:()=>hL,lazy:()=>vL,late:()=>_L,isValid:()=>O8,isDirty:()=>p7,isAsync:()=>n1,isAborted:()=>m7,intersection:()=>TL,instanceof:()=>UL,getParsedType:()=>k2,getErrorMap:()=>i1,function:()=>kL,enum:()=>xL,effect:()=>uL,discriminatedUnion:()=>IL,defaultErrorMap:()=>r2,datetimeRegex:()=>_W,date:()=>CL,custom:()=>AW,coerce:()=>sL,boolean:()=>OW,bigint:()=>KL,array:()=>NL,any:()=>ML,addIssueToContext:()=>y,ZodVoid:()=>z3,ZodUnknown:()=>R8,ZodUnion:()=>e1,ZodUndefined:()=>a1,ZodType:()=>YD,ZodTuple:()=>h2,ZodTransformer:()=>K2,ZodSymbol:()=>N3,ZodString:()=>V2,ZodSet:()=>D1,ZodSchema:()=>YD,ZodRecord:()=>L3,ZodReadonly:()=>Y6,ZodPromise:()=>$1,ZodPipeline:()=>T3,ZodParsedType:()=>h,ZodOptional:()=>U2,ZodObject:()=>hD,ZodNumber:()=>E8,ZodNullable:()=>a2,ZodNull:()=>t1,ZodNever:()=>v2,ZodNativeEnum:()=>X6,ZodNaN:()=>I3,ZodMap:()=>j3,ZodLiteral:()=>F6,ZodLazy:()=>$6,ZodIssueCode:()=>f,ZodIntersection:()=>D6,ZodFunction:()=>r1,ZodFirstPartyTypeKind:()=>o,ZodError:()=>j0,ZodEnum:()=>Z8,ZodEffects:()=>K2,ZodDiscriminatedUnion:()=>c7,ZodDefault:()=>J6,ZodDate:()=>t8,ZodCatch:()=>G6,ZodBranded:()=>l7,ZodBoolean:()=>o1,ZodBigInt:()=>M8,ZodArray:()=>_2,ZodAny:()=>e8,Schema:()=>YD,ParseStatus:()=>Y0,OK:()=>V0,NEVER:()=>rL,INVALID:()=>n,EMPTY_PATH:()=>cz,DIRTY:()=>a8,BRAND:()=>VL});var SF=M(()=>{u7();IF();YW();P3();RW();y7()});var mD=M(()=>{SF();SF()});function fF(D){return Object.prototype.hasOwnProperty.call(TW,D)}var DD,m0,EW,MW,ZW,PW,qW,NW,zW,LW,jW,d7,i7,IW,TW;var wW=M(()=>{mD();DD={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"},m0=Q.object({workerId:Q.string().min(1)}),EW=m0.extend({displayName:Q.string().optional(),deviceId:Q.string().min(1),connectedAt:Q.number().int()}),MW=m0.extend({deviceId:Q.string().min(1),reason:Q.enum(["disconnected","expired","kicked"]).optional(),disconnectedAt:Q.number().int()}),ZW=m0.extend({conversationId:Q.string().min(1),role:Q.enum(["user","assistant","system"]),content:Q.string(),createdAt:Q.number().int()}),PW=m0.extend({conversationId:Q.string().min(1),taskId:Q.string().min(1).optional(),chunk:Q.string().optional()}),qW=m0.extend({conversationId:Q.string().min(1),taskId:Q.string().min(1).optional(),toolCallId:Q.string().min(1),toolName:Q.string().min(1),status:Q.enum(["pending","running","success","error"]),args:Q.unknown().optional(),result:Q.unknown().optional()}),NW=m0.extend({conversationId:Q.string().min(1),taskId:Q.string().min(1).optional(),finishReason:Q.enum(["stop","length","tool_use","error","cancelled"]),usage:Q.object({inputTokens:Q.number().int().nonnegative().optional(),outputTokens:Q.number().int().nonnegative().optional(),totalTokens:Q.number().int().nonnegative().optional()}).optional()}),zW=m0.extend({version:Q.number().int().nonnegative(),changedAt:Q.number().int()}),LW=m0.extend({stream:Q.enum(["stdout","stderr"]),line:Q.string(),ts:Q.number().int()}),jW=m0.extend({taskId:Q.string().min(1),toolCallId:Q.string().min(1),toolName:Q.string().min(1),params:Q.record(Q.unknown()),expiresAt:Q.number().int()}),d7=m0.extend({otp:Q.string().min(1),expiresAt:Q.number().int()}),i7=m0.extend({deviceToken:Q.string().min(1)}),IW=m0.extend({otp:Q.string().min(1),displayName:Q.string().min(1).optional(),submittedAt:Q.number().int(),expiresAt:Q.number().int(),reason:Q.enum(["submitted","approved","rejected","expired","abandoned"])}),TW={[DD.WORKER_ONLINE]:EW,[DD.WORKER_OFFLINE]:MW,[DD.CHAT_MESSAGE]:ZW,[DD.AGENT_THINKING]:PW,[DD.AGENT_TOOL_CALL]:qW,[DD.AGENT_DONE]:NW,[DD.CONFIG_CHANGED]:zW,[DD.LOGS_LINE]:LW,[DD.APPROVAL_REQUESTED]:jW,[DD.ENROLLMENT_OTP]:d7,[DD.ENROLLMENT_APPROVED]:i7,[DD.ENROLLMENT_PENDING]:IW}});var zD;var SW=M(()=>{zD=class zD extends Error{code;status;constructor(D,$,F){super(F);this.code=D;this.status=$;this.name="AppError"}static badRequest(D,$="BAD_REQUEST"){return new zD($,400,D)}static notFound(D,$="NOT_FOUND"){return new zD($,404,D)}static internal(D,$="INTERNAL_ERROR"){return new zD($,500,D)}toJSON(){return{error:{code:this.code,message:this.message}}}}});var n7=20;var p0,s7="0123456789abcdefghjkmnpqrstvwxyz";var fW=M(()=>{p0=/^w_[0-9a-hjkmnp-tv-z]{12}$/});function P8(D){return typeof D==="string"&&t2.test(D)}var r7="wtk_",t2;var bW=M(()=>{t2=/^wtk_[\w-]{32,}$/});var bF=M(()=>{fW();bW()});function F1(D){if(!D)return!1;if(D==="127.0.0.1"||D==="::1"||D==="::ffff:127.0.0.1"||D==="localhost")return!0;if(D.startsWith("127."))return!0;return!1}function w3(D){return D==="1"||D==="true"}function S3(D){if(!D.serveWeb)return;if(F1(D.host))return;if(D.externalAuthAcknowledged===!0)return;throw Error(`[${D.surface}] refusing to serve /admin/* on non-loopback host="${D.host}" without external-auth acknowledgement.
73
+
74
+ Public admin UI must be protected before traffic reaches AIWorker.
75
+
76
+ Fix one of these ways:
77
+ 1. Bind the service to 127.0.0.1 and put Caddy/Cloudflare Access/IP allowlist/basic-auth in front;
78
+ 2. Disable admin static serving with --no-serve-web;
79
+ 3. Confirm an external auth layer protects /admin/*, /ws, and /api/*, then set AIWORKER_ADMIN_EXTERNAL_AUTH=1.`)}function aL(D,$){let F=0,X=0,J="";for(let Y=0;Y<D.length&&J.length<$;Y+=1){X=X<<8|D[Y],F+=8;while(F>=5&&J.length<$)J+=s7[X>>>F-5&31],F-=5}return J.padEnd($,"0")}function kF(){let D=new Uint8Array(10);return globalThis.crypto.getRandomValues(D),`w_${aL(D,12)}`}var kW=M(()=>{bF()});var vF,hF,o7,tL,xF,vW;var hW=M(()=>{mD();vF=Q.discriminatedUnion("kind",[Q.object({kind:Q.literal("file_read"),path:Q.string()}),Q.object({kind:Q.literal("file_edit"),path:Q.string(),diff:Q.string().optional()}),Q.object({kind:Q.literal("command_run"),command:Q.string()}),Q.object({kind:Q.literal("search"),query:Q.string()}),Q.object({kind:Q.literal("web_fetch"),url:Q.string()}),Q.object({kind:Q.literal("task_plan"),summary:Q.string()}),Q.object({kind:Q.literal("tool"),toolName:Q.string(),arguments:Q.record(Q.unknown()).optional()}),Q.object({kind:Q.literal("other"),description:Q.string().optional()})]),hF=Q.enum(["pending","running","success","failed","pending_approval","denied"]),o7=Q.object({inputTokens:Q.number().int().nonnegative(),outputTokens:Q.number().int().nonnegative()}),tL=Q.record(Q.unknown()),xF=Q.enum(["stop","tool","length","error","cancelled"]),vW=Q.discriminatedUnion("type",[Q.object({type:Q.literal("assistant_message_delta"),delta:Q.string()}),Q.object({type:Q.literal("thinking_delta"),delta:Q.string()}),Q.object({type:Q.literal("tool_use"),id:Q.string(),name:Q.string(),arguments:Q.record(Q.unknown()),action:vF,status:hF.optional()}),Q.object({type:Q.literal("tool_result"),id:Q.string(),name:Q.string(),content:Q.string(),isError:Q.boolean().optional()}),Q.object({type:Q.literal("permission_request"),id:Q.string(),reason:Q.string(),toolUseId:Q.string().optional()}),Q.object({type:Q.literal("token_usage"),usage:o7}),Q.object({type:Q.literal("engine_binding"),engine:Q.string().min(1),binding:tL.nullable()}),Q.object({type:Q.literal("finish"),reason:xF,usage:o7.optional()}),Q.object({type:Q.literal("error"),error:Q.string()})])});var xW=M(()=>{hW()});var lD=M(()=>{SW();bF();kW();xW()});var X1,gF;var yF=M(()=>{mD();X1={OPERATOR:"operator",NODE:"node"},gF=Q.union([Q.literal(X1.OPERATOR),Q.literal(X1.NODE)])});function x2(D){let $;try{$=JSON.parse(D)}catch(X){return{ok:!1,error:`invalid_json:${X instanceof Error?X.message:String(X)}`}}let F=cW.safeParse($);if(!F.success)return{ok:!1,error:`schema:${F.error.message}`};return{ok:!0,frame:F.data}}function jD(D){return JSON.stringify(D)}var gW,yW,uW,eL,Dj,mW,pW,cW;var lW=M(()=>{lD();mD();yF();gW=Q.object({type:Q.literal("connect"),role:gF,agentId:Q.string().min(1),deviceId:Q.string().min(1),auth:Q.object({token:Q.string()}),meta:Q.record(Q.string()).optional(),enroll:Q.object({apiToken:Q.string().regex(t2,"apiToken must match wtk_<base64url>"),displayName:Q.string().min(1).max(80).optional(),mode:Q.enum(["join-token","otp"]).optional(),joinToken:Q.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"})}),yW=Q.object({type:Q.literal("request"),id:Q.string().min(1),method:Q.string().min(1),params:Q.unknown().optional()}),uW=Q.object({code:Q.string().min(1),message:Q.string(),details:Q.unknown().optional()}),eL=Q.object({type:Q.literal("response"),id:Q.string().min(1),ok:Q.literal(!0),result:Q.unknown()}),Dj=Q.object({type:Q.literal("response"),id:Q.string().min(1),ok:Q.literal(!1),error:uW}),mW=Q.discriminatedUnion("ok",[eL,Dj]),pW=Q.object({type:Q.literal("event"),name:Q.string().min(1),payload:Q.unknown(),ts:Q.number().int()}),cW=Q.union([gW,yW,mW,pW])});function AD(D){return D}function D4(D){return Object.prototype.hasOwnProperty.call(MD,D)}function f3(D){if(!D4(D))return;return MD[D]}var J1,$j,Fj,dW,B6,Xj,Jj,Gj,Yj,a7,Bj,Hj,Wj,t7,Qj,Vj,_j,Uj,Aj,Kj,iW,nW,Cj,Oj,sW,rW,Rj,Ej,Mj,Zj,Pj,qj,Nj,zj,Lj,jj,Ij,Tj,uF,e7,oW,aW,wj,Sj,fj,bj,MD;var tW=M(()=>{mD();J1=Q.object({workerId:Q.string().min(1),displayName:Q.string().optional(),online:Q.boolean(),deviceId:Q.string().min(1).optional(),baseUrl:Q.string().optional(),lastSeenAt:Q.number().int().nullable().optional()}),$j=AD({method:"workers.list",description:"\u5217\u51FA fleet \u5185\u6240\u6709\u5DF2\u6CE8\u518C worker\uFF08\u542B online \u72B6\u6001\uFF09\u3002",params:Q.object({}).optional().default({}),result:Q.object({workers:Q.array(J1)}),routing:"operator-to-gateway"}),Fj=AD({method:"workers.info",description:"\u8BFB\u53D6\u67D0\u4E2A worker \u7684\u8FD0\u884C\u65F6\u5FEB\u7167\uFF08/worker/info \u7B49\u4EF7\u7269\uFF09\u3002",params:Q.object({workerId:Q.string().min(1)}),result:Q.unknown(),routing:"operator-to-node"}),dW=Q.object({workerBaseUrl:Q.string().min(1),bootstrapToken:Q.string().min(1),displayName:Q.string().optional()}),B6=Q.object({workerId:Q.string().min(1),deviceToken:Q.string().min(1)}),Xj=AD({method:"workers.pair",description:"\u628A\u4E00\u4E2A\u5DF2\u542F\u52A8\u7684 worker \u901A\u8FC7 bootstrap token \u6CE8\u518C\u5230 fleet\u3002",params:dW,result:B6,routing:"operator-to-gateway"}),Jj=AD({method:"workers.launch",description:"\u7531 gateway/supervisor \u672C\u5730\u62C9\u8D77\u4E00\u4E2A worker \u5BB9\u5668\u5E76\u5B8C\u6210\u6CE8\u518C\u3002",params:Q.object({displayName:Q.string().optional(),image:Q.string().optional(),env:Q.record(Q.string()).optional()}),result:B6,routing:"operator-to-gateway"}),Gj=AD({method:"workers.stop",description:"\u5411\u76EE\u6807 worker \u4E0B\u53D1\u505C\u6B62\u6307\u4EE4\uFF08\u4E0D\u4ECE fleet \u91CC\u5220\u9664\uFF09\u3002",params:Q.object({workerId:Q.string().min(1)}),result:Q.object({stopped:Q.boolean()}),routing:"operator-to-node"}),Yj=AD({method:"workers.remove",description:"\u628A worker \u4ECE fleet \u4E2D\u6458\u9664\uFF08\u5B58\u91CF deviceToken \u4F5C\u5E9F\uFF09\u3002",params:Q.object({workerId:Q.string().min(1)}),result:Q.object({removed:Q.boolean()}),routing:"operator-to-gateway"}),a7=Q.object({otp:Q.string().min(1),workerId:Q.string().min(1),displayName:Q.string().min(1).optional(),submittedAt:Q.number().int(),expiresAt:Q.number().int()}),Bj=AD({method:"enroll.list",description:"\u5217\u51FA gateway \u5F53\u524D\u6240\u6709 pending OTP enrollment \u8BF7\u6C42\u3002",params:Q.object({}).optional().default({}),result:Q.object({pending:Q.array(a7)}),routing:"operator-to-gateway"}),Hj=AD({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:Q.object({otp:Q.string().min(1)}),result:Q.object({workerId:Q.string().min(1),deviceToken:Q.string().min(1)}),routing:"operator-to-gateway"}),Wj=AD({method:"enroll.reject",description:"\u62D2\u7EDD\u67D0\u6761 pending OTP\uFF1Aclose 4403 \u7ED9 worker\uFF0Caudit gateway.enrollment.rejected\u3002",params:Q.object({otp:Q.string().min(1)}),result:Q.object({rejected:Q.boolean()}),routing:"operator-to-gateway"}),t7=Q.object({id:Q.number().int().positive(),at:Q.string().min(1),actor:Q.string().min(1),action:Q.string().min(1),workerId:Q.string().min(1).nullable(),detail:Q.record(Q.unknown()).nullable()}),Qj=AD({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:Q.object({limit:Q.number().int().positive().max(200).optional(),before:Q.number().int().positive().optional(),action:Q.string().min(1).optional(),workerId:Q.string().min(1).optional()}).optional().default({}),result:Q.object({events:Q.array(t7),hasMore:Q.boolean()}),routing:"operator-to-gateway"}),Vj=AD({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:Q.object({workerId:Q.string().min(1),conversationId:Q.string().min(1).optional(),content:Q.string().min(1),metadata:Q.record(Q.unknown()).optional()}),result:Q.object({conversationId:Q.string().min(1),taskId:Q.string().min(1).optional(),accepted:Q.boolean()}),routing:"operator-to-node"}),_j=AD({method:"config.get",description:"\u8BFB\u53D6 worker \u5F53\u524D\u914D\u7F6E\uFF08\u542B version\uFF09\u3002",params:Q.object({workerId:Q.string().min(1)}),result:Q.object({version:Q.number().int().nonnegative(),config:Q.unknown()}),routing:"operator-to-node"}),Uj=AD({method:"config.put",description:"\u66F4\u65B0 worker \u914D\u7F6E\uFF0C\u4F7F\u7528 ifMatch \u8FDB\u884C\u4E50\u89C2\u9501\u3002",params:Q.object({workerId:Q.string().min(1),ifMatch:Q.number().int().nonnegative(),config:Q.unknown()}),result:Q.object({version:Q.number().int().nonnegative(),appliedAt:Q.number().int()}),routing:"operator-to-node"}),Aj=AD({method:"token.rotate",description:"\u4E3A\u76EE\u6807 worker \u8F6E\u6362 deviceToken\uFF0C\u65E7 token \u7ACB\u5373\u5931\u6548\u3002",params:Q.object({workerId:Q.string().min(1)}),result:Q.object({deviceToken:Q.string().min(1)}),routing:"operator-to-gateway"}),Kj=AD({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:Q.object({workerId:Q.string().min(1),follow:Q.boolean().optional(),lines:Q.number().int().positive().max(1000).optional()}),result:Q.object({subscribed:Q.boolean()}),routing:"operator-to-node"}),iW=Q.enum(["allow","deny"]),nW=Q.object({workerId:Q.string().min(1),taskId:Q.string().min(1),toolCallId:Q.string().min(1),toolName:Q.string().min(1),params:Q.record(Q.unknown()),expiresAt:Q.number().int()}),Cj=AD({method:"approval.list",description:"\u5217\u51FA\u76EE\u6807 worker \u5F53\u524D\u6240\u6709\u6302\u8D77\u7684 per-tool \u5BA1\u6279\u8BF7\u6C42\u3002",params:Q.object({workerId:Q.string().min(1)}),result:Q.object({approvals:Q.array(nW)}),routing:"operator-to-node"}),Oj=AD({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:Q.object({workerId:Q.string().min(1),taskId:Q.string().min(1),toolCallId:Q.string().min(1),decision:iW}),result:Q.object({granted:Q.boolean()}),routing:"operator-to-node"}),sW=Q.enum(["web","line","telegram","lark","whatsapp"]),rW=Q.string().regex(/^[\w.-]{1,128}$/),Rj=AD({method:"secrets.list",description:"\u5217\u51FA\u76EE\u6807 worker vault \u91CC\u7684 secret key\uFF0C\u4E0D\u8FD4\u56DE secret value\u3002",params:Q.object({workerId:Q.string().min(1)}),result:Q.object({keys:Q.array(Q.string())}),routing:"operator-to-node"}),Ej=AD({method:"secrets.put",description:"\u5199\u5165\u6216\u8986\u76D6\u76EE\u6807 worker \u7684\u4E00\u4E2A secret value\u3002",params:Q.object({workerId:Q.string().min(1),key:rW,value:Q.string().min(1)}),result:Q.object({ok:Q.literal(!0)}),routing:"operator-to-node"}),Mj=AD({method:"secrets.delete",description:"\u5220\u9664\u76EE\u6807 worker \u7684\u4E00\u4E2A secret key\u3002",params:Q.object({workerId:Q.string().min(1),key:rW}),result:Q.object({ok:Q.literal(!0)}),routing:"operator-to-node"}),Zj=AD({method:"engines.list",description:"\u8BFB\u53D6\u76EE\u6807 worker \u7684 executor engine availability \u5217\u8868\u3002",params:Q.object({workerId:Q.string().min(1),refresh:Q.boolean().optional()}),result:Q.object({engines:Q.array(Q.unknown())}),routing:"operator-to-node"}),Pj=AD({method:"brain.test",description:"\u5728\u76EE\u6807 worker \u4E0A\u6267\u884C brain health probe\u3002",params:Q.object({workerId:Q.string().min(1)}),result:Q.unknown(),routing:"operator-to-node"}),qj=AD({method:"executor.test",description:"\u5728\u76EE\u6807 worker \u4E0A\u6267\u884C executor health / tiny probe\u3002",params:Q.object({workerId:Q.string().min(1),probe:Q.boolean().optional()}),result:Q.unknown(),routing:"operator-to-node"}),Nj=AD({method:"channel.test",description:"\u5728\u76EE\u6807 worker \u4E0A\u6267\u884C channel binding probe\u3002",params:Q.object({workerId:Q.string().min(1),channel:sW,body:Q.object({chatId:Q.string().optional(),text:Q.string().optional()}).optional()}),result:Q.unknown(),routing:"operator-to-node"}),zj=AD({method:"orchestrator.tasks.list",description:"\u5217\u51FA\u76EE\u6807 worker \u7684\u6700\u8FD1 orchestrator task\u3002",params:Q.object({workerId:Q.string().min(1)}),result:Q.object({tasks:Q.array(Q.unknown())}),routing:"operator-to-node"}),Lj=AD({method:"orchestrator.tasks.create",description:"\u5728\u76EE\u6807 worker \u4E0A\u521B\u5EFA\u4E00\u4E2A orchestrator task\u3002",params:Q.object({workerId:Q.string().min(1),prompt:Q.string().trim().min(1).max(8000)}),result:Q.object({task:Q.unknown()}),routing:"operator-to-node"}),jj=AD({method:"orchestrator.conversations.list",description:"\u5217\u51FA\u76EE\u6807 worker \u7684\u6700\u8FD1 conversations\u3002",params:Q.object({workerId:Q.string().min(1)}),result:Q.object({conversations:Q.array(Q.unknown())}),routing:"operator-to-node"}),Ij=AD({method:"orchestrator.messages.list",description:"\u5217\u51FA\u76EE\u6807 worker \u67D0 conversation \u7684 messages\u3002",params:Q.object({workerId:Q.string().min(1),conversationId:Q.string().min(1)}),result:Q.object({messages:Q.array(Q.unknown())}),routing:"operator-to-node"}),Tj=AD({method:"system.presence",description:"operator \u5FC3\u8DF3 / \u8BE2\u95EE\u5F53\u524D online \u7684\u6240\u6709 node \u5217\u8868\u3002",params:Q.object({}).optional().default({}),result:Q.object({now:Q.number().int(),online:Q.array(J1)}),routing:"operator-to-gateway"}),uF=sW,e7=Q.object({id:Q.string().min(1),expression:Q.string().min(1),prompt:Q.string().min(1),channel:uF,chatId:Q.string().min(1),accountId:Q.string().min(1),enabled:Q.boolean(),lastRunAt:Q.string().nullable(),nextRunAt:Q.string().nullable(),createdAt:Q.string(),updatedAt:Q.string()}),oW=Q.object({expression:Q.string().min(1),prompt:Q.string().min(1),channel:uF,chatId:Q.string().min(1),accountId:Q.string().min(1).optional(),enabled:Q.boolean().optional()}),aW=Q.object({expression:Q.string().min(1).optional(),prompt:Q.string().min(1).optional(),channel:uF.optional(),chatId:Q.string().min(1).optional(),accountId:Q.string().min(1).optional(),enabled:Q.boolean().optional()}).refine((D)=>Object.keys(D).length>0,{message:"\u81F3\u5C11\u63D0\u4F9B\u4E00\u4E2A\u5F85\u66F4\u65B0\u5B57\u6BB5"}),wj=AD({method:"cron.list",description:"\u5217\u51FA\u76EE\u6807 worker \u4E0A\u6240\u6709 cron \u4EFB\u52A1\uFF08\u542B enabled / lastRunAt / nextRunAt\uFF09\u3002",params:Q.object({workerId:Q.string().min(1)}),result:Q.object({jobs:Q.array(e7)}),routing:"operator-to-node"}),Sj=AD({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:Q.object({workerId:Q.string().min(1),job:oW}),result:Q.object({job:e7}),routing:"operator-to-node"}),fj=AD({method:"cron.remove",description:"\u5220\u9664\u76EE\u6807 worker \u4E0A\u7684\u67D0\u6761 cron \u4EFB\u52A1\u3002",params:Q.object({workerId:Q.string().min(1),jobId:Q.string().min(1)}),result:Q.object({removed:Q.boolean()}),routing:"operator-to-node"}),bj=AD({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:Q.object({workerId:Q.string().min(1),jobId:Q.string().min(1),patch:aW}),result:Q.object({job:e7}),routing:"operator-to-node"}),MD={"workers.list":$j,"workers.info":Fj,"workers.pair":Xj,"workers.launch":Jj,"workers.stop":Gj,"workers.remove":Yj,"enroll.list":Bj,"enroll.approve":Hj,"enroll.reject":Wj,"audit.list":Qj,"chat.send":Vj,"config.get":_j,"config.put":Uj,"token.rotate":Aj,"logs.tail":Kj,"system.presence":Tj,"approval.list":Cj,"approval.grant":Oj,"secrets.list":Rj,"secrets.put":Ej,"secrets.delete":Mj,"engines.list":Zj,"brain.test":Pj,"executor.test":qj,"channel.test":Nj,"orchestrator.tasks.list":zj,"orchestrator.tasks.create":Lj,"orchestrator.conversations.list":jj,"orchestrator.messages.list":Ij,"cron.list":wj,"cron.add":Sj,"cron.remove":fj,"cron.update":bj}});var D0=M(()=>{wW();lW();tW();yF()});import{statSync as kj}from"fs";import{access as vj,mkdir as hj,stat as ko,writeFile as xj}from"fs/promises";import{homedir as FQ}from"os";import BD from"path";import XQ from"process";function DQ(D){return D.startsWith("~")?BD.join(FQ(),D.slice(1)):D}function $Q(D){try{return kj(D).isDirectory()}catch{return!1}}function pF(D){let $=BD.resolve(D??XQ.cwd());if(!$)return null;while(!0){let F=BD.join($,H6);if($Q(F))return $;let X=BD.join($,".git");if($Q(X))return null;let J=BD.dirname($);if(J===$)return null;$=J}}function v0(D={}){if(D.explicitHome&&D.explicitHome.length>0)return{scope:"explicit",home:BD.resolve(DQ(D.explicitHome)),source:"cli-flag"};let $=XQ.env[gj];if($&&$.length>0)return{scope:"explicit",home:BD.resolve(DQ($)),source:"env"};if(!D.disableProjectDetect){let F=pF(D.cwd);if(F)return{scope:"project",home:BD.join(F,H6,mF),projectRoot:F,source:"project-detect"}}return{scope:"user",home:BD.resolve(FQ(),H6),source:"user-default"}}function C2(){return v0().home}function h0(D){let $=v0();if($.scope==="project"&&$.projectRoot)return BD.join($.projectRoot,H6);return BD.join($.home,"workers",D)}function W6(D){let $=v0();if($.scope==="project"&&$.projectRoot)return BD.join($.projectRoot,H6);return BD.join(h0(D),"brain")}function yj(D){return BD.join(W6(D),"skills")}function uj(D){return BD.join(W6(D),"memories")}function b3(D){return BD.join(W6(D),"MEMORY.md")}function $4(D){let $=v0();if($.scope==="project"&&$.projectRoot)return BD.join($.home,"workspaces");return BD.join(h0(D),"workspaces")}function JQ(D){return BD.join(h0(D),"config.yaml")}function k3(D){return BD.join(h0(D),"AGENT.md")}function v3(D){return BD.join(h0(D),"SOUL.md")}function h3(D){return BD.join(h0(D),"USER.md")}function F4(D){return BD.join(h0(D),"ROLLUP.md")}function X4(D){return BD.join(h0(D),"mcp.json")}async function c0(D,$){await hj(D,{recursive:!0,...$===void 0?{}:{mode:$}})}async function q0(D,$){try{await vj(D)}catch{await xj(D,$,{encoding:"utf8"})}}async function cF(D){let $=v0();if($.scope==="project"){await c0($.home,448),await c0($4(D));return}let F=h0(D);await c0(F),await c0(W6(D)),await c0(yj(D)),await c0(uj(D)),await c0($4(D)),await q0(k3(D),`# Agent ${D}
80
+
81
+ > Draft persona document. Describe the role, responsibilities, and tone that this agent should adopt. The orchestrator may inject this file into the system prompt.
82
+ `),await q0(v3(D),`# Voice of ${D}
83
+
84
+ > Draft voice / style guide. Influences how the agent phrases responses across channels.
85
+ `),await q0(h3(D),`# User profile (maintained by ${D})
86
+
87
+ > The agent writes learned facts about the primary user here over time. Edit by hand to bootstrap.
88
+ `),await q0(b3(D),`# Memory index
89
+
90
+ > One line per memory: \`- [Title](filename.md) \u2014 short description.\`
91
+ `)}async function lF(D,$={}){let F=BD.resolve(D),X=BD.join(F,H6),J=BD.join(X,mF),Y={...mj,...$};await c0(X),await c0(BD.join(X,"skills")),await c0(BD.join(X,"memories")),await c0(J,448),await c0(BD.join(J,"workspaces")),await q0(BD.join(X,"AGENT.md"),Y.agentMd),await q0(BD.join(X,"SOUL.md"),Y.soulMd),await q0(BD.join(X,"USER.md"),Y.userMd),await q0(BD.join(X,"MEMORY.md"),Y.memoryMd),await q0(BD.join(X,"ROLLUP.md"),Y.rollupMd),await q0(BD.join(X,"mcp.json"),Y.mcpJson),await q0(BD.join(X,"policy.json"),Y.policyJson),await q0(BD.join(X,"toolsets.json"),Y.toolsetsJson),await q0(BD.join(X,"capability-packs.json"),Y.capabilityPacksJson),await q0(BD.join(X,".gitignore"),`${mF}/
92
+ `),await q0(BD.join(J,".gitignore"),`*
93
+ !.gitignore
94
+ `)}var gj="AIWORKER_HOME",H6=".aiworker",mF="local",mj;var I0=M(()=>{mj={agentMd:`# Agent
95
+
96
+ > Persona / role document for the agent that lives in this project. The orchestrator injects this file into the system prompt.
97
+ `,soulMd:`# Voice & style
98
+
99
+ > Voice / style guide. Influences how the agent phrases responses across channels.
100
+ `,userMd:`# User profile
101
+
102
+ > The agent writes learned facts about the primary user here over time. Edit by hand to bootstrap.
103
+ `,memoryMd:`# Long-term memory
104
+
105
+ > Durable facts, decisions, preferences. Loaded into every session.
106
+ `,rollupMd:`# Continuity rollup
107
+
108
+ > Auto-distilled by the evolution cron job. Recent decisions / todos / context that survive session compaction.
109
+ `,mcpJson:`${JSON.stringify({servers:{}},null,2)}
110
+ `,policyJson:`${JSON.stringify({schemaVersion:1,status:"draft",risk:{highRiskRequiresApproval:!0},outOfScope:{default:"ask-for-operator-direction"}},null,2)}
111
+ `,toolsetsJson:`${JSON.stringify({schemaVersion:1,status:"draft",defaultToolsets:[]},null,2)}
112
+ `,capabilityPacksJson:`${JSON.stringify({schemaVersion:1,status:"draft",packs:[]},null,2)}
113
+ `}});var W4={};r8(W4,{saveAimState:()=>iF,resolveGatewayPidPath:()=>Y4,resolveGatewayLogPath:()=>B4,resolveAimStatePath:()=>dF,patchAimState:()=>g3,normalizeGatewayWsUrl:()=>x3,loadAimState:()=>H4,gatewayWsUrlForLocalPort:()=>G4,DEFAULT_GATEWAY_URL:()=>GQ});import{chmod as pj,mkdir as cj,readFile as lj,rename as dj,writeFile as ij}from"fs/promises";import J4 from"path";function G4(D){return`ws://localhost:${D}/ws`}function x3(D){try{let $=new URL(D);if(($.protocol==="ws:"||$.protocol==="wss:")&&($.pathname===""||$.pathname==="/"))return $.pathname="/ws",$.toString()}catch{}return D}function dF(){return J4.join(C2(),"aim.json")}function Y4(){return J4.join(C2(),"aim-gateway.pid")}function B4(){return J4.join(C2(),"aim-gateway.log")}function nj(){return`op-${crypto.randomUUID()}`}function sj(){return{gatewayUrl:GQ,deviceId:nj(),deviceToken:""}}function rj(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 H4(){let D=dF(),$;try{$=await lj(D,"utf8")}catch(X){if(X.code==="ENOENT")return sj();throw X}let F;try{F=JSON.parse($)}catch(X){let J=X instanceof Error?X.message:String(X);throw Error(`aim.json \u89E3\u6790\u5931\u8D25 (${D}): ${J}`)}if(!rj(F))throw Error(`aim.json \u7ED3\u6784\u4E0D\u7B26\u5408 AimState (${D})`);return{...F,gatewayUrl:x3(F.gatewayUrl)}}async function iF(D){let $=dF();await cj(J4.dirname($),{recursive:!0});let F=`${$}.tmp`;await ij(F,`${JSON.stringify(D,null,2)}
114
+ `,{encoding:"utf8",mode:384}),await dj(F,$);try{await pj($,384)}catch{}}async function g3(D){let F={...await H4()};for(let[X,J]of Object.entries(D)){if(J===void 0)continue;let Y=X==="gatewayUrl"&&typeof J==="string"?x3(J):J;F[X]=Y}return await iF(F),F}var GQ="ws://localhost:9218/ws";var G1=M(()=>{I0()});function I(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 t=M(()=>{z=Symbol.for("drizzle:entityKind")});var KQ,nF,sF;var Q4=M(()=>{t();KQ=class KQ{static[z]="ConsoleLogWriter";write(D){console.log(D)}};nF=class nF{static[z]="DefaultLogger";writer;constructor(D){this.writer=D?.writer??new KQ}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}`)}};sF=class sF{static[z]="NoopLogger";logQuery(){}}});var x0;var y3=M(()=>{x0=Symbol.for("drizzle:Name")});function q8(D){return D[x0]}function Y1(D){return`${D[V4]??"public"}.${D[x0]}`}var V4,_4,CQ,rF,oF,u3,OQ,oj,x;var _0=M(()=>{t();y3();V4=Symbol.for("drizzle:Schema"),_4=Symbol.for("drizzle:Columns"),CQ=Symbol.for("drizzle:ExtraConfigColumns"),rF=Symbol.for("drizzle:OriginalName"),oF=Symbol.for("drizzle:BaseName"),u3=Symbol.for("drizzle:IsAlias"),OQ=Symbol.for("drizzle:ExtraConfigBuilder"),oj=Symbol.for("drizzle:IsDrizzleTable");x=class x{static[z]="Table";static Symbol={Name:x0,Schema:V4,OriginalName:rF,Columns:_4,ExtraConfigColumns:CQ,BaseName:oF,IsAlias:u3,ExtraConfigBuilder:OQ};[x0];[rF];[V4];[_4];[CQ];[oF];[u3]=!1;[oj]=!0;[OQ]=void 0;constructor(D,$,F){this[x0]=this[rF]=D,this[V4]=$,this[oF]=F}}});var OD;var R2=M(()=>{t();OD=class OD{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 aF;var tF=M(()=>{t();aF=class aF{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 RQ(D,...$){return D(...$)}var EQ=()=>{};function MQ(D,$){return`${D[x0]}_${$.join("_")}_unique`}var ZQ=M(()=>{y3()});var m3,aj;var PQ=M(()=>{R2();t();ZQ();m3=class m3 extends OD{constructor(D,$){if(!$.uniqueName)$.uniqueName=MQ(D,[$.name]);super(D,$);this.table=D}static[z]="PgColumn"};aj=class aj extends m3{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 NQ(D){return!!D&&typeof D==="function"&&qQ in D&&D[qQ]===!0}var tj,qQ,ej;var zQ=M(()=>{t();PQ();tj=class tj extends m3{static[z]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(D,$){super(D,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}};qQ=Symbol.for("drizzle:isPgEnum");ej=class ej extends m3{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 dD,p3;var E2=M(()=>{t();dD=class dD{static[z]="Subquery";constructor(D,$,F,X=!1,J=[]){this._={brand:"Subquery",sql:D,selectedFields:$,alias:F,isWith:X,usedTables:J}}};p3=class p3 extends dD{static[z]="WithSubquery"}});var LQ="0.44.7";var jQ=()=>{};var eF,DX,IQ;var TQ=M(()=>{EQ();jQ();IQ={startActiveSpan(D,$){if(!eF)return $();if(!DX)DX=eF.trace.getTracer("drizzle-orm",LQ);return RQ((F,X)=>X.startActiveSpan(D,(J)=>{try{return $(J)}catch(Y){throw J.setStatus({code:F.SpanStatusCode.ERROR,message:Y instanceof Error?Y.message:"Unknown error"}),Y}finally{J.end()}}),eF,DX)}}});var xD;var e2=M(()=>{xD=Symbol.for("drizzle:ViewBaseConfig")});function $X(D){return D!==null&&D!==void 0&&typeof D.getSQL==="function"}function DI(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 wQ(D){return typeof D==="object"&&D!==null&&"mapToDriverValue"in D&&typeof D.mapToDriverValue==="function"}function Z(D,...$){let F=[];if($.length>0||D.length>0&&D[0]!=="")F.push(new oD(D[0]));for(let[X,J]of $.entries())F.push(J,new oD(D[X+1]));return new m(F)}function c3(D,$){return D.map((F)=>{if(I(F,N8)){if(!(F.name in $))throw Error(`No value for placeholder "${F.name}" was provided`);return $[F.name]}if(I(F,g0)&&I(F.value,N8)){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 oD,m,U4,SQ,fQ,pa,g0,N8,$I,l0;var $0=M(()=>{t();zQ();E2();TQ();e2();R2();_0();oD=class oD{static[z]="StringChunk";value;constructor(D){this.value=Array.isArray(D)?D:[D]}getSQL(){return new m([this])}};m=class m{constructor(D){this.queryChunks=D;for(let $ of D)if(I($,x)){let F=$[x.Symbol.Schema];this.usedTables.push(F===void 0?$[x.Symbol.Name]:F+"."+$[x.Symbol.Name])}}static[z]="SQL";decoder=SQ;shouldInlineParams=!1;usedTables=[];append(D){return this.queryChunks.push(...D.queryChunks),this}toQuery(D){return IQ.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:Y,prepareTyping:G,inlineParams:B,paramStartIndex:H}=F;return DI(D.map((W)=>{if(I(W,oD))return{sql:W.value.join(""),params:[]};if(I(W,U4))return{sql:J(W.value),params:[]};if(W===void 0)return{sql:"",params:[]};if(Array.isArray(W)){let V=[new oD("(")];for(let[_,U]of W.entries())if(V.push(U),_<W.length-1)V.push(new oD(", "));return V.push(new oD(")")),this.buildQueryFromSourceParams(V,F)}if(I(W,m))return this.buildQueryFromSourceParams(W.queryChunks,{...F,inlineParams:B||W.shouldInlineParams});if(I(W,x)){let V=W[x.Symbol.Schema],_=W[x.Symbol.Name];return{sql:V===void 0||W[u3]?J(_):J(V)+"."+J(_),params:[]}}if(I(W,OD)){let V=X.getColumnCasing(W);if($.invokeSource==="indexes")return{sql:J(V),params:[]};let _=W.table[x.Symbol.Schema];return{sql:W.table[u3]||_===void 0?J(W.table[x.Symbol.Name])+"."+J(V):J(_)+"."+J(W.table[x.Symbol.Name])+"."+J(V),params:[]}}if(I(W,l0)){let V=W[xD].schema,_=W[xD].name;return{sql:V===void 0||W[xD].isAlias?J(_):J(V)+"."+J(_),params:[]}}if(I(W,g0)){if(I(W.value,N8))return{sql:Y(H.value++,W),params:[W],typings:["none"]};let V=W.value===null?null:W.encoder.mapToDriverValue(W.value);if(I(V,m))return this.buildQueryFromSourceParams([V],F);if(B)return{sql:this.mapInlineParam(V,F),params:[]};let _=["none"];if(G)_=[G(W.encoder)];return{sql:Y(H.value++,V),params:[V],typings:_}}if(I(W,N8))return{sql:Y(H.value++,W),params:[W],typings:["none"]};if(I(W,m.Aliased)&&W.fieldAlias!==void 0)return{sql:J(W.fieldAlias),params:[]};if(I(W,dD)){if(W._.isWith)return{sql:J(W._.alias),params:[]};return this.buildQueryFromSourceParams([new oD("("),W._.sql,new oD(") "),new U4(W._.alias)],F)}if(NQ(W)){if(W.schema)return{sql:J(W.schema)+"."+J(W.enumName),params:[]};return{sql:J(W.enumName),params:[]}}if($X(W)){if(W.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([W.getSQL()],F);return this.buildQueryFromSourceParams([new oD("("),W.getSQL(),new oD(")")],F)}if(B)return{sql:this.mapInlineParam(W,F),params:[]};return{sql:Y(H.value++,W),params:[W],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 m.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}};U4=class U4{constructor(D){this.value=D}static[z]="Name";brand;getSQL(){return new m([this])}};SQ={mapFromDriverValue:(D)=>D},fQ={mapToDriverValue:(D)=>D},pa={...SQ,...fQ};g0=class g0{constructor(D,$=fQ){this.value=D,this.encoder=$}static[z]="Param";brand;getSQL(){return new m([this])}};((D)=>{function $(){return new m([])}D.empty=$;function F(H){return new m(H)}D.fromList=F;function X(H){return new m([new oD(H)])}D.raw=X;function J(H,W){let V=[];for(let[_,U]of H.entries()){if(_>0&&W!==void 0)V.push(W);V.push(U)}return new m(V)}D.join=J;function Y(H){return new U4(H)}D.identifier=Y;function G(H){return new N8(H)}D.placeholder=G;function B(H,W){return new g0(H,W)}D.param=B})(Z||(Z={}));((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=$})(m||(m={}));N8=class N8{constructor(D){this.name=D}static[z]="Placeholder";getSQL(){return new m([this])}};$I=Symbol.for("drizzle:IsDrizzleView");l0=class l0{static[z]="View";[xD];[$I]=!0;constructor({name:D,schema:$,selectedFields:F,query:X}){this[xD]={name:D,originalName:D,schema:$,selectedFields:F,query:X,isExisting:!X,isAlias:!1}}getSQL(){return new m([this])}};OD.prototype.getSQL=function(){return new m([this])};x.prototype.getSQL=function(){return new m([this])};dD.prototype.getSQL=function(){return new m([this])}});function FX(D,$,F){let X={},J=D.reduce((Y,{path:G,field:B},H)=>{let W;if(I(B,OD))W=B;else if(I(B,m))W=B.decoder;else W=B.sql.decoder;let V=Y;for(let[_,U]of G.entries())if(_<G.length-1){if(!(U in V))V[U]={};V=V[U]}else{let A=$[H],O=V[U]=A===null?null:W.mapFromDriverValue(A);if(F&&I(B,OD)&&G.length===2){let C=G[0];if(!(C in X))X[C]=O===null?q8(B.table):!1;else if(typeof X[C]==="string"&&X[C]!==q8(B.table))X[C]=!1}}return Y},{});if(F&&Object.keys(X).length>0){for(let[Y,G]of Object.entries(X))if(typeof G==="string"&&!F[G])J[Y]=null}return J}function d0(D,$){return Object.entries(D).reduce((F,[X,J])=>{if(typeof X!=="string")return F;let Y=$?[...$,X]:[X];if(I(J,OD)||I(J,m)||I(J,m.Aliased))F.push({path:Y,field:J});else if(I(J,x))F.push(...d0(J[x.Symbol.Columns],Y));else F.push(...d0(J,Y));return F},[])}function l3(D,$){let F=Object.keys(D),X=Object.keys($);if(F.length!==X.length)return!1;for(let[J,Y]of F.entries())if(Y!==X[J])return!1;return!0}function A4(D,$){let F=Object.entries($).filter(([,X])=>X!==void 0).map(([X,J])=>{if(I(J,m)||I(J,OD))return[X,J];else return[X,new g0(J,D[x.Symbol.Columns][X])]});if(F.length===0)throw Error("No values to set");return Object.fromEntries(F)}function bQ(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 kQ(D){return D[x.Symbol.Columns]}function d3(D){return I(D,dD)?D._.alias:I(D,l0)?D[xD].name:I(D,m)?void 0:D[x.Symbol.IsAlias]?D[x.Symbol.Name]:D[x.Symbol.BaseName]}function g2(D,$){return{name:typeof D==="string"&&D.length>0?D:"",config:typeof D==="object"?D:$}}function vQ(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 XX;var T0=M(()=>{R2();t();$0();E2();_0();e2();XX=typeof TextDecoder>"u"?null:new TextDecoder});var hQ,xQ,JX;var gQ=M(()=>{t();_0();hQ=Symbol.for("drizzle:PgInlineForeignKeys"),xQ=Symbol.for("drizzle:EnableRLS");JX=class JX extends x{static[z]="PgTable";static Symbol=Object.assign({},x.Symbol,{InlineForeignKeys:hQ,EnableRLS:xQ});[hQ]=[];[xQ]=!1;[x.Symbol.ExtraConfigBuilder]=void 0;[x.Symbol.ExtraConfigColumns]={}}});var GX,yQ;var uQ=M(()=>{t();gQ();GX=class GX{static[z]="PgPrimaryKeyBuilder";columns;name;constructor(D,$){this.columns=D,this.name=$}build(D){return new yQ(D,this.columns,this.name)}};yQ=class yQ{constructor(D,$,F){this.table=D,this.columns=$,this.name=F}static[z]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[JX.Symbol.Name]}_${this.columns.map((D)=>D.name).join("_")}_pk`}}});function w0(D,$){if(wQ($)&&!$X(D)&&!I(D,g0)&&!I(D,N8)&&!I(D,OD)&&!I(D,x)&&!I(D,l0))return new g0(D,$);return D}function pD(...D){let $=D.filter((F)=>F!==void 0);if($.length===0)return;if($.length===1)return new m($);return new m([new oD("("),Z.join($,new oD(" and ")),new oD(")")])}function pQ(...D){let $=D.filter((F)=>F!==void 0);if($.length===0)return;if($.length===1)return new m($);return new m([new oD("("),Z.join($,new oD(" or ")),new oD(")")])}function cQ(D){return Z`not ${D}`}function D8(D,$){if(Array.isArray($)){if($.length===0)return Z`false`;return Z`${D} in ${$.map((F)=>w0(F,D))}`}return Z`${D} in ${w0($,D)}`}function dQ(D,$){if(Array.isArray($)){if($.length===0)return Z`true`;return Z`${D} not in ${$.map((F)=>w0(F,D))}`}return Z`${D} not in ${w0($,D)}`}function n3(D){return Z`${D} is null`}function iQ(D){return Z`${D} is not null`}function nQ(D){return Z`exists ${D}`}function sQ(D){return Z`not exists ${D}`}function rQ(D,$,F){return Z`${D} between ${w0($,D)} and ${w0(F,D)}`}function oQ(D,$,F){return Z`${D} not between ${w0($,D)} and ${w0(F,D)}`}function aQ(D,$){return Z`${D} like ${$}`}function tQ(D,$){return Z`${D} not like ${$}`}function eQ(D,$){return Z`${D} ilike ${$}`}function DV(D,$){return Z`${D} not ilike ${$}`}var k=(D,$)=>{return Z`${D} = ${w0($,D)}`},mQ=(D,$)=>{return Z`${D} <> ${w0($,D)}`},i3=(D,$)=>{return Z`${D} > ${w0($,D)}`},lQ=(D,$)=>{return Z`${D} >= ${w0($,D)}`},K4=(D,$)=>{return Z`${D} < ${w0($,D)}`},C4=(D,$)=>{return Z`${D} <= ${w0($,D)}`};var $V=M(()=>{R2();t();_0();$0()});function y2(D){return Z`${D} asc`}function LD(D){return Z`${D} desc`}var FV=M(()=>{$0()});var YX=M(()=>{$V();FV()});function JV(){return{and:pD,between:rQ,eq:k,exists:nQ,gt:i3,gte:lQ,ilike:eQ,inArray:D8,isNull:n3,isNotNull:iQ,like:aQ,lt:K4,lte:C4,ne:mQ,not:cQ,notBetween:oQ,notExists:sQ,notLike:tQ,notIlike:DV,notInArray:dQ,or:pQ,sql:Z}}function GV(){return{sql:Z,asc:y2,desc:LD}}function YV(D,$){if(Object.keys(D).length===1&&"default"in D&&!I(D.default,x))D=D.default;let F={},X={},J={};for(let[Y,G]of Object.entries(D))if(I(G,x)){let B=Y1(G),H=X[B];F[B]=Y,J[Y]={tsName:Y,dbName:G[x.Symbol.Name],schema:G[x.Symbol.Schema],columns:G[x.Symbol.Columns],relations:H?.relations??{},primaryKey:H?.primaryKey??[]};for(let V of Object.values(G[x.Symbol.Columns]))if(V.primary)J[Y].primaryKey.push(V);let W=G[x.Symbol.ExtraConfigBuilder]?.(G[x.Symbol.ExtraConfigColumns]);if(W){for(let V of Object.values(W))if(I(V,GX))J[Y].primaryKey.push(...V.columns)}}else if(I(G,XV)){let B=Y1(G.table),H=F[B],W=G.config($(G.table)),V;for(let[_,U]of Object.entries(W))if(H){let A=J[H];if(A.relations[_]=U,V)A.primaryKey.push(...V)}else{if(!(B in X))X[B]={relations:{},primaryKey:V};X[B].relations[_]=U}}return{tables:J,tableNamesMap:F}}function FI(D){return function(F,X){return new z8(D,F,X,X?.fields.reduce((J,Y)=>J&&Y.notNull,!0)??!1)}}function XI(D){return function(F,X){return new s3(D,F,X)}}function BV(D,$,F){if(I(F,z8)&&F.config)return{fields:F.config.fields,references:F.config.references};let X=$[Y1(F.referencedTable)];if(!X)throw Error(`Table "${F.referencedTable[x.Symbol.Name]}" not found in schema`);let J=D[X];if(!J)throw Error(`Table "${X}" not found in schema`);let Y=F.sourceTable,G=$[Y1(Y)];if(!G)throw Error(`Table "${Y[x.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[x.Symbol.Name]}". Please specify relation name`);if(B[0]&&I(B[0],z8)&&B[0].config)return{fields:B[0].config.references,references:B[0].config.fields};throw Error(`There is not enough information to infer relation "${G}.${F.fieldName}"`)}function HV(D){return{one:FI(D),many:XI(D)}}function O4(D,$,F,X,J=(Y)=>Y){let Y={};for(let[G,B]of X.entries())if(B.isJson){let H=$.relations[B.tsKey],W=F[G],V=typeof W==="string"?JSON.parse(W):W;Y[B.tsKey]=I(H,z8)?V&&O4(D,D[B.relationTableTsKey],V,B.selection,J):V.map((_)=>O4(D,D[B.relationTableTsKey],_,B.selection,J))}else{let H=J(F[G]),W=B.field,V;if(I(W,OD))V=W;else if(I(W,m))V=W.decoder;else V=W.sql.decoder;Y[B.tsKey]=H===null?null:V.mapFromDriverValue(H)}return Y}var BX,XV,z8,s3;var r3=M(()=>{_0();R2();t();uQ();YX();$0();BX=class BX{constructor(D,$,F){this.sourceTable=D,this.referencedTable=$,this.relationName=F,this.referencedTableName=$[x.Symbol.Name]}static[z]="Relation";referencedTableName;fieldName};XV=class XV{constructor(D,$){this.table=D,this.config=$}static[z]="Relations"};z8=class z8 extends BX{constructor(D,$,F,X){super(D,$,F?.relationName);this.config=F,this.isNullable=X}static[z]="One";withFieldName(D){let $=new z8(this.sourceTable,this.referencedTable,this.config,this.isNullable);return $.fieldName=D,$}};s3=class s3 extends BX{constructor(D,$,F){super(D,$,F?.relationName);this.config=F}static[z]="Many";withFieldName(D){let $=new s3(this.sourceTable,this.referencedTable,this.config);return $.fieldName=D,$}}});function R4(D,$){return new Proxy(D,new o3($,!1))}function u2(D,$){return new Proxy(D,new Q6(new Proxy(D.table,new o3($,!1))))}function HX(D,$){return new m.Aliased(a3(D.sql,$),D.fieldAlias)}function a3(D,$){return Z.join(D.queryChunks.map((F)=>{if(I(F,OD))return u2(F,$);if(I(F,m))return a3(F,$);if(I(F,m.Aliased))return HX(F,$);return F}))}var Q6,o3;var E4=M(()=>{R2();t();$0();_0();e2();Q6=class Q6{constructor(D){this.table=D}static[z]="ColumnAliasProxyHandler";get(D,$){if($==="table")return this.table;return D[$]}};o3=class o3{constructor(D,$){this.alias=D,this.replaceOriginalName=$}static[z]="TableAliasProxyHandler";get(D,$){if($===x.Symbol.IsAlias)return!0;if($===x.Symbol.Name)return this.alias;if(this.replaceOriginalName&&$===x.Symbol.OriginalName)return this.alias;if($===xD)return{...D[xD],name:this.alias,isAlias:!0};if($===x.Symbol.Columns){let X=D[x.Symbol.Columns];if(!X)return X;let J={};return Object.keys(X).map((Y)=>{J[Y]=new Proxy(X[Y],new Q6(new Proxy(D,this)))}),J}let F=D[$];if(I(F,OD))return new Proxy(F,new Q6(new Proxy(D,this)));return F}}});var iD;var V6=M(()=>{E4();R2();t();$0();E2();e2();iD=class iD{static[z]="SelectionProxyHandler";config;constructor(D){this.config={...D}}get(D,$){if($==="_")return{...D._,selectedFields:new Proxy(D._.selectedFields,this)};if($===xD)return{...D[xD],selectedFields:new Proxy(D[xD].selectedFields,this)};if(typeof $==="symbol")return D[$];let X=(I(D,dD)?D._.selectedFields:I(D,l0)?D[xD].selectedFields:D)[$];if(I(X,m.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!X.isSelectionField)return X.sql;let J=X.clone();return J.isSelectionField=!0,J}if(I(X,m)){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(I(X,OD)){if(this.config.alias)return new Proxy(X,new Q6(new Proxy(X.table,new o3(this.config.alias,this.config.replaceOriginalName??!1))));return X}if(typeof X!=="object"||X===null)return X;return new Proxy(X,new iD(this.config))}}});var N0;var $8=M(()=>{t();N0=class N0{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 WX,WV;var QX=M(()=>{t();y3();WX=class WX{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 WV(D,this)}};WV=class WV{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((G)=>G.name),J=F.map((G)=>G.name),Y=[this.table[x0],...X,F[0].table[x0],...J];return D??`${Y.join("_")}_fk`}}});function QV(D,$){return`${D[x0]}_${$.join("_")}_unique`}var VX=M(()=>{y3()});var F0,yD;var L8=M(()=>{tF();R2();t();QX();VX();F0=class F0 extends aF{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,Y)=>{let G=new WX(()=>{let B=J();return{columns:[D],foreignColumns:[B]}});if(Y.onUpdate)G.onUpdate(Y.onUpdate);if(Y.onDelete)G.onDelete(Y.onDelete);return G.build($)})(F,X)})}};yD=class yD extends OD{constructor(D,$){if(!$.uniqueName)$.uniqueName=QV(D,[$.name]);super(D,$);this.table=D}static[z]="SQLiteColumn"}});function OV(D,$){let{name:F,config:X}=g2(D,$);if(X?.mode==="json")return new UV(F);if(X?.mode==="bigint")return new VV(F);return new KV(F)}var VV,_V,UV,AV,KV,CV;var _X=M(()=>{t();T0();L8();VV=class VV extends F0{static[z]="SQLiteBigIntBuilder";constructor(D){super(D,"bigint","SQLiteBigInt")}build(D){return new _V(D,this.config)}};_V=class _V extends yD{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(XX.decode(D))}mapToDriverValue(D){return Buffer.from(D.toString())}};UV=class UV extends F0{static[z]="SQLiteBlobJsonBuilder";constructor(D){super(D,"json","SQLiteBlobJson")}build(D){return new AV(D,this.config)}};AV=class AV extends yD{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(XX.decode(D))}mapToDriverValue(D){return Buffer.from(JSON.stringify(D))}};KV=class KV extends F0{static[z]="SQLiteBlobBufferBuilder";constructor(D){super(D,"buffer","SQLiteBlobBuffer")}build(D){return new CV(D,this.config)}};CV=class CV extends yD{static[z]="SQLiteBlobBuffer";mapFromDriverValue(D){if(Buffer.isBuffer(D))return D;return Buffer.from(D)}getSQLType(){return"blob"}}});function MV(D){return($,F)=>{let{name:X,config:J}=g2($,F);return new RV(X,J,D)}}var RV,EV;var UX=M(()=>{t();T0();L8();RV=class RV extends F0{static[z]="SQLiteCustomColumnBuilder";constructor(D,$,F){super(D,"custom","SQLiteCustomColumn");this.config.fieldConfig=$,this.config.customTypeParams=F}build(D){return new EV(D,this.config)}};EV=class EV extends yD{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 fD(D,$){let{name:F,config:X}=g2(D,$);if(X?.mode==="timestamp"||X?.mode==="timestamp_ms")return new qV(F,X.mode);if(X?.mode==="boolean")return new zV(F,X.mode);return new ZV(F)}var M4,Z4,ZV,PV,qV,NV,zV,LV;var AX=M(()=>{t();$0();T0();L8();M4=class M4 extends F0{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()}};Z4=class Z4 extends yD{static[z]="SQLiteBaseInteger";autoIncrement=this.config.autoIncrement;getSQLType(){return"integer"}};ZV=class ZV extends M4{static[z]="SQLiteIntegerBuilder";constructor(D){super(D,"number","SQLiteInteger")}build(D){return new PV(D,this.config)}};PV=class PV extends Z4{static[z]="SQLiteInteger"};qV=class qV extends M4{static[z]="SQLiteTimestampBuilder";constructor(D,$){super(D,"date","SQLiteTimestamp");this.config.mode=$}defaultNow(){return this.default(Z`(cast((julianday('now') - 2440587.5)*86400000 as integer))`)}build(D){return new NV(D,this.config)}};NV=class NV extends Z4{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 $}};zV=class zV extends M4{static[z]="SQLiteBooleanBuilder";constructor(D,$){super(D,"boolean","SQLiteBoolean");this.config.mode=$}build(D){return new LV(D,this.config)}};LV=class LV extends Z4{static[z]="SQLiteBoolean";mode=this.config.mode;mapFromDriverValue(D){return Number(D)===1}mapToDriverValue(D){return D?1:0}}});function bV(D,$){let{name:F,config:X}=g2(D,$),J=X?.mode;return J==="number"?new TV(F):J==="bigint"?new SV(F):new jV(F)}var jV,IV,TV,wV,SV,fV;var KX=M(()=>{t();T0();L8();jV=class jV extends F0{static[z]="SQLiteNumericBuilder";constructor(D){super(D,"string","SQLiteNumeric")}build(D){return new IV(D,this.config)}};IV=class IV extends yD{static[z]="SQLiteNumeric";mapFromDriverValue(D){if(typeof D==="string")return D;return String(D)}getSQLType(){return"numeric"}};TV=class TV extends F0{static[z]="SQLiteNumericNumberBuilder";constructor(D){super(D,"number","SQLiteNumericNumber")}build(D){return new wV(D,this.config)}};wV=class wV extends yD{static[z]="SQLiteNumericNumber";mapFromDriverValue(D){if(typeof D==="number")return D;return Number(D)}mapToDriverValue=String;getSQLType(){return"numeric"}};SV=class SV extends F0{static[z]="SQLiteNumericBigIntBuilder";constructor(D){super(D,"bigint","SQLiteNumericBigInt")}build(D){return new fV(D,this.config)}};fV=class fV extends yD{static[z]="SQLiteNumericBigInt";mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){return"numeric"}}});function hV(D){return new kV(D??"")}var kV,vV;var CX=M(()=>{t();L8();kV=class kV extends F0{static[z]="SQLiteRealBuilder";constructor(D){super(D,"number","SQLiteReal")}build(D){return new vV(D,this.config)}};vV=class vV extends yD{static[z]="SQLiteReal";getSQLType(){return"real"}}});function T(D,$={}){let{name:F,config:X}=g2(D,$);if(X.mode==="json")return new yV(F);return new xV(F,X)}var xV,gV,yV,uV;var OX=M(()=>{t();T0();L8();xV=class xV extends F0{static[z]="SQLiteTextBuilder";constructor(D,$){super(D,"string","SQLiteText");this.config.enumValues=$.enum,this.config.length=$.length}build(D){return new gV(D,this.config)}};gV=class gV extends yD{static[z]="SQLiteText";enumValues=this.config.enumValues;length=this.config.length;constructor(D,$){super(D,$)}getSQLType(){return`text${this.config.length?`(${this.config.length})`:""}`}};yV=class yV extends F0{static[z]="SQLiteTextJsonBuilder";constructor(D){super(D,"json","SQLiteTextJson")}build(D){return new uV(D,this.config)}};uV=class uV extends yD{static[z]="SQLiteTextJson";getSQLType(){return"text"}mapFromDriverValue(D){return JSON.parse(D)}mapToDriverValue(D){return JSON.stringify(D)}}});function mV(){return{blob:OV,customType:MV,integer:fD,numeric:bV,real:hV,text:T}}var pV=M(()=>{_X();UX();AX();KX();CX();OX()});function JI(D,$,F,X,J=D){let Y=new X0(D,X,J),G=typeof $==="function"?$(mV()):$,B=Object.fromEntries(Object.entries(G).map(([W,V])=>{let _=V;_.setName(W);let U=_.build(Y);return Y[RX].push(..._.buildForeignKeys(U,Y)),[W,U]})),H=Object.assign(Y,B);if(H[x.Symbol.Columns]=B,H[x.Symbol.ExtraConfigColumns]=B,F)H[X0.Symbol.ExtraConfigBuilder]=F;return H}var RX,X0,U0=(D,$,F)=>{return JI(D,$,F)};var B1=M(()=>{t();_0();pV();RX=Symbol.for("drizzle:SQLiteInlineForeignKeys");X0=class X0 extends x{static[z]="SQLiteTable";static Symbol=Object.assign({},x.Symbol,{InlineForeignKeys:RX});[x.Symbol.Columns];[RX]=[];[x.Symbol.ExtraConfigBuilder]=void 0}});var cV=()=>{};function i0(D){return new EX(D,!1)}function iV(D){return new EX(D,!0)}var EX,lV,dV;var nV=M(()=>{t();EX=class EX{constructor(D,$){this.name=D,this.unique=$}static[z]="SQLiteIndexBuilderOn";on(...D){return new lV(this.name,D,this.unique)}};lV=class lV{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 dV(this.config,D)}};dV=class dV{static[z]="SQLiteIndex";config;constructor(D,$){this.config={...D,table:$}}}});var sV=()=>{};function M2(D){if(I(D,X0))return[`${D[x.Symbol.BaseName]}`];if(I(D,dD))return D._.usedTables??[];if(I(D,m))return D.usedTables??[];return[]}var _6=M(()=>{t();$0();E2();_0();B1()});var P4;var rV=M(()=>{t();$8();V6();B1();_0();T0();_6();P4=class P4 extends N0{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[x.Symbol.Columns],new iD({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[X0.Symbol.Columns]){return this.config.returning=d0(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:M2(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 GI(D){return(D.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((F)=>F.toLowerCase()).join("_")}function YI(D){return(D.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((F,X,J)=>{let Y=J===0?X.toLowerCase():`${X[0].toUpperCase()}${X.slice(1)}`;return F+Y},"")}function BI(D){return D}var MX;var oV=M(()=>{t();_0();MX=class MX{static[z]="CasingCache";cache={};cachedTables={};convert;constructor(D){this.convert=D==="snake_case"?GI:D==="camelCase"?YI:BI}getColumnCasing(D){if(!D.keyAsName)return D.name;let $=D.table[x.Symbol.Schema]??"public",F=D.table[x.Symbol.OriginalName],X=`${$}.${F}.${D.name}`;if(!this.cache[X])this.cacheTable(D.table);return this.cache[X]}cacheTable(D){let $=D[x.Symbol.Schema]??"public",F=D[x.Symbol.OriginalName],X=`${$}.${F}`;if(!this.cachedTables[X]){for(let J of Object.values(D[x.Symbol.Columns])){let Y=`${X}.${J.name}`;this.cache[Y]=this.convert(J.name)}this.cachedTables[X]=!0}}clearCache(){this.cache={},this.cachedTables={}}}});var U6,F8,ZX;var q4=M(()=>{t();U6=class U6 extends Error{static[z]="DrizzleError";constructor({message:D,cause:$}){super(D);this.name="DrizzleError",this.cause=$}};F8=class F8 extends Error{constructor(D,$,F){super(`Failed query: ${D}
115
+ params: ${$}`);if(this.query=D,this.params=$,this.cause=F,Error.captureStackTrace(this,F8),F)this.cause=F}};ZX=class ZX extends U6{static[z]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}});function N4(D){return Z`count(${D||Z.raw("*")})`.mapWith(Number)}var aV=M(()=>{$0()});var tV=()=>{};var eV=M(()=>{aV();tV()});var PX=M(()=>{YX();eV();$0()});var qX=M(()=>{_X();L8();UX();AX();KX();CX();OX()});var H1;var z4=M(()=>{t();$0();H1=class H1 extends l0{static[z]="SQLiteViewBase"}});var t3,e3;var L4=M(()=>{E4();oV();R2();t();q4();r3();PX();$0();qX();B1();E2();_0();T0();e2();z4();t3=class t3{static[z]="SQLiteDialect";casing;constructor(D){this.casing=new MX(D?.casing)}escapeName(D){return`"${D}"`}escapeParam(D){return"?"}escapeString(D){return`'${D.replace(/'/g,"''")}'`}buildWithCTE(D){if(!D?.length)return;let $=[Z`with `];for(let[F,X]of D.entries())if($.push(Z`${Z.identifier(X._.alias)} as (${X._.sql})`),F<D.length-1)$.push(Z`, `);return $.push(Z` `),Z.join($)}buildDeleteQuery({table:D,where:$,returning:F,withList:X,limit:J,orderBy:Y}){let G=this.buildWithCTE(X),B=F?Z` returning ${this.buildSelection(F,{isSingleTable:!0})}`:void 0,H=$?Z` where ${$}`:void 0,W=this.buildOrderBy(Y),V=this.buildLimit(J);return Z`${G}delete from ${D}${H}${B}${W}${V}`}buildUpdateSet(D,$){let F=D[x.Symbol.Columns],X=Object.keys(F).filter((Y)=>$[Y]!==void 0||F[Y]?.onUpdateFn!==void 0),J=X.length;return Z.join(X.flatMap((Y,G)=>{let B=F[Y],H=$[Y]??Z.param(B.onUpdateFn(),B),W=Z`${Z.identifier(this.casing.getColumnCasing(B))} = ${H}`;if(G<J-1)return[W,Z.raw(", ")];return[W]}))}buildUpdateQuery({table:D,set:$,where:F,returning:X,withList:J,joins:Y,from:G,limit:B,orderBy:H}){let W=this.buildWithCTE(J),V=this.buildUpdateSet(D,$),_=G&&Z.join([Z.raw(" from "),this.buildFromTable(G)]),U=this.buildJoins(Y),A=X?Z` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,O=F?Z` where ${F}`:void 0,C=this.buildOrderBy(H),K=this.buildLimit(B);return Z`${W}update ${D} set ${V}${_}${U}${O}${A}${C}${K}`}buildSelection(D,{isSingleTable:$=!1}={}){let F=D.length,X=D.flatMap(({field:J},Y)=>{let G=[];if(I(J,m.Aliased)&&J.isSelectionField)G.push(Z.identifier(J.fieldAlias));else if(I(J,m.Aliased)||I(J,m)){let B=I(J,m.Aliased)?J.sql:J;if($)G.push(new m(B.queryChunks.map((H)=>{if(I(H,OD))return Z.identifier(this.casing.getColumnCasing(H));return H})));else G.push(B);if(I(J,m.Aliased))G.push(Z` as ${Z.identifier(J.fieldAlias)}`)}else if(I(J,OD)){let B=J.table[x.Symbol.Name];if(J.columnType==="SQLiteNumericBigInt")if($)G.push(Z`cast(${Z.identifier(this.casing.getColumnCasing(J))} as text)`);else G.push(Z`cast(${Z.identifier(B)}.${Z.identifier(this.casing.getColumnCasing(J))} as text)`);else if($)G.push(Z.identifier(this.casing.getColumnCasing(J)));else G.push(Z`${Z.identifier(B)}.${Z.identifier(this.casing.getColumnCasing(J))}`)}if(Y<F-1)G.push(Z`, `);return G});return Z.join(X)}buildJoins(D){if(!D||D.length===0)return;let $=[];if(D)for(let[F,X]of D.entries()){if(F===0)$.push(Z` `);let J=X.table,Y=X.on?Z` on ${X.on}`:void 0;if(I(J,X0)){let G=J[X0.Symbol.Name],B=J[X0.Symbol.Schema],H=J[X0.Symbol.OriginalName],W=G===H?void 0:X.alias;$.push(Z`${Z.raw(X.joinType)} join ${B?Z`${Z.identifier(B)}.`:void 0}${Z.identifier(H)}${W&&Z` ${Z.identifier(W)}`}${Y}`)}else $.push(Z`${Z.raw(X.joinType)} join ${J}${Y}`);if(F<D.length-1)$.push(Z` `)}return Z.join($)}buildLimit(D){return typeof D==="object"||typeof D==="number"&&D>=0?Z` limit ${D}`:void 0}buildOrderBy(D){let $=[];if(D){for(let[F,X]of D.entries())if($.push(X),F<D.length-1)$.push(Z`, `)}return $.length>0?Z` order by ${Z.join($)}`:void 0}buildFromTable(D){if(I(D,x)&&D[x.Symbol.IsAlias])return Z`${Z`${Z.identifier(D[x.Symbol.Schema]??"")}.`.if(D[x.Symbol.Schema])}${Z.identifier(D[x.Symbol.OriginalName])} ${Z.identifier(D[x.Symbol.Name])}`;return D}buildSelectQuery({withList:D,fields:$,fieldsFlat:F,where:X,having:J,table:Y,joins:G,orderBy:B,groupBy:H,limit:W,offset:V,distinct:_,setOperators:U}){let A=F??d0($);for(let d of A)if(I(d.field,OD)&&q8(d.field.table)!==(I(Y,dD)?Y._.alias:I(Y,H1)?Y[xD].name:I(Y,m)?void 0:q8(Y))&&!((cD)=>G?.some(({alias:f2})=>f2===(cD[x.Symbol.IsAlias]?q8(cD):cD[x.Symbol.BaseName])))(d.field.table)){let cD=q8(d.field.table);throw Error(`Your "${d.path.join("->")}" field references a column "${cD}"."${d.field.name}", but the table "${cD}" is not part of the query! Did you forget to join it?`)}let O=!G||G.length===0,C=this.buildWithCTE(D),K=_?Z` distinct`:void 0,R=this.buildSelection(A,{isSingleTable:O}),P=this.buildFromTable(Y),q=this.buildJoins(G),w=X?Z` where ${X}`:void 0,S=J?Z` having ${J}`:void 0,L=[];if(H){for(let[d,cD]of H.entries())if(L.push(cD),d<H.length-1)L.push(Z`, `)}let N=L.length>0?Z` group by ${Z.join(L)}`:void 0,j=this.buildOrderBy(B),c=this.buildLimit(W),XD=V?Z` offset ${V}`:void 0,WD=Z`${C}select${K} ${R} from ${P}${q}${w}${N}${S}${j}${c}${XD}`;if(U.length>0)return this.buildSetOperations(WD,U);return WD}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:Y,offset:G}}){let B=Z`${D.getSQL()} `,H=Z`${X.getSQL()}`,W;if(Y&&Y.length>0){let A=[];for(let O of Y)if(I(O,yD))A.push(Z.identifier(O.name));else if(I(O,m)){for(let C=0;C<O.queryChunks.length;C++){let K=O.queryChunks[C];if(I(K,yD))O.queryChunks[C]=Z.identifier(this.casing.getColumnCasing(K))}A.push(Z`${O}`)}else A.push(Z`${O}`);W=Z` order by ${Z.join(A,Z`, `)}`}let V=typeof J==="object"||typeof J==="number"&&J>=0?Z` limit ${J}`:void 0,_=Z.raw(`${$} ${F?"all ":""}`),U=G?Z` offset ${G}`:void 0;return Z`${B}${_}${H}${W}${V}${U}`}buildInsertQuery({table:D,values:$,onConflict:F,returning:X,withList:J,select:Y}){let G=[],B=D[x.Symbol.Columns],H=Object.entries(B).filter(([O,C])=>!C.shouldDisableInsert()),W=H.map(([,O])=>Z.identifier(this.casing.getColumnCasing(O)));if(Y){let O=$;if(I(O,m))G.push(O);else G.push(O.getSQL())}else{let O=$;G.push(Z.raw("values "));for(let[C,K]of O.entries()){let R=[];for(let[P,q]of H){let w=K[P];if(w===void 0||I(w,g0)&&w.value===void 0){let S;if(q.default!==null&&q.default!==void 0)S=I(q.default,m)?q.default:Z.param(q.default,q);else if(q.defaultFn!==void 0){let L=q.defaultFn();S=I(L,m)?L:Z.param(L,q)}else if(!q.default&&q.onUpdateFn!==void 0){let L=q.onUpdateFn();S=I(L,m)?L:Z.param(L,q)}else S=Z`null`;R.push(S)}else R.push(w)}if(G.push(R),C<O.length-1)G.push(Z`, `)}}let V=this.buildWithCTE(J),_=Z.join(G),U=X?Z` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,A=F?.length?Z.join(F):void 0;return Z`${V}insert into ${D} ${W} ${_}${A}${U}`}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:Y,tableAlias:G,nestedQueryRelation:B,joinOn:H}){let W=[],V,_,U=[],A,O=[];if(Y===!0)W=Object.entries(J.columns).map(([R,P])=>({dbKey:P.name,tsKey:R,field:u2(P,G),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let K=Object.fromEntries(Object.entries(J.columns).map(([L,N])=>[L,u2(N,G)]));if(Y.where){let L=typeof Y.where==="function"?Y.where(K,JV()):Y.where;A=L&&a3(L,G)}let R=[],P=[];if(Y.columns){let L=!1;for(let[N,j]of Object.entries(Y.columns)){if(j===void 0)continue;if(N in J.columns){if(!L&&j===!0)L=!0;P.push(N)}}if(P.length>0)P=L?P.filter((N)=>Y.columns?.[N]===!0):Object.keys(J.columns).filter((N)=>!P.includes(N))}else P=Object.keys(J.columns);for(let L of P){let N=J.columns[L];R.push({tsKey:L,value:N})}let q=[];if(Y.with)q=Object.entries(Y.with).filter((L)=>!!L[1]).map(([L,N])=>({tsKey:L,queryConfig:N,relation:J.relations[L]}));let w;if(Y.extras){w=typeof Y.extras==="function"?Y.extras(K,{sql:Z}):Y.extras;for(let[L,N]of Object.entries(w))R.push({tsKey:L,value:HX(N,G)})}for(let{tsKey:L,value:N}of R)W.push({dbKey:I(N,m.Aliased)?N.fieldAlias:J.columns[L].name,tsKey:L,field:I(N,OD)?u2(N,G):N,relationTableTsKey:void 0,isJson:!1,selection:[]});let S=typeof Y.orderBy==="function"?Y.orderBy(K,GV()):Y.orderBy??[];if(!Array.isArray(S))S=[S];U=S.map((L)=>{if(I(L,OD))return u2(L,G);return a3(L,G)}),V=Y.limit,_=Y.offset;for(let{tsKey:L,queryConfig:N,relation:j}of q){let c=BV($,F,j),XD=Y1(j.referencedTable),WD=F[XD],d=`${G}_${L}`,cD=pD(...c.fields.map((qq,Nq)=>k(u2(c.references[Nq],d),u2(qq,G)))),f2=this.buildRelationalQuery({fullSchema:D,schema:$,tableNamesMap:F,table:D[WD],tableConfig:$[WD],queryConfig:I(j,z8)?N===!0?{limit:1}:{...N,limit:1}:N,tableAlias:d,joinOn:cD,nestedQueryRelation:j}),Pq=Z`(${f2.sql})`.as(L);W.push({dbKey:L,tsKey:L,field:Pq,relationTableTsKey:WD,isJson:!0,selection:f2.selection})}}if(W.length===0)throw new U6({message:`No fields selected for table "${J.tsName}" ("${G}"). 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(A=pD(H,A),B){let K=Z`json_array(${Z.join(W.map(({field:q})=>I(q,yD)?Z.identifier(this.casing.getColumnCasing(q)):I(q,m.Aliased)?q.sql:q),Z`, `)})`;if(I(B,s3))K=Z`coalesce(json_group_array(${K}), json_array())`;let R=[{dbKey:"data",tsKey:"data",field:K.as("data"),isJson:!0,relationTableTsKey:J.tsName,selection:W}];if(V!==void 0||_!==void 0||U.length>0)C=this.buildSelectQuery({table:R4(X,G),fields:{},fieldsFlat:[{path:[],field:Z.raw("*")}],where:A,limit:V,offset:_,orderBy:U,setOperators:[]}),A=void 0,V=void 0,_=void 0,U=void 0;else C=R4(X,G);C=this.buildSelectQuery({table:I(C,X0)?C:new dD(C,{},G),fields:{},fieldsFlat:R.map(({field:q})=>({path:[],field:I(q,OD)?u2(q,G):q})),joins:O,where:A,limit:V,offset:_,orderBy:U,setOperators:[]})}else C=this.buildSelectQuery({table:R4(X,G),fields:{},fieldsFlat:W.map(({field:K})=>({path:[],field:I(K,OD)?u2(K,G):K})),joins:O,where:A,limit:V,offset:_,orderBy:U,setOperators:[]});return{tableTsKey:J.tsName,sql:C,selection:W}}};e3=class e3 extends t3{static[z]="SQLiteSyncDialect";migrate(D,$,F){let X=F===void 0?"__drizzle_migrations":typeof F==="string"?"__drizzle_migrations":F.migrationsTable??"__drizzle_migrations",J=Z`
116
+ CREATE TABLE IF NOT EXISTS ${Z.identifier(X)} (
117
+ id SERIAL PRIMARY KEY,
118
+ hash text NOT NULL,
119
+ created_at numeric
120
+ )
121
+ `;$.run(J);let G=$.values(Z`SELECT id, hash, created_at FROM ${Z.identifier(X)} ORDER BY created_at DESC LIMIT 1`)[0]??void 0;$.run(Z`BEGIN`);try{for(let B of D)if(!G||Number(G[2])<B.folderMillis){for(let H of B.sql)$.run(Z.raw(H));$.run(Z`INSERT INTO ${Z.identifier(X)} ("hash", "created_at") VALUES(${B.hash}, ${B.folderMillis})`)}$.run(Z`COMMIT`)}catch(B){throw $.run(Z`ROLLBACK`),B}}}});var NX;var D_=M(()=>{t();NX=class NX{static[z]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}});function j4(D,$){return(F,X,...J)=>{let Y=[X,...J].map((G)=>({type:D,isAll:$,rightSelect:G}));for(let G of Y)if(!l3(F.getSelectedFields(),G.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(Y)}}var Z2,$_,zX,HI=()=>({union:WI,unionAll:QI,intersect:VI,except:_I}),WI,QI,VI,_I;var LX=M(()=>{t();D_();$8();V6();$0();E2();_0();T0();e2();_6();z4();Z2=class Z2{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(I(D,dD))F=Object.fromEntries(Object.keys(D._.selectedFields).map((X)=>[X,D[X]]));else if(I(D,H1))F=D[xD].selectedFields;else if(I(D,m))F={};else F=kQ(D);return new zX({table:D,fields:F,isPartialSelect:$,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct})}};$_=class $_ extends NX{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:Y,distinct:G}){super();this.config={withList:Y,table:D,fields:{...$},distinct:G,setOperators:[]},this.isPartialSelect=F,this.session=X,this.dialect=J,this._={selectedFields:$,config:this.config},this.tableName=d3(D),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{};for(let B of M2(D))this.usedTables.add(B)}getUsedTables(){return[...this.usedTables]}createJoin(D){return($,F)=>{let X=this.tableName,J=d3($);for(let Y of M2($))this.usedTables.add(Y);if(typeof J==="string"&&this.config.joins?.some((Y)=>Y.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"&&!I($,m)){let Y=I($,dD)?$._.selectedFields:I($,l0)?$[xD].selectedFields:$[x.Symbol.Columns];this.config.fields[J]=Y}}if(typeof F==="function")F=F(new Proxy(this.config.fields,new iD({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(([Y])=>[Y,!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(([Y])=>[Y,!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(HI()):F;if(!l3(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 iD({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=D,this}having(D){if(typeof D==="function")D=D(new Proxy(this.config.fields,new iD({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 iD({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 iD({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(...M2(this.config.table)),this.config.joins)for(let F of this.config.joins)$.push(...M2(F.table));return new Proxy(new dD(this.getSQL(),this.config.fields,D,!1,[...new Set($)]),new iD({alias:D,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new iD({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}};zX=class zX extends $_{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 $=d0(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()}};bQ(zX,[N0]);WI=j4("union",!1),QI=j4("union",!0),VI=j4("intersect",!1),_I=j4("except",!1)});var D9;var jX=M(()=>{t();V6();L4();E2();LX();D9=class D9{static[z]="SQLiteQueryBuilder";dialect;dialectConfig;constructor(D){this.dialect=I(D,t3)?D:void 0,this.dialectConfig=I(D,t3)?void 0:D}$with=(D,$)=>{let F=this;return{as:(J)=>{if(typeof J==="function")J=J(F);return new Proxy(new p3(J.getSQL(),$??("getSelectedFields"in J?J.getSelectedFields()??{}:{}),D,!0),new iD({alias:D,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...D){let $=this;function F(J){return new Z2({fields:J??void 0,session:void 0,dialect:$.getDialect(),withList:D})}function X(J){return new Z2({fields:J??void 0,session:void 0,dialect:$.getDialect(),withList:D,distinct:!0})}return{select:F,selectDistinct:X}}select(D){return new Z2({fields:D??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(D){return new Z2({fields:D??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}getDialect(){if(!this.dialect)this.dialect=new e3(this.dialectConfig);return this.dialect}}});var I4,IX;var F_=M(()=>{t();$8();$0();B1();_0();T0();_6();jX();I4=class I4{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[x.Symbol.Columns];for(let Y of Object.keys(F)){let G=F[Y];X[Y]=I(G,m)?G:new g0(G,J[Y])}return X});return new IX(this.table,$,this.session,this.dialect,this.withList)}select(D){let $=typeof D==="function"?D(new D9):D;if(!I($,m)&&!l3(this.table[_4],$._.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 IX(this.table,$,this.session,this.dialect,this.withList,!0)}};IX=class IX extends N0{constructor(D,$,F,X,J,Y){super();this.session=F,this.dialect=X,this.config={table:D,values:$,withList:J,select:Y}}static[z]="SQLiteInsert";config;returning(D=this.config.table[X0.Symbol.Columns]){return this.config.returning=d0(D),this}onConflictDoNothing(D={}){if(!this.config.onConflict)this.config.onConflict=[];if(D.target===void 0)this.config.onConflict.push(Z` on conflict do nothing`);else{let $=Array.isArray(D.target)?Z`${D.target}`:Z`${[D.target]}`,F=D.where?Z` where ${D.where}`:Z``;this.config.onConflict.push(Z` 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?Z` where ${D.where}`:void 0,F=D.targetWhere?Z` where ${D.targetWhere}`:void 0,X=D.setWhere?Z` where ${D.setWhere}`:void 0,J=Array.isArray(D.target)?Z`${D.target}`:Z`${[D.target]}`,Y=this.dialect.buildUpdateSet(this.config.table,A4(this.config.table,D.set));return this.config.onConflict.push(Z` on conflict ${J}${F} do update set ${Y}${$}${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:M2(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 T4,X_;var J_=M(()=>{t();$8();V6();B1();E2();_0();T0();e2();_6();z4();T4=class T4{constructor(D,$,F,X){this.table=D,this.session=$,this.dialect=F,this.withList=X}static[z]="SQLiteUpdateBuilder";set(D){return new X_(this.table,A4(this.table,D),this.session,this.dialect,this.withList)}};X_=class X_ extends N0{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=d3($);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?I($,X0)?$[x.Symbol.Columns]:I($,dD)?$._.selectedFields:I($,H1)?$[xD].selectedFields:void 0:void 0;F=F(new Proxy(this.config.table[x.Symbol.Columns],new iD({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),J&&new Proxy(J,new iD({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[x.Symbol.Columns],new iD({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[X0.Symbol.Columns]){return this.config.returning=d0(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:M2(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 TX=M(()=>{rV();F_();jX();LX();J_()});var $9;var G_=M(()=>{t();$0();$9=class $9 extends m{constructor(D){super($9.buildEmbeddedCount(D.source,D.filters).queryChunks);this.params=D,this.session=D.session,this.sql=$9.buildCount(D.source,D.filters)}sql;static[z]="SQLiteCountBuilderAsync";[Symbol.toStringTag]="SQLiteCountBuilderAsync";session;static buildEmbeddedCount(D,$){return Z`(select count(*) from ${D}${Z.raw(" where ").if($)}${$})`}static buildCount(D,$){return Z`select count(*) from ${D}${Z.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 SX,w4,wX;var Y_=M(()=>{t();$8();r3();SX=class SX{constructor(D,$,F,X,J,Y,G,B){this.mode=D,this.fullSchema=$,this.schema=F,this.tableNamesMap=X,this.table=J,this.tableConfig=Y,this.dialect=G,this.session=B}static[z]="SQLiteAsyncRelationalQueryBuilder";findMany(D){return this.mode==="sync"?new wX(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?D:{},"many"):new w4(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?D:{},"many")}findFirst(D){return this.mode==="sync"?new wX(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?{...D,limit:1}:{limit:1},"first"):new w4(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?{...D,limit:1}:{limit:1},"first")}};w4=class w4 extends N0{constructor(D,$,F,X,J,Y,G,B,H){super();this.fullSchema=D,this.schema=$,this.tableNamesMap=F,this.table=X,this.tableConfig=J,this.dialect=Y,this.session=G,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 Y=X.map((G)=>O4(this.schema,this.tableConfig,G,$.selection,J));if(this.mode==="first")return Y[0];return Y})}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()}};wX=class wX extends w4{static[z]="SQLiteSyncRelationalQuery";sync(){return this.executeRaw()}}});var A6;var B_=M(()=>{t();$8();A6=class A6 extends N0{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 F9;var S4=M(()=>{t();V6();$0();TX();E2();G_();Y_();B_();F9=class F9{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[Y,G]of Object.entries(this._.schema))J[Y]=new SX(D,X.fullSchema,this._.schema,this._.tableNamesMap,X.fullSchema[Y],G,$,F);this.$cache={invalidate:async(Y)=>{}}}static[z]="BaseSQLiteDatabase";query;$with=(D,$)=>{let F=this;return{as:(J)=>{if(typeof J==="function")J=J(new D9(F.dialect));return new Proxy(new p3(J.getSQL(),$??("getSelectedFields"in J?J.getSelectedFields()??{}:{}),D,!0),new iD({alias:D,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(D,$){return new $9({source:D,filters:$,session:this.session})}with(...D){let $=this;function F(B){return new Z2({fields:B??void 0,session:$.session,dialect:$.dialect,withList:D})}function X(B){return new Z2({fields:B??void 0,session:$.session,dialect:$.dialect,withList:D,distinct:!0})}function J(B){return new T4(B,$.session,$.dialect,D)}function Y(B){return new I4(B,$.session,$.dialect,D)}function G(B){return new P4(B,$.session,$.dialect,D)}return{select:F,selectDistinct:X,update:J,insert:Y,delete:G}}select(D){return new Z2({fields:D??void 0,session:this.session,dialect:this.dialect})}selectDistinct(D){return new Z2({fields:D??void 0,session:this.session,dialect:this.dialect,distinct:!0})}update(D){return new T4(D,this.session,this.dialect)}$cache;insert(D){return new I4(D,this.session,this.dialect)}delete(D){return new P4(D,this.session,this.dialect)}run(D){let $=typeof D==="string"?Z.raw(D):D.getSQL();if(this.resultKind==="async")return new A6(async()=>this.session.run($),()=>$,"run",this.dialect,this.session.extractRawRunValueFromBatchResult.bind(this.session));return this.session.run($)}all(D){let $=typeof D==="string"?Z.raw(D):D.getSQL();if(this.resultKind==="async")return new A6(async()=>this.session.all($),()=>$,"all",this.dialect,this.session.extractRawAllValueFromBatchResult.bind(this.session));return this.session.all($)}get(D){let $=typeof D==="string"?Z.raw(D):D.getSQL();if(this.resultKind==="async")return new A6(async()=>this.session.get($),()=>$,"get",this.dialect,this.session.extractRawGetValueFromBatchResult.bind(this.session));return this.session.get($)}values(D){let $=typeof D==="string"?Z.raw(D):D.getSQL();if(this.resultKind==="async")return new A6(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 H_=()=>{};async function bX(D,$){let F=`${D}-${JSON.stringify($)}`,J=new TextEncoder().encode(F),Y=await crypto.subtle.digest("SHA-256",J);return[...new Uint8Array(Y)].map((H)=>H.toString(16).padStart(2,"0")).join("")}var W_,fX;var Q_=M(()=>{t();W_=class W_{static[z]="Cache"};fX=class fX extends W_{strategy(){return"all"}static[z]="NoopCache";async get(D){return}async put(D,$,F,X){}async onMutate(D){}}});var V_,kX,vX,hX;var xX=M(()=>{Q_();t();q4();$8();S4();V_=class V_ extends N0{constructor(D){super();this.resultCb=D}static[z]="ExecuteResultSync";async execute(){return this.resultCb()}sync(){return this.resultCb()}};kX=class kX{constructor(D,$,F,X,J,Y){if(this.mode=D,this.executeMethod=$,this.query=F,this.cache=X,this.queryMetadata=J,this.cacheConfig=Y,X&&X.strategy()==="all"&&Y===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||I(this.cache,fX)||this.queryMetadata===void 0)try{return await F()}catch(X){throw new F8(D,$,X)}if(this.cacheConfig&&!this.cacheConfig.enable)try{return await F()}catch(X){throw new F8(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 F8(D,$,X)}if(!this.cacheConfig)try{return await F()}catch(X){throw new F8(D,$,X)}if(this.queryMetadata.type==="select"){let X=await this.cache.get(this.cacheConfig.tag??await bX(D,$),this.queryMetadata.tables,this.cacheConfig.tag!==void 0,this.cacheConfig.autoInvalidate);if(X===void 0){let J;try{J=await F()}catch(Y){throw new F8(D,$,Y)}return await this.cache.put(this.cacheConfig.tag??await bX(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 F8(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 V_(()=>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,$)}}};vX=class vX{constructor(D){this.dialect=D}static[z]="SQLiteSession";prepareOneTimeQuery(D,$,F,X,J,Y,G){return this.prepareQuery(D,$,F,X,J,Y,G)}run(D){let $=this.dialect.sqlToQuery(D);try{return this.prepareOneTimeQuery($,void 0,"run",!1).run()}catch(F){throw new U6({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")}};hX=class hX extends F9{constructor(D,$,F,X,J=0){super(D,$,F,X);this.schema=X,this.nestedIndex=J}static[z]="SQLiteTransaction";rollback(){throw new ZX}}});var __=()=>{};var f4=M(()=>{H_();cV();qX();S4();L4();QX();nV();sV();TX();xX();B1();VX();_6();__()});var gX,yX,U_;var uX=M(()=>{t();Q4();$0();f4();xX();T0();gX=class gX extends vX{constructor(D,$,F,X={}){super($);this.client=D,this.schema=F,this.logger=X.logger??new sF}static[z]="SQLiteBunSession";logger;exec(D){this.client.exec(D)}prepareQuery(D,$,F,X,J){let Y=this.client.prepare(D.sql);return new U_(Y,D,this.logger,$,F,X,J)}transaction(D,$={}){let F=new yX("sync",this.dialect,this,this.schema),X;return this.client.transaction(()=>{X=D(F)})[$.behavior??"deferred"](),X}};yX=class yX extends hX{static[z]="SQLiteBunTransaction";transaction(D){let $=`sp${this.nestedIndex}`,F=new yX("sync",this.dialect,this.session,this.schema,this.nestedIndex+1);this.session.run(Z.raw(`savepoint ${$}`));try{let X=D(F);return this.session.run(Z.raw(`release savepoint ${$}`)),X}catch(X){throw this.session.run(Z.raw(`rollback to savepoint ${$}`)),X}}};U_=class U_ extends kX{constructor(D,$,F,X,J,Y,G){super("sync",J,$);this.stmt=D,this.logger=F,this.fields=X,this._isResponseInArrayMode=Y,this.customResultMapper=G}static[z]="SQLiteBunPreparedQuery";run(D){let $=c3(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:Y,customResultMapper:G}=this;if(!$&&!G){let H=c3(F.params,D??{});return X.logQuery(F.sql,H),Y.all(...H)}let B=this.values(D);if(G)return G(B);return B.map((H)=>FX($,H,J))}get(D){let $=c3(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:Y}=this;if(!X&&!Y)return F;if(Y)return Y([F]);return FX(X,F,J)}values(D){let $=c3(this.query.params,D??{});return this.logger.logQuery(this.query.sql,$),this.stmt.values(...$)}isResponseInArrayMode(){return this._isResponseInArrayMode}}});import{Database as b4}from"bun:sqlite";function K6(D,$={}){let F=new e3({casing:$.casing}),X;if($.logger===!0)X=new nF;else if($.logger!==!1)X=$.logger;let J;if($.schema){let B=YV($.schema,HV);J={fullSchema:$.schema,schema:B.tables,tableNamesMap:B.tableNamesMap}}let Y=new gX(D,F,J,{logger:X}),G=new A_("sync",F,Y,J);return G.$client=D,G}function C6(...D){if(D[0]===void 0||typeof D[0]==="string"){let $=D[0]===void 0?new b4:new b4(D[0]);return K6($,D[1])}if(vQ(D[0])){let{connection:$,client:F,...X}=D[0];if(F)return K6(F,X);if(typeof $==="object"){let{source:Y,...G}=$,B=Object.values(G).filter((W)=>W!==void 0).length?G:void 0,H=new b4(Y,B);return K6(H,X)}let J=new b4($);return K6(J,X)}return K6(D[0],D[1])}var A_;var K_=M(()=>{t();Q4();r3();S4();L4();T0();uX();A_=class A_ extends F9{static[z]="BunSQLiteDatabase"};((D)=>{function $(F){return K6({},F)}D.mock=$})(C6||(C6={}))});var mX=M(()=>{K_();uX()});import UI from"crypto";import pX from"fs";function C_(D){let $=D.migrationsFolder,F=[],X=`${$}/meta/_journal.json`;if(!pX.existsSync(X))throw Error("Can't find meta/_journal.json file");let J=pX.readFileSync(`${$}/meta/_journal.json`).toString(),Y=JSON.parse(J);for(let G of Y.entries){let B=`${$}/${G.tag}.sql`;try{let H=pX.readFileSync(`${$}/${G.tag}.sql`).toString(),W=H.split("--> statement-breakpoint").map((V)=>{return V});F.push({sql:W,bps:G.breakpoints,folderMillis:G.when,hash:UI.createHash("sha256").update(H).digest("hex")})}catch{throw Error(`No file ${B} found in ${$} folder`)}}return F}var O_=()=>{};function k4(D,$){let F=C_($);D.dialect.migrate(F,D.session,$)}var cX=M(()=>{O_()});var A0=M(()=>{E4();tF();R2();t();q4();Q4();$8();r3();PX();E2();_0();T0();e2()});var t4={};r8(t4,{workerSecrets:()=>O0,workerIdentity:()=>s0,workerConfig:()=>q2,skillDrafts:()=>z0,skillBindings:()=>W9,sessionEntries:()=>VD,messages:()=>i,executionLogs:()=>Y8,evolutionObservations:()=>C0,cronJobs:()=>ID,conversations:()=>p,agentTasks:()=>P2});var P2,p,VD,i,Y8,W9,z0,C0,s0,q2,ID,O0;var GJ=M(()=>{f4();P2=U0("agent_tasks",{id:T("id").primaryKey(),prompt:T("prompt").notNull(),status:T("status",{enum:["queued","running","succeeded","failed","cancelled"]}).notNull(),conversationId:T("conversation_id"),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString()),finishedAt:T("finished_at"),result:T("result",{mode:"json"}).$type(),error:T("error")},(D)=>({createdAtIdx:i0("agent_tasks_created_at_idx").on(D.createdAt)})),p=U0("conversations",{id:T("id").primaryKey(),taskId:T("task_id").references(()=>P2.id),channel:T("channel").$type().notNull(),chatId:T("chat_id").notNull(),threadId:T("thread_id"),status:T("status",{enum:["open","closed"]}).notNull().default("open"),summary:T("summary"),startedAt:T("started_at").notNull().$defaultFn(()=>new Date().toISOString()),lastActiveAt:T("last_active_at").notNull().$defaultFn(()=>new Date().toISOString()),closedAt:T("closed_at")},(D)=>({lookupIdx:i0("conversations_lookup_idx").on(D.channel,D.chatId,D.threadId,D.status),lastActiveAtIdx:i0("conversations_last_active_at_idx").on(D.lastActiveAt)})),VD=U0("session_entries",{sessionKey:T("session_key").primaryKey(),currentConversationId:T("current_conversation_id").notNull().references(()=>p.id),channel:T("channel").$type().notNull(),chatId:T("chat_id").notNull(),threadId:T("thread_id"),accountId:T("account_id"),status:T("status",{enum:["active","closed"]}).notNull().default("active"),sessionStartedAt:T("session_started_at").notNull().$defaultFn(()=>new Date().toISOString()),lastInteractionAt:T("last_interaction_at").notNull().$defaultFn(()=>new Date().toISOString()),resetAt:T("reset_at"),resetReason:T("reset_reason"),contextTokens:fD("context_tokens").notNull().default(0),totalTokens:fD("total_tokens").notNull().default(0),totalTokensFresh:fD("total_tokens_fresh").notNull().default(0),compactionCount:fD("compaction_count").notNull().default(0),memoryFlushAt:T("memory_flush_at"),memoryFlushCompactionCount:fD("memory_flush_compaction_count").notNull().default(0),engineBindings:T("engine_bindings",{mode:"json"}).$type().notNull().$defaultFn(()=>({})),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:T("updated_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({currentConversationIdIdx:i0("session_entries_current_conversation_id_idx").on(D.currentConversationId),lastInteractionAtIdx:i0("session_entries_last_interaction_at_idx").on(D.lastInteractionAt)})),i=U0("messages",{id:fD("id").primaryKey({autoIncrement:!0}),conversationId:T("conversation_id").notNull().references(()=>p.id,{onDelete:"cascade"}),role:T("role",{enum:["system","user","assistant","tool"]}).notNull(),content:T("content").notNull(),toolCalls:T("tool_calls",{mode:"json"}).$type(),toolCallId:T("tool_call_id"),tokensIn:fD("tokens_in"),tokensOut:fD("tokens_out"),richMetadata:T("rich_metadata"),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({conversationIdIdx:i0("messages_conversation_id_idx").on(D.conversationId)})),Y8=U0("execution_logs",{id:fD("id").primaryKey({autoIncrement:!0}),conversationId:T("conversation_id"),toolName:T("tool_name").notNull(),params:T("params",{mode:"json"}).$type(),result:T("result",{mode:"json"}).$type(),duration:fD("duration"),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({conversationIdIdx:i0("execution_logs_conversation_id_idx").on(D.conversationId)})),W9=U0("skill_bindings",{id:fD("id").primaryKey({autoIncrement:!0}),source:T("source").$type().notNull(),brainName:T("brain_name"),skillName:T("skill_name").notNull(),enabled:fD("enabled",{mode:"boolean"}).notNull().default(!0),priority:fD("priority").notNull().default(0),config:T("config",{mode:"json"}).$type(),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:T("updated_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({uniqueBinding:iV("skill_bindings_source_brain_name_idx").on(D.source,D.brainName,D.skillName)})),z0=U0("skill_drafts",{id:fD("id").primaryKey({autoIncrement:!0}),proposedName:T("proposed_name").notNull(),source:T("source").$type().notNull(),bodyMarkdown:T("body_markdown").notNull(),rationale:T("rationale").notNull().default(""),status:T("status").$type().notNull().default("pending"),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString()),decidedAt:T("decided_at"),decidedBy:T("decided_by")}),C0=U0("evolution_observations",{id:fD("id").primaryKey({autoIncrement:!0}),conversationId:T("conversation_id"),kind:T("kind").notNull(),payload:T("payload",{mode:"json"}).$type().notNull(),noticedAt:T("noticed_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({noticedAtIdx:i0("evolution_observations_noticed_at_idx").on(D.noticedAt)})),s0=U0("worker_identity",{pk:T("pk").primaryKey().default("default"),workerId:T("worker_id").notNull().unique(),apiTokenEnc:T("api_token_enc").notNull(),nonce:T("nonce").notNull(),authTag:T("auth_tag").notNull(),bootstrapShownAt:T("bootstrap_shown_at").notNull().$defaultFn(()=>new Date().toISOString()),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString()),rotatedAt:T("rotated_at")}),q2=U0("worker_config",{pk:T("pk").primaryKey().default("default"),configJson:T("config_json",{mode:"json"}).$type().notNull(),version:fD("version").notNull().default(1),updatedAt:T("updated_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedBy:T("updated_by",{enum:["bootstrap","api","cli"]})}),ID=U0("cron_jobs",{id:T("id").primaryKey(),expression:T("expression").notNull(),prompt:T("prompt").notNull(),channel:T("channel").$type().notNull(),chatId:T("chat_id").notNull(),accountId:T("account_id").notNull(),enabled:fD("enabled",{mode:"boolean"}).notNull().default(!0),lastRunAt:T("last_run_at"),nextRunAt:T("next_run_at"),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:T("updated_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({dueIdx:i0("cron_jobs_due_idx").on(D.enabled,D.nextRunAt)})),O0=U0("worker_secrets",{id:fD("id").primaryKey({autoIncrement:!0}),key:T("key").notNull().unique(),valueEnc:T("value_enc").notNull(),nonce:T("nonce").notNull(),authTag:T("auth_tag").notNull(),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:T("updated_at").notNull().$defaultFn(()=>new Date().toISOString())})});var AJ={};r8(AJ,{workerSecrets:()=>O0,workerSchema:()=>t4,workerIdentity:()=>s0,workerConfig:()=>q2,upsertSessionEntry:()=>QJ,updateSessionEngineBinding:()=>UJ,touchSessionEntry:()=>Z6,skillDrafts:()=>z0,skillBindings:()=>W9,sessionEntries:()=>VD,runWorkerMigrations:()=>_9,rotateSessionConversation:()=>VJ,recordSessionCompaction:()=>_J,messages:()=>i,listConversations:()=>HJ,listConversationMessages:()=>WJ,listAgentTasks:()=>BJ,initWorkerDb:()=>V9,getWorkerDb:()=>g,getSessionEntry:()=>H0,executionLogs:()=>Y8,evolutionObservations:()=>C0,defaultWorkerMigrationsFolder:()=>M6,cronJobs:()=>ID,conversations:()=>p,closeWorkerDb:()=>Uw,agentTasks:()=>P2});import{existsSync as hU}from"fs";import YJ from"path";import{fileURLToPath as Ww}from"url";import{Database as Qw}from"bun:sqlite";function Vw(D){let $=YJ.resolve(xU,"../../drizzle",D);if(hU($))return $;let F=YJ.resolve(xU,"drizzle",D);if(hU(F))return F;return $}function _w(D){let $=new Qw(D,{create:!0});return $.exec("PRAGMA journal_mode = WAL"),$.exec("PRAGMA foreign_keys = ON"),C6($,{schema:t4})}function V9(D){return Q9=_w(D),Q9}function g(){if(!Q9)throw Error("Worker database not initialized. Call initWorkerDb() first.");return Q9}function Uw(){Q9=null}function _9(D=M6){k4(g(),{migrationsFolder:D})}function BJ(D=200){return g().select().from(P2).orderBy(LD(P2.createdAt)).limit(D).all()}function HJ(D=200){return g().select().from(p).orderBy(LD(p.lastActiveAt)).limit(D).all()}function WJ(D){return g().select().from(i).where(k(i.conversationId,D)).all()}function H0(D){return g().select().from(VD).where(k(VD.sessionKey,D)).get()??null}function QJ(D){let $=g(),F=D.at??new Date().toISOString(),X=H0(D.sessionKey);if(!X)$.insert(VD).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(VD).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(k(VD.sessionKey,D.sessionKey)).run();return H0(D.sessionKey)}function Z6(D,$={}){if(!H0(D))return null;let X=$.at??new Date().toISOString();return g().update(VD).set({lastInteractionAt:X,updatedAt:X,...$.contextTokens===void 0?{}:{contextTokens:$.contextTokens},...$.totalTokens===void 0?{}:{totalTokens:$.totalTokens},...$.totalTokensFresh===void 0?{}:{totalTokensFresh:$.totalTokensFresh}}).where(k(VD.sessionKey,D)).run(),H0(D)}function VJ(D){if(!H0(D.sessionKey))return null;let F=D.at??new Date().toISOString();return g().update(VD).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(k(VD.sessionKey,D.sessionKey)).run(),H0(D.sessionKey)}function _J(D,$={}){let F=H0(D);if(!F)return null;let X=$.at??new Date().toISOString(),J=F.compactionCount+1;return g().update(VD).set({compactionCount:J,...$.memoryFlushAt===void 0?{}:{memoryFlushAt:$.memoryFlushAt,memoryFlushCompactionCount:J},updatedAt:X}).where(k(VD.sessionKey,D)).run(),H0(D)}function UJ(D,$,F,X){let J=H0(D);if(!J)return null;let Y={...J.engineBindings};if(F===null)delete Y[$];else Y[$]=F;return g().update(VD).set({engineBindings:Y,updatedAt:X??new Date().toISOString()}).where(k(VD.sessionKey,D)).run(),H0(D)}var xU,M6,Q9=null;var bD=M(()=>{A0();mX();cX();GJ();GJ();xU=YJ.dirname(Ww(import.meta.url));M6=Vw("worker")});import gU from"path";import yU from"process";function Kw(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 Y=J[1].toLowerCase().replace(/_/g,"-"),G=Number.parseInt(X??"",10);if(Number.isFinite(G)&&G>0)$[Y]=G}return $}function V1(){if(e4)return e4;let D=Aw.parse(yU.env);return e4=Object.freeze({...D,perEngineLimits:Object.freeze({...Kw(yU.env)})}),e4}var Aw,e4=null,s;var D5=M(()=>{I0();lD();bD();mD();Aw=Q.object({PORT:Q.coerce.number().default(9217),AIWORKER_WORKER_HOST:Q.string().min(1).default("127.0.0.1"),AIWORKER_ADMIN_EXTERNAL_AUTH:Q.enum(["1","true","0","false"]).default("0").transform(w3),WORKER_DB_PATH:Q.string().default(()=>gU.join(C2(),"worker.db")),WORKER_MIGRATIONS_FOLDER:Q.string().default(()=>M6),AIWORKER_MASTER_KEY:Q.string().regex(/^[0-9a-f]{64}$/,"AIWORKER_MASTER_KEY must be 32-byte hex (64 hex chars)"),AIWORKER_FORCE_ID:Q.string().regex(p0).optional(),AIWORKER_FORCE_TOKEN:Q.string().regex(t2).optional(),AIWORKER_ADVERTISED_BASE_URL:Q.string().optional(),WORKER_DATA_ROOT:Q.string().default(()=>gU.join(C2(),"data-root")),WORKER_WORKSPACE_GIT_ORIGIN:Q.string().optional(),AIWORKER_GATEWAY_URL:Q.string().url().optional(),AIWORKER_JOIN_TOKEN:Q.string().min(1).optional(),AIWORKER_DISPLAY_NAME:Q.string().min(1).max(80).optional(),AIWORKER_ENROLL_MODE:Q.enum(["auto","otp"]).optional().default("auto"),CLAUDE_CLI_VERSION:Q.string().optional(),MAX_CONCURRENT_TOTAL:Q.coerce.number().int().min(1).default(4),PROCESS_STALL_TIMEOUT_MS:Q.coerce.number().int().min(1).default(120000),PROCESS_KILL_TIMEOUT_MS:Q.coerce.number().int().min(0).default(1e4),PROCESS_AUTO_CLEANUP_DELAY_MS:Q.coerce.number().int().min(0).default(60000),PROCESS_GC_INTERVAL_MS:Q.coerce.number().int().min(0).default(30000)});s=new Proxy({},{get(D,$){return V1()[$]},has(D,$){return $ in V1()},ownKeys(D){return Reflect.ownKeys(V1())},getOwnPropertyDescriptor(D,$){return Reflect.getOwnPropertyDescriptor(V1(),$)}})});function B8(D){let $=Cw[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??{},Y={...F,...J};return{engine:D.engine,body:Y,...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 uU(D){if(!D||typeof D!=="object")return{...A9};let $=D;if(typeof $.engine==="string")return $;let F=$.type;if(typeof F!=="string")return{...A9};switch(F){case"http":return{engine:"http",variant:"default",overrides:U9({baseUrl:$.baseUrl,apiKey:$.apiKey,model:$.model,timeoutMs:$.timeoutMs})};case"mcp":return{engine:"mcp",variant:"default",overrides:U9({url:$.url,token:$.token,defaultModel:$.defaultModel,tools:$.tools,timeoutMs:$.timeoutMs})};case"cli":return{engine:"cli",variant:"default",overrides:U9({command:$.command,args:$.args,cwd:$.cwd,env:$.env,timeoutMs:$.timeoutMs,sandbox:$.sandbox})};case"claude-code":return{engine:"claude-code",variant:"default",overrides:U9({model:$.model,cliVersion:$.cliVersion,extraArgs:$.extraArgs,env:$.env,workspaceRoot:$.workspaceRoot,timeoutMs:$.timeoutMs})};case"acp":return{engine:"acp",variant:$.agent==="qwen"?"qwen":"gemini",overrides:U9({model:$.model,cliVersion:$.cliVersion,extraArgs:$.extraArgs,env:$.env,timeoutMs:$.timeoutMs})};default:return{...A9}}}function U9(D){let $={};for(let[F,X]of Object.entries(D))if(X!==void 0)$[F]=X;return $}var Cw,A9;var _1=M(()=>{Cw={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:{model:"sonnet",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}}}},A9={engine:"http",variant:"default",overrides:{baseUrl:"http://localhost:9999",model:"stub"}}});var P6;var KJ=M(()=>{_1();P6={brains:[],brainWriteTarget:"",brainRetrieval:"first-match",executor:{...A9},channels:[],evolution:{enabled:!1,observationRetentionDays:7}}});async function U1(D){let $=await D.select().from(q2).where(k(q2.pk,"default")).get();if($)return{config:Ow($.configJson),version:$.version};let F=new Date().toISOString();return await D.insert(q2).values({pk:"default",configJson:P6,version:1,updatedAt:F,updatedBy:"bootstrap"}).run(),{config:P6,version:1}}function Ow(D){let $=D.executor;if($&&typeof $==="object"&&"engine"in $)return D;return{...D,executor:uU($)}}var mU=M(()=>{bD();A0();_1();KJ()});import{randomBytes as Rw}from"crypto";function q6(){let D=Rw(32),$=`${r7}${Ew(D)}`;if(!P8($))throw Error("mintApiToken: generated token failed isWorkerApiToken check");return $}function Ew(D){return D.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function A1(D,$,F={}){let X=await D.select().from(s0).where(k(s0.pk,"default")).get();if(X){let _=$.decryptString(X.apiTokenEnc,X.nonce,X.authTag);if(!P8(_))throw Error("loadOrMintIdentity: decrypted API token failed isWorkerApiToken check");return await cF(X.workerId),{workerId:X.workerId,token:_,justMinted:!1}}let J=F.forceId??$5();if(!p0.test(J))throw Error(`loadOrMintIdentity: forceId ${J} does not match WORKER_ID_PATTERN`);let Y=F.forceToken??q6();if(!P8(Y))throw Error("loadOrMintIdentity: forceToken does not match WORKER_API_TOKEN_PATTERN");let G=Y,{ciphertext:B,nonce:H,authTag:W}=$.encryptString(G),V=new Date().toISOString();return await D.insert(s0).values({pk:"default",workerId:J,apiTokenEnc:B,nonce:H,authTag:W,bootstrapShownAt:V,createdAt:V}).run(),await cF(J),{workerId:J,token:G,justMinted:!0}}var $5;var CJ=M(()=>{I0();lD();bD();A0();$5=kF});import Mw from"process";function K1(D,$,F,X,J=Mw.stdout){if(!X)return;J.write(`[worker] id=${D}
122
+ `),J.write(`[worker] AIWORKER_BOOTSTRAP_TOKEN=${$}
123
+ `),J.write(`[worker] save this token; it will not be printed again.
124
+ `),F.update(s0).set({bootstrapShownAt:new Date().toISOString()}).where(k(s0.pk,"default")).run()}var pU=M(()=>{bD();A0()});var cU=M(()=>{mU();KJ();CJ();pU()});import{Buffer as lU}from"buffer";import{timingSafeEqual as Zw}from"crypto";function m2(D,$){let F=lU.from(D,"utf8"),X=lU.from($,"utf8");if(F.length!==X.length)return!1;return Zw(F,X)}var F5=()=>{};import{Buffer as dU}from"buffer";import{createDecipheriv as Pw,createHash as qw}from"crypto";function zw(D,$){let F=qw("sha256").update($,"utf8").digest(),X=dU.from(D,"base64");if(X.length<=16)throw Error("lark: encrypted payload too short");let J=X.subarray(0,16),Y=X.subarray(16),G=Pw("aes-256-cbc",F,J);return dU.concat([G.update(Y),G.final()]).toString("utf8")}function iU(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(zw(F.encrypt,$))}return F}function Lw(D){return D.type==="url_verification"||D.header?.event_type==="url_verification"}function jw(D){if(typeof D.header?.token==="string")return D.header.token;if(typeof D.token==="string")return D.token;return}async function Iw(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 Tw(D,$){let F=OJ.get(D);if(!F)F={},OJ.set(D,F);if(F.current&&F.current.expiresAt-Date.now()>Nw)return F.current.token;if(F.inflight)return(await F.inflight).token;let X=F;return X.inflight=Iw(D,$).then((J)=>{return X.current=J,J}).finally(()=>{X.inflight=void 0}),(await X.inflight).token}function ww(D){let $=typeof D.parent_id==="string"&&D.parent_id.length>0?D.parent_id:void 0;if(!$)return;return{quote:$}}function sU(){OJ.clear()}var Nw=60000,OJ,nU;var RJ=M(()=>{F5();OJ=new Map;nU={channel:"lark",async verify(D,$,F){if(F.credentials.channel!=="lark")throw Error("lark adapter called with non-lark credentials");let X=iU(D,F.credentials.encryptKey),J=jw(X);if(J===void 0||!m2(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,Y=iU(D,J);if(Lw(Y))return[];if(Y.header?.event_type!=="im.message.receive_v1")return[];let G=Y.event?.message;if(!G||G.message_type!=="text")return[];let B="";try{let O=JSON.parse(G.content);B=typeof O.text==="string"?O.text:""}catch{return[]}if(!B)return[];let H=Y.event?.sender,W=H?.sender_id?.open_id,V=H?.sender_id?.name,_=G.chat_type==="group"?`group:${G.chat_id}`:`p2p:${W??""}`,U=ww(G);return[{workerId:$,channel:"lark",accountId:X,chatId:_,...W===void 0?{}:{userId:W},...V===void 0?{}:{userDisplayName:V},text:B,...U===void 0?{}:{richMetadata:U},receivedAt:new Date(Number(G.create_time)).toISOString(),raw:Y}]},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 Tw(F,X),[Y,G]=$.chatId.split(":",2);if(!Y||!G)throw Error(`lark send: malformed chatId ${$.chatId}`);if(Y!=="group"&&Y!=="p2p")throw Error(`lark send: unsupported chat kind "${Y}"`);let H=await fetch(`https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=${Y==="group"?"chat_id":"open_id"}`,{method:"POST",headers:{Authorization:`Bearer ${J}`,"Content-Type":"application/json"},body:JSON.stringify({receive_id:G,msg_type:"text",content:JSON.stringify({text:$.text})})}),W=await H.json().catch(()=>({}));if(W.code!==0)throw Error(`Lark send failed: ${W.code??H.status} ${W.msg??H.statusText}`)}}});function N6(){return new Date().toISOString()}import{Buffer as rU}from"buffer";import{createHash as Sw,createHmac as fw,timingSafeEqual as bw}from"crypto";function kw(D,$){return fw("sha256",D).update($,"utf8").digest("base64")}function vw(D){switch(D.type){case"user":return`user:${D.userId}`;case"group":return`group:${D.groupId}`;case"room":return`room:${D.roomId}`}}function hw(D){let $=D.message?.quotedMessageId;if(typeof $!=="string"||$.length===0)return;return{quote:$}}var oU;var aU=M(()=>{oU={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=kw(F.credentials.channelSecret,D),Y=rU.from(X,"base64"),G=rU.from(J,"base64");if(Y.length!==G.length||!bw(Y,G))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=Sw("sha256").update(F.credentials.channelAccessToken,"utf8").digest("hex").slice(0,16),J=JSON.parse(D),Y=[];for(let G of J.events){if(G.type!=="message"||G.message?.type!=="text"||!G.message.text)continue;let B=vw(G.source),H=G.source.type==="user"?G.source.userId:("userId"in G.source)?G.source.userId:void 0,W=hw(G);Y.push({workerId:$,channel:"line",accountId:X,chatId:B,...H===void 0?{}:{userId:H},text:G.message.text,...W===void 0?{}:{richMetadata:W},receivedAt:new Date(G.timestamp).toISOString()||N6(),raw:G})}return Y},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 Y=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(!Y.ok){let G=await Y.text();throw Error(`LINE push failed: ${Y.status} ${G}`)}}}});import{Buffer as tU}from"buffer";import{createHash as xw,timingSafeEqual as gw}from"crypto";function pw(D,$){let F=tU.from(D,"utf8"),X=tU.from($,"utf8");if(F.length!==X.length)return!1;return gw(F,X)}function cw(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 lw(D,$){if(D.length<=$)return[D];let F=[],X=D;while(X.length>$){let J=-1;for(let Y=$-1;Y>0;Y--)if(mw.test(X[Y])){J=Y;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 dw(D){if(D.botUsername&&D.botUsername.length>0)return D.botUsername;return xw("sha256").update(D.botToken,"utf8").digest("hex").slice(0,16)}function iw(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 yw=4096,uw="x-telegram-bot-api-secret-token",mw,eU;var DA=M(()=>{mw=/\s/;eU={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=$[uw];if(!J||!pw(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 Y=`${J.chat.type}:${J.chat.id}`,G=J.from?.id?.toString(),B=cw(J.from),H=Number.isFinite(J.date)?new Date(J.date*1000).toISOString():N6(),W=dw(F.credentials),V=iw(J);return[{workerId:$,channel:"telegram",accountId:W,chatId:Y,...G===void 0?{}:{userId:G},...B===void 0?{}:{userDisplayName:B},text:J.text,...V===void 0?{}:{richMetadata:V},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),Y=Number(J);if(!Number.isFinite(Y)||!Number.isInteger(Y))throw Error(`telegram send: malformed chatId ${$.chatId}`);let G=`https://api.telegram.org/bot${F}/sendMessage`,B=lw($.text,yw);for(let H of B){let W=await fetch(G,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({chat_id:Y,text:H})});if(!W.ok){let V=await W.text();throw Error(`Telegram sendMessage failed: ${W.status} ${V}`)}}}}});function sw(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 rw(D){let $=D.authorization;if(!$)return null;let F=/^bearer\s+(\S+)\s*$/i.exec($);return F?F[1]:null}var nw="default",$A;var FA=M(()=>{F5();$A={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=rw($);if(!J||!m2(J,X))throw Error("invalid Authorization bearer token")},async toEnvelopes(D,$,F){let X=F?.id&&F.id.length>0?F.id:nw,J=JSON.parse(D),Y=sw(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,...Y===void 0?{}:{richMetadata:Y},receivedAt:N6(),raw:J}]},async send(){}}});import{Buffer as XA}from"buffer";import{createHmac as ow,timingSafeEqual as aw}from"crypto";function ew(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 DS(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 tw="v21.0",JA;var GA=M(()=>{JA={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,Y]=X.split("=",2);if(J!=="sha256"||!Y)throw Error("invalid X-Hub-Signature-256 format");let G=ow("sha256",F.credentials.appSecret).update(D,"utf8").digest("hex"),B=XA.from(Y,"hex"),H=XA.from(G,"hex");if(B.length!==H.length||!aw(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),Y=[];for(let G of J.entry??[])for(let B of G.changes??[]){let H=B.value;if(!H||!H.messages||H.messages.length===0)continue;let W=H.contacts??[];for(let V of H.messages){let _=ew(V);if(_===void 0)continue;let U=V.from,O=W.find((K)=>K.wa_id===U)?.profile?.name,C=DS(V);Y.push({workerId:$,channel:"whatsapp",accountId:X,chatId:U,userId:U,...O?{userDisplayName:O}:{},text:_,...C===void 0?{}:{richMetadata:C},receivedAt:new Date(Number(V.timestamp)*1000).toISOString(),raw:V})}}return Y},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/${tw}/${F}/messages`,Y=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(!Y.ok){let G=await Y.text();throw Error(`WhatsApp send failed: ${Y.status} ${G}`)}}}});function C1(D){return $S[D]}class K9{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 C1(D)}}var $S;var C9=M(()=>{RJ();aU();DA();FA();GA();$S={web:$A,line:oU,telegram:eU,lark:nU,whatsapp:JA}});function H8(D){let $=[];D.brains.forEach((X,J)=>{if(X.type==="cloud-gateway")$.push({path:`brains.${J}.config.token`,value:X.config.token})});let F=D.executor.overrides??{};if(D.executor.engine==="http"&&typeof F.apiKey==="string")$.push({path:"executor.overrides.apiKey",value:F.apiKey});else if(D.executor.engine==="mcp"&&typeof F.token==="string")$.push({path:"executor.overrides.token",value:F.token});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 X5(D){let $=structuredClone(D);return $.brains=$.brains.map((F)=>{if(F.type==="cloud-gateway")return{...F,config:{...F.config,token:""}};return F}),FS($),$.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 z6(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}),XS(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 Y=$.get("channels.telegram.credentials.webhookSecretToken");return{...X,credentials:{...J,botToken:$.get("channels.telegram.credentials.botToken")??"",webhookSecretToken:Y??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 Y=$.get("channels.web.credentials.inboundToken");return{...X,credentials:{...J,inboundToken:Y??J.inboundToken}}}default:return X}}),F}function FS(D){let $={...D.executor.overrides??{}};if(D.executor.engine==="http"&&typeof $.apiKey==="string")$.apiKey="";if(D.executor.engine==="mcp"&&typeof $.token==="string")$.token="";D.executor={...D.executor,overrides:$}}function XS(D,$){let F={...D.executor.overrides??{}};if(D.executor.engine==="http"){let X=$.get("executor.overrides.apiKey");if(X!==void 0)F.apiKey=X}else if(D.executor.engine==="mcp"){let X=$.get("executor.overrides.token");if(X!==void 0)F.token=X}D.executor={...D.executor,overrides:F}}var BA=b((YA)=>{Object.defineProperty(YA,"__esModule",{value:!0})});var w8=b((HA)=>{Object.defineProperty(HA,"__esModule",{value:!0});HA.CronField=void 0;class EJ{#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(EJ.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=(G)=>(B)=>new RegExp(`^\\d{0,2}${B}$`).test(G),X=(G)=>{return D=G,typeof G==="number"?G>=this.min&&G<=this.max:this.chars.some(F(G))};if(!this.#G.every(X))throw Error(`${this.constructor.name} Validation error, got value ${D} expected range ${this.min}-${this.max}${$}`);let Y=this.#G.find((G,B)=>this.#G.indexOf(G)!==B);if(Y)throw Error(`${this.constructor.name} Validation error, duplicate values found: ${Y}`)}#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))}}HA.CronField=EJ});var UA=b((VA)=>{Object.defineProperty(VA,"__esModule",{value:!0});VA.CronDayOfMonth=void 0;var JS=w8(),GS=1,YS=31,BS=Object.freeze(["L"]);class QA extends JS.CronField{static get min(){return GS}static get max(){return YS}static get chars(){return BS}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}}VA.CronDayOfMonth=QA});var OA=b((KA)=>{Object.defineProperty(KA,"__esModule",{value:!0});KA.CronDayOfWeek=void 0;var HS=w8(),WS=0,QS=7,VS=Object.freeze(["L"]);class AA extends HS.CronField{static get min(){return WS}static get max(){return QS}static get chars(){return VS}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}}KA.CronDayOfWeek=AA});var ZA=b((EA)=>{Object.defineProperty(EA,"__esModule",{value:!0});EA.CronHour=void 0;var _S=w8(),US=0,AS=23,KS=Object.freeze([]);class RA extends _S.CronField{static get min(){return US}static get max(){return AS}static get chars(){return KS}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}EA.CronHour=RA});var zA=b((qA)=>{Object.defineProperty(qA,"__esModule",{value:!0});qA.CronMinute=void 0;var CS=w8(),OS=0,RS=59,ES=Object.freeze([]);class PA extends CS.CronField{static get min(){return OS}static get max(){return RS}static get chars(){return ES}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}qA.CronMinute=PA});var HC=b((BC)=>{Object.defineProperty(BC,"__esModule",{value:!0});class k8 extends Error{}class FK extends k8{constructor(D){super(`Invalid DateTime: ${D.toMessage()}`)}}class XK extends k8{constructor(D){super(`Invalid Interval: ${D.toMessage()}`)}}class JK extends k8{constructor(D){super(`Invalid Duration: ${D.toMessage()}`)}}class E1 extends k8{}class uJ extends k8{constructor(D){super(`Invalid unit ${D}`)}}class W0 extends k8{}class Q8 extends k8{constructor(){super("Zone is an abstract class")}}var u="numeric",L2="short",u0="long",V5={year:u,month:u,day:u},GK={year:u,month:L2,day:u},MS={year:u,month:L2,day:u,weekday:L2},YK={year:u,month:u0,day:u},BK={year:u,month:u0,day:u,weekday:u0},HK={hour:u,minute:u},WK={hour:u,minute:u,second:u},QK={hour:u,minute:u,second:u,timeZoneName:L2},VK={hour:u,minute:u,second:u,timeZoneName:u0},_K={hour:u,minute:u,hourCycle:"h23"},UK={hour:u,minute:u,second:u,hourCycle:"h23"},AK={hour:u,minute:u,second:u,hourCycle:"h23",timeZoneName:L2},KK={hour:u,minute:u,second:u,hourCycle:"h23",timeZoneName:u0},CK={year:u,month:u,day:u,hour:u,minute:u},OK={year:u,month:u,day:u,hour:u,minute:u,second:u},RK={year:u,month:L2,day:u,hour:u,minute:u},EK={year:u,month:L2,day:u,hour:u,minute:u,second:u},ZS={year:u,month:L2,day:u,weekday:L2,hour:u,minute:u},MK={year:u,month:u0,day:u,hour:u,minute:u,timeZoneName:L2},ZK={year:u,month:u0,day:u,hour:u,minute:u,second:u,timeZoneName:L2},PK={year:u,month:u0,day:u,weekday:u0,hour:u,minute:u,timeZoneName:u0},qK={year:u,month:u0,day:u,weekday:u0,hour:u,minute:u,second:u,timeZoneName:u0};class Z1{get type(){throw new Q8}get name(){throw new Q8}get ianaName(){return this.name}get isUniversal(){throw new Q8}offsetName(D,$){throw new Q8}formatOffset(D,$){throw new Q8}offset(D){throw new Q8}equals(D){throw new Q8}get isValid(){throw new Q8}}var MJ=null;class q9 extends Z1{static get instance(){if(MJ===null)MJ=new q9;return MJ}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(D,{format:$,locale:F}){return xK(D,$,F)}formatOffset(D,$){return Z9(this.offset(D),$)}offset(D){return-new Date(D).getTimezoneOffset()}equals(D){return D.type==="system"}get isValid(){return!0}}var TJ=new Map;function PS(D){let $=TJ.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"}),TJ.set(D,$);return $}var qS={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function NS(D,$){let F=D.format($).replace(/\u200E/g,""),X=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(F),[,J,Y,G,B,H,W,V]=X;return[G,J,Y,B,H,W,V]}function zS(D,$){let F=D.formatToParts($),X=[];for(let J=0;J<F.length;J++){let{type:Y,value:G}=F[J],B=qS[Y];if(Y==="era")X[B]=G;else if(!e(B))X[B]=parseInt(G,10)}return X}var ZJ=new Map;class p2 extends Z1{static create(D){let $=ZJ.get(D);if($===void 0)ZJ.set(D,$=new p2(D));return $}static resetCache(){ZJ.clear(),TJ.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=p2.isValidZone(D)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(D,{format:$,locale:F}){return xK(D,$,F,this.name)}formatOffset(D,$){return Z9(this.offset(D),$)}offset(D){if(!this.valid)return NaN;let $=new Date(D);if(isNaN($))return NaN;let F=PS(this.name),[X,J,Y,G,B,H,W]=F.formatToParts?zS(F,$):NS(F,$);if(G==="BC")X=-Math.abs(X)+1;let _=C5({year:X,month:J,day:Y,hour:B===24?0:B,minute:H,second:W,millisecond:0}),U=+$,A=U%1000;return U-=A>=0?A:1000+A,(_-U)/60000}equals(D){return D.type==="iana"&&D.name===this.name}get isValid(){return this.valid}}var LA={};function LS(D,$={}){let F=JSON.stringify([D,$]),X=LA[F];if(!X)X=new Intl.ListFormat(D,$),LA[F]=X;return X}var wJ=new Map;function SJ(D,$={}){let F=JSON.stringify([D,$]),X=wJ.get(F);if(X===void 0)X=new Intl.DateTimeFormat(D,$),wJ.set(F,X);return X}var fJ=new Map;function jS(D,$={}){let F=JSON.stringify([D,$]),X=fJ.get(F);if(X===void 0)X=new Intl.NumberFormat(D,$),fJ.set(F,X);return X}var bJ=new Map;function IS(D,$={}){let{base:F,...X}=$,J=JSON.stringify([D,X]),Y=bJ.get(J);if(Y===void 0)Y=new Intl.RelativeTimeFormat(D,$),bJ.set(J,Y);return Y}var R9=null;function TS(){if(R9)return R9;else return R9=new Intl.DateTimeFormat().resolvedOptions().locale,R9}var kJ=new Map;function NK(D){let $=kJ.get(D);if($===void 0)$=new Intl.DateTimeFormat(D).resolvedOptions(),kJ.set(D,$);return $}var vJ=new Map;function wS(D){let $=vJ.get(D);if(!$){let F=new Intl.Locale(D);if($="getWeekInfo"in F?F.getWeekInfo():F.weekInfo,!("minimalDays"in $))$={...IK,...$};vJ.set(D,$)}return $}function SS(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=SJ(D).resolvedOptions(),J=D}catch(B){let H=D.substring(0,F);X=SJ(H).resolvedOptions(),J=H}let{numberingSystem:Y,calendar:G}=X;return[J,Y,G]}}function fS(D,$,F){if(F||$){if(!D.includes("-u-"))D+="-u";if(F)D+=`-ca-${F}`;if($)D+=`-nu-${$}`;return D}else return D}function bS(D){let $=[];for(let F=1;F<=12;F++){let X=$D.utc(2009,F,1);$.push(D(X))}return $}function kS(D){let $=[];for(let F=1;F<=7;F++){let X=$D.utc(2016,11,13+F);$.push(D(X))}return $}function J5(D,$,F,X){let J=D.listingMode();if(J==="error")return null;else if(J==="en")return F($);else return X($)}function vS(D){if(D.numberingSystem&&D.numberingSystem!=="latn")return!1;else return D.numberingSystem==="latn"||!D.locale||D.locale.startsWith("en")||NK(D.locale).numberingSystem==="latn"}class zK{constructor(D,$,F){this.padTo=F.padTo||0,this.floor=F.floor||!1;let{padTo:X,floor:J,...Y}=F;if(!$||Object.keys(Y).length>0){let G={useGrouping:!1,...F};if(F.padTo>0)G.minimumIntegerDigits=F.padTo;this.inf=jS(D,G)}}format(D){if(this.inf){let $=this.floor?Math.floor(D):D;return this.inf.format($)}else{let $=this.floor?Math.floor(D):iJ(D,3);return nD($,this.padTo)}}}class LK{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 Y=-1*(D.offset/60),G=Y>=0?`Etc/GMT+${Y}`:`Etc/GMT${Y}`;if(D.offset!==0&&p2.create(G).valid)X=G,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=SJ($,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 jK{constructor(D,$,F){if(this.opts={style:"long",...F},!$&&vK())this.rtf=IS(D,F)}format(D,$){if(this.rtf)return this.rtf.format(D,$);else return Ff($,D,this.opts.numeric,this.opts.style!=="long")}formatToParts(D,$){if(this.rtf)return this.rtf.formatToParts(D,$);else return[]}}var IK={firstDay:1,minimalDays:4,weekend:[6,7]};class RD{static fromOpts(D){return RD.create(D.locale,D.numberingSystem,D.outputCalendar,D.weekSettings,D.defaultToEN)}static create(D,$,F,X,J=!1){let Y=D||kD.defaultLocale,G=Y||(J?"en-US":TS()),B=$||kD.defaultNumberingSystem,H=F||kD.defaultOutputCalendar,W=xJ(X)||kD.defaultWeekSettings;return new RD(G,B,H,W,Y)}static resetCache(){R9=null,wJ.clear(),fJ.clear(),bJ.clear(),kJ.clear(),vJ.clear()}static fromObject({locale:D,numberingSystem:$,outputCalendar:F,weekSettings:X}={}){return RD.create(D,$,F,X)}constructor(D,$,F,X,J){let[Y,G,B]=SS(D);this.locale=Y,this.numberingSystem=$||G||null,this.outputCalendar=F||B||null,this.weekSettings=X,this.intl=fS(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=vS(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 RD.create(D.locale||this.specifiedLocale,D.numberingSystem||this.numberingSystem,D.outputCalendar||this.outputCalendar,xJ(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 J5(this,D,uK,()=>{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 Y=!F?(G)=>this.extract(G,X,"month"):(G)=>this.dtFormatter(G,X).format();this.monthsCache[J][D]=bS(Y)}return this.monthsCache[J][D]})}weekdays(D,$=!1){return J5(this,D,cK,()=>{let F=$?{weekday:D,year:"numeric",month:"long",day:"numeric"}:{weekday:D},X=$?"format":"standalone";if(!this.weekdaysCache[X][D])this.weekdaysCache[X][D]=kS((J)=>this.extract(J,F,"weekday"));return this.weekdaysCache[X][D]})}meridiems(){return J5(this,void 0,()=>lK,()=>{if(!this.meridiemCache){let D={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[$D.utc(2016,11,13,9),$D.utc(2016,11,13,19)].map(($)=>this.extract($,D,"dayperiod"))}return this.meridiemCache})}eras(D){return J5(this,D,dK,()=>{let $={era:D};if(!this.eraCache[D])this.eraCache[D]=[$D.utc(-40,1,1),$D.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(),Y=J.find((G)=>G.type.toLowerCase()===F);return Y?Y.value:null}numberFormatter(D={}){return new zK(this.intl,D.forceSimple||this.fastNumbers,D)}dtFormatter(D,$={}){return new LK(D,this.intl,$)}relFormatter(D={}){return new jK(this.intl,this.isEnglish(),D)}listFormatter(D={}){return LS(this.intl,D)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||NK(this.intl).locale.startsWith("en-us")}getWeekSettings(){if(this.weekSettings)return this.weekSettings;else if(!hK())return IK;else return wS(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 PJ=null;class E0 extends Z1{static get utcInstance(){if(PJ===null)PJ=new E0(0);return PJ}static instance(D){return D===0?E0.utcInstance:new E0(D)}static parseSpecifier(D){if(D){let $=D.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if($)return new E0(O5($[1],$[2]))}return null}constructor(D){super();this.fixed=D}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Z9(this.fixed,"narrow")}`}get ianaName(){if(this.fixed===0)return"Etc/UTC";else return`Etc/GMT${Z9(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(D,$){return Z9(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 mJ extends Z1{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 f8(D,$){if(e(D)||D===null)return $;else if(D instanceof Z1)return D;else if(mS(D)){let F=D.toLowerCase();if(F==="default")return $;else if(F==="local"||F==="system")return q9.instance;else if(F==="utc"||F==="gmt")return E0.utcInstance;else return E0.parseSpecifier(F)||p2.create(D)}else if(b8(D))return E0.instance(D);else if(typeof D==="object"&&"offset"in D&&typeof D.offset==="function")return D;else return new mJ(D)}var pJ={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"},jA={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]},hS=pJ.hanidec.replace(/[\[|\]]/g,"").split("");function xS(D){let $=parseInt(D,10);if(isNaN($)){$="";for(let F=0;F<D.length;F++){let X=D.charCodeAt(F);if(D[F].search(pJ.hanidec)!==-1)$+=hS.indexOf(D[F]);else for(let J in jA){let[Y,G]=jA[J];if(X>=Y&&X<=G)$+=X-Y}}return parseInt($,10)}else return $}var hJ=new Map;function gS(){hJ.clear()}function N2({numberingSystem:D},$=""){let F=D||"latn",X=hJ.get(F);if(X===void 0)X=new Map,hJ.set(F,X);let J=X.get($);if(J===void 0)J=new RegExp(`${pJ[F]}${$}`),X.set($,J);return J}var IA=()=>Date.now(),TA="system",wA=null,SA=null,fA=null,bA=60,kA,vA=null;class kD{static get now(){return IA}static set now(D){IA=D}static set defaultZone(D){TA=D}static get defaultZone(){return f8(TA,q9.instance)}static get defaultLocale(){return wA}static set defaultLocale(D){wA=D}static get defaultNumberingSystem(){return SA}static set defaultNumberingSystem(D){SA=D}static get defaultOutputCalendar(){return fA}static set defaultOutputCalendar(D){fA=D}static get defaultWeekSettings(){return vA}static set defaultWeekSettings(D){vA=xJ(D)}static get twoDigitCutoffYear(){return bA}static set twoDigitCutoffYear(D){bA=D%100}static get throwOnInvalid(){return kA}static set throwOnInvalid(D){kA=D}static resetCaches(){RD.resetCache(),p2.resetCache(),$D.resetCache(),gS()}}class o0{constructor(D,$){this.reason=D,this.explanation=$}toMessage(){if(this.explanation)return`${this.reason}: ${this.explanation}`;else return this.reason}}var TK=[0,31,59,90,120,151,181,212,243,273,304,334],wK=[0,31,60,91,121,152,182,213,244,274,305,335];function a0(D,$){return new o0("unit out of range",`you specified ${$} (of type ${typeof $}) as a ${D}, which is invalid`)}function cJ(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 SK(D,$,F){return F+(N9(D)?wK:TK)[$-1]}function fK(D,$){let F=N9(D)?wK:TK,X=F.findIndex((Y)=>Y<$),J=$-F[X];return{month:X+1,day:J}}function lJ(D,$){return(D-$+7)%7+1}function _5(D,$=4,F=1){let{year:X,month:J,day:Y}=D,G=SK(X,J,Y),B=lJ(cJ(X,J,Y),F),H=Math.floor((G-B+14-$)/7),W;if(H<1)W=X-1,H=P9(W,$,F);else if(H>P9(X,$,F))W=X+1,H=1;else W=X;return{weekYear:W,weekNumber:H,weekday:B,...R5(D)}}function hA(D,$=4,F=1){let{weekYear:X,weekNumber:J,weekday:Y}=D,G=lJ(cJ(X,1,$),F),B=w6(X),H=J*7+Y-G-7+$,W;if(H<1)W=X-1,H+=w6(W);else if(H>B)W=X+1,H-=w6(X);else W=X;let{month:V,day:_}=fK(W,H);return{year:W,month:V,day:_,...R5(D)}}function qJ(D){let{year:$,month:F,day:X}=D,J=SK($,F,X);return{year:$,ordinal:J,...R5(D)}}function xA(D){let{year:$,ordinal:F}=D,{month:X,day:J}=fK($,F);return{year:$,month:X,day:J,...R5(D)}}function gA(D,$){if(!e(D.localWeekday)||!e(D.localWeekNumber)||!e(D.localWeekYear)){if(!e(D.weekday)||!e(D.weekNumber)||!e(D.weekYear))throw new E1("Cannot mix locale-based week fields with ISO-based week fields");if(!e(D.localWeekday))D.weekday=D.localWeekday;if(!e(D.localWeekNumber))D.weekNumber=D.localWeekNumber;if(!e(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 yS(D,$=4,F=1){let X=K5(D.weekYear),J=t0(D.weekNumber,1,P9(D.weekYear,$,F)),Y=t0(D.weekday,1,7);if(!X)return a0("weekYear",D.weekYear);else if(!J)return a0("week",D.weekNumber);else if(!Y)return a0("weekday",D.weekday);else return!1}function uS(D){let $=K5(D.year),F=t0(D.ordinal,1,w6(D.year));if(!$)return a0("year",D.year);else if(!F)return a0("ordinal",D.ordinal);else return!1}function bK(D){let $=K5(D.year),F=t0(D.month,1,12),X=t0(D.day,1,U5(D.year,D.month));if(!$)return a0("year",D.year);else if(!F)return a0("month",D.month);else if(!X)return a0("day",D.day);else return!1}function kK(D){let{hour:$,minute:F,second:X,millisecond:J}=D,Y=t0($,0,23)||$===24&&F===0&&X===0&&J===0,G=t0(F,0,59),B=t0(X,0,59),H=t0(J,0,999);if(!Y)return a0("hour",$);else if(!G)return a0("minute",F);else if(!B)return a0("second",X);else if(!H)return a0("millisecond",J);else return!1}function e(D){return typeof D>"u"}function b8(D){return typeof D==="number"}function K5(D){return typeof D==="number"&&D%1===0}function mS(D){return typeof D==="string"}function pS(D){return Object.prototype.toString.call(D)==="[object Date]"}function vK(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch(D){return!1}}function hK(){try{return typeof Intl<"u"&&!!Intl.Locale&&(("weekInfo"in Intl.Locale.prototype)||("getWeekInfo"in Intl.Locale.prototype))}catch(D){return!1}}function cS(D){return Array.isArray(D)?D:[D]}function yA(D,$,F){if(D.length===0)return;return D.reduce((X,J)=>{let Y=[$(J),J];if(!X)return Y;else if(F(X[0],Y[0])===X[0])return X;else return Y},null)[1]}function lS(D,$){return $.reduce((F,X)=>{return F[X]=D[X],F},{})}function f6(D,$){return Object.prototype.hasOwnProperty.call(D,$)}function xJ(D){if(D==null)return null;else if(typeof D!=="object")throw new W0("Week settings must be an object");else{if(!t0(D.firstDay,1,7)||!t0(D.minimalDays,1,7)||!Array.isArray(D.weekend)||D.weekend.some(($)=>!t0($,1,7)))throw new W0("Invalid week settings");return{firstDay:D.firstDay,minimalDays:D.minimalDays,weekend:Array.from(D.weekend)}}}function t0(D,$,F){return K5(D)&&D>=$&&D<=F}function dS(D,$){return D-$*Math.floor(D/$)}function nD(D,$=2){let F=D<0,X;if(F)X="-"+(""+-D).padStart($,"0");else X=(""+D).padStart($,"0");return X}function S8(D){if(e(D)||D===null||D==="")return;else return parseInt(D,10)}function O1(D){if(e(D)||D===null||D==="")return;else return parseFloat(D)}function dJ(D){if(e(D)||D===null||D==="")return;else{let $=parseFloat("0."+D)*1000;return Math.floor($)}}function iJ(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 N9(D){return D%4===0&&(D%100!==0||D%400===0)}function w6(D){return N9(D)?366:365}function U5(D,$){let F=dS($-1,12)+1,X=D+($-F)/12;if(F===2)return N9(X)?29:28;else return[31,null,31,30,31,30,31,31,30,31,30,31][F-1]}function C5(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 uA(D,$,F){return-lJ(cJ(D,1,$),F)+$-1}function P9(D,$=4,F=1){let X=uA(D,$,F),J=uA(D+1,$,F);return(w6(D)-X+J)/7}function gJ(D){if(D>99)return D;else return D>kD.twoDigitCutoffYear?1900+D:2000+D}function xK(D,$,F,X=null){let J=new Date(D),Y={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};if(X)Y.timeZone=X;let G={timeZoneName:$,...Y},B=new Intl.DateTimeFormat(F,G).formatToParts(J).find((H)=>H.type.toLowerCase()==="timezonename");return B?B.value:null}function O5(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 gK(D){let $=Number(D);if(typeof D==="boolean"||D===""||!Number.isFinite($))throw new W0(`Invalid unit value ${D}`);return $}function A5(D,$){let F={};for(let X in D)if(f6(D,X)){let J=D[X];if(J===void 0||J===null)continue;F[$(X)]=gK(J)}return F}function Z9(D,$){let F=Math.trunc(Math.abs(D/60)),X=Math.trunc(Math.abs(D%60)),J=D>=0?"+":"-";switch($){case"short":return`${J}${nD(F,2)}:${nD(X,2)}`;case"narrow":return`${J}${F}${X>0?`:${X}`:""}`;case"techie":return`${J}${nD(F,2)}${nD(X,2)}`;default:throw RangeError(`Value format ${$} is out of range for property format`)}}function R5(D){return lS(D,["hour","minute","second","millisecond"])}var iS=["January","February","March","April","May","June","July","August","September","October","November","December"],yK=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],nS=["J","F","M","A","M","J","J","A","S","O","N","D"];function uK(D){switch(D){case"narrow":return[...nS];case"short":return[...yK];case"long":return[...iS];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 mK=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],pK=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],sS=["M","T","W","T","F","S","S"];function cK(D){switch(D){case"narrow":return[...sS];case"short":return[...pK];case"long":return[...mK];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var lK=["AM","PM"],rS=["Before Christ","Anno Domini"],oS=["BC","AD"],aS=["B","A"];function dK(D){switch(D){case"narrow":return[...aS];case"short":return[...oS];case"long":return[...rS];default:return null}}function tS(D){return lK[D.hour<12?0:1]}function eS(D,$){return cK($)[D.weekday-1]}function Df(D,$){return uK($)[D.month-1]}function $f(D,$){return dK($)[D.year<0?0:1]}function Ff(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."]},Y=["hours","minutes","seconds"].indexOf(D)===-1;if(F==="auto"&&Y){let _=D==="days";switch($){case 1:return _?"tomorrow":`next ${J[D][0]}`;case-1:return _?"yesterday":`last ${J[D][0]}`;case 0:return _?"today":`this ${J[D][0]}`}}let G=Object.is($,-0)||$<0,B=Math.abs($),H=B===1,W=J[D],V=X?H?W[1]:W[2]||W[1]:H?J[D][0]:D;return G?`${B} ${V} ago`:`in ${B} ${V}`}function mA(D,$){let F="";for(let X of D)if(X.literal)F+=X.val;else F+=$(X.val);return F}var Xf={D:V5,DD:GK,DDD:YK,DDDD:BK,t:HK,tt:WK,ttt:QK,tttt:VK,T:_K,TT:UK,TTT:AK,TTTT:KK,f:CK,ff:RK,fff:MK,ffff:PK,F:OK,FF:EK,FFF:ZK,FFFF:qK};class R0{static create(D,$={}){return new R0(D,$)}static parseFormat(D){let $=null,F="",X=!1,J=[];for(let Y=0;Y<D.length;Y++){let G=D.charAt(Y);if(G==="'"){if(F.length>0||X)J.push({literal:X||/^\s+$/.test(F),val:F===""?"'":F});$=null,F="",X=!X}else if(X)F+=G;else if(G===$)F+=G;else{if(F.length>0)J.push({literal:/^\s+$/.test(F),val:F});F=G,$=G}}if(F.length>0)J.push({literal:X||/^\s+$/.test(F),val:F});return J}static macroTokenToFormatOpts(D){return Xf[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 nD(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=(U,A)=>this.loc.extract(D,U,A),Y=(U)=>{if(D.isOffsetFixed&&D.offset===0&&U.allowZ)return"Z";return D.isValid?D.zone.formatOffset(D.ts,U.format):""},G=()=>F?tS(D):J({hour:"numeric",hourCycle:"h12"},"dayperiod"),B=(U,A)=>F?Df(D,U):J(A?{month:U}:{month:U,day:"numeric"},"month"),H=(U,A)=>F?eS(D,U):J(A?{weekday:U}:{weekday:U,month:"long",day:"numeric"},"weekday"),W=(U)=>{let A=R0.macroTokenToFormatOpts(U);if(A)return this.formatWithSystemDefault(D,A);else return U},V=(U)=>F?$f(D,U):J({era:U},"era"),_=(U)=>{switch(U){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 Y({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return Y({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return Y({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 G();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 V("short");case"GG":return V("long");case"GGGGG":return V("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 W(U)}};return mA(R0.parseFormat($),_)}formatDurationFromString(D,$){let F=this.opts.signMode==="negativeLargestOnly"?-1:1,X=(W)=>{switch(W[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=(W,V)=>(_)=>{let U=X(_);if(U){let A=V.isNegativeDuration&&U!==V.largestUnit?F:1,O;if(this.opts.signMode==="negativeLargestOnly"&&U!==V.largestUnit)O="never";else if(this.opts.signMode==="all")O="always";else O="auto";return this.num(W.get(U)*A,_.length,O)}else return _},Y=R0.parseFormat($),G=Y.reduce((W,{literal:V,val:_})=>V?W:W.concat(_),[]),B=D.shiftTo(...G.map(X).filter((W)=>W)),H={isNegativeDuration:B<0,largestUnit:Object.keys(B.values)[0]};return mA(Y,J(B,H))}}var iK=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function b6(...D){let $=D.reduce((F,X)=>F+X.source,"");return RegExp(`^${$}$`)}function k6(...D){return($)=>D.reduce(([F,X,J],Y)=>{let[G,B,H]=Y($,J);return[{...F,...G},B||X,H]},[{},null,1]).slice(0,2)}function v6(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 nK(...D){return($,F)=>{let X={},J;for(J=0;J<D.length;J++)X[D[J]]=S8($[F+J]);return[X,null,F+J]}}var sK=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,Jf=`(?:${sK.source}?(?:\\[(${iK.source})\\])?)?`,nJ=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,rK=RegExp(`${nJ.source}${Jf}`),sJ=RegExp(`(?:[Tt]${rK.source})?`),Gf=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Yf=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Bf=/(\d{4})-?(\d{3})/,Hf=nK("weekYear","weekNumber","weekDay"),Wf=nK("year","ordinal"),Qf=/(\d{4})-(\d\d)-(\d\d)/,oK=RegExp(`${nJ.source} ?(?:${sK.source}|(${iK.source}))?`),Vf=RegExp(`(?: ${oK.source})?`);function S6(D,$,F){let X=D[$];return e(X)?F:S8(X)}function _f(D,$){return[{year:S6(D,$),month:S6(D,$+1,1),day:S6(D,$+2,1)},null,$+3]}function h6(D,$){return[{hours:S6(D,$,0),minutes:S6(D,$+1,0),seconds:S6(D,$+2,0),milliseconds:dJ(D[$+3])},null,$+4]}function z9(D,$){let F=!D[$]&&!D[$+1],X=O5(D[$+1],D[$+2]),J=F?null:E0.instance(X);return[{},J,$+3]}function L9(D,$){let F=D[$]?p2.create(D[$]):null;return[{},F,$+1]}var Uf=RegExp(`^T?${nJ.source}$`),Af=/^-?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 Kf(D){let[$,F,X,J,Y,G,B,H,W]=D,V=$[0]==="-",_=H&&H[0]==="-",U=(A,O=!1)=>A!==void 0&&(O||A&&V)?-A:A;return[{years:U(O1(F)),months:U(O1(X)),weeks:U(O1(J)),days:U(O1(Y)),hours:U(O1(G)),minutes:U(O1(B)),seconds:U(O1(H),H==="-0"),milliseconds:U(dJ(W),_)}]}var Cf={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function rJ(D,$,F,X,J,Y,G){let B={year:$.length===2?gJ(S8($)):S8($),month:yK.indexOf(F)+1,day:S8(X),hour:S8(J),minute:S8(Y)};if(G)B.second=S8(G);if(D)B.weekday=D.length>3?mK.indexOf(D)+1:pK.indexOf(D)+1;return B}var Of=/^(?:(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 Rf(D){let[,$,F,X,J,Y,G,B,H,W,V,_]=D,U=rJ($,J,X,F,Y,G,B),A;if(H)A=Cf[H];else if(W)A=0;else A=O5(V,_);return[U,new E0(A)]}function Ef(D){return D.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var Mf=/^(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$/,Zf=/^(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$/,Pf=/^(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 pA(D){let[,$,F,X,J,Y,G,B]=D;return[rJ($,J,X,F,Y,G,B),E0.utcInstance]}function qf(D){let[,$,F,X,J,Y,G,B]=D;return[rJ($,B,F,X,J,Y,G),E0.utcInstance]}var Nf=b6(Gf,sJ),zf=b6(Yf,sJ),Lf=b6(Bf,sJ),jf=b6(rK),aK=k6(_f,h6,z9,L9),If=k6(Hf,h6,z9,L9),Tf=k6(Wf,h6,z9,L9),wf=k6(h6,z9,L9);function Sf(D){return v6(D,[Nf,aK],[zf,If],[Lf,Tf],[jf,wf])}function ff(D){return v6(Ef(D),[Of,Rf])}function bf(D){return v6(D,[Mf,pA],[Zf,pA],[Pf,qf])}function kf(D){return v6(D,[Af,Kf])}var vf=k6(h6);function hf(D){return v6(D,[Uf,vf])}var xf=b6(Qf,Vf),gf=b6(oK),yf=k6(h6,z9,L9);function uf(D){return v6(D,[xf,aK],[gf,yf])}var cA="Invalid Duration",tK={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}},mf={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},...tK},r0=365.2425,L6=30.436875,pf={years:{quarters:4,months:12,weeks:r0/7,days:r0,hours:r0*24,minutes:r0*24*60,seconds:r0*24*60*60,milliseconds:r0*24*60*60*1000},quarters:{months:3,weeks:r0/28,days:r0/4,hours:r0*24/4,minutes:r0*24*60/4,seconds:r0*24*60*60/4,milliseconds:r0*24*60*60*1000/4},months:{weeks:L6/7,days:L6,hours:L6*24,minutes:L6*24*60,seconds:L6*24*60*60,milliseconds:L6*24*60*60*1000},...tK},M1=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],cf=M1.slice(0).reverse();function W8(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 _D(X)}function eK(D,$){var F;let X=(F=$.milliseconds)!=null?F:0;for(let J of cf.slice(1))if($[J])X+=$[J]*D[J].milliseconds;return X}function lA(D,$){let F=eK(D,$)<0?-1:1;M1.reduceRight((X,J)=>{if(!e($[J])){if(X){let Y=$[X]*F,G=D[J][X],B=Math.floor(Y/G);$[J]+=B*F,$[X]-=B*G*F}return J}else return X},null),M1.reduce((X,J)=>{if(!e($[J])){if(X){let Y=$[X]%1;$[X]-=Y,$[J]+=Y*D[X][J]}return J}else return X},null)}function dA(D){let $={};for(let[F,X]of Object.entries(D))if(X!==0)$[F]=X;return $}class _D{constructor(D){let $=D.conversionAccuracy==="longterm"||!1,F=$?pf:mf;if(D.matrix)F=D.matrix;this.values=D.values,this.loc=D.loc||RD.create(),this.conversionAccuracy=$?"longterm":"casual",this.invalid=D.invalid||null,this.matrix=F,this.isLuxonDuration=!0}static fromMillis(D,$){return _D.fromObject({milliseconds:D},$)}static fromObject(D,$={}){if(D==null||typeof D!=="object")throw new W0(`Duration.fromObject: argument expected to be an object, got ${D===null?"null":typeof D}`);return new _D({values:A5(D,_D.normalizeUnit),loc:RD.fromObject($),conversionAccuracy:$.conversionAccuracy,matrix:$.matrix})}static fromDurationLike(D){if(b8(D))return _D.fromMillis(D);else if(_D.isDuration(D))return D;else if(typeof D==="object")return _D.fromObject(D);else throw new W0(`Unknown duration argument ${D} of type ${typeof D}`)}static fromISO(D,$){let[F]=kf(D);if(F)return _D.fromObject(F,$);else return _D.invalid("unparsable",`the input "${D}" can't be parsed as ISO 8601`)}static fromISOTime(D,$){let[F]=hf(D);if(F)return _D.fromObject(F,$);else return _D.invalid("unparsable",`the input "${D}" can't be parsed as ISO 8601`)}static invalid(D,$=null){if(!D)throw new W0("need to specify a reason the Duration is invalid");let F=D instanceof o0?D:new o0(D,$);if(kD.throwOnInvalid)throw new JK(F);else return new _D({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 uJ(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?R0.create(this.loc,F).formatDurationFromString(this,D):cA}toHuman(D={}){if(!this.isValid)return cA;let $=D.showZeros!==!1,F=M1.map((X)=>{let J=this.values[X];if(e(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+=iJ(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},$D.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 eK(this.matrix,this.values)}valueOf(){return this.toMillis()}plus(D){if(!this.isValid)return this;let $=_D.fromDurationLike(D),F={};for(let X of M1)if(f6($.values,X)||f6(this.values,X))F[X]=$.get(X)+this.get(X);return W8(this,{values:F},!0)}minus(D){if(!this.isValid)return this;let $=_D.fromDurationLike(D);return this.plus($.negate())}mapUnits(D){if(!this.isValid)return this;let $={};for(let F of Object.keys(this.values))$[F]=gK(D(this.values[F],F));return W8(this,{values:$},!0)}get(D){return this[_D.normalizeUnit(D)]}set(D){if(!this.isValid)return this;let $={...this.values,...A5(D,_D.normalizeUnit)};return W8(this,{values:$})}reconfigure({locale:D,numberingSystem:$,conversionAccuracy:F,matrix:X}={}){let Y={loc:this.loc.clone({locale:D,numberingSystem:$}),matrix:X,conversionAccuracy:F};return W8(this,Y)}as(D){return this.isValid?this.shiftTo(D).get(D):NaN}normalize(){if(!this.isValid)return this;let D=this.toObject();return lA(this.matrix,D),W8(this,{values:D},!0)}rescale(){if(!this.isValid)return this;let D=dA(this.normalize().shiftToAll().toObject());return W8(this,{values:D},!0)}shiftTo(...D){if(!this.isValid)return this;if(D.length===0)return this;D=D.map((Y)=>_D.normalizeUnit(Y));let $={},F={},X=this.toObject(),J;for(let Y of M1)if(D.indexOf(Y)>=0){J=Y;let G=0;for(let H in F)G+=this.matrix[H][Y]*F[H],F[H]=0;if(b8(X[Y]))G+=X[Y];let B=Math.trunc(G);$[Y]=B,F[Y]=(G*1000-B*1000)/1000}else if(b8(X[Y]))F[Y]=X[Y];for(let Y in F)if(F[Y]!==0)$[J]+=Y===J?F[Y]:F[Y]/this.matrix[J][Y];return lA(this.matrix,$),W8(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 W8(this,{values:D},!0)}removeZeros(){if(!this.isValid)return this;let D=dA(this.values);return W8(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 M1)if(!$(this.values[F],D.values[F]))return!1;return!0}}var j6="Invalid Interval";function lf(D,$){if(!D||!D.isValid)return gD.invalid("missing or invalid start");else if(!$||!$.isValid)return gD.invalid("missing or invalid end");else if($<D)return gD.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 gD{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 W0("need to specify a reason the Interval is invalid");let F=D instanceof o0?D:new o0(D,$);if(kD.throwOnInvalid)throw new XK(F);else return new gD({invalid:F})}static fromDateTimes(D,$){let F=O9(D),X=O9($),J=lf(F,X);if(J==null)return new gD({start:F,end:X});else return J}static after(D,$){let F=_D.fromDurationLike($),X=O9(D);return gD.fromDateTimes(X,X.plus(F))}static before(D,$){let F=_D.fromDurationLike($),X=O9(D);return gD.fromDateTimes(X.minus(F),X)}static fromISO(D,$){let[F,X]=(D||"").split("/",2);if(F&&X){let J,Y;try{J=$D.fromISO(F,$),Y=J.isValid}catch(H){Y=!1}let G,B;try{G=$D.fromISO(X,$),B=G.isValid}catch(H){B=!1}if(Y&&B)return gD.fromDateTimes(J,G);if(Y){let H=_D.fromISO(X,$);if(H.isValid)return gD.after(J,H)}else if(B){let H=_D.fromISO(F,$);if(H.isValid)return gD.before(G,H)}}return gD.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 gD.fromDateTimes(D||this.s,$||this.e)}splitAt(...D){if(!this.isValid)return[];let $=D.map(O9).filter((Y)=>this.contains(Y)).sort((Y,G)=>Y.toMillis()-G.toMillis()),F=[],{s:X}=this,J=0;while(X<this.e){let Y=$[J]||this.e,G=+Y>+this.e?this.e:Y;F.push(gD.fromDateTimes(X,G)),X=G,J+=1}return F}splitBy(D){let $=_D.fromDurationLike(D);if(!this.isValid||!$.isValid||$.as("milliseconds")===0)return[];let{s:F}=this,X=1,J,Y=[];while(F<this.e){let G=this.start.plus($.mapUnits((B)=>B*X));J=+G>+this.e?this.e:G,Y.push(gD.fromDateTimes(F,J)),F=J,X+=1}return Y}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 gD.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 gD.fromDateTimes($,F)}static merge(D){let[$,F]=D.sort((X,J)=>X.s-J.s).reduce(([X,J],Y)=>{if(!J)return[X,Y];else if(J.overlaps(Y)||J.abutsStart(Y))return[X,J.union(Y)];else return[X.concat([J]),Y]},[[],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"}]),Y=Array.prototype.concat(...J),G=Y.sort((B,H)=>B.time-H.time);for(let B of G)if(F+=B.type==="s"?1:-1,F===1)$=B.time;else{if($&&+$!==+B.time)X.push(gD.fromDateTimes($,B.time));$=null}return gD.merge(X)}difference(...D){return gD.xor([this].concat(D)).map(($)=>this.intersection($)).filter(($)=>$&&!$.isEmpty())}toString(){if(!this.isValid)return j6;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=V5,$={}){return this.isValid?R0.create(this.s.loc.clone($),D).formatInterval(this):j6}toISO(D){if(!this.isValid)return j6;return`${this.s.toISO(D)}/${this.e.toISO(D)}`}toISODate(){if(!this.isValid)return j6;return`${this.s.toISODate()}/${this.e.toISODate()}`}toISOTime(D){if(!this.isValid)return j6;return`${this.s.toISOTime(D)}/${this.e.toISOTime(D)}`}toFormat(D,{separator:$=" \u2013 "}={}){if(!this.isValid)return j6;return`${this.s.toFormat(D)}${$}${this.e.toFormat(D)}`}toDuration(D,$){if(!this.isValid)return _D.invalid(this.invalidReason);return this.e.diff(this.s,D,$)}mapEndpoints(D){return gD.fromDateTimes(D(this.s),D(this.e))}}class T6{static hasDST(D=kD.defaultZone){let $=$D.now().setZone(D).set({month:12});return!D.isUniversal&&$.offset!==$.set({month:6}).offset}static isValidIANAZone(D){return p2.isValidZone(D)}static normalizeZone(D){return f8(D,kD.defaultZone)}static getStartOfWeek({locale:D=null,locObj:$=null}={}){return($||RD.create(D)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:D=null,locObj:$=null}={}){return($||RD.create(D)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:D=null,locObj:$=null}={}){return($||RD.create(D)).getWeekendDays().slice()}static months(D="long",{locale:$=null,numberingSystem:F=null,locObj:X=null,outputCalendar:J="gregory"}={}){return(X||RD.create($,F,J)).months(D)}static monthsFormat(D="long",{locale:$=null,numberingSystem:F=null,locObj:X=null,outputCalendar:J="gregory"}={}){return(X||RD.create($,F,J)).months(D,!0)}static weekdays(D="long",{locale:$=null,numberingSystem:F=null,locObj:X=null}={}){return(X||RD.create($,F,null)).weekdays(D)}static weekdaysFormat(D="long",{locale:$=null,numberingSystem:F=null,locObj:X=null}={}){return(X||RD.create($,F,null)).weekdays(D,!0)}static meridiems({locale:D=null}={}){return RD.create(D).meridiems()}static eras(D="short",{locale:$=null}={}){return RD.create($,null,"gregory").eras(D)}static features(){return{relative:vK(),localeWeek:hK()}}}function iA(D,$){let F=(J)=>J.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),X=F($)-F(D);return Math.floor(_D.fromMillis(X).as("days"))}function df(D,$,F){let X=[["years",(H,W)=>W.year-H.year],["quarters",(H,W)=>W.quarter-H.quarter+(W.year-H.year)*4],["months",(H,W)=>W.month-H.month+(W.year-H.year)*12],["weeks",(H,W)=>{let V=iA(H,W);return(V-V%7)/7}],["days",iA]],J={},Y=D,G,B;for(let[H,W]of X)if(F.indexOf(H)>=0)if(G=H,J[H]=W(D,$),B=Y.plus(J),B>$){if(J[H]--,D=Y.plus(J),D>$)B=D,J[H]--,D=Y.plus(J)}else D=B;return[D,J,B,G]}function nf(D,$,F,X){let[J,Y,G,B]=df(D,$,F),H=$-J,W=F.filter((_)=>["hours","minutes","seconds","milliseconds"].indexOf(_)>=0);if(W.length===0){if(G<$)G=J.plus({[B]:1});if(G!==J)Y[B]=(Y[B]||0)+H/(G-J)}let V=_D.fromObject(Y,X);if(W.length>0)return _D.fromMillis(H,X).shiftTo(...W).plus(V);else return V}var sf="missing Intl.DateTimeFormat.formatToParts support";function KD(D,$=(F)=>F){return{regex:D,deser:([F])=>$(xS(F))}}var rf=String.fromCharCode(160),DC=`[ ${rf}]`,$C=new RegExp(DC,"g");function of(D){return D.replace(/\./g,"\\.?").replace($C,DC)}function nA(D){return D.replace(/\./g,"").replace($C," ").toLowerCase()}function z2(D,$){if(D===null)return null;else return{regex:RegExp(D.map(of).join("|")),deser:([F])=>D.findIndex((X)=>nA(F)===nA(X))+$}}function sA(D,$){return{regex:D,deser:([,F,X])=>O5(F,X),groups:$}}function G5(D){return{regex:D,deser:([$])=>$}}function af(D){return D.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function tf(D,$){let F=N2($),X=N2($,"{2}"),J=N2($,"{3}"),Y=N2($,"{4}"),G=N2($,"{6}"),B=N2($,"{1,2}"),H=N2($,"{1,3}"),W=N2($,"{1,6}"),V=N2($,"{1,9}"),_=N2($,"{2,4}"),U=N2($,"{4,6}"),A=(K)=>({regex:RegExp(af(K.val)),deser:([R])=>R,literal:!0}),C=((K)=>{if(D.literal)return A(K);switch(K.val){case"G":return z2($.eras("short"),0);case"GG":return z2($.eras("long"),0);case"y":return KD(W);case"yy":return KD(_,gJ);case"yyyy":return KD(Y);case"yyyyy":return KD(U);case"yyyyyy":return KD(G);case"M":return KD(B);case"MM":return KD(X);case"MMM":return z2($.months("short",!0),1);case"MMMM":return z2($.months("long",!0),1);case"L":return KD(B);case"LL":return KD(X);case"LLL":return z2($.months("short",!1),1);case"LLLL":return z2($.months("long",!1),1);case"d":return KD(B);case"dd":return KD(X);case"o":return KD(H);case"ooo":return KD(J);case"HH":return KD(X);case"H":return KD(B);case"hh":return KD(X);case"h":return KD(B);case"mm":return KD(X);case"m":return KD(B);case"q":return KD(B);case"qq":return KD(X);case"s":return KD(B);case"ss":return KD(X);case"S":return KD(H);case"SSS":return KD(J);case"u":return G5(V);case"uu":return G5(B);case"uuu":return KD(F);case"a":return z2($.meridiems(),0);case"kkkk":return KD(Y);case"kk":return KD(_,gJ);case"W":return KD(B);case"WW":return KD(X);case"E":case"c":return KD(F);case"EEE":return z2($.weekdays("short",!1),1);case"EEEE":return z2($.weekdays("long",!1),1);case"ccc":return z2($.weekdays("short",!0),1);case"cccc":return z2($.weekdays("long",!0),1);case"Z":case"ZZ":return sA(new RegExp(`([+-]${B.source})(?::(${X.source}))?`),2);case"ZZZ":return sA(new RegExp(`([+-]${B.source})(${X.source})?`),2);case"z":return G5(/[a-z_+-/]{1,256}?/i);case" ":return G5(/[^\S\n\r]/);default:return A(K)}})(D)||{invalidReason:sf};return C.token=D,C}var ef={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 Db(D,$,F){let{type:X,value:J}=D;if(X==="literal"){let H=/^\s+$/.test(J);return{literal:!H,val:H?" ":J}}let Y=$[X],G=X;if(X==="hour")if($.hour12!=null)G=$.hour12?"hour12":"hour24";else if($.hourCycle!=null)if($.hourCycle==="h11"||$.hourCycle==="h12")G="hour12";else G="hour24";else G=F.hour12?"hour12":"hour24";let B=ef[G];if(typeof B==="object")B=B[Y];if(B)return{literal:!1,val:B};return}function $b(D){return[`^${D.map((F)=>F.regex).reduce((F,X)=>`${F}(${X.source})`,"")}$`,D]}function Fb(D,$,F){let X=D.match($);if(X){let J={},Y=1;for(let G in F)if(f6(F,G)){let B=F[G],H=B.groups?B.groups+1:1;if(!B.literal&&B.token)J[B.token.val[0]]=B.deser(X.slice(Y,Y+H));Y+=H}return[X,J]}else return[X,{}]}function Xb(D){let $=(Y)=>{switch(Y){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(!e(D.z))F=p2.create(D.z);if(!e(D.Z)){if(!F)F=new E0(D.Z);X=D.Z}if(!e(D.q))D.M=(D.q-1)*3+1;if(!e(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(!e(D.u))D.S=dJ(D.u);return[Object.keys(D).reduce((Y,G)=>{let B=$(G);if(B)Y[B]=D[G];return Y},{}),F,X]}var NJ=null;function Jb(){if(!NJ)NJ=$D.fromMillis(1555555555555);return NJ}function Gb(D,$){if(D.literal)return D;let F=R0.macroTokenToFormatOpts(D.val),X=JC(F,$);if(X==null||X.includes(void 0))return D;return X}function FC(D,$){return Array.prototype.concat(...D.map((F)=>Gb(F,$)))}class oJ{constructor(D,$){if(this.locale=D,this.format=$,this.tokens=FC(R0.parseFormat($),D),this.units=this.tokens.map((F)=>tf(F,D)),this.disqualifyingUnit=this.units.find((F)=>F.invalidReason),!this.disqualifyingUnit){let[F,X]=$b(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]=Fb(D,this.regex,this.handlers),[X,J,Y]=F?Xb(F):[null,null,void 0];if(f6(F,"a")&&f6(F,"H"))throw new E1("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:Y}}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}}function XC(D,$,F){return new oJ(D,F).explainFromTokens($)}function Yb(D,$,F){let{result:X,zone:J,specificOffset:Y,invalidReason:G}=XC(D,$,F);return[X,J,Y,G]}function JC(D,$){if(!D)return null;let X=R0.create($,D).dtFormatter(Jb()),J=X.formatToParts(),Y=X.resolvedOptions();return J.map((G)=>Db(G,D,Y))}var zJ="Invalid DateTime",rA=8640000000000000;function E9(D){return new o0("unsupported zone",`the zone "${D.name}" is not supported`)}function LJ(D){if(D.weekData===null)D.weekData=_5(D.c);return D.weekData}function jJ(D){if(D.localWeekData===null)D.localWeekData=_5(D.c,D.loc.getMinDaysInFirstWeek(),D.loc.getStartOfWeek());return D.localWeekData}function R1(D,$){let F={ts:D.ts,zone:D.zone,c:D.c,o:D.o,loc:D.loc,invalid:D.invalid};return new $D({...F,...$,old:F})}function GC(D,$,F){let X=D-$*60*1000,J=F.offset(X);if($===J)return[X,$];X-=(J-$)*60*1000;let Y=F.offset(X);if(J===Y)return[X,J];return[D-Math.min(J,Y)*60*1000,Math.max(J,Y)]}function Y5(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 H5(D,$,F){return GC(C5(D),$,F)}function oA(D,$){let F=D.o,X=D.c.year+Math.trunc($.years),J=D.c.month+Math.trunc($.months)+Math.trunc($.quarters)*3,Y={...D.c,year:X,month:J,day:Math.min(D.c.day,U5(X,J))+Math.trunc($.days)+Math.trunc($.weeks)*7},G=_D.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=C5(Y),[H,W]=GC(B,F,D.zone);if(G!==0)H+=G,W=D.zone.offset(H);return{ts:H,o:W}}function I6(D,$,F,X,J,Y){let{setZone:G,zone:B}=F;if(D&&Object.keys(D).length!==0||$){let H=$||B,W=$D.fromObject(D,{...F,zone:H,specificOffset:Y});return G?W:W.setZone(B)}else return $D.invalid(new o0("unparsable",`the input "${J}" can't be parsed as ${X}`))}function B5(D,$,F=!0){return D.isValid?R0.create(RD.create("en-US"),{allowZ:F,forceSimple:!0}).formatDateTimeFromString(D,$):null}function IJ(D,$,F){let X=D.c.year>9999||D.c.year<0,J="";if(X&&D.c.year>=0)J+="+";if(J+=nD(D.c.year,X?6:4),F==="year")return J;if($){if(J+="-",J+=nD(D.c.month),F==="month")return J;J+="-"}else if(J+=nD(D.c.month),F==="month")return J;return J+=nD(D.c.day),J}function aA(D,$,F,X,J,Y,G){let B=!F||D.c.millisecond!==0||D.c.second!==0,H="";switch(G){case"day":case"month":case"year":break;default:if(H+=nD(D.c.hour),G==="hour")break;if($){if(H+=":",H+=nD(D.c.minute),G==="minute")break;if(B)H+=":",H+=nD(D.c.second)}else{if(H+=nD(D.c.minute),G==="minute")break;if(B)H+=nD(D.c.second)}if(G==="second")break;if(B&&(!X||D.c.millisecond!==0))H+=".",H+=nD(D.c.millisecond,3)}if(J)if(D.isOffsetFixed&&D.offset===0&&!Y)H+="Z";else if(D.o<0)H+="-",H+=nD(Math.trunc(-D.o/60)),H+=":",H+=nD(Math.trunc(-D.o%60));else H+="+",H+=nD(Math.trunc(D.o/60)),H+=":",H+=nD(Math.trunc(D.o%60));if(Y)H+="["+D.zone.ianaName+"]";return H}var YC={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},Bb={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},Hb={ordinal:1,hour:0,minute:0,second:0,millisecond:0},W5=["year","month","day","hour","minute","second","millisecond"],Wb=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],Qb=["year","ordinal","hour","minute","second","millisecond"];function Q5(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 uJ(D);return $}function tA(D){switch(D.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return Q5(D)}}function Vb(D){if(M9===void 0)M9=kD.now();if(D.type!=="iana")return D.offset(M9);let $=D.name,F=yJ.get($);if(F===void 0)F=D.offset(M9),yJ.set($,F);return F}function eA(D,$){let F=f8($.zone,kD.defaultZone);if(!F.isValid)return $D.invalid(E9(F));let X=RD.fromObject($),J,Y;if(!e(D.year)){for(let H of W5)if(e(D[H]))D[H]=YC[H];let G=bK(D)||kK(D);if(G)return $D.invalid(G);let B=Vb(F);[J,Y]=H5(D,B,F)}else J=kD.now();return new $D({ts:J,zone:F,loc:X,o:Y})}function DK(D,$,F){let X=e(F.round)?!0:F.round,J=e(F.rounding)?"trunc":F.rounding,Y=(B,H)=>{return B=iJ(B,X||F.calendary?0:2,F.calendary?"round":J),$.loc.clone(F).relFormatter(F).format(B,H)},G=(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 Y(G(F.unit),F.unit);for(let B of F.units){let H=G(B);if(Math.abs(H)>=1)return Y(H,B)}return Y(D>$?-0:0,F.units[F.units.length-1])}function $K(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 M9,yJ=new Map;class $D{constructor(D){let $=D.zone||kD.defaultZone,F=D.invalid||(Number.isNaN(D.ts)?new o0("invalid input"):null)||(!$.isValid?E9($):null);this.ts=e(D.ts)?kD.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 G=b8(D.o)&&!D.old?D.o:$.offset(this.ts);X=Y5(this.ts,G),F=Number.isNaN(X.year)?new o0("invalid input"):null,X=F?null:X,J=F?null:G}this._zone=$,this.loc=D.loc||RD.create(),this.invalid=F,this.weekData=null,this.localWeekData=null,this.c=X,this.o=J,this.isLuxonDateTime=!0}static now(){return new $D({})}static local(){let[D,$]=$K(arguments),[F,X,J,Y,G,B,H]=$;return eA({year:F,month:X,day:J,hour:Y,minute:G,second:B,millisecond:H},D)}static utc(){let[D,$]=$K(arguments),[F,X,J,Y,G,B,H]=$;return D.zone=E0.utcInstance,eA({year:F,month:X,day:J,hour:Y,minute:G,second:B,millisecond:H},D)}static fromJSDate(D,$={}){let F=pS(D)?D.valueOf():NaN;if(Number.isNaN(F))return $D.invalid("invalid input");let X=f8($.zone,kD.defaultZone);if(!X.isValid)return $D.invalid(E9(X));return new $D({ts:F,zone:X,loc:RD.fromObject($)})}static fromMillis(D,$={}){if(!b8(D))throw new W0(`fromMillis requires a numerical input, but received a ${typeof D} with value ${D}`);else if(D<-rA||D>rA)return $D.invalid("Timestamp out of range");else return new $D({ts:D,zone:f8($.zone,kD.defaultZone),loc:RD.fromObject($)})}static fromSeconds(D,$={}){if(!b8(D))throw new W0("fromSeconds requires a numerical input");else return new $D({ts:D*1000,zone:f8($.zone,kD.defaultZone),loc:RD.fromObject($)})}static fromObject(D,$={}){D=D||{};let F=f8($.zone,kD.defaultZone);if(!F.isValid)return $D.invalid(E9(F));let X=RD.fromObject($),J=A5(D,tA),{minDaysInFirstWeek:Y,startOfWeek:G}=gA(J,X),B=kD.now(),H=!e($.specificOffset)?$.specificOffset:F.offset(B),W=!e(J.ordinal),V=!e(J.year),_=!e(J.month)||!e(J.day),U=V||_,A=J.weekYear||J.weekNumber;if((U||W)&&A)throw new E1("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(_&&W)throw new E1("Can't mix ordinal dates with month/day");let O=A||J.weekday&&!U,C,K,R=Y5(B,H);if(O)C=Wb,K=Bb,R=_5(R,Y,G);else if(W)C=Qb,K=Hb,R=qJ(R);else C=W5,K=YC;let P=!1;for(let c of C){let XD=J[c];if(!e(XD))P=!0;else if(P)J[c]=K[c];else J[c]=R[c]}let q=O?yS(J,Y,G):W?uS(J):bK(J),w=q||kK(J);if(w)return $D.invalid(w);let S=O?hA(J,Y,G):W?xA(J):J,[L,N]=H5(S,H,F),j=new $D({ts:L,zone:F,o:N,loc:X});if(J.weekday&&U&&D.weekday!==j.weekday)return $D.invalid("mismatched weekday",`you can't specify both a weekday of ${J.weekday} and a date of ${j.toISO()}`);if(!j.isValid)return $D.invalid(j.invalid);return j}static fromISO(D,$={}){let[F,X]=Sf(D);return I6(F,X,$,"ISO 8601",D)}static fromRFC2822(D,$={}){let[F,X]=ff(D);return I6(F,X,$,"RFC 2822",D)}static fromHTTP(D,$={}){let[F,X]=bf(D);return I6(F,X,$,"HTTP",$)}static fromFormat(D,$,F={}){if(e(D)||e($))throw new W0("fromFormat requires an input string and a format");let{locale:X=null,numberingSystem:J=null}=F,Y=RD.fromOpts({locale:X,numberingSystem:J,defaultToEN:!0}),[G,B,H,W]=Yb(Y,D,$);if(W)return $D.invalid(W);else return I6(G,B,F,`format ${$}`,D,H)}static fromString(D,$,F={}){return $D.fromFormat(D,$,F)}static fromSQL(D,$={}){let[F,X]=uf(D);return I6(F,X,$,"SQL",D)}static invalid(D,$=null){if(!D)throw new W0("need to specify a reason the DateTime is invalid");let F=D instanceof o0?D:new o0(D,$);if(kD.throwOnInvalid)throw new FK(F);else return new $D({invalid:F})}static isDateTime(D){return D&&D.isLuxonDateTime||!1}static parseFormatForOpts(D,$={}){let F=JC(D,RD.fromObject($));return!F?null:F.map((X)=>X?X.val:null).join("")}static expandFormat(D,$={}){return FC(R0.parseFormat(D),RD.fromObject($)).map((X)=>X.val).join("")}static resetCache(){M9=void 0,yJ.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?LJ(this).weekYear:NaN}get weekNumber(){return this.isValid?LJ(this).weekNumber:NaN}get weekday(){return this.isValid?LJ(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?jJ(this).weekday:NaN}get localWeekNumber(){return this.isValid?jJ(this).weekNumber:NaN}get localWeekYear(){return this.isValid?jJ(this).weekYear:NaN}get ordinal(){return this.isValid?qJ(this.c).ordinal:NaN}get monthShort(){return this.isValid?T6.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?T6.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?T6.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?T6.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=C5(this.c),X=this.zone.offset(F-D),J=this.zone.offset(F+D),Y=this.zone.offset(F-X*$),G=this.zone.offset(F-J*$);if(Y===G)return[this];let B=F-Y*$,H=F-G*$,W=Y5(B,Y),V=Y5(H,G);if(W.hour===V.hour&&W.minute===V.minute&&W.second===V.second&&W.millisecond===V.millisecond)return[R1(this,{ts:B}),R1(this,{ts:H})];return[this]}get isInLeapYear(){return N9(this.year)}get daysInMonth(){return U5(this.year,this.month)}get daysInYear(){return this.isValid?w6(this.year):NaN}get weeksInWeekYear(){return this.isValid?P9(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?P9(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(D={}){let{locale:$,numberingSystem:F,calendar:X}=R0.create(this.loc.clone(D),D).resolvedOptions(this);return{locale:$,numberingSystem:F,outputCalendar:X}}toUTC(D=0,$={}){return this.setZone(E0.instance(D),$)}toLocal(){return this.setZone(kD.defaultZone)}setZone(D,{keepLocalTime:$=!1,keepCalendarTime:F=!1}={}){if(D=f8(D,kD.defaultZone),D.equals(this.zone))return this;else if(!D.isValid)return $D.invalid(E9(D));else{let X=this.ts;if($||F){let J=D.offset(this.ts),Y=this.toObject();[X]=H5(Y,J,D)}return R1(this,{ts:X,zone:D})}}reconfigure({locale:D,numberingSystem:$,outputCalendar:F}={}){let X=this.loc.clone({locale:D,numberingSystem:$,outputCalendar:F});return R1(this,{loc:X})}setLocale(D){return this.reconfigure({locale:D})}set(D){if(!this.isValid)return this;let $=A5(D,tA),{minDaysInFirstWeek:F,startOfWeek:X}=gA($,this.loc),J=!e($.weekYear)||!e($.weekNumber)||!e($.weekday),Y=!e($.ordinal),G=!e($.year),B=!e($.month)||!e($.day),H=G||B,W=$.weekYear||$.weekNumber;if((H||Y)&&W)throw new E1("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(B&&Y)throw new E1("Can't mix ordinal dates with month/day");let V;if(J)V=hA({..._5(this.c,F,X),...$},F,X);else if(!e($.ordinal))V=xA({...qJ(this.c),...$});else if(V={...this.toObject(),...$},e($.day))V.day=Math.min(U5(V.year,V.month),V.day);let[_,U]=H5(V,this.o,this.zone);return R1(this,{ts:_,o:U})}plus(D){if(!this.isValid)return this;let $=_D.fromDurationLike(D);return R1(this,oA(this,$))}minus(D){if(!this.isValid)return this;let $=_D.fromDurationLike(D).negate();return R1(this,oA(this,$))}startOf(D,{useLocaleWeeks:$=!1}={}){if(!this.isValid)return this;let F={},X=_D.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:Y}=this;if(Y<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?R0.create(this.loc.redefaultToEN($)).formatDateTimeFromString(this,D):zJ}toLocaleString(D=V5,$={}){return this.isValid?R0.create(this.loc.clone($),D).formatDateTime(this):zJ}toLocaleParts(D={}){return this.isValid?R0.create(this.loc.clone(D),D).formatDateTimeParts(this):[]}toISO({format:D="extended",suppressSeconds:$=!1,suppressMilliseconds:F=!1,includeOffset:X=!0,extendedZone:J=!1,precision:Y="milliseconds"}={}){if(!this.isValid)return null;Y=Q5(Y);let G=D==="extended",B=IJ(this,G,Y);if(W5.indexOf(Y)>=3)B+="T";return B+=aA(this,G,$,F,X,J,Y),B}toISODate({format:D="extended",precision:$="day"}={}){if(!this.isValid)return null;return IJ(this,D==="extended",Q5($))}toISOWeekDate(){return B5(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:D=!1,suppressSeconds:$=!1,includeOffset:F=!0,includePrefix:X=!1,extendedZone:J=!1,format:Y="extended",precision:G="milliseconds"}={}){if(!this.isValid)return null;return G=Q5(G),(X&&W5.indexOf(G)>=3?"T":"")+aA(this,Y==="extended",$,D,F,J,G)}toRFC2822(){return B5(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return B5(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){if(!this.isValid)return null;return IJ(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 B5(this,X,!0)}toSQL(D={}){if(!this.isValid)return null;return`${this.toSQLDate()} ${this.toSQLTime(D)}`}toString(){return this.isValid?this.toISO():zJ}[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 _D.invalid("created by diffing an invalid DateTime");let X={locale:this.locale,numberingSystem:this.numberingSystem,...F},J=cS($).map(_D.normalizeUnit),Y=D.valueOf()>this.valueOf(),G=Y?this:D,B=Y?D:this,H=nf(G,B,J,X);return Y?H.negate():H}diffNow(D="milliseconds",$={}){return this.diff($D.now(),D,$)}until(D){return this.isValid?gD.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||$D.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 DK($,this.plus(F),{...D,numeric:"always",units:X,unit:J})}toRelativeCalendar(D={}){if(!this.isValid)return null;return DK(D.base||$D.fromObject({},{zone:this.zone}),this,{...D,numeric:"auto",units:["years","months","days"],calendary:!0})}static min(...D){if(!D.every($D.isDateTime))throw new W0("min requires all arguments be DateTimes");return yA(D,($)=>$.valueOf(),Math.min)}static max(...D){if(!D.every($D.isDateTime))throw new W0("max requires all arguments be DateTimes");return yA(D,($)=>$.valueOf(),Math.max)}static fromFormatExplain(D,$,F={}){let{locale:X=null,numberingSystem:J=null}=F,Y=RD.fromOpts({locale:X,numberingSystem:J,defaultToEN:!0});return XC(Y,D,$)}static fromStringExplain(D,$,F={}){return $D.fromFormatExplain(D,$,F)}static buildFormatParser(D,$={}){let{locale:F=null,numberingSystem:X=null}=$,J=RD.fromOpts({locale:F,numberingSystem:X,defaultToEN:!0});return new oJ(J,D)}static fromFormatParser(D,$,F={}){if(e(D)||e($))throw new W0("fromFormatParser requires an input string and a format parser");let{locale:X=null,numberingSystem:J=null}=F,Y=RD.fromOpts({locale:X,numberingSystem:J,defaultToEN:!0});if(!Y.equals($.locale))throw new W0(`fromFormatParser called with a locale of ${Y}, but the format parser was created for ${$.locale}`);let{result:G,zone:B,specificOffset:H,invalidReason:W}=$.explainFromTokens(D);if(W)return $D.invalid(W);else return I6(G,B,F,`format ${$.format}`,D,H)}static get DATE_SHORT(){return V5}static get DATE_MED(){return GK}static get DATE_MED_WITH_WEEKDAY(){return MS}static get DATE_FULL(){return YK}static get DATE_HUGE(){return BK}static get TIME_SIMPLE(){return HK}static get TIME_WITH_SECONDS(){return WK}static get TIME_WITH_SHORT_OFFSET(){return QK}static get TIME_WITH_LONG_OFFSET(){return VK}static get TIME_24_SIMPLE(){return _K}static get TIME_24_WITH_SECONDS(){return UK}static get TIME_24_WITH_SHORT_OFFSET(){return AK}static get TIME_24_WITH_LONG_OFFSET(){return KK}static get DATETIME_SHORT(){return CK}static get DATETIME_SHORT_WITH_SECONDS(){return OK}static get DATETIME_MED(){return RK}static get DATETIME_MED_WITH_SECONDS(){return EK}static get DATETIME_MED_WITH_WEEKDAY(){return ZS}static get DATETIME_FULL(){return MK}static get DATETIME_FULL_WITH_SECONDS(){return ZK}static get DATETIME_HUGE(){return PK}static get DATETIME_HUGE_WITH_SECONDS(){return qK}}function O9(D){if($D.isDateTime(D))return D;else if(D&&D.valueOf&&b8(D.valueOf()))return $D.fromJSDate(D);else if(D&&typeof D==="object")return $D.fromObject(D);else throw new W0(`Unknown datetime argument: ${D}, of type ${typeof D}`)}var _b="3.7.2";BC.DateTime=$D;BC.Duration=_D;BC.FixedOffsetZone=E0;BC.IANAZone=p2;BC.Info=T6;BC.Interval=gD;BC.InvalidZone=mJ;BC.Settings=kD;BC.SystemZone=q9;BC.VERSION=_b;BC.Zone=Z1});var M5=b((WC)=>{Object.defineProperty(WC,"__esModule",{value:!0});WC.CronDate=WC.DAYS_IN_MONTH=WC.DateMathOp=WC.TimeUnit=void 0;var P1=HC(),M0;(function(D){D.Second="Second",D.Minute="Minute",D.Hour="Hour",D.Day="Day",D.Month="Month",D.Year="Year"})(M0||(WC.TimeUnit=M0={}));var E5;(function(D){D.Add="Add",D.Subtract="Subtract"})(E5||(WC.DateMathOp=E5={}));WC.DAYS_IN_MONTH=Object.freeze([31,29,31,30,31,30,31,31,30,31,30,31]);class x6{#D;#$=null;#X=null;#G={add:{[M0.Year]:this.addYear.bind(this),[M0.Month]:this.addMonth.bind(this),[M0.Day]:this.addDay.bind(this),[M0.Hour]:this.addHour.bind(this),[M0.Minute]:this.addMinute.bind(this),[M0.Second]:this.addSecond.bind(this)},subtract:{[M0.Year]:this.subtractYear.bind(this),[M0.Month]:this.subtractMonth.bind(this),[M0.Day]:this.subtractDay.bind(this),[M0.Hour]:this.subtractHour.bind(this),[M0.Minute]:this.subtractMinute.bind(this),[M0.Second]:this.subtractSecond.bind(this)}};constructor(D,$){let F={zone:$};if(!D)this.#D=P1.DateTime.local();else if(D instanceof x6)this.#D=D.#D,this.#$=D.#$,this.#X=D.#X;else if(D instanceof Date)this.#D=P1.DateTime.fromJSDate(D,F);else if(typeof D==="number")this.#D=P1.DateTime.fromMillis(D,F);else this.#D=P1.DateTime.fromISO(D,F),this.#D.isValid||(this.#D=P1.DateTime.fromRFC2822(D,F)),this.#D.isValid||(this.#D=P1.DateTime.fromSQL(D,F)),this.#D.isValid||(this.#D=P1.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===E5.Add){this.addUnit($);return}if(D===E5.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=x6.#J(this.#D.year);return D===WC.DAYS_IN_MONTH[$-1]-(F?0:1)}return D===WC.DAYS_IN_MONTH[$-1]}isLastWeekdayOfMonth(){let{day:D,month:$}=this.#D,F;if($===2)F=WC.DAYS_IN_MONTH[$-1]-(x6.#J(this.#D.year)?0:1);else F=WC.DAYS_IN_MONTH[$-1];return D>F-7}applyDateOperation(D,$,F){if($===M0.Month||$===M0.Day){this.invokeDateOperation(D,$);return}let X=this.getHours();this.invokeDateOperation(D,$);let J=this.getHours(),Y=J-X;if(Y===2){if(F!==24)this.dstStart=J}else if(Y===0&&this.getMinutes()===0&&this.getSeconds()===0){if(F!==24)this.dstEnd=J}}#F(){return this.#D.toUTC()}}WC.CronDate=x6;WC.default=x6});var AC=b((_C)=>{Object.defineProperty(_C,"__esModule",{value:!0});_C.CronMonth=void 0;var jb=M5(),Ib=w8(),Tb=1,wb=12,Sb=Object.freeze([]);class VC extends Ib.CronField{static get min(){return Tb}static get max(){return wb}static get chars(){return Sb}static get daysInMonth(){return jb.DAYS_IN_MONTH}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}_C.CronMonth=VC});var RC=b((CC)=>{Object.defineProperty(CC,"__esModule",{value:!0});CC.CronSecond=void 0;var fb=w8(),bb=0,kb=59,vb=Object.freeze([]);class KC extends fb.CronField{static get min(){return bb}static get max(){return kb}static get chars(){return vb}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}CC.CronSecond=KC});var Z5=b((S0)=>{var hb=S0&&S0.__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]}),v8=S0&&S0.__exportStar||function(D,$){for(var F in D)if(F!=="default"&&!Object.prototype.hasOwnProperty.call($,F))hb($,D,F)};Object.defineProperty(S0,"__esModule",{value:!0});v8(BA(),S0);v8(UA(),S0);v8(OA(),S0);v8(w8(),S0);v8(ZA(),S0);v8(zA(),S0);v8(AC(),S0);v8(RC(),S0)});var aJ=b((EC)=>{Object.defineProperty(EC,"__esModule",{value:!0});EC.CronFieldCollection=void 0;var e0=Z5();class g6{#D;#$;#X;#G;#J;#F;static from(D,$){return new g6({second:this.resolveField(e0.CronSecond,D.second,$.second),minute:this.resolveField(e0.CronMinute,D.minute,$.minute),hour:this.resolveField(e0.CronHour,D.hour,$.hour),dayOfMonth:this.resolveField(e0.CronDayOfMonth,D.dayOfMonth,$.dayOfMonth),month:this.resolveField(e0.CronMonth,D.month,$.month),dayOfWeek:this.resolveField(e0.CronDayOfWeek,D.dayOfWeek,$.dayOfWeek)})}static resolveField(D,$,F){if(!F)return $;if(F instanceof e0.CronField)return F;return new D(F)}constructor({second:D,minute:$,hour:F,dayOfMonth:X,month:J,dayOfWeek:Y}){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(!Y)throw Error("Validation error, Field dayOfWeek is missing");if(J.values.length===1&&!X.hasLastChar){if(!(parseInt(X.values[0],10)<=e0.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=Y,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,Y)=>{if(F===void 0){F={start:X,count:1};return}let G=Y[J-1]||F.start,B=Y[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-G,W=B-X;if(H<=W){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??G,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=(G,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 Y={length:D.end-D.start+1};return Array.from(Y,J).filter((G)=>G!==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 e0.CronDayOfWeek){$=6;let J=this.#F.values;F=J[J.length-1]===7?J.slice(0,-1):J}if(D instanceof e0.CronDayOfMonth)$=this.#J.values.length===1?e0.CronMonth.daysInMonth[this.#J.values[0]-1]:D.max;let X=g6.compactField(F);if(X.length===1){let J=g6.#W(D,X[0],$);if(J)return J}return X.map((J)=>{let Y=J.count===1?J.start.toString():g6.#H(J,$);if(D instanceof e0.CronDayOfWeek&&D.nthDay>0)return`${Y}#${D.nthDay}`;return Y}).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()}}}EC.CronFieldCollection=g6});var eJ=b((PC)=>{Object.defineProperty(PC,"__esModule",{value:!0});PC.CronExpression=PC.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE=PC.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE=void 0;var uD=M5();PC.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE="Out of the time span range";PC.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE="Invalid expression, loop limit exceeded";var ZC=1e4;class D2{#D;#$;#X;#G;#J;#F;#W=null;#H=!1;constructor(D,$){this.#D=$,this.#$=$.tz,this.#G=$.startDate?new uD.CronDate($.startDate,this.#$):null,this.#J=$.endDate?new uD.CronDate($.endDate,this.#$):null;let F=$.currentDate??$.startDate;if(F){let X=new uD.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 uD.CronDate(F,this.#$),this.#F=D}get fields(){return this.#F}static fieldsToExpression(D,$){return new D2(D,$||{})}static#B(D,$){return $.some((F)=>F===D)}#Y(D,$){return D[$?D.length-1:0]}#V(D){let $=`${D.getFullYear()}-${D.getMonth()+1}-${D.getDate()}`;if(this.#W===$)return this.#H;let F=new uD.CronDate(D);F.setStartOfDay();let X=new uD.CronDate(D);return X.setEndOfDay(),this.#W=$,this.#H=F.getUTCOffset()!==X.getUTCOffset(),this.#H}#_(D,$,F){let X=this.#F.second.values,J=D.getSeconds(),Y=this.#F.second.findNearestValue(J,F);if(Y!==null){D.setSeconds(Y);return}D.applyDateOperation($,uD.TimeUnit.Minute,this.#F.hour.values.length),D.setSeconds(this.#Y(X,F))}#Q(D,$,F){let X=this.#F.minute.values,J=this.#F.second.values,Y=D.getMinutes(),G=this.#F.minute.findNearestValue(Y,F);if(G!==null){D.setMinutes(G),D.setSeconds(this.#Y(J,F));return}D.applyDateOperation($,uD.TimeUnit.Hour,this.#F.hour.values.length),D.setMinutes(this.#Y(X,F)),D.setSeconds(this.#Y(J,F))}static#K(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.#U()}prev(){return this.#U(!0)}hasNext(){let D=this.#X;try{return this.#U(),!0}catch{return!1}finally{this.#X=D}}hasPrev(){let D=this.#X;try{return this.#U(!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 uD.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,Y=new uD.CronDate(D,this.#$);if(!$.values.includes(Y.getSeconds())||!F.values.includes(Y.getMinutes())||!X.values.includes(Y.getHours())||!J.values.includes(Y.getMonth()+1))return!1;if(!this.#A(Y))return!1;if(this.#F.dayOfWeek.nthDay>0){if(Math.ceil(Y.getDate()/7)!==this.#F.dayOfWeek.nthDay)return!1}return!0}toString(){return this.#D.expression||this.stringify(!0)}#A(D){let $=this.#F.dayOfMonth.isWildcard,F=!$,X=this.#F.dayOfWeek.isWildcard,J=!X,Y=D2.#B(D.getDate(),this.#F.dayOfMonth.values)||this.#F.dayOfMonth.hasLastChar&&D.isLastDayOfMonth(),G=D2.#B(D.getDay(),this.#F.dayOfWeek.values)||this.#F.dayOfWeek.hasLastChar&&D2.#K(this.#F.dayOfWeek.values,D);if(F&&J&&(Y||G))return!0;if(Y&&!J)return!0;if($&&!X&&G)return!0;return!1}#C(D,$,F){let X=this.#F.hour.values,J=X,Y=D.getHours(),G=D2.#B(Y,X),B=D.dstStart===Y,H=D.dstEnd===Y;if(B){if(D2.#B(Y-1,X))return!0;return D.invokeDateOperation($,uD.TimeUnit.Hour),!1}if(H&&!F)return D.dstEnd=null,D.applyDateOperation(uD.DateMathOp.Add,uD.TimeUnit.Hour,J.length),!1;if(G)return!0;D.dstStart=null;let W=this.#F.hour.findNearestValue(Y,F);if(W===null)return D.applyDateOperation($,uD.TimeUnit.Day,J.length),!1;if(this.#V(D)){let V=F?Y-W:W-Y;for(let _=0;_<V;_++)D.applyDateOperation($,uD.TimeUnit.Hour,J.length)}else D.setHours(W);return D.setMinutes(this.#Y(this.#F.minute.values,F)),D.setSeconds(this.#Y(this.#F.second.values,F)),!1}#O(D){if(!this.#G&&!this.#J)return;let $=D.getTime();if(this.#G&&$<this.#G.getTime())throw Error(PC.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE);if(this.#J&&$>this.#J.getTime())throw Error(PC.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE)}#U(D=!1){let $=D?uD.DateMathOp.Subtract:uD.DateMathOp.Add,F=new uD.CronDate(this.#X),X=F.getTime(),J=0;while(++J<ZC){if(this.#O(F),!this.#A(F)){F.applyDateOperation($,uD.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($,uD.TimeUnit.Day,this.#F.hour.values.length);continue}if(!D2.#B(F.getMonth()+1,this.#F.month.values)){F.applyDateOperation($,uD.TimeUnit.Month,this.#F.hour.values.length);continue}if(!this.#C(F,$,D))continue;if(!D2.#B(F.getMinutes(),this.#F.minute.values)){this.#Q(F,$,D);continue}if(!D2.#B(F.getSeconds(),this.#F.second.values)){this.#_(F,$,D);continue}if(X===F.getTime()){if($==="Add"||F.getMilliseconds()===0)F.applyDateOperation($,uD.TimeUnit.Second,this.#F.hour.values.length);continue}break}if(J>ZC)throw Error(PC.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE);if(F.getMilliseconds()!==0)F.setMilliseconds(0);return this.#X=F,F}[Symbol.iterator](){return{next:()=>{return{value:this.#U(),done:!this.hasNext()}}}}}PC.CronExpression=D2;PC.default=D2});var LC=b((zC)=>{Object.defineProperty(zC,"__esModule",{value:!0});zC.seededRandom=ub;function gb(D){let $=2166136261;for(let F=0;F<D.length;F++)$^=D.charCodeAt(F),$=Math.imul($,16777619);return()=>$>>>0}function yb(D){return()=>{let $=D+=1831565813;return $=Math.imul($^$>>>15,$|1),$^=$+Math.imul($^$>>>7,$|61),(($^$>>>14)>>>0)/4294967296}}function ub(D){let $=D?gb(D)():Math.floor(Math.random()*10000000000);return yb($)}});var P5=b((jC)=>{Object.defineProperty(jC,"__esModule",{value:!0});jC.CronExpressionParser=jC.DayOfWeek=jC.Months=jC.CronUnit=jC.PredefinedExpressions=void 0;var pb=aJ(),cb=eJ(),lb=LC(),$2=Z5(),DG;(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"})(DG||(jC.PredefinedExpressions=DG={}));var F2;(function(D){D.Second="Second",D.Minute="Minute",D.Hour="Hour",D.DayOfMonth="DayOfMonth",D.Month="Month",D.DayOfWeek="DayOfWeek"})(F2||(jC.CronUnit=F2={}));var $G;(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"})($G||(jC.Months=$G={}));var FG;(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"})(FG||(jC.DayOfWeek=FG={}));class f0{static parse(D,$={}){let{strict:F=!1,hashSeed:X}=$,J=(0,lb.seededRandom)(X);D=DG[D]||D;let Y=f0.#D(D,F);if(!(Y.dayOfMonth==="*"||Y.dayOfWeek==="*"||!F))throw Error("Cannot use both dayOfMonth and dayOfWeek together in strict mode!");let G=f0.#$(F2.Second,Y.second,$2.CronSecond.constraints,J),B=f0.#$(F2.Minute,Y.minute,$2.CronMinute.constraints,J),H=f0.#$(F2.Hour,Y.hour,$2.CronHour.constraints,J),W=f0.#$(F2.Month,Y.month,$2.CronMonth.constraints,J),V=f0.#$(F2.DayOfMonth,Y.dayOfMonth,$2.CronDayOfMonth.constraints,J),{dayOfWeek:_,nthDayOfWeek:U}=f0.#V(Y.dayOfWeek),A=f0.#$(F2.DayOfWeek,_,$2.CronDayOfWeek.constraints,J),O=new pb.CronFieldCollection({second:new $2.CronSecond(G,{rawValue:Y.second}),minute:new $2.CronMinute(B,{rawValue:Y.minute}),hour:new $2.CronHour(H,{rawValue:Y.hour}),dayOfMonth:new $2.CronDayOfMonth(V,{rawValue:Y.dayOfMonth}),month:new $2.CronMonth(W,{rawValue:Y.month}),dayOfWeek:new $2.CronDayOfWeek(A,{rawValue:Y.dayOfWeek,nthDayOfWeek:U})});return new cb.CronExpression(O,{...$,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,Y,G,B,H,W]=F;return{second:J,minute:Y,hour:G,dayOfMonth:B,month:H,dayOfWeek:W}}static#$(D,$,F,X){if(D===F2.Month||D===F2.DayOfWeek)$=$.replace(/[a-z]{3}/gi,(J)=>{J=J.toLowerCase();let Y=$G[J]||FG[J];if(Y===void 0)throw Error(`Validation error, cannot resolve alias "${J}"`);return Y.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,Y,G,B)=>{if(Y&&G&&B){let H=parseInt(Y,10),W=parseInt(G,10),V=parseInt(B,10);if(H>W)throw Error(`Invalid range: ${H}-${W}, min > max`);if(V<=0)throw Error(`Invalid step: ${V}, must be positive`);let _=Math.max(H,$.min),U=Math.floor(X*V),A=[];for(let O=Math.floor(_/V)*V+U;O<=W;O+=V)if(O>=_)A.push(O);return A.join(",")}else if(Y&&G){let H=parseInt(Y,10),W=parseInt(G,10);if(H>W)throw Error(`Invalid range: ${H}-${W}, min > max`);return String(Math.floor(X*(W-H+1))+H)}else if(B){let H=parseInt(B,10);if(H<=0)throw Error(`Invalid step: ${H}, must be positive`);let W=Math.floor(X*H),V=[];for(let _=Math.floor($.min/H)*H+W;_<=$.max;_+=H)if(_>=$.min)V.push(_);return V.join(",")}else return String(Math.floor(X*($.max-$.min+1)+$.min))})}static#J(D,$,F){let X=[];function J(G,B){if(Array.isArray(G))X.push(...G);else if(f0.#_(B,G))X.push(G);else{let H=parseInt(G.toString(),10);if(!(H>=B.min&&H<=B.max))throw Error(`Constraint error, got value ${G} expected range ${B.min}-${B.max}`);X.push(D===F2.DayOfWeek?H%7:G)}}return $.split(",").forEach((G)=>{if(!(G.length>0))throw Error("Invalid list value format");J(f0.#F(D,G,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 f0.#Y(D,X[0],parseInt(X[1],10),F)}return f0.#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===F2.DayOfWeek&&F%7===0)J.push(0);for(let Y=$;Y<=F;Y+=X)if(J.indexOf(Y)===-1)J.push(Y);return J}static#Y(D,$,F,X){let J=$.split("-");if(J.length<=1)return isNaN(+$)?$:+$;let[Y,G]=J.map((B)=>parseInt(B,10));return this.#W(Y,G,X),this.#H(F),this.#B(D,Y,G,F)}static#V(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#_(D,$){return D.chars.some((F)=>$.toString().includes(F))}}jC.CronExpressionParser=f0});var TC=b((c2)=>{var rb=c2&&c2.__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]}),ob=c2&&c2.__setModuleDefault||(Object.create?function(D,$){Object.defineProperty(D,"default",{enumerable:!0,value:$})}:function(D,$){D.default=$}),ab=c2&&c2.__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")rb(F,$,X[J])}return ob(F,$),F}}();Object.defineProperty(c2,"__esModule",{value:!0});c2.CronFileParser=void 0;var tb=P5();class I9{static async parseFile(D){let{readFile:$}=await Promise.resolve().then(()=>ab(U8("fs/promises"))),F=await $(D,"utf8");return I9.#D(F)}static parseFileSync(D){let{readFileSync:$}=U8("fs"),F=$(D,"utf8");return I9.#D(F)}static#D(D){let $=D.split(`
125
+ `),F={variables:{},expressions:[],errors:{}};for(let X of $){let J=X.trim();if(J.length===0||J.startsWith("#"))continue;let Y=J.match(/^(.*)=(.*)$/);if(Y){let[,G,B]=Y;F.variables[G]=B.replace(/["']/g,"");continue}try{let G=I9.#$(J);F.expressions.push(G.interval)}catch(G){F.errors[J]=G}}return F}static#$(D){let $=D.split(" ");return{interval:tb.CronExpressionParser.parse($.slice(0,5).join(" ")),command:$.slice(5,$.length)}}}c2.CronFileParser=I9});var wC=b((J0)=>{var eb=J0&&J0.__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]}),Dk=J0&&J0.__exportStar||function(D,$){for(var F in D)if(F!=="default"&&!Object.prototype.hasOwnProperty.call($,F))eb($,D,F)};Object.defineProperty(J0,"__esModule",{value:!0});J0.CronFileParser=J0.CronExpressionParser=J0.CronExpression=J0.CronFieldCollection=J0.CronDate=void 0;var $k=P5(),Fk=M5();Object.defineProperty(J0,"CronDate",{enumerable:!0,get:function(){return Fk.CronDate}});var Xk=aJ();Object.defineProperty(J0,"CronFieldCollection",{enumerable:!0,get:function(){return Xk.CronFieldCollection}});var Jk=eJ();Object.defineProperty(J0,"CronExpression",{enumerable:!0,get:function(){return Jk.CronExpression}});var Gk=P5();Object.defineProperty(J0,"CronExpressionParser",{enumerable:!0,get:function(){return Gk.CronExpressionParser}});var Yk=TC();Object.defineProperty(J0,"CronFileParser",{enumerable:!0,get:function(){return Yk.CronFileParser}});Dk(Z5(),J0);J0.default=$k.CronExpressionParser});class T9{deps;handle=null;ticking=!1;constructor(D){this.deps=D}start(D=Bk){if(this.handle!==null)return;this.handle=setInterval(()=>{this.tick().catch(($)=>E.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 $=q5(D.expression,new Date),F=crypto.randomUUID(),X=new Date().toISOString(),J=D.enabled??!0,Y=D.accountId??Hk;if(Y.length===0)throw Error("cron job accountId \u4E0D\u80FD\u4E3A\u7A7A\u5B57\u7B26\u4E32");let G={id:F,expression:D.expression,prompt:D.prompt,channel:D.channel,chatId:D.chatId,accountId:Y,enabled:J,lastRunAt:null,nextRunAt:J?$.toISOString():null,createdAt:X,updatedAt:X};g().insert(ID).values(G).run();let B=g().select().from(ID).where(k(ID.id,F)).get();return N5(B)}async listJobs(){return g().select().from(ID).all().map(N5)}async getJob(D){let $=g().select().from(ID).where(k(ID.id,D)).get();return $?N5($):null}async removeJob(D){let $=g();if(!$.select({id:ID.id}).from(ID).where(k(ID.id,D)).get())return{removed:!1};return $.delete(ID).where(k(ID.id,D)).run(),{removed:!0}}async updateJob(D,$){let F=g().select().from(ID).where(k(ID.id,D)).get();if(!F)return null;let X={updatedAt:new Date().toISOString()},J=!1;if($.expression!==void 0)q5($.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 G=$.enabled??F.enabled,B=$.expression??F.expression;X.nextRunAt=G?q5(B,new Date).toISOString():null}g().update(ID).set(X).where(k(ID.id,D)).run();let Y=g().select().from(ID).where(k(ID.id,D)).get();return N5(Y)}async tick(D=new Date){if(this.ticking)return;this.ticking=!0;try{let $=D.toISOString(),F=g().select().from(ID).where(pD(k(ID.enabled,!0),C4(ID.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=q5(D.expression,$).toISOString()}catch(Y){E.warn(`[cron ${D.id}] expression "${D.expression}" \u5F02\u5E38\uFF0C\u505C\u6B62\u540E\u7EED\u89E6\u53D1: ${String(Y)}`)}let J=$.toISOString();g().update(ID).set({lastRunAt:J,nextRunAt:X,updatedAt:J}).where(k(ID.id,D.id)).run();try{await this.deps.getOrchestrator().ingest(F)}catch(Y){E.warn(`[cron ${D.id}] orchestrator.ingest \u5931\u8D25: ${String(Y)}`)}}}function q5(D,$){return SC.CronExpressionParser.parse(D,{currentDate:$}).next().toDate()}function N5(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 SC,Bk=60000,Hk="sys:cron";var XG=M(()=>{bD();GD();A0();SC=fq(wC(),1)});class w9{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){E.warn(`[bus] listener for ${F.type} threw:`,J)}}on(D){return this.listeners.add(D),()=>{this.listeners.delete(D)}}}var JG=M(()=>{GD()});import kC from"fs/promises";import Wk from"os";import X2 from"path";import z5 from"process";function hC(D=vC){let $=new Map;async function F(H){let W=new Date(D.now()).toISOString(),V=await D.resolveBinary(H.binaryName),_={kind:H.kind,status:"not-found",checkedAt:W};if(H.agent)_.agent=H.agent;if(!V)return{..._,authHint:"binary-not-on-path"};let U=D.homedir();for(let A of H.authPaths(U))if(await D.pathExists(A))return{..._,status:"ready",binaryPath:V,authHint:"auth-file-present"};return{..._,status:"login-required",binaryPath:V,authHint:"auth-file-missing"}}async function X(H,W){let V=$.get(H.key);if(!W&&V&&V.expiresAt>D.now())return V.value;let _=await F(H);return $.set(H.key,{value:_,expiresAt:D.now()+Qk}),_}function J(H){return{kind:H,status:"ready",checkedAt:new Date(D.now()).toISOString(),authHint:"no-cli-required"}}async function Y(H={}){let W=H.refresh??!1,V=[];for(let _ of fC)V.push(J(_));for(let _ of bC)V.push(await X(_,W));return V}async function G(H,W={}){let V=W.refresh??!1;if(fC.includes(H))return J(H);let _=bC.filter((A)=>A.kind===H);if(_.length===0)return{kind:H,status:"not-found",checkedAt:new Date(D.now()).toISOString(),authHint:"unknown-engine"};let U=W.agent?_.find((A)=>A.agent===W.agent)??_[0]:_[0];return X(U,V)}function B(){$.clear()}return{probe:G,probeAll:Y,clearCache:B}}function y6(){if(!S9)S9=hC();return S9}function xC(D){return S9=hC(D),S9}function GG(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 gC(D,$=vC){let F=$.homedir(),X=D==="gemini"?".gemini":".qwen",J=X2.join(F,X,"oauth_creds.json"),Y=X2.join(F,X,"settings.json");if(await $.pathExists(J))return GG("login","oauth_creds.json present");if(await $.pathExists(Y))return GG("install","settings.json present, login pending");return GG("none",`~/${X} not present`)}function yC(){return gC("gemini")}function uC(){return gC("qwen")}async function Vk(D){let $=z5.env.PATH??"",F=z5.platform==="win32"?";":":",X=z5.platform==="win32"?(z5.env.PATHEXT??".EXE").split(";"):[""];for(let J of $.split(F)){if(!J)continue;for(let Y of X){let G=X2.join(J,`${D}${Y.toLowerCase()}`);try{if((await kC.stat(G)).isFile())return G}catch{}}}return null}async function _k(D){try{return await kC.stat(D),!0}catch{return!1}}var Qk=600000,vC,fC,bC,S9=null;var L5=M(()=>{vC={resolveBinary:Vk,pathExists:_k,homedir:()=>Wk.homedir(),now:()=>Date.now()},fC=["http","mcp","cli"],bC=[{key:"claude-code",kind:"claude-code",binaryName:"claude",authPaths:(D)=>[X2.join(D,".claude.json"),X2.join(D,".claude","config.json")]},{key:"acp:gemini",kind:"acp",agent:"gemini",binaryName:"gemini",authPaths:(D)=>[X2.join(D,".gemini","oauth_creds.json")]},{key:"acp:qwen",kind:"acp",agent:"qwen",binaryName:"qwen",authPaths:(D)=>[X2.join(D,".qwen","oauth_creds.json"),X2.join(D,".qwen","settings.json")]},{key:"codex",kind:"codex",binaryName:"codex",authPaths:(D)=>[X2.join(D,".codex","auth.json")]},{key:"cursor",kind:"cursor",binaryName:"cursor-agent",authPaths:(D)=>[X2.join(D,".cursor","cli-config.json"),X2.join(D,".cursor-agent","auth.json"),X2.join(D,".cursor","auth.json")]}]});class YG{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!==Uk){E.warn(`[gateway-client ${this.deps.options.workerId}] send dropped: socket not open`);return}try{$.send(jD(D))}catch(F){E.warn(`[gateway-client ${this.deps.options.workerId}] send failed: ${String(F)}`)}}openSocket(){let{url:D,workerId:$}=this.deps.options;E.info(`[gateway-client ${$}] connecting to ${D}`);let F;try{F=new this.WebSocketCtor(D)}catch(X){E.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}:{}},Y={type:"connect",role:X1.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(jD(Y))}catch(G){E.warn(`[gateway-client ${$}] connect frame send failed: ${String(G)}`);return}this.reconnectDelay=this.deps.options.initialReconnectDelayMs,E.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),Y=x2(J);if(!Y.ok){E.warn(`[gateway-client ${$}] drop malformed frame: ${Y.error}`);return}let G=Y.frame;if(G.type==="event"&&G.name===DD.ENROLLMENT_OTP){let B=d7.safeParse(G.payload);if(!B.success){E.warn(`[gateway-client ${$}] enrollment.otp payload invalid: ${B.error.message}`);return}try{this.deps.onEnrollmentOtp?.(B.data)}catch(H){E.error(`[gateway-client ${$}] onEnrollmentOtp threw: ${String(H)}`)}return}if(G.type==="event"&&G.name===DD.ENROLLMENT_APPROVED){let B=i7.safeParse(G.payload);if(!B.success){E.warn(`[gateway-client ${$}] enrollment.approved payload invalid: ${B.error.message}`);return}this.enrolledViaOtp=!0;try{this.deps.onEnrollmentApproved?.(B.data)}catch(H){E.error(`[gateway-client ${$}] onEnrollmentApproved threw: ${String(H)}`)}return}try{this.deps.onFrame(G)}catch(B){E.error(`[gateway-client ${$}] onFrame threw: ${String(B)}`)}},F.onerror=(X)=>{E.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){E.info(`[gateway-client ${this.deps.options.workerId}] reconnect disabled, giving up`);return}let D=Math.min(this.reconnectDelay,this.deps.options.maxReconnectDelayMs);E.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 Uk=1;var mC=M(()=>{D0();GD()});function pC(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 UD=b((Zk)=>{var BG=Symbol.for("yaml.alias"),cC=Symbol.for("yaml.document"),j5=Symbol.for("yaml.map"),lC=Symbol.for("yaml.pair"),HG=Symbol.for("yaml.scalar"),I5=Symbol.for("yaml.seq"),V8=Symbol.for("yaml.node.type"),Ak=(D)=>!!D&&typeof D==="object"&&D[V8]===BG,Kk=(D)=>!!D&&typeof D==="object"&&D[V8]===cC,Ck=(D)=>!!D&&typeof D==="object"&&D[V8]===j5,Ok=(D)=>!!D&&typeof D==="object"&&D[V8]===lC,dC=(D)=>!!D&&typeof D==="object"&&D[V8]===HG,Rk=(D)=>!!D&&typeof D==="object"&&D[V8]===I5;function iC(D){if(D&&typeof D==="object")switch(D[V8]){case j5:case I5:return!0}return!1}function Ek(D){if(D&&typeof D==="object")switch(D[V8]){case BG:case j5:case HG:case I5:return!0}return!1}var Mk=(D)=>(dC(D)||iC(D))&&!!D.anchor;Zk.ALIAS=BG;Zk.DOC=cC;Zk.MAP=j5;Zk.NODE_TYPE=V8;Zk.PAIR=lC;Zk.SCALAR=HG;Zk.SEQ=I5;Zk.hasAnchor=Mk;Zk.isAlias=Ak;Zk.isCollection=iC;Zk.isDocument=Kk;Zk.isMap=Ck;Zk.isNode=Ek;Zk.isPair=Ok;Zk.isScalar=dC;Zk.isSeq=Rk});var f9=b((gk)=>{var tD=UD(),b0=Symbol("break visit"),nC=Symbol("skip children"),l2=Symbol("remove node");function T5(D,$){let F=sC($);if(tD.isDocument(D)){if(u6(null,D.contents,F,Object.freeze([D]))===l2)D.contents=null}else u6(null,D,F,Object.freeze([]))}T5.BREAK=b0;T5.SKIP=nC;T5.REMOVE=l2;function u6(D,$,F,X){let J=rC(D,$,F,X);if(tD.isNode(J)||tD.isPair(J))return oC(D,X,J),u6(D,J,F,X);if(typeof J!=="symbol"){if(tD.isCollection($)){X=Object.freeze(X.concat($));for(let Y=0;Y<$.items.length;++Y){let G=u6(Y,$.items[Y],F,X);if(typeof G==="number")Y=G-1;else if(G===b0)return b0;else if(G===l2)$.items.splice(Y,1),Y-=1}}else if(tD.isPair($)){X=Object.freeze(X.concat($));let Y=u6("key",$.key,F,X);if(Y===b0)return b0;else if(Y===l2)$.key=null;let G=u6("value",$.value,F,X);if(G===b0)return b0;else if(G===l2)$.value=null}}return J}async function w5(D,$){let F=sC($);if(tD.isDocument(D)){if(await m6(null,D.contents,F,Object.freeze([D]))===l2)D.contents=null}else await m6(null,D,F,Object.freeze([]))}w5.BREAK=b0;w5.SKIP=nC;w5.REMOVE=l2;async function m6(D,$,F,X){let J=await rC(D,$,F,X);if(tD.isNode(J)||tD.isPair(J))return oC(D,X,J),m6(D,J,F,X);if(typeof J!=="symbol"){if(tD.isCollection($)){X=Object.freeze(X.concat($));for(let Y=0;Y<$.items.length;++Y){let G=await m6(Y,$.items[Y],F,X);if(typeof G==="number")Y=G-1;else if(G===b0)return b0;else if(G===l2)$.items.splice(Y,1),Y-=1}}else if(tD.isPair($)){X=Object.freeze(X.concat($));let Y=await m6("key",$.key,F,X);if(Y===b0)return b0;else if(Y===l2)$.key=null;let G=await m6("value",$.value,F,X);if(G===b0)return b0;else if(G===l2)$.value=null}}return J}function sC(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 rC(D,$,F,X){if(typeof F==="function")return F(D,$,X);if(tD.isMap($))return F.Map?.(D,$,X);if(tD.isSeq($))return F.Seq?.(D,$,X);if(tD.isPair($))return F.Pair?.(D,$,X);if(tD.isScalar($))return F.Scalar?.(D,$,X);if(tD.isAlias($))return F.Alias?.(D,$,X);return}function oC(D,$,F){let X=$[$.length-1];if(tD.isCollection(X))X.items[D]=F;else if(tD.isPair(X))if(D==="key")X.key=F;else X.value=F;else if(tD.isDocument(X))X.contents=F;else{let J=tD.isAlias(X)?"alias":"scalar";throw Error(`Cannot replace node with ${J} parent`)}}gk.visit=T5;gk.visitAsync=w5});var WG=b((lk)=>{var aC=UD(),mk=f9(),pk={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},ck=(D)=>D.replace(/[!,[\]{}]/g,($)=>pk[$]);class J2{constructor(D,$){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},J2.defaultYaml,D),this.tags=Object.assign({},J2.defaultTags,$)}clone(){let D=new J2(this.yaml,this.tags);return D.docStart=this.docStart,D}atDocument(){let D=new J2(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:J2.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},J2.defaultTags);break}return D}add(D,$){if(this.atNextDocument)this.yaml={explicit:J2.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},J2.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,Y]=F;return this.tags[J]=Y,!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 Y=/^\d+\.\d+$/.test(J);return $(6,`Unsupported YAML version ${J}`,Y),!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 Y=D.slice(2,-1);if(Y==="!"||Y==="!!")return $(`Verbatim tags aren't resolved, so ${D} is invalid.`),null;if(D[D.length-1]!==">")$("Verbatim tags must end with a >");return Y}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(Y){return $(String(Y)),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 $+ck(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&&aC.isNode(D.contents)){let J={};mk.visit(D.contents,(Y,G)=>{if(aC.isNode(G)&&G.tag)J[G.tag]=!0}),X=Object.keys(J)}else X=[];for(let[J,Y]of F){if(J==="!!"&&Y==="tag:yaml.org,2002:")continue;if(!D||X.some((G)=>G.startsWith(Y)))$.push(`%TAG ${J} ${Y}`)}return $.join(`
126
+ `)}}J2.defaultYaml={explicit:!1,version:"1.2"};J2.defaultTags={"!!":"tag:yaml.org,2002:"};lk.Directives=J2});var S5=b((rk)=>{var tC=UD(),ik=f9();function nk(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 eC(D){let $=new Set;return ik.visit(D,{Value(F,X){if(X.anchor)$.add(X.anchor)}}),$}function DO(D,$){for(let F=1;;++F){let X=`${D}${F}`;if(!$.has(X))return X}}function sk(D,$){let F=[],X=new Map,J=null;return{onAnchor:(Y)=>{F.push(Y),J??(J=eC(D));let G=DO($,J);return J.add(G),G},setAnchors:()=>{for(let Y of F){let G=X.get(Y);if(typeof G==="object"&&G.anchor&&(tC.isScalar(G.node)||tC.isCollection(G.node)))G.node.anchor=G.anchor;else{let B=Error("Failed to resolve repeated object (this should not happen)");throw B.source=Y,B}}},sourceObjects:X}}rk.anchorIsValid=nk;rk.anchorNames=eC;rk.createNodeAnchors=sk;rk.findNewAnchor=DO});var QG=b((Dv)=>{function b9(D,$,F,X){if(X&&typeof X==="object")if(Array.isArray(X))for(let J=0,Y=X.length;J<Y;++J){let G=X[J],B=b9(D,X,String(J),G);if(B===void 0)delete X[J];else if(B!==G)X[J]=B}else if(X instanceof Map)for(let J of Array.from(X.keys())){let Y=X.get(J),G=b9(D,X,J,Y);if(G===void 0)X.delete(J);else if(G!==Y)X.set(J,G)}else if(X instanceof Set)for(let J of Array.from(X)){let Y=b9(D,X,J,J);if(Y===void 0)X.delete(J);else if(Y!==J)X.delete(J),X.add(Y)}else for(let[J,Y]of Object.entries(X)){let G=b9(D,X,J,Y);if(G===void 0)delete X[J];else if(G!==Y)X[J]=G}return D.call($,F,X)}Dv.applyReviver=b9});var h8=b((Xv)=>{var Fv=UD();function $O(D,$,F){if(Array.isArray(D))return D.map((X,J)=>$O(X,String(J),F));if(D&&typeof D.toJSON==="function"){if(!F||!Fv.hasAnchor(D))return D.toJSON($,F);let X={aliasCount:0,count:1,res:void 0};F.anchors.set(D,X),F.onCreate=(Y)=>{X.res=Y,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}Xv.toJS=$O});var f5=b((Bv)=>{var Gv=QG(),FO=UD(),Yv=h8();class XO{constructor(D){Object.defineProperty(this,FO.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(!FO.isDocument(D))throw TypeError("A document argument is required");let Y={anchors:new Map,doc:D,keep:!0,mapAsMap:$===!0,mapKeyWarned:!1,maxAliasCount:typeof F==="number"?F:100},G=Yv.toJS(this,"",Y);if(typeof X==="function")for(let{count:B,res:H}of Y.anchors.values())X(H,B);return typeof J==="function"?Gv.applyReviver(J,{"":G},"",G):G}}Bv.NodeBase=XO});var k9=b((Uv)=>{var Wv=S5(),Qv=f9(),p6=UD(),Vv=f5(),_v=h8();class JO extends Vv.NodeBase{constructor(D){super(p6.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=[],Qv.visit(D,{Node:(J,Y)=>{if(p6.isAlias(Y)||p6.hasAnchor(Y))F.push(Y)}}),$)$.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}=$,Y=this.resolve(X,$);if(!Y){let B=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(B)}let G=F.get(Y);if(!G)_v.toJS(Y,null,$),G=F.get(Y);if(G?.res===void 0)throw ReferenceError("This should not happen: Alias anchor was not resolved?");if(J>=0){if(G.count+=1,G.aliasCount===0)G.aliasCount=b5(X,Y,F);if(G.count*G.aliasCount>J)throw ReferenceError("Excessive alias count indicates a resource exhaustion attack")}return G.res}toString(D,$,F){let X=`*${this.source}`;if(D){if(Wv.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 b5(D,$,F){if(p6.isAlias($)){let X=$.resolve(D),J=F&&X&&F.get(X);return J?J.count*J.aliasCount:0}else if(p6.isCollection($)){let X=0;for(let J of $.items){let Y=b5(D,J,F);if(Y>X)X=Y}return X}else if(p6.isPair($)){let X=b5(D,$.key,F),J=b5(D,$.value,F);return Math.max(X,J)}return 1}Uv.Alias=JO});var sD=b((Ev)=>{var Kv=UD(),Cv=f5(),Ov=h8(),Rv=(D)=>!D||typeof D!=="function"&&typeof D!=="object";class q1 extends Cv.NodeBase{constructor(D){super(Kv.SCALAR);this.value=D}toJSON(D,$){return $?.keep?this.value:Ov.toJS(this.value,D,$)}toString(){return String(this.value)}}q1.BLOCK_FOLDED="BLOCK_FOLDED";q1.BLOCK_LITERAL="BLOCK_LITERAL";q1.PLAIN="PLAIN";q1.QUOTE_DOUBLE="QUOTE_DOUBLE";q1.QUOTE_SINGLE="QUOTE_SINGLE";Ev.Scalar=q1;Ev.isScalarValue=Rv});var v9=b((Lv)=>{var Pv=k9(),N1=UD(),GO=sD(),qv="tag:yaml.org,2002:";function Nv(D,$,F){if($){let X=F.filter((Y)=>Y.tag===$),J=X.find((Y)=>!Y.format)??X[0];if(!J)throw Error(`Tag ${$} not found`);return J}return F.find((X)=>X.identify?.(D)&&!X.format)}function zv(D,$,F){if(N1.isDocument(D))D=D.contents;if(N1.isNode(D))return D;if(N1.isPair(D)){let _=F.schema[N1.MAP].createNode?.(F.schema,null,F);return _.items.push(D),_}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:Y,schema:G,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 Pv.Alias(H.anchor);else H={anchor:null,node:null},B.set(D,H);if($?.startsWith("!!"))$=qv+$.slice(2);let W=Nv(D,$,G.tags);if(!W){if(D&&typeof D.toJSON==="function")D=D.toJSON();if(!D||typeof D!=="object"){let _=new GO.Scalar(D);if(H)H.node=_;return _}W=D instanceof Map?G[N1.MAP]:(Symbol.iterator in Object(D))?G[N1.SEQ]:G[N1.MAP]}if(Y)Y(W),delete F.onTagObj;let V=W?.createNode?W.createNode(F.schema,D,F):typeof W?.nodeClass?.from==="function"?W.nodeClass.from(F.schema,D,F):new GO.Scalar(D);if($)V.tag=$;else if(!W.default)V.tag=W.tag;if(H)H.node=V;return V}Lv.createNode=zv});var k5=b((wv)=>{var Iv=v9(),d2=UD(),Tv=f5();function VG(D,$,F){let X=F;for(let J=$.length-1;J>=0;--J){let Y=$[J];if(typeof Y==="number"&&Number.isInteger(Y)&&Y>=0){let G=[];G[Y]=X,X=G}else X=new Map([[Y,X]])}return Iv.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 YO=(D)=>D==null||typeof D==="object"&&!!D[Symbol.iterator]().next().done;class BO extends Tv.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)=>d2.isNode(F)||d2.isPair(F)?F.clone(D):F),this.range)$.range=this.range.slice();return $}addIn(D,$){if(YO(D))this.add($);else{let[F,...X]=D,J=this.get(F,!0);if(d2.isCollection(J))J.addIn(X,$);else if(J===void 0&&this.schema)this.set(F,VG(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(d2.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!$&&d2.isScalar(J)?J.value:J;else return d2.isCollection(J)?J.getIn(X,$):void 0}hasAllNullValues(D){return this.items.every(($)=>{if(!d2.isPair($))return!1;let F=$.value;return F==null||D&&d2.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 d2.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(d2.isCollection(J))J.setIn(X,$);else if(J===void 0&&this.schema)this.set(F,VG(this.schema,X,$));else throw Error(`Expected YAML collection at ${F}. Remaining path: ${X}`)}}}wv.Collection=BO;wv.collectionFromPath=VG;wv.isEmptyPath=YO});var h9=b((hv)=>{var kv=(D)=>D.replace(/^(?!$)(?: $)?/gm,"#");function _G(D,$){if(/^\n+$/.test(D))return D.substring(1);return $?D.replace(/^(?! *$)/gm,$):D}var vv=(D,$,F)=>D.endsWith(`
127
+ `)?_G(F,$):F.includes(`
128
+ `)?`
129
+ `+_G(F,$):(D.endsWith(" ")?"":" ")+F;hv.indentComment=_G;hv.lineComment=vv;hv.stringifyComment=kv});var WO=b((mv)=>{function uv(D,$,F="flow",{indentAtStart:X,lineWidth:J=80,minContentWidth:Y=20,onFold:G,onOverflow:B}={}){if(!J||J<0)return D;if(J<Y)Y=0;let H=Math.max(1+Y,1+J-$.length);if(D.length<=H)return D;let W=[],V={},_=J-$.length;if(typeof X==="number")if(X>J-Math.max(2,Y))W.push(0);else _=J-X;let U=void 0,A=void 0,O=!1,C=-1,K=-1,R=-1;if(F==="block"){if(C=HO(D,C,$.length),C!==-1)_=C+H}for(let q;q=D[C+=1];){if(F==="quoted"&&q==="\\"){switch(K=C,D[C+1]){case"x":C+=3;break;case"u":C+=5;break;case"U":C+=9;break;default:C+=1}R=C}if(q===`
130
+ `){if(F==="block")C=HO(D,C,$.length);_=C+$.length+H,U=void 0}else{if(q===" "&&A&&A!==" "&&A!==`
131
+ `&&A!=="\t"){let w=D[C+1];if(w&&w!==" "&&w!==`
132
+ `&&w!=="\t")U=C}if(C>=_)if(U)W.push(U),_=U+H,U=void 0;else if(F==="quoted"){while(A===" "||A==="\t")A=q,q=D[C+=1],O=!0;let w=C>R+1?C-2:K-1;if(V[w])return D;W.push(w),V[w]=!0,_=w+H,U=void 0}else O=!0}A=q}if(O&&B)B();if(W.length===0)return D;if(G)G();let P=D.slice(0,W[0]);for(let q=0;q<W.length;++q){let w=W[q],S=W[q+1]||D.length;if(w===0)P=`
133
+ ${$}${D.slice(0,S)}`;else{if(F==="quoted"&&V[w])P+=`${D[w]}\\`;P+=`
134
+ ${$}${D.slice(w+1,S)}`}}return P}function HO(D,$,F){let X=$,J=$+1,Y=D[J];while(Y===" "||Y==="\t")if($<J+F)Y=D[++$];else{do Y=D[++$];while(Y&&Y!==`
135
+ `);X=$,J=$+1,Y=D[J]}return X}mv.FOLD_BLOCK="block";mv.FOLD_FLOW="flow";mv.FOLD_QUOTED="quoted";mv.foldFlowLines=uv});var g9=b((rv)=>{var j2=sD(),x8=WO(),h5=(D,$)=>({indentAtStart:$?D.indent.length:D.indentAtStart,lineWidth:D.options.lineWidth,minContentWidth:D.options.minContentWidth}),x5=(D)=>/^(%|---|\.\.\.)/m.test(D);function iv(D,$,F){if(!$||$<0)return!1;let X=$-F,J=D.length;if(J<=X)return!1;for(let Y=0,G=0;Y<J;++Y)if(D[Y]===`
136
+ `){if(Y-G>X)return!0;if(G=Y+1,J-G<=X)return!1}return!0}function x9(D,$){let F=JSON.stringify(D);if($.options.doubleQuotedAsJSON)return F;let{implicitKey:X}=$,J=$.options.doubleQuotedMinMultiLineLength,Y=$.indent||(x5(D)?" ":""),G="",B=0;for(let H=0,W=F[H];W;W=F[++H]){if(W===" "&&F[H+1]==="\\"&&F[H+2]==="n")G+=F.slice(B,H)+"\\ ",H+=1,B=H,W="\\";if(W==="\\")switch(F[H+1]){case"u":{G+=F.slice(B,H);let V=F.substr(H+2,4);switch(V){case"0000":G+="\\0";break;case"0007":G+="\\a";break;case"000b":G+="\\v";break;case"001b":G+="\\e";break;case"0085":G+="\\N";break;case"00a0":G+="\\_";break;case"2028":G+="\\L";break;case"2029":G+="\\P";break;default:if(V.substr(0,2)==="00")G+="\\x"+V.substr(2);else G+=F.substr(H,6)}H+=5,B=H+1}break;case"n":if(X||F[H+2]==='"'||F.length<J)H+=1;else{G+=F.slice(B,H)+`
137
+
138
+ `;while(F[H+2]==="\\"&&F[H+3]==="n"&&F[H+4]!=='"')G+=`
139
+ `,H+=2;if(G+=Y,F[H+2]===" ")G+="\\";H+=1,B=H+1}break;default:H+=1}}return G=B?G+F.slice(B):F,X?G:x8.foldFlowLines(G,Y,x8.FOLD_QUOTED,h5($,!1))}function UG(D,$){if($.options.singleQuote===!1||$.implicitKey&&D.includes(`
140
+ `)||/[ \t]\n|\n[ \t]/.test(D))return x9(D,$);let F=$.indent||(x5(D)?" ":""),X="'"+D.replace(/'/g,"''").replace(/\n+/g,`$&
141
+ ${F}`)+"'";return $.implicitKey?X:x8.foldFlowLines(X,F,x8.FOLD_FLOW,h5($,!1))}function c6(D,$){let{singleQuote:F}=$.options,X;if(F===!1)X=x9;else{let J=D.includes('"'),Y=D.includes("'");if(J&&!Y)X=UG;else if(Y&&!J)X=x9;else X=F?UG:x9}return X(D,$)}var AG;try{AG=new RegExp(`(^|(?<!
142
+ ))
143
+ +(?!
144
+ |$)`,"g")}catch{AG=/\n+(?!\n|$)/g}function v5({comment:D,type:$,value:F},X,J,Y){let{blockQuote:G,commentString:B,lineWidth:H}=X.options;if(!G||/\n[\t ]+$/.test(F))return c6(F,X);let W=X.indent||(X.forceBlockIndent||x5(F)?" ":""),V=G==="literal"?!0:G==="folded"||$===j2.Scalar.BLOCK_FOLDED?!1:$===j2.Scalar.BLOCK_LITERAL?!0:!iv(F,H,W.length);if(!F)return V?`|
145
+ `:`>
146
+ `;let _,U;for(U=F.length;U>0;--U){let S=F[U-1];if(S!==`
147
+ `&&S!=="\t"&&S!==" ")break}let A=F.substring(U),O=A.indexOf(`
148
+ `);if(O===-1)_="-";else if(F===A||O!==A.length-1){if(_="+",Y)Y()}else _="";if(A){if(F=F.slice(0,-A.length),A[A.length-1]===`
149
+ `)A=A.slice(0,-1);A=A.replace(AG,`$&${W}`)}let C=!1,K,R=-1;for(K=0;K<F.length;++K){let S=F[K];if(S===" ")C=!0;else if(S===`
150
+ `)R=K;else break}let P=F.substring(0,R<K?R+1:K);if(P)F=F.substring(P.length),P=P.replace(/\n+/g,`$&${W}`);let w=(C?W?"2":"1":"")+_;if(D){if(w+=" "+B(D.replace(/ ?[\r\n]+/g," ")),J)J()}if(!V){let S=F.replace(/\n+/g,`
151
+ $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${W}`),L=!1,N=h5(X,!0);if(G!=="folded"&&$!==j2.Scalar.BLOCK_FOLDED)N.onOverflow=()=>{L=!0};let j=x8.foldFlowLines(`${P}${S}${A}`,W,x8.FOLD_BLOCK,N);if(!L)return`>${w}
152
+ ${W}${j}`}return F=F.replace(/\n+/g,`$&${W}`),`|${w}
153
+ ${W}${P}${F}${A}`}function nv(D,$,F,X){let{type:J,value:Y}=D,{actualString:G,implicitKey:B,indent:H,indentStep:W,inFlow:V}=$;if(B&&Y.includes(`
154
+ `)||V&&/[[\]{},]/.test(Y))return c6(Y,$);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(Y))return B||V||!Y.includes(`
155
+ `)?c6(Y,$):v5(D,$,F,X);if(!B&&!V&&J!==j2.Scalar.PLAIN&&Y.includes(`
156
+ `))return v5(D,$,F,X);if(x5(Y)){if(H==="")return $.forceBlockIndent=!0,v5(D,$,F,X);else if(B&&H===W)return c6(Y,$)}let _=Y.replace(/\n+/g,`$&
157
+ ${H}`);if(G){let U=(C)=>C.default&&C.tag!=="tag:yaml.org,2002:str"&&C.test?.test(_),{compat:A,tags:O}=$.doc.schema;if(O.some(U)||A?.some(U))return c6(Y,$)}return B?_:x8.foldFlowLines(_,H,x8.FOLD_FLOW,h5($,!1))}function sv(D,$,F,X){let{implicitKey:J,inFlow:Y}=$,G=typeof D.value==="string"?D:Object.assign({},D,{value:String(D.value)}),{type:B}=D;if(B!==j2.Scalar.QUOTE_DOUBLE){if(/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(G.value))B=j2.Scalar.QUOTE_DOUBLE}let H=(V)=>{switch(V){case j2.Scalar.BLOCK_FOLDED:case j2.Scalar.BLOCK_LITERAL:return J||Y?c6(G.value,$):v5(G,$,F,X);case j2.Scalar.QUOTE_DOUBLE:return x9(G.value,$);case j2.Scalar.QUOTE_SINGLE:return UG(G.value,$);case j2.Scalar.PLAIN:return nv(G,$,F,X);default:return null}},W=H(B);if(W===null){let{defaultKeyType:V,defaultStringType:_}=$.options,U=J&&V||_;if(W=H(U),W===null)throw Error(`Unsupported default string type ${U}`)}return W}rv.stringifyString=sv});var y9=b((Jh)=>{var av=S5(),g8=UD(),tv=h9(),ev=g9();function Dh(D,$){let F=Object.assign({blockQuote:!0,commentString:tv.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 $h(D,$){if($.tag){let J=D.filter((Y)=>Y.tag===$.tag);if(J.length>0)return J.find((Y)=>Y.format===$.format)??J[0]}let F=void 0,X;if(g8.isScalar($)){X=$.value;let J=D.filter((Y)=>Y.identify?.(X));if(J.length>1){let Y=J.filter((G)=>G.test);if(Y.length>0)J=Y}F=J.find((Y)=>Y.format===$.format)??J.find((Y)=>!Y.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 Fh(D,$,{anchors:F,doc:X}){if(!X.directives)return"";let J=[],Y=(g8.isScalar(D)||g8.isCollection(D))&&D.anchor;if(Y&&av.anchorIsValid(Y))F.add(Y),J.push(`&${Y}`);let G=D.tag??($.default?null:$.tag);if(G)J.push(X.directives.tagString(G));return J.join(" ")}function Xh(D,$,F,X){if(g8.isPair(D))return D.toString($,F,X);if(g8.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,Y=g8.isNode(D)?D:$.doc.createNode(D,{onTagObj:(H)=>J=H});J??(J=$h($.doc.schema.tags,Y));let G=Fh(Y,J,$);if(G.length>0)$.indentAtStart=($.indentAtStart??0)+G.length+1;let B=typeof J.stringify==="function"?J.stringify(Y,$,F,X):g8.isScalar(Y)?ev.stringifyString(Y,$,F,X):Y.toString($,F,X);if(!G)return B;return g8.isScalar(Y)||B[0]==="{"||B[0]==="["?`${G} ${B}`:`${G}
158
+ ${$.indent}${B}`}Jh.createStringifyContext=Dh;Jh.stringify=Xh});var _O=b((Hh)=>{var _8=UD(),QO=sD(),VO=y9(),u9=h9();function Bh({key:D,value:$},F,X,J){let{allNullValues:Y,doc:G,indent:B,indentStep:H,options:{commentString:W,indentSeq:V,simpleKeys:_}}=F,U=_8.isNode(D)&&D.comment||null;if(_){if(U)throw Error("With simple keys, key nodes cannot have comments");if(_8.isCollection(D)||!_8.isNode(D)&&typeof D==="object")throw Error("With simple keys, collection cannot be used as a key value")}let A=!_&&(!D||U&&$==null&&!F.inFlow||_8.isCollection(D)||(_8.isScalar(D)?D.type===QO.Scalar.BLOCK_FOLDED||D.type===QO.Scalar.BLOCK_LITERAL:typeof D==="object"));F=Object.assign({},F,{allNullValues:!1,implicitKey:!A&&(_||!Y),indent:B+H});let O=!1,C=!1,K=VO.stringify(D,F,()=>O=!0,()=>C=!0);if(!A&&!F.inFlow&&K.length>1024){if(_)throw Error("With simple keys, single line scalar must not span more than 1024 characters");A=!0}if(F.inFlow){if(Y||$==null){if(O&&X)X();return K===""?"?":A?`? ${K}`:K}}else if(Y&&!_||$==null&&A){if(K=`? ${K}`,U&&!O)K+=u9.lineComment(K,F.indent,W(U));else if(C&&J)J();return K}if(O)U=null;if(A){if(U)K+=u9.lineComment(K,F.indent,W(U));K=`? ${K}
159
+ ${B}:`}else if(K=`${K}:`,U)K+=u9.lineComment(K,F.indent,W(U));let R,P,q;if(_8.isNode($))R=!!$.spaceBefore,P=$.commentBefore,q=$.comment;else if(R=!1,P=null,q=null,$&&typeof $==="object")$=G.createNode($);if(F.implicitKey=!1,!A&&!U&&_8.isScalar($))F.indentAtStart=K.length+1;if(C=!1,!V&&H.length>=2&&!F.inFlow&&!A&&_8.isSeq($)&&!$.flow&&!$.tag&&!$.anchor)F.indent=F.indent.substring(2);let w=!1,S=VO.stringify($,F,()=>w=!0,()=>C=!0),L=" ";if(U||R||P){if(L=R?`
160
+ `:"",P){let N=W(P);L+=`
161
+ ${u9.indentComment(N,F.indent)}`}if(S===""&&!F.inFlow){if(L===`
162
+ `&&q)L=`
163
+
164
+ `}else L+=`
165
+ ${F.indent}`}else if(!A&&_8.isCollection($)){let N=S[0],j=S.indexOf(`
166
+ `),c=j!==-1,XD=F.inFlow??$.flow??$.items.length===0;if(c||!XD){let WD=!1;if(c&&(N==="&"||N==="!")){let d=S.indexOf(" ");if(N==="&"&&d!==-1&&d<j&&S[d+1]==="!")d=S.indexOf(" ",d+1);if(d===-1||j<d)WD=!0}if(!WD)L=`
167
+ ${F.indent}`}}else if(S===""||S[0]===`
168
+ `)L="";if(K+=L+S,F.inFlow){if(w&&X)X()}else if(q&&!w)K+=u9.lineComment(K,F.indent,W(q));else if(C&&J)J();return K}Hh.stringifyPair=Bh});var KG=b((_h)=>{var UO=U8("process");function Qh(D,...$){if(D==="debug")console.log(...$)}function Vh(D,$){if(D==="debug"||D==="warn")if(typeof UO.emitWarning==="function")UO.emitWarning($);else console.warn($)}_h.debug=Qh;_h.warn=Vh});var u5=b((Ch)=>{var m9=UD(),AO=sD(),g5="<<",y5={identify:(D)=>D===g5||typeof D==="symbol"&&D.description===g5,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new AO.Scalar(Symbol(g5)),{addToJSMap:KO}),stringify:()=>g5},Kh=(D,$)=>(y5.identify($)||m9.isScalar($)&&(!$.type||$.type===AO.Scalar.PLAIN)&&y5.identify($.value))&&D?.doc.schema.tags.some((F)=>F.tag===y5.tag&&F.default);function KO(D,$,F){if(F=D&&m9.isAlias(F)?F.resolve(D.doc):F,m9.isSeq(F))for(let X of F.items)CG(D,$,X);else if(Array.isArray(F))for(let X of F)CG(D,$,X);else CG(D,$,F)}function CG(D,$,F){let X=D&&m9.isAlias(F)?F.resolve(D.doc):F;if(!m9.isMap(X))throw Error("Merge sources must be maps or map aliases");let J=X.toJSON(null,D,Map);for(let[Y,G]of J)if($ instanceof Map){if(!$.has(Y))$.set(Y,G)}else if($ instanceof Set)$.add(Y);else if(!Object.prototype.hasOwnProperty.call($,Y))Object.defineProperty($,Y,{value:G,writable:!0,enumerable:!0,configurable:!0});return $}Ch.addMergeToJSMap=KO;Ch.isMergeKey=Kh;Ch.merge=y5});var RG=b((Nh)=>{var Mh=KG(),CO=u5(),Zh=y9(),OO=UD(),OG=h8();function Ph(D,$,{key:F,value:X}){if(OO.isNode(F)&&F.addToJSMap)F.addToJSMap(D,$,X);else if(CO.isMergeKey(D,F))CO.addMergeToJSMap(D,$,X);else{let J=OG.toJS(F,"",D);if($ instanceof Map)$.set(J,OG.toJS(X,J,D));else if($ instanceof Set)$.add(J);else{let Y=qh(F,J,D),G=OG.toJS(X,Y,D);if(Y in $)Object.defineProperty($,Y,{value:G,writable:!0,enumerable:!0,configurable:!0});else $[Y]=G}}return $}function qh(D,$,F){if($===null)return"";if(typeof $!=="object")return String($);if(OO.isNode(D)&&F?.doc){let X=Zh.createStringifyContext(F.doc,{});X.anchors=new Set;for(let Y of F.anchors.keys())X.anchors.add(Y.anchor);X.inFlow=!0,X.inStringifyKey=!0;let J=D.toString(X);if(!F.mapKeyWarned){let Y=JSON.stringify(J);if(Y.length>40)Y=Y.substring(0,36)+'..."';Mh.warn(F.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${Y}. Set mapAsMap: true to use object keys.`),F.mapKeyWarned=!0}return J}return JSON.stringify($)}Nh.addPairToJSMap=Ph});var y8=b((Th)=>{var RO=v9(),Lh=_O(),jh=RG(),m5=UD();function Ih(D,$,F){let X=RO.createNode(D,void 0,F),J=RO.createNode($,void 0,F);return new p5(X,J)}class p5{constructor(D,$=null){Object.defineProperty(this,m5.NODE_TYPE,{value:m5.PAIR}),this.key=D,this.value=$}clone(D){let{key:$,value:F}=this;if(m5.isNode($))$=$.clone(D);if(m5.isNode(F))F=F.clone(D);return new p5($,F)}toJSON(D,$){let F=$?.mapAsMap?new Map:{};return jh.addPairToJSMap($,F,this)}toString(D,$,F){return D?.doc?Lh.stringifyPair(this,D,$,F):JSON.stringify(this)}}Th.Pair=p5;Th.createPair=Ih});var EG=b((vh)=>{var z1=UD(),EO=y9(),c5=h9();function fh(D,$,F){return($.inFlow??D.flow?kh:bh)(D,$,F)}function bh({comment:D,items:$},F,{blockItemPrefix:X,flowChars:J,itemIndent:Y,onChompKeep:G,onComment:B}){let{indent:H,options:{commentString:W}}=F,V=Object.assign({},F,{indent:Y,type:null}),_=!1,U=[];for(let O=0;O<$.length;++O){let C=$[O],K=null;if(z1.isNode(C)){if(!_&&C.spaceBefore)U.push("");if(l5(F,U,C.commentBefore,_),C.comment)K=C.comment}else if(z1.isPair(C)){let P=z1.isNode(C.key)?C.key:null;if(P){if(!_&&P.spaceBefore)U.push("");l5(F,U,P.commentBefore,_)}}_=!1;let R=EO.stringify(C,V,()=>K=null,()=>_=!0);if(K)R+=c5.lineComment(R,Y,W(K));if(_&&K)_=!1;U.push(X+R)}let A;if(U.length===0)A=J.start+J.end;else{A=U[0];for(let O=1;O<U.length;++O){let C=U[O];A+=C?`
169
+ ${H}${C}`:`
170
+ `}}if(D){if(A+=`
171
+ `+c5.indentComment(W(D),H),B)B()}else if(_&&G)G();return A}function kh({items:D},$,{flowChars:F,itemIndent:X}){let{indent:J,indentStep:Y,flowCollectionPadding:G,options:{commentString:B}}=$;X+=Y;let H=Object.assign({},$,{indent:X,inFlow:!0,type:null}),W=!1,V=0,_=[];for(let O=0;O<D.length;++O){let C=D[O],K=null;if(z1.isNode(C)){if(C.spaceBefore)_.push("");if(l5($,_,C.commentBefore,!1),C.comment)K=C.comment}else if(z1.isPair(C)){let P=z1.isNode(C.key)?C.key:null;if(P){if(P.spaceBefore)_.push("");if(l5($,_,P.commentBefore,!1),P.comment)W=!0}let q=z1.isNode(C.value)?C.value:null;if(q){if(q.comment)K=q.comment;if(q.commentBefore)W=!0}else if(C.value==null&&P?.comment)K=P.comment}if(K)W=!0;let R=EO.stringify(C,H,()=>K=null);if(W||(W=_.length>V||R.includes(`
172
+ `)),O<D.length-1)R+=",";else if($.options.trailingComma){if($.options.lineWidth>0)W||(W=_.reduce((P,q)=>P+q.length+2,2)+(R.length+2)>$.options.lineWidth);if(W)R+=","}if(K)R+=c5.lineComment(R,X,B(K));_.push(R),V=_.length}let{start:U,end:A}=F;if(_.length===0)return U+A;else{if(!W){let O=_.reduce((C,K)=>C+K.length+2,2);W=$.options.lineWidth>0&&O>$.options.lineWidth}if(W){let O=U;for(let C of _)O+=C?`
173
+ ${Y}${J}${C}`:`
174
+ `;return`${O}
175
+ ${J}${A}`}else return`${U}${G}${_.join(" ")}${G}${A}`}}function l5({indent:D,options:{commentString:$}},F,X,J){if(X&&J)X=X.replace(/^\n+/,"");if(X){let Y=c5.indentComment($(X),D);F.push(Y.trimStart())}}vh.stringifyCollection=fh});var m8=b((mh)=>{var xh=EG(),gh=RG(),yh=k5(),u8=UD(),d5=y8(),uh=sD();function p9(D,$){let F=u8.isScalar($)?$.value:$;for(let X of D)if(u8.isPair(X)){if(X.key===$||X.key===F)return X;if(u8.isScalar(X.key)&&X.key.value===F)return X}return}class MO extends yh.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(D){super(u8.MAP,D);this.items=[]}static from(D,$,F){let{keepUndefined:X,replacer:J}=F,Y=new this(D),G=(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)Y.items.push(d5.createPair(B,H,F))};if($ instanceof Map)for(let[B,H]of $)G(B,H);else if($&&typeof $==="object")for(let B of Object.keys($))G(B,$[B]);if(typeof D.sortMapEntries==="function")Y.items.sort(D.sortMapEntries);return Y}add(D,$){let F;if(u8.isPair(D))F=D;else if(!D||typeof D!=="object"||!("key"in D))F=new d5.Pair(D,D?.value);else F=new d5.Pair(D.key,D.value);let X=p9(this.items,F.key),J=this.schema?.sortMapEntries;if(X){if(!$)throw Error(`Key ${F.key} already set`);if(u8.isScalar(X.value)&&uh.isScalarValue(F.value))X.value.value=F.value;else X.value=F.value}else if(J){let Y=this.items.findIndex((G)=>J(F,G)<0);if(Y===-1)this.items.push(F);else this.items.splice(Y,0,F)}else this.items.push(F)}delete(D){let $=p9(this.items,D);if(!$)return!1;return this.items.splice(this.items.indexOf($),1).length>0}get(D,$){let X=p9(this.items,D)?.value;return(!$&&u8.isScalar(X)?X.value:X)??void 0}has(D){return!!p9(this.items,D)}set(D,$){this.add(new d5.Pair(D,$),!0)}toJSON(D,$,F){let X=F?new F:$?.mapAsMap?new Map:{};if($?.onCreate)$.onCreate(X);for(let J of this.items)gh.addPairToJSMap($,X,J);return X}toString(D,$,F){if(!D)return JSON.stringify(this);for(let X of this.items)if(!u8.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 xh.stringifyCollection(this,D,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:D.indent||"",onChompKeep:F,onComment:$})}}mh.YAMLMap=MO;mh.findPair=p9});var l6=b((ih)=>{var lh=UD(),ZO=m8(),dh={collection:"map",default:!0,nodeClass:ZO.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(D,$){if(!lh.isMap(D))$("Expected a mapping for this tag");return D},createNode:(D,$,F)=>ZO.YAMLMap.from(D,$,F)};ih.map=dh});var p8=b((eh)=>{var sh=v9(),rh=EG(),oh=k5(),n5=UD(),ah=sD(),th=h8();class PO extends oh.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(D){super(n5.SEQ,D);this.items=[]}add(D){this.items.push(D)}delete(D){let $=i5(D);if(typeof $!=="number")return!1;return this.items.splice($,1).length>0}get(D,$){let F=i5(D);if(typeof F!=="number")return;let X=this.items[F];return!$&&n5.isScalar(X)?X.value:X}has(D){let $=i5(D);return typeof $==="number"&&$<this.items.length}set(D,$){let F=i5(D);if(typeof F!=="number")throw Error(`Expected a valid index, not ${D}.`);let X=this.items[F];if(n5.isScalar(X)&&ah.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(th.toJS(J,String(X++),$));return F}toString(D,$,F){if(!D)return JSON.stringify(this);return rh.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 Y=0;for(let G of $){if(typeof X==="function"){let B=$ instanceof Set?G:String(Y++);G=X.call($,B,G)}J.items.push(sh.createNode(G,void 0,F))}}return J}}function i5(D){let $=n5.isScalar(D)?D.value:D;if($&&typeof $==="string")$=Number($);return typeof $==="number"&&Number.isInteger($)&&$>=0?$:null}eh.YAMLSeq=PO});var d6=b((Xx)=>{var $x=UD(),qO=p8(),Fx={collection:"seq",default:!0,nodeClass:qO.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(D,$){if(!$x.isSeq(D))$("Expected a sequence for this tag");return D},createNode:(D,$,F)=>qO.YAMLSeq.from(D,$,F)};Xx.seq=Fx});var c9=b((Bx)=>{var Gx=g9(),Yx={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},$),Gx.stringifyString(D,$,F,X)}};Bx.string=Yx});var s5=b((Wx)=>{var NO=sD(),zO={identify:(D)=>D==null,createNode:()=>new NO.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new NO.Scalar(null),stringify:({source:D},$)=>typeof D==="string"&&zO.test.test(D)?D:$.options.nullStr};Wx.nullTag=zO});var MG=b((_x)=>{var Vx=sD(),LO={identify:(D)=>typeof D==="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:(D)=>new Vx.Scalar(D[0]==="t"||D[0]==="T"),stringify({source:D,value:$},F){if(D&&LO.test.test(D)){let X=D[0]==="t"||D[0]==="T";if($===X)return D}return $?F.options.trueStr:F.options.falseStr}};_x.boolTag=LO});var i6=b((Kx)=>{function Ax({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 Y=Object.is(X,-0)?"-0":JSON.stringify(X);if(!D&&$&&(!F||F==="tag:yaml.org,2002:float")&&/^\d/.test(Y)){let G=Y.indexOf(".");if(G<0)G=Y.length,Y+=".";let B=$-(Y.length-G-1);while(B-- >0)Y+="0"}return Y}Kx.stringifyNumber=Ax});var PG=b((Zx)=>{var Ox=sD(),ZG=i6(),Rx={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:ZG.stringifyNumber},Ex={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():ZG.stringifyNumber(D)}},Mx={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(D){let $=new Ox.Scalar(parseFloat(D)),F=D.indexOf(".");if(F!==-1&&D[D.length-1]==="0")$.minFractionDigits=D.length-F-1;return $},stringify:ZG.stringifyNumber};Zx.float=Mx;Zx.floatExp=Ex;Zx.floatNaN=Rx});var NG=b((Ix)=>{var jO=i6(),r5=(D)=>typeof D==="bigint"||Number.isInteger(D),qG=(D,$,F,{intAsBigInt:X})=>X?BigInt(D):parseInt(D.substring($),F);function IO(D,$,F){let{value:X}=D;if(r5(X)&&X>=0)return F+X.toString($);return jO.stringifyNumber(D)}var zx={identify:(D)=>r5(D)&&D>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(D,$,F)=>qG(D,2,8,F),stringify:(D)=>IO(D,8,"0o")},Lx={identify:r5,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(D,$,F)=>qG(D,0,10,F),stringify:jO.stringifyNumber},jx={identify:(D)=>r5(D)&&D>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(D,$,F)=>qG(D,2,16,F),stringify:(D)=>IO(D,16,"0x")};Ix.int=Lx;Ix.intHex=jx;Ix.intOct=zx});var TO=b((gx)=>{var fx=l6(),bx=s5(),kx=d6(),vx=c9(),hx=MG(),zG=PG(),LG=NG(),xx=[fx.map,kx.seq,vx.string,bx.nullTag,hx.boolTag,LG.intOct,LG.int,LG.intHex,zG.floatNaN,zG.floatExp,zG.float];gx.schema=xx});var SO=b((ix)=>{var ux=sD(),mx=l6(),px=d6();function wO(D){return typeof D==="bigint"||Number.isInteger(D)}var o5=({value:D})=>JSON.stringify(D),cx=[{identify:(D)=>typeof D==="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:(D)=>D,stringify:o5},{identify:(D)=>D==null,createNode:()=>new ux.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:o5},{identify:(D)=>typeof D==="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:(D)=>D==="true",stringify:o5},{identify:wO,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})=>wO(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:o5}],lx={default:!0,tag:"",test:/^/,resolve(D,$){return $(`Unresolved plain scalar ${JSON.stringify(D)}`),D}},dx=[mx.map,px.seq].concat(cx,lx);ix.schema=dx});var IG=b((ox)=>{var l9=U8("buffer"),jG=sD(),sx=g9(),rx={identify:(D)=>D instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(D,$){if(typeof l9.Buffer==="function")return l9.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,Y){if(!F)return"";let G=F,B;if(typeof l9.Buffer==="function")B=G instanceof l9.Buffer?G.toString("base64"):l9.Buffer.from(G.buffer).toString("base64");else if(typeof btoa==="function"){let H="";for(let W=0;W<G.length;++W)H+=String.fromCharCode(G[W]);B=btoa(H)}else throw Error("This environment does not support writing binary tags; either Buffer or btoa is required");if($??($=jG.Scalar.BLOCK_LITERAL),$!==jG.Scalar.QUOTE_DOUBLE){let H=Math.max(X.options.lineWidth-X.indent.length,X.options.minContentWidth),W=Math.ceil(B.length/H),V=Array(W);for(let _=0,U=0;_<W;++_,U+=H)V[_]=B.substr(U,H);B=V.join($===jG.Scalar.BLOCK_LITERAL?`
176
+ `:" ")}return sx.stringifyString({comment:D,type:$,value:B},X,J,Y)}};ox.binary=rx});var t5=b(($g)=>{var a5=UD(),TG=y8(),tx=sD(),ex=p8();function fO(D,$){if(a5.isSeq(D))for(let F=0;F<D.items.length;++F){let X=D.items[F];if(a5.isPair(X))continue;else if(a5.isMap(X)){if(X.items.length>1)$("Each pair must have its own sequence indicator");let J=X.items[0]||new TG.Pair(new tx.Scalar(null));if(X.commentBefore)J.key.commentBefore=J.key.commentBefore?`${X.commentBefore}
177
+ ${J.key.commentBefore}`:X.commentBefore;if(X.comment){let Y=J.value??J.key;Y.comment=Y.comment?`${X.comment}
178
+ ${Y.comment}`:X.comment}X=J}D.items[F]=a5.isPair(X)?X:new TG.Pair(X)}else $("Expected a sequence for this tag");return D}function bO(D,$,F){let{replacer:X}=F,J=new ex.YAMLSeq(D);J.tag="tag:yaml.org,2002:pairs";let Y=0;if($&&Symbol.iterator in Object($))for(let G of $){if(typeof X==="function")G=X.call($,String(Y++),G);let B,H;if(Array.isArray(G))if(G.length===2)B=G[0],H=G[1];else throw TypeError(`Expected [key, value] tuple: ${G}`);else if(G&&G instanceof Object){let W=Object.keys(G);if(W.length===1)B=W[0],H=G[B];else throw TypeError(`Expected tuple with one key, not ${W.length} keys`)}else B=G;J.items.push(TG.createPair(B,H,F))}return J}var Dg={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:fO,createNode:bO};$g.createPairs=bO;$g.pairs=Dg;$g.resolvePairs=fO});var SG=b((Bg)=>{var kO=UD(),wG=h8(),d9=m8(),Gg=p8(),vO=t5();class L1 extends Gg.YAMLSeq{constructor(){super();this.add=d9.YAMLMap.prototype.add.bind(this),this.delete=d9.YAMLMap.prototype.delete.bind(this),this.get=d9.YAMLMap.prototype.get.bind(this),this.has=d9.YAMLMap.prototype.has.bind(this),this.set=d9.YAMLMap.prototype.set.bind(this),this.tag=L1.tag}toJSON(D,$){if(!$)return super.toJSON(D);let F=new Map;if($?.onCreate)$.onCreate(F);for(let X of this.items){let J,Y;if(kO.isPair(X))J=wG.toJS(X.key,"",$),Y=wG.toJS(X.value,J,$);else J=wG.toJS(X,"",$);if(F.has(J))throw Error("Ordered maps must not include duplicate keys");F.set(J,Y)}return F}static from(D,$,F){let X=vO.createPairs(D,$,F),J=new this;return J.items=X.items,J}}L1.tag="tag:yaml.org,2002:omap";var Yg={collection:"seq",identify:(D)=>D instanceof Map,nodeClass:L1,default:!1,tag:"tag:yaml.org,2002:omap",resolve(D,$){let F=vO.resolvePairs(D,$),X=[];for(let{key:J}of F.items)if(kO.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 L1,F)},createNode:(D,$,F)=>L1.from(D,$,F)};Bg.YAMLOMap=L1;Bg.omap=Yg});var uO=b((Qg)=>{var hO=sD();function xO({value:D,source:$},F){if($&&(D?gO:yO).test.test($))return $;return D?F.options.trueStr:F.options.falseStr}var gO={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 hO.Scalar(!0),stringify:xO},yO={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 hO.Scalar(!1),stringify:xO};Qg.falseTag=yO;Qg.trueTag=gO});var mO=b((Og)=>{var Ug=sD(),fG=i6(),Ag={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:fG.stringifyNumber},Kg={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():fG.stringifyNumber(D)}},Cg={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(D){let $=new Ug.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:fG.stringifyNumber};Og.float=Cg;Og.floatExp=Kg;Og.floatNaN=Ag});var cO=b((zg)=>{var pO=i6(),i9=(D)=>typeof D==="bigint"||Number.isInteger(D);function e5(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 G=BigInt(D);return J==="-"?BigInt(-1)*G:G}let Y=parseInt(D,F);return J==="-"?-1*Y:Y}function bG(D,$,F){let{value:X}=D;if(i9(X)){let J=X.toString($);return X<0?"-"+F+J.substr(1):F+J}return pO.stringifyNumber(D)}var Zg={identify:i9,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(D,$,F)=>e5(D,2,2,F),stringify:(D)=>bG(D,2,"0b")},Pg={identify:i9,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(D,$,F)=>e5(D,1,8,F),stringify:(D)=>bG(D,8,"0")},qg={identify:i9,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(D,$,F)=>e5(D,0,10,F),stringify:pO.stringifyNumber},Ng={identify:i9,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(D,$,F)=>e5(D,2,16,F),stringify:(D)=>bG(D,16,"0x")};zg.int=qg;zg.intBin=Zg;zg.intHex=Ng;zg.intOct=Pg});var kG=b((Sg)=>{var F$=UD(),D$=y8(),$$=m8();class j1 extends $$.YAMLMap{constructor(D){super(D);this.tag=j1.tag}add(D){let $;if(F$.isPair(D))$=D;else if(D&&typeof D==="object"&&"key"in D&&"value"in D&&D.value===null)$=new D$.Pair(D.key,null);else $=new D$.Pair(D,null);if(!$$.findPair(this.items,$.key))this.items.push($)}get(D,$){let F=$$.findPair(this.items,D);return!$&&F$.isPair(F)?F$.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 D$.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 Y of $){if(typeof X==="function")Y=X.call($,Y,Y);J.items.push(D$.createPair(Y,null,F))}return J}}j1.tag="tag:yaml.org,2002:set";var wg={collection:"map",identify:(D)=>D instanceof Set,nodeClass:j1,default:!1,tag:"tag:yaml.org,2002:set",createNode:(D,$,F)=>j1.from(D,$,F),resolve(D,$){if(F$.isMap(D))if(D.hasAllNullValues(!0))return Object.assign(new j1,D);else $("Set items must all have null values");else $("Expected a mapping for this tag");return D}};Sg.YAMLSet=j1;Sg.set=wg});var hG=b((xg)=>{var kg=i6();function vG(D,$){let F=D[0],X=F==="-"||F==="+"?D.substring(1):D,J=(G)=>$?BigInt(G):Number(G),Y=X.replace(/_/g,"").split(":").reduce((G,B)=>G*J(60)+J(B),J(0));return F==="-"?J(-1)*Y:Y}function lO(D){let{value:$}=D,F=(G)=>G;if(typeof $==="bigint")F=(G)=>BigInt(G);else if(isNaN($)||!isFinite($))return kg.stringifyNumber(D);let X="";if($<0)X="-",$*=F(-1);let J=F(60),Y=[$%J];if($<60)Y.unshift(0);else if($=($-Y[0])/J,Y.unshift($%J),$>=60)$=($-Y[0])/J,Y.unshift($);return X+Y.map((G)=>String(G).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var vg={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})=>vG(D,F),stringify:lO},hg={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)=>vG(D,!1),stringify:lO},dO={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(dO.test);if(!$)throw Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,F,X,J,Y,G,B]=$.map(Number),H=$[7]?Number(($[7]+"00").substr(1,3)):0,W=Date.UTC(F,X-1,J,Y||0,G||0,B||0,H),V=$[8];if(V&&V!=="Z"){let _=vG(V,!1);if(Math.abs(_)<30)_*=60;W-=60000*_}return new Date(W)},stringify:({value:D})=>D?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};xg.floatTime=hg;xg.intTime=vg;xg.timestamp=dO});var nO=b((ag)=>{var mg=l6(),pg=s5(),cg=d6(),lg=c9(),dg=IG(),iO=uO(),xG=mO(),X$=cO(),ig=u5(),ng=SG(),sg=t5(),rg=kG(),gG=hG(),og=[mg.map,cg.seq,lg.string,pg.nullTag,iO.trueTag,iO.falseTag,X$.intBin,X$.intOct,X$.int,X$.intHex,xG.floatNaN,xG.floatExp,xG.float,dg.binary,ig.merge,ng.omap,sg.pairs,rg.set,gG.intTime,gG.floatTime,gG.timestamp];ag.schema=og});var XR=b((Yy)=>{var aO=l6(),eg=s5(),tO=d6(),Dy=c9(),$y=MG(),yG=PG(),uG=NG(),Fy=TO(),Xy=SO(),eO=IG(),n9=u5(),DR=SG(),$R=t5(),sO=nO(),FR=kG(),J$=hG(),rO=new Map([["core",Fy.schema],["failsafe",[aO.map,tO.seq,Dy.string]],["json",Xy.schema],["yaml11",sO.schema],["yaml-1.1",sO.schema]]),oO={binary:eO.binary,bool:$y.boolTag,float:yG.float,floatExp:yG.floatExp,floatNaN:yG.floatNaN,floatTime:J$.floatTime,int:uG.int,intHex:uG.intHex,intOct:uG.intOct,intTime:J$.intTime,map:aO.map,merge:n9.merge,null:eg.nullTag,omap:DR.omap,pairs:$R.pairs,seq:tO.seq,set:FR.set,timestamp:J$.timestamp},Jy={"tag:yaml.org,2002:binary":eO.binary,"tag:yaml.org,2002:merge":n9.merge,"tag:yaml.org,2002:omap":DR.omap,"tag:yaml.org,2002:pairs":$R.pairs,"tag:yaml.org,2002:set":FR.set,"tag:yaml.org,2002:timestamp":J$.timestamp};function Gy(D,$,F){let X=rO.get($);if(X&&!D)return F&&!X.includes(n9.merge)?X.concat(n9.merge):X.slice();let J=X;if(!J)if(Array.isArray(D))J=[];else{let Y=Array.from(rO.keys()).filter((G)=>G!=="yaml11").map((G)=>JSON.stringify(G)).join(", ");throw Error(`Unknown schema "${$}"; use one of ${Y} or define customTags array`)}if(Array.isArray(D))for(let Y of D)J=J.concat(Y);else if(typeof D==="function")J=D(J.slice());if(F)J=J.concat(n9.merge);return J.reduce((Y,G)=>{let B=typeof G==="string"?oO[G]:G;if(!B){let H=JSON.stringify(G),W=Object.keys(oO).map((V)=>JSON.stringify(V)).join(", ");throw Error(`Unknown custom tag ${H}; use one of ${W}`)}if(!Y.includes(B))Y.push(B);return Y},[])}Yy.coreKnownTags=Jy;Yy.getTags=Gy});var cG=b((Uy)=>{var mG=UD(),Wy=l6(),Qy=d6(),Vy=c9(),G$=XR(),_y=(D,$)=>D.key<$.key?-1:D.key>$.key?1:0;class pG{constructor({compat:D,customTags:$,merge:F,resolveKnownTags:X,schema:J,sortMapEntries:Y,toStringDefaults:G}){this.compat=Array.isArray(D)?G$.getTags(D,"compat"):D?G$.getTags(null,D):null,this.name=typeof J==="string"&&J||"core",this.knownTags=X?G$.coreKnownTags:{},this.tags=G$.getTags($,this.name,F),this.toStringOptions=G??null,Object.defineProperty(this,mG.MAP,{value:Wy.map}),Object.defineProperty(this,mG.SCALAR,{value:Vy.string}),Object.defineProperty(this,mG.SEQ,{value:Qy.seq}),this.sortMapEntries=typeof Y==="function"?Y:Y===!0?_y:null}clone(){let D=Object.create(pG.prototype,Object.getOwnPropertyDescriptors(this));return D.tags=this.tags.slice(),D}}Uy.Schema=pG});var JR=b((Oy)=>{var Ky=UD(),lG=y9(),s9=h9();function Cy(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=lG.createStringifyContext(D,$),{commentString:Y}=J.options;if(D.commentBefore){if(F.length!==1)F.unshift("");let H=Y(D.commentBefore);F.unshift(s9.indentComment(H,""))}let G=!1,B=null;if(D.contents){if(Ky.isNode(D.contents)){if(D.contents.spaceBefore&&X)F.push("");if(D.contents.commentBefore){let V=Y(D.contents.commentBefore);F.push(s9.indentComment(V,""))}J.forceBlockIndent=!!D.comment,B=D.contents.comment}let H=B?void 0:()=>G=!0,W=lG.stringify(D.contents,J,()=>B=null,H);if(B)W+=s9.lineComment(W,"",Y(B));if((W[0]==="|"||W[0]===">")&&F[F.length-1]==="---")F[F.length-1]=`--- ${W}`;else F.push(W)}else F.push(lG.stringify(D.contents,J));if(D.directives?.docEnd)if(D.comment){let H=Y(D.comment);if(H.includes(`
179
+ `))F.push("..."),F.push(s9.indentComment(H,""));else F.push(`... ${H}`)}else F.push("...");else{let H=D.comment;if(H&&G)H=H.replace(/^\n+/,"");if(H){if((!G||B)&&F[F.length-1]!=="")F.push("");F.push(s9.indentComment(Y(H),""))}}return F.join(`
180
+ `)+`
181
+ `}Oy.stringifyDocument=Cy});var r9=b((Ly)=>{var Ey=k9(),n6=k5(),G2=UD(),My=y8(),Zy=h8(),Py=cG(),qy=JR(),dG=S5(),Ny=QG(),zy=v9(),iG=WG();class nG{constructor(D,$,F){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,G2.NODE_TYPE,{value:G2.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:Y}=J;if(F?._directives){if(this.directives=F._directives.atDocument(),this.directives.yaml.explicit)Y=this.directives.yaml.version}else this.directives=new iG.Directives({version:Y});this.setSchema(Y,F),this.contents=D===void 0?null:this.createNode(D,X,F)}clone(){let D=Object.create(nG.prototype,{[G2.NODE_TYPE]:{value:G2.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=G2.isNode(this.contents)?this.contents.clone(D.schema):this.contents,this.range)D.range=this.range.slice();return D}add(D){if(s6(this.contents))this.contents.add(D)}addIn(D,$){if(s6(this.contents))this.contents.addIn(D,$)}createAlias(D,$){if(!D.anchor){let F=dG.anchorNames(this);D.anchor=!$||F.has($)?dG.findNewAnchor($||"a",F):$}return new Ey.Alias(D.anchor)}createNode(D,$,F){let X=void 0;if(typeof $==="function")D=$.call({"":D},"",D),X=$;else if(Array.isArray($)){let C=(R)=>typeof R==="number"||R instanceof String||R instanceof Number,K=$.filter(C).map(String);if(K.length>0)$=$.concat(K);X=$}else if(F===void 0&&$)F=$,$=void 0;let{aliasDuplicateObjects:J,anchorPrefix:Y,flow:G,keepUndefined:B,onTagObj:H,tag:W}=F??{},{onAnchor:V,setAnchors:_,sourceObjects:U}=dG.createNodeAnchors(this,Y||"a"),A={aliasDuplicateObjects:J??!0,keepUndefined:B??!1,onAnchor:V,onTagObj:H,replacer:X,schema:this.schema,sourceObjects:U},O=zy.createNode(D,W,A);if(G&&G2.isCollection(O))O.flow=!0;return _(),O}createPair(D,$,F={}){let X=this.createNode(D,null,F),J=this.createNode($,null,F);return new My.Pair(X,J)}delete(D){return s6(this.contents)?this.contents.delete(D):!1}deleteIn(D){if(n6.isEmptyPath(D)){if(this.contents==null)return!1;return this.contents=null,!0}return s6(this.contents)?this.contents.deleteIn(D):!1}get(D,$){return G2.isCollection(this.contents)?this.contents.get(D,$):void 0}getIn(D,$){if(n6.isEmptyPath(D))return!$&&G2.isScalar(this.contents)?this.contents.value:this.contents;return G2.isCollection(this.contents)?this.contents.getIn(D,$):void 0}has(D){return G2.isCollection(this.contents)?this.contents.has(D):!1}hasIn(D){if(n6.isEmptyPath(D))return this.contents!==void 0;return G2.isCollection(this.contents)?this.contents.hasIn(D):!1}set(D,$){if(this.contents==null)this.contents=n6.collectionFromPath(this.schema,[D],$);else if(s6(this.contents))this.contents.set(D,$)}setIn(D,$){if(n6.isEmptyPath(D))this.contents=$;else if(this.contents==null)this.contents=n6.collectionFromPath(this.schema,Array.from(D),$);else if(s6(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 iG.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 iG.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 Py.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:Y}={}){let G={anchors:new Map,doc:this,keep:!D,mapAsMap:F===!0,mapKeyWarned:!1,maxAliasCount:typeof X==="number"?X:100},B=Zy.toJS(this.contents,$??"",G);if(typeof J==="function")for(let{count:H,res:W}of G.anchors.values())J(W,H);return typeof Y==="function"?Ny.applyReviver(Y,{"":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 qy.stringifyDocument(this,D)}}function s6(D){if(G2.isCollection(D))return!0;throw Error("Expected a YAML collection as document contents")}Ly.Document=nG});var o9=b((Ty)=>{class Y$ extends Error{constructor(D,$,F,X){super();this.name=D,this.code=F,this.message=X,this.pos=$}}class GR extends Y${constructor(D,$,F){super("YAMLParseError",D,$,F)}}class YR extends Y${constructor(D,$,F){super("YAMLWarning",D,$,F)}}var Iy=(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 Y=J-1,G=D.substring($.lineStarts[X-1],$.lineStarts[X]).replace(/[\n\r]+$/,"");if(Y>=60&&G.length>80){let B=Math.min(Y-39,G.length-79);G="\u2026"+G.substring(B),Y-=B-1}if(G.length>80)G=G.substring(0,79)+"\u2026";if(X>1&&/^ *$/.test(G.substring(0,Y))){let B=D.substring($.lineStarts[X-2],$.lineStarts[X-1]);if(B.length>80)B=B.substring(0,79)+`\u2026
182
+ `;G=B+G}if(/[^ ]/.test(G)){let B=1,H=F.linePos[1];if(H?.line===X&&H.col>J)B=Math.max(1,Math.min(H.col-J,80-Y));let W=" ".repeat(Y)+"^".repeat(B);F.message+=`:
183
+
184
+ ${G}
185
+ ${W}
186
+ `}};Ty.YAMLError=Y$;Ty.YAMLParseError=GR;Ty.YAMLWarning=YR;Ty.prettifyError=Iy});var a9=b((vy)=>{function ky(D,{flow:$,indicator:F,next:X,offset:J,onError:Y,parentIndent:G,startOnNewline:B}){let H=!1,W=B,V=B,_="",U="",A=!1,O=!1,C=null,K=null,R=null,P=null,q=null,w=null,S=null;for(let j of D){if(O){if(j.type!=="space"&&j.type!=="newline"&&j.type!=="comma")Y(j.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space");O=!1}if(C){if(W&&j.type!=="comment"&&j.type!=="newline")Y(C,"TAB_AS_INDENT","Tabs are not allowed as indentation");C=null}switch(j.type){case"space":if(!$&&(F!=="doc-start"||X?.type!=="flow-collection")&&j.source.includes("\t"))C=j;V=!0;break;case"comment":{if(!V)Y(j,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let c=j.source.substring(1)||" ";if(!_)_=c;else _+=U+c;U="",W=!1;break}case"newline":if(W){if(_)_+=j.source;else if(!w||F!=="seq-item-ind")H=!0}else U+=j.source;if(W=!0,A=!0,K||R)P=j;V=!0;break;case"anchor":if(K)Y(j,"MULTIPLE_ANCHORS","A node can have at most one anchor");if(j.source.endsWith(":"))Y(j.offset+j.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0);K=j,S??(S=j.offset),W=!1,V=!1,O=!0;break;case"tag":{if(R)Y(j,"MULTIPLE_TAGS","A node can have at most one tag");R=j,S??(S=j.offset),W=!1,V=!1,O=!0;break}case F:if(K||R)Y(j,"BAD_PROP_ORDER",`Anchors and tags must be after the ${j.source} indicator`);if(w)Y(j,"UNEXPECTED_TOKEN",`Unexpected ${j.source} in ${$??"collection"}`);w=j,W=F==="seq-item-ind"||F==="explicit-key-ind",V=!1;break;case"comma":if($){if(q)Y(j,"UNEXPECTED_TOKEN",`Unexpected , in ${$}`);q=j,W=!1,V=!1;break}default:Y(j,"UNEXPECTED_TOKEN",`Unexpected ${j.type} token`),W=!1,V=!1}}let L=D[D.length-1],N=L?L.offset+L.source.length:J;if(O&&X&&X.type!=="space"&&X.type!=="newline"&&X.type!=="comma"&&(X.type!=="scalar"||X.source!==""))Y(X.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space");if(C&&(W&&C.indent<=G||X?.type==="block-map"||X?.type==="block-seq"))Y(C,"TAB_AS_INDENT","Tabs are not allowed as indentation");return{comma:q,found:w,spaceBefore:H,comment:_,hasNewline:A,anchor:K,tag:R,newlineAfterProp:P,end:N,start:S??N}}vy.resolveProps=ky});var B$=b((xy)=>{function sG(D){if(!D)return null;switch(D.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(D.source.includes(`
187
+ `))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(sG($.key)||sG($.value))return!0}return!1;default:return!0}}xy.containsNewline=sG});var rG=b((my)=>{var yy=B$();function uy(D,$,F){if($?.type==="flow-collection"){let X=$.end[0];if(X.indent===D&&(X.source==="]"||X.source==="}")&&yy.containsNewline($))F(X,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}my.flowIndentCheck=uy});var oG=b((ly)=>{var BR=UD();function cy(D,$,F){let{uniqueKeys:X}=D.options;if(X===!1)return!1;let J=typeof X==="function"?X:(Y,G)=>Y===G||BR.isScalar(Y)&&BR.isScalar(G)&&Y.value===G.value;return $.some((Y)=>J(Y.key,F))}ly.mapIncludes=cy});var _R=b((oy)=>{var HR=y8(),iy=m8(),WR=a9(),ny=B$(),QR=rG(),sy=oG(),VR="All mapping items must start at the same column";function ry({composeNode:D,composeEmptyNode:$},F,X,J,Y){let B=new(Y?.nodeClass??iy.YAMLMap)(F.schema);if(F.atRoot)F.atRoot=!1;let H=X.offset,W=null;for(let V of X.items){let{start:_,key:U,sep:A,value:O}=V,C=WR.resolveProps(_,{indicator:"explicit-key-ind",next:U??A?.[0],offset:H,onError:J,parentIndent:X.indent,startOnNewline:!0}),K=!C.found;if(K){if(U){if(U.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 U&&U.indent!==X.indent)J(H,"BAD_INDENT",VR)}if(!C.anchor&&!C.tag&&!A){if(W=C.end,C.comment)if(B.comment)B.comment+=`
188
+ `+C.comment;else B.comment=C.comment;continue}if(C.newlineAfterProp||ny.containsNewline(U))J(U??_[_.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",VR);F.atKey=!0;let R=C.end,P=U?D(F,U,C,J):$(F,R,_,null,C,J);if(F.schema.compat)QR.flowIndentCheck(X.indent,U,J);if(F.atKey=!1,sy.mapIncludes(F,B.items,P))J(R,"DUPLICATE_KEY","Map keys must be unique");let q=WR.resolveProps(A??[],{indicator:"map-value-ind",next:O,offset:P.range[2],onError:J,parentIndent:X.indent,startOnNewline:!U||U.type==="block-scalar"});if(H=q.end,q.found){if(K){if(O?.type==="block-map"&&!q.hasNewline)J(H,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings");if(F.options.strict&&C.start<q.found.offset-1024)J(P.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key")}let w=O?D(F,O,q,J):$(F,H,A,null,q,J);if(F.schema.compat)QR.flowIndentCheck(X.indent,O,J);H=w.range[2];let S=new HR.Pair(P,w);if(F.options.keepSourceTokens)S.srcToken=V;B.items.push(S)}else{if(K)J(P.range,"MISSING_CHAR","Implicit map keys need to be followed by map values");if(q.comment)if(P.comment)P.comment+=`
189
+ `+q.comment;else P.comment=q.comment;let w=new HR.Pair(P);if(F.options.keepSourceTokens)w.srcToken=V;B.items.push(w)}}if(W&&W<H)J(W,"IMPOSSIBLE","Map comment with trailing content");return B.range=[X.offset,H,W??H],B}oy.resolveBlockMap=ry});var UR=b((Fu)=>{var ty=p8(),ey=a9(),Du=rG();function $u({composeNode:D,composeEmptyNode:$},F,X,J,Y){let B=new(Y?.nodeClass??ty.YAMLSeq)(F.schema);if(F.atRoot)F.atRoot=!1;if(F.atKey)F.atKey=!1;let H=X.offset,W=null;for(let{start:V,value:_}of X.items){let U=ey.resolveProps(V,{indicator:"seq-item-ind",next:_,offset:H,onError:J,parentIndent:X.indent,startOnNewline:!0});if(!U.found)if(U.anchor||U.tag||_)if(_?.type==="block-seq")J(U.end,"BAD_INDENT","All sequence items must start at the same column");else J(H,"MISSING_CHAR","Sequence item without - indicator");else{if(W=U.end,U.comment)B.comment=U.comment;continue}let A=_?D(F,_,U,J):$(F,U.end,V,null,U,J);if(F.schema.compat)Du.flowIndentCheck(X.indent,_,J);H=A.range[2],B.items.push(A)}return B.range=[X.offset,H,W??H],B}Fu.resolveBlockSeq=$u});var r6=b((Gu)=>{function Ju(D,$,F,X){let J="";if(D){let Y=!1,G="";for(let B of D){let{source:H,type:W}=B;switch(W){case"space":Y=!0;break;case"comment":{if(F&&!Y)X(B,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let V=H.substring(1)||" ";if(!J)J=V;else J+=G+V;G="";break}case"newline":if(J)G+=H;Y=!0;break;default:X(B,"UNEXPECTED_TOKEN",`Unexpected ${W} at node end`)}$+=H.length}}return{comment:J,offset:$}}Gu.resolveEnd=Ju});var CR=b((Au)=>{var Bu=UD(),Hu=y8(),AR=m8(),Wu=p8(),Qu=r6(),KR=a9(),Vu=B$(),_u=oG(),aG="Block collections are not allowed within flow collections",tG=(D)=>D&&(D.type==="block-map"||D.type==="block-seq");function Uu({composeNode:D,composeEmptyNode:$},F,X,J,Y){let G=X.start.source==="{",B=G?"flow map":"flow sequence",W=new(Y?.nodeClass??(G?AR.YAMLMap:Wu.YAMLSeq))(F.schema);W.flow=!0;let V=F.atRoot;if(V)F.atRoot=!1;if(F.atKey)F.atKey=!1;let _=X.offset+X.start.source.length;for(let K=0;K<X.items.length;++K){let R=X.items[K],{start:P,key:q,sep:w,value:S}=R,L=KR.resolveProps(P,{flow:B,indicator:"explicit-key-ind",next:q??w?.[0],offset:_,onError:J,parentIndent:X.indent,startOnNewline:!1});if(!L.found){if(!L.anchor&&!L.tag&&!w&&!S){if(K===0&&L.comma)J(L.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${B}`);else if(K<X.items.length-1)J(L.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${B}`);if(L.comment)if(W.comment)W.comment+=`
190
+ `+L.comment;else W.comment=L.comment;_=L.end;continue}if(!G&&F.options.strict&&Vu.containsNewline(q))J(q,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(K===0){if(L.comma)J(L.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${B}`)}else{if(!L.comma)J(L.start,"MISSING_CHAR",`Missing , between ${B} items`);if(L.comment){let N="";D:for(let j of P)switch(j.type){case"comma":case"space":break;case"comment":N=j.source.substring(1);break D;default:break D}if(N){let j=W.items[W.items.length-1];if(Bu.isPair(j))j=j.value??j.key;if(j.comment)j.comment+=`
191
+ `+N;else j.comment=N;L.comment=L.comment.substring(N.length+1)}}}if(!G&&!w&&!L.found){let N=S?D(F,S,L,J):$(F,L.end,w,null,L,J);if(W.items.push(N),_=N.range[2],tG(S))J(N.range,"BLOCK_IN_FLOW",aG)}else{F.atKey=!0;let N=L.end,j=q?D(F,q,L,J):$(F,N,P,null,L,J);if(tG(q))J(j.range,"BLOCK_IN_FLOW",aG);F.atKey=!1;let c=KR.resolveProps(w??[],{flow:B,indicator:"map-value-ind",next:S,offset:j.range[2],onError:J,parentIndent:X.indent,startOnNewline:!1});if(c.found){if(!G&&!L.found&&F.options.strict){if(w)for(let d of w){if(d===c.found)break;if(d.type==="newline"){J(d,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}if(L.start<c.found.offset-1024)J(c.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else if(S)if("source"in S&&S.source?.[0]===":")J(S,"MISSING_CHAR",`Missing space after : in ${B}`);else J(c.start,"MISSING_CHAR",`Missing , or : between ${B} items`);let XD=S?D(F,S,c,J):c.found?$(F,c.end,w,null,c,J):null;if(XD){if(tG(S))J(XD.range,"BLOCK_IN_FLOW",aG)}else if(c.comment)if(j.comment)j.comment+=`
192
+ `+c.comment;else j.comment=c.comment;let WD=new Hu.Pair(j,XD);if(F.options.keepSourceTokens)WD.srcToken=R;if(G){let d=W;if(_u.mapIncludes(F,d.items,j))J(N,"DUPLICATE_KEY","Map keys must be unique");d.items.push(WD)}else{let d=new AR.YAMLMap(F.schema);d.flow=!0,d.items.push(WD);let cD=(XD??j).range;d.range=[j.range[0],cD[1],cD[2]],W.items.push(d)}_=XD?XD.range[2]:c.end}}let U=G?"}":"]",[A,...O]=X.end,C=_;if(A?.source===U)C=A.offset+A.source.length;else{let K=B[0].toUpperCase()+B.substring(1),R=V?`${K} must end with a ${U}`:`${K} in block collection must be sufficiently indented and end with a ${U}`;if(J(_,V?"MISSING_CHAR":"BAD_INDENT",R),A&&A.source.length!==1)O.unshift(A)}if(O.length>0){let K=Qu.resolveEnd(O,C,F.options.strict,J);if(K.comment)if(W.comment)W.comment+=`
193
+ `+K.comment;else W.comment=K.comment;W.range=[X.offset,C,K.offset]}else W.range=[X.offset,C,C];return W}Au.resolveFlowCollection=Uu});var OR=b((Nu)=>{var Cu=UD(),Ou=sD(),Ru=m8(),Eu=p8(),Mu=_R(),Zu=UR(),Pu=CR();function eG(D,$,F,X,J,Y){let G=F.type==="block-map"?Mu.resolveBlockMap(D,$,F,X,Y):F.type==="block-seq"?Zu.resolveBlockSeq(D,$,F,X,Y):Pu.resolveFlowCollection(D,$,F,X,Y),B=G.constructor;if(J==="!"||J===B.tagName)return G.tag=B.tagName,G;if(J)G.tag=J;return G}function qu(D,$,F,X,J){let Y=X.tag,G=!Y?null:$.directives.tagName(Y.source,(U)=>J(Y,"TAG_RESOLVE_FAILED",U));if(F.type==="block-seq"){let{anchor:U,newlineAfterProp:A}=X,O=U&&Y?U.offset>Y.offset?U:Y:U??Y;if(O&&(!A||A.offset<O.offset))J(O,"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(!Y||!G||G==="!"||G===Ru.YAMLMap.tagName&&B==="map"||G===Eu.YAMLSeq.tagName&&B==="seq")return eG(D,$,F,J,G);let H=$.schema.tags.find((U)=>U.tag===G&&U.collection===B);if(!H){let U=$.schema.knownTags[G];if(U?.collection===B)$.schema.tags.push(Object.assign({},U,{default:!1})),H=U;else{if(U)J(Y,"BAD_COLLECTION_TYPE",`${U.tag} used for ${B} collection, but expects ${U.collection??"scalar"}`,!0);else J(Y,"TAG_RESOLVE_FAILED",`Unresolved tag: ${G}`,!0);return eG(D,$,F,J,G)}}let W=eG(D,$,F,J,G,H),V=H.resolve?.(W,(U)=>J(Y,"TAG_RESOLVE_FAILED",U),$.options)??W,_=Cu.isNode(V)?V:new Ou.Scalar(V);if(_.range=W.range,_.tag=G,H?.format)_.format=H.format;return _}Nu.composeCollection=qu});var $Y=b((Tu)=>{var DY=sD();function Lu(D,$,F){let X=$.offset,J=ju($,D.options.strict,F);if(!J)return{value:"",type:null,comment:"",range:[X,X,X]};let Y=J.mode===">"?DY.Scalar.BLOCK_FOLDED:DY.Scalar.BLOCK_LITERAL,G=$.source?Iu($.source):[],B=G.length;for(let C=G.length-1;C>=0;--C){let K=G[C][1];if(K===""||K==="\r")B=C;else break}if(B===0){let C=J.chomp==="+"&&G.length>0?`
194
+ `.repeat(Math.max(1,G.length-1)):"",K=X+J.length;if($.source)K+=$.source.length;return{value:C,type:Y,comment:J.comment,range:[X,K,K]}}let H=$.indent+J.indent,W=$.offset+J.length,V=0;for(let C=0;C<B;++C){let[K,R]=G[C];if(R===""||R==="\r"){if(J.indent===0&&K.length>H)H=K.length}else{if(K.length<H)F(W+K.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator");if(J.indent===0)H=K.length;if(V=C,H===0&&!D.atRoot)F(W,"BAD_INDENT","Block scalar values in collections must be indented");break}W+=K.length+R.length+1}for(let C=G.length-1;C>=B;--C)if(G[C][0].length>H)B=C+1;let _="",U="",A=!1;for(let C=0;C<V;++C)_+=G[C][0].slice(H)+`
195
+ `;for(let C=V;C<B;++C){let[K,R]=G[C];W+=K.length+R.length+1;let P=R[R.length-1]==="\r";if(P)R=R.slice(0,-1);if(R&&K.length<H){let w=`Block scalar lines must not be less indented than their ${J.indent?"explicit indentation indicator":"first line"}`;F(W-R.length-(P?2:1),"BAD_INDENT",w),K=""}if(Y===DY.Scalar.BLOCK_LITERAL)_+=U+K.slice(H)+R,U=`
196
+ `;else if(K.length>H||R[0]==="\t"){if(U===" ")U=`
197
+ `;else if(!A&&U===`
198
+ `)U=`
199
+
200
+ `;_+=U+K.slice(H)+R,U=`
201
+ `,A=!0}else if(R==="")if(U===`
202
+ `)_+=`
203
+ `;else U=`
204
+ `;else _+=U+R,U=" ",A=!1}switch(J.chomp){case"-":break;case"+":for(let C=B;C<G.length;++C)_+=`
205
+ `+G[C][0].slice(H);if(_[_.length-1]!==`
206
+ `)_+=`
207
+ `;break;default:_+=`
208
+ `}let O=X+J.length+$.source.length;return{value:_,type:Y,comment:J.comment,range:[X,O,O]}}function ju({offset:D,props:$},F,X){if($[0].type!=="block-scalar-header")return X($[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:J}=$[0],Y=J[0],G=0,B="",H=-1;for(let U=1;U<J.length;++U){let A=J[U];if(!B&&(A==="-"||A==="+"))B=A;else{let O=Number(A);if(!G&&O)G=O;else if(H===-1)H=D+U}}if(H!==-1)X(H,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${J}`);let W=!1,V="",_=J.length;for(let U=1;U<$.length;++U){let A=$[U];switch(A.type){case"space":W=!0;case"newline":_+=A.source.length;break;case"comment":if(F&&!W)X(A,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");_+=A.source.length,V=A.source.substring(1);break;case"error":X(A,"UNEXPECTED_TOKEN",A.message),_+=A.source.length;break;default:{let O=`Unexpected token in block scalar header: ${A.type}`;X(A,"UNEXPECTED_TOKEN",O);let C=A.source;if(C&&typeof C==="string")_+=C.length}}}return{mode:Y,indent:G,chomp:B,comment:V,length:_}}function Iu(D){let $=D.split(/\n( *)/),F=$[0],X=F.match(/^( *)/),Y=[X?.[1]?[X[1],F.slice(X[1].length)]:["",F]];for(let G=1;G<$.length;G+=2)Y.push([$[G],$[G+1]]);return Y}Tu.resolveBlockScalar=Lu});var XY=b((yu)=>{var FY=sD(),Su=r6();function fu(D,$,F){let{offset:X,type:J,source:Y,end:G}=D,B,H,W=(U,A,O)=>F(X+U,A,O);switch(J){case"scalar":B=FY.Scalar.PLAIN,H=bu(Y,W);break;case"single-quoted-scalar":B=FY.Scalar.QUOTE_SINGLE,H=ku(Y,W);break;case"double-quoted-scalar":B=FY.Scalar.QUOTE_DOUBLE,H=vu(Y,W);break;default:return F(D,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${J}`),{value:"",type:null,comment:"",range:[X,X+Y.length,X+Y.length]}}let V=X+Y.length,_=Su.resolveEnd(G,V,$,F);return{value:H,type:B,comment:_.comment,range:[X,V,_.offset]}}function bu(D,$){let F="";switch(D[0]){case"\t":F="a tab character";break;case",":F="flow indicator character ,";break;case"%":F="directive indicator character %";break;case"|":case">":{F=`block scalar indicator ${D[0]}`;break}case"@":case"`":{F=`reserved character ${D[0]}`;break}}if(F)$(0,"BAD_SCALAR_START",`Plain value cannot start with ${F}`);return RR(D)}function ku(D,$){if(D[D.length-1]!=="'"||D.length===1)$(D.length,"MISSING_CHAR","Missing closing 'quote");return RR(D.slice(1,-1)).replace(/''/g,"'")}function RR(D){let $,F;try{$=new RegExp(`(.*?)(?<![ ])[ ]*\r?
209
+ `,"sy"),F=new RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
210
+ `,"sy")}catch{$=/(.*?)[ \t]*\r?\n/sy,F=/[ \t]*(.*?)[ \t]*\r?\n/sy}let X=$.exec(D);if(!X)return D;let J=X[1],Y=" ",G=$.lastIndex;F.lastIndex=G;while(X=F.exec(D)){if(X[1]==="")if(Y===`
211
+ `)J+=Y;else Y=`
212
+ `;else J+=Y+X[1],Y=" ";G=F.lastIndex}let B=/[ \t]*(.*)/sy;return B.lastIndex=G,X=B.exec(D),J+Y+(X?.[1]??"")}function vu(D,$){let F="";for(let X=1;X<D.length-1;++X){let J=D[X];if(J==="\r"&&D[X+1]===`
213
+ `)continue;if(J===`
214
+ `){let{fold:Y,offset:G}=hu(D,X);F+=Y,X=G}else if(J==="\\"){let Y=D[++X],G=xu[Y];if(G)F+=G;else if(Y===`
215
+ `){Y=D[X+1];while(Y===" "||Y==="\t")Y=D[++X+1]}else if(Y==="\r"&&D[X+1]===`
216
+ `){Y=D[++X+1];while(Y===" "||Y==="\t")Y=D[++X+1]}else if(Y==="x"||Y==="u"||Y==="U"){let B={x:2,u:4,U:8}[Y];F+=gu(D,X+1,B,$),X+=B}else{let B=D.substr(X-1,2);$(X-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${B}`),F+=B}}else if(J===" "||J==="\t"){let Y=X,G=D[X+1];while(G===" "||G==="\t")G=D[++X+1];if(G!==`
217
+ `&&!(G==="\r"&&D[X+2]===`
218
+ `))F+=X>Y?D.slice(Y,X+1):J}else F+=J}if(D[D.length-1]!=='"'||D.length===1)$(D.length,"MISSING_CHAR",'Missing closing "quote');return F}function hu(D,$){let F="",X=D[$+1];while(X===" "||X==="\t"||X===`
219
+ `||X==="\r"){if(X==="\r"&&D[$+2]!==`
220
+ `)break;if(X===`
221
+ `)F+=`
222
+ `;$+=1,X=D[$+1]}if(!F)F=" ";return{fold:F,offset:$}}var xu={"0":"\x00",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
223
+ `,r:"\r",t:"\t",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\","\t":"\t"};function gu(D,$,F,X){let J=D.substr($,F),G=J.length===F&&/^[0-9a-fA-F]+$/.test(J)?parseInt(J,16):NaN;if(isNaN(G)){let B=D.substr($-2,F+2);return X($-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${B}`),B}return String.fromCodePoint(G)}yu.resolveFlowScalar=fu});var MR=b((iu)=>{var I1=UD(),ER=sD(),mu=$Y(),pu=XY();function cu(D,$,F,X){let{value:J,type:Y,comment:G,range:B}=$.type==="block-scalar"?mu.resolveBlockScalar(D,$,X):pu.resolveFlowScalar($,D.options.strict,X),H=F?D.directives.tagName(F.source,(_)=>X(F,"TAG_RESOLVE_FAILED",_)):null,W;if(D.options.stringKeys&&D.atKey)W=D.schema[I1.SCALAR];else if(H)W=lu(D.schema,J,H,F,X);else if($.type==="scalar")W=du(D,J,$,X);else W=D.schema[I1.SCALAR];let V;try{let _=W.resolve(J,(U)=>X(F??$,"TAG_RESOLVE_FAILED",U),D.options);V=I1.isScalar(_)?_:new ER.Scalar(_)}catch(_){let U=_ instanceof Error?_.message:String(_);X(F??$,"TAG_RESOLVE_FAILED",U),V=new ER.Scalar(J)}if(V.range=B,V.source=J,Y)V.type=Y;if(H)V.tag=H;if(W.format)V.format=W.format;if(G)V.comment=G;return V}function lu(D,$,F,X,J){if(F==="!")return D[I1.SCALAR];let Y=[];for(let B of D.tags)if(!B.collection&&B.tag===F)if(B.default&&B.test)Y.push(B);else return B;for(let B of Y)if(B.test?.test($))return B;let G=D.knownTags[F];if(G&&!G.collection)return D.tags.push(Object.assign({},G,{default:!1,test:void 0})),G;return J(X,"TAG_RESOLVE_FAILED",`Unresolved tag: ${F}`,F!=="tag:yaml.org,2002:str"),D[I1.SCALAR]}function du({atKey:D,directives:$,schema:F},X,J,Y){let G=F.tags.find((B)=>(B.default===!0||D&&B.default==="key")&&B.test?.test(X))||F[I1.SCALAR];if(F.compat){let B=F.compat.find((H)=>H.default&&H.test?.test(X))??F[I1.SCALAR];if(G.tag!==B.tag){let H=$.tagString(G.tag),W=$.tagString(B.tag),V=`Value may be parsed as either ${H} or ${W}`;Y(J,"TAG_RESOLVE_FAILED",V,!0)}}return G}iu.composeScalar=cu});var ZR=b((ru)=>{function su(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}ru.emptyScalarPosition=su});var NR=b((Jm)=>{var au=k9(),tu=UD(),eu=OR(),PR=MR(),Dm=r6(),$m=ZR(),Fm={composeNode:qR,composeEmptyNode:JY};function qR(D,$,F,X){let J=D.atKey,{spaceBefore:Y,comment:G,anchor:B,tag:H}=F,W,V=!0;switch($.type){case"alias":if(W=Xm(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(W=PR.composeScalar(D,$,H,X),B)W.anchor=B.source.substring(1);break;case"block-map":case"block-seq":case"flow-collection":try{if(W=eu.composeCollection(Fm,D,$,F,X),B)W.anchor=B.source.substring(1)}catch(_){let U=_ instanceof Error?_.message:String(_);X($,"RESOURCE_EXHAUSTION",U)}break;default:{let _=$.type==="error"?$.message:`Unsupported token (type: ${$.type})`;X($,"UNEXPECTED_TOKEN",_),V=!1}}if(W??(W=JY(D,$.offset,void 0,null,F,X)),B&&W.anchor==="")X(B,"BAD_ALIAS","Anchor cannot be an empty string");if(J&&D.options.stringKeys&&(!tu.isScalar(W)||typeof W.value!=="string"||W.tag&&W.tag!=="tag:yaml.org,2002:str"))X(H??$,"NON_STRING_KEY","With stringKeys, all keys must be strings");if(Y)W.spaceBefore=!0;if(G)if($.type==="scalar"&&$.source==="")W.comment=G;else W.commentBefore=G;if(D.options.keepSourceTokens&&V)W.srcToken=$;return W}function JY(D,$,F,X,{spaceBefore:J,comment:Y,anchor:G,tag:B,end:H},W){let V={type:"scalar",offset:$m.emptyScalarPosition($,F,X),indent:-1,source:""},_=PR.composeScalar(D,V,B,W);if(G){if(_.anchor=G.source.substring(1),_.anchor==="")W(G,"BAD_ALIAS","Anchor cannot be an empty string")}if(J)_.spaceBefore=!0;if(Y)_.comment=Y,_.range[2]=H;return _}function Xm({options:D},{offset:$,source:F,end:X},J){let Y=new au.Alias(F.substring(1));if(Y.source==="")J($,"BAD_ALIAS","Alias cannot be an empty string");if(Y.source.endsWith(":"))J($+F.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let G=$+F.length,B=Dm.resolveEnd(X,G,D.strict,J);if(Y.range=[$,G,B.offset],B.comment)Y.comment=B.comment;return Y}Jm.composeEmptyNode=JY;Jm.composeNode=qR});var LR=b((Vm)=>{var Bm=r9(),zR=NR(),Hm=r6(),Wm=a9();function Qm(D,$,{offset:F,start:X,value:J,end:Y},G){let B=Object.assign({_directives:$},D),H=new Bm.Document(void 0,B),W={atKey:!1,atRoot:!0,directives:H.directives,options:H.options,schema:H.schema},V=Wm.resolveProps(X,{indicator:"doc-start",next:J??Y?.[0],offset:F,onError:G,parentIndent:0,startOnNewline:!0});if(V.found){if(H.directives.docStart=!0,J&&(J.type==="block-map"||J.type==="block-seq")&&!V.hasNewline)G(V.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")}H.contents=J?zR.composeNode(W,J,V,G):zR.composeEmptyNode(W,V.end,X,null,V,G);let _=H.contents.range[2],U=Hm.resolveEnd(Y,_,!1,G);if(U.comment)H.comment=U.comment;return H.range=[F,_,U.offset],H}Vm.composeDoc=Qm});var GY=b((Rm)=>{var Um=U8("process"),Am=WG(),Km=r9(),t9=o9(),jR=UD(),Cm=LR(),Om=r6();function e9(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 IR(D){let $="",F=!1,X=!1;for(let J=0;J<D.length;++J){let Y=D[J];switch(Y[0]){case"#":$+=($===""?"":X?`
224
+
225
+ `:`
226
+ `)+(Y.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 TR{constructor(D={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=($,F,X,J)=>{let Y=e9($);if(J)this.warnings.push(new t9.YAMLWarning(Y,F,X));else this.errors.push(new t9.YAMLParseError(Y,F,X))},this.directives=new Am.Directives({version:D.version||"1.2"}),this.options=D}decorate(D,$){let{comment:F,afterEmptyLine:X}=IR(this.prelude);if(F){let J=D.contents;if($)D.comment=D.comment?`${D.comment}
227
+ ${F}`:F;else if(X||D.directives.docStart||!J)D.commentBefore=F;else if(jR.isCollection(J)&&!J.flow&&J.items.length>0){let Y=J.items[0];if(jR.isPair(Y))Y=Y.key;let G=Y.commentBefore;Y.commentBefore=G?`${F}
228
+ ${G}`:F}else{let Y=J.commentBefore;J.commentBefore=Y?`${F}
229
+ ${Y}`:F}}if($)Array.prototype.push.apply(D.errors,this.errors),Array.prototype.push.apply(D.warnings,this.warnings);else D.errors=this.errors,D.warnings=this.warnings;this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:IR(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(D,$=!1,F=-1){for(let X of D)yield*this.next(X);yield*this.end($,F)}*next(D){if(Um.env.LOG_STREAM)console.dir(D,{depth:null});switch(D.type){case"directive":this.directives.add(D.source,($,F,X)=>{let J=e9(D);J[0]+=$,this.onError(J,"BAD_DIRECTIVE",F,X)}),this.prelude.push(D.source),this.atDirectives=!0;break;case"document":{let $=Cm.composeDoc(this.options,this.directives,D,this.onError);if(this.atDirectives&&!$.directives.docStart)this.onError(D,"MISSING_CHAR","Missing directives-end/doc-start indicator line");if(this.decorate($,!1),this.doc)yield this.doc;this.doc=$,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(D.source);break;case"error":{let $=D.source?`${D.message}: ${JSON.stringify(D.source)}`:D.message,F=new t9.YAMLParseError(e9(D),"UNEXPECTED_TOKEN",$);if(this.atDirectives||!this.doc)this.errors.push(F);else this.doc.errors.push(F);break}case"doc-end":{if(!this.doc){this.errors.push(new t9.YAMLParseError(e9(D),"UNEXPECTED_TOKEN","Unexpected doc-end without preceding document"));break}this.doc.directives.docEnd=!0;let $=Om.resolveEnd(D.end,D.offset+D.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),$.comment){let F=this.doc.comment;this.doc.comment=F?`${F}
230
+ ${$.comment}`:$.comment}this.doc.range[2]=$.offset;break}default:this.errors.push(new t9.YAMLParseError(e9(D),"UNEXPECTED_TOKEN",`Unsupported token ${D.type}`))}}*end(D=!1,$=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(D){let F=Object.assign({_directives:this.directives},this.options),X=new Km.Document(void 0,F);if(this.atDirectives)this.onError($,"MISSING_CHAR","Missing directives-end indicator line");X.range=[0,$,$],this.decorate(X,!1),yield X}}}Rm.Composer=TR});var fR=b((jm)=>{var Mm=$Y(),Zm=XY(),Pm=o9(),wR=g9();function qm(D,$=!0,F){if(D){let X=(J,Y,G)=>{let B=typeof J==="number"?J:Array.isArray(J)?J[0]:J.offset;if(F)F(B,Y,G);else throw new Pm.YAMLParseError([B,B+1],Y,G)};switch(D.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return Zm.resolveFlowScalar(D,$,X);case"block-scalar":return Mm.resolveBlockScalar({options:{strict:$}},D,X)}}return null}function Nm(D,$){let{implicitKey:F=!1,indent:X,inFlow:J=!1,offset:Y=-1,type:G="PLAIN"}=$,B=wR.stringifyString({type:G,value:D},{implicitKey:F,indent:X>0?" ".repeat(X):"",inFlow:J,options:{blockQuote:!0,lineWidth:-1}}),H=$.end??[{type:"newline",offset:-1,indent:X,source:`
231
+ `}];switch(B[0]){case"|":case">":{let W=B.indexOf(`
232
+ `),V=B.substring(0,W),_=B.substring(W+1)+`
233
+ `,U=[{type:"block-scalar-header",offset:Y,indent:X,source:V}];if(!SR(U,H))U.push({type:"newline",offset:-1,indent:X,source:`
234
+ `});return{type:"block-scalar",offset:Y,indent:X,props:U,source:_}}case'"':return{type:"double-quoted-scalar",offset:Y,indent:X,source:B,end:H};case"'":return{type:"single-quoted-scalar",offset:Y,indent:X,source:B,end:H};default:return{type:"scalar",offset:Y,indent:X,source:B,end:H}}}function zm(D,$,F={}){let{afterKey:X=!1,implicitKey:J=!1,inFlow:Y=!1,type:G}=F,B="indent"in D?D.indent:null;if(X&&typeof B==="number")B+=2;if(!G)switch(D.type){case"single-quoted-scalar":G="QUOTE_SINGLE";break;case"double-quoted-scalar":G="QUOTE_DOUBLE";break;case"block-scalar":{let W=D.props[0];if(W.type!=="block-scalar-header")throw Error("Invalid block scalar header");G=W.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:G="PLAIN"}let H=wR.stringifyString({type:G,value:$},{implicitKey:J||B===null,indent:B!==null&&B>0?" ".repeat(B):"",inFlow:Y,options:{blockQuote:!0,lineWidth:-1}});switch(H[0]){case"|":case">":Lm(D,H);break;case'"':YY(D,H,"double-quoted-scalar");break;case"'":YY(D,H,"single-quoted-scalar");break;default:YY(D,H,"scalar")}}function Lm(D,$){let F=$.indexOf(`
235
+ `),X=$.substring(0,F),J=$.substring(F+1)+`
236
+ `;if(D.type==="block-scalar"){let Y=D.props[0];if(Y.type!=="block-scalar-header")throw Error("Invalid block scalar header");Y.source=X,D.source=J}else{let{offset:Y}=D,G="indent"in D?D.indent:-1,B=[{type:"block-scalar-header",offset:Y,indent:G,source:X}];if(!SR(B,"end"in D?D.end:void 0))B.push({type:"newline",offset:-1,indent:G,source:`
237
+ `});for(let H of Object.keys(D))if(H!=="type"&&H!=="offset")delete D[H];Object.assign(D,{type:"block-scalar",indent:G,props:B,source:J})}}function SR(D,$){if($)for(let F of $)switch(F.type){case"space":case"comment":D.push(F);break;case"newline":return D.push(F),!0}return!1}function YY(D,$,F){switch(D.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":D.type=F,D.source=$;break;case"block-scalar":{let X=D.props.slice(1),J=$.length;if(D.props[0].type==="block-scalar-header")J-=D.props[0].source.length;for(let Y of X)Y.offset+=J;delete D.props,Object.assign(D,{type:F,source:$,end:X});break}case"block-map":case"block-seq":{let J={type:"newline",offset:D.offset+$.length,indent:D.indent,source:`
238
+ `};delete D.items,Object.assign(D,{type:F,source:$,end:[J]});break}default:{let X="indent"in D?D.indent:-1,J="end"in D&&Array.isArray(D.end)?D.end.filter((Y)=>Y.type==="space"||Y.type==="comment"||Y.type==="newline"):[];for(let Y of Object.keys(D))if(Y!=="type"&&Y!=="offset")delete D[Y];Object.assign(D,{type:F,indent:X,source:$,end:J})}}}jm.createScalarToken=Nm;jm.resolveAsScalar=qm;jm.setScalarValue=zm});var bR=b((fm)=>{var Sm=(D)=>("type"in D)?W$(D):H$(D);function W$(D){switch(D.type){case"block-scalar":{let $="";for(let F of D.props)$+=W$(F);return $+D.source}case"block-map":case"block-seq":{let $="";for(let F of D.items)$+=H$(F);return $}case"flow-collection":{let $=D.start.source;for(let F of D.items)$+=H$(F);for(let F of D.end)$+=F.source;return $}case"document":{let $=H$(D);if(D.end)for(let F of D.end)$+=F.source;return $}default:{let $=D.source;if("end"in D&&D.end)for(let F of D.end)$+=F.source;return $}}}function H$({start:D,key:$,sep:F,value:X}){let J="";for(let Y of D)J+=Y.source;if($)J+=W$($);if(F)for(let Y of F)J+=Y.source;if(X)J+=W$(X);return J}fm.stringify=Sm});var hR=b((vm)=>{var BY=Symbol("break visit"),km=Symbol("skip children"),kR=Symbol("remove item");function T1(D,$){if("type"in D&&D.type==="document")D={start:D.start,value:D.value};vR(Object.freeze([]),D,$)}T1.BREAK=BY;T1.SKIP=km;T1.REMOVE=kR;T1.itemAtPath=(D,$)=>{let F=D;for(let[X,J]of $){let Y=F?.[X];if(Y&&"items"in Y)F=Y.items[J];else return}return F};T1.parentCollection=(D,$)=>{let F=T1.itemAtPath(D,$.slice(0,-1)),X=$[$.length-1][0],J=F?.[X];if(J&&"items"in J)return J;throw Error("Parent collection not found")};function vR(D,$,F){let X=F($,D);if(typeof X==="symbol")return X;for(let J of["key","value"]){let Y=$[J];if(Y&&"items"in Y){for(let G=0;G<Y.items.length;++G){let B=vR(Object.freeze(D.concat([[J,G]])),Y.items[G],F);if(typeof B==="number")G=B-1;else if(B===BY)return BY;else if(B===kR)Y.items.splice(G,1),G-=1}if(typeof X==="function"&&J==="key")X=X($,D)}}return typeof X==="function"?X($,D):X}vm.visit=T1});var Q$=b((cm)=>{var HY=fR(),xm=bR(),gm=hR(),WY="\uFEFF",QY="\x02",VY="\x18",_Y="\x1F",ym=(D)=>!!D&&("items"in D),um=(D)=>!!D&&(D.type==="scalar"||D.type==="single-quoted-scalar"||D.type==="double-quoted-scalar"||D.type==="block-scalar");function mm(D){switch(D){case WY:return"<BOM>";case QY:return"<DOC>";case VY:return"<FLOW_END>";case _Y:return"<SCALAR>";default:return JSON.stringify(D)}}function pm(D){switch(D){case WY:return"byte-order-mark";case QY:return"doc-mode";case VY:return"flow-error-end";case _Y:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
239
+ `:case`\r
240
+ `:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(D[0]){case" ":case"\t":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}cm.createScalarToken=HY.createScalarToken;cm.resolveAsScalar=HY.resolveAsScalar;cm.setScalarValue=HY.setScalarValue;cm.stringify=xm.stringify;cm.visit=gm.visit;cm.BOM=WY;cm.DOCUMENT=QY;cm.FLOW_END=VY;cm.SCALAR=_Y;cm.isCollection=ym;cm.isScalar=um;cm.prettyToken=mm;cm.tokenType=pm});var AY=b((Gp)=>{var D7=Q$();function I2(D){switch(D){case void 0:case" ":case`
241
+ `:case"\r":case"\t":return!0;default:return!1}}var xR=new Set("0123456789ABCDEFabcdef"),Xp=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),V$=new Set(",[]{}"),Jp=new Set(` ,[]{}
242
+ \r `),UY=(D)=>!D||Jp.has(D);class gR{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(D,$=!1){if(D){if(typeof D!=="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+D:D,this.lineEndPos=null}this.atEnd=!$;let F=this.next??"stream";while(F&&($||this.hasChars(1)))F=yield*this.parseNext(F)}atLineEnd(){let D=this.pos,$=this.buffer[D];while($===" "||$==="\t")$=this.buffer[++D];if(!$||$==="#"||$===`
243
+ `)return!0;if($==="\r")return this.buffer[D+1]===`
244
+ `;return!1}charAt(D){return this.buffer[this.pos+D]}continueScalar(D){let $=this.buffer[D];if(this.indentNext>0){let F=0;while($===" ")$=this.buffer[++F+D];if($==="\r"){let X=this.buffer[F+D+1];if(X===`
245
+ `||!X&&!this.atEnd)return D+F+1}return $===`
246
+ `||F>=this.indentNext||!$&&!this.atEnd?D+F:-1}if($==="-"||$==="."){let F=this.buffer.substr(D,3);if((F==="---"||F==="...")&&I2(this.buffer[D+3]))return-1}return D}getLine(){let D=this.lineEndPos;if(typeof D!=="number"||D!==-1&&D<this.pos)D=this.buffer.indexOf(`
247
+ `,this.pos),this.lineEndPos=D;if(D===-1)return this.atEnd?this.buffer.substring(this.pos):null;if(this.buffer[D-1]==="\r")D-=1;return this.buffer.substring(this.pos,D)}hasChars(D){return this.pos+D<=this.buffer.length}setNext(D){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=D,null}peek(D){return this.buffer.substr(this.pos,D)}*parseNext(D){switch(D){case"stream":return yield*this.parseStream();case"line-start":return yield*this.parseLineStart();case"block-start":return yield*this.parseBlockStart();case"doc":return yield*this.parseDocument();case"flow":return yield*this.parseFlowCollection();case"quoted-scalar":return yield*this.parseQuotedScalar();case"block-scalar":return yield*this.parseBlockScalar();case"plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let D=this.getLine();if(D===null)return this.setNext("stream");if(D[0]===D7.BOM)yield*this.pushCount(1),D=D.substring(1);if(D[0]==="%"){let $=D.length,F=D.indexOf("#");while(F!==-1){let J=D[F-1];if(J===" "||J==="\t"){$=F-1;break}else F=D.indexOf("#",F+1)}while(!0){let J=D[$-1];if(J===" "||J==="\t")$-=1;else break}let X=(yield*this.pushCount($))+(yield*this.pushSpaces(!0));return yield*this.pushCount(D.length-X),this.pushNewline(),"stream"}if(this.atLineEnd()){let $=yield*this.pushSpaces(!0);return yield*this.pushCount(D.length-$),yield*this.pushNewline(),"stream"}return yield D7.DOCUMENT,yield*this.parseLineStart()}*parseLineStart(){let D=this.charAt(0);if(!D&&!this.atEnd)return this.setNext("line-start");if(D==="-"||D==="."){if(!this.atEnd&&!this.hasChars(4))return this.setNext("line-start");let $=this.peek(3);if(($==="---"||$==="...")&&I2(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,$==="---"?"doc":"stream"}if(this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!I2(this.charAt(1)))this.indentNext=this.indentValue;return yield*this.parseBlockStart()}*parseBlockStart(){let[D,$]=this.peek(2);if(!$&&!this.atEnd)return this.setNext("block-start");if((D==="-"||D==="?"||D===":")&&I2($)){let F=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=F,yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);let D=this.getLine();if(D===null)return this.setNext("doc");let $=yield*this.pushIndicators();switch(D[$]){case"#":yield*this.pushCount(D.length-$);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(UY),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return $+=yield*this.parseBlockScalarHeader(),$+=yield*this.pushSpaces(!0),yield*this.pushCount(D.length-$),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let D,$,F=-1;do{if(D=yield*this.pushNewline(),D>0)$=yield*this.pushSpaces(!1),this.indentValue=F=$;else $=0;$+=yield*this.pushSpaces(!0)}while(D+$>0);let X=this.getLine();if(X===null)return this.setNext("flow");if(F!==-1&&F<this.indentNext&&X[0]!=="#"||F===0&&(X.startsWith("---")||X.startsWith("..."))&&I2(X[3])){if(!(F===this.indentNext-1&&this.flowLevel===1&&(X[0]==="]"||X[0]==="}")))return this.flowLevel=0,yield D7.FLOW_END,yield*this.parseLineStart()}let J=0;while(X[J]===",")J+=yield*this.pushCount(1),J+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(J+=yield*this.pushIndicators(),X[J]){case void 0:return"flow";case"#":return yield*this.pushCount(X.length-J),"flow";case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,"flow";case"}":case"]":return yield*this.pushCount(1),this.flowKey=!0,this.flowLevel-=1,this.flowLevel?"flow":"doc";case"*":return yield*this.pushUntil(UY),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let Y=this.charAt(1);if(this.flowKey||I2(Y)||Y===",")return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),"flow"}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let D=this.charAt(0),$=this.buffer.indexOf(D,this.pos+1);if(D==="'")while($!==-1&&this.buffer[$+1]==="'")$=this.buffer.indexOf("'",$+2);else while($!==-1){let J=0;while(this.buffer[$-1-J]==="\\")J+=1;if(J%2===0)break;$=this.buffer.indexOf('"',$+1)}let F=this.buffer.substring(0,$),X=F.indexOf(`
248
+ `,this.pos);if(X!==-1){while(X!==-1){let J=this.continueScalar(X+1);if(J===-1)break;X=F.indexOf(`
249
+ `,J)}if(X!==-1)$=X-(F[X-1]==="\r"?2:1)}if($===-1){if(!this.atEnd)return this.setNext("quoted-scalar");$=this.buffer.length}return yield*this.pushToIndex($+1,!1),this.flowLevel?"flow":"doc"}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let D=this.pos;while(!0){let $=this.buffer[++D];if($==="+")this.blockScalarKeep=!0;else if($>"0"&&$<="9")this.blockScalarIndent=Number($)-1;else if($!=="-")break}return yield*this.pushUntil(($)=>I2($)||$==="#")}*parseBlockScalar(){let D=this.pos-1,$=0,F;D:for(let J=this.pos;F=this.buffer[J];++J)switch(F){case" ":$+=1;break;case`
250
+ `:D=J,$=0;break;case"\r":{let Y=this.buffer[J+1];if(!Y&&!this.atEnd)return this.setNext("block-scalar");if(Y===`
251
+ `)break}default:break D}if(!F&&!this.atEnd)return this.setNext("block-scalar");if($>=this.indentNext){if(this.blockScalarIndent===-1)this.indentNext=$;else this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{let J=this.continueScalar(D+1);if(J===-1)break;D=this.buffer.indexOf(`
252
+ `,J)}while(D!==-1);if(D===-1){if(!this.atEnd)return this.setNext("block-scalar");D=this.buffer.length}}let X=D+1;F=this.buffer[X];while(F===" ")F=this.buffer[++X];if(F==="\t"){while(F==="\t"||F===" "||F==="\r"||F===`
253
+ `)F=this.buffer[++X];D=X-1}else if(!this.blockScalarKeep)do{let J=D-1,Y=this.buffer[J];if(Y==="\r")Y=this.buffer[--J];let G=J;while(Y===" ")Y=this.buffer[--J];if(Y===`
254
+ `&&J>=this.pos&&J+1+$>G)D=J;else break}while(!0);return yield D7.SCALAR,yield*this.pushToIndex(D+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let D=this.flowLevel>0,$=this.pos-1,F=this.pos-1,X;while(X=this.buffer[++F])if(X===":"){let J=this.buffer[F+1];if(I2(J)||D&&V$.has(J))break;$=F}else if(I2(X)){let J=this.buffer[F+1];if(X==="\r")if(J===`
255
+ `)F+=1,X=`
256
+ `,J=this.buffer[F+1];else $=F;if(J==="#"||D&&V$.has(J))break;if(X===`
257
+ `){let Y=this.continueScalar(F+1);if(Y===-1)break;F=Math.max(F,Y-2)}}else{if(D&&V$.has(X))break;$=F}if(!X&&!this.atEnd)return this.setNext("plain-scalar");return yield D7.SCALAR,yield*this.pushToIndex($+1,!0),D?"flow":"doc"}*pushCount(D){if(D>0)return yield this.buffer.substr(this.pos,D),this.pos+=D,D;return 0}*pushToIndex(D,$){let F=this.buffer.slice(this.pos,D);if(F)return yield F,this.pos+=F.length,F.length;else if($)yield"";return 0}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(UY))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let D=this.flowLevel>0,$=this.charAt(1);if(I2($)||D&&V$.has($)){if(!D)this.indentNext=this.indentValue+1;else if(this.flowKey)this.flowKey=!1;return(yield*this.pushCount(1))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators())}}}return 0}*pushTag(){if(this.charAt(1)==="<"){let D=this.pos+2,$=this.buffer[D];while(!I2($)&&$!==">")$=this.buffer[++D];return yield*this.pushToIndex($===">"?D+1:D,!1)}else{let D=this.pos+1,$=this.buffer[D];while($)if(Xp.has($))$=this.buffer[++D];else if($==="%"&&xR.has(this.buffer[D+1])&&xR.has(this.buffer[D+2]))$=this.buffer[D+=3];else break;return yield*this.pushToIndex(D,!1)}}*pushNewline(){let D=this.buffer[this.pos];if(D===`
258
+ `)return yield*this.pushCount(1);else if(D==="\r"&&this.charAt(1)===`
259
+ `)return yield*this.pushCount(2);else return 0}*pushSpaces(D){let $=this.pos-1,F;do F=this.buffer[++$];while(F===" "||D&&F==="\t");let X=$-this.pos;if(X>0)yield this.buffer.substr(this.pos,X),this.pos=$;return X}*pushUntil(D){let $=this.pos,F=this.buffer[$];while(!D(F))F=this.buffer[++$];return yield*this.pushToIndex($,!1)}}Gp.Lexer=gR});var KY=b((Bp)=>{class yR{constructor(){this.lineStarts=[],this.addNewLine=(D)=>this.lineStarts.push(D),this.linePos=(D)=>{let $=0,F=this.lineStarts.length;while($<F){let J=$+F>>1;if(this.lineStarts[J]<D)$=J+1;else F=J}if(this.lineStarts[$]===D)return{line:$+1,col:1};if($===0)return{line:0,col:D};let X=this.lineStarts[$-1];return{line:$,col:D-X+1}}}}Bp.LineCounter=yR});var CY=b((Vp)=>{var Wp=U8("process"),uR=Q$(),Qp=AY();function c8(D,$){for(let F=0;F<D.length;++F)if(D[F].type===$)return!0;return!1}function mR(D){for(let $=0;$<D.length;++$)switch(D[$].type){case"space":case"comment":case"newline":break;default:return $}return-1}function cR(D){switch(D?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function _$(D){switch(D.type){case"document":return D.start;case"block-map":{let $=D.items[D.items.length-1];return $.sep??$.start}case"block-seq":return D.items[D.items.length-1].start;default:return[]}}function o6(D){if(D.length===0)return[];let $=D.length;D:while(--$>=0)switch(D[$].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break D}while(D[++$]?.type==="space");return D.splice($,D.length)}function pR(D){if(D.start.type==="flow-seq-start"){for(let $ of D.items)if($.sep&&!$.value&&!c8($.start,"explicit-key-ind")&&!c8($.sep,"map-value-ind")){if($.key)$.value=$.key;if(delete $.key,cR($.value))if($.value.end)Array.prototype.push.apply($.value.end,$.sep);else $.value.end=$.sep;else Array.prototype.push.apply($.start,$.sep);delete $.sep}}}class lR{constructor(D){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new Qp.Lexer,this.onNewLine=D}*parse(D,$=!1){if(this.onNewLine&&this.offset===0)this.onNewLine(0);for(let F of this.lexer.lex(D,$))yield*this.next(F);if(!$)yield*this.end()}*next(D){if(this.source=D,Wp.env.LOG_TOKENS)console.log("|",uR.prettyToken(D));if(this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=D.length;return}let $=uR.tokenType(D);if(!$){let F=`Not a YAML token: ${D}`;yield*this.pop({type:"error",offset:this.offset,message:F,source:D}),this.offset+=D.length}else if($==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=$,yield*this.step(),$){case"newline":if(this.atNewLine=!0,this.indent=0,this.onNewLine)this.onNewLine(this.offset+D.length);break;case"space":if(this.atNewLine&&D[0]===" ")this.indent+=D.length;break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":if(this.atNewLine)this.indent+=D.length;break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=D.length}}*end(){while(this.stack.length>0)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let D=this.peek(1);if(this.type==="doc-end"&&D?.type!=="doc-end"){while(this.stack.length>0)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!D)return yield*this.stream();switch(D.type){case"document":return yield*this.document(D);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(D);case"block-scalar":return yield*this.blockScalar(D);case"block-map":return yield*this.blockMap(D);case"block-seq":return yield*this.blockSequence(D);case"flow-collection":return yield*this.flowCollection(D);case"doc-end":return yield*this.documentEnd(D)}yield*this.pop()}peek(D){return this.stack[this.stack.length-D]}*pop(D){let $=D??this.stack.pop();if(!$)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield $;else{let F=this.peek(1);if($.type==="block-scalar")$.indent="indent"in F?F.indent:0;else if($.type==="flow-collection"&&F.type==="document")$.indent=0;if($.type==="flow-collection")pR($);switch(F.type){case"document":F.value=$;break;case"block-scalar":F.props.push($);break;case"block-map":{let X=F.items[F.items.length-1];if(X.value){F.items.push({start:[],key:$,sep:[]}),this.onKeyLine=!0;return}else if(X.sep)X.value=$;else{Object.assign(X,{key:$,sep:[]}),this.onKeyLine=!X.explicitKey;return}break}case"block-seq":{let X=F.items[F.items.length-1];if(X.value)F.items.push({start:[],value:$});else X.value=$;break}case"flow-collection":{let X=F.items[F.items.length-1];if(!X||X.value)F.items.push({start:[],key:$,sep:[]});else if(X.sep)X.value=$;else Object.assign(X,{key:$,sep:[]});return}default:yield*this.pop(),yield*this.pop($)}if((F.type==="document"||F.type==="block-map"||F.type==="block-seq")&&($.type==="block-map"||$.type==="block-seq")){let X=$.items[$.items.length-1];if(X&&!X.sep&&!X.value&&X.start.length>0&&mR(X.start)===-1&&($.indent===0||X.start.every((J)=>J.type!=="comment"||J.indent<$.indent))){if(F.type==="document")F.end=X.start;else F.items.push({start:X.start});$.items.splice(-1,1)}}}}*stream(){switch(this.type){case"directive-line":yield{type:"directive",offset:this.offset,source:this.source};return;case"byte-order-mark":case"space":case"comment":case"newline":yield this.sourceToken;return;case"doc-mode":case"doc-start":{let D={type:"document",offset:this.offset,start:[]};if(this.type==="doc-start")D.start.push(this.sourceToken);this.stack.push(D);return}}yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(D){if(D.value)return yield*this.lineEnd(D);switch(this.type){case"doc-start":{if(mR(D.start)!==-1)yield*this.pop(),yield*this.step();else D.start.push(this.sourceToken);return}case"anchor":case"tag":case"space":case"comment":case"newline":D.start.push(this.sourceToken);return}let $=this.startBlockValue(D);if($)this.stack.push($);else yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(D){if(this.type==="map-value-ind"){let $=_$(this.peek(2)),F=o6($),X;if(D.end)X=D.end,X.push(this.sourceToken),delete D.end;else X=[this.sourceToken];let J={type:"block-map",offset:D.offset,indent:D.indent,items:[{start:F,key:D,sep:X}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=J}else yield*this.lineEnd(D)}*blockScalar(D){switch(this.type){case"space":case"comment":case"newline":D.props.push(this.sourceToken);return;case"scalar":if(D.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let $=this.source.indexOf(`
260
+ `)+1;while($!==0)this.onNewLine(this.offset+$),$=this.source.indexOf(`
261
+ `,$)+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 Y=[];for(let G=0;G<$.sep.length;++G){let B=$.sep[G];switch(B.type){case"newline":Y.push(G);break;case"space":break;case"comment":if(B.indent>D.indent)Y.length=0;break;default:Y.length=0}}if(Y.length>=2)J=$.sep.splice(Y[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(c8($.start,"newline"))Object.assign($,{key:null,sep:[this.sourceToken]});else{let Y=o6($.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:Y,key:null,sep:[this.sourceToken]}]})}else if($.value)D.items.push({start:[],key:null,sep:[this.sourceToken]});else if(c8($.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(cR($.key)&&!c8($.sep,"newline")){let Y=o6($.start),G=$.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:Y,key:G,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(c8($.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 Y=this.flowScalar(this.type);if(X||$.value)D.items.push({start:J,key:Y,sep:[]}),this.onKeyLine=!0;else if($.sep)this.stack.push(Y);else Object.assign($,{key:Y,sep:[]}),this.onKeyLine=!0;return}default:{let Y=this.startBlockValue(D);if(Y){if(Y.type==="block-seq"){if(!$.explicitKey&&$.sep&&!c8($.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(Y);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||c8($.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=_$(F),J=o6(X);pR(D);let Y=D.end.splice(1,D.end.length);Y.push(this.sourceToken);let G={type:"block-map",offset:D.offset,indent:D.indent,items:[{start:J,key:D,sep:Y}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=G}else yield*this.lineEnd(D)}}flowScalar(D){if(this.onNewLine){let $=this.source.indexOf(`
262
+ `)+1;while($!==0)this.onNewLine(this.offset+$),$=this.source.indexOf(`
263
+ `,$)+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 $=_$(D),F=o6($);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 $=_$(D),F=o6($);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()}}}Vp.Parser=lR});var rR=b((Mp)=>{var dR=GY(),Up=r9(),$7=o9(),Ap=KG(),Kp=UD(),Cp=KY(),iR=CY();function nR(D){let $=D.prettyErrors!==!1;return{lineCounter:D.lineCounter||$&&new Cp.LineCounter||null,prettyErrors:$}}function Op(D,$={}){let{lineCounter:F,prettyErrors:X}=nR($),J=new iR.Parser(F?.addNewLine),Y=new dR.Composer($),G=Array.from(Y.compose(J.parse(D)));if(X&&F)for(let B of G)B.errors.forEach($7.prettifyError(D,F)),B.warnings.forEach($7.prettifyError(D,F));if(G.length>0)return G;return Object.assign([],{empty:!0},Y.streamInfo())}function sR(D,$={}){let{lineCounter:F,prettyErrors:X}=nR($),J=new iR.Parser(F?.addNewLine),Y=new dR.Composer($),G=null;for(let B of Y.compose(J.parse(D),!0,D.length))if(!G)G=B;else if(G.options.logLevel!=="silent"){G.errors.push(new $7.YAMLParseError(B.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}if(X&&F)G.errors.forEach($7.prettifyError(D,F)),G.warnings.forEach($7.prettifyError(D,F));return G}function Rp(D,$,F){let X=void 0;if(typeof $==="function")X=$;else if(F===void 0&&$&&typeof $==="object")F=$;let J=sR(D,F);if(!J)return null;if(J.warnings.forEach((Y)=>Ap.warn(J.options.logLevel,Y)),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 Ep(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(Kp.isDocument(D)&&!X)return D.toString(F);return new Up.Document(D,X,F).toString(F)}Mp.parse=Rp;Mp.parseAllDocuments=Op;Mp.parseDocument=sR;Mp.stringify=Ep});var zp,Lp,jp,OY,Ip,l8,Tp,wp,Sp,fp,A4D,bp,kp,vp,U$,oR,hp,xp,gp,yp,up,mp,pp,cp,lp,dp,ip,np,sp,rp,op,ap,tp,ep,Dc,$c,Fc,Xc,A$,Jc,Gc,RY,Yc,Bc;var EY=M(()=>{zp=GY(),Lp=r9(),jp=cG(),OY=o9(),Ip=k9(),l8=UD(),Tp=y8(),wp=sD(),Sp=m8(),fp=p8(),A4D=Q$(),bp=AY(),kp=KY(),vp=CY(),U$=rR(),oR=f9();hp=zp.Composer,xp=Lp.Document,gp=jp.Schema,yp=OY.YAMLError,up=OY.YAMLParseError,mp=OY.YAMLWarning,pp=Ip.Alias,cp=l8.isAlias,lp=l8.isCollection,dp=l8.isDocument,ip=l8.isMap,np=l8.isNode,sp=l8.isPair,rp=l8.isScalar,op=l8.isSeq,ap=Tp.Pair,tp=wp.Scalar,ep=Sp.YAMLMap,Dc=fp.YAMLSeq,$c=bp.Lexer,Fc=kp.LineCounter,Xc=vp.Parser,A$=U$.parse,Jc=U$.parseAllDocuments,Gc=U$.parseDocument,RY=U$.stringify,Yc=oR.visit,Bc=oR.visitAsync});var Hc,Wc,Qc,Vc,_c,Uc,tR,Ac,Kc,aR,Cc,Oc,Rc,Ec,eR;var DE=M(()=>{mD();Hc=Q.object({id:Q.string().min(1),type:Q.literal("filesystem"),priority:Q.number().int(),readOnly:Q.boolean(),config:Q.object({home:Q.string().min(1).optional()})}),Wc=Q.object({id:Q.string().min(1),type:Q.literal("cloud-gateway"),priority:Q.number().int(),readOnly:Q.boolean(),config:Q.object({url:Q.string().min(1),token:Q.string(),defaultCategory:Q.string().optional(),defaultTypeId:Q.string().optional()})}),Qc=Q.discriminatedUnion("type",[Hc,Wc]),Vc=Q.object({binary:Q.string().min(1).optional(),extraArgs:Q.array(Q.string()).optional(),env:Q.record(Q.string()).optional(),cliVersion:Q.string().min(1).optional()}).strict(),_c=Q.record(Q.unknown()).and(Q.object({cmd:Vc.optional()}).partial()),Uc=Q.enum(["rate-limit","timeout","auth","network","server-5xx","unknown"]),tR=Q.lazy(()=>Q.object({engine:Q.enum(["http","mcp","cli","claude-code","acp","codex","cursor"]),variant:Q.string().min(1),overrides:_c.optional(),modelId:Q.string().min(1).optional(),reasoningId:Q.string().min(1).optional(),permissionPolicy:Q.enum(["auto","supervised","plan"]).optional(),fallbacks:Q.array(Q.object({executor:tR,onErrorKinds:Q.array(Uc).min(1),maxRetries:Q.number().int().min(1).optional()})).optional()})),Ac=Q.discriminatedUnion("channel",[Q.object({channel:Q.literal("web"),inboundToken:Q.string().optional()}),Q.object({channel:Q.literal("line"),channelSecret:Q.string(),channelAccessToken:Q.string()}),Q.object({channel:Q.literal("telegram"),botToken:Q.string(),webhookSecretToken:Q.string().optional()}),Q.object({channel:Q.literal("lark"),appId:Q.string(),appSecret:Q.string(),encryptKey:Q.string(),verificationToken:Q.string()}),Q.object({channel:Q.literal("whatsapp"),phoneNumberId:Q.string(),accessToken:Q.string(),appSecret:Q.string(),verifyToken:Q.string()})]),Kc=Q.object({channel:Q.enum(["web","line","telegram","lark","whatsapp"]),enabled:Q.boolean(),credentials:Ac,profile:Q.object({displayName:Q.string().optional(),avatarUrl:Q.string().optional()}).optional()}).refine((D)=>D.channel===D.credentials.channel,{message:"channel and credentials.channel must match",path:["credentials","channel"]}),aR=Q.enum(["auto","ask","deny"]),Cc=Q.object({default:aR,rules:Q.array(Q.object({pattern:Q.string().min(1),action:aR}))}),Oc=Q.object({enabled:Q.boolean().optional(),triggerTokens:Q.number().int().min(1).max(2000000).optional(),maxSummaryMessages:Q.number().int().min(1).max(500).optional(),memoryFlush:Q.object({enabled:Q.boolean().optional()}).optional()}),Rc=Q.object({intentClassifier:Q.object({evaluator:Q.enum(["heuristic","llm"]).optional()}).optional(),qualityGate:Q.object({evaluator:Q.enum(["heuristic","llm"]).optional(),mode:Q.enum(["observe","warn","retry","block"]).optional(),threshold:Q.number().min(0).max(10).optional()}).optional()}).strict(),Ec=Q.object({contextWindowTokens:Q.number().int().min(512).max(2000000).optional(),reserveTokens:Q.number().int().min(0).max(1e6).optional(),keepRecentTokens:Q.number().int().min(1).max(2000000).optional(),maxHistoryMessages:Q.number().int().min(1).max(200).optional(),compaction:Oc.optional(),decisionPipeline:Rc.optional()}).superRefine((D,$)=>{if(D.contextWindowTokens!==void 0&&D.reserveTokens!==void 0&&D.reserveTokens>=D.contextWindowTokens)$.addIssue({code:Q.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:Q.ZodIssueCode.custom,path:["compaction","triggerTokens"],message:"compaction.triggerTokens must not exceed contextWindowTokens"})}),eR=Q.object({brains:Q.array(Qc),brainWriteTarget:Q.string(),brainRetrieval:Q.enum(["merge-by-priority","first-match"]),executor:tR,channels:Q.array(Kc),evolution:Q.object({enabled:Q.boolean(),observationRetentionDays:Q.number().int().nonnegative()}),toolPolicy:Cc.optional(),orchestrator:Ec.optional()})});import{writeFile as Mc}from"fs/promises";async function Z0(D){let $=await D.select().from(q2).where(k(q2.pk,"default")).get();if(!$)throw Error("worker_config row missing \u2014 bootstrap did not run");return{config:$.configJson,version:$.version}}async function F7(D,$,F,X={}){let J=eR.safeParse(F);if(!J.success)throw new i2(J.error.issues);let Y=await Z0(D);if(X.ifMatchVersion!==void 0&&X.ifMatchVersion!==Y.version)throw new n2(X.ifMatchVersion,Y.version);let G=J.data,B=new Set(H8(Y.config).map((A)=>A.path)),H=H8(G),W=new Set(H.map((A)=>A.path));for(let{path:A,value:O}of H)if(O.length>0)await $.put(A,O);for(let A of B)if(!W.has(A))await $.remove(A);let V=X5(G),_=Y.version+1,U=new Date().toISOString();return await D.update(q2).set({configJson:V,version:_,updatedAt:U,updatedBy:"api"}).where(k(q2.pk,"default")).run(),{config:V,version:_}}async function X7(D,$,F){let X=JQ(D),J=RY({version:F,config:$});try{await Mc(X,J,{encoding:"utf8"})}catch(Y){E.warn(`[mirror-config] failed to write ${X}: ${String(Y)}`)}}async function a6(D){let $=await F7(D.db,D.vault,D.raw,D.ifMatchVersion===void 0?{}:{ifMatchVersion:D.ifMatchVersion});await X7(D.workerId,$.config,$.version);let F="ok";try{await D.reloadRuntime($.config,$.version)}catch(X){F="failed",E.error("[applyConfigUpdate] runtime reload failed",X)}return{...$,runtimeReload:F}}var i2,n2;var MY=M(()=>{I0();bD();GD();A0();EY();DE();i2=class i2 extends Error{issues;constructor(D,$="invalid worker config"){super($);this.issues=D;this.name="InvalidConfigError"}};n2=class n2 extends Error{expected;actual;constructor(D,$){super(`config version ${D} does not match current version ${$}`);this.expected=D;this.actual=$;this.name="ConfigVersionConflictError"}}});function K$(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 C$($.jobId);return{job:F}}}}var C$;var ZY=M(()=>{C$=class C$ extends Error{jobId;constructor(D){super(`cron job ${D} \u4E0D\u5B58\u5728`);this.jobId=D;this.name="CronJobNotFoundError"}}});class PY{deps;constructor(D){this.deps=D}async handleRequest(D){let{id:$,method:F,params:X}=D;try{let J=f3(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 Y=J.params.safeParse(X??{});if(!Y.success){this.replyError($,"invalid_params",`params schema mismatch for ${F}`,Y.error.issues);return}let G=Y.data;switch(F){case MD["chat.send"].method:await this.handleChatSend($,G);break;case MD["config.get"].method:await this.handleConfigGet($);break;case MD["config.put"].method:await this.handleConfigPut($,G);break;case MD["token.rotate"].method:await this.handleTokenRotate($);break;case MD["logs.tail"].method:await this.handleLogsTail($,G);break;case MD["approval.list"].method:this.handleApprovalList($);break;case MD["approval.grant"].method:this.handleApprovalGrant($,G);break;case MD["cron.list"].method:await this.handleCronList($,G);break;case MD["cron.add"].method:await this.handleCronAdd($,G);break;case MD["cron.remove"].method:await this.handleCronRemove($,G);break;case MD["cron.update"].method:await this.handleCronUpdate($,G);break;case MD["secrets.list"].method:await this.handleSecretsList($,G);break;case MD["secrets.put"].method:await this.handleSecretsPut($,G);break;case MD["secrets.delete"].method:await this.handleSecretsDelete($,G);break;case MD["engines.list"].method:await this.handleEnginesList($,G);break;case MD["brain.test"].method:await this.handleBrainTest($,G);break;case MD["executor.test"].method:await this.handleExecutorTest($,G);break;case MD["channel.test"].method:await this.handleChannelTest($,G);break;case MD["orchestrator.tasks.list"].method:await this.handleTasksList($,G);break;case MD["orchestrator.tasks.create"].method:await this.handleTasksCreate($,G);break;case MD["orchestrator.conversations.list"].method:await this.handleConversationsList($,G);break;case MD["orchestrator.messages.list"].method:await this.handleMessagesList($,G);break;case MD["workers.info"].method:await this.handleWorkersInfo($,G);break;case MD["workers.stop"].method:await this.handleWorkersStop($,G);break;default:this.replyError($,"method_not_implemented",`${F} not routed`)}}catch(J){E.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=Zc(String($.content)),J=X?.body&&X.body.length>0?X.body:X?"A new session has started. Reply briefly to confirm.":String($.content),Y=typeof $.conversationId==="string"?$.conversationId:void 0,G=Pc(this.deps.workerId,Y),B={workerId:this.deps.workerId,channel:"web",accountId:"sys:gateway",chatId:G,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)=>{E.warn(`[gateway-dispatcher ${this.deps.workerId}] orchestrator.ingest failed: ${String(H)}`)}),this.replyOk(D,{conversationId:G,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 i2){this.replyError(D,"invalid_config",J.message,{issues:J.issues});return}if(J instanceof n2){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),Y=$.decision==="allow"?"allow":"deny",G=F.grant(X,J,Y);this.replyOk(D,{granted:G})}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 C$){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 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}})}replyAppError(D,$){if($ instanceof zD){let F=$.status===404?"not_found":$.status===400?"invalid_params":"internal_error";this.replyError(D,F,$.message);return}throw $}}function Zc(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 Pc(D,$){if($===void 0)return`gw:${D}:${crypto.randomUUID()}`;if($.startsWith("gw:"))return $;return`gw:conv:${$}`}var $E=M(()=>{D0();lD();GD();MY();ZY()});class qY{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=J7($);if(!F)return null;let X=typeof $.delta==="string"?$.delta:"";return{name:DD.AGENT_THINKING,payload:{conversationId:F,chunk:X}}}case"orchestrator.tool_call":{let F=J7($),X=$.call??{},J=d8(X.id),Y=d8(X.name);if(!F||!J||!Y)return null;return{name:DD.AGENT_TOOL_CALL,payload:{conversationId:F,toolCallId:J,toolName:Y,status:"pending",...X.arguments!==void 0?{args:X.arguments}:{}}}}case"orchestrator.finished":{let F=J7($);if(!F)return null;return{name:DD.AGENT_DONE,payload:{conversationId:F,finishReason:"stop"}}}case"orchestrator.error":{let F=J7($);if(!F)return null;return{name:DD.AGENT_DONE,payload:{conversationId:F,finishReason:"error"}}}case"conversation.message":{let F=J7($),X=d8($.role);if(!F||!X)return null;if(X!=="user"&&X!=="assistant"&&X!=="system")return null;return{name:DD.CHAT_MESSAGE,payload:{conversationId:F,role:X,content:typeof $.content==="string"?$.content:"",createdAt:Date.parse(D.at)||Date.now()}}}case"approval.requested":{let F=d8($.taskId),X=d8($.toolCallId),J=d8($.toolName),Y=typeof $.expiresAt==="number"?$.expiresAt:null;if(!F||!X||!J||Y===null)return null;let G=typeof $.params==="object"&&$.params!==null?$.params:{};return{name:DD.APPROVAL_REQUESTED,payload:{taskId:F,toolCallId:X,toolName:J,params:G,expiresAt:Y}}}default:return null}}}function d8(D){return typeof D==="string"&&D.length>0?D:null}function J7(D){return d8(D.gatewayConversationId)??d8(D.conversationId)}var FE=M(()=>{D0()});function O$(D){let $=pC(D),F=!1,X=null,J=new qY({workerId:$.workerId,getBus:()=>D.getRuntime().bus,sendEvent:(G)=>X?.send(G)}),Y=new PY({workerId:$.workerId,getRuntime:D.getRuntime,...D.handlers?{handlers:D.handlers}:{},sendResponse:(G)=>X?.send(G)});return X=new YG({options:$,onConnected:()=>{F=!0,J.start()},onDisconnected:(G)=>{F=!1,J.stop(),E.info(`[gateway-client ${$.workerId}] disconnected: ${G}`)},onFrame:(G)=>{if(G.type==="request"){Y.handleRequest(G);return}E.warn(`[gateway-client ${$.workerId}] unexpected inbound frame type=${G.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 XE(D){await D.stop()}var JE=M(()=>{GD();mC();$E();FE()});function qc(D){if(D instanceof Error)return D.message;return String(D)}async function t6(D,$){let F=$.brains;try{let X=await D.runtime.brain.health();if(F.length===1){let J=F[0];return{brains:[{id:J.id,type:J.type,status:X.status}]}}return{brains:[{id:"aggregate",type:"multi",status:X.status}]}}catch(X){return{brains:[{id:F.length===1?F[0].id:"aggregate",type:F.length===1?F[0].type:"multi",status:"down",errorMessage:qc(X)}]}}}function zc(D){return Nc.has(D)}function Lc(D){if(D instanceof Error)return D.message;return String(D)}async function e6(D,$,F={}){if(!zc($))throw zD.notFound(`unknown channel '${$}'`);let X=D.runtime.channels.get($);if(!X)throw zD.notFound(`channel '${$}' is not bound or not enabled`);let J=C1($);if(F.chatId===void 0||F.text===void 0)return{sent:!1,platformResponse:{dryRun:!0,channel:$,enabled:X.enabled}};let Y={channel:$,chatId:F.chatId,text:F.text};try{return await J.send(X,Y),{sent:!0,platformResponse:{ok:!0}}}catch(G){return{sent:!1,error:Lc(G)}}}var Nc;var GE=M(()=>{lD();C9();Nc=new Set(["web","line","telegram","lark","whatsapp"])});function jc(D){if(D instanceof Error)return D.message;return String(D)}async function Ic(D){let $=performance.now(),F=new AbortController,X=setTimeout(()=>F.abort(),5000);try{let J=D.runtime.executor.run({messages:[{role:"user",content:"ping"}],signal:F.signal}),Y="";for await(let G of J)if(G.type==="assistant_message_delta"){if(Y+=G.delta,Y.length>=100)break}else if(G.type==="error")return{ok:!1,latencyMs:Math.round(performance.now()-$),error:G.error};else if(G.type==="finish")break;return{ok:!0,latencyMs:Math.round(performance.now()-$),output:Y.slice(0,100)}}catch(J){return{ok:!1,latencyMs:Math.round(performance.now()-$),error:jc(J)}}finally{clearTimeout(X)}}async function D3(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 Y=await Ic(D);if(!Y.ok)return{executor:{type:X,status:"degraded",tinyProbe:{ok:!1,latencyMs:Y.latencyMs},...Y.error===void 0?{}:{probeError:Y.error}}};return{executor:{type:X,status:J,tinyProbe:{ok:!0,latencyMs:Y.latencyMs,...Y.output===void 0?{}:{output:Y.output}}}}}function wc(D){if(!D)return"unknown";return D.status}async function YE(D){try{let $=await D();return wc($??null)}catch{return"unknown"}}function Sc(D){let $=fc(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 fc(D){try{return B8(D)}catch{return null}}function bc(D,$){if(!D)return;return`${D.replace(/\/+$/,"")}/${$}/webhook`}async function $3(D,$,F){let{runtime:X}=D,J=await YE(()=>X.executor.health()),Y=await YE(()=>X.brain.health()),G=$.brains.map((V)=>({id:V.id,type:V.type,status:Y})),B=Sc($.executor),H={type:$.executor.engine,...B===void 0?{}:{model:B},status:J},W=$.channels.map((V)=>{let _=bc(F.advertisedBaseUrl,V.channel);return{channel:V.channel,enabled:V.enabled,..._?{webhookUrl:_}:{}}});return{workerId:D.workerId,runtimeVersion:Tc,configVersion:D.configVersion,brains:G,executor:H,channels:W,evolutionEnabled:$.evolution.enabled,startedAt:D.startedAt,...F.advertisedBaseUrl?{advertisedBaseUrl:F.advertisedBaseUrl}:{}}}var Tc="0.2.0";var BE=M(()=>{_1()});async function i8(D,$,F){let X=q6(),{ciphertext:J,nonce:Y,authTag:G}=$.encryptString(X),B=new Date().toISOString();return await D.update(s0).set({apiTokenEnc:J,nonce:Y,authTag:G,rotatedAt:B}).where(k(s0.pk,"default")).run(),F.tokenPlaintext=X,{newToken:X}}var HE=M(()=>{bD();A0();CJ()});async function F3(D){return D.list()}async function X3(D,$,F){if(!$||!$.trim())throw zD.badRequest("secret key is required");if(F.length===0)throw zD.badRequest("secret value must be a non-empty string");await D.put($,F)}async function J3(D,$){if(!$||!$.trim())throw zD.badRequest("secret key is required");if(await D.get($)===null)throw zD.notFound(`secret '${$}' not found`);await D.remove($)}var WE=M(()=>{lD()});class w1{pending=new Map;disposed=!1;wait(D){if(this.disposed)return Promise.reject(new QE);let $=D.timeoutMs??NY,F=Date.now()+$,X=w1.key(D.taskId,D.toolCallId);return new Promise((J)=>{let Y=setTimeout(()=>{let B=this.pending.get(X);if(!B)return;this.pending.delete(X),B.resolve("deny")},$);Y.unref?.(),this.pending.set(X,{taskId:D.taskId,toolCallId:D.toolCallId,toolName:D.toolName,params:D.params,expiresAt:F,resolve:J,timer:Y})})}grant(D,$,F){let X=w1.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 QE,NY=60000;var R$=M(()=>{QE=class QE extends Error{name="ApprovalDisposedError";constructor(){super("approval store disposed")}}});class _E{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 E$(){return Date.now()}function S1(){return new Date().toISOString()}function zY(D){if(D===null||typeof D!=="object"||!("unref"in D))return;try{D.unref()}catch{}}class f1{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:S1(),lastActivityAt:S1(),cancel:async()=>this.cancelHandle(X)};this.handles.set(X,J);let Y={handle:J,req:D,enqueuedAt:E$(),enqueueSeq:++this.enqueueSeq,resolve:$,reject:F,cancelledBeforeStart:!1},G=this.groups.get(D.group);if(!G)G=new _E,this.groups.set(D.group,G);if(G.enqueue(Y),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 G of this.handles.values())D[G.state]+=1;let $=new Map,F=0;for(let G of this.groups.values())for(let B of G.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 G of X){let B=this.opts.perEngineLimits[G]??this.opts.maxConcurrentTotal,H=this.runningByEngine.get(G)??0,W=$.get(G)??0,V=Math.max(0,B-H),_=Math.max(0,this.opts.maxConcurrentTotal-this.totalActive());J[G]={limit:B,active:H,queued:W,available:Math.min(V,_)}}let Y=this.terminalLog.slice(-10).map((G)=>({id:G.handle.id,engine:G.handle.engine,group:G.handle.group,state:G.handle.state,terminatedAt:G.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:Y}}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),zY(this.gcTimer)}gcTerminal(){let D=E$()-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=S1(),this.terminalLog.push({handle:D.handle,recordedAt:E$()}),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($){E.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),zY(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(($)=>E.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 Y=J.head();if(!this.canStart(Y.handle))continue;let G=kc[Y.handle.class];if(G>$||G===$&&Y.enqueueSeq<F)D=Y,$=G,F=Y.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=S1(),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:Y}=$,G=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=S1(),this.armStallTimer(D),G=B.onActivity(()=>this.onActivity(D)),await X.job(),D.cancelRequested)F.state="cancelled",Y(Error("cancelled"));else F.state="completed",J()}catch(B){F.state=D.cancelRequested?"cancelled":"failed",Y(B)}finally{if(F.updatedAt=S1(),D.stallTimer)clearTimeout(D.stallTimer),D.stallTimer=null;if(D.killTimer)clearTimeout(D.killTimer),D.killTimer=null;if(G)try{G()}catch{}this.terminalLog.push({handle:F,recordedAt:E$()}),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),zY(D.stallTimer)}onActivity(D){if(VE.has(D.handle.state))return;D.handle.lastActivityAt=S1(),this.armStallTimer(D)}onStall(D){if(VE.has(D.handle.state))return;if(D.cancelRequested)return;E.warn(`[process-manager] stall detected for ${D.handle.id} (engine=${D.handle.engine}, group=${D.handle.group})`),this.cancelRunning(D)}}var VE,kc;var UE=M(()=>{GD();VE=new Set(["completed","failed","cancelled"]),kc={interactive:3,default:2,background:1}});class G3{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??vc}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 Y=await J.text(),G=null;if(Y.length>0)try{G=JSON.parse(Y)}catch{G=null}return{response:J,parsed:G}}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 Y=await this.postJson({...F,id:this.nextId()},!0);X=Y.response,J=Y.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 E.warn(`[mcp] tool '${D}' text is not JSON, returning raw string`),X.text}}}var vc=30000;var AE=M(()=>{GD()});var LY=M(()=>{AE()});function KE(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 jY(D){let $=D.created_at??new Date().toISOString(),F=D.updated_at??$,{content:X,id:J,score:Y,...G}=D,B={id:J,content:X??"",metadata:{...G,tags:KE(D.tags)},createdAt:$,updatedAt:F};if(typeof Y==="number")B.score=Y;return B}function hc(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 IY{name="cloud-gateway";client;defaultCategory;defaultTypeId;constructor(D){this.client=new G3({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(hc)}async listMemories(D){let $={per_page:Math.min(Math.max(D?.limit??50,1),100),page:1},F=D?.tags?.find((Y)=>Y.startsWith("type:"));if(F)$.type_id=F.slice(5);let J=(await this.client.callToolJson("knowledge_query",$)).entries??[];if(D?.since)J=J.filter((Y)=>!Y.created_at||Y.created_at>=D.since);if(D?.until)J=J.filter((Y)=>!Y.created_at||Y.created_at<=D.until);return J.map(jY)}async searchMemories(D){let $=await this.client.callToolJson("knowledge_search",{query:D,limit:20});if(!Array.isArray($))return[];return $.map(jY)}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,Y=typeof $.category==="string"?$.category:this.defaultCategory;if(J)F.type_id=J;else if(Y)F.category=Y;let G=D.tags??KE($.tags);if(G.length>0)F.tags=G.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 jY(H)}}var CE=M(()=>{LY()});import{join as M$}from"path";async function OE(D){let $=new Bun.CryptoHasher("sha256");return $.update(D),$.digest("hex")}function RE(D){let $=D.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);if(!$)return{metadata:{},content:D};try{return{metadata:A$($[1]??"")??{},content:$[2]??""}}catch{return{metadata:{},content:D}}}function xc(D,$){let F=$.split(".").pop()?.toLowerCase();if(F==="yaml"||F==="yml")try{let X=A$(D);return{name:String(X.name??""),description:String(X.description??""),version:String(X.version??"0.0.0"),capabilities:Array.isArray(X.capabilities)?X.capabilities.map(String):[],filePath:$}}catch{return null}if(F==="md"){let{metadata:X,content:J}=RE(D);return{name:String(X.name??$.split("/").pop()?.replace(/\.md$/,"")??""),description:String(X.description??J.split(`
264
+ `)[0]??""),version:String(X.version??"0.0.0"),capabilities:Array.isArray(X.capabilities)?X.capabilities.map(String):[],filePath:$}}return null}async function EE(D){let $=M$(D,"skills");try{await(await import("fs/promises")).access($);let X=new Bun.Glob("**/*.{yaml,yml,md}"),J=[];for await(let Y of X.scan({cwd:$})){let G=M$($,Y);try{let H=await Bun.file(G).text(),W=xc(H,G);if(W){let V=await OE(H);J.push({...W,hash:V})}}catch{}}return J}catch{return[]}}async function TY(D){let $=M$(D,"memories");try{await(await import("fs/promises")).access($);let X=new Bun.Glob("**/*.md"),J=[];for await(let Y of X.scan({cwd:$})){let G=M$($,Y);try{let H=await Bun.file(G).text(),W=await OE(H),{metadata:V,content:_}=RE(H),U=Y.replace(/\.md$/,"");J.push({id:String(V.id??U),title:String(V.title??U),content:_,metadata:V,filePath:G,hash:W,createdAt:V.createdAt?String(V.createdAt):void 0,updatedAt:V.updatedAt?String(V.updatedAt):void 0})}catch{}}return J}catch{return[]}}var ME=M(()=>{EY()});import{watch as gc}from"fs";import{join as wY}from"path";function yc(D){return D.includes("/skills/")||D.includes("\\skills\\")?"skill":"memory"}class SY{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 gc(D,{recursive:!0},(F,X)=>{if(!X)return;let J=wY(D,X),Y=J,G=this.debounceTimers.get(Y);if(G)clearTimeout(G);let B=setTimeout(()=>{this.debounceTimers.delete(Y);let H=F==="rename"?"add":"modify";this.emit({type:H,path:J,kind:yc(J),timestamp:Date.now()})},this.debounceMs);this.debounceTimers.set(Y,B)})}catch{return null}}async start(){if(this.running)return;this.running=!0;let D=wY(this.home,"skills"),$=wY(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 ZE=()=>{};import{existsSync as uc,mkdirSync as mc}from"fs";import{access as pc,stat as cc}from"fs/promises";import{join as fY}from"path";function lc(D){return{id:D.filePath,name:D.name,description:D.description,version:D.version,tags:D.capabilities}}async function PE(D,$){let{createdAt:F,updatedAt:X}=D;if(!F||!X)try{let G=await cc(D.filePath);F=F??G.birthtime.toISOString(),X=X??G.mtime.toISOString()}catch{let G=new Date(0).toISOString();F=F??G,X=X??G}let J={...D.metadata,title:D.title,filePath:D.filePath,hash:D.hash},Y={id:D.id,content:D.content,metadata:J,createdAt:F,updatedAt:X};if($!==void 0)Y.score=$;return Y}function dc(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 ic(D,$){if(!$)return D;let F=D;if($.tags&&$.tags.length>0){let X=$.tags;F=F.filter((J)=>{let Y=Array.isArray(J.metadata.tags)?J.metadata.tags.map(String):[];return X.every((G)=>Y.includes(G))})}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 nc(D){if(D==="feedback"||D==="project"||D==="reference"||D==="user")return D;return"user"}function sc(D){return D.toLowerCase().replace(/[^a-z0-9_\- ]/g,"").replace(/\s+/g,"_").replace(/_+/g,"_").replace(/^_|_$/g,"").slice(0,64)}async function rc(D,$,F,X){let J=fY(D,"..","MEMORY.md"),Y=`- [${$}](memories/${F}) \u2014 ${X}`,G=Bun.file(J);if(await G.exists()){let H=(await G.text()).trimEnd(),W=H?`${H}
265
+ ${Y}
266
+ `:`${Y}
267
+ `;await Bun.write(J,W)}else await Bun.write(J,`# Memory index
268
+
269
+ ${Y}
270
+ `)}class bY{name="filesystem";home;watcher;watcherStarted=!1;constructor(D){this.home=D.home,this.watcher=new SY({home:D.home})}async health(){let D=new Date().toISOString();try{return await pc(this.home),{name:this.name,status:"healthy",lastChecked:D}}catch{return{name:this.name,status:"down",lastChecked:D}}}async listSkills(){return(await EE(this.home)).map(lc)}async listMemories(D){let $=await TY(this.home),F=await Promise.all($.map((X)=>PE(X)));return ic(F,D)}async searchMemories(D){let $=await TY(this.home),F=D.toLowerCase(),X=$.filter((J)=>J.content.toLowerCase().includes(F)||J.title.toLowerCase().includes(F)||J.metadata.name!==void 0&&String(J.metadata.name).toLowerCase().includes(F)||J.metadata.description!==void 0&&String(J.metadata.description).toLowerCase().includes(F));return Promise.all(X.map((J)=>PE(J,1)))}async writeMemory(D){let $=D.metadata??{},F=typeof $.name==="string"&&$.name.length>0?$.name:`memory-${Date.now()}`,X=typeof $.description==="string"?$.description:"",J=nc($.type),Y=fY(this.home,"memories");if(!uc(Y))mc(Y,{recursive:!0});let G=sc(F),B=`${G}.md`,H=fY(Y,B),W=`---
271
+ name: ${F}
272
+ description: ${X}
273
+ type: ${J}
274
+ ---
275
+ `;await Bun.write(H,`${W}${D.content}
276
+ `),await rc(Y,F,B,X);let V=new Date().toISOString();return{id:G,content:D.content,metadata:{...$,name:F,description:X,type:J,filePath:H,...D.tags?{tags:D.tags}:{}},createdAt:V,updatedAt:V}}watch(D){if(!this.watcherStarted)this.watcherStarted=!0,this.watcher.start();return this.watcher.on(($)=>{let F=dc($);if(F)D(F)})}}var qE=M(()=>{ME();ZE()});class kY{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 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 oc(D,$){let F;if($.type==="filesystem"){let X=$.config.home??W6(D);F=new bY({home:X})}else F=new IY({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 NE(D,$){let F=$.brains.map((X)=>oc(D,X));return new kY({sources:F,writeTargetId:$.brainWriteTarget,retrieval:$.brainRetrieval})}var zE=M(()=>{I0();CE();qE()});function LE(D){return D.on((F)=>{try{ac(F)}catch(X){E.warn(`[evolution] observer failed to persist: ${String(X)}`)}})}function ac(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;g().insert(C0).values({conversationId:typeof D.payload.conversationId==="string"?D.payload.conversationId:null,kind:D.type,payload:D.payload}).run()}var jE=M(()=>{bD();GD()});function TE(D,$=vY){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 W=F;W<=X;W++){if(H.length<W)break;for(let V=0;V+W<=H.length;V++){let _=H.slice(V,V+W),U=Dl(_),A=J.get(U);if(A)A.occurrences+=1,A.conversations.add(B);else J.set(U,{toolSequence:_,occurrences:1,conversations:new Set([B])})}}}let Y=Math.max(1,$.windowSize),G=[];for(let B of J.values()){if(B.occurrences<$.minOccurrences)continue;if(B.conversations.size<$.minConversations)continue;let H=$l(B.occurrences/Y);G.push({toolSequence:B.toolSequence,occurrences:B.occurrences,uniqueConversations:B.conversations.size,confidence:H,rationale:ec(B.toolSequence,B.occurrences,B.conversations.size,H)})}return G.sort((B,H)=>{if(H.occurrences!==B.occurrences)return H.occurrences-B.occurrences;return H.toolSequence.length-B.toolSequence.length}),tc(G)}function tc(D){let $=[];for(let F of D){if($.find((Y)=>IE(F.toolSequence,Y.toolSequence)))continue;let J=$.findIndex((Y)=>IE(Y.toolSequence,F.toolSequence));if(J>=0)$.splice(J,1);$.push(F)}return $}function IE(D,$){if(D.length>=$.length)return!1;for(let F=0;F<D.length;F++)if(D[F]!==$[F])return!1;return!0}function ec(D,$,F,X){let J=D.join(" \u2192 "),Y=(X*100).toFixed(1);return`Observed tool sequence ${J} ${$}\xD7 across ${F} conversation(s); window confidence ${Y}%.`}function Dl(D){return D.join("|")}function $l(D){if(!Number.isFinite(D))return 0;if(D<0)return 0;if(D>1)return 1;return D}var vY;var wE=M(()=>{vY={nGramMin:2,nGramMax:4,minOccurrences:3,minConversations:2,windowSize:500}});import{createHash as bE}from"crypto";import Fl from"process";function Gl(D){return{windowSize:D?.windowSize??Z$("EVOLUTION_PROPOSER_WINDOW",Xl),maxDraftsPerRun:D?.maxDraftsPerRun??Z$("EVOLUTION_PROPOSER_MAX_DRAFTS_PER_RUN",Jl),intervalMs:D?.intervalMs??Z$("EVOLUTION_PROPOSER_INTERVAL_MS",kE)}}async function Yl(D){let $=Gl(D),F=g(),X=F.select({conversationId:C0.conversationId}).from(C0).orderBy(LD(C0.noticedAt)).limit($.windowSize).all(),J=Array.from(new Set(X.map((_)=>_.conversationId).filter((_)=>typeof _==="string"&&_.length>0)));if(J.length===0)return E.info("[evolution/proposer] no conversations in window; skipping"),{drafts:0};let Y=F.select({conversationId:Y8.conversationId,toolName:Y8.toolName}).from(Y8).where(D8(Y8.conversationId,J)).orderBy(y2(Y8.conversationId),y2(Y8.id)).all(),G=new Map;for(let _ of Y){if(!_.conversationId)continue;let U=G.get(_.conversationId);if(U)U.push(_.toolName);else G.set(_.conversationId,[_.toolName])}let B=TE(G,{...vY,windowSize:$.windowSize}),H=Hl(F),W=0;for(let _ of B){if(W>=$.maxDraftsPerRun)break;let U=_.toolSequence.join("|");if(H.has(U))continue;let A=Wl(_);F.insert(z0).values(A).run(),H.add(U),W+=1,E.info(`[evolution/proposer] wrote draft ${A.proposedName} (occurrences=${_.occurrences}, convs=${_.uniqueConversations})`)}let V=Ql(F,$.windowSize);for(let _ of V){if(W>=$.maxDraftsPerRun)break;if(H.has(_.sequenceKey))continue;let U=Vl(_);F.insert(z0).values(U).run(),H.add(_.sequenceKey),W+=1,E.info(`[evolution/proposer] wrote quality draft ${U.proposedName} (occurrences=${_.occurrences}, convs=${_.uniqueConversations})`)}return E.info(`[evolution/proposer] ${W}/${B.length+V.length} candidate(s) written; window=${$.windowSize}, conversations=${J.length}`),{drafts:W}}function vE(D){let $=D??Z$("EVOLUTION_PROPOSER_INTERVAL_MS",kE),F=setInterval(()=>{Yl().catch((X)=>E.warn(`[evolution/proposer] loop run failed: ${String(X)}`))},$);return()=>clearInterval(F)}function Bl(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 Hl(D){let $=new Set,F=D.select({bodyMarkdown:z0.bodyMarkdown}).from(z0).all();for(let J of F){let Y=Bl(J.bodyMarkdown);if(Y)$.add(Y.sequenceKey)}let X=D.select({config:W9.config}).from(W9).all();for(let J of X){let Y=J.config;if(!Y||typeof Y!=="object")continue;let G=Y.allowedTools;if(Array.isArray(G)&&G.every((B)=>typeof B==="string"))$.add(G.join("|"))}return $}function Wl(D){let $=D.toolSequence.join("|"),F=bE("sha256").update($).digest("hex").slice(0,6),X=SE(D.toolSequence[0]??"tool"),J=SE(D.toolSequence[D.toolSequence.length-1]??"tool"),Y=`auto-${X}-${J}-${F}`,G=D.toolSequence.join(" \u2192 "),B=D.toolSequence.map((_)=>`\`${_}\``).join(", "),H={allowedTools:D.toolSequence,confidence:D.confidence,kind:"tool_sequence",sequenceKey:$},W=`When the agent runs \`${G}\` (seen ${D.occurrences}\xD7 across ${D.uniqueConversations} conversation(s))`,V=[`<!-- evolution-meta: ${JSON.stringify(H)} -->`,"",`# ${Y}`,"","## Trigger","",W,"","## Allowed tools","",B,"","## Prompt template","","```",`You are extending the skill \`${Y}\`. Invoke the following tools in order: ${B}.`,"```",""].join(`
277
+ `);return{proposedName:Y,source:"evolution",bodyMarkdown:V,rationale:D.rationale,status:"pending"}}function Ql(D,$){let F=D.select({conversationId:C0.conversationId,payload:C0.payload}).from(C0).where(D8(C0.kind,["orchestrator.quality_gate"])).orderBy(LD(C0.noticedAt)).limit($).all(),X=new Map;for(let J of F){let Y=J.payload,G=typeof Y.status==="string"?Y.status:"",B=typeof Y.action==="string"?Y.action:"";if(G!=="failed"||B==="pass")continue;let H=fE(Y.missing).slice(0,5),W=fE(Y.suggestions).slice(0,5),V=[...H,...W].join("|").toLowerCase();if(V.length===0)continue;let _=`quality:${bE("sha256").update(V).digest("hex").slice(0,10)}`,U=X.get(_);if(U){if(U.occurrences+=1,J.conversationId)U.conversations.add(J.conversationId);continue}X.set(_,{action:B,conversations:new Set(J.conversationId?[J.conversationId]:[]),missing:H,occurrences:1,suggestions:W})}return Array.from(X.entries()).filter(([,J])=>J.occurrences>=2).map(([J,Y])=>({action:Y.action,confidence:Math.min(0.95,0.5+Y.occurrences*0.1),missing:Y.missing,occurrences:Y.occurrences,rationale:`${Y.occurrences}\xD7 similar quality gate failure(s) across ${Y.conversations.size} conversation(s)`,sequenceKey:J,suggestions:Y.suggestions,uniqueConversations:Y.conversations.size})).sort((J,Y)=>Y.occurrences-J.occurrences||Y.uniqueConversations-J.uniqueConversations)}function Vl(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((Y)=>`- ${Y}`),"","## Improvement guidance","",...D.suggestions.map((Y)=>`- ${Y}`),"","## Prompt template","","```","Before finalizing similar answers, address the missing signals above and verify the answer against the user request.","```",""].join(`
278
+ `);return{proposedName:F,source:"evolution",bodyMarkdown:J,rationale:D.rationale,status:"pending"}}function SE(D){return D.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"tool"}function fE(D){return Array.isArray(D)?D.filter(($)=>typeof $==="string"&&$.length>0):[]}function Z$(D,$){let F=Fl.env[D];if(F===void 0||F==="")return $;let X=Number(F);return Number.isFinite(X)&&X>0?X:$}var kE=21600000,Xl=500,Jl=5;var hE=M(()=>{bD();GD();A0();wE()});var hY;var xY=M(()=>{L5();hY={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:()=>yC()}});var gY;var yY=M(()=>{L5();gY={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:()=>uC()}});function uY(D){let $=_l[D];if(!$)throw Error(`unknown ACP agent: ${D}`);return $}var _l;var xE=M(()=>{xY();yY();_l={gemini:hY,qwen:gY}});import gE from"process";function El(D,$,F){if($.has(D))return!0;return F.some((X)=>D.startsWith(X))}function Ml(D){if(Ol.some(($)=>D.startsWith($)))return!0;if(Rl.some(($)=>D.endsWith($)))return!0;return!1}function yE(D,$,F){let X={};for(let[J,Y]of Object.entries(D)){if(Y===void 0)continue;if(Ml(J))continue;if(!El(J,$,F))continue;X[J]=Y}return X}function T2(D,$=gE.env){let F=yE($,Ul,Al);if(D)for(let[X,J]of Object.entries(D))F[X]=J;return F}function uE(D=gE.env){return yE(D,Kl,Cl)}var Ul,Al,Kl,Cl,Ol,Rl;var b1=M(()=>{Ul=new Set(["PATH","HOME","USER","LOGNAME","SHELL","PWD","LANG","TZ","TERM","TMPDIR","TMP","TEMP"]),Al=["LC_","NODE_","NPM_CONFIG_","XDG_","CLAUDE_","CODEX_","CURSOR_","GEMINI_","QWEN_"],Kl=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"]),Cl=["LC_","XDG_","GIT_AUTHOR_","GIT_COMMITTER_"],Ol=["AIWORKER_","INTERNAL_","WORKER_"],Rl=["_TOKEN","_SECRET","_API_KEY","_PRIVATE_KEY","_PASSWORD"]});function pY(D){let $=D.sessionUpdate,F=D;switch($){case"agent_message_chunk":{let X=mY(F.content);if(!X)return[];return[{type:"assistant_message_delta",delta:X}]}case"agent_thinking_chunk":{let X=mY(F.content);if(!X)return[];return[{type:"thinking_delta",delta:X}]}case"user_message_chunk":return[];case"tool_call":return Zl(F);case"tool_call_update":return Pl(F);case"plan":return ql(F.entries);case"available_commands_update":case"current_mode_update":return[];default:return[]}}function mE(D,$,F){let X=F??{};switch(D){case"read":return{kind:"file_read",path:G7(X,["file_path","path","absolute_path","filePath"])};case"edit":case"delete":case"move":{let J=G7(X,["file_path","path","absolute_path","filePath"]),Y=zl(X);return{kind:"file_edit",path:J,...Y?{diff:Y}:{}}}case"execute":return{kind:"command_run",command:G7(X,["command","cmd","shell_command","script"])};case"search":return{kind:"search",query:G7(X,["query","pattern","q","search"])};case"fetch":return{kind:"web_fetch",url:G7(X,["url","uri","href"])};case"think":return{kind:"task_plan",summary:$??"thinking"};case"other":case void 0:default:return{kind:"tool",toolName:$??"acp.tool",...Object.keys(X).length>0?{arguments:X}:{}}}}function cY(D){switch(D){case"end_turn":return"stop";case"max_tokens":case"max_turn_requests":return"length";case"refusal":return"error";case"cancelled":return"cancelled";default:return"stop"}}function Zl(D){let $=[],F=D.toolCallId;if(!F)return $;let X=D.rawInput??{},J=mE(D.kind,D.title,X),Y=D.title??D.kind??"acp.tool";if($.push({type:"tool_use",id:F,name:Y,arguments:X,action:J,...D.status?{status:Nl(D.status)}:{}}),cE(D.status)){let G=pE(D.content);$.push({type:"tool_result",id:F,name:Y,content:G,...D.status==="failed"||D.status==="cancelled"?{isError:!0}:{}})}return $}function Pl(D){let $=D.toolCallId;if(!$||!cE(D.status))return[];let F=pE(D.content),X=D.title??D.kind??"";return[{type:"tool_result",id:$,name:X,content:F,...D.status==="failed"||D.status==="cancelled"?{isError:!0}:{}}]}function ql(D){if(!Array.isArray(D)||D.length===0)return[];let $=D.map((F,X)=>`${X+1}. [${F.status??"pending"}] ${F.content}`).join(`
279
+ `);return[{type:"tool_use",id:`plan-${Ll($)}`,name:"plan",arguments:{entries:D},action:{kind:"task_plan",summary:$}}]}function mY(D){if(!D)return"";if(D.type==="text"&&typeof D.text==="string")return D.text;return""}function pE(D){if(!D||D.length===0)return"";let $=[];for(let F of D){if(!F||typeof F!=="object")continue;if(F.type==="content"){let X=F.content,J=mY(X);if(J)$.push(J)}else if(F.type==="diff"){let X=F,J=X.oldText??"",Y=X.newText??"";$.push(`--- ${X.path??""}
280
+ - ${J}
281
+ + ${Y}`)}else if(F.type==="terminal"){let X=F;$.push(`[terminal:${X.terminalId??""}]`)}}return $.join(`
282
+ `)}function Nl(D){switch(D){case"pending":return"pending";case"in_progress":return"running";case"completed":return"success";case"failed":return"failed";case"cancelled":return"denied";default:return"pending"}}function cE(D){return D==="completed"||D==="failed"||D==="cancelled"}function G7(D,$){for(let F of $){let X=D[F];if(typeof X==="string"&&X.length>0)return X}return""}function zl(D){let $=typeof D.old_string==="string"?D.old_string:typeof D.oldText==="string"?D.oldText:void 0,F=typeof D.new_string==="string"?D.new_string:typeof D.newText==="string"?D.newText:typeof D.content==="string"?D.content:void 0;if($!==void 0&&F!==void 0)return`- ${$}
283
+ + ${F}`;if(F!==void 0)return F;return}function Ll(D){let $=5381;for(let F=0;F<D.length;F++)$=($<<5)+$+D.charCodeAt(F)>>>0;return $.toString(36)}class n8{options;nextId=1;pending=new Map;disposed=!1;constructor(D){this.options=D}async request(D,$,F){if(this.disposed)throw Error("json-rpc peer disposed");if(F?.aborted)throw Error(`json-rpc request ${D} aborted before send`);let X=this.nextId++,J=$===void 0?{jsonrpc:"2.0",id:X,method:D}:{jsonrpc:"2.0",id:X,method:D,params:$};return new Promise((Y,G)=>{let B=this.options.requestTimeoutMs,H=B&&B>0?setTimeout(()=>{this.rejectPending(X,Error(`json-rpc request ${D} timed out after ${B}ms`))},B):null,W=F?()=>this.rejectPending(X,Error(`json-rpc request ${D} aborted`)):null;if(this.pending.set(X,{resolve:(V)=>Y(V),reject:G,timer:H,abortHandler:W,signal:F??null}),W&&F)F.addEventListener("abort",W,{once:!0});try{this.options.writeLine(`${JSON.stringify(J)}
284
+ `)}catch(V){this.rejectPending(X,V instanceof Error?V:Error(String(V)))}})}notify(D,$){if(this.disposed)return;let F=$===void 0?{jsonrpc:"2.0",method:D}:{jsonrpc:"2.0",method:D,params:$};try{this.options.writeLine(`${JSON.stringify(F)}
285
+ `)}catch(X){this.options.onError?.(X instanceof Error?X:Error(String(X)))}}handleLine(D){if(this.disposed)return;let $=D.trim();if($.length===0)return;let F;try{F=JSON.parse($)}catch(J){this.options.onError?.(Error(`json-rpc parse error: ${J instanceof Error?J.message:String(J)}`));return}if(!F||typeof F!=="object"||Array.isArray(F))return;let X=F;if("id"in X&&(("result"in X)||("error"in X))){this.handleResponse(X);return}if("id"in X&&"method"in X){this.handleRequest(X);return}if("method"in X)this.options.onNotification?.(X)}dispose(D){if(this.disposed)return;this.disposed=!0;let $=Error(D??"json-rpc peer disposed"),F=Array.from(this.pending.entries());this.pending.clear();for(let[,X]of F){if(X.timer)clearTimeout(X.timer);if(X.signal&&X.abortHandler)X.signal.removeEventListener("abort",X.abortHandler);X.reject($)}}rejectPending(D,$){let F=this.pending.get(D);if(!F)return;if(this.pending.delete(D),F.timer)clearTimeout(F.timer);if(F.signal&&F.abortHandler)F.signal.removeEventListener("abort",F.abortHandler);F.reject($)}handleResponse(D){let $=this.pending.get(D.id);if(!$)return;if(this.pending.delete(D.id),$.timer)clearTimeout($.timer);if($.signal&&$.abortHandler)$.signal.removeEventListener("abort",$.abortHandler);if("error"in D){let F=D.error;$.reject(Error(`json-rpc error ${F.code}: ${F.message}`));return}$.resolve(D.result)}async handleRequest(D){let $=this.options.onRequest;if(!$){this.writeResponse(D.id,void 0,{code:-32601,message:`Method not found: ${D.method}`});return}try{let F=await $(D);this.writeResponse(D.id,F)}catch(F){let X=F instanceof Error?F.message:String(F);this.writeResponse(D.id,void 0,{code:-32000,message:X})}}writeResponse(D,$,F){let X=F?{jsonrpc:"2.0",id:D,error:F}:{jsonrpc:"2.0",id:D,result:$??null};try{this.options.writeLine(`${JSON.stringify(X)}
286
+ `)}catch(J){this.options.onError?.(J instanceof Error?J:Error(String(J)))}}}function k1(D,$){let X=(D+$).split(/\r?\n/),J=X.pop()??"";return{lines:X.filter((Y)=>Y.trim().length>0),remainder:J}}import{spawn as jl}from"child_process";import{once as Il}from"events";import Tl from"fs/promises";import wl from"path";import Y3 from"process";function iE(D,$){let F=$?.trim();if(F&&F.length>0)return F;let X=Y3.env[D.versionEnvVar]?.trim();if(X&&X.length>0)return X;return D.defaultVersion}class P${options;name;cachedAvailability=null;constructor(D){this.options=D;this.name=`acp:${D.agent.id}`}async health(){let D=new Date().toISOString();return{name:this.name,status:"healthy",lastChecked:D}}async listTools(){return[]}run(D){return this.runIterable(D)}async getAvailability(D=!1){if(!D&&this.cachedAvailability&&this.cachedAvailability.expiresAt>Date.now())return this.cachedAvailability.info;let $=this.options.authProbe??this.options.agent.authProbe,F=$?await $().catch((X)=>({status:"NotFound",checkedAt:new Date().toISOString(),detail:X instanceof Error?X.message:String(X)})):{status:"NotFound",checkedAt:new Date().toISOString(),detail:"no probe configured"};return this.cachedAvailability={expiresAt:Date.now()+fl,info:F},F}async*runIterable(D){let $=vl(D.messages);if(!$){yield{type:"error",error:`${this.name} executor requires a user message`},yield{type:"finish",reason:"error"};return}let F=D.workspacePath??this.options.fallbackWorkspacePath??Y3.cwd(),X;try{X=await this.resolveCommand(D.model)}catch(K){yield{type:"error",error:K instanceof Error?K.message:String(K)},yield{type:"finish",reason:"error"};return}let Y=(this.options.spawn??jl)(X.cmd,X.args,{cwd:F,env:T2(this.options.env)}),G=new nE,B=new n8({writeLine:(K)=>{try{Y.stdin.write(K)}catch{}},onNotification:(K)=>this.handleNotification(K,G),onRequest:(K)=>this.handleInboundRequest(K),onError:(K)=>{G.push({type:"error",error:K.message})},requestTimeoutMs:this.options.timeoutMs??lE}),H="",W=(K)=>{let{lines:R,remainder:P}=k1(H,K.toString("utf8"));H=P;for(let q of R)B.handleLine(q)};Y.stdout.on("data",W);let V=null;Y.on("error",(K)=>{V=K.message});let _=Il(Y,"exit").then((K)=>K[0]??null).catch((K)=>{return V=K instanceof Error?K.message:String(K),null});_.then((K)=>{if(K===0)return;let R=V??(K===null?"acp child exited unexpectedly":`acp child exited with code ${K}`);G.close({kind:"error",message:R}),B.dispose(R)});let U=setTimeout(()=>dE(Y,"SIGKILL"),this.options.timeoutMs??lE),A="",O=!1,C=()=>{if(O=!0,A)B.notify("session/cancel",{sessionId:A});setTimeout(()=>dE(Y,"SIGTERM"),200)};D.signal?.addEventListener("abort",C,{once:!0});try{if(await B.request("initialize",{protocolVersion:Sl,clientCapabilities:{},clientInfo:{name:"aiworker",version:"0.2.0"}}),A=(await B.request("session/new",{cwd:F,mcpServers:[]})).sessionId,!A){yield{type:"error",error:"ACP session/new returned no sessionId"},yield{type:"finish",reason:"error"};return}B.request("session/prompt",{sessionId:A,prompt:[{type:"text",text:$}]}).then((q)=>G.close({kind:"finish",stopReason:q.stopReason}),(q)=>G.close({kind:"error",message:q instanceof Error?q.message:String(q)}));for await(let q of G.iter())yield q;let P=G.terminal;if(P?.kind==="finish")yield{type:"finish",reason:cY(P.stopReason)};else if(P?.kind==="error")yield{type:"error",error:P.message},yield{type:"finish",reason:O?"cancelled":"error"};else yield{type:"finish",reason:O?"cancelled":"stop"}}catch(K){yield{type:"error",error:K instanceof Error?K.message:String(K)},yield{type:"finish",reason:O?"cancelled":"error"}}finally{clearTimeout(U),D.signal?.removeEventListener("abort",C),B.dispose("run ended"),Y.stdout.off("data",W),kl(Y),await _.catch(()=>null)}}handleNotification(D,$){if(D.method!=="session/update")return;let F=D.params;if(!F||!F.update)return;for(let X of pY(F.update))$.push(X)}async handleInboundRequest(D){if(D.method==="session/request_permission"){if(!(this.options.autoApprove??!0))return{outcome:{outcome:"cancelled"}};let F=D.params??{},X=Array.isArray(F.options)?F.options:[];return{outcome:{outcome:"selected",optionId:(X.find((Y)=>Y.kind==="allow_always")??X.find((Y)=>Y.kind==="allow_once")??X.find((Y)=>Y.kind==="allow")??X[0])?.optionId??"allow"}}}throw Error(`unsupported acp client method: ${D.method}`)}async resolveCommand(D){let $=this.options.agent,F=this.options.autoApprove??!0,X=$.buildArgs({yolo:F,...D??this.options.model?{model:D??this.options.model}:{},...this.options.extraArgs===void 0?{}:{extraArgs:this.options.extraArgs}}),Y=await(this.options.resolveBinary??bl)($.commandName);if(Y)return{cmd:Y,args:X};let G=iE($,this.options.cliVersion);return{cmd:"npx",args:["-y",`${$.npxPackage}@${G}`,...X]}}}class nE{buffer=[];resolver=null;closed=!1;terminal=null;push(D){if(this.closed)return;if(this.resolver){let $=this.resolver;this.resolver=null,$({value:D,done:!1});return}this.buffer.push(D)}close(D){if(this.closed)return;if(this.closed=!0,D)this.terminal=D;if(this.resolver){let $=this.resolver;this.resolver=null,$({value:void 0,done:!0})}}async*iter(){while(!0){if(this.buffer.length>0){yield this.buffer.shift();continue}if(this.closed)return;let D=await new Promise(($)=>{this.resolver=$});if(D.done)return;yield D.value}}}async function bl(D){let $=Y3.env.PATH??"",F=Y3.platform==="win32"?";":":",X=Y3.platform==="win32"?(Y3.env.PATHEXT??".EXE").split(";"):[""];for(let J of $.split(F)){if(!J)continue;for(let Y of X){let G=wl.join(J,`${D}${Y.toLowerCase()}`);try{if((await Tl.stat(G)).isFile())return G}catch{}}}return null}function dE(D,$){try{D.kill($)}catch{}}function kl(D){try{D.stdin.end()}catch{}}function vl(D){for(let $=D.length-1;$>=0;$--){let F=D[$];if(F&&F.role==="user"&&typeof F.content==="string"&&F.content.length>0)return F.content}return null}var lE=120000,Sl=1,fl=600000;var sE=M(()=>{b1()});var rE=M(()=>{xY();xE();yY();sE()});function lY(D){switch(D.type){case"assistant":return hl(D);case"user":return xl(D);case"result":return gl(D);case"stream_event":return yl(D);default:return[]}}function hl(D){let $=[],F=D.message??{};for(let X of F.content??[]){let J=ul(X);if(J)$.push(J)}return pl($,F),$}function xl(D){let $=[],F=D.message??{};for(let X of F.content??[])if(X.type==="tool_result")$.push(oE(X));return $}function gl(D){let $=[];if(D.usage){let J=D.usage.input_tokens??0,Y=D.usage.output_tokens??0;$.push({type:"token_usage",usage:{inputTokens:J,outputTokens:Y}})}if(D.is_error||D.subtype==="error"){let J=typeof D.error==="string"&&D.error.length>0?D.error:D.result??"Claude Code run failed";return $.push({type:"error",error:J}),$.push({type:"finish",reason:"error"}),$}let F=ll(D.subtype),X=D.usage?{inputTokens:D.usage.input_tokens??0,outputTokens:D.usage.output_tokens??0}:void 0;return $.push({type:"finish",reason:F,...X?{usage:X}:{}}),$}function yl(D){let $=D.event?.delta;if(!$)return[];if($.type==="text_delta"&&typeof $.text==="string"&&$.text.length>0)return[{type:"assistant_message_delta",delta:$.text}];if($.type==="thinking_delta"&&typeof $.thinking==="string"&&$.thinking.length>0)return[{type:"thinking_delta",delta:$.thinking}];return[]}function ul(D){switch(D.type){case"text":if(typeof D.text==="string"&&D.text.length>0)return{type:"assistant_message_delta",delta:D.text};return null;case"thinking":{let $=typeof D.thinking==="string"?D.thinking:typeof D.text==="string"?D.text:"";if($.length===0)return null;return{type:"thinking_delta",delta:$}}case"tool_use":{let $=typeof D.id==="string"?D.id:"",F=typeof D.name==="string"?D.name:"",X=D.input??{};if(!$||!F)return null;return{type:"tool_use",id:$,name:F,arguments:X,action:aE(F,X)}}case"tool_result":return oE(D);default:return null}}function oE(D){let $=typeof D.tool_use_id==="string"?D.tool_use_id:"",F=D.is_error===!0,X=ml(D.content);return{type:"tool_result",id:$,name:"",content:X,...F?{isError:!0}:{}}}function ml(D){if(typeof D==="string")return D;if(Array.isArray(D)){let $=[];for(let F of D)if(F&&typeof F==="object"){let X=F;if(X.type==="text"&&typeof X.text==="string")$.push(X.text);else $.push(JSON.stringify(X))}return $.join(`
287
+ `)}if(D===void 0||D===null)return"";return JSON.stringify(D)}function pl(D,$){if(!$.usage)return;let F=$.usage.input_tokens,X=$.usage.output_tokens;if(typeof F!=="number"&&typeof X!=="number")return;D.push({type:"token_usage",usage:{inputTokens:F??0,outputTokens:X??0}})}function aE(D,$){switch(D){case"Read":case"View":case"NotebookRead":return{kind:"file_read",path:typeof $.file_path==="string"?$.file_path:typeof $.path==="string"?$.path:""};case"Edit":case"Write":case"MultiEdit":case"NotebookEdit":{let F=typeof $.file_path==="string"?$.file_path:typeof $.path==="string"?$.path:"",X=cl($);return{kind:"file_edit",path:F,...X?{diff:X}:{}}}case"Bash":case"Shell":return{kind:"command_run",command:typeof $.command==="string"?$.command:""};case"Grep":case"Glob":case"WebSearch":return{kind:"search",query:typeof $.query==="string"?$.query:typeof $.pattern==="string"?$.pattern:""};case"WebFetch":return{kind:"web_fetch",url:typeof $.url==="string"?$.url:""};case"TodoWrite":{let F=$.todos;return{kind:"task_plan",summary:Array.isArray(F)?`${F.length} todos`:"todo update"}}default:return{kind:"tool",toolName:D,arguments:$}}}function cl(D){if(typeof D.old_string==="string"&&typeof D.new_string==="string")return`- ${D.old_string}
288
+ + ${D.new_string}`;if(typeof D.content==="string")return D.content;return}function ll(D){switch(D){case"success":case"completion":return"stop";case"error":return"error";default:return"stop"}}function v1(D,$){let X=(D+$).split(/\r?\n/),J=X.pop()??"";return{lines:X.filter((Y)=>Y.trim().length>0),remainder:J}}function dY(D){try{let $=JSON.parse(D);if($&&typeof $==="object"&&"type"in $)return $;return null}catch{return null}}class N${policy;writeLine;constructor(D){this.policy=D.policy??q$,this.writeLine=D.writeLine}async handleLine(D){if(D.type!=="control_request")return[];let $=D,F=await this.policy.decide($).catch((J)=>({decision:"deny",reason:`policy error: ${J instanceof Error?J.message:String(J)}`})),X=dl($,F);if(this.writeLine(`${JSON.stringify(X)}
289
+ `),F.decision==="ask"){let J=il($);return[{type:"permission_request",id:$.request_id,reason:F.reason??"Claude Code requested approval",...J?{toolUseId:J}:{}}]}return[]}sendUserMessage(D){let $={type:"user",message:{role:"user",content:[{type:"text",text:D}]}};this.writeLine(`${JSON.stringify($)}
290
+ `)}}function dl(D,$){if($.decision==="deny")return{type:"control_response",response:{request_id:D.request_id,subtype:"error",error:$.reason??"denied by host policy"}};let F={permissionDecision:$.decision};if($.updatedInput)F.updatedInput=$.updatedInput;return{type:"control_response",response:{request_id:D.request_id,subtype:"success",response:{hookSpecificOutput:F,...$.reason?{systemMessage:$.reason}:{}}}}}function il(D){let $=D.request;if(typeof $.tool_use_id==="string")return $.tool_use_id;if(typeof $.toolUseId==="string")return $.toolUseId;return}var q$;var iY=M(()=>{q$={decide:async(D)=>({decision:"allow"})}});import{spawn as nl}from"child_process";import{once as sl}from"events";import rl from"fs/promises";import ol from"path";import z$ from"process";class I${name="claude-code";options;constructor(D){this.options=D}async health(){let D=new Date().toISOString();return{name:this.name,status:"healthy",lastChecked:D}}async listTools(){return[]}run(D){return this.runIterable(D)}async*runIterable(D){let $=Dd(D.messages);if(!$){yield{type:"error",error:"Claude Code executor requires a user message"},yield{type:"finish",reason:"error"};return}let F=D.workspacePath??this.options.fallbackWorkspacePath;if(!F){yield{type:"error",error:"Claude Code executor requires a workspace path"},yield{type:"finish",reason:"error"};return}let X=this.options.spawn??nl,J=$d(D.engineBinding);if(D.engineBinding!==void 0&&J===void 0)yield{type:"engine_binding",engine:L$,binding:null};let Y,G;try{({cmd:Y,args:G}=await this.resolveCommand(D.model,J))}catch(P){yield{type:"error",error:P instanceof Error?P.message:String(P)},yield{type:"finish",reason:"error"};return}let B=X(Y,G,{cwd:F,env:T2(this.options.env)}),H=new N$({policy:this.options.policy??q$,writeLine:(P)=>{try{B.stdin.write(P)}catch{}}});H.sendUserMessage($);let W=this.options.timeoutMs??al,V=setTimeout(()=>tE(B,"SIGKILL"),W),_="",U=null,A="",O=!1,C=sl(B,"exit").then((P)=>P[0]??null).catch((P)=>{return U=P instanceof Error?P.message:String(P),null});B.on("error",(P)=>{U=P.message});let K=()=>tE(B,"SIGTERM");D.signal?.addEventListener("abort",K,{once:!0});try{for await(let P of B.stdout){let{lines:q,remainder:w}=v1(_,P.toString("utf8"));_=w;for(let S of q){let L=dY(S);if(!L)continue;let N=Fd(L);if(N&&N!==A)A=N,yield{type:"engine_binding",engine:L$,binding:{sessionId:N}};if(L.type==="control_request"){let j=await H.handleLine(L);for(let c of j)yield c;continue}for(let j of lY(L)){if(j.type==="error"&&J!==void 0)yield{type:"engine_binding",engine:L$,binding:null};if(yield j,j.type==="finish")O=!0}if(O)break}if(O)break}}catch(P){yield{type:"error",error:P instanceof Error?P.message:String(P)}}finally{clearTimeout(V),D.signal?.removeEventListener("abort",K),el(B)}let R=await C;if(!O){if(J!==void 0)yield{type:"engine_binding",engine:L$,binding:null};if(U)yield{type:"error",error:U};else if(R!==0&&R!==null)yield{type:"error",error:`Claude Code exited with code ${R}`};yield{type:"finish",reason:R===0?"stop":"error"}}}async resolveCommand(D,$){let F=eE(D??this.options.model,this.options.extraArgs,$),J=await(this.options.resolveClaudeBinary??tl)();if(J)return{cmd:J,args:F};return{cmd:"npx",args:["-y",`@anthropic-ai/claude-code@${this.options.cliVersion?.trim()||j$}`,...F]}}}function eE(D,$,F){let X=["-p","--verbose","--output-format=stream-json","--input-format=stream-json","--include-partial-messages","--replay-user-messages","--dangerously-skip-permissions"];if(F&&F.length>0)X.push("--resume",F);if(D&&D.length>0)X.push("--model",D);if($&&$.length>0)X.push(...$);return X}async function tl(){let D=z$.env.PATH??"",$=z$.platform==="win32"?";":":",F=z$.platform==="win32"?(z$.env.PATHEXT??".EXE").split(";"):[""];for(let X of D.split($)){if(!X)continue;for(let J of F){let Y=ol.join(X,`claude${J.toLowerCase()}`);try{if((await rl.stat(Y)).isFile())return Y}catch{}}}return null}function tE(D,$){try{D.kill($)}catch{}}function el(D){try{D.stdin.end()}catch{}}function Dd(D){for(let $=D.length-1;$>=0;$--){let F=D[$];if(F&&F.role==="user"&&typeof F.content==="string"&&F.content.length>0)return F.content}return null}function $d(D){if(!D||typeof D.sessionId!=="string"||D.sessionId.length===0)return;return D.sessionId}function Fd(D){if(!D||typeof D!=="object"||Array.isArray(D))return"";let $=D.session_id;return typeof $==="string"&&$.length>0?$:""}var j$="2.1.112",al=120000,L$="claude-code";var DM=M(()=>{b1();iY()});var $M=M(()=>{DM();iY()});function sY(D){let $=D.params??{};switch(D.method){case"codex/event/assistant_message":return FM($);case"codex/event/thinking":return XM($);case"codex/event/token_usage":return Xd($);case"codex/event/tool_call":return Jd($);case"codex/event/tool_result":return Gd($);case"codex/event/stop":return Yd($);case"codex/event/error":return[{type:"error",error:typeof $.message==="string"?$.message:"codex error"}];case"item/agentMessage/delta":return FM($);case"item/reasoning/textDelta":case"item/reasoning/summaryTextDelta":return XM($);case"thread/tokenUsage/updated":return Bd($);case"turn/completed":return Hd($);case"error":return Wd($);default:return[]}}function FM(D){let $=YM(D.delta,D.text);if(!$)return[];return[{type:"assistant_message_delta",delta:$}]}function XM(D){let $=YM(D.delta,D.text);if(!$)return[];return[{type:"thinking_delta",delta:$}]}function Xd(D){let $=D.usage??{};return[{type:"token_usage",usage:{inputTokens:$.input_tokens??0,outputTokens:$.output_tokens??0}}]}function Jd(D){if(!D.id||!D.name)return[];let $=D.arguments??{};return[{type:"tool_use",id:D.id,name:D.name,arguments:$,action:JM(D.name,$),...D.status?{status:Qd(D.status)}:{}}]}function Gd(D){if(!D.id)return[];return[{type:"tool_result",id:D.id,name:"",content:typeof D.content==="string"?D.content:"",...D.isError===!0?{isError:!0}:{}}]}function Yd(D){let $=[];if(D.usage)$.push({type:"token_usage",usage:{inputTokens:D.usage.input_tokens??0,outputTokens:D.usage.output_tokens??0}});return $.push({type:"finish",reason:GM(D.reason)}),$}function Bd(D){let $=D.tokenUsage;if($===null||typeof $!=="object")return[];let F=$.total;if(F===null||typeof F!=="object")return[];let X=F;return[{type:"token_usage",usage:{inputTokens:typeof X.inputTokens==="number"?X.inputTokens:0,outputTokens:typeof X.outputTokens==="number"?X.outputTokens:0}}]}function Hd(D){let $=D.turn;if($===null||typeof $!=="object")return[{type:"finish",reason:"stop"}];let{status:F,error:X}=$,J=[];if(F==="failed")return J.push({type:"error",error:nY(X)??"codex turn failed"}),J.push({type:"finish",reason:"error"}),J;if(F==="cancelled")return J.push({type:"finish",reason:"cancelled"}),J;return J.push({type:"finish",reason:"stop"}),J}function Wd(D){let $=nY(D.error)??nY(D);if(Vd($))return[];return[{type:"error",error:$??"codex error"}]}function JM(D,$){let F=D.toLowerCase();if(F==="read"||F==="view"||F==="open_file")return{kind:"file_read",path:Y7($,["path","file_path","filePath"])};if(F==="edit"||F==="write"||F==="apply_patch"||F==="patch"){let X=Y7($,["path","file_path","filePath"]),J=_d($);return{kind:"file_edit",path:X,...J?{diff:J}:{}}}if(F==="bash"||F==="run_shell"||F==="shell"||F==="exec")return{kind:"command_run",command:Y7($,["command","cmd","script"])};if(F==="grep"||F==="search"||F==="find")return{kind:"search",query:Y7($,["query","pattern"])};if(F==="web_fetch"||F==="fetch"||F==="http_get")return{kind:"web_fetch",url:Y7($,["url","uri"])};return{kind:"tool",toolName:D,...Object.keys($).length>0?{arguments:$}:{}}}function GM(D){switch(D){case"max_tokens":return"length";case"cancelled":return"cancelled";case"error":return"error";case"stop":default:return"stop"}}function Qd(D){switch(D){case"pending":return"pending";case"in_progress":return"running";case"completed":return"success";case"failed":return"failed";case"cancelled":return"denied";default:return"pending"}}function YM(...D){for(let $ of D)if(typeof $==="string"&&$.length>0)return $;return""}function Y7(D,$){for(let F of $){let X=D[F];if(typeof X==="string"&&X.length>0)return X}return""}function nY(D){if(typeof D==="string"&&D.length>0)return D;if(D&&typeof D==="object"){let $=D.message;if(typeof $==="string"&&$.length>0)return $}return}function Vd(D){return/^Reconnecting\.\.\. \d+\/\d+$/.test(D?.trim()??"")}function _d(D){if(typeof D.old_string==="string"&&typeof D.new_string==="string")return`- ${D.old_string}
291
+ + ${D.new_string}`;if(typeof D.oldText==="string"&&typeof D.newText==="string")return`- ${D.oldText}
292
+ + ${D.newText}`;if(typeof D.diff==="string")return D.diff;if(typeof D.content==="string")return D.content;return}var rY=()=>{};import{spawn as Ud}from"child_process";import{once as Ad}from"events";import Kd from"fs/promises";import Cd from"path";import B3 from"process";class S${options;name="codex";constructor(D){this.options=D}async health(){return{name:this.name,status:"healthy",lastChecked:new Date().toISOString()}}async listTools(){return[]}run(D){return this.runIterable(D)}async*runIterable(D){let $=qd(D.messages);if($===null){yield{type:"error",error:"Codex executor requires a user message"},yield{type:"finish",reason:"error"};return}let F=Nd(D.messages),X=D.workspacePath??this.options.fallbackWorkspacePath??B3.cwd(),J;try{J=await this.resolveCommand()}catch(R){yield{type:"error",error:R instanceof Error?R.message:String(R)},yield{type:"finish",reason:"error"};return}let G=(this.options.spawn??Ud)(J.cmd,J.args,{cwd:X,env:T2(this.options.env)}),B=new WM,H=new n8({writeLine:(R)=>{try{G.stdin.write(R)}catch{}},onNotification:(R)=>this.handleNotification(R,B),onRequest:(R)=>this.handleInboundRequest(R),onError:(R)=>B.push({type:"error",error:R.message}),requestTimeoutMs:this.options.timeoutMs??BM}),W="",V=(R)=>{let{lines:P,remainder:q}=k1(W,R.toString("utf8"));W=q;for(let w of P)H.handleLine(w)};G.stdout.on("data",V);let _=null;G.on("error",(R)=>{_=R.message});let U=Ad(G,"exit").then((R)=>R[0]??null).catch((R)=>{return _=R instanceof Error?R.message:String(R),null});U.then((R)=>{if(R===0)return;let P=_??(R===null?"codex child exited unexpectedly":`codex child exited with code ${R}`);B.close({kind:"error",message:P}),H.dispose(P)});let A=this.options.timeoutMs??BM,O=setTimeout(()=>HM(G,"SIGKILL"),A),C=!1,K=()=>{C=!0,HM(G,"SIGTERM")};D.signal?.addEventListener("abort",K,{once:!0});try{await H.request("initialize",{protocolVersion:Od,clientInfo:{name:"aiworker",version:"0.2.0"},capabilities:{experimentalApi:!0}});let R=D.model??this.options.model,P=Ed(D.engineBinding);if(D.engineBinding!==void 0&&P===null)yield{type:"engine_binding",engine:T$,binding:null};let q;if(P?.protocol==="current")try{q=await this.resumeCurrentThread(H,P,R,X)}catch{yield{type:"engine_binding",engine:T$,binding:null},q=await this.startThread(H,R,X)}else q=await this.startThread(H,R,X);if(!q.threadId){yield{type:"error",error:"Codex thread start returned no threadId"},yield{type:"finish",reason:"error"};return}let w=q.resumed?$:F;if(q.protocol==="legacy")H.request("newTurn",{threadId:q.threadId,prompt:w}).then(()=>B.close({kind:"finish"}),(j)=>B.close({kind:"error",message:j instanceof Error?j.message:String(j)}));else{try{await this.startCurrentTurn(H,q.threadId,w)}catch(N){if(!q.resumed)throw N;yield{type:"engine_binding",engine:T$,binding:null},q=await this.startThread(H,R,X),w=F,await this.startCurrentTurn(H,q.threadId,w)}yield{type:"engine_binding",engine:T$,binding:{...Md(q)}}}let S=!1;for await(let N of B.iter())if(yield N,N.type==="finish")S=!0;let L=B.terminal;if(L?.kind==="error")yield{type:"error",error:L.message},yield{type:"finish",reason:C?"cancelled":"error"};else if(!S)yield{type:"finish",reason:C?"cancelled":"stop"}}catch(R){yield{type:"error",error:R instanceof Error?R.message:String(R)},yield{type:"finish",reason:C?"cancelled":"error"}}finally{clearTimeout(O),D.signal?.removeEventListener("abort",K),H.dispose("run ended"),G.stdout.off("data",V),Pd(G),await U.catch(()=>null)}}handleNotification(D,$){for(let F of sY(D))$.push(F);if(D.method==="turn/completed")$.close({kind:"finish"})}async handleInboundRequest(D){if(D.method==="codex/request_permission"||D.method==="session/request_permission")return{outcome:{outcome:"selected",optionId:"allow"}};throw Error(`unsupported codex client method: ${D.method}`)}async startThread(D,$,F){let X={approval_policy:"never"};if($&&$.length>0)X.model=$;try{return{protocol:"legacy",threadId:(await D.request("thread_start",X)).threadId}}catch(G){if(!Rd(G))throw G}let J={approvalPolicy:"never",cwd:F,experimentalRawEvents:!1,persistExtendedHistory:!0};if($&&$.length>0)J.model=$;let Y=await D.request("thread/start",J);return{protocol:"current",threadId:Y.thread.id,...Y.thread.path===void 0||Y.thread.path===null?{}:{path:Y.thread.path}}}async resumeCurrentThread(D,$,F,X){let J={threadId:$.threadId,approvalPolicy:"never",cwd:X,persistExtendedHistory:!0};if(F&&F.length>0)J.model=F;let Y=await D.request("thread/resume",J);return{protocol:"current",resumed:!0,threadId:Y.thread.id||$.threadId,...Y.thread.path===void 0||Y.thread.path===null?$.path===void 0?{}:{path:$.path}:{path:Y.thread.path}}}async startCurrentTurn(D,$,F){await D.request("turn/start",{threadId:$,input:[{type:"text",text:F}]})}async resolveCommand(){let D=["app-server",...this.options.extraArgs??[]],F=await(this.options.resolveBinary??Zd)();if(F)return{cmd:F,args:D};return{cmd:"npx",args:["-y",`@openai/codex@${this.options.cliVersion?.trim()||B3.env.CODEX_CLI_VERSION?.trim()||w$}`,...D]}}}function Rd(D){if(!(D instanceof Error))return!1;return D.message.includes("thread_start")||D.message.includes("unknown variant")||D.message.includes("Invalid request")}function Ed(D){if(!D||typeof D!=="object"||Array.isArray(D))return null;let $=D;if($.protocol!==void 0&&$.protocol!=="current"||typeof $.threadId!=="string"||$.threadId.length===0)return null;let F=$.path;return{protocol:"current",threadId:$.threadId,...typeof F==="string"&&F.length>0?{path:F}:{}}}function Md(D){return{protocol:"current",threadId:D.threadId,...D.path===void 0?{}:{path:D.path}}}class WM{buffer=[];resolver=null;closed=!1;terminal=null;push(D){if(this.closed)return;if(this.resolver){let $=this.resolver;this.resolver=null,$({value:D,done:!1});return}this.buffer.push(D)}close(D){if(this.closed)return;if(this.closed=!0,D)this.terminal=D;if(this.resolver){let $=this.resolver;this.resolver=null,$({value:void 0,done:!0})}}async*iter(){while(!0){if(this.buffer.length>0){yield this.buffer.shift();continue}if(this.closed)return;let D=await new Promise(($)=>{this.resolver=$});if(D.done)return;yield D.value}}}async function Zd(){let D=B3.env.PATH??"",$=B3.platform==="win32"?";":":",F=B3.platform==="win32"?(B3.env.PATHEXT??".EXE").split(";"):[""];for(let X of D.split($)){if(!X)continue;for(let J of F){let Y=Cd.join(X,`codex${J.toLowerCase()}`);try{if((await Kd.stat(Y)).isFile())return Y}catch{}}}return null}function HM(D,$){try{D.kill($)}catch{}}function Pd(D){try{D.stdin.end()}catch{}}function qd(D){for(let $=D.length-1;$>=0;$-=1){let F=D[$];if(F?.role==="user"&&F.content.trim().length>0)return F.content}return null}function Nd(D){return D.filter(($)=>$.content.trim().length>0).map(($)=>{let F=$.role==="system"?"System":$.role==="assistant"?"Assistant":$.role==="tool"?"Tool":"User";return`<${F}>
293
+ ${$.content}
294
+ </${F}>`}).join(`
295
+
296
+ `)}var w$="0.121.0",BM=120000,Od=1,T$="codex";var QM=M(()=>{b1();rY()});var VM=M(()=>{QM();rY()});function oY(D){try{let $=JSON.parse(D);if($&&typeof $==="object"&&"type"in $&&typeof $.type==="string")return $;return null}catch{return null}}function aY(D){switch(D.type){case"system":return[];case"assistant_message":return zd(D);case"thinking":return Ld(D);case"tool_use":return jd(D);case"tool_result":return Id(D);case"token_usage":return Td(D);case"stop":case"end":return wd(D);case"error":return[{type:"error",error:typeof D.message==="string"?D.message:"cursor error"}];default:return[]}}function tY(D){let $=D.session_id;if(typeof $==="string"&&$.length>0)return $;return""}function zd(D){let $=AM(D.delta,D.text);if(!$)return[];return[{type:"assistant_message_delta",delta:$}]}function Ld(D){let $=AM(D.delta,D.text);if(!$)return[];return[{type:"thinking_delta",delta:$}]}function jd(D){if(!D.id||!D.name)return[];let $=D.input??{};return[{type:"tool_use",id:D.id,name:D.name,arguments:$,action:UM(D.name,$),...D.status?{status:Sd(D.status)}:{}}]}function Id(D){if(!D.id)return[];let $=D.isError===!0||D.is_error===!0;return[{type:"tool_result",id:D.id,name:typeof D.name==="string"?D.name:"",content:typeof D.content==="string"?D.content:"",...$?{isError:!0}:{}}]}function Td(D){let $=D.usage??{};return[{type:"token_usage",usage:{inputTokens:$.input_tokens??0,outputTokens:$.output_tokens??0}}]}function wd(D){let $=[];if(D.usage)$.push({type:"token_usage",usage:{inputTokens:D.usage.input_tokens??0,outputTokens:D.usage.output_tokens??0}});return $.push({type:"finish",reason:_M(D.reason)}),$}function _M(D){switch(D){case"length":return"length";case"cancelled":return"cancelled";case"error":return"error";case"stop":case"end_turn":default:return"stop"}}function Sd(D){switch(D){case"pending":return"pending";case"running":return"running";case"completed":return"success";case"failed":return"failed";case"cancelled":return"denied";default:return"pending"}}function UM(D,$){let F=D.toLowerCase();if(F==="read_file"||F==="read"||F==="view"||F==="open")return{kind:"file_read",path:B7($,["path","file_path","filePath"])};if(F==="edit_file"||F==="edit"||F==="write"||F==="write_file"||F==="apply_patch"){let X=B7($,["path","file_path","filePath"]),J=fd($);return{kind:"file_edit",path:X,...J?{diff:J}:{}}}if(F==="run_terminal"||F==="run_terminal_cmd"||F==="bash"||F==="shell"||F==="exec")return{kind:"command_run",command:B7($,["command","cmd","script"])};if(F==="grep"||F==="grep_search"||F==="codebase_search"||F==="search"||F==="find")return{kind:"search",query:B7($,["query","pattern"])};if(F==="web_fetch"||F==="fetch"||F==="web_search")return{kind:"web_fetch",url:B7($,["url","uri"])};return{kind:"tool",toolName:D,...Object.keys($).length>0?{arguments:$}:{}}}function AM(...D){for(let $ of D)if(typeof $==="string"&&$.length>0)return $;return""}function B7(D,$){for(let F of $){let X=D[F];if(typeof X==="string"&&X.length>0)return X}return""}function fd(D){if(typeof D.old_string==="string"&&typeof D.new_string==="string")return`- ${D.old_string}
297
+ + ${D.new_string}`;if(typeof D.oldText==="string"&&typeof D.newText==="string")return`- ${D.oldText}
298
+ + ${D.newText}`;if(typeof D.diff==="string")return D.diff;if(typeof D.content==="string")return D.content;return}var eY=()=>{};import{spawn as bd}from"child_process";import{once as kd}from"events";import vd from"fs/promises";import hd from"path";import H7 from"process";class b${options;name="cursor";lastSessionId="";constructor(D){this.options=D}async health(){return{name:this.name,status:"healthy",lastChecked:new Date().toISOString()}}async listTools(){return[]}getLastSessionId(){return this.lastSessionId}run(D){return this.runIterable(D)}async*runIterable(D){let $=ud(D.messages);if(!$){yield{type:"error",error:"Cursor executor requires a user message"},yield{type:"finish",reason:"error"};return}let F=D.workspacePath??this.options.fallbackWorkspacePath??H7.cwd(),X=md(D.engineBinding);if(D.engineBinding!==void 0&&X===void 0)yield{type:"engine_binding",engine:f$,binding:null};let J;try{J=await this.resolveCommand(D.model,X)}catch(R){yield{type:"error",error:R instanceof Error?R.message:String(R)},yield{type:"finish",reason:"error"};return}let G=(this.options.spawn??bd)(J.cmd,J.args,{cwd:F,env:T2(this.options.env)});try{G.stdin.write($),G.stdin.end()}catch{}let B=this.options.timeoutMs??xd,H=setTimeout(()=>KM(G,"SIGKILL"),B),W="",V=null,_="",U=!1,A=kd(G,"exit").then((R)=>R[0]??null).catch((R)=>{return V=R instanceof Error?R.message:String(R),null});G.on("error",(R)=>{V=R.message});let O=!1,C=()=>{O=!0,KM(G,"SIGTERM")};D.signal?.addEventListener("abort",C,{once:!0});try{for await(let R of G.stdout){let{lines:P,remainder:q}=v1(W,R.toString("utf8"));W=q;for(let w of P){let S=oY(w);if(!S)continue;let L=tY(S);if(L){if(this.lastSessionId=L,L!==_)_=L,yield{type:"engine_binding",engine:f$,binding:{sessionId:L}}}for(let N of aY(S)){if(N.type==="error"&&X!==void 0)yield{type:"engine_binding",engine:f$,binding:null};if(yield N,N.type==="finish")U=!0}if(U)break}if(U)break}}catch(R){yield{type:"error",error:R instanceof Error?R.message:String(R)}}finally{clearTimeout(H),D.signal?.removeEventListener("abort",C),yd(G)}let K=await A;if(!U){if(X!==void 0)yield{type:"engine_binding",engine:f$,binding:null};if(V)yield{type:"error",error:V};else if(K!==0&&K!==null)yield{type:"error",error:`cursor-agent exited with code ${K}`};yield{type:"finish",reason:O?"cancelled":K===0?"stop":"error"}}}async resolveCommand(D,$){let X=await(this.options.resolveBinary??gd)();if(!X)throw Error("cursor-agent binary not found on PATH (install https://cursor.com/cli)");let J=D??this.options.model,Y=$??this.options.resumeSessionId,G=CM({model:J,...Y===void 0?{}:{resumeSessionId:Y},...this.options.extraArgs===void 0?{}:{extraArgs:this.options.extraArgs}});return{cmd:X,args:G}}}function CM(D){let $=["-p","--output-format=stream-json"];if(D.model&&D.model.length>0)$.push("--model",D.model);if(D.resumeSessionId&&D.resumeSessionId.length>0)$.push("--resume",D.resumeSessionId);if(D.extraArgs&&D.extraArgs.length>0)$.push(...D.extraArgs);return $}async function gd(){let D=H7.env.PATH??"",$=H7.platform==="win32"?";":":",F=H7.platform==="win32"?(H7.env.PATHEXT??".EXE").split(";"):[""];for(let X of D.split($)){if(!X)continue;for(let J of F){let Y=hd.join(X,`cursor-agent${J.toLowerCase()}`);try{if((await vd.stat(Y)).isFile())return Y}catch{}}}return null}function KM(D,$){try{D.kill($)}catch{}}function yd(D){try{D.stdin.end()}catch{}}function ud(D){for(let $=D.length-1;$>=0;$--){let F=D[$];if(F&&F.role==="user"&&typeof F.content==="string"&&F.content.length>0)return F.content}return null}function md(D){if(!D||typeof D.sessionId!=="string"||D.sessionId.length===0)return;return D.sessionId}var xd=120000,f$="cursor";var OM=M(()=>{b1();eY()});var RM=M(()=>{OM();eY()});class $B{primary;fallbacks;name;constructor(D,$){this.primary=D;this.fallbacks=$;this.name=`fallback(${D.name})`}health(){return this.primary.health()}listTools(){return this.primary.listTools()}run(D){return this.runIterable(D)}async*runIterable(D){let $=yield*EM(this.primary,D);if($.kind==="ok")return;if($.yielded)throw $.error;let F=pd($.error),X=$.error;for(let J of this.fallbacks){if(!J.onErrorKinds.includes(F))continue;let Y=Math.max(1,J.maxRetries);for(let G=0;G<Y;G++){let B=yield*EM(J.executor,D);if(B.kind==="ok")return;if(B.yielded)throw B.error;X=B.error}}throw X}}async function*EM(D,$){let F=!1;try{for await(let X of D.run($))F=!0,yield X;return{kind:"ok"}}catch(X){return{kind:"error",error:X,yielded:F}}}function pd(D){if(D===null||D===void 0)return"unknown";let $=MM(D,"status")??MM(D,"statusCode"),F=DB(D,"code"),X=DB(D,"name"),Y=(DB(D,"message")??cd(D)).toLowerCase();if($===429||Y.includes("rate limit")||Y.includes("rate_limit"))return"rate-limit";if($===408||X==="AbortError"||F==="ETIMEDOUT"||Y.includes("timeout")||Y.includes("engine stall"))return"timeout";if($===401||$===403||Y.includes("invalid api key")||Y.includes("unauthorized"))return"auth";if(F==="ECONNREFUSED"||F==="ENOTFOUND"||F==="ECONNRESET"||F==="EAI_AGAIN"||X==="TypeError"&&Y.includes("fetch failed"))return"network";if(typeof $==="number"&&$>=500&&$<600)return"server-5xx";return"unknown"}function MM(D,$){if(typeof D!=="object"||D===null)return;let F=D[$];return typeof F==="number"?F:void 0}function DB(D,$){if(typeof D!=="object"||D===null)return;let F=D[$];return typeof F==="string"?F:void 0}function cd(D){if(typeof D==="string")return D;if(D instanceof Error)return D.message;try{return String(D)}catch{return""}}import{Buffer as ZM}from"buffer";import{spawn as PM}from"child_process";import{once as qM}from"events";class FB{opts;name="cli";constructor(D){this.opts=D}async health(){let D=new Date().toISOString();try{let $=PM(this.opts.command,["--version"],{cwd:this.opts.cwd,env:T2(this.opts.env),stdio:["ignore","pipe","pipe"]}),F=await Promise.race([qM($,"exit").then(([X])=>X),new Promise((X)=>setTimeout(()=>X(null),2000))]);if(F===null)return $.kill("SIGKILL"),{name:this.name,status:"degraded",lastChecked:D};return{name:this.name,status:F===0?"healthy":"degraded",lastChecked:D}}catch{return{name:this.name,status:"down",lastChecked:D}}}async listTools(){return[]}async*run(D){yield{type:"error",error:"CliExecutor.run is not implemented \u2014 CLI executors provide tools, not chat."},yield{type:"finish",reason:"error"}}async invokeTool(D){let $=this.opts.timeoutMs??30000,F=PM(this.opts.command,this.opts.args,{cwd:this.opts.cwd,env:T2(this.opts.env),stdio:["pipe","pipe","pipe"]}),X=[];F.stdout.on("data",(B)=>X.push(B));let J=[];F.stderr.on("data",(B)=>J.push(B)),F.stdin.write(`${JSON.stringify(D)}
299
+ `),F.stdin.end();let Y=setTimeout(()=>F.kill("SIGKILL"),$),[G]=await qM(F,"exit");if(clearTimeout(Y),G!==0){let B=ZM.concat(J).toString("utf8");throw Error(`CLI executor exited with ${G??"null"}: ${B||"(no stderr)"}`)}return ZM.concat(X).toString("utf8")}}var NM=M(()=>{b1()});var ld,dd,id,k$;var XB=M(()=>{mD();ld=Q.object({index:Q.number().optional(),id:Q.string().optional(),type:Q.literal("function").optional(),function:Q.object({name:Q.string().optional(),arguments:Q.string().optional()}).optional()}),dd=Q.object({role:Q.enum(["system","user","assistant","tool"]).optional(),content:Q.string().nullable().optional(),tool_calls:Q.array(ld).optional()}),id=Q.object({prompt_tokens:Q.number(),completion_tokens:Q.number(),total_tokens:Q.number()}),k$=Q.object({id:Q.string(),object:Q.literal("chat.completion.chunk"),created:Q.number(),model:Q.string(),choices:Q.array(Q.object({index:Q.number(),delta:dd,finish_reason:Q.enum(["stop","length","tool_calls","content_filter","function_call"]).nullable()})),usage:id.nullish()})});async function JB(D){let $=D.baseUrl.replace(/\/+$/,""),F=D.timeoutMs??nd,X=new AbortController,J=setTimeout(()=>X.abort(),F),Y=()=>X.abort();D.signal?.addEventListener("abort",Y,{once:!0});let G;try{G=await fetch(`${$}/v1/chat/completions`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream",Authorization:`Bearer ${D.apiKey}`},body:JSON.stringify(D.body),signal:X.signal})}catch(B){if(clearTimeout(J),D.signal?.removeEventListener("abort",Y),B instanceof DOMException&&B.name==="AbortError")throw Error(`OpenAI request aborted after ${F}ms`);throw Error(B instanceof Error?B.message:"OpenAI transport error")}if(!G.ok){let B=await G.text().catch(()=>"");throw clearTimeout(J),D.signal?.removeEventListener("abort",Y),new W7(G.status,G.statusText,B)}if(!G.body)throw clearTimeout(J),D.signal?.removeEventListener("abort",Y),Error("OpenAI response has no body");return sd(G.body,()=>{clearTimeout(J),D.signal?.removeEventListener("abort",Y)})}async function*sd(D,$){let F=D.getReader(),X=new TextDecoder("utf-8"),J="";try{while(!0){let{value:Y,done:G}=await F.read();if(G)break;J+=X.decode(Y,{stream:!0});while(!0){let B=rd(J);if(B===-1)break;let H=J.slice(0,B);J=J.slice(B).replace(/^\r?\n\r?\n/,"");let W=zM(H);if(!W)continue;if(W==="[DONE]"){yield{type:"done"};return}let V;try{V=JSON.parse(W)}catch{continue}let _=k$.safeParse(V);if(!_.success)continue;yield{type:"chunk",chunk:_.data}}}if(J.trim().length>0){let Y=zM(J);if(Y&&Y!=="[DONE]")try{let G=JSON.parse(Y),B=k$.safeParse(G);if(B.success)yield{type:"chunk",chunk:B.data}}catch{}}}finally{$();try{F.releaseLock()}catch{}}}function rd(D){let $=D.indexOf(`
300
+
301
+ `),F=D.indexOf(`\r
302
+ \r
303
+ `);if($===-1)return F;if(F===-1)return $;return Math.min($,F)}function zM(D){let $=D.split(/\r?\n/),F=[];for(let J of $){if(J.startsWith(":"))continue;if(J.startsWith("data:")){let Y=J.slice(5).replace(/^ /,"");F.push(Y)}}if(F.length===0)return null;let X=F.join(`
304
+ `);if(X==="[DONE]")return"[DONE]";return X}var nd=60000,W7;var LM=M(()=>{XB();W7=class W7 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 jM=M(()=>{LM();XB()});class GB{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(ad),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(od),$.tool_choice="auto";let F;try{F=await JB({baseUrl:this.baseUrl,apiKey:this.apiKey,timeoutMs:this.timeoutMs,body:$,signal:D.signal})}catch(G){yield{type:"error",error:IM(G)};return}let X=new Map,J=null,Y;try{for await(let G of F){if(G.type==="done")break;let B=G.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 W of H.tool_calls)td(X,W);if(B.finish_reason)J=Di(B.finish_reason)}if(G.chunk.usage)Y={inputTokens:G.chunk.usage.prompt_tokens,outputTokens:G.chunk.usage.completion_tokens}}}catch(G){yield{type:"error",error:IM(G)};return}for(let[,G]of Array.from(X.entries()).sort(([B],[H])=>B-H)){let B=ed(G);if(B)yield B}if(Y)yield{type:"token_usage",usage:Y};yield{type:"finish",reason:J??"stop",...Y?{usage:Y}:{}}}}function od(D){return{type:"function",function:{name:D.name,description:D.description,parameters:D.inputSchema}}}function ad(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 td(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 ed(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 Di(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 IM(D){if(D instanceof W7)return D.message;if(D instanceof Error)return D.message;return"Unknown executor error"}var TM=M(()=>{jM()});class YB{name="mcp";client;constructor(D){this.client=new G3({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 wM=M(()=>{LY()});import SM from"process";function HB(D){let $=$i(D);if(!D.fallbacks||D.fallbacks.length===0)return $;let F=D.fallbacks.map((X)=>({executor:HB(X.executor),onErrorKinds:X.onErrorKinds,maxRetries:X.maxRetries??1}));return new $B($,F)}function $i(D){let $=B8(D);switch($.engine){case"http":{let F=$.body;return new GB({baseUrl:F.baseUrl,apiKey:F.apiKey,model:$.modelId??F.model,timeoutMs:F.timeoutMs})}case"mcp":{let F=$.body;return new YB({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,Y=X?.extraArgs?[...F.args,...X.extraArgs]:F.args,G=BB(F.env,X?.env);return new FB({command:J,args:Y,...F.cwd===void 0?{}:{cwd:F.cwd},...G===void 0?{}:{env:G},...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??SM.env.CLAUDE_CLI_VERSION??j$,Y=$.modelId??F.model,G=fM(F.extraArgs,X?.extraArgs),B=BB(F.env,X?.env);return new I$({cliVersion:J,...Y===void 0?{}:{model:Y},...G===void 0?{}:{extraArgs:G},...B===void 0?{}:{env:B},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}case"acp":{let{body:F,cmd:X}=$,J=X?.cliVersion??F.cliVersion,Y=$.modelId??F.model,G=fM(F.extraArgs,X?.extraArgs),B=BB(F.env,X?.env),H=uY(F.agent);return new P$({agent:H,...Y===void 0?{}:{model:Y},...J===void 0?{}:{cliVersion:J},...G===void 0?{}:{extraArgs:G},...B===void 0?{}:{env:B},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}case"codex":{let{body:F,cmd:X}=$,J=X?.cliVersion??SM.env.CODEX_CLI_VERSION??w$,Y=$.modelId??F.model,G=X?.extraArgs,B=X?.env;return new S$({cliVersion:J,...Y===void 0?{}:{model:Y},...G===void 0?{}:{extraArgs:G},...B===void 0?{}:{env:B},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}case"cursor":{let{body:F,cmd:X}=$,J=$.modelId??F.model,Y=X?.extraArgs,G=X?.env;return new b$({...J===void 0?{}:{model:J},...Y===void 0?{}:{extraArgs:Y},...G===void 0?{}:{env:G},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}}}function fM(D,$){if(!D&&!$)return;return[...D??[],...$??[]]}function BB(D,$){if(!D&&!$)return;return{...D??{},...$??{}}}var bM=M(()=>{_1();rE();$M();VM();RM();NM();TM();wM()});import{Buffer as kM}from"buffer";import{spawn as Fi}from"child_process";import{once as Xi}from"events";import H3 from"fs/promises";import s2 from"path";function vM(D,$,F){WB(F);let X=s2.resolve(D),J=s2.resolve(X,$);if(!hM(X,J))throw new h$(`workspace subdir "${$}" escapes root`);let Y=s2.resolve(J,F);if(!hM(J,Y))throw new h$(`workspace "${F}" escapes parent`);return Y}function WB(D){if(!gM.test(D))throw new h$(`invalid conversation id: ${D}`)}function hM(D,$){let F=s2.relative(D,$);return F===""||!F.startsWith("..")&&!s2.isAbsolute(F)}class QB{root;subdir;gitOrigin;projectRoot;inflight=new Map;constructor(D){this.root=s2.resolve(D.root),this.subdir=D.subdir??"workspaces",this.gitOrigin=D.gitOrigin,this.projectRoot=D.projectRoot===void 0?void 0:s2.resolve(D.projectRoot)}async createWorkspace(D){if(this.projectRoot)return WB(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 $=vM(this.root,this.subdir,D);if(await v$($)){let F=await v$(s2.join($,".git"));return{conversationId:D,path:$,isGitWorktree:F}}if(await H3.mkdir(s2.dirname($),{recursive:!0}),this.gitOrigin)return await this.addGitWorktree(this.gitOrigin,$),{conversationId:D,path:$,isGitWorktree:!0};return await H3.mkdir($,{recursive:!0}),{conversationId:D,path:$,isGitWorktree:!1}}async disposeWorkspace(D){if(this.projectRoot){WB(D);return}let $=vM(this.root,this.subdir,D);if(!await v$($))return;if(this.gitOrigin){if(await this.removeGitWorktree(this.gitOrigin,$))return}await H3.rm($,{recursive:!0,force:!0})}async purgeAll(){if(this.projectRoot)return;let D=s2.resolve(this.root,this.subdir);if(!await v$(D))return;let $=await H3.readdir(D);await Promise.all($.map(async(F)=>{if(!gM.test(F))return;await this.disposeWorkspace(F).catch(()=>{return})}))}async addGitWorktree(D,$){let F=await xM(["worktree","add","--detach",$],D);if(F.code!==0)throw await H3.mkdir($,{recursive:!0}),Error(`git worktree add failed (code=${F.code}): ${F.stderr.trim()}`)}async removeGitWorktree(D,$){return(await xM(["worktree","remove","--force",$],D)).code===0}}async function v$(D){try{return await H3.stat(D),!0}catch{return!1}}async function xM(D,$){let F=Fi("git",D,{cwd:$,env:uE(),stdio:["ignore","pipe","pipe"]}),X=[],J=[];F.stdout.on("data",(G)=>X.push(G)),F.stderr.on("data",(G)=>J.push(G));let[Y]=await Xi(F,"exit");return{code:Y,stdout:kM.concat(X).toString("utf8"),stderr:kM.concat(J).toString("utf8")}}var gM,h$;var yM=M(()=>{b1();gM=/^[\w-]{1,128}$/;h$=class h$ extends Error{constructor(D){super(D);this.name="WorkspaceEscapeError"}}});function uM(D){let $=[D.channel,D.accountId,D.chatId];if(D.threadId!==void 0)$.push(D.threadId);return $.map(encodeURIComponent).join(":")}async function mM(D){let $=H0(D);if(!$||$.status!=="active")return null;return g().select().from(p).where(pD(k(p.id,$.currentConversationId),k(p.status,"open"))).get()??null}async function pM(D){let $=g(),F=D.threadId?pD(k(VD.channel,D.channel),k(VD.chatId,D.chatId),k(VD.threadId,D.threadId)):pD(k(VD.channel,D.channel),k(VD.chatId,D.chatId),n3(VD.threadId));return $.select({sessionKey:VD.sessionKey}).from(VD).where(F).limit(1).get()!==void 0}async function cM(D){let $=g(),F=D.threadId?pD(k(p.channel,D.channel),k(p.chatId,D.chatId),k(p.threadId,D.threadId),k(p.status,"open")):pD(k(p.channel,D.channel),k(p.chatId,D.chatId),n3(p.threadId),k(p.status,"open"));return $.select().from(p).where(F).orderBy(LD(p.lastActiveAt)).get()??null}function Gi(){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(`
305
+ `)}function Yi(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:Gi()},{role:"user",content:X.join(`
306
+ `)}]}async function lM(D,$,F,X,J,Y){let G={messages:Yi(F,X,J),...$?{model:$}:{},...Y?{workspacePath:Y}:{},temperature:0},B="";try{for await(let H of D.run(G))if(H.type==="assistant_message_delta")B+=H.delta;else if(H.type==="error")throw Error(H.error)}catch(H){return E.warn(`[conversation] classifier error, defaulting to continue: ${String(H)}`),{continue:!0,reason:"classifier-error-default-continue"}}try{let H=JSON.parse(B.trim());if(typeof H.continue==="boolean")return{continue:H.continue,reason:String(H.reason??"")};return{continue:!0,reason:"malformed-response"}}catch{return{continue:!0,reason:"non-json-classifier-output"}}}async function VB(D,$=Ji){return g().select({role:i.role,content:i.content,richMetadata:i.richMetadata}).from(i).where(k(i.conversationId,D)).orderBy(LD(i.id)).limit($*3).all().filter((J)=>!Bi(J)).slice(0,$).reverse().map((J)=>({role:J.role,content:J.content}))}function Bi(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 Ji=4;var dM=M(()=>{bD();GD();A0()});import{readFile as Hi}from"fs/promises";import Wi from"path";class UB{deps;constructor(D){this.deps=D}async snapshot(D){let[$,F]=await Promise.all([_i(this.deps.workerId),Ui(this.deps.workerId)]);return{builtins:Qi,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 nM(D){let $=new Set(D.requiredContext),F=D.registry.builtins.filter((Y)=>Y.name==="load_skill"?$.has("skill_load"):$.has("memory_search")).map((Y)=>Y.name),X=$.has("mcp_tools")?D.registry.mcpTools.map((Y)=>Y.name):[],J=Vi(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:"S2 observe-only capability registry; selections are recorded but not enforced.",selectedBuiltins:F,selectedMcpTools:X,selectedSkills:J}}function Vi(D,$,F){if($==="unknown"||$==="answer")return D.slice(0,F);let X=$.replace(/_/g,"-");return[...D].sort((Y,G)=>iM(G,X)-iM(Y,X)).slice(0,F)}function iM(D,$){let F=[D.name,D.description,...D.tags??[]].join(" ").toLowerCase();if(F.includes($))return 2;return $.split("-").reduce((J,Y)=>J+(F.includes(Y)?1:0),0)}async function _i(D){let $=await sM(X4(D));if(!$)return[];let F=x$($.servers);if(!F)return[];let X=[];for(let[J,Y]of Object.entries(F)){let G=x$(Y);if(!G)continue;let B=Array.isArray(G.tools)?G.tools:[];if(B.length===0){X.push({description:_B(G.description)??`MCP server ${J}`,name:`mcp:${J}`,server:J});continue}for(let H of B){let W=x$(H);if(!W)continue;let V=_B(W.name);if(!V)continue;X.push({description:_B(W.description)??`MCP tool ${V} from ${J}`,name:V,server:J})}}return X}async function Ui(D){let $=await sM(Wi.join(h0(D),"toolsets.json"));if(!$)return[];return(Array.isArray($.defaultToolsets)?$.defaultToolsets:[]).filter((X)=>typeof X==="string"&&X.length>0)}async function sM(D){try{let $=JSON.parse(await Hi(D,"utf8"));return x$($)}catch{return null}}function x$(D){return D!==null&&typeof D==="object"&&!Array.isArray(D)?D:null}function _B(D){return typeof D==="string"&&D.length>0?D:null}var Qi;var rM=M(()=>{I0();Qi=[{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 Oi(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 h1(D){return Ci+Oi(D.content)}function AB(D){return D.reduce(($,F)=>$+h1(F),0)}function Ri(D){return D?.contextWindowTokens!==void 0||D?.reserveTokens!==void 0||D?.keepRecentTokens!==void 0||D?.compaction?.enabled===!0||D?.compaction?.triggerTokens!==void 0}function g$(D,$){if(!Ri(D))return null;let F=D?.contextWindowTokens??Ei($)??Ai,X=Pi(D?.reserveTokens??Zi(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 aM(D){let $=h1(D.systemMessage),F=Math.max(0,Math.min(D.budget.keepRecentTokens,D.budget.contextWindowTokens-D.budget.reserveTokens-$)),X=[],J=0;for(let G of D.historyNewestFirst){let B=h1(G);if(!(J+B<=F)){if(X.length===0)X.push(G),J+=B;break}X.push(G),J+=B}return{messages:[D.systemMessage,...X.reverse()],contextTokens:$+J,historyTokens:J}}function Q7(D){try{let $=B8(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 Ei(D){try{let F=B8(D).body,X=qi(F.contextWindowTokens);if(X!==null)return X;let J=Q7(D);return J===void 0?null:Mi(J)}catch{return null}}function Mi(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 Zi(D){return Math.min(Ki,Math.floor(D/4))}function Pi(D,$){return Math.max(0,Math.min(D,Math.max(0,$-1)))}function qi(D){return typeof D==="number"&&Number.isInteger(D)&&D>0?D:null}var Ai=8192,Ki=1024,oM=2000,Ci=6;var KB=M(()=>{_1()});import{readFile as Ni}from"fs/promises";class CB{deps;constructor(D){this.deps=D}async buildSystemPrompt(D){let $=D.skillLimit??zi,[F,X]=await Promise.all([this.deps.brain.listSkills().catch(()=>[]),this.loadProjectPersonaDocs()]),J=F.slice(0,$),Y=[`You are worker ${this.deps.workerId}.`,"Respond concisely and helpfully."];if(_7(Y,"Project agent instructions",X.agent),_7(Y,"Project soul / voice",X.soul),_7(Y,"Project user profile",X.user),_7(Y,"Project memory index",X.memory),_7(Y,"Project continuity rollup",X.rollup),D.priorSummary&&D.priorSummary.trim().length>0)Y.push(`Conversation summary so far: ${D.priorSummary.trim()}`);if(J.length>0){Y.push("Available brain skills:");for(let G of J)Y.push(`- ${G.name}: ${G.description}`)}return{availableSkills:F,persona:X,promptSkillLimit:$,promptSkills:J,systemPrompt:Y.join(`
307
+ `)}}async loadProjectPersonaDocs(){let D=this.deps.workerId,[$,F,X,J,Y]=await Promise.all([V7(k3(D)),V7(v3(D)),V7(h3(D)),V7(b3(D)),V7(F4(D))]);return{agent:$,memory:J,rollup:Y,soul:F,user:X}}}class OB{deps;constructor(D){this.deps=D}async compose(D){let $={role:"system",content:D.systemPrompt},F=g$(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 aM({systemMessage:$,historyNewestFirst:X,budget:F}).messages}}async function V7(D){try{let $=(await Ni(D,"utf8")).trim();if($.length===0)return null;return $.length<=tM?$:`${$.slice(0,tM)}
308
+ ... truncated ...`}catch{return null}}function _7(D,$,F){if(F&&F.trim().length>0)D.push(`${$}:
309
+ ${F.trim()}`)}var zi=10,tM=6000;var eM=M(()=>{I0();KB()});function y$(D,$){return{...EB(D,$.source),confidence:$.confidence,intent:$.intent,qualityProfile:$.qualityProfile,reason:$.reason,requiredContext:$.requiredContext,risk:$.risk,sessionAction:$.sessionAction}}function DZ(D){return{...EB(D,D.source??"capability-registry"),...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,reason:D.reason,selectedBuiltins:D.selectedBuiltins,selectedMcpTools:D.selectedMcpTools,selectedSkills:D.selectedSkills}}function RB(D,$){return{...EB(D,"quality-gate"),...$}}function EB(D,$="s1-default"){return{schemaVersion:1,mode:"observe_only",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 ZB(D,$){let F=$.envelopeText.toLowerCase(),X=Ii(F),J=Ti(F,X),Y=FZ(F,X),G=wi(F,X,J);return y$(D,{confidence:X==="answer"?0.55:0.7,intent:X,qualityProfile:G,reason:`${$.sessionReason}; heuristic intent=${X}`,requiredContext:Y,risk:J,sessionAction:$.sessionAction,source:"intent-heuristic"})}async function $Z(D){let $="";try{for await(let F of D.executor.run({messages:Li(D.classification),...D.model?{model:D.model}:{},...D.workspacePath?{workspacePath:D.workspacePath}:{},signal:D.signal,temperature:0}))if(D.notifyActivity(),F.type==="assistant_message_delta")$+=F.delta;else if(F.type==="error")throw Error(F.error);return ji(D.context,D.classification,JSON.parse($.trim()))}catch(F){let X=ZB(D.context,D.classification);return y$(D.context,{...X,confidence:Math.min(X.confidence,0.4),reason:`llm-intent-classifier-error: ${String(F).slice(0,120)}`,source:"intent-fallback"})}}function Li(D){let $=D.recentMessages.slice(-8).map((F)=>`- ${F.role}: ${F.content.slice(0,400)}`).join(`
310
+ `);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(`
311
+ `)},{role:"user",content:[`Session action: ${D.sessionAction}`,`Session reason: ${D.sessionReason}`,`Prior summary: ${D.priorSummary?.trim()||"(none)"}`,"Recent messages:",$||"(none)",`Incoming: ${D.envelopeText}`].join(`
312
+ `)}]}function ji(D,$,F){let X=fi(F);if(!X)throw Error("intent classifier returned non-object JSON");let J=MB(X.intent,["answer","code_work","planning","research","config_admin","memory_update","skill_request","unknown"])??"unknown",Y=MB(X.risk,["low","medium","high"])??"low",G=MB(X.qualityProfile,["default","code_review","planning","high_stakes"])??"default",B=Si(X.requiredContext),H=typeof X.confidence==="number"&&Number.isFinite(X.confidence)?Math.max(0,Math.min(1,X.confidence)):0,W=typeof X.reason==="string"&&X.reason.length>0?X.reason.slice(0,240):"llm intent classifier";return y$(D,{confidence:H,intent:J,qualityProfile:G,reason:W,requiredContext:B.length>0?B:FZ($.envelopeText.toLowerCase(),J),risk:Y,sessionAction:$.sessionAction,source:"intent-llm"})}function Ii(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 Ti(D,$){if(/prod(?:uction)?|deploy|delete|reset|secret|token|key|\u751F\u4EA7|\u90E8\u7F72|\u5220\u9664|\u91CD\u7F6E|\u5BC6\u94A5|\u4EE4\u724C/i.test(D))return"high";if($==="code_work"||$==="config_admin")return"medium";return"low"}function FZ(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 wi(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 Si(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 fi(D){return D!==null&&typeof D==="object"&&!Array.isArray(D)?D:null}function MB(D,$){return typeof D==="string"&&$.includes(D)?D:null}var XZ=()=>{};function JZ(D,$){if(!$)return"auto";for(let F of $.rules)if(bi(F.pattern,D))return F.action;return $.default}function bi(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($)}async function WZ(D){if((D.evaluator??"heuristic")==="llm")try{return await ki(D)}catch{return GZ({...D,evaluator:"heuristic"})}return GZ({...D,evaluator:"heuristic"})}function QZ(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(`
313
+ `)},{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(`
314
+ `):"(none)","","Suggestions:",D.gate.suggestions.length>0?D.gate.suggestions.map(($)=>`- ${$}`).join(`
315
+ `):"(none)"].join(`
316
+ `)}]}function GZ(D){let $=D.threshold??PB(D.intentDecision.qualityProfile),F=D.assistantText.trim(),X=[],J=[],Y=8;if(F.length===0)Y=0,X.push("assistant answer is empty"),J.push("produce a concrete answer to the user request");else if(F.length<12)Y=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)Y=Math.min(Y,6),X.push("high-risk answer lacks enough detail"),J.push("include concrete verification, risk, and approval boundaries");return RB(D.context,{action:VZ(Y,$,D.mode??"observe"),dimensions:{completeness:Y,evidence:D.intentDecision.risk==="high"?Math.min(Y,6):Y,format:F.length>0?8:0,relevance:F.length>0?8:0,safety:D.intentDecision.risk==="high"?Math.min(Y,6):8},evaluator:"heuristic",finalAnswerLength:D.assistantText.length,missing:X,gateMode:D.mode??"observe",reason:Y>=$?"heuristic quality gate passed":"heuristic quality gate found gaps",score:Y,status:Y>=$?"passed":"failed",suggestions:J,threshold:$})}async function ki(D){let $="";for await(let G of D.executor.run({messages:vi(D),...D.model?{model:D.model}:{},...D.workspacePath?{workspacePath:D.workspacePath}:{},signal:D.signal,temperature:0}))if(D.notifyActivity(),G.type==="assistant_message_delta")$+=G.delta;else if(G.type==="error")throw Error(G.error);let F=JSON.parse($.trim()),X=YZ(F);if(!X)throw Error("quality gate returned non-object JSON");let J=BZ(X.threshold)??D.threshold??PB(D.intentDecision.qualityProfile),Y=Math.max(0,Math.min(10,BZ(X.score)??0));return RB(D.context,{action:hi(X.action,["pass","repair","warn","block"])??VZ(Y,J,D.mode??"observe"),dimensions:YZ(X.dimensions)??{},evaluator:"llm",finalAnswerLength:D.assistantText.length,missing:HZ(X.missing),gateMode:D.mode??"observe",reason:typeof X.reason==="string"?X.reason.slice(0,240):"llm quality gate",score:Y,status:Y>=J?"passed":"failed",suggestions:HZ(X.suggestions),threshold:J})}function vi(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(`
317
+ `)},{role:"user",content:[`Quality profile: ${D.intentDecision.qualityProfile}`,`Risk: ${D.intentDecision.risk}`,`Mode: ${D.mode??"observe"}`,`Threshold: ${D.threshold??PB(D.intentDecision.qualityProfile)}`,"","User request:",D.requestText,"","Assistant answer:",D.assistantText].join(`
318
+ `)}]}function PB(D){if(D==="high_stakes")return 8;if(D==="code_review"||D==="planning")return 7;return 5}function VZ(D,$,F){if(D>=$)return"pass";if(F==="block")return"block";if(F==="retry")return"repair";if(F==="warn")return"warn";return"warn"}function YZ(D){return D!==null&&typeof D==="object"&&!Array.isArray(D)?D:null}function BZ(D){return typeof D==="number"&&Number.isFinite(D)?D:null}function HZ(D){return Array.isArray(D)?D.filter(($)=>typeof $==="string"):[]}function hi(D,$){return typeof D==="string"&&$.includes(D)?D:null}var _Z=()=>{};class LB{deps;capabilityRegistry;contextManager;constructor(D){this.deps=D;this.capabilityRegistry=new UB({workerId:D.workerId}),this.contextManager=new CB({brain:D.brain,workerId:D.workerId})}async ingest(D){this.deps.bus.emit("channel.inbound",{channel:D.channel,chatId:D.chatId,text:D.text});let $=await this.resolveConversation(D),{conversation:F,sessionKey:X}=$,J=await this.provisionWorkspace(F.id),Y=this.persistUserMessage(F.id,D,X),G=CZ(D);this.deps.bus.emit("conversation.message",{conversationId:F.id,...G===void 0?{}:{gatewayConversationId:G},messageId:Y.id,role:"user"});let B=new AbortController,H=null;await this.deps.processes.run({group:F.id,engine:this.deps.config.executor.engine,class:"interactive",meta:{conversationId:F.id,channel:D.channel},onSpawn:async()=>({cancel:async()=>B.abort(),onActivity:(W)=>{return H=W,()=>{if(H===W)H=null}}}),job:()=>this.run(F,D,J,B.signal,()=>H?.(),$)})}async run(D,$,F,X,J,Y){let{sessionKey:G}=Y,B=g(),H=(await this.maybeCompactConversation({conversation:D,sessionKey:G,workspace:F,signal:X,notifyActivity:J})).conversation,W=Q7(this.deps.config.executor),V=AZ($),_=CZ($),U=this.deps.config.executor.engine,A={channel:$.channel,conversationId:H.id,engine:U,..._===void 0?{}:{gatewayConversationId:_},...W===void 0?{}:{model:W},sessionKey:G,...V===void 0?{}:{taskId:V}},O=this.loadPromptTranscriptRowsNewestFirst(H.id,void 0,12).reverse(),C=await this.classifyIntentDecision({decisionContext:A,envelope:$,model:W,notifyActivity:J,recentMessages:O.map((d)=>({role:d.role,content:d.content})),resolved:Y,signal:X,workspace:F});this.deps.bus.emit("orchestrator.intent_decision",C);let K=await this.contextManager.buildSystemPrompt({priorSummary:H.summary??null}),R=await this.capabilityRegistry.snapshot({skills:K.availableSkills}),P=nM({intent:C.intent,promptSkillLimit:K.promptSkillLimit,registry:R,requiredContext:C.requiredContext}),q=DZ({...A,...P});this.deps.bus.emit("orchestrator.capability_decision",q);let w=K.systemPrompt,S=await this.buildRunContext(H.id,w);Z6(G,{contextTokens:AB(S)});let L=this.buildAgentRunInput({messages:S,model:W,workspace:F,signal:X,sessionKey:G,engine:U}),N=await this.collectAssistantText(L,H.id,V,J,G,_);if(!N.ok&&N.staleBindingCleared===!0&&L.engineBinding!==void 0&&N.text.length===0)L=this.buildAgentRunInput({messages:S,model:W,workspace:F,signal:X,sessionKey:G,engine:U}),N=await this.collectAssistantText(L,H.id,V,J,G,_);if(!N.ok&&this.isContextOverflowError(N.error)){let d=await this.maybeCompactConversation({conversation:H,sessionKey:G,workspace:F,signal:X,notifyActivity:J,force:!0});if(d.compacted){if(H=d.conversation,w=(await this.contextManager.buildSystemPrompt({priorSummary:H.summary??null})).systemPrompt,S=await this.buildRunContext(H.id,w),Z6(G,{contextTokens:AB(S)}),L=this.buildAgentRunInput({messages:S,model:W,workspace:F,signal:X,sessionKey:G,engine:U}),N=await this.collectAssistantText(L,H.id,V,J,G,_),!N.ok&&N.staleBindingCleared===!0&&L.engineBinding!==void 0&&N.text.length===0)L=this.buildAgentRunInput({messages:S,model:W,workspace:F,signal:X,sessionKey:G,engine:U}),N=await this.collectAssistantText(L,H.id,V,J,G,_)}}if(!N.ok){let d=N.error??"executor error";E.warn(`[orchestrator] executor error: ${d}`),this.deps.bus.emit("orchestrator.error",{conversationId:H.id,..._===void 0?{}:{gatewayConversationId:_},...V===void 0?{}:{taskId:V},error:d});return}let j=N.text,c=this.deps.config.orchestrator?.decisionPipeline?.qualityGate,XD=await WZ({assistantText:j,capabilityDecision:q,context:{...A,conversationId:H.id},evaluator:c?.evaluator??"heuristic",executor:this.deps.executor,intentDecision:C,mode:c?.mode??"observe",model:W,notifyActivity:J,requestText:$.text,signal:X,threshold:c?.threshold,workspacePath:F?.path});if(this.deps.bus.emit("orchestrator.quality_gate",XD),XD.action==="repair"&&c?.mode==="retry"){let d=await this.runSuppressedExecutor({messages:QZ({assistantText:j,gate:XD,requestText:$.text}),workspace:F,signal:X,notifyActivity:J}).catch((cD)=>`Quality repair failed: ${String(cD)}`);if(this.deps.bus.emit("orchestrator.repair_attempted",{conversationId:H.id,..._===void 0?{}:{gatewayConversationId:_},...V===void 0?{}:{taskId:V},originalLength:j.length,repairedLength:d.length,status:d.startsWith("Quality repair failed:")?"failed":"succeeded"}),!d.startsWith("Quality repair failed:")&&d.trim().length>0)j=d.trim()}else if(XD.action==="block"&&c?.mode==="block")j="The response was blocked by the worker quality gate.";else if(XD.action==="warn"&&c?.mode==="warn")j=[j,"",`Quality gate warning: ${XD.reason}`].join(`
319
+ `);let WD=new Date().toISOString();B.insert(i).values({conversationId:H.id,role:"assistant",content:j,createdAt:WD}).run(),B.update(p).set({lastActiveAt:WD}).where(k(p.id,H.id)).run(),Z6(G,{at:WD}),this.deps.bus.emit("orchestrator.finished",{conversationId:H.id,..._===void 0?{}:{gatewayConversationId:_},...V===void 0?{}:{taskId:V}}),await this.deliver($.channel,H,j)}async collectAssistantText(D,$,F,X,J,Y){let G="",B=!1;try{for await(let H of this.deps.executor.run(D))if(X(),H.type==="assistant_message_delta")G+=H.delta,this.deps.bus.emit("orchestrator.text",{conversationId:$,...Y===void 0?{}:{gatewayConversationId:Y},...F===void 0?{}:{taskId:F},delta:H.delta});else if(H.type==="tool_use")this.deps.bus.emit("orchestrator.tool_call",{conversationId:$,...Y===void 0?{}:{gatewayConversationId:Y},...F===void 0?{}:{taskId:F},call:{id:H.id,name:H.name,arguments:H.arguments}});else if(H.type==="engine_binding"){if(H.engine===this.deps.config.executor.engine){if(UJ(J,H.engine,H.binding),H.binding===null)B=!0}}else if(H.type==="error")return{ok:!1,text:G,error:H.error,staleBindingCleared:B};return{ok:!0,text:G}}catch(H){return E.error(`[orchestrator] run failed: ${String(H)}`),{ok:!1,text:G,error:String(H),staleBindingCleared:B}}}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 $Z({classification:$,context:D.decisionContext,executor:this.deps.executor,model:D.model,notifyActivity:D.notifyActivity,signal:D.signal,workspacePath:D.workspace?.path});return ZB(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=H0(D)?.engineBindings[$];return li(F)?F:void 0}async deliver(D,$,F){let X=this.deps.config.channels.find((Y)=>Y.channel===D&&Y.enabled);if(!X)return;let J=C1(D);try{await J.send(X,{channel:D,chatId:$.chatId,...$.threadId===void 0?{}:{threadId:$.threadId},text:F})}catch(Y){E.warn(`[orchestrator] deliver to ${D} failed: ${String(Y)}`)}}async resolveConversation(D){let $=uM(D),F=await mM($),J=(F?!0:await pM(D))?null:await cM(D),Y=F??J;if(!Y){let _=this.createConversation(D);return this.upsertSession($,D,_.id),{conversation:_,sessionAction:"new_topic",sessionReason:"no-existing-conversation",sessionKey:$}}if(J)this.upsertSession($,D,Y.id);if(di(D)){this.closeConversation(Y);let _=this.createConversation(D);return this.rotateSession($,D,_.id,ii(D)),{conversation:_,sessionAction:"reset_requested",sessionReason:"gateway-reset",sessionKey:$}}let G=await this.provisionWorkspace(Y.id),B=await VB(Y.id),H=Q7(this.deps.config.executor),W=await lM(this.deps.executor,H,Y.summary??null,B,D.text,G?.path);if(this.deps.bus.emit("conversation.classifier",{conversationId:Y.id,decision:W}),W.continue)return{conversation:NB(Y),sessionAction:"continue",sessionReason:W.reason,sessionKey:$};this.closeConversation(Y);let V=this.createConversation(D);return this.rotateSession($,D,V.id,"classifier:new-topic"),{conversation:V,sessionAction:"new_topic",sessionReason:W.reason||"classifier:new-topic",sessionKey:$}}closeConversation(D){let $=g(),F=new Date().toISOString();$.update(p).set({status:"closed",closedAt:F}).where(k(p.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)=>E.warn(`[orchestrator] dispose workspace job failed: ${String(J)}`))}async provisionWorkspace(D){try{return await this.deps.workspaces.createWorkspace(D)}catch($){return E.warn(`[orchestrator] workspace create failed for ${D}: ${String($)}`),null}}async disposeWorkspace(D){try{await this.deps.workspaces.disposeWorkspace(D)}catch($){E.warn(`[orchestrator] workspace dispose failed for ${D}: ${String($)}`)}}createConversation(D){let $=g(),F=crypto.randomUUID(),X=new Date().toISOString();$.insert(p).values({id:F,channel:D.channel,chatId:D.chatId,...D.threadId===void 0?{}:{threadId:D.threadId},status:"open",startedAt:X,lastActiveAt:X}).run();let J=$.select().from(p).where(k(p.id,F)).get(),Y=AZ(D);return this.deps.bus.emit("conversation.created",{conversationId:F,channel:D.channel,chatId:D.chatId,...Y===void 0?{}:{taskId:Y}}),NB(J)}upsertSession(D,$,F){QJ({sessionKey:D,currentConversationId:F,channel:$.channel,chatId:$.chatId,...$.threadId===void 0?{}:{threadId:$.threadId},accountId:$.accountId})}rotateSession(D,$,F,X){if(!VJ({sessionKey:D,currentConversationId:F,resetReason:X}))this.upsertSession(D,$,F)}persistUserMessage(D,$,F){let X=g(),J=new Date().toISOString(),Y=$.richMetadata?JSON.stringify($.richMetadata):null,G=X.insert(i).values({conversationId:D,role:"user",content:$.text,...Y===null?{}:{richMetadata:Y},createdAt:J}).returning({id:i.id}).all();return X.update(p).set({lastActiveAt:J}).where(k(p.id,D)).run(),Z6(F,{at:J}),{id:G[0]?.id??-1}}async maybeCompactConversation(D){let $=this.deps.config.orchestrator?.compaction;if($?.enabled!==!0)return{conversation:D.conversation,compacted:!1};let F=g$(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 Y=(await this.contextManager.buildSystemPrompt({priorSummary:D.conversation.summary??null})).systemPrompt,G=h1({role:"system",content:Y}),B=G+J.reduce((P,q)=>P+h1(u$(q)),0),H=$.triggerTokens??Math.max(0,F.contextWindowTokens-F.reserveTokens);if(!D.force&&B<=H)return{conversation:D.conversation,compacted:!1};let W=Math.min(F.keepRecentTokens,Math.max(0,H-G)),{candidateRows:V}=xi(J,W);if(V.length===0)return{conversation:D.conversation,compacted:!1};let _=V[0].id,U=V[V.length-1].id,A=await this.runPreCompactionMemoryFlush({conversationId:D.conversation.id,previousSummary:D.conversation.summary??null,rows:V,compaction:$,workspace:D.workspace,signal:D.signal,notifyActivity:D.notifyActivity,fromId:_,throughId:U}),O;try{O=await this.generateCompactionSummary({previousSummary:D.conversation.summary??null,rows:V,compaction:$,workspace:D.workspace,signal:D.signal,notifyActivity:D.notifyActivity})}catch(P){return E.warn(`[orchestrator] compaction summary failed: ${String(P)}`),{conversation:D.conversation,compacted:!1}}let C=new Date().toISOString(),K=g();K.insert(i).values({conversationId:D.conversation.id,role:"system",content:O,richMetadata:JSON.stringify({kind:"compaction",version:UZ,compactedFromMessageId:_,compactedThroughMessageId:U,sourceMessageCount:V.length,previousCompactionMessageId:X?.messageId??null,memoryFlush:A.attempted?{status:A.status,at:A.at,...A.error===void 0?{}:{error:A.error}}:{status:"disabled"}}),createdAt:C}).run(),K.update(p).set({summary:O,lastActiveAt:C}).where(k(p.id,D.conversation.id)).run(),_J(D.sessionKey,{at:C,...A.attempted&&A.at!==void 0?{memoryFlushAt:A.at}:{}});let R=K.select().from(p).where(k(p.id,D.conversation.id)).get();return{conversation:R?NB(R):{...D.conversation,summary:O,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:UZ,compactedFromMessageId:D.fromId,compactedThroughMessageId:D.throughId};try{let J=(await this.runSuppressedExecutor({messages:mi(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"};return await this.deps.brain.writeMemory({content:J,metadata:{name:`pre-compaction-${D.conversationId}-${D.throughId}`,description:"Pre-compaction memory flush",type:"memory",conversationId:D.conversationId,compactedFromMessageId:D.fromId,compactedThroughMessageId:D.throughId},tags:["aiworker","session-compaction"]}),this.persistAuditMessage(D.conversationId,J,{...F,status:"succeeded"},$),{attempted:!0,at:$,status:"succeeded",content:J}}catch(X){let J=String(X);return E.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}}}async generateCompactionSummary(D){let F=(await this.runSuppressedExecutor({messages:ui(D.previousSummary,D.rows,D.compaction),workspace:D.workspace,signal:D.signal,notifyActivity:D.notifyActivity})).trim();if(F.length>0)return F;return pi(D.previousSummary,D.rows)}async runSuppressedExecutor(D){let $=Q7(this.deps.config.executor),F="";for await(let X of this.deps.executor.run({messages:D.messages,...$?{model:$}:{},...D.workspace?{workspacePath:D.workspace.path}:{},signal:D.signal,temperature:0}))if(D.notifyActivity(),X.type==="assistant_message_delta")F+=X.delta;else if(X.type==="error")throw Error(X.error);return F}persistAuditMessage(D,$,F,X){g().insert(i).values({conversationId:D,role:"system",content:$,richMetadata:JSON.stringify(F),createdAt:X}).run()}loadLatestCompactionCheckpoint(D){let F=g().select({id:i.id,role:i.role,richMetadata:i.richMetadata}).from(i).where(pD(k(i.conversationId,D),k(i.role,"system"))).orderBy(LD(i.id)).all();for(let X of F){let J=OZ(X);if(J?.kind!=="compaction")continue;let Y=ci(J.compactedThroughMessageId);if(Y!==null)return{messageId:X.id,compactedThroughMessageId:Y}}return null}loadPromptTranscriptRows(D,$){let F=$===void 0?k(i.conversationId,D):pD(k(i.conversationId,D),i3(i.id,$));return g().select({id:i.id,role:i.role,content:i.content,toolCalls:i.toolCalls,toolCallId:i.toolCallId,richMetadata:i.richMetadata}).from(i).where(F).orderBy(y2(i.id)).all().filter((J)=>!KZ(J))}loadPromptTranscriptRowsNewestFirst(D,$,F){let X=$===void 0?k(i.conversationId,D):pD(k(i.conversationId,D),i3(i.id,$));return g().select({id:i.id,role:i.role,content:i.content,toolCalls:i.toolCalls,toolCallId:i.toolCallId,richMetadata:i.richMetadata}).from(i).where(X).orderBy(LD(i.id)).limit(F*3).all().filter((Y)=>!KZ(Y)).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 OB({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??n7,F=this.loadLatestCompactionCheckpoint(D);if(!F)return(await VB(D,$)).map((J)=>({role:J.role,content:J.content}));return this.loadPromptTranscriptRowsNewestFirst(D,F.compactedThroughMessageId,$).reverse().map(u$)}async loadBudgetHistory(D,$){let F=this.loadLatestCompactionCheckpoint(D);return this.loadPromptTranscriptRowsNewestFirst(D,F?.compactedThroughMessageId,$??oM).map(u$)}async runTool(D){let $=JZ(D.toolName,this.deps.config.toolPolicy);if($==="auto")return{decision:"allow",policy:"auto"};if($==="deny"){let G=`tool ${D.toolName} blocked by policy`;if(D.conversationId!==void 0)this.persistAssistantMessage(D.conversationId,G);return this.deps.bus.emit("approval.denied",{taskId:D.taskId,toolCallId:D.toolCallId,toolName:D.toolName,reason:"policy"}),{decision:"deny",policy:"deny",syntheticAssistantMessage:G}}let F=D.timeoutMs??NY,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 Y=`tool ${D.toolName} blocked by policy`;if(D.conversationId!==void 0)this.persistAssistantMessage(D.conversationId,Y);return{decision:"deny",policy:"ask",syntheticAssistantMessage:Y}}persistAssistantMessage(D,$){let F=g(),X=new Date().toISOString();F.insert(i).values({conversationId:D,role:"assistant",content:$,createdAt:X}).run(),F.update(p).set({lastActiveAt:X}).where(k(p.id,D)).run()}async submitTask(D){let $=g(),F=crypto.randomUUID(),X=new Date().toISOString();$.insert(P2).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((Y)=>E.error(`[orchestrator] submitTask ingest failed: ${String(Y)}`)),{id:F}}}function AZ(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 u$(D){return{role:D.role,content:D.content,...D.toolCalls===null?{}:{toolCalls:D.toolCalls},...D.toolCallId===null?{}:{toolCallId:D.toolCallId}}}function xi(D,$){let F=[],X=0;for(let G=D.length-1;G>=0;G-=1){let B=D[G],H=h1(u$(B));if(F.length>0&&X+H>$)break;F.push(B),X+=H}let J=gi(D,F.reverse()),Y=J[0]?.id;if(Y===void 0)return{candidateRows:D,recentRows:[]};return{candidateRows:D.filter((G)=>G.id<Y),recentRows:J}}function gi(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=yi(D,X);if(J===null||J>=X)break;X=J}return D.slice(X)}function yi(D,$){let F=new Set;for(let X=$;X<D.length;X+=1){let J=D[X];for(let Y of J.toolCalls??[])F.add(Y.id);if(J.role!=="tool"||J.toolCallId===null||F.has(J.toolCallId))continue;for(let Y=$-1;Y>=0;Y-=1)if(D[Y].toolCalls?.some((B)=>B.id===J.toolCallId)===!0)return Y}return null}function ui(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(`
320
+ `)},{role:"user",content:["Previous durable summary:",D?.trim()||"(none)","","Transcript rows to compact. Raw rows remain stored for audit:",jB($,F.maxSummaryMessages??zB)].join(`
321
+ `)}]}function mi(D,$,F){return[{role:"system",content:["You are running a pre-compaction memory flush for AIWorker.","This turn is not delivered to the user.","Return only durable facts, preferences, decisions, or todos that should be written to long-term memory.","If there is nothing durable to write, return NONE."].join(`
322
+ `)},{role:"user",content:["Previous durable summary:",D?.trim()||"(none)","","Transcript rows about to be compacted:",jB($,F.maxSummaryMessages??zB)].join(`
323
+ `)}]}function jB(D,$){if(D.length<=$)return D.map(qB).join(`
324
+ `);let F=Math.ceil($/2),X=Math.floor($/2),J=D.length-F-X;return[...D.slice(0,F).map(qB),`... ${J} transcript rows omitted from summarizer prompt ...`,...D.slice(D.length-X).map(qB)].join(`
325
+ `)}function qB(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 pi(D,$){let F=$.length===0?"no rows":`rows #${$[0].id}-#${$[$.length-1].id}`;return[D?.trim()||"",`Compacted ${F}.`,jB($,Math.min(12,zB))].filter((X)=>X.length>0).join(`
326
+
327
+ `)}function KZ(D){if(D.role!=="system")return!1;let $=OZ(D);return $?.kind==="compaction"||$?.kind==="memory-flush"}function OZ(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 ci(D){return typeof D==="number"&&Number.isInteger(D)&&D>0?D:null}function li(D){return D!==null&&typeof D==="object"&&!Array.isArray(D)}function di(D){if(!D.raw||typeof D.raw!=="object"||Array.isArray(D.raw))return!1;let $=D.raw;return $.source==="gateway"&&$.sessionReset===!0}function CZ(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 ii(D){if(!D.raw||typeof D.raw!=="object"||Array.isArray(D.raw))return"manual";let $=D.raw.resetCommand;return $==="/new"||$==="/reset"?`manual:${$}`:"manual"}function NB(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 zB=120,UZ=1;var RZ=M(()=>{lD();bD();GD();A0();C9();dM();R$();rM();KB();eM();XZ();_Z()});function x1(D,$,F){let X=NE(D,$),J=HB($.executor),Y=new K9($.channels),G=new w9,B=ni($),H=new w1,W=new LB({config:$,brain:X,executor:J,bus:G,workerId:D,workspaces:B,processes:F.processes,approvals:H}),V=LE(G),_=$.evolution.enabled?vE():()=>{return},U=new T9({workerId:D,getOrchestrator:()=>W});return U.start(),{workerId:D,config:$,brain:X,executor:J,channels:Y,bus:G,orchestrator:W,cron:U,workspaces:B,processes:F.processes,approvals:H,dispose(){V(),_(),H.dispose(),U.stop(),sU()}}}function ni(D){let $=(()=>{if(D.executor.engine!=="claude-code")return;try{let G=B8(D.executor).body.workspaceRoot;return typeof G==="string"&&G.length>0?G:void 0}catch{return}})(),F=s.WORKER_WORKSPACE_GIT_ORIGIN,X=v0(),J=X.scope==="project"&&X.projectRoot&&!F&&!$?X.projectRoot:void 0;return new QB({root:s.WORKER_DATA_ROOT,...$?{subdir:$}:{},...F?{gitOrigin:F}:{},...J?{projectRoot:J}:{}})}var EZ=M(()=>{I0();D5();zE();RJ();C9();XG();JG();jE();hE();_1();bM();yM();R$();RZ()});var MZ=M(()=>{D5()});import{Buffer as W3}from"buffer";import{createCipheriv as si,createDecipheriv as ri,randomBytes as oi}from"crypto";class Q3{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=W3.from(D,"hex"),this.key.length!==ti)throw Error("SecretsVault: decoded master key length is not 32 bytes")}async put(D,$){let{ciphertext:F,nonce:X,authTag:J}=this.encrypt($),Y=await this.db.select({id:O0.id}).from(O0).where(k(O0.key,D)).get(),G=new Date().toISOString();if(Y)await this.db.update(O0).set({valueEnc:F,nonce:X,authTag:J,updatedAt:G}).where(k(O0.id,Y.id)).run();else await this.db.insert(O0).values({key:D,valueEnc:F,nonce:X,authTag:J,createdAt:G,updatedAt:G}).run()}async get(D){let $=await this.db.select().from(O0).where(k(O0.key,D)).get();if(!$)return null;return this.decrypt($.valueEnc,$.nonce,$.authTag)}async list(){return(await this.db.select({key:O0.key}).from(O0).all()).map(($)=>$.key)}async remove(D){await this.db.delete(O0).where(k(O0.key,D)).run()}async removeAll(){await this.db.delete(O0).run()}encryptString(D){return this.encrypt(D)}decryptString(D,$,F){return this.decrypt(D,$,F)}encrypt(D){let $=oi(ai),F=si(ZZ,this.key,$),X=W3.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=ri(ZZ,this.key,W3.from($,"base64"));return X.setAuthTag(W3.from(F,"base64")),W3.concat([X.update(W3.from(D,"base64")),X.final()]).toString("utf8")}}var ZZ="aes-256-gcm",ai=12,ti=32;var IB=M(()=>{bD();A0()});function vD(){if(!m$)m$=new Q3(s.AIWORKER_MASTER_KEY,g());return m$}function PZ(){m$=null}var m$=null;var qZ=M(()=>{bD();MZ();IB();IB()});function V3(D={}){let $=p$(D.limit,ei,1,Dn),F=p$(D.offset,0,0,Number.MAX_SAFE_INTEGER),X=g(),J=D.status===void 0?X.select().from(VD).orderBy(LD(VD.lastInteractionAt)).limit($+1).offset(F).all():X.select().from(VD).where(k(VD.status,D.status)).orderBy(LD(VD.lastInteractionAt)).limit($+1).offset(F).all();return{sessions:J.slice(0,$).map((G)=>zZ(G,D.config)),page:{limit:$,offset:F,hasMore:J.length>$}}}function _3(D,$){let F=H0(D);return F===null?null:zZ(F,$)}function U3(D={}){let $=D.apply===!0,F=TB(D);if(!$||F.planned.transcripts.length===0)return{...F,mode:$?"apply":"dry-run",applied:{conversationsDeleted:0,messagesDeleted:0}};let X=g(),J=F.planned.transcripts.map((H)=>H.conversationId);X.delete(p).where(pD(D8(p.id,J),Z`${p.status} = 'closed'
328
+ AND ${p.closedAt} IS NOT NULL
329
+ AND ${p.closedAt} <= ${F.cutoff}
330
+ AND ${p.id} NOT IN (SELECT ${VD.currentConversationId} FROM ${VD})`)).run();let Y=X.select({id:p.id}).from(p).where(D8(p.id,J)).all(),G=new Set(Y.map((H)=>H.id)),B=F.planned.transcripts.filter((H)=>!G.has(H.conversationId));return{...F,mode:"apply",applied:{conversationsDeleted:B.length,messagesDeleted:B.reduce((H,W)=>H+W.messageCount,0)}}}function TB(D={}){let $=p$(D.olderThanDays,Xn,0,3650),F=p$(D.limit,$n,1,Fn),X=Hn(D.now,$),Y=g().select({id:p.id,channel:p.channel,chatId:p.chatId,threadId:p.threadId,closedAt:p.closedAt,lastActiveAt:p.lastActiveAt}).from(p).where(Z`${p.status} = 'closed'
331
+ AND ${p.closedAt} IS NOT NULL
332
+ AND ${p.closedAt} <= ${X}
333
+ AND ${p.id} NOT IN (SELECT ${VD.currentConversationId} FROM ${VD})`).orderBy(y2(p.closedAt),y2(p.id)).limit(F).all(),G=Bn(Y.map((W)=>W.id)),B=Y.map((W)=>({conversationId:W.id,channel:W.channel,chatId:W.chatId,threadId:W.threadId,closedAt:W.closedAt??"",lastActiveAt:W.lastActiveAt,messageCount:G.get(W.id)??0})),H=B.reduce((W,V)=>W+V.messageCount,0);return{action:"prune-closed-transcripts",mode:"dry-run",cutoff:X,olderThanDays:$,limit:F,planned:{conversations:B.length,messages:H,transcripts:B},applied:{conversationsDeleted:0,messagesDeleted:0}}}function zZ(D,$){let F=Yn($),X=LZ(D.engineBindings)?D.engineBindings:{},J=NZ(F,X[F],Qn(X,F)),Y=Object.keys(X).sort().map((G)=>NZ(G,X[G],!0));return{sessionKey:D.sessionKey,sessionId:D.currentConversationId,currentConversationId:D.currentConversationId,route:{channel:D.channel,chatId:D.chatId,threadId:D.threadId,accountId:D.accountId},lifecycle:{status:D.status,sessionStartedAt:D.sessionStartedAt,lastInteractionAt:D.lastInteractionAt,resetAt:D.resetAt,resetReason:D.resetReason,createdAt:D.createdAt,updatedAt:D.updatedAt},context:{contextTokens:D.contextTokens,totalTokens:D.totalTokens,totalTokensFresh:D.totalTokensFresh,compactionCount:D.compactionCount},memoryFlush:{status:Gn(D),at:D.memoryFlushAt,compactionCount:D.compactionCount,memoryFlushCompactionCount:D.memoryFlushCompactionCount},engineBindings:{configuredEngine:F,configured:J,all:Y}}}function NZ(D,$,F){let X=LZ($)?Object.keys($).sort():[];return{engine:D,present:F,valueType:F?Wn($):"unknown",fieldCount:X.length,fields:X,redacted:!0}}function Gn(D){if(D.compactionCount===0)return"not-needed";if(D.memoryFlushAt===null)return"never";return D.memoryFlushCompactionCount>=D.compactionCount?"current":"stale"}function Yn(D){let F=D?.executor?.engine;return typeof F==="string"&&F.length>0?F:"unknown"}function Bn(D){if(D.length===0)return new Map;let $=g().select({conversationId:i.conversationId,value:N4()}).from(i).where(D8(i.conversationId,D)).groupBy(i.conversationId).all();return new Map($.map((F)=>[F.conversationId,F.value]))}function Hn(D,$){let F=D===void 0?new Date:new Date(D);return new Date(F.getTime()-$*Jn).toISOString()}function Wn(D){if(D===null)return"null";if(Array.isArray(D))return"array";let $=typeof D;if($==="boolean"||$==="number"||$==="object"||$==="string")return $;return"unknown"}function LZ(D){return D!==null&&typeof D==="object"&&!Array.isArray(D)}function Qn(D,$){return Object.prototype.hasOwnProperty.call(D,$)}function p$(D,$,F,X){if(D===void 0||!Number.isInteger(D))return $;return Math.max(F,Math.min(X,D))}var ei=50,Dn=200,$n=50,Fn=200,Xn=30,Jn=86400000;var jZ=M(()=>{bD();A0()});var IZ={};r8(IZ,{workerEnv:()=>s,timingSafeEqualStrings:()=>m2,stopGatewayNode:()=>XE,startGatewayNode:()=>O$,runClosedTranscriptMaintenance:()=>U3,resetSecretsVaultForTests:()=>PZ,resetAvailabilityProbeForTests:()=>xC,redactSecrets:()=>X5,readConfig:()=>Z0,putSecret:()=>X3,putConfig:()=>F7,printBootstrapIfJustMinted:()=>K1,planClosedTranscriptMaintenance:()=>TB,mirrorConfigToYaml:()=>X7,mintWorkerId:()=>$5,mintApiToken:()=>q6,loadOrSeedConfig:()=>U1,loadOrMintIdentity:()=>A1,listSessionStatuses:()=>V3,listSecrets:()=>F3,hydrateSecrets:()=>z6,handleTokenRotate:()=>i8,handleExecutorTest:()=>D3,handleChannelTest:()=>e6,handleBrainTest:()=>t6,getWorkerEnv:()=>V1,getSessionStatus:()=>_3,getSecretsVault:()=>vD,getChannelAdapter:()=>C1,getAvailabilityProbe:()=>y6,enumerateSecretPaths:()=>H8,deleteSecret:()=>J3,buildWorkerRuntime:()=>x1,buildInfo:()=>$3,buildCronHandlers:()=>K$,applyConfigUpdate:()=>a6,WorkerEventBus:()=>w9,SecretsVault:()=>Q3,ProcessManager:()=>f1,InvalidConfigError:()=>i2,DEFAULT_EMPTY_CONFIG:()=>P6,CronService:()=>T9,ConfigVersionConflictError:()=>n2,ChannelRegistry:()=>K9,ApprovalStore:()=>w1});var Y2=M(()=>{D5();cU();C9();XG();JG();L5();JE();ZY();GE();MY();BE();HE();WE();R$();UE();EZ();qZ();F5();jZ()});import a from"process";import{EventEmitter as vq}from"events";function GF(D){return D==null?[]:Array.isArray(D)?D:[D]}function hq(D,$,F,X){var J,Y=D[$],G=~X.string.indexOf($)?F==null||F===!0?"":String(F):typeof F==="boolean"?F:~X.boolean.indexOf($)?F==="false"?!1:F==="true"||(D._.push((J=+F,J*0===0)?J:F),!!F):(J=+F,J*0===0)?J:F;D[$]=Y==null?G:Array.isArray(Y)?Y.concat(G):[Y,G]}function xq(D,$){D=D||[],$=$||{};var F,X,J,Y,G,B={_:[]},H=0,W=0,V=0,_=D.length;let U=$.alias!==void 0,A=$.unknown!==void 0,O=$.default!==void 0;if($.alias=$.alias||{},$.string=GF($.string),$.boolean=GF($.boolean),U)for(F in $.alias){X=$.alias[F]=GF($.alias[F]);for(H=0;H<X.length;H++)($.alias[X[H]]=X.concat(F)).splice(H,1)}for(H=$.boolean.length;H-- >0;){X=$.alias[$.boolean[H]]||[];for(W=X.length;W-- >0;)$.boolean.push(X[W])}for(H=$.string.length;H-- >0;){X=$.alias[$.string[H]]||[];for(W=X.length;W-- >0;)$.string.push(X[W])}if(O){for(F in $.default)if(Y=typeof $.default[F],X=$.alias[F]=$.alias[F]||[],$[Y]!==void 0){$[Y].push(F);for(H=0;H<X.length;H++)$[Y].push(X[H])}}let C=A?Object.keys($.alias):[];for(H=0;H<_;H++){if(J=D[H],J==="--"){B._=B._.concat(D.slice(++H));break}for(W=0;W<J.length;W++)if(J.charCodeAt(W)!==45)break;if(W===0)B._.push(J);else if(J.substring(W,W+3)==="no-"){if(Y=J.substring(W+3),A&&!~C.indexOf(Y))return $.unknown(J);B[Y]=!1}else{for(V=W+1;V<J.length;V++)if(J.charCodeAt(V)===61)break;Y=J.substring(W,V),G=J.substring(++V)||(H+1===_||(""+D[H+1]).charCodeAt(0)===45||D[++H]),X=W===2?[Y]:Y;for(V=0;V<X.length;V++){if(Y=X[V],A&&!~C.indexOf(Y))return $.unknown("-".repeat(W)+Y);hq(B,Y,V+1<X.length||G,$)}}}if(O){for(F in $.default)if(B[F]===void 0)B[F]=$.default[F]}if(U)for(F in B){X=$.alias[F]||[];while(X.length>0)B[X.shift()]=B[F]}return B}var WH=(D)=>D.replace(/[<[].+/,"").trim(),gq=(D)=>{let $=/<([^>]+)>/g,F=/\[([^\]]+)\]/g,X=[],J=(B)=>{let H=!1,W=B[1];if(W.startsWith("..."))W=W.slice(3),H=!0;return{required:B[0].startsWith("<"),value:W,variadic:H}},Y;while(Y=$.exec(D))X.push(J(Y));let G;while(G=F.exec(D))X.push(J(G));return X},yq=(D)=>{let $={alias:{},boolean:[]};for(let[F,X]of D.entries()){if(X.names.length>1)$.alias[X.names[0]]=X.names.slice(1);if(X.isBoolean)if(X.negated){if(!D.some((Y,G)=>{return G!==F&&Y.names.some((B)=>X.names.includes(B))&&typeof Y.required==="boolean"}))$.boolean.push(X.names[0])}else $.boolean.push(X.names[0])}return $},BH=(D)=>{return D.sort(($,F)=>{return $.length>F.length?-1:1})[0]},HH=(D,$)=>{return D.length>=$?D:`${D}${" ".repeat($-D.length)}`},uq=(D)=>{return D.replace(/([a-z])-([a-z])/g,($,F,X)=>{return F+X.toUpperCase()})},mq=(D,$,F)=>{let X=0,J=$.length,Y=D,G;for(;X<J;++X)G=Y[$[X]],Y=Y[$[X]]=X===J-1?F:G!=null?G:!!~$[X+1].indexOf(".")||!(+$[X+1]>-1)?{}:[]},pq=(D,$)=>{for(let F of Object.keys($)){let X=$[F];if(X.shouldTransform){if(D[F]=Array.prototype.concat.call([],D[F]),typeof X.transformFunction==="function")D[F]=D[F].map(X.transformFunction)}}},cq=(D)=>{let $=/([^\\\/]+)$/.exec(D);return $?$[1]:""},QH=(D)=>{return D.split(".").map(($,F)=>{return F===0?uq($):$}).join(".")};class T7 extends Error{constructor(D){super(D);if(this.name=this.constructor.name,typeof Error.captureStackTrace==="function")Error.captureStackTrace(this,this.constructor);else this.stack=Error(D).stack}}class VH{constructor(D,$,F){if(this.rawName=D,this.description=$,this.config=Object.assign({},F),D=D.replace(/\.\*/g,""),this.negated=!1,this.names=WH(D).split(",").map((X)=>{let J=X.trim().replace(/^-{1,2}/,"");if(J.startsWith("no-"))this.negated=!0,J=J.replace(/^no-/,"");return QH(J)}).sort((X,J)=>X.length>J.length?1:-1),this.name=this.names[this.names.length-1],this.negated&&this.config.default==null)this.config.default=!0;if(D.includes("<"))this.required=!0;else if(D.includes("["))this.required=!1;else this.isBoolean=!0}}var lq=process.argv,dq=`${process.platform}-${process.arch} node-${process.version}`;class YF{constructor(D,$,F={},X){this.rawName=D,this.description=$,this.config=F,this.cli=X,this.options=[],this.aliasNames=[],this.name=WH(D),this.args=gq(D),this.examples=[]}usage(D){return this.usageText=D,this}allowUnknownOptions(){return this.config.allowUnknownOptions=!0,this}ignoreOptionDefaultValue(){return this.config.ignoreOptionDefaultValue=!0,this}version(D,$="-v, --version"){return this.versionNumber=D,this.option($,"Display version number"),this}example(D){return this.examples.push(D),this}option(D,$,F){let X=new VH(D,$,F);return this.options.push(X),this}alias(D){return this.aliasNames.push(D),this}action(D){return this.commandAction=D,this}isMatched(D){return this.name===D||this.aliasNames.includes(D)}get isDefaultCommand(){return this.name===""||this.aliasNames.includes("!")}get isGlobalCommand(){return this instanceof BF}hasOption(D){return D=D.split(".")[0],this.options.find(($)=>{return $.names.includes(D)})}outputHelp(){let{name:D,commands:$}=this.cli,{versionNumber:F,options:X,helpCallback:J}=this.cli.globalCommand,Y=[{body:`${D}${F?`/${F}`:""}`}];if(Y.push({title:"Usage",body:` $ ${D} ${this.usageText||this.rawName}`}),(this.isGlobalCommand||this.isDefaultCommand)&&$.length>0){let H=BH($.map((W)=>W.rawName));Y.push({title:"Commands",body:$.map((W)=>{return` ${HH(W.rawName,H.length)} ${W.description}`}).join(`
334
+ `)}),Y.push({title:"For more info, run any command with the `--help` flag",body:$.map((W)=>` $ ${D}${W.name===""?"":` ${W.name}`} --help`).join(`
335
+ `)})}let B=this.isGlobalCommand?X:[...this.options,...X||[]];if(!this.isGlobalCommand&&!this.isDefaultCommand)B=B.filter((H)=>H.name!=="version");if(B.length>0){let H=BH(B.map((W)=>W.rawName));Y.push({title:"Options",body:B.map((W)=>{return` ${HH(W.rawName,H.length)} ${W.description} ${W.config.default===void 0?"":`(default: ${W.config.default})`}`}).join(`
336
+ `)})}if(this.examples.length>0)Y.push({title:"Examples",body:this.examples.map((H)=>{if(typeof H==="function")return H(D);return H}).join(`
337
+ `)});if(J)Y=J(Y)||Y;console.log(Y.map((H)=>{return H.title?`${H.title}:
338
+ ${H.body}`:H.body}).join(`
339
+
340
+ `))}outputVersion(){let{name:D}=this.cli,{versionNumber:$}=this.cli.globalCommand;if($)console.log(`${D}/${$} ${dq}`)}checkRequiredArgs(){let D=this.args.filter(($)=>$.required).length;if(this.cli.args.length<D)throw new T7(`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 T7(`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 Y=F.some((G)=>G.negated&&G.names.includes(X.name));if(J===!0||J===!1&&!Y)throw new T7(`option \`${X.rawName}\` value is missing`)}}}}class BF extends YF{constructor(D){super("@@global@@","",{},D)}}var I7=Object.assign;class _H extends vq{constructor(D=""){super();this.name=D,this.commands=[],this.rawArgs=[],this.args=[],this.options={},this.globalCommand=new BF(this),this.globalCommand.usage("<command> [options]")}usage(D){return this.globalCommand.usage(D),this}command(D,$,F){let X=new YF(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=lq,{run:$=!0}={}){if(this.rawArgs=D,!this.name)this.name=D[1]?cq(D[1]):"cli";let F=!0;for(let J of this.commands){let Y=this.mri(D.slice(2),J),G=Y.args[0];if(J.isMatched(G)){F=!1;let B=I7(I7({},Y),{args:Y.args.slice(1)});this.setParsedInfo(B,J,G),this.emit(`command:${G}`,J)}}if(F){for(let J of this.commands)if(J.name===""){F=!1;let Y=this.mri(D.slice(2),J);this.setParsedInfo(Y,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=yq(F),J=[],Y=D.indexOf("--");if(Y>-1)J=D.slice(Y+1),D=D.slice(0,Y);let G=xq(D,X);G=Object.keys(G).reduce((_,U)=>{return I7(I7({},_),{[QH(U)]:G[U]})},{_:[]});let B=G._,H={"--":J},W=$&&$.config.ignoreOptionDefaultValue?$.config.ignoreOptionDefaultValue:this.globalCommand.config.ignoreOptionDefaultValue,V=Object.create(null);for(let _ of F){if(!W&&_.config.default!==void 0)for(let U of _.names)H[U]=_.config.default;if(Array.isArray(_.config.type)){if(V[_.name]===void 0)V[_.name]=Object.create(null),V[_.name].shouldTransform=!0,V[_.name].transformFunction=_.config.type[0]}}for(let _ of Object.keys(G))if(_!=="_"){let U=_.split(".");mq(H,U,G[_]),pq(H,V)}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,Y)=>{if(J.variadic)X.push(D.slice(Y));else X.push(D[Y])}),X.push($),F.commandAction.apply(this,X)}}var iq=(D="")=>new _H(D),UH=iq;GD();var JW={name:"@zonease/aiworker-cli",type:"module",version:"0.4.10",description:"AIWorker fleet CLI \u2014 gateway / worker / operator \u5355\u4E00\u4E8C\u8FDB\u5236",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/init.integration.test.ts src/commands/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"}};GD();import YQ from"process";D0();class B0 extends Error{code;constructor(D,$="aim_ws_error"){super(D);this.code=$;this.name="AimWsError"}}function eW(){let D=null,$=!1,F=!1,X=new Map,J=new Map;function Y(K){for(let[,R]of X){if(R.timer)clearTimeout(R.timer);R.signalCleanup?.(),R.reject(K)}X.clear()}function G(K){let R=X.get(K.id);if(!R)return;if(X.delete(K.id),R.timer)clearTimeout(R.timer);if(R.signalCleanup?.(),K.ok)R.resolve(K.result);else{let P=K.error;R.reject(new B0(`${P.code}: ${P.message}`,P.code))}}function B(K){let R=J.get(K.name);if(!R||R.size===0)return;for(let P of R)try{P(K.payload)}catch{}}function H(K){let R=x2(K);if(!R.ok)return;let P=R.frame;if(P.type==="response")G(P);else if(P.type==="event")B(P)}async function W(K){if($)throw new B0("aim client \u5DF2\u7ECF\u8FDE\u63A5","already_connected");let R=K.timeoutMs??1e4;await new Promise((P,q)=>{let w=!1,S;try{S=new WebSocket(K.url)}catch(N){q(new B0(`WebSocket \u6784\u9020\u5931\u8D25 (${K.url}): ${N instanceof Error?N.message:String(N)}`,"ws_construct_failed"));return}D=S;let L=setTimeout(()=>{if(w)return;w=!0;try{S.close()}catch{}q(new B0(`\u8FDE\u63A5 gateway \u8D85\u65F6 (>${R}ms): ${K.url}`,"connect_timeout"))},R);S.onopen=()=>{let N={type:"connect",role:X1.OPERATOR,agentId:K.deviceId,deviceId:K.deviceId,auth:{token:K.token},...K.meta?{meta:K.meta}:{}};try{S.send(jD(N))}catch(j){if(w)return;w=!0,clearTimeout(L),q(new B0(`\u53D1\u9001 connect \u5E27\u5931\u8D25: ${j instanceof Error?j.message:String(j)}`,"connect_send_failed"));return}if(!w)w=!0,clearTimeout(L),$=!0,P()},S.onmessage=(N)=>{let j=typeof N.data==="string"?N.data:N.data instanceof ArrayBuffer?new TextDecoder().decode(N.data):String(N.data);H(j)},S.onerror=(N)=>{if(w)return;w=!0,clearTimeout(L);let j=N.message??"unknown";q(new B0(`WS \u8FDE\u63A5\u9519\u8BEF: ${j}`,"ws_error"))},S.onclose=(N)=>{if(F=!0,$=!1,Y(new B0(`WS \u5DF2\u5173\u95ED (code=${N.code}, reason=${N.reason||"n/a"})`,"ws_closed")),!w)w=!0,clearTimeout(L),q(new B0(`WS \u5728\u63E1\u624B\u9636\u6BB5\u88AB\u5173\u95ED (code=${N.code})`,"ws_closed_early"))}})}function V(){if(!$||F||D===null||D.readyState!==WebSocket.OPEN)throw new B0("aim client \u672A\u8FDE\u63A5\u6216\u5DF2\u5173\u95ED","not_connected")}async function _(K,R,P){V();let q=crypto.randomUUID(),w={type:"request",id:q,method:K,...R===void 0?{}:{params:R}};return await new Promise((S,L)=>{let N=P?.timeoutMs??30000,j=null,c=null,XD={resolve:S,reject:L,timer:null,signalCleanup:null};if(j=setTimeout(()=>{X.delete(q),c?.(),L(new B0(`request ${K} \u8D85\u65F6 (>${N}ms)`,"request_timeout"))},N),XD.timer=j,P?.signal){let WD=P.signal;if(WD.aborted){X.delete(q),clearTimeout(j),L(WD.reason??new B0(`request ${K} \u88AB abort`,"aborted"));return}let d=()=>{if(X.delete(q),j)clearTimeout(j);L(WD.reason??new B0(`request ${K} \u88AB abort`,"aborted"))};WD.addEventListener("abort",d,{once:!0}),c=()=>WD.removeEventListener("abort",d),XD.signalCleanup=c}X.set(q,XD);try{D?.send(jD(w))}catch(WD){if(X.delete(q),j)clearTimeout(j);c?.(),L(new B0(`request ${K} \u53D1\u9001\u5931\u8D25: ${WD instanceof Error?WD.message:String(WD)}`,"send_failed"))}})}async function U(K,R,P){if(!D4(K))throw new B0(`method ${K} \u672A\u5728 @zonease/aiworker-gateway-proto \u6CE8\u518C`,"unknown_method");return await _(K,R,P)}function A(K,R){if(!fF(K));let P=J.get(K);if(!P)P=new Set,J.set(K,P);return P.add(R),()=>{let q=J.get(K);if(!q)return;if(q.delete(R),q.size===0)J.delete(K)}}async function O(K,R){if(!D||F)return;await new Promise((P)=>{let q=D;if(!q){P();return}if(q.readyState===WebSocket.CLOSED){F=!0,$=!1,P();return}let w=q.onclose;q.onclose=(S)=>{if(typeof w==="function")w.call(q,S);P()};try{q.close(K,R)}catch{}})}function C(){return $&&!F&&D!==null&&D.readyState===WebSocket.OPEN}return{connect:W,request:U,requestRaw:_,onEvent:A,close:O,isOpen:C}}G1();async function ZD(D,$={}){let F=await H4(),X=eW();try{await X.connect({url:x3($.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,"aim session done"),J}catch(J){try{await X.close(1011,"aim session error")}catch{}throw J}}function SD(D){let $=JSON.stringify(D,null,2);YQ.stdout.write(`${$}
341
+ `)}function O2(D){YQ.stdout.write(`${JSON.stringify(D)}
342
+ `)}function CD(D){if(!(D instanceof B0))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 BQ(D={}){try{let $=await ZD(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((G)=>G.online).map((G)=>G.workerId),Y=[];for(let G of J)try{let B=await F.request("approval.list",{workerId:G});for(let H of B.approvals)Y.push(H)}catch(B){E.warn(`approval.list ${G} \u5931\u8D25: ${B instanceof Error?B.message:String(B)}`)}return{approvals:Y}});return SD($),0}catch($){return E.error(`approvals list \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),CD($)}}async function HQ(D){try{let $=await ZD(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 SD($),0}catch($){return E.error(`approvals grant \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),CD($)}}D0();GD();async function WQ(D){let $=D.timeoutMs??120000;try{return await ZD(async({client:F})=>{return await new Promise((X)=>{let J=!1,Y=(V)=>{if(J)return;J=!0,X(V)},G=setTimeout(()=>{O2({kind:"error",payload:{code:"timeout",message:`chat \u7B49\u5F85 agent.done \u8D85\u65F6 (>${$}ms)`}}),Y(3)},$),B=D.workerId,H=(V)=>{if(V===null||typeof V!=="object")return!1;let _=V.workerId;return typeof _==="string"&&_===B},W=[];W.push(F.onEvent(DD.CHAT_MESSAGE,(V)=>{if(!H(V))return;O2({kind:DD.CHAT_MESSAGE,payload:V})})),W.push(F.onEvent(DD.AGENT_THINKING,(V)=>{if(!H(V))return;O2({kind:DD.AGENT_THINKING,payload:V})})),W.push(F.onEvent(DD.AGENT_TOOL_CALL,(V)=>{if(!H(V))return;O2({kind:DD.AGENT_TOOL_CALL,payload:V})})),W.push(F.onEvent(DD.AGENT_DONE,(V)=>{if(!H(V))return;O2({kind:"done",payload:V}),clearTimeout(G);for(let _ of W)_();Y(0)})),F.request("chat.send",{workerId:D.workerId,content:D.content,...D.conversationId===void 0?{}:{conversationId:D.conversationId}},{timeoutMs:Math.min($,30000)}).then((V)=>{O2({kind:"accepted",payload:V})}).catch((V)=>{O2({kind:"error",payload:{code:"request_failed",message:V instanceof Error?V.message:String(V)}}),clearTimeout(G);for(let _ of W)_();Y(CD(V))})})})}catch(F){return E.error(`chat \u5931\u8D25: ${F instanceof Error?F.message:String(F)}`),CD(F)}}GD();async function QQ(D){try{let $=await ZD(async({client:F})=>{return await F.request("config.get",{workerId:D})});return SD($),0}catch($){return E.error(`config get \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),CD($)}}async function VQ(D){let $;try{$=JSON.parse(D.configJson)}catch(F){return E.error(`config-set \u53C2\u6570\u4E0D\u662F\u5408\u6CD5 JSON: ${F instanceof Error?F.message:String(F)}`),2}try{let F=await ZD(async({client:X})=>{return await X.request("config.put",{workerId:D.workerId,ifMatch:D.ifMatch,config:$})});return SD(F),0}catch(F){return E.error(`config set \u5931\u8D25: ${F instanceof Error?F.message:String(F)}`),CD(F)}}GD();async function _Q(){try{let D=await ZD(async({client:$})=>{return await $.request("enroll.list",{})});return SD(D),0}catch(D){return E.error(`enroll list \u5931\u8D25: ${D instanceof Error?D.message:String(D)}`),CD(D)}}async function UQ(D){try{let $=await ZD(async({client:F})=>{return await F.request("enroll.approve",{otp:D})});return E.success(`\u5DF2\u6279\u51C6 OTP ${D}\uFF0CworkerId=${$.workerId}`),SD({workerId:$.workerId,deviceToken:$.deviceToken}),0}catch($){return E.error(`enroll approve \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),CD($)}}async function AQ(D){try{let $=await ZD(async({client:F})=>{return await F.request("enroll.reject",{otp:D})});if($.rejected)E.info(`\u5DF2\u62D2\u7EDD OTP ${D}`);else E.warn(`OTP ${D} \u4E0D\u5B58\u5728\u6216\u5DF2\u8FC7\u671F`);return SD($),0}catch($){return E.error(`enroll reject \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),CD($)}}import r4 from"process";import{createHash as wT}from"crypto";D0();mX();cX();import{existsSync as R_,mkdirSync as AI}from"fs";import X9 from"path";import{fileURLToPath as KI}from"url";import{Database as CI}from"bun:sqlite";f4();var lX={};r8(lX,{registeredWorkers:()=>PD,auditEvents:()=>X8});var PD=U0("registered_workers",{id:T("id").primaryKey(),baseUrl:T("base_url").notNull(),displayName:T("display_name").notNull(),apiTokenEnc:T("api_token_enc").notNull(),nonce:T("nonce").notNull(),authTag:T("auth_tag").notNull(),addedAt:T("added_at").notNull().$defaultFn(()=>new Date().toISOString()),addedBy:T("added_by").$type().notNull(),lastSeenAt:T("last_seen_at"),lastSeenState:T("last_seen_state").$type(),lastConfigVersion:fD("last_config_version")}),X8=U0("audit_events",{id:fD("id").primaryKey({autoIncrement:!0}),at:T("at").notNull().$defaultFn(()=>new Date().toISOString()),actor:T("actor").notNull(),action:T("action").notNull(),workerId:T("worker_id"),detail:T("detail",{mode:"json"}).$type()},(D)=>({workerIdIdx:i0("audit_events_worker_id_idx").on(D.workerId)}));var E_=X9.dirname(KI(import.meta.url));function OI(D){let $=X9.resolve(E_,"../../drizzle",D);if(R_($))return $;let F=X9.resolve(E_,"drizzle",D);if(R_(F))return F;return $}var dX=OI("fleet"),J9=null;function RI(D){let $=D===":memory:"?D:X9.resolve(D);try{if($!==":memory:")AI(X9.dirname($),{recursive:!0,mode:448});let F=new CI($,{create:!0});return F.exec("PRAGMA journal_mode = WAL"),F.exec("PRAGMA foreign_keys = ON"),C6(F,{schema:lX})}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 M_(D){return J9=RI(D),J9}function iX(){if(!J9)throw Error("Fleet database not initialized. Call initFleetDb() first.");return J9}function nX(){J9=null}function Z_(D=dX){k4(iX(),{migrationsFolder:D})}GD();I0();lD();mD();import P_ from"path";import EI from"process";var MI=Q.object({AIWORKER_GATEWAY_PORT:Q.coerce.number().int().positive().max(65535).default(9218),AIWORKER_GATEWAY_HOST:Q.string().min(1).default("127.0.0.1"),AIWORKER_ADMIN_EXTERNAL_AUTH:Q.enum(["1","true","0","false"]).default("0").transform(w3),INTERNAL_SHARED_SECRET:Q.string().min(16).optional(),NODE_ENV:Q.enum(["development","production","test"]).default("development"),AIWORKER_MASTER_KEY:Q.string().regex(/^[0-9a-f]{64}$/,"AIWORKER_MASTER_KEY must be 32-byte hex (64 hex chars)").optional(),AIWORKER_FLEET_DB_PATH:Q.string().optional(),AIWORKER_GATEWAY_CAN_LAUNCH:Q.enum(["true","false"]).default("false").transform((D)=>D==="true"),AIWORKER_MAX_WORKERS:Q.coerce.number().int().positive().optional(),AIWORKER_JOIN_TOKEN:Q.string().min(16).optional(),AIWORKER_ENROLL_OTP_TTL_SEC:Q.coerce.number().int().min(30).max(3600).default(300),DOCKER_HOST:Q.string().default("/var/run/docker.sock"),AIWORKER_IMAGE:Q.string().optional(),AIWORKER_NETWORK:Q.string().default("aiworker_default"),WORKER_DATA_ROOT:Q.string().optional(),WORKER_MEMORY_LIMIT:Q.string().optional(),WORKER_CPU_LIMIT:Q.coerce.number().optional(),AIWORKER_LAUNCH_BASE_URL_TEMPLATE:Q.string().default("http://{containerName}:9217")}).superRefine((D,$)=>{if(!D.AIWORKER_GATEWAY_CAN_LAUNCH)return;if(!D.INTERNAL_SHARED_SECRET)$.addIssue({code:Q.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:Q.ZodIssueCode.custom,path:[X],message:`${X} is required when AIWORKER_GATEWAY_CAN_LAUNCH=true`})});function q_(){let D=MI.parse(EI.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:ZI(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 ZI(D){if(D===":memory:")return D;let $=D&&D.length>0?D:P_.join(C2(),"fleet.db");return P_.resolve($)}D0();function y0(D,$){let F=jD($);D.forEach((X)=>{try{X.ws.send(F)}catch{}})}class v4{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 h4{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 x4{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 g4{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 PI}from"crypto";var sX="ABCDEFGHJKMNPQRSTVWXYZ23456789",N_=4,qI=5;class y4{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??NI}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<qI;D++){let $=this.generator();if(!this.entries.has($))return $}throw Error("PendingEnrollmentRegistry: failed to allocate unique OTP after retries")}}function NI(){return`${z_(N_)}-${z_(N_)}`}function z_(D){let $=PI(D),F="";for(let X=0;X<D;X++)F+=sX[$[X]%sX.length];return F}A0();import{Buffer as L_}from"buffer";import{createCipheriv as zI,createDecipheriv as j8D,randomBytes as LI,timingSafeEqual as I8D}from"crypto";var jI="aes-256-gcm",II=12,TI=32,wI=/^[0-9a-f]{64}$/;function SI(D){if(!wI.test(D))throw Error("Gateway AIWORKER_MASTER_KEY must be 32-byte hex");let $=L_.from(D,"hex");if($.length!==TI)throw Error("Gateway AIWORKER_MASTER_KEY must be 32-byte hex");return $}function u4(D,$){let F=SI($),X=LI(II),J=zI(jI,F,X),Y=L_.concat([J.update(D,"utf8"),J.final()]),G=J.getAuthTag();return{ciphertext:Y.toString("base64"),nonce:X.toString("base64"),authTag:G.toString("base64")}}function fI(D){return D.replace(/[\\%_]/g,($)=>`\\${$}`)}class m4{db;constructor(D){this.db=D}listRegisteredWorkers(){return this.db.select().from(PD).orderBy(LD(PD.addedAt)).all().map(($)=>{let{apiTokenEnc:F,nonce:X,authTag:J,...Y}=$;return{...Y,lastSeenAt:Y.lastSeenAt??void 0,lastSeenState:Y.lastSeenState??void 0,lastConfigVersion:Y.lastConfigVersion??void 0}})}getRegisteredWorker(D){let $=this.db.select().from(PD).where(k(PD.id,D)).get();if(!$)return;let{apiTokenEnc:F,nonce:X,authTag:J,...Y}=$;return{...Y,lastSeenAt:Y.lastSeenAt??void 0,lastSeenState:Y.lastSeenState??void 0,lastConfigVersion:Y.lastConfigVersion??void 0}}getRegisteredWorkerRaw(D){let $=this.db.select().from(PD).where(k(PD.id,D)).get();if(!$)return;return{...$,lastSeenAt:$.lastSeenAt??void 0,lastSeenState:$.lastSeenState??void 0,lastConfigVersion:$.lastConfigVersion??void 0}}createRegisteredWorker(D,$){let F=u4(D.apiToken,$),X=new Date().toISOString(),J=D.baseUrl.replace(/\/+$/,""),Y={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(PD).values(Y).run(),this.db.insert(X8).values({actor:"gateway",action:"gateway.worker.paired",workerId:D.workerId,detail:{baseUrl:J,displayName:D.displayName,addedBy:Y.addedBy}}).run();let{apiTokenEnc:G,nonce:B,authTag:H,...W}=Y;return{...W,lastSeenAt:W.lastSeenAt??void 0,lastSeenState:W.lastSeenState??void 0,lastConfigVersion:W.lastConfigVersion??void 0}}upsertEnrolledWorker(D,$){let F=D.baseUrl.replace(/\/+$/,""),X=new Date().toISOString(),J=this.db.select().from(PD).where(k(PD.id,D.workerId)).get();if(!J){let W=u4(D.apiToken,$),V={id:D.workerId,baseUrl:F,displayName:D.displayName,apiTokenEnc:W.ciphertext,nonce:W.nonce,authTag:W.authTag,addedAt:X,addedBy:D.addedBy??"self-enroll",lastSeenAt:X,lastSeenState:"online",lastConfigVersion:D.configVersion};this.db.insert(PD).values(V).run();let{apiTokenEnc:_,nonce:U,authTag:A,...O}=V;return{kind:"created",row:{...O,lastSeenAt:O.lastSeenAt??void 0,lastSeenState:O.lastSeenState??void 0,lastConfigVersion:O.lastConfigVersion??void 0}}}if(J.displayName!==D.displayName){this.db.update(PD).set({displayName:D.displayName,lastSeenAt:X,lastSeenState:"online"}).where(k(PD.id,D.workerId)).run();let{apiTokenEnc:W,nonce:V,authTag:_,...U}=J;return{kind:"updated",row:{...U,displayName:D.displayName,lastSeenAt:X,lastSeenState:"online",lastConfigVersion:U.lastConfigVersion??void 0}}}this.db.update(PD).set({lastSeenAt:X,lastSeenState:"online"}).where(k(PD.id,D.workerId)).run();let{apiTokenEnc:Y,nonce:G,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:PD.id}).from(PD).where(k(PD.id,D.workerId)).get())return!1;let X=u4(D.newToken,$);return this.db.update(PD).set({apiTokenEnc:X.ciphertext,nonce:X.nonce,authTag:X.authTag}).where(k(PD.id,D.workerId)).run(),!0}removeRegisteredWorker(D){if(!this.db.select({id:PD.id}).from(PD).where(k(PD.id,D)).get())return!1;return this.db.delete(PD).where(k(PD.id,D)).run(),!0}countRegisteredWorkers(){return this.db.select({value:N4()}).from(PD).get()?.value??0}recordAudit(D){this.db.insert(X8).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(K4(X8.id,D.before));if(D.actionPrefix&&D.actionPrefix.length>0){let B=`${fI(D.actionPrefix)}%`;F.push(Z`${X8.action} LIKE ${B} ESCAPE '\\'`)}if(D.workerId&&D.workerId.length>0)F.push(k(X8.workerId,D.workerId));let X=F.length===0?void 0:F.length===1?F[0]:pD(...F),J=this.db.select().from(X8).where(X).orderBy(LD(X8.id)).limit($+1).all(),Y=J.length>$;return{events:(Y?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:Y}}}D0();lD();import{Buffer as _T}from"buffer";import{createHash as UT}from"crypto";import{resolve as rX,sep as bI}from"path";async function p4(D){let{webStaticDir:$}=D,F=rX($),X;try{X=kI(decodeURIComponent(D.pathnameAfterPrefix))}catch{return new Response("forbidden",{status:403})}let J=X===""?"index.html":X,Y=rX(F,J);if(Y!==F&&!Y.startsWith(F+bI))return new Response("forbidden",{status:403});let G=Bun.file(Y);if(await G.exists())return new Response(G);if(!vI(J)){let B=Bun.file(rX(F,"index.html"));if(await B.exists())return new Response(B)}return new Response("not found",{status:404})}function kI(D){let $=0;while($<D.length&&D[$]==="/")$+=1;return D.slice($)}function vI(D){let $=D.lastIndexOf("/");return($===-1?D:D.slice($+1)).includes(".")}lD();function j_(D){if(F1(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
343
+ `+`
344
+ `+`\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
345
+ `+`\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
346
+ `+`
347
+ `+`\u4FEE\u590D\u65B9\u5F0F\u4E8C\u9009\u4E00\uFF1A
348
+ `+` 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
349
+ `+" 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 I_}from"buffer";import{timingSafeEqual as hI}from"crypto";function T_(D,$){let F=I_.from(D,"utf8"),X=I_.from($,"utf8");if(F.length!==X.length)return!1;return hI(F,X)}function w_(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(!T_(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(!T_(D.presentedToken,D.sharedSecret))return{ok:!1,reason:"invalid_token"};return{ok:!0,via:"shared-secret"}}D0();lD();var l4="/w/",n0="/api/worker",xI=60000,oX=1048576,gI=50,c4=0;async function b_(D,$,F){let X=Date.now(),J=yI($.pathname);if(J===void 0)return aD(404,"not-found","Not a worker bridge path");if(!J.ok)return aD(400,"invalid-worker-id",J.message);if(J.value.workerApiPath===`${n0}/events/stream`)return pI(D,$,F,J.value,X);let Y=await uI(D,$,J.value);if(!Y.ok){if(Y.audit)aX(F,{workerId:J.value.workerId,method:Y.audit.method,path:$.pathname,result:"error",status:Y.response.status,latencyMs:tX(X),errorCode:Y.audit.errorCode});return Y.response}let G=await lI({ctx:F,workerId:J.value.workerId,method:Y.value.method,params:Y.value.params,signal:D.signal}),B=dI(G,Y.value.transformResult);return aX(F,{workerId:J.value.workerId,method:Y.value.method,path:$.pathname,result:G.ok?"success":"error",status:B.status,latencyMs:tX(X),...G.ok?{}:{errorCode:G.error.code}}),B}function k_(D){if(!D.startsWith(l4))return!1;let $=D.slice(l4.length),F=$.indexOf("/");if(F===-1)return!1;return $.slice(F).startsWith(n0)}function yI(D){if(!D.startsWith(l4))return;let $=D.slice(l4.length),F=$.indexOf("/"),X=F===-1?$:$.slice(0,F);if(!p0.test(X))return{ok:!1,message:`workerId must match ${String(p0)}`};let J=F===-1?"/":$.slice(F);return{ok:!0,value:{workerId:X,workerApiPath:J}}}async function uI(D,$,F){if(F.workerApiPath===`${n0}/info`){if(D.method!=="GET")return{ok:!1,response:K0("GET")};return{ok:!0,value:{method:"workers.info",params:{workerId:F.workerId}}}}if(F.workerApiPath===`${n0}/config`){if(D.method==="GET")return{ok:!0,value:{method:"config.get",params:{workerId:F.workerId}}};if(D.method==="PUT"){let H=cI(D.headers.get("If-Match"));if(!H.ok)return{ok:!1,response:aD(400,"invalid-if-match",H.message),audit:{method:"config.put",errorCode:"invalid-if-match"}};let W=await O6(D);if(!W.ok)return{ok:!1,response:aD(W.status,W.code,W.message),audit:{method:"config.put",errorCode:W.code}};return{ok:!0,value:{method:"config.put",params:{workerId:F.workerId,ifMatch:H.value,config:W.value}}}}return{ok:!1,response:K0("GET, PUT")}}if(F.workerApiPath===`${n0}/cron`){if(D.method==="GET")return{ok:!0,value:{method:"cron.list",params:{workerId:F.workerId}}};if(D.method==="POST"){let H=await O6(D);if(!H.ok)return{ok:!1,response:aD(H.status,H.code,H.message),audit:{method:"cron.add",errorCode:H.code}};return{ok:!0,value:{method:"cron.add",params:{workerId:F.workerId,job:H.value},transformResult:f_}}}return{ok:!1,response:K0("GET, POST")}}let X=F.workerApiPath.match(/^\/api\/worker\/cron\/([^/]+)$/);if(X){let H=decodeURIComponent(X[1]);if(D.method==="PATCH"){let W=await O6(D);if(!W.ok)return{ok:!1,response:aD(W.status,W.code,W.message),audit:{method:"cron.update",errorCode:W.code}};return{ok:!0,value:{method:"cron.update",params:{workerId:F.workerId,jobId:H,patch:W.value}}}}if(D.method==="DELETE")return{ok:!0,value:{method:"cron.remove",params:{workerId:F.workerId,jobId:H},transformResult:mI}};return{ok:!1,response:K0("PATCH, DELETE")}}if(F.workerApiPath===`${n0}/approvals`){if(D.method!=="GET")return{ok:!1,response:K0("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:K0("POST")};let H=await O6(D);if(!H.ok)return{ok:!1,response:aD(H.status,H.code,H.message),audit:{method:"approval.grant",errorCode:H.code}};let W=H.value.decision;if(W!=="allow"&&W!=="deny")return{ok:!1,response:aD(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:W}}}}if(F.workerApiPath===`${n0}/secrets`){if(D.method!=="GET")return{ok:!1,response:K0("GET")};return{ok:!0,value:{method:"secrets.list",params:{workerId:F.workerId}}}}let Y=F.workerApiPath.match(/^\/api\/worker\/secrets\/([^/]+)$/);if(Y){let H=decodeURIComponent(Y[1]);if(!/^[\w.-]{1,128}$/.test(H)){let W=D.method==="DELETE"?"secrets.delete":"secrets.put";return{ok:!1,response:aD(400,"invalid-key","secret key must match [A-Za-z0-9._-] and be 1-128 chars"),audit:{method:W,errorCode:"invalid-key"}}}if(D.method==="PUT"){let W=await O6(D);if(!W.ok)return{ok:!1,response:aD(W.status,W.code,W.message),audit:{method:"secrets.put",errorCode:W.code}};let V=W.value.value;if(typeof V!=="string"||V.length===0)return{ok:!1,response:aD(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:H,value:V}}}}if(D.method==="DELETE")return{ok:!0,value:{method:"secrets.delete",params:{workerId:F.workerId,key:H}}};return{ok:!1,response:K0("PUT, DELETE")}}if(F.workerApiPath===`${n0}/engines`){if(D.method!=="GET")return{ok:!1,response:K0("GET")};return{ok:!0,value:{method:"engines.list",params:{workerId:F.workerId,refresh:$.searchParams.get("refresh")==="1"}}}}if(F.workerApiPath===`${n0}/brain/test`){if(D.method!=="POST")return{ok:!1,response:K0("POST")};return{ok:!0,value:{method:"brain.test",params:{workerId:F.workerId}}}}if(F.workerApiPath===`${n0}/executor/test`){if(D.method!=="POST")return{ok:!1,response:K0("POST")};let H=await S_(D);if(!H.ok)return{ok:!1,response:aD(H.status,H.code,H.message),audit:{method:"executor.test",errorCode:H.code}};let W=H.value?.probe;return{ok:!0,value:{method:"executor.test",params:{workerId:F.workerId,...typeof W==="boolean"?{probe:W}:{}}}}}let G=F.workerApiPath.match(/^\/api\/worker\/channels\/([^/]+)\/test$/);if(G){if(D.method!=="POST")return{ok:!1,response:K0("POST")};let H=await S_(D);if(!H.ok)return{ok:!1,response:aD(H.status,H.code,H.message),audit:{method:"channel.test",errorCode:H.code}};return{ok:!0,value:{method:"channel.test",params:{workerId:F.workerId,channel:decodeURIComponent(G[1]),...H.value===void 0?{}:{body:H.value}}}}}if(F.workerApiPath===`${n0}/orchestrator/tasks`){if(D.method==="GET")return{ok:!0,value:{method:"orchestrator.tasks.list",params:{workerId:F.workerId}}};if(D.method==="POST"){let H=await O6(D);if(!H.ok)return{ok:!1,response:aD(H.status,H.code,H.message),audit:{method:"orchestrator.tasks.create",errorCode:H.code}};let W=H.value.prompt;if(typeof W!=="string"||W.trim().length===0||W.trim().length>8000)return{ok:!1,response:aD(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:W},transformResult:f_}}}return{ok:!1,response:K0("GET, POST")}}if(F.workerApiPath===`${n0}/orchestrator/conversations`){if(D.method!=="GET")return{ok:!1,response:K0("GET")};return{ok:!0,value:{method:"orchestrator.conversations.list",params:{workerId:F.workerId}}}}let B=F.workerApiPath.match(/^\/api\/worker\/orchestrator\/conversations\/([^/]+)\/messages$/);if(B){if(D.method!=="GET")return{ok:!1,response:K0("GET")};return{ok:!0,value:{method:"orchestrator.messages.list",params:{workerId:F.workerId,conversationId:decodeURIComponent(B[1])}}}}return{ok:!1,response:aD(404,"not-found",`Unsupported worker bridge path ${F.workerApiPath}`)}}async function O6(D){let $=Number.parseInt(D.headers.get("Content-Length")??"0",10);if(Number.isFinite($)&&$>oX)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>oX)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 S_(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>oX)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 f_(D){return D}function mI(D){return Boolean(D.removed)?{ok:!0}:D}function pI(D,$,F,X,J){if(D.method!=="GET")return K0("GET");if(c4>=gI)return aD(503,"too-many-event-streams","Too many active worker event streams");if(!F.nodes.has(X.workerId)&&!F.persistence.getRegisteredWorker(X.workerId))return aD(404,"not-found",`worker ${X.workerId} is not registered`);if(!F.nodes.has(X.workerId))return aD(503,"node_offline",`worker ${X.workerId} \u5F53\u524D\u672A\u8FDE\u63A5\u5230 gateway`);c4+=1;let Y=!1,G=`http-sse-${crypto.randomUUID()}`,B,H=new ReadableStream({start(W){let V=new TextEncoder,_=(C)=>{if(Y)return;if(W.desiredSize!==null&&W.desiredSize<=0)return;W.enqueue(V.encode(C))},U={send(C){let K=x2(C);if(!K.ok||K.frame.type!=="event")return;let R=K.frame.payload;if(R.workerId!==X.workerId)return;_(`event: ${K.frame.name}
350
+ data: ${JSON.stringify({...R,at:K.frame.ts})}
351
+
352
+ `)},close(){},data:{}},A,O=()=>{if(Y)return;if(Y=!0,c4=Math.max(0,c4-1),F.operators.unregister(U),A)clearInterval(A);D.signal.removeEventListener("abort",O)};if(B=O,A=setInterval(()=>_(`: keepalive
353
+
354
+ `),30000),typeof A.unref==="function")A.unref();F.operators.register({agentId:G,deviceId:G,ws:U,connectedAt:Date.now()}),D.signal.addEventListener("abort",O,{once:!0}),_(`: connected
355
+
356
+ `)},cancel(){B?.()}});return aX(F,{workerId:X.workerId,method:"events.stream",path:$.pathname,result:"success",status:200,latencyMs:tX(J)}),new Response(H,{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}function cI(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 lI(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,Y,G,B,H=()=>{if(G)clearTimeout(G);if(B)D.signal?.removeEventListener("abort",B)},W=(U)=>{if(J)return;J=!0,H(),X(U)};B=()=>{if(Y)D.ctx.forwards.consume(Y);W({type:"response",id:F,ok:!1,error:{code:"request_aborted",message:"request aborted by client",details:{workerId:D.workerId,method:D.method}}})};let V={send(U){let A=x2(U);if(A.ok&&A.frame.type==="response"){W(A.frame);return}W({type:"response",id:F,ok:!1,error:{code:"bad_gateway",message:"gateway bridge received a non-response frame"}})},close(){},data:{}};if(G=setTimeout(()=>{if(Y)D.ctx.forwards.consume(Y);W({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}}})},xI),typeof G.unref==="function")G.unref();D.signal?.addEventListener("abort",B,{once:!0});let _=D.ctx.forwards.allocate({operatorRequestId:F,operatorWs:V,workerId:D.workerId,method:D.method});Y=_.gatewayRequestId;try{$.ws.send(jD({type:"request",id:_.gatewayRequestId,method:D.method,params:D.params}))}catch(U){D.ctx.forwards.consume(_.gatewayRequestId),W({type:"response",id:F,ok:!1,error:{code:"forward_failed",message:`\u8F6C\u53D1\u5230 worker ${D.workerId} \u5931\u8D25: ${U instanceof Error?U.message:String(U)}`,details:{workerId:D.workerId}}})}})}function dI(D,$){if(D.ok)return d4($?$(D.result):D.result,200);let F=nI(D.error.code);return d4({error:{code:F,message:D.error.message,...D.error.details===void 0?{}:{details:D.error.details}}},iI(D.error.code))}function aX(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 tX(D){return Math.max(0,Date.now()-D)}function iI(D){switch(D){case"invalid_params":case"invalid_config":case"invalid_body":case"invalid_key":case"invalid_cron":return 400;case"version_conflict":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 nI(D){switch(D){case"invalid_config":return"invalid-config";case"version_conflict":return"version-conflict";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 K0(D){return d4({error:{code:"method-not-allowed",message:"method not allowed"}},405,{Allow:D})}function aD(D,$,F){return d4({error:{code:$,message:F}},D)}function d4(D,$,F={}){return new Response(JSON.stringify(D),{status:$,headers:{"Content-Type":"application/json",...F}})}D0();D0();mD();function v_(D){let $=Q.object({workerId:Q.string().min(1)}).safeParse(D.params);if(!$.success)return eX(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 eX(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(jD({type:"request",id:J.gatewayRequestId,method:D.method,params:D.params})),!0}catch(Y){return D.ctx.forwards.consume(J.gatewayRequestId),eX(D.operatorWs,D.operatorRequestId,{code:"forward_failed",message:`\u8F6C\u53D1\u5230 worker ${F} \u5931\u8D25: ${Y instanceof Error?Y.message:String(Y)}`,details:{workerId:F}}),!1}}function eX(D,$,F){let X=jD({type:"response",id:$,ok:!1,error:F});try{D.send(X)}catch{}}D0();mD();var sI=Q.object({limit:Q.number().int().positive().max(200).optional(),before:Q.number().int().positive().optional(),action:Q.string().min(1).optional(),workerId:Q.string().min(1).optional()}).default({}),rI=Q.object({events:Q.array(t7),hasMore:Q.boolean()}),h_=(D,$)=>{let F=sI.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}}),Y=rI.safeParse({events:X,hasMore:J});if(!Y.success)return{ok:!1,code:"internal_error",message:`audit.list \u8FD4\u56DE\u503C\u4E0D\u7B26\u5408 schema: ${Y.error.message}`};return{ok:!0,result:Y.data}};D0();mD();import{createHash as oI}from"crypto";var x_=Q.object({otp:Q.string().min(1)}),g_=(D)=>{if(!D.pendingEnrollments)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u521D\u59CB\u5316 pending enrollment registry"};let $=D.pendingEnrollments.list(),F=Q.object({pending:Q.array(a7)}).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}},y_=(D,$)=>{if(!D.pendingEnrollments)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u521D\u59CB\u5316 pending enrollment registry"};let F=x_.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 G=aI(D,F.data.otp);if(!(G?D.persistence.getRegisteredWorker(G.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:Y}=D.nodes.register({workerId:X.workerId,deviceId:X.ws.data.deviceId??X.workerId,ws:X.ws,pairedAt:Date.now(),meta:{}});if(Y){D.forwards.cancelByWorker(X.workerId);try{Y.ws.close(1012,"replaced_by_enroll_approve")}catch{}}try{X.ws.send(jD({type:"event",name:DD.ENROLLMENT_APPROVED,payload:{workerId:X.workerId,deviceToken:X.apiToken},ts:Date.now()}))}catch{}if(y0(D.operators,{type:"event",name:DD.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 y0(D.operators,{type:"event",name:DD.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}}},u_=(D,$)=>{if(!D.pendingEnrollments)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u521D\u59CB\u5316 pending enrollment registry"};let F=x_.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:tI(X.otp)}}),y0(D.operators,{type:"event",name:DD.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 aI(D,$){let F=D.pendingEnrollments?.list().find((X)=>X.otp===$);return F?{workerId:F.workerId}:void 0}function tI(D){return oI("sha256").update(D).digest("hex").slice(0,16)}D0();mD();var eI=Q.object({now:Q.number().int(),online:Q.array(J1)}),m_=(D)=>{let $=Date.now(),F=D.nodes.list().map((J)=>{let Y=D.persistence.getRegisteredWorker(J.workerId);return{workerId:J.workerId,displayName:Y?.displayName,online:!0,deviceId:J.deviceId,baseUrl:Y?.baseUrl,lastSeenAt:J.pairedAt}}),X=eI.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}};D0();mD();import{Buffer as p_}from"buffer";var DT=Q.object({workerId:Q.string().min(1)}),c_=async(D,$)=>{let F=DT.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 Y=D.nodes.get(X);if(!Y)return{ok:!1,code:"node_offline",message:`worker ${X} \u672A\u8FDE\u63A5\u5230 gateway`};return await new Promise((G)=>{let B=new l_(G,D,X),H=D.forwards.allocate({operatorRequestId:`internal:token-rotate:${X}:${Date.now()}`,operatorWs:B,workerId:X,method:"token.rotate"});try{Y.ws.send(jD({type:"request",id:H.gatewayRequestId,method:"token.rotate",params:{workerId:X}}))}catch(W){D.forwards.consume(H.gatewayRequestId),G({ok:!1,code:"forward_failed",message:`token.rotate \u53D1\u5F80 worker \u5931\u8D25: ${W instanceof Error?W.message:String(W)}`})}})};class l_{resolve;ctx;workerId;constructor(D,$,F){this.resolve=D;this.ctx=$;this.workerId=F}send(D){let $=typeof D==="string"?D:D instanceof ArrayBuffer?p_.from(new Uint8Array(D)).toString("utf8"):p_.from(D).toString("utf8"),F;try{F=JSON.parse($)}catch(G){this.resolve({ok:!1,code:"internal_error",message:`token.rotate: \u65E0\u6CD5\u89E3\u6790 node \u54CD\u5E94: ${G instanceof Error?G.message:String(G)}`});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(){}}D0();lD();mD();lD();class G9 extends Error{constructor(D="worker rejected bearer token"){super(D);this.name="WorkerClientAuthError"}}class W1 extends Error{cause;constructor(D,$){super(D);this.cause=$;this.name="WorkerClientNetworkError"}}class j8 extends Error{constructor(D){super(D);this.name="WorkerClientInvalidResponseError"}}var $T=1e4;class DJ{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??$T}buildUrl(D){let $=D.replace(/^\/+/,"");return`${this.baseUrl}/api/worker/${$}`}async request(D,$,F){let X=new AbortController,J=setTimeout(()=>X.abort(),this.timeoutMs),Y={Authorization:`Bearer ${this.apiToken}`},G={method:D,headers:Y,signal:X.signal};if(F!==void 0)G.body=JSON.stringify(F),Y["Content-Type"]="application/json";try{return await this.fetchImpl(this.buildUrl($),G)}catch(B){if(B.name==="AbortError")throw new W1(`worker ${this.baseUrl} request timed out after ${this.timeoutMs}ms`,B);throw new W1(`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 G9;if(!D.ok)throw new W1(`worker ${this.baseUrl} returned HTTP ${D.status}`);let $;try{$=await D.json()}catch(F){throw new j8(`worker ${this.baseUrl} /info returned non-JSON body: ${F.message}`)}if(!FT($))throw new j8(`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 G9;if(!D.ok)throw new W1(`worker ${this.baseUrl} returned HTTP ${D.status} from /token/rotate`);let $;try{$=await D.json()}catch(X){throw new j8(`worker ${this.baseUrl} /token/rotate returned non-JSON body: ${X.message}`)}if(!$||typeof $!=="object"||!("newToken"in $))throw new j8(`worker ${this.baseUrl} /token/rotate response missing newToken`);let F=$.newToken;if(!P8(F))throw new j8(`worker ${this.baseUrl} /token/rotate returned a token that does not match wtk_<base64url>`);return{newToken:F}}}function FT(D){if(!D||typeof D!=="object")return!1;let $=D;return typeof $.workerId==="string"&&$.workerId.length>0&&typeof $.configVersion==="number"&&Number.isFinite($.configVersion)}class R6 extends Error{constructor(D){super(D);this.name="LaunchTimeoutError"}}class J8 extends Error{cause;constructor(D,$){super(D);this.cause=$;this.name="LaunchFailedError"}}function XT(D){if(!D)return null;let $=Date.parse(D);if(!Number.isFinite($))return null;return $}var d_=(D)=>{let F=D.persistence.listRegisteredWorkers().map((J)=>{let Y=D.nodes.has(J.id),G=Y?D.nodes.get(J.id):void 0,B=G?G.pairedAt:XT(J.lastSeenAt);return{workerId:J.id,displayName:J.displayName,online:Y,deviceId:G?.deviceId,baseUrl:J.baseUrl,lastSeenAt:B}}),X=Q.object({workers:Q.array(J1)}).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}},i_=(D,$)=>{let F=Q.object({workerId:Q.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 Y=D.nodes.get(X),G=D.persistence.removeRegisteredWorker(X);if(Y){D.forwards.cancelByWorker(X),D.nodes.unregisterByWs(Y.ws);try{Y.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:G}}},JT=Q.object({workerBaseUrl:Q.string().min(1),bootstrapToken:Q.string().regex(t2,"bootstrapToken must match wtk_<base64url>"),displayName:Q.string().min(1).max(80).optional()});function GT(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=JT.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 V=$.persistence.countRegisteredWorkers();if(V>=$.maxWorkers)return{ok:!1,code:"quota_exceeded",message:`fleet \u5DF2\u8FBE ${$.maxWorkers} worker \u4E0A\u9650`,details:{limit:$.maxWorkers,current:V}}}let Y=D.buildClient?D.buildClient(J.workerBaseUrl,J.bootstrapToken):new DJ({baseUrl:J.workerBaseUrl,apiToken:J.bootstrapToken}),G;try{G=await Y.info()}catch(V){if(V instanceof G9)return{ok:!1,code:"auth_failed",message:"worker \u62D2\u7EDD bootstrap token"};if(V instanceof W1)return{ok:!1,code:"worker_unreachable",message:V.message};if(V instanceof j8)return{ok:!1,code:"invalid_worker_info",message:V.message};throw V}if($.persistence.getRegisteredWorker(G.workerId))return{ok:!1,code:"already_registered",message:`worker ${G.workerId} \u5DF2\u5728 fleet \u4E2D`,details:{workerId:G.workerId}};let H=$.persistence.createRegisteredWorker({workerId:G.workerId,baseUrl:J.workerBaseUrl,apiToken:J.bootstrapToken,displayName:J.displayName??G.workerId,addedBy:"manual",configVersion:G.configVersion},$.masterKeyHex),W=B6.safeParse({workerId:H.id,deviceToken:J.bootstrapToken});if(!W.success)return{ok:!1,code:"internal_error",message:`workers.pair \u6784\u9020\u7684 result \u4E0D\u7B26\u5408 schema: ${W.error.message}`};return{ok:!0,result:W.data}}}var n_=GT(),YT=Q.object({displayName:Q.string().min(1).max(80).optional(),image:Q.string().optional(),env:Q.record(Q.string()).optional(),forceId:Q.string().optional()});function BT(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=YT.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,Y=J.displayName??"worker";if($.maxWorkers!==void 0){let V=$.persistence.countRegisteredWorkers();if(V>=$.maxWorkers)return{ok:!1,code:"quota_exceeded",message:`fleet \u5DF2\u8FBE ${$.maxWorkers} worker \u4E0A\u9650`,details:{limit:$.maxWorkers,current:V}}}let G;try{G=await $.supervisor.launchLocal({displayName:Y,...J.forceId===void 0?{}:{forceId:J.forceId}})}catch(V){if(V instanceof R6)return{ok:!1,code:"launch_timeout",message:V.message};if(V instanceof J8)return{ok:!1,code:"launch_failed",message:V.message};throw V}if($.persistence.getRegisteredWorker(G.workerId))return{ok:!1,code:"already_registered",message:`worker ${G.workerId} \u5DF2\u5728 fleet \u4E2D`,details:{workerId:G.workerId,containerName:G.containerName}};let H=$.persistence.createRegisteredWorker({workerId:G.workerId,baseUrl:G.baseUrl,apiToken:G.apiToken,displayName:Y,addedBy:"launch-local"},$.masterKeyHex);$.persistence.recordAudit({actor:"gateway",action:"gateway.worker.launched",workerId:H.id,detail:{containerId:G.containerId,containerName:G.containerName,baseUrl:G.baseUrl}});let W=B6.safeParse({workerId:H.id,deviceToken:G.apiToken});if(!W.success)return{ok:!1,code:"internal_error",message:`workers.launch \u6784\u9020\u7684 result \u4E0D\u7B26\u5408 schema: ${W.error.message}`};return{ok:!0,result:W.data}}}var s_=BT();var HT={"system.presence":m_,"workers.list":d_,"workers.remove":i_,"workers.pair":n_,"workers.launch":s_,"token.rotate":c_,"enroll.list":g_,"enroll.approve":y_,"enroll.reject":u_,"audit.list":h_},WT=new Set(["system.presence","workers.list","audit.list","enroll.list"]);async function r_(D,$,F,X){let J=f3(F.method);if(!J){E6($,{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 Y=J.params.safeParse(F.params??void 0);if(!Y.success){E6($,{type:"response",id:F.id,ok:!1,error:{code:"invalid_params",message:`${F.method} \u53C2\u6570\u6821\u9A8C\u5931\u8D25`,details:Y.error.flatten()}});return}let G=Y.data;if(!WT.has(F.method))D.persistence.recordAudit({actor:"gateway",action:"gateway.method.invoked",workerId:QT(G),detail:{method:F.method,agentId:X}});if(J.routing==="operator-to-gateway"){let B=HT[F.method];if(!B){E6($,{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,G);if(H.ok)E6($,{type:"response",id:F.id,ok:!0,result:H.result});else E6($,{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),E6($,{type:"response",id:F.id,ok:!1,error:{code:"internal_error",message:H instanceof Error?H.message:String(H)}})}return}v_({ctx:D,operatorWs:$,operatorRequestId:F.id,method:F.method,params:G})}function o_(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(jD(J))}catch{}}function a_(D,$,F){y0(D.operators,F)}function QT(D){if(D&&typeof D==="object"&&"workerId"in D){let $=D.workerId;return typeof $==="string"&&$.length>0?$:null}return null}function E6(D,$){try{D.send(jD($))}catch{}}lD();var i4="/w/",VT="/api/worker";function e_(D){if(!D.startsWith(i4))return!1;let $=$U(D);return $!==void 0&&($.ok===!1||!$.value.pathnameAfterPrefix.startsWith(FU()))}async function DU(D,$,F){let X=$U($.pathname);if(X===void 0)return new Response("not found",{status:404});if(!X.ok)return t_({error:{code:"invalid-worker-id",message:X.message}},400);let{workerId:J}=X.value;if(!F.nodes.has(J)&&!F.persistence.getRegisteredWorker(J))return t_({error:{code:"not-found",message:`worker ${J} is not registered`}},404);if(X.value.redirectToSlash){let Y=new URL(`${i4}${J}/`,$);return Response.redirect(Y.toString(),308)}if(!F.workerWebStaticDir)return new Response("not found",{status:404});return p4({webStaticDir:F.workerWebStaticDir,pathnameAfterPrefix:X.value.pathnameAfterPrefix})}function $U(D){if(!D.startsWith(i4))return;let $=D.slice(i4.length),F=$.indexOf("/"),X=F===-1?$:$.slice(0,F);if(!p0.test(X))return{ok:!1,message:`workerId must match ${String(p0)}`};if(F===-1)return{ok:!0,value:{workerId:X,pathnameAfterPrefix:"",redirectToSlash:!0}};let J=$.slice(F+1);if(J.startsWith(FU()))return;return{ok:!0,value:{workerId:X,pathnameAfterPrefix:J,redirectToSlash:!1}}}function FU(){return VT.slice(1)}function t_(D,$){return new Response(JSON.stringify(D),{status:$,headers:{"Content-Type":"application/json"}})}function XU(D){let{config:$,context:F}=D;j_({host:$.host,internalSharedSecret:$.internalSharedSecret}),S3({surface:"fleet",host:$.host,serveWeb:F.webStaticDir!==void 0,externalAuthAcknowledged:$.adminExternalAuthAcknowledged}),AT({host:$.host,externalAuthAcknowledged:$.adminExternalAuthAcknowledged});let X=Bun.serve({port:$.port,hostname:$.host,fetch(Y,G){let B=new URL(Y.url);if(B.pathname==="/health"&&Y.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 p4({webStaticDir:F.webStaticDir,pathnameAfterPrefix:B.pathname.slice(7)})}if(k_(B.pathname))return b_(Y,B,F);if(e_(B.pathname))return DU(Y,B,F);if(B.pathname==="/ws"||B.pathname==="/enroll-ws"){let W=G.requestIP(Y)?.address,V=F1(W);if(!V&&F.connectRateLimiter){let A=F.connectRateLimiter.isBlocked(W);if(A.blocked)return new Response("rate_limited",{status:429,headers:{"Retry-After":String(Math.ceil(A.retryAfterMs/1000))}})}let _=B.pathname==="/enroll-ws"?"/enroll-ws":"/ws";if(G.upgrade(Y,{data:{role:void 0,agentId:void 0,deviceId:void 0,loopback:V,remoteAddress:W,connectedAt:Date.now(),subscribedAll:!0,path:_}}))return;return new Response("upgrade failed",{status:400})}return new Response("not found",{status:404})},websocket:{maxPayloadLength:1048576,idleTimeout:120,open(Y){F.logger.debug(`[gateway] ws opened (remote=${Y.data.remoteAddress??"?"} loopback=${Y.data.loopback})`)},message(Y,G){KT(Y,G,F,$)},close(Y,G,B){CT(Y,G,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 AT(D){if(F1(D.host))return;if(D.externalAuthAcknowledged)return;throw Error(`[fleet] refusing to serve /w/* on non-loopback host="${D.host}" without external-auth acknowledgement.
357
+
358
+ The /w/:workerId/* bridge exposes worker management APIs through gateway WS/RPC.
359
+
360
+ Fix one of these ways:
361
+ 1. Bind the gateway to 127.0.0.1 and put Caddy/Cloudflare Access/IP allowlist/basic-auth in front;
362
+ 2. Confirm an external auth layer protects /w/*, /admin/*, and /ws, then set AIWORKER_ADMIN_EXTERNAL_AUTH=1.`)}function KT(D,$,F,X){let J=typeof $==="string"?$:_T.from($).toString("utf8"),Y=x2(J);if(!Y.ok){F.logger.warn(`[gateway] \u65E0\u6CD5\u89E3\u6790\u5E27: ${Y.error}`),D.close(4400,"bad_frame");return}let G=Y.frame;if(D.data.role===void 0){if(G.type!=="connect"){F.logger.warn(`[gateway] \u63E1\u624B\u524D\u6536\u5230\u975E connect \u5E27: ${G.type}`),D.close(4400,"connect_required");return}let B=G.role==="node"&&G.enroll?G.enroll.mode??"join-token":void 0,H=B==="otp",W=G.role==="node"&&G.enroll!==void 0&&B==="join-token",V=w_({loopback:D.data.loopback,sharedSecret:X.internalSharedSecret,presentedToken:G.auth.token,enrollToken:W?G.enroll.joinToken:void 0,gatewayJoinToken:X.joinToken,path:D.data.path,isOtpEnrollSubmit:H});if(!V.ok){let _=V.reason.startsWith("wrong_path:");if(F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.rejected",workerId:G.role==="node"?G.agentId:null,detail:{reason:V.reason,role:G.role,agentId:G.agentId,remoteAddress:D.data.remoteAddress,path:D.data.path}}),!_&&!D.data.loopback&&F.connectRateLimiter){let O=F.connectRateLimiter.recordFailure(D.data.remoteAddress);if(O.blockedNow)F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.brute_force_blocked",workerId:null,detail:{remoteAddress:D.data.remoteAddress,fails:O.fails,blockUntil:O.blockUntil,path:D.data.path,triggerReason:V.reason}})}let U=_?4400:4401,A=_?V.reason:`auth:${V.reason}`;D.close(U,A);return}if(V.via==="enroll-otp"){if(!F.pendingEnrollments){F.logger.error("[gateway] /enroll-ws \u6536\u5230 OTP submit \u4F46 ctx.pendingEnrollments \u672A\u6CE8\u5165"),D.close(4500,"enroll_unavailable");return}let _=G.enroll,U=F.pendingEnrollments.submit({workerId:G.agentId,apiToken:_.apiToken,displayName:_.displayName,ws:D});try{D.send(jD({type:"event",name:DD.ENROLLMENT_OTP,payload:{workerId:G.agentId,otp:U.otp,expiresAt:U.expiresAt},ts:Date.now()}))}catch(A){F.pendingEnrollments.removeByWs(D),F.logger.warn(`[gateway] \u63A8\u9001 enrollment.otp \u5931\u8D25: ${A.message}`),D.close(4500,"enroll_otp_send_failed");return}D.data.role="node-pending",D.data.agentId=G.agentId,D.data.deviceId=G.deviceId,F.persistence.recordAudit({actor:"gateway",action:"gateway.enrollment.requested",workerId:G.agentId,detail:{workerId:G.agentId,displayName:_.displayName,deviceId:G.deviceId,otpHash:RT(U.otp),expiresAt:U.expiresAt,path:D.data.path}}),y0(F.operators,{type:"event",name:DD.ENROLLMENT_PENDING,payload:{workerId:G.agentId,..._.displayName===void 0?{}:{displayName:_.displayName},otp:U.otp,submittedAt:Date.now(),expiresAt:U.expiresAt,reason:"submitted"},ts:Date.now()});return}if(W){if(F.maxWorkers!==void 0){let A=F.persistence.countRegisteredWorkers();if(F.persistence.getRegisteredWorker(G.agentId)===void 0&&A>=F.maxWorkers){F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.rejected",workerId:G.agentId,detail:{reason:"quota_exceeded",role:G.role,agentId:G.agentId,limit:F.maxWorkers,current:A}}),D.close(4401,"auth:quota_exceeded");return}}if(!F.masterKeyHex){F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.rejected",workerId:G.agentId,detail:{reason:"master_key_missing",role:G.role,agentId:G.agentId}}),D.close(4401,"auth:master_key_missing");return}let _=G.enroll,U=F.persistence.upsertEnrolledWorker({workerId:G.agentId,baseUrl:"",apiToken:_.apiToken,displayName:_.displayName??G.agentId,addedBy:"self-enroll"},F.masterKeyHex);if(U.kind!=="unchanged")F.persistence.recordAudit({actor:"gateway",action:"gateway.worker.enrolled",workerId:G.agentId,detail:{workerId:G.agentId,displayName:U.row.displayName,deviceId:G.deviceId,change:U.kind}})}if(D.data.role=G.role,D.data.agentId=G.agentId,D.data.deviceId=G.deviceId,G.role==="operator")F.operators.register({agentId:G.agentId,deviceId:G.deviceId,ws:D,connectedAt:Date.now()});else{let{replaced:_}=F.nodes.register({workerId:G.agentId,deviceId:G.deviceId,ws:D,pairedAt:Date.now(),meta:G.meta??{}});if(_){F.forwards.cancelByWorker(G.agentId);try{_.ws.close(1012,"replaced_by_new_node_connection")}catch{}}let U=F.persistence.getRegisteredWorker(G.agentId)?.displayName;y0(F.operators,{type:"event",name:DD.WORKER_ONLINE,payload:{workerId:G.agentId,displayName:U,deviceId:G.deviceId,connectedAt:Date.now()},ts:Date.now()})}if(F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.accepted",workerId:G.role==="node"?G.agentId:null,detail:{role:G.role,agentId:G.agentId,deviceId:G.deviceId,loopback:D.data.loopback,via:V.via}}),!D.data.loopback&&F.connectRateLimiter)F.connectRateLimiter.recordSuccess(D.data.remoteAddress);return}if(D.data.role==="node-pending"){F.logger.warn(`[gateway] node-pending \u7AEF\u5728 approve \u524D\u53D1\u9001\u4E86 ${G.type} \u5E27\uFF0C\u5FFD\u7565`);return}if(D.data.role==="operator"){if(G.type==="request"){let B=D.data.agentId??"unknown";r_(F,D,G,B);return}F.logger.warn(`[gateway] operator \u7AEF\u53D1\u9001\u4E86\u975E request \u5E27: ${G.type}`),D.close(4400,"operator_expects_request_only");return}if(D.data.role==="node"){if(G.type==="response"){o_(F,D,G);return}if(G.type==="event"){a_(F,D,G);return}F.logger.warn(`[gateway] node \u7AEF\u53D1\u9001\u4E86\u975E response/event \u5E27: ${G.type}`),D.close(4400,"node_expects_response_or_event_only")}}function CT(D,$,F,X){if(D.data.role==="node-pending"){let J=X.pendingEnrollments?.removeByWs(D);if(J)X.persistence.recordAudit({actor:"gateway",action:"gateway.enrollment.abandoned",workerId:J.workerId,detail:{workerId:J.workerId,displayName:J.displayName,code:$,reason:F}}),y0(X.operators,{type:"event",name:DD.ENROLLMENT_PENDING,payload:{workerId:J.workerId,...J.displayName===void 0?{}:{displayName:J.displayName},otp:J.otp,submittedAt:J.submittedAt,expiresAt:J.expiresAt,reason:"abandoned"},ts:Date.now()});X.logger.debug(`[gateway] node-pending ws closed (code=${$} reason=${F})`);return}if(D.data.role==="operator")X.operators.unregister(D),X.forwards.cancelByOperator(D);else if(D.data.role==="node"){let J=X.nodes.unregisterByWs(D);if(J)X.forwards.cancelByWorker(J.workerId),y0(X.operators,{type:"event",name:DD.WORKER_OFFLINE,payload:{workerId:J.workerId,deviceId:J.deviceId,reason:OT($),disconnectedAt:Date.now()},ts:Date.now()}),X.persistence.recordAudit({actor:"gateway",action:"gateway.node.disconnected",workerId:J.workerId,detail:{code:$,reason:F}})}X.logger.debug(`[gateway] ws closed (code=${$} reason=${F})`)}function OT(D){if(D===1000||D===1012||D===1001||D===1005||D===1006)return"disconnected";if(D>=4000&&D<5000)return"kicked";return"expired"}function RT(D){return UT("sha256").update(D).digest("hex").slice(0,8)}GD();import{randomBytes as JU}from"crypto";import{mkdirSync as MT}from"fs";import{createServer as ZT}from"net";import{join as GU}from"path";import PT from"process";GD();class $J{socket;constructor(D="/var/run/docker.sock"){this.socket=D}async request(D,$,F){let X=`http://localhost${$}`,J={method:D,unix:this.socket,headers:F!==void 0?{"Content-Type":"application/json"}:{}};if(F!==void 0)J.body=JSON.stringify(F);let Y=await fetch(X,J),G=await Y.text();if(!Y.ok)throw Error(`Docker API ${D} ${$} failed: ${Y.status} ${G}`);if(!G)return;try{return JSON.parse(G)}catch{return G}}ping(){return this.request("GET","/_ping")}createContainer(D,$){return this.request("POST",`/containers/create?name=${encodeURIComponent(D)}`,$)}startContainer(D){return this.request("POST",`/containers/${D}/start`)}async stopContainer(D,$=10){try{await this.request("POST",`/containers/${D}/stop?t=${$}`)}catch(F){if(F instanceof Error&&/304/.test(F.message))return;throw F}}removeContainer(D,$){let F=new URLSearchParams;if($?.force)F.set("force","true");if($?.removeVolumes)F.set("v","true");let X=F.toString();return this.request("DELETE",`/containers/${D}${X?`?${X}`:""}`)}inspectContainer(D){return this.request("GET",`/containers/${D}/json`)}listContainers(D){let $=new URLSearchParams({all:"true"});if(D)$.set("filters",JSON.stringify(D));return this.request("GET",`/containers/json?${$.toString()}`)}async logs(D,$){let F=new URLSearchParams({stdout:String($?.stdout??!0),stderr:String($?.stderr??!0),tail:String($?.tail??200)}),X=`http://localhost/containers/${D}/logs?${F.toString()}`,J=await fetch(X,{method:"GET",unix:this.socket});if(!J.ok){let G=await J.text();throw Error(`Docker logs ${D} failed: ${J.status} ${G}`)}let Y=new Uint8Array(await J.arrayBuffer());return ET(Y)}async ensureNetwork(D){try{await this.request("GET",`/networks/${encodeURIComponent(D)}`)}catch{E.info(`[gateway/supervisor] creating docker network ${D}`),await this.request("POST","/networks/create",{Name:D,Driver:"bridge"})}}}function ET(D){let $=new TextDecoder,F="",X=0;while(X<D.length){if(X+8>D.length)break;let J=D[X+4]<<24|D[X+5]<<16|D[X+6]<<8|D[X+7];X+=8,F+=$.decode(D.slice(X,X+J)),X+=J}return F}var qT=/\[worker\] AIWORKER_BOOTSTRAP_TOKEN=(wtk_[\w-]{32,})/,NT=30000,zT=500;class FJ{config;docker;allocatePort;pollIntervalMs;pollTimeoutMs;now;sleep;selfHostname;constructor(D){this.config=D.config,this.docker=D.docker??new $J(D.config.dockerHost),this.allocatePort=D.allocatePort??TT,this.pollIntervalMs=D.pollIntervalMs??zT,this.pollTimeoutMs=D.pollTimeoutMs??NT,this.now=D.now??Date.now,this.sleep=D.sleep??(($)=>new Promise((F)=>setTimeout(F,$))),this.selfHostname=D.selfHostname===void 0?PT.env.HOSTNAME??null:D.selfHostname}async ensureInfrastructure(){await this.docker.ping(),await this.docker.ensureNetwork(this.config.network),await this.ensureSelfJoinedNetwork(this.config.network)}async ensureSelfJoinedNetwork(D){let $=this.selfHostname;if(!$||!/^[0-9a-f]{12,64}$/i.test($)){E.warn(`[gateway/supervisor] HOSTNAME=${$??"(unset)"} is not a docker container id; skipping self-in-network check`);return}let F;try{F=await this.docker.inspectContainer($)}catch(J){E.warn(`[gateway/supervisor] could not inspect self-container ${$}: ${J.message}; skipping self-in-network check`);return}let X=F.NetworkSettings?.Networks;if(!X||typeof X!=="object"){E.warn(`[gateway/supervisor] inspect of ${$} returned no NetworkSettings.Networks; skipping self-in-network check`);return}if(!(D in X))throw new J8(`gateway container ${$} is not a member of docker network '${D}'. Attach it via docker compose (networks: [${D}]) or \`docker network connect\` before enabling launch; otherwise launched workers will be unreachable at the rendered baseUrl.`)}buildEnv(D){let $=["AIWORKER_MODE=worker",`AIWORKER_MASTER_KEY=${D.masterKeyHex}`,`PORT=${D.port}`,`WORKER_DB_PATH=${GU("/var/lib/aiworker","worker.db")}`,`NODE_ENV=${this.config.nodeEnv}`,`INTERNAL_SHARED_SECRET=${this.config.internalSharedSecret}`,"WORKER_MIGRATIONS_FOLDER=./drizzle/worker"];if(D.forceId)$.push(`AIWORKER_FORCE_ID=${D.forceId}`);return $}async launchLocal(D){try{await this.ensureInfrastructure()}catch(W){throw new J8(`docker infrastructure unavailable: ${W.message}`,W)}let $=await this.allocatePort(),F=JU(32).toString("hex"),J=`aiworker-${JU(4).toString("hex")}`,Y=GU(this.config.workerDataRoot,J);try{MT(Y,{recursive:!0})}catch(W){throw new J8(`failed to create data dir ${Y}: ${W.message}`,W)}let G=this.buildEnv({masterKeyHex:F,port:$,forceId:D.forceId}),B={Image:this.config.image,Env:G,Labels:{"aiworker.role":"worker","aiworker.addedBy":"launch-local","aiworker.displayName":D.displayName},HostConfig:{RestartPolicy:{Name:"unless-stopped"},NetworkMode:this.config.network,Memory:IT(this.config.workerMemoryLimit),NanoCpus:Math.round(this.config.workerCpuLimit*1e9),Binds:[`${Y}:/var/lib/aiworker`]},NetworkingConfig:{EndpointsConfig:{[this.config.network]:{Aliases:[J]}}}},H=null;try{let W=await this.docker.createContainer(J,B);H=W.Id,await this.docker.startContainer(W.Id),E.info(`[gateway/supervisor] spawned ${J} (container ${W.Id.slice(0,12)}); polling for bootstrap token`);let V=await this.awaitBootstrapToken(W.Id),_=jT(this.config.launchBaseUrlTemplate,{containerName:J,port:String($)});return E.success(`[gateway/supervisor] ${J} bootstrapped as ${V.workerId}`),{workerId:V.workerId,apiToken:V.token,baseUrl:_,containerId:W.Id,containerName:J}}catch(W){if(H)try{await this.docker.removeContainer(H,{force:!0,removeVolumes:!1})}catch(V){E.warn(`[gateway/supervisor] failed to cleanup ${H}: ${V.message}`)}if(W instanceof R6||W instanceof J8)throw W;throw new J8(`launch failed: ${W.message}`,W)}}async awaitBootstrapToken(D){let $=this.now()+this.pollTimeoutMs;while(this.now()<$){let F;try{F=await this.docker.logs(D,{tail:200})}catch(J){E.debug(`[gateway/supervisor] logs read failed, retrying: ${J.message}`),await this.sleep(this.pollIntervalMs);continue}let X=LT(F);if(X)return X;await this.sleep(this.pollIntervalMs)}throw new R6(`bootstrap token not observed in container ${D.slice(0,12)} after ${this.pollTimeoutMs}ms`)}async shutdown(){}}function LT(D){let $=qT.exec(D);if(!$)return null;let F=/\[worker\] id=(w_[0-9a-hjkmnp-tv-z]{12})/.exec(D);if(!F)return null;return{workerId:F[1],token:$[1]}}function jT(D,$){return D.replace(/\{(\w+)\}/g,(F,X)=>$[X]??`{${X}}`)}function IT(D){let $=/^(\d+)([bkmg])?$/i.exec(D.trim());if(!$)throw Error(`Invalid memory limit: ${D}`);let F=Number($[1]),X=($[2]??"b").toLowerCase();return F*({b:1,k:1024,m:1048576,g:1073741824}[X]??1)}function TT(){return new Promise((D,$)=>{let F=ZT();F.unref(),F.on("error",$),F.listen(0,()=>{let X=F.address();if(X&&typeof X==="object"){let J=X.port;F.close(()=>D(J))}else F.close(()=>$(Error("failed to allocate free port")))})})}function ST(D,$={}){M_(D.fleetDbPath),Z_(dX);let F=iX(),X=new m4(F),J=new x4,Y=new g4,G=new h4({onExpire:(V,_)=>{if(E.warn(`[gateway] forward \u53D6\u6D88 (method=${V.method} workerId=${V.workerId} reason=${_})`),_==="operator_gone")return;let U=_==="timeout"?"forward_timeout":"node_gone",A=_==="timeout"?`\u7B49\u5F85 worker ${V.workerId} \u54CD\u5E94\u8D85\u65F6`:`worker ${V.workerId} \u5728\u7B49\u5F85\u54CD\u5E94\u671F\u95F4\u4E0B\u7EBF`;try{V.operatorWs.send(jD({type:"response",id:V.operatorRequestId,ok:!1,error:{code:U,message:A,details:{workerId:V.workerId,method:V.method}}}))}catch{}}}),B=new y4({ttlMs:D.enrollOtpTtlSec*1000,onExpire:(V)=>{try{V.ws.close(4408,"enroll:expired")}catch{}try{X.recordAudit({actor:"gateway",action:"gateway.enrollment.expired",workerId:V.workerId,detail:{displayName:V.displayName,otpHash:wT("sha256").update(V.otp).digest("hex").slice(0,16)}})}catch(_){E.warn("[gateway] \u5199 enrollment.expired audit \u5931\u8D25",_)}try{y0(Y,{type:"event",name:DD.ENROLLMENT_PENDING,payload:{workerId:V.workerId,...V.displayName===void 0?{}:{displayName:V.displayName},otp:V.otp,submittedAt:V.submittedAt,expiresAt:V.expiresAt,reason:"expired"},ts:Date.now()})}catch(_){E.warn("[gateway] \u5E7F\u64AD enrollment.pending(expired) \u5931\u8D25",_)}}}),H=null;if(D.canLaunch)H=new FJ({config:{dockerHost:D.supervisor.dockerHost,image:D.supervisor.image,network:D.supervisor.network,workerDataRoot:D.supervisor.workerDataRoot,workerMemoryLimit:D.supervisor.workerMemoryLimit,workerCpuLimit:D.supervisor.workerCpuLimit,launchBaseUrlTemplate:D.supervisor.launchBaseUrlTemplate,internalSharedSecret:D.internalSharedSecret,nodeEnv:D.nodeEnv}}),E.info("[gateway] AIWORKER_GATEWAY_CAN_LAUNCH=true \u2014 workers.launch \u5DF2\u5F00\u542F");let W=new v4;return{persistence:X,nodes:J,operators:Y,forwards:G,logger:E.withTag("gateway"),masterKeyHex:D.masterKeyHex,supervisor:H,maxWorkers:D.maxWorkers,pendingEnrollments:B,connectRateLimiter:W,webStaticDir:$.webStaticDir,workerWebStaticDir:$.workerWebStaticDir}}async function YU(D,$={}){let X={...q_(),...D},J=ST(X,{webStaticDir:$.webStaticDir,workerWebStaticDir:$.workerWebStaticDir}),Y=XU({config:X,context:J});return E.success(`[gateway] listening ws://${X.host}:${Y.port}/ws (auth=${X.internalSharedSecret?"shared-secret+loopback":"loopback-only"})`),{...Y,config:X}}GD();import{existsSync as XJ,realpathSync as fT}from"fs";import{dirname as bT,resolve as Q1}from"path";import BU from"process";import{fileURLToPath as kT}from"url";function Y9(D){let $=D==="fleet"?"AIWORKER_WEB_STATIC_DIR_FLEET":"AIWORKER_WEB_STATIC_DIR_WORKER",F=BU.env[$];if(F){let W=hT(F);if(W&&XJ(Q1(W,"index.html")))return W}let X=vT();if(!X)return;let J=Q1(X,"web",D);if(XJ(Q1(J,"index.html")))return J;let G=X.endsWith(`apps${JJ()}cli${JJ()}src${JJ()}lib`)||X.endsWith("apps/cli/src/lib")?4:3,B=Q1(X,...Array.from({length:G},()=>"..")),H=Q1(B,"apps","web","dist",D);if(XJ(Q1(H,"index.html")))return H;return}function vT(){if(typeof import.meta.url!=="string")return;try{return bT(kT(import.meta.url))}catch{return}}function hT(D){try{return fT(Q1(D))}catch{return}}function JJ(){return BU.platform==="win32"?"\\":"/"}I0();G1();import{spawn as xT}from"child_process";import{closeSync as HU,existsSync as gT,openSync as WU,readFileSync as yT,unlinkSync as n4,writeFileSync as uT}from"fs";import{mkdir as mT}from"fs/promises";import I8 from"process";var pT="AIWORKER_GATEWAY_INTERNAL_FOREGROUND";function QU(D){if(!Number.isFinite(D)||D<=0)return!1;try{return I8.kill(D,0),!0}catch($){if($.code==="EPERM")return!0;return!1}}function cT(D){if(!gT(D))return null;try{let $=yT(D,"utf8").trim();if($.length===0)return null;let F=Number.parseInt($,10);if(!Number.isFinite(F)||F<=0)return null;return F}catch{return null}}async function lT(){await mT(C2(),{recursive:!0})}function s4(){let D=Y4(),$=B4(),F=cT(D);if(F===null)return{running:!1,pidFile:D,logFile:$};if(!QU(F)){try{n4(D)}catch{}return{running:!1,pidFile:D,logFile:$}}return{running:!0,pid:F,pidFile:D,logFile:$}}async function VU(D={}){let $=s4();if($.running)throw Error(`gateway daemon \u5DF2\u5728\u8FD0\u884C (pid=${$.pid})\uFF0C\u5148\u6267\u884C 'aiworker gateway stop' \u518D\u91CD\u8BD5\u3002`);await lT();let F=D.port??Number.parseInt(I8.env.PORT??"9218",10);if(!Number.isFinite(F)||F<=0||F>65535)throw Error(`\u975E\u6CD5\u7AEF\u53E3: ${F}`);let X=Y4(),J=B4(),Y=WU(J,"a"),G=WU(J,"a"),B={...I8.env,...D.env,PORT:String(F),[pT]:"1"},H=I8.argv[1];if(!H||H.length===0)throw Error("detach \u6A21\u5F0F\u65E0\u6CD5\u5B9A\u4F4D cli \u81EA\u8EAB\u811A\u672C\u8DEF\u5F84\uFF08process.argv[1] \u4E3A\u7A7A\uFF09");let W=xT(I8.execPath,[H,"gateway","start","--port",String(F)],{env:B,cwd:I8.cwd(),detached:!0,stdio:["ignore",Y,G]});try{HU(Y)}catch{}if(G!==Y)try{HU(G)}catch{}if(W.pid===void 0)throw Error("gateway \u5B50\u8FDB\u7A0B\u542F\u52A8\u5931\u8D25\uFF1A\u672A\u83B7\u5F97 PID");return W.unref(),uT(X,`${String(W.pid)}
363
+ `,"utf8"),{pid:W.pid,port:F,logFile:J,pidFile:X}}async function _U(D={}){let $=s4();if(!$.running||$.pid===void 0)return null;let F=$.pid,X=D.timeoutMs??5000,J=100;try{I8.kill(F,"SIGTERM")}catch(G){if(G.code==="ESRCH"){try{n4($.pidFile)}catch{}return null}throw G}let Y=Date.now()+X;while(Date.now()<Y){if(!QU(F)){try{n4($.pidFile)}catch{}return F}await new Promise((G)=>setTimeout(G,J))}try{I8.kill(F,"SIGKILL")}catch{}try{n4($.pidFile)}catch{}return F}G1();async function UU(D={}){if(D.detach===!0)return dT(D);return iT(D)}async function dT(D){try{let $=await VU({...D.port===void 0?{}:{port:D.port},...D.serveWeb===!1?{env:{AIWORKER_GATEWAY_NO_SERVE_WEB:"1"}}:{}});if(D.persistUrl!==!1)await g3({gatewayUrl:G4($.port)});return E.success(`gateway daemon \u5DF2\u542F\u52A8 pid=${$.pid} port=${$.port}`),E.info(`pidFile: ${$.pidFile}`),E.info(`logFile: ${$.logFile}`),0}catch($){return E.error(`gateway start --detach \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}async function iT(D){try{let $=r4.env.AIWORKER_GATEWAY_NO_SERVE_WEB==="1",F=D.serveWeb!==!1&&!$,X=F?Y9("fleet"):void 0,J=F?Y9("worker"):void 0;if(F&&!X)E.warn("[gateway] web \u9759\u6001\u8D44\u6E90\u672A\u627E\u5230\uFF08apps/web/dist/fleet \u7F3A\u5931\uFF1F\uFF09\uFF0C/admin/* \u5C06\u8FD4\u56DE 404");if(F&&!J)E.warn("[gateway] worker web \u9759\u6001\u8D44\u6E90\u672A\u627E\u5230\uFF08apps/web/dist/worker \u7F3A\u5931\uFF1F\uFF09\uFF0C/w/:workerId/* \u5C06\u8FD4\u56DE 404");let Y=await YU(D.port===void 0?{}:{port:D.port},{...X?{webStaticDir:X}:{},...J?{workerWebStaticDir:J}:{}});if(X)E.info(`[gateway] /admin/* serving fleet bundle from ${X}`);if(J)E.info(`[gateway] /w/:workerId/* serving worker bundle from ${J}`);if(D.persistUrl!==!1)try{await g3({gatewayUrl:G4(Y.port)})}catch(H){E.warn(`\u65E0\u6CD5\u6301\u4E45\u5316 gatewayUrl \u5230 aim.json: ${H instanceof Error?H.message:String(H)}`)}E.success(`gateway \u5DF2\u542F\u52A8 (foreground) port=${Y.port}`);let G=!1,B=async(H)=>{if(G)return;G=!0,E.info(`[gateway] received ${H}, shutting down`);try{await Y.stop(),nX()}catch(W){E.error("[gateway] shutdown failed",W)}r4.exit(0)};return r4.once("SIGTERM",()=>void B("SIGTERM")),r4.once("SIGINT",()=>void B("SIGINT")),await new Promise(()=>{}),0}catch($){return E.error(`gateway start \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}function AU(){let D=s4();if(D.running)return E.success(`gateway detached daemon \u8FD0\u884C\u4E2D pid=${D.pid}`),E.info(`pidFile: ${D.pidFile}`),E.info(`logFile: ${D.logFile}`),0;return E.info("gateway detached daemon \u672A\u8FD0\u884C\uFF1Bforeground/systemd \u5B9E\u4F8B\u4E0D\u7531\u6B64\u547D\u4EE4\u8DDF\u8E2A"),1}async function KU(D={}){try{let $=await _U(D.timeoutMs===void 0?{}:{timeoutMs:D.timeoutMs});if($===null)return E.info("gateway detached daemon \u5F53\u524D\u672A\u8FD0\u884C\uFF1Bforeground/systemd \u5B9E\u4F8B\u8BF7\u7531\u5176 supervisor \u505C\u6B62"),0;return E.success(`gateway detached daemon \u5DF2\u505C\u6B62 pid=${$}`),0}catch($){return E.error(`gateway stop \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}GD();import{spawnSync as CU}from"child_process";import{existsSync as MU,mkdirSync as nT,readFileSync as sT,writeFileSync as rT}from"fs";import{homedir as oT}from"os";import G8 from"path";import B9 from"process";var T8="aiworker-gateway.service",OU="/var/lib/aiworker",H9="/etc/aiworker/gateway.env",aT="%h/.config/aiworker/gateway.env",RU="%S/aiworker",EU="https://github.com/ZonEaseTech/aiworker/blob/main/docs/deployment.md",o4=["gateway","start"];function tT(D){let $=PU(D.execStart??ZU());if(D.scope==="user")return["[Unit]","Description=AIWorker gateway daemon (user instance)",`Documentation=${EU}`,"After=network-online.target","Wants=network-online.target","","[Service]","Type=simple",`Environment=AIWORKER_HOME=${RU}`,`EnvironmentFile=-${aT}`,`ExecStart=${$}`,"Restart=on-failure","RestartSec=5","StateDirectory=aiworker","StateDirectoryMode=0700","PrivateTmp=true","ProtectSystem=strict",`ReadWritePaths=${RU}`,"NoNewPrivileges=true","","[Install]","WantedBy=default.target",""].join(`
364
+ `);return["[Unit]","Description=AIWorker gateway daemon (PLAN-016 systemd path)",`Documentation=${EU}`,"After=network-online.target","Wants=network-online.target","","[Service]","Type=simple",`Environment=AIWORKER_HOME=${OU}`,`EnvironmentFile=-${H9}`,`ExecStart=${$}`,"Restart=on-failure","RestartSec=5","User=root","Group=root","StateDirectory=aiworker","StateDirectoryMode=0700","PrivateTmp=true","ProtectSystem=strict",`ReadWritePaths=${OU}`,"NoNewPrivileges=true","","[Install]","WantedBy=multi-user.target",""].join(`
365
+ `)}function ZU(D={}){let $=D.env??B9.env,F=D.execPath??B9.execPath,X=D.argv??B9.argv,J=D.cwd??B9.cwd(),Y=D.pathExists??MU,G=Dw(X[1],J,Y);if($w(F)&&G!==void 0)return a4(F,[G,...o4]);if(Fw(F))return a4(F,[...o4]);let B=Xw("aiworker",$.PATH,Y);if(B!==void 0)return a4(B,[...o4]);if(G!==void 0)return a4(G,[...o4]);throw Error("install systemd: unable to locate the current aiworker executable; re-run via the installed aiworker command or pass --exec-start")}function a4(D,$){return[D,...$].map(eT).join(" ")}function PU(D){let $=D.trim();if($.length===0)throw Error("install systemd: ExecStart must not be empty");if(/[\r\n]/.test($))throw Error("install systemd: ExecStart must be a single line");return $}function eT(D){if(/^[\w@%+=:,./-]+$/.test(D))return D;return`"${D.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`}function Dw(D,$,F){if(D===void 0||D.length===0)return;let X=G8.isAbsolute(D)?D:G8.resolve($,D);return F(X)?X:void 0}function $w(D){let $=G8.basename(D);return $==="bun"||$.startsWith("bun-")}function Fw(D){return G8.basename(D).startsWith("aiworker")}function Xw(D,$,F){if($===void 0||$.length===0)return;for(let X of $.split(G8.delimiter)){if(X.length===0)continue;let J=G8.join(X,D);if(F(J))return J}return}function Jw(D,$=oT()){if(D==="user")return G8.join($,".config","systemd","user",T8);return`/etc/systemd/system/${T8}`}function Gw(D={}){let $=D.scope??"user",F=PU(D.execStart??ZU()),X=tT({scope:$,execStart:F});if(D.dryRun)return{scope:$,content:X,execStart:F,enabled:!1,restartRequired:!1};let J=D.out??Jw($);nT(G8.dirname(J),{recursive:!0});let Y=!1;if(MU(J)){if(sT(J,"utf8")===X)Y=!0}if(!Y)rT(J,X,{encoding:"utf8",mode:420});if(!(!D.noEnable&&D.out===void 0))return{scope:$,content:X,execStart:F,written:{path:J,unchanged:Y},enabled:!1,restartRequired:!1};return Yw($),{scope:$,content:X,execStart:F,written:{path:J,unchanged:Y},enabled:!0,restartRequired:!Y}}function Yw(D){let $=D==="user"?["--user"]:[],F=CU("systemctl",[...$,"daemon-reload"],{stdio:"inherit"});if(F.error)throw Error(`\u65E0\u6CD5\u6267\u884C systemctl: ${F.error.message}`);if(F.status!==0)throw Error(`systemctl ${[...$,"daemon-reload"].join(" ")} \u5931\u8D25 (exit=${F.status??"signal"})`);let X=CU("systemctl",[...$,"enable","--now",T8],{stdio:"inherit"});if(X.error)throw Error(`\u65E0\u6CD5\u6267\u884C systemctl: ${X.error.message}`);if(X.status!==0)throw Error(`systemctl ${[...$,"enable","--now",T8].join(" ")} \u5931\u8D25 (exit=${X.status??"signal"})`)}async function qU(D={}){try{let $=Gw(D);if(D.dryRun)return B9.stdout.write($.content),0;let F=$.written?.path??"<unknown>";if($.written?.unchanged)E.info(`systemd unit \u672A\u53D8\u66F4 (${F})`);else E.success(`systemd unit \u5199\u5165 ${F}`);if($.enabled){if(E.success(`\u5DF2 enable --now ${T8}\uFF08${$.scope==="user"?"systemctl --user":"systemctl"}\uFF09`),$.restartRequired)E.warn("unit \u5185\u5BB9\u5DF2\u53D8\u66F4\uFF1Bsystemctl enable --now \u4E0D\u4F1A\u91CD\u542F\u5DF2\u5728\u8FD0\u884C\u7684\u670D\u52A1\u3002\u82E5\u8FD9\u662F\u91CD\u88C5/\u5347\u7EA7\uFF0C\u8BF7\u5728\u7EF4\u62A4\u7A97\u53E3\u6267\u884C:"),E.warn(` systemctl ${$.scope==="user"?"--user ":""}restart ${T8}`)}else if(D.out!==void 0)E.info("--out \u6307\u5B9A\u4E86\u975E\u9ED8\u8BA4\u8DEF\u5F84\uFF0C\u5DF2\u8DF3\u8FC7 systemctl\uFF1B\u5982\u9700\u542F\u7528\u8BF7\u624B\u52A8:"),E.info(` systemctl ${$.scope==="user"?"--user ":""}daemon-reload`),E.info(` systemctl ${$.scope==="user"?"--user ":""}enable --now ${T8}`);else if(D.noEnable)E.info("--no-enable \u5DF2\u751F\u6548\uFF1B\u5982\u9700\u542F\u7528\u8BF7\u624B\u52A8:"),E.info(` systemctl ${$.scope==="user"?"--user ":""}daemon-reload`),E.info(` systemctl ${$.scope==="user"?"--user ":""}enable --now ${T8}`);return Bw($.scope),0}catch($){return E.error(`install systemd \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}function Bw(D){if(D==="system"){E.box(["First-run secrets for aiworker-gateway:",` sudo install -d -m 0700 -o root -g root ${G8.dirname(H9)}`,` sudo sh -c 'umask 077; printf "AIWORKER_MASTER_KEY=%s\\nINTERNAL_SHARED_SECRET=%s\\n" "$(openssl rand -hex 32)" "$(openssl rand -base64 24)" > ${H9}'`,` sudo chown root:root ${H9}`,` sudo chmod 600 ${H9}`].join(`
366
+ `));return}E.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(`
367
+ `))}D0();GD();async function NU(D){let $=D.follow===!0,F=D.timeoutMs??($?3600000:5000);try{return await ZD(async({client:X})=>{return await new Promise((J)=>{let Y=!1,G=(W)=>{if(Y)return;Y=!0,J(W)},B=X.onEvent(DD.LOGS_LINE,(W)=>{if(W===null||typeof W!=="object")return;let V=W.workerId;if(typeof V!=="string"||V!==D.workerId)return;O2(W)}),H=setTimeout(()=>{B(),G(0)},F);X.request("logs.tail",{workerId:D.workerId,follow:$,...D.tail===void 0?{}:{lines:D.tail}}).then(()=>{}).catch((W)=>{B(),clearTimeout(H),O2({kind:"error",payload:{code:"request_failed",message:W instanceof Error?W.message:String(W)}}),G(CD(W))})})})}catch(X){return E.error(`logs \u5931\u8D25: ${X instanceof Error?X.message:String(X)}`),CD(X)}}GD();async function zU(D){try{let $=await ZD(async({client:X})=>{return await X.request("workers.pair",{workerBaseUrl:D.workerUrl,bootstrapToken:D.bootstrapToken,...D.displayName===void 0?{}:{displayName:D.displayName}})},D.url===void 0?{}:{gatewayUrl:D.url}),{patchAimState:F}=await Promise.resolve().then(() => (G1(),W4));return await F({...D.url===void 0?{}:{gatewayUrl:D.url},deviceToken:$.deviceToken,defaultWorkerId:$.workerId}),E.success(`\u5DF2\u914D\u5BF9 worker ${$.workerId}`),SD({workerId:$.workerId}),0}catch($){return E.error(`pair \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),CD($)}}GD();var LU=["web","line","telegram","lark","whatsapp"];function Hw(D){if(!LU.includes(D))throw Error(`\u65E0\u6548 channel "${D}"\uFF0C\u53EF\u9009\u503C\uFF1A${LU.join(", ")}`);return D}async function jU(D){try{let $=await ZD(async({client:F})=>{return await F.request("cron.list",{workerId:D})});return SD($),0}catch($){return E.error(`schedule list \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),CD($)}}async function IU(D){try{let $=Hw(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 ZD(async({client:J})=>{return await J.request("cron.add",{workerId:D.workerId,job:F})});return SD(X),0}catch($){return E.error(`schedule add \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),CD($)}}async function TU(D,$){try{let F=await ZD(async({client:X})=>{return await X.request("cron.remove",{workerId:D,jobId:$})});return SD(F),0}catch(F){return E.error(`schedule remove \u5931\u8D25: ${F instanceof Error?F.message:String(F)}`),CD(F)}}GD();async function wU(D){try{let $=await ZD(async({client:F})=>{return await F.request("token.rotate",{workerId:D})});return SD($),0}catch($){return E.error(`token rotate \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),CD($)}}GD();async function SU(){try{let D=await ZD(async({client:$})=>{return await $.request("workers.list",{})});return SD(D),0}catch(D){return E.error(`workers list \u5931\u8D25: ${D instanceof Error?D.message:String(D)}`),CD(D)}}async function fU(D){try{let $=await ZD(async({client:F})=>{return await F.request("workers.info",{workerId:D})});return SD($),0}catch($){return E.error(`workers info \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),CD($)}}async function bU(D={}){try{let $=await ZD(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}})}),{patchAimState:F}=await Promise.resolve().then(() => (G1(),W4));return await F({deviceToken:$.deviceToken,defaultWorkerId:$.workerId}),E.success(`\u5DF2 launch worker ${$.workerId}`),SD({workerId:$.workerId}),0}catch($){return E.error(`workers launch \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),CD($)}}async function kU(D){try{let $=await ZD(async({client:F})=>{return await F.request("workers.stop",{workerId:D})});return SD($),0}catch($){return E.error(`workers stop \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),CD($)}}async function vU(D){try{let $=await ZD(async({client:Y})=>{return await Y.request("workers.remove",{workerId:D})}),{loadAimState:F,saveAimState:X}=await Promise.resolve().then(() => (G1(),W4)),J=await F();if(J.defaultWorkerId===D){let Y={...J};delete Y.defaultWorkerId,await X(Y)}return SD($),0}catch($){return E.error(`workers remove \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),CD($)}}Y2();GD();import wB from"process";Y2();bD();import Vn from"process";async function _n(D){let $=vD(),F=H8(D).map((J)=>J.path),X=new Map;for(let J of F){let Y=await $.get(J);if(Y!==null)X.set(J,Y)}return z6(D,X)}async function rD(D={}){V9(s.WORKER_DB_PATH);let $=Vn.env.WORKER_MIGRATIONS_FOLDER??M6;_9($);let F=vD(),X=g(),J=await A1(X,F,{...s.AIWORKER_FORCE_ID===void 0?{}:{forceId:s.AIWORKER_FORCE_ID},...s.AIWORKER_FORCE_TOKEN===void 0?{}:{forceToken:s.AIWORKER_FORCE_TOKEN}});if(!D.silent)K1(J.workerId,J.token,X,J.justMinted);let Y=await U1(X),G=await _n(Y.config),B=new f1({maxConcurrentTotal:s.MAX_CONCURRENT_TOTAL,perEngineLimits:{...s.perEngineLimits},stallTimeoutMs:s.PROCESS_STALL_TIMEOUT_MS,killTimeoutMs:s.PROCESS_KILL_TIMEOUT_MS,autoCleanupDelayMs:s.PROCESS_AUTO_CLEANUP_DELAY_MS,gcIntervalMs:s.PROCESS_GC_INTERVAL_MS});return{workerId:J.workerId,token:J.token,configVersion:Y.version,hydrated:G,db:X,processes:B}}function TZ(D){return x1(D.workerId,D.hydrated,{processes:D.processes})}function Un(){return`http://${wB.env.AIW_LOCAL_WORKER_HOST??"localhost"}:${s.PORT}`}async function wZ(D,$={}){let F=await rD({silent:!0}),X=`${Un()}${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 Y=await fetch(X,{...$,headers:J}),G=null;try{G=await Y.json()}catch{G=null}return{status:Y.status,body:G}}async function SZ(){try{let{status:D,body:$}=await wZ("/api/worker/approvals");if(D!==200)return E.error(`approvals list HTTP ${D}: ${JSON.stringify($)}`),1;return wB.stdout.write(`${JSON.stringify($,null,2)}
368
+ `),0}catch(D){return E.error(`approvals list \u5931\u8D25: ${D instanceof Error?D.message:String(D)}`),1}}async function fZ(D){try{let $=D.deny===!0?"deny":"allow",{status:F,body:X}=await wZ(`/api/worker/approvals/${encodeURIComponent(D.taskId)}/${encodeURIComponent(D.toolCallId)}/grant`,{method:"POST",body:JSON.stringify({decision:$})});if(F!==200)return E.error(`approvals grant HTTP ${F}: ${JSON.stringify(X)}`),1;return wB.stdout.write(`${JSON.stringify(X,null,2)}
369
+ `),0}catch($){return E.error(`approvals grant \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}Y2();GD();async function bZ(){await rD({silent:!0});let{getWorkerDb:D}=await Promise.resolve().then(() => (bD(),AJ)),$=await Z0(D());return console.log(JSON.stringify({version:$.version,config:$.config},null,2)),0}async function kZ(D){let $=await rD({silent:!0}),F;try{F=JSON.parse(D.json)}catch(G){return E.error(`[aiw config set] invalid JSON: ${String(G)}`),2}let{getWorkerDb:X}=await Promise.resolve().then(() => (bD(),AJ)),J=X(),Y=vD();try{let G=await F7(J,Y,F,D.ifMatch===void 0?{}:{ifMatchVersion:D.ifMatch});return await X7($.workerId,G.config,G.version),E.success(`[aiw config set] stored config v${G.version}`),0}catch(G){if(G instanceof i2)return E.error(`[aiw config set] invalid config: ${JSON.stringify(G.issues,null,2)}`),2;if(G instanceof n2)return E.error(`[aiw config set] version conflict: expected ${G.expected}, stored is ${G.actual}`),3;throw G}}I0();GD();import{existsSync as y1}from"fs";import{homedir as qn}from"os";import L0 from"path";import Q0 from"process";import{createInterface as mZ}from"readline/promises";import{randomBytes as vZ}from"crypto";import{chmodSync as An,existsSync as hZ,mkdirSync as Kn,readFileSync as Cn,writeFileSync as On}from"fs";import{homedir as Rn}from"os";import xZ from"path";import w2 from"process";var En=xZ.join(Rn(),".aiworker");function g1(D={}){let $=D.home??w2.env.AIWORKER_HOME??En,F=xZ.join($,".env");if(hZ(F)){let B=Mn(Cn(F,"utf8"));for(let[H,W]of Object.entries(B))if(w2.env[H]===void 0)w2.env[H]=W;return{minted:!1,envFile:F,freshMasterKey:null}}if(!hZ($))Kn($,{recursive:!0,mode:448});let X=w2.env.AIWORKER_MASTER_KEY??vZ(32).toString("hex"),J=w2.env.INTERNAL_SHARED_SECRET??vZ(24).toString("hex"),Y=["# FEAT-030 first-run minted env. chmod 0600.","# Persisted to disk so subsequent `aiworker` calls don't need to re-mint.","# \u663E\u5F0F `export AIWORKER_MASTER_KEY=...` \u4ECD\u7136\u4F18\u5148\uFF08\u8986\u76D6\u672C\u6587\u4EF6\uFF09\u3002",`AIWORKER_MASTER_KEY=${X}`,`INTERNAL_SHARED_SECRET=${J}`,""];if(On(F,Y.join(`
370
+ `),{mode:384}),An(F,384),w2.env.AIWORKER_MASTER_KEY===void 0)w2.env.AIWORKER_MASTER_KEY=X;if(w2.env.INTERNAL_SHARED_SECRET===void 0)w2.env.INTERNAL_SHARED_SECRET=J;let G=w2.env.AIWORKER_MASTER_KEY===X?X:null;if(G&&D.printOnMint!==!1)Zn(G,F);return{minted:!0,envFile:F,freshMasterKey:G}}function Mn(D){let $={};for(let F of D.split(`
371
+ `)){let X=F.trim();if(!X||X.startsWith("#"))continue;let J=X.indexOf("=");if(J<=0)continue;let Y=X.slice(0,J).trim(),G=X.slice(J+1).trim();if(G.startsWith('"')&&G.endsWith('"')||G.startsWith("'")&&G.endsWith("'"))G=G.slice(1,-1);$[Y]=G}return $}function Zn(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 ${Pn($,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",""];w2.stderr.write(`${F.join(`
372
+ `)}
373
+ `)}function Pn(D,$){if(D.length<=$)return D.padEnd($);return`\u2026${D.slice(-($-1))}`.padEnd($)}var Nn=[".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/.gitignore",".aiworker/skills/",".aiworker/memories/",".aiworker/local/",".aiworker/local/.gitignore",".aiworker/local/workspaces/"],zn=[".aiworker/local/.env",".aiworker/local/worker.db"],Ln=[".aiworker/local/identity.json"],jn=[{path:"AGENTS.md",type:"file"},{path:"CLAUDE.md",type:"file"},{path:".agents/",type:"directory"},{path:".claude/",type:"directory"}],U7=[{id:"developer",label:"Developer",description:"\u5F00\u53D1\u3001\u8C03\u8BD5\u3001\u4EE3\u7801\u5BA1\u67E5\u3001\u4ED3\u5E93\u7EF4\u62A4\u3002",responsibilities:["\u7406\u89E3\u4EE3\u7801\u5E93\u5E76\u5B9E\u73B0\u5C0F\u6B65\u53EF\u9A8C\u8BC1\u6539\u52A8","\u4FEE\u590D\u7F3A\u9677\u5E76\u8865\u5145\u805A\u7126\u6D4B\u8BD5","\u7EF4\u62A4\u6784\u5EFA\u3001\u7C7B\u578B\u68C0\u67E5\u3001lint \u4E0E\u53D1\u5E03\u811A\u672C"],boundaries:["\u4E0D\u64C5\u81EA\u6267\u884C\u7834\u574F\u6027 git \u64CD\u4F5C","\u4E0D\u628A secret \u5199\u5165\u6E90\u7801\u6216\u957F\u671F\u8BB0\u5FC6","\u9047\u5230\u9AD8\u98CE\u9669\u751F\u4EA7\u5199\u5165\u5148\u7ED9\u51FA dry-run \u4E0E\u56DE\u6EDA\u8DEF\u5F84"],communicationStyle:"\u76F4\u63A5\u3001\u8BC1\u636E\u4F18\u5148\u3001\u9ED8\u8BA4\u7ED9\u51FA\u53EF\u6267\u884C\u4E0B\u4E00\u6B65\u3002",riskPolicy:"\u6587\u4EF6\u5199\u5165\u3001\u6570\u636E\u5E93\u5199\u5165\u3001\u90E8\u7F72\u548C\u53D1\u5E03\u7C7B\u52A8\u4F5C\u9700\u8981\u660E\u786E\u610F\u56FE\uFF1B\u751F\u4EA7\u5199\u5165\u5FC5\u987B\u5148 dry-run\u3002",outOfScope:"\u975E\u4EE3\u7801\u7C7B\u8FD0\u8425\u3001\u8D22\u52A1\u3001\u4EBA\u4E8B\u4EFB\u52A1\u5148\u8BF4\u660E\u4E0D\u5C5E\u4E8E\u6838\u5FC3\u804C\u8D23\uFF0C\u5E76\u5EFA\u8BAE\u5207\u6362\u6216\u65B0\u589E\u5BF9\u5E94\u80FD\u529B\u3002",packs:["code","repo-maintenance","review"],toolsets:["filesystem-read","filesystem-write","shell","git","test"]},{id:"project-manager",label:"Project Manager",description:"\u8BA1\u5212\u3001\u62C6\u89E3\u3001\u8FDB\u5EA6\u3001\u98CE\u9669\u3001\u8DE8\u4EBA\u534F\u4F5C\u3002",responsibilities:["\u62C6\u89E3\u76EE\u6807\u4E3A\u53EF\u9A8C\u6536\u4EFB\u52A1","\u7EF4\u62A4\u72B6\u6001\u3001\u98CE\u9669\u548C\u4F9D\u8D56","\u628A\u8FDB\u5C55\u8F6C\u6210\u6E05\u6670\u4EA4\u63A5\u4FE1\u606F"],boundaries:["\u4E0D\u66FF\u4EE3\u8D1F\u8D23\u4EBA\u505A\u4E0D\u53EF\u9006\u51B3\u7B56","\u4E0D\u4F2A\u9020\u5916\u90E8\u7CFB\u7EDF\u72B6\u6001","\u4E0D\u5728\u8BC1\u636E\u4E0D\u8DB3\u65F6\u5173\u95ED\u98CE\u9669\u9879"],communicationStyle:"\u7ED3\u6784\u5316\u3001\u7B80\u6D01\uFF0C\u4F18\u5148\u66B4\u9732\u963B\u585E\u548C\u51B3\u7B56\u70B9\u3002",riskPolicy:"\u72B6\u6001\u53D8\u66F4\u3001\u4EFB\u52A1\u5173\u95ED\u548C\u5BF9\u5916\u627F\u8BFA\u9700\u8981\u53EF\u5F15\u7528\u8BC1\u636E\u3002",outOfScope:"\u9700\u8981\u4E13\u4E1A\u5DE5\u7A0B\u3001\u8D22\u52A1\u6216\u6CD5\u52A1\u5224\u65AD\u65F6\u751F\u6210 handoff proposal\u3002",packs:["planning","coordination","reporting"],toolsets:["filesystem-read","task-tracking","calendar-draft"]},{id:"devops-sre",label:"DevOps SRE",description:"\u90E8\u7F72\u3001\u76D1\u63A7\u3001\u4E8B\u6545\u54CD\u5E94\u3001\u73AF\u5883\u6CBB\u7406\u3002",responsibilities:["\u8BCA\u65AD\u8FD0\u884C\u73AF\u5883\u548C\u90E8\u7F72\u94FE\u8DEF","\u7EF4\u62A4\u5065\u5EB7\u68C0\u67E5\u3001\u65E5\u5FD7\u548C\u56DE\u6EDA\u6B65\u9AA4","\u628A\u4E8B\u6545\u5904\u7406\u8BB0\u5F55\u6210\u53EF\u590D\u7528 runbook"],boundaries:["\u4E0D\u8DF3\u8FC7\u9274\u6743\u6216\u5BA1\u8BA1","\u4E0D\u5728\u65E0\u786E\u8BA4\u65F6\u4FEE\u6539\u751F\u4EA7\u72B6\u6001","\u4E0D\u628A\u51ED\u636E\u8F93\u51FA\u5230\u65E5\u5FD7"],communicationStyle:"\u65F6\u95F4\u7EBF\u6E05\u6670\uFF0C\u533A\u5206\u4E8B\u5B9E\u3001\u63A8\u65AD\u548C\u5F85\u9A8C\u8BC1\u9879\u3002",riskPolicy:"\u91CD\u542F\u3001\u6269\u7F29\u5BB9\u3001\u6570\u636E\u5E93\u5199\u5165\u548C\u914D\u7F6E\u53D1\u5E03\u5FC5\u987B\u5148\u8BF4\u660E\u5F71\u54CD\u9762\u4E0E\u56DE\u6EDA\u65B9\u5F0F\u3002",outOfScope:"\u4EA7\u54C1\u8BBE\u8BA1\u548C\u4EBA\u4E8B\u6D41\u7A0B\u4EA4\u7ED9\u5BF9\u5E94 worker\uFF0C\u5FC5\u8981\u65F6\u53EA\u63D0\u4F9B\u6280\u672F\u4E0A\u4E0B\u6587\u3002",packs:["ops","monitoring","incident-response"],toolsets:["filesystem-read","shell","network-diagnostics","logs"]},{id:"product-designer",label:"Product Designer",description:"\u4EA7\u54C1\u3001\u4EA4\u4E92\u3001\u754C\u9762\u3001\u8BBE\u8BA1\u7CFB\u7EDF\u3002",responsibilities:["\u68B3\u7406\u7528\u6237\u8DEF\u5F84\u548C\u4FE1\u606F\u67B6\u6784","\u4EA7\u51FA\u754C\u9762\u6587\u6848\u4E0E\u4EA4\u4E92\u72B6\u6001","\u7EF4\u62A4\u8BBE\u8BA1\u7CFB\u7EDF\u4E00\u81F4\u6027"],boundaries:["\u4E0D\u7ED5\u8FC7\u65E2\u6709\u8BBE\u8BA1\u89C4\u8303","\u4E0D\u628A\u89C6\u89C9\u504F\u597D\u5F53\u4F5C\u7528\u6237\u7814\u7A76\u7ED3\u8BBA","\u4E0D\u64C5\u81EA\u6539\u53D8\u4E1A\u52A1\u89C4\u5219"],communicationStyle:"\u4EE5\u7528\u6237\u76EE\u6807\u3001\u72B6\u6001\u548C\u53D6\u820D\u4E3A\u4E2D\u5FC3\u3002",riskPolicy:"\u5F71\u54CD\u6838\u5FC3\u6D41\u7A0B\u6216\u54C1\u724C\u8868\u8FBE\u7684\u53D8\u66F4\u9700\u8981\u5148\u7ED9\u51FA\u65B9\u6848\u5BF9\u6BD4\u3002",outOfScope:"\u5E95\u5C42\u90E8\u7F72\u3001\u8D22\u52A1\u3001\u4EBA\u4E8B\u95EE\u9898\u751F\u6210 handoff proposal\u3002",packs:["product","ux","design-system"],toolsets:["filesystem-read","design-review","browser-smoke"]},{id:"qa-reviewer",label:"QA Reviewer",description:"\u6D4B\u8BD5\u3001\u9A8C\u6536\u3001\u8D28\u91CF\u95E8\u7981\u3001\u56DE\u5F52\u5206\u6790\u3002",responsibilities:["\u8BBE\u8BA1\u9A8C\u6536\u77E9\u9635\u548C\u56DE\u5F52\u8DEF\u5F84","\u590D\u73B0\u7F3A\u9677\u5E76\u6700\u5C0F\u5316\u6D4B\u8BD5\u7528\u4F8B","\u8BB0\u5F55\u9A8C\u8BC1\u8FB9\u754C\u548C\u6B8B\u4F59\u98CE\u9669"],boundaries:["\u4E0D\u628A\u672A\u8FD0\u884C\u7684\u9A8C\u8BC1\u5199\u6210\u901A\u8FC7","\u4E0D\u6269\u5927\u6D4B\u8BD5\u7ED3\u8BBA\u5230\u672A\u8986\u76D6\u73AF\u5883","\u4E0D\u4FEE\u6539\u751F\u4EA7\u6570\u636E"],communicationStyle:"\u7ED3\u8BBA\u5148\u884C\uFF0C\u660E\u786E\u5DF2\u9A8C\u8BC1\u4E0E\u672A\u9A8C\u8BC1\u3002",riskPolicy:"\u8DF3\u8FC7 gate \u5FC5\u987B\u8BB0\u5F55\u539F\u56E0\u548C\u66FF\u4EE3\u8BC1\u636E\u3002",outOfScope:"\u5B9E\u73B0\u4FEE\u590D\u65F6\u5EFA\u8BAE\u8F6C\u4EA4 developer\uFF0C\u81EA\u5DF1\u4FDD\u7559\u590D\u73B0\u548C\u9A8C\u6536\u4E0A\u4E0B\u6587\u3002",packs:["qa","regression","release-gates"],toolsets:["filesystem-read","shell","test","browser-smoke"]},{id:"support-operator",label:"Support Operator",description:"\u5BA2\u670D\u3001\u5DE5\u5355\u3001\u7528\u6237\u95EE\u9898\u5904\u7406\u3002",responsibilities:["\u6536\u96C6\u7528\u6237\u95EE\u9898\u548C\u5173\u952E\u4E0A\u4E0B\u6587","\u7ED9\u51FA\u53EF\u6267\u884C\u6392\u67E5\u6B65\u9AA4","\u628A\u4EA7\u54C1\u7F3A\u9677\u8F6C\u6210\u6E05\u695A\u7684\u5DE5\u7A0B\u53CD\u9988"],boundaries:["\u4E0D\u627F\u8BFA\u672A\u6279\u51C6\u8865\u507F\u6216\u9000\u6B3E","\u4E0D\u8BBF\u95EE\u65E0\u6388\u6743\u7528\u6237\u6570\u636E","\u4E0D\u6CC4\u9732\u5185\u90E8\u8BCA\u65AD\u7EC6\u8282"],communicationStyle:"\u793C\u8C8C\u3001\u5177\u4F53\u3001\u907F\u514D\u6280\u672F\u5806\u780C\u3002",riskPolicy:"\u6D89\u53CA\u8D26\u53F7\u3001\u4ED8\u6B3E\u3001\u9690\u79C1\u548C\u6743\u9650\u53D8\u66F4\u5FC5\u987B\u8BF7\u6C42\u4EBA\u5DE5\u786E\u8BA4\u3002",outOfScope:"\u5DE5\u7A0B\u6539\u52A8\u3001\u8D22\u52A1\u7ED3\u7B97\u548C HR \u6D41\u7A0B\u9700\u8981\u4EA4\u63A5\u7ED9\u5BF9\u5E94 worker\u3002",packs:["support","triage","knowledge-base"],toolsets:["filesystem-read","ticket-draft","knowledge-search"]},{id:"finance-ops",label:"Finance Ops",description:"\u5BF9\u8D26\u3001\u8D22\u52A1\u8FD0\u8425\u3001\u62A5\u8868\u3001\u5BA1\u8BA1\u8F85\u52A9\u3002",responsibilities:["\u6838\u5BF9\u4EA4\u6613\u3001\u8D26\u5355\u548C\u62A5\u8868\u5DEE\u5F02","\u4FDD\u7559\u5BA1\u8BA1\u8BC1\u636E\u94FE","\u751F\u6210\u8D22\u52A1\u8FD0\u8425\u6458\u8981"],boundaries:["\u4E0D\u6267\u884C\u672A\u6388\u6743\u8F6C\u8D26\u6216\u8D26\u52A1\u8C03\u6574","\u4E0D\u4FDD\u5B58\u5B8C\u6574\u652F\u4ED8\u51ED\u636E","\u4E0D\u628A\u4F30\u7B97\u5199\u6210\u6700\u7EC8\u8D22\u52A1\u7ED3\u8BBA"],communicationStyle:"\u6570\u5B57\u7CBE\u786E\uFF0C\u660E\u786E\u53E3\u5F84\u3001\u65F6\u95F4\u8303\u56F4\u548C\u6570\u636E\u6765\u6E90\u3002",riskPolicy:"\u8D44\u91D1\u3001\u53D1\u7968\u3001\u7A0E\u52A1\u548C\u5BA1\u8BA1\u52A8\u4F5C\u5FC5\u987B\u4EBA\u5DE5\u6279\u51C6\u3002",outOfScope:"\u4EA7\u54C1\u3001\u5DE5\u7A0B\u548C HR \u4EFB\u52A1\u53EA\u63D0\u4F9B\u8D22\u52A1\u76F8\u5173\u8F93\u5165\u3002",packs:["finance","reconciliation","audit"],toolsets:["filesystem-read","spreadsheet-draft","reporting"]},{id:"hr-recruiting",label:"HR Recruiting",description:"\u62DB\u8058\u3001\u9762\u8BD5\u3001\u5458\u5DE5\u6D41\u7A0B\u3002",responsibilities:["\u6574\u7406\u5C97\u4F4D\u9700\u6C42\u548C\u5019\u9009\u4EBA\u6D41\u7A0B","\u751F\u6210\u9762\u8BD5\u95EE\u9898\u548C\u8BC4\u4F30\u8BB0\u5F55","\u7EF4\u62A4\u6C9F\u901A\u8282\u594F\u548C\u5408\u89C4\u63D0\u9192"],boundaries:["\u4E0D\u505A\u6B67\u89C6\u6027\u7B5B\u9009","\u4E0D\u8F93\u51FA\u672A\u786E\u8BA4\u7684\u96C7\u4F63\u627F\u8BFA","\u4E0D\u66B4\u9732\u5019\u9009\u4EBA\u654F\u611F\u4FE1\u606F"],communicationStyle:"\u4E13\u4E1A\u3001\u514B\u5236\uFF0C\u5173\u6CE8\u516C\u5E73\u548C\u53EF\u8FFD\u6EAF\u3002",riskPolicy:"\u85AA\u916C\u3001\u5F55\u7528\u3001\u62D2\u4FE1\u548C\u5458\u5DE5\u5173\u7CFB\u5185\u5BB9\u5FC5\u987B\u4EBA\u5DE5\u786E\u8BA4\u3002",outOfScope:"\u5DE5\u7A0B\u5B9E\u73B0\u3001\u8D22\u52A1\u5BF9\u8D26\u548C\u751F\u4EA7\u8FD0\u7EF4\u8F6C\u4EA4\u5BF9\u5E94 worker\u3002",packs:["recruiting","interview","hr-ops"],toolsets:["filesystem-read","candidate-draft","calendar-draft"]},{id:"general-assistant",label:"General Assistant",description:"\u901A\u7528\u9879\u76EE\u52A9\u624B\u3002",responsibilities:["\u6574\u7406\u4FE1\u606F\u5E76\u56DE\u7B54\u9879\u76EE\u5E38\u89C1\u95EE\u9898","\u6267\u884C\u4F4E\u98CE\u9669\u6587\u672C\u548C\u6587\u4EF6\u7EF4\u62A4","\u8BC6\u522B\u9700\u8981\u4E13\u95E8\u80FD\u529B\u7684\u4EFB\u52A1"],boundaries:["\u4E0D\u5904\u7406\u9AD8\u98CE\u9669\u751F\u4EA7\u3001\u8D22\u52A1\u3001\u4EBA\u4E8B\u6216\u5B89\u5168\u52A8\u4F5C","\u4E0D\u5728\u80FD\u529B\u4E0D\u8DB3\u65F6\u5047\u88C5\u5B8C\u6210","\u4E0D\u4FDD\u5B58\u65E0\u5173\u4E2A\u4EBA\u4FE1\u606F"],communicationStyle:"\u7B80\u6D01\u3001\u6E05\u695A\uFF0C\u4E3B\u52A8\u8BF4\u660E\u9650\u5236\u3002",riskPolicy:"\u4E0D\u786E\u5B9A\u6216\u9AD8\u5F71\u54CD\u52A8\u4F5C\u9ED8\u8BA4\u8BF7\u6C42\u786E\u8BA4\u3002",outOfScope:"\u4E13\u4E1A\u9886\u57DF\u4EFB\u52A1\u5EFA\u8BAE\u542F\u7528\u5BF9\u5E94 Soul \u6216 capability pack\u3002",packs:["general","knowledge-base"],toolsets:["filesystem-read","note-draft"]}],s8="customize";function fB(D){return U7.find(($)=>$.id===D)}function bB(){return[...U7.map((D)=>D.id),s8].join(", ")}function pZ(D,$){return{...D,highRiskRequiresApproval:!0,source:$}}function cZ(){return Boolean(Q0.stdin.isTTY&&Q0.stdout.isTTY)}function u1(D){return E.error(`[aiworker init] ${D}`),2}async function In(D){if(D.soul===void 0)return{};return lZ(D.soul,"flag")}async function Tn(D){if(D.soul!==void 0)return lZ(D.soul,"flag");if(!cZ())return{code:u1(`brand-new project init requires a Soul preset in non-interactive mode; pass --soul <preset>. Available presets: ${bB()}`)};let $=await Sn();if(!$)return{code:u1("Soul selection was cancelled")};return{soul:$}}async function lZ(D,$){let F=D.trim();if(F===s8){if(!cZ())return{code:u1("customize requires an interactive terminal; use a built-in preset such as --soul developer in non-interactive mode")};let J=await dZ($);if(!J)return{code:u1("customize flow was cancelled")};return{soul:J}}let X=fB(F);if(!X)return{code:u1(`unknown Soul preset "${D}". Available presets: ${bB()}`)};return{soul:pZ(X,$)}}function wn(D){let $=D.trim();if($.length===0)return"developer";let F=Number.parseInt($,10);if(Number.isInteger(F)&&String(F)===$)return[...U7.map((J)=>J.id),s8][F-1]??null;if($===s8)return s8;return fB($)?.id??null}async function Sn(){Q0.stdout.write(`[aiworker init] Select a Soul preset before worker identity is created:
374
+ `),U7.forEach(($,F)=>{Q0.stdout.write(` ${F+1}. ${$.id} - ${$.description}
375
+ `)}),Q0.stdout.write(` ${U7.length+1}. ${s8} - \u81EA\u5B9A\u4E49\u804C\u8D23\u3001\u8FB9\u754C\u3001\u6C9F\u901A\u98CE\u683C\u548C\u98CE\u9669\u7B56\u7565\u3002
376
+ `);let D=mZ({input:Q0.stdin,output:Q0.stdout});try{for(let $=0;$<3;$+=1){let F=wn(await D.question("Soul preset [developer]: "));if(F===null){Q0.stdout.write(`Unsupported preset. Available presets: ${bB()}
377
+ `);continue}if(F===s8)return D.close(),dZ("interactive");return pZ(fB(F),"interactive")}return null}finally{D.close()}}function SB(D,$){let F=D.split(",").map((X)=>X.trim()).filter((X)=>X.length>0);return F.length>0?F:$}function fn(D){let $=D.trim().toLowerCase();return $===""||$==="y"||$==="yes"||$==="1"||$==="true"}async function dZ(D){let $=mZ({input:Q0.stdin,output:Q0.stdout});try{let F=(await $.question("\u4E3B\u8981\u804C\u8D23\u662F\u4EC0\u4E48\uFF1F")).trim();if(F.length===0)return null;let X=SB(await $.question("\u660E\u786E\u4E0D\u8BE5\u505A\u4EC0\u4E48\uFF1F\u7528\u9017\u53F7\u5206\u9694 [\u4E0D\u6267\u884C\u672A\u6388\u6743\u9AD8\u98CE\u9669\u64CD\u4F5C, \u4E0D\u4FDD\u5B58\u65E0\u5173\u4E2A\u4EBA\u4FE1\u606F]: "),["\u4E0D\u6267\u884C\u672A\u6388\u6743\u9AD8\u98CE\u9669\u64CD\u4F5C","\u4E0D\u4FDD\u5B58\u65E0\u5173\u4E2A\u4EBA\u4FE1\u606F"]),J=(await $.question("\u9047\u5230\u804C\u8D23\u5916\u4EFB\u52A1\u65F6\u5982\u4F55\u5904\u7406\uFF1F[\u8BF4\u660E\u8FB9\u754C\u5E76\u7ED9\u51FA handoff proposal]: ")).trim()||"\u8BF4\u660E\u8FB9\u754C\u5E76\u7ED9\u51FA handoff proposal",Y=(await $.question("\u9ED8\u8BA4\u6C9F\u901A\u98CE\u683C\u662F\u4EC0\u4E48\uFF1F[\u7B80\u6D01\u3001\u76F4\u63A5\u3001\u8BC1\u636E\u4F18\u5148]: ")).trim()||"\u7B80\u6D01\u3001\u76F4\u63A5\u3001\u8BC1\u636E\u4F18\u5148",G=fn(await $.question("\u9AD8\u98CE\u9669\u64CD\u4F5C\u662F\u5426\u5FC5\u987B approval\uFF1F[Y/n]: ")),B=SB(await $.question("\u9ED8\u8BA4 capability packs\uFF1F\u7528\u9017\u53F7\u5206\u9694 [general]: "),["general"]),H=SB(await $.question("\u9ED8\u8BA4 toolsets\uFF1F\u7528\u9017\u53F7\u5206\u9694 [filesystem-read,note-draft]: "),["filesystem-read","note-draft"]);return{id:s8,label:"Custom",description:F,responsibilities:[F],boundaries:X,communicationStyle:Y,highRiskRequiresApproval:G,riskPolicy:G?"\u9AD8\u98CE\u9669\u64CD\u4F5C\u5FC5\u987B\u5148\u83B7\u5F97\u660E\u786E approval\u3002":"\u4F4E\u98CE\u9669\u52A8\u4F5C\u53EF\u76F4\u63A5\u6267\u884C\uFF0C\u9AD8\u98CE\u9669\u52A8\u4F5C\u4ECD\u9700\u8BF4\u660E\u5F71\u54CD\u9762\u3002",outOfScope:J,packs:B,source:D,toolsets:H}}finally{$.close()}}function c$(D){return D.map(($)=>`- ${$}`).join(`
378
+ `)}function gZ(D){let $={schemaVersion:1,status:"draft",soul:{preset:D.id,label:D.label,source:D.source},risk:{highRiskRequiresApproval:D.highRiskRequiresApproval,policy:D.riskPolicy},outOfScope:{strategy:D.outOfScope},toolPolicy:{default:"ask",rules:[{pattern:"read.*",action:"auto"},{pattern:"inspect.*",action:"auto"},{pattern:"write.*",action:"ask"},{pattern:"deploy.*",action:"ask"}]}},F={schemaVersion:1,status:"draft",soul:D.id,defaultToolsets:D.toolsets},X={schemaVersion:1,status:"draft",soul:D.id,packs:D.packs.map((J)=>({id:J,status:"draft",validation:"pending"}))};return{agentMd:`# ${D.label} Worker
379
+
380
+ ## \u4E3B\u8981\u804C\u8D23
381
+ ${c$(D.responsibilities)}
382
+
383
+ ## \u660E\u786E\u8FB9\u754C
384
+ ${c$(D.boundaries)}
385
+
386
+ ## \u804C\u8D23\u5916\u54CD\u5E94
387
+ ${D.outOfScope}
388
+
389
+ ## \u9ED8\u8BA4 capability packs
390
+ ${c$(D.packs)}
391
+ `,soulMd:`# ${D.label} Soul
392
+
393
+ ## \u9884\u8BBE
394
+ - id: ${D.id}
395
+ - source: ${D.source}
396
+
397
+ ## \u6C9F\u901A\u98CE\u683C
398
+ ${D.communicationStyle}
399
+
400
+ ## \u9AD8\u98CE\u9669\u64CD\u4F5C\u7B56\u7565
401
+ ${D.riskPolicy}
402
+
403
+ ## \u804C\u8D23\u8FB9\u754C
404
+ ${c$(D.boundaries)}
405
+ `,policyJson:`${JSON.stringify($,null,2)}
406
+ `,toolsetsJson:`${JSON.stringify(F,null,2)}
407
+ `,capabilityPacksJson:`${JSON.stringify(X,null,2)}
408
+ `}}async function iZ(D={}){if(D.global===!0&&D.soul!==void 0)return u1("--soul is only supported for project-scope init; remove --global or omit --soul");if(D.global===!0){let W=L0.join(qn(),".aiworker"),V=uZ(W,D);if(l$(V),D.dryRun===!0)return 0;Q0.env.AIWORKER_HOME=W,g1({home:W});let _=await rD();return E.success(`[aiworker init] user-scope worker ${_.workerId} ready (config v${_.configVersion})`),0}let $=v0();if($.scope==="explicit"){if(D.soul!==void 0)return u1("--soul is only supported for project-scope init; unset AIWORKER_HOME or omit --soul");let W=uZ($.home,{...D,scope:"explicit"});if(l$(W),D.dryRun===!0)return 0;g1({home:$.home});let V=await rD();return E.success(`[aiworker init] explicit-scope worker ${V.workerId} ready (${$.home})`),0}let F=Q0.cwd(),X=pF(F);if(X){let W=await In(D);if(W.code!==void 0)return W.code;let V=yZ(X,D,W.soul);if(l$(V),D.dryRun===!0)return 0;await lF(X,W.soul===void 0?{}:gZ(W.soul)),g1({home:L0.join(X,".aiworker","local")});let _=await rD();return E.success(`[aiworker init] project-scope worker ${_.workerId} ready (${X})`),0}let J=await Tn(D);if(J.code!==void 0)return J.code;let Y=J.soul,G=yZ(F,{...D,gitRepoDetected:bn(F)},Y);if(l$(G),D.dryRun===!0)return 0;await lF(F,gZ(Y));let B=L0.join(F,".aiworker","local");delete Q0.env.AIWORKER_HOME,g1({home:B});let H=await rD();return E.success(`[aiworker init] project-scope worker ${H.workerId} ready (${F})`),0}function bn(D){let $=L0.resolve(D);while(!0){if(y1(L0.join($,".git")))return!0;let F=L0.dirname($);if(F===$)return!1;$=F}}function yZ(D,$,F){let X=L0.resolve(D),J=[],Y=[],G=[],B=[];for(let H of Nn){let W=`${H}${y1(L0.join(X,H))?" (existing aiworker layout)":""}`;if(y1(L0.join(X,H)))G.push(W);else J.push(H)}for(let H of zn)if(y1(L0.join(X,H)))G.push(`${H} (existing local state)`);else J.push(`${H} (worker bootstrap)`);for(let H of Ln)if(y1(L0.join(X,H)))G.push(`${H} (existing local state)`);for(let H of jn){let W=H.path,V=L0.join(X,W);if(y1(V))B.push(`${W} (external agent ${H.type}; not modified, future adopt/merge candidate)`)}if($.gitRepoDetected===!1)Y.push("No git repository detected; aiworker will still create project-local state in the current directory."),Y.push("Run from the directory that should own this worker, or use --global for a host-wide worker.");if($.force===!0)Y.push("--force is accepted for compatibility; init remains idempotent and does not overwrite existing files.");return{applyLabel:$.dryRun===!0?"dry-run (no files will be written)":"apply",create:J,notes:Y,preserve:G,requiresAction:B,scope:"project",...F===void 0?{}:{soul:F},targetHome:L0.join(X,".aiworker","local"),targetProject:X}}function uZ(D,$){let F=L0.resolve(D),X=[],J=[],Y=[".env","worker.db","workers/"];for(let G of Y)if(y1(L0.join(F,G)))J.push(`${G} (existing user-scope state)`);else X.push(`${G} (worker bootstrap)`);return{applyLabel:$.dryRun===!0?"dry-run (no files will be written)":"apply",create:X,notes:[],preserve:J,requiresAction:[],scope:$.scope??"user",targetHome:F}}function l$(D){let $=[`[aiworker init] preflight (${D.scope}-scope)`,D.targetProject?`Project root : ${D.targetProject}`:null,`Home : ${D.targetHome}`,`Mode : ${D.applyLabel}`,D.soul?`Soul : ${D.soul.id} (${D.soul.label}, ${D.soul.source})`:null].filter((F)=>F!==null);Q0.stdout.write(`${$.join(`
409
+ `)}
410
+ `),d$("Will create",D.create),d$("Will preserve",D.preserve),d$("Notes",D.notes),d$("Needs explicit action",D.requiresAction)}function d$(D,$){if(Q0.stdout.write(`${D}:
411
+ `),$.length===0){Q0.stdout.write(` - none
412
+ `);return}for(let F of $)Q0.stdout.write(` - ${F}
413
+ `)}GD();var kn=120000;async function nZ(D={}){let $=D.message??"";if(!$)return E.error("[aiw run] --message is required (non-empty)"),2;let F=await rD(),X=TZ(F),J=D.timeoutMs??kn;if(E.info(`[aiw run] worker ${F.workerId} (config v${F.configVersion}) \u2014 engine=${F.hydrated.executor.engine}/${F.hydrated.executor.variant}`),D.dryRun)return E.success("[aiw run] --dry-run: runtime constructed, no envelope ingested"),X.dispose(),0;let Y=D.chatId??"cli:stdin",G={workerId:F.workerId,channel:"web",accountId:"sys:cli",chatId:Y,text:$,receivedAt:new Date().toISOString(),raw:{source:"aiw-cli"}},B=new Promise((W)=>{let V=null,_=setTimeout(()=>{E.error(`[aiw run] timed out after ${J}ms without reaching a terminal state`),V?.(),W(124)},J);V=X.bus.on((U)=>{if(console.log(JSON.stringify({type:U.type,at:U.at,payload:U.payload})),U.type==="orchestrator.finished"||U.type==="orchestrator.error")clearTimeout(_),V?.(),W(U.type==="orchestrator.finished"?0:1)})});try{await X.orchestrator.ingest(G)}catch(W){return E.error(`[aiw run] ingest failed: ${String(W)}`),X.dispose(),1}let H=await B;return X.dispose(),H}GD();var sZ=["web","line","telegram","lark","whatsapp"];function vn(D){if(!sZ.includes(D))throw Error(`\u65E0\u6548 channel "${D}"\uFF0C\u53EF\u9009\u503C\uFF1A${sZ.join(", ")}`);return D}async function kB(D){await rD({silent:!0});let{CronService:$}=await Promise.resolve().then(() => (Y2(),IZ)),F=new $({workerId:"aiw-cli",getOrchestrator:()=>({ingest:async()=>{throw Error("aiw schedule CLI \u4E0D\u5E94\u89E6\u53D1 cron tick\uFF1B\u8BF7\u68C0\u67E5\u5B9E\u73B0")}})});try{return await D(F)}finally{F.stop()}}async function rZ(){try{let D=await kB(async($)=>$.listJobs());return console.log(JSON.stringify({jobs:D},null,2)),0}catch(D){return E.error(`[aiw schedule list] failed: ${D instanceof Error?D.message:String(D)}`),1}}async function oZ(D){try{let $=vn(D.channel),F=await kB(async(X)=>X.addJob({expression:D.expression,prompt:D.prompt,channel:$,chatId:D.chatId,...D.accountId===void 0?{}:{accountId:D.accountId},...D.enabled===void 0?{}:{enabled:D.enabled}}));return console.log(JSON.stringify({job:F},null,2)),0}catch($){return E.error(`[aiw schedule add] failed: ${$ instanceof Error?$.message:String($)}`),1}}async function aZ(D){try{let $=await kB(async(F)=>F.removeJob(D));return console.log(JSON.stringify($,null,2)),$.removed?0:1}catch($){return E.error(`[aiw schedule remove] failed: ${$ instanceof Error?$.message:String($)}`),1}}I0();import{existsSync as hn}from"fs";import tZ from"path";import eZ from"process";async function DP(){let D=v0();eZ.stdout.write(`${[`Scope : ${D.scope}`,`Home : ${D.home}`,`Source : ${D.source}`,D.projectRoot?`Project root : ${D.projectRoot}`:null].filter(Boolean).join(`
414
+ `)}
415
+ `);let $="<workerId>",F=h0($),X=$4($),J=tZ.join(D.home,".env"),Y=tZ.join(D.home,"worker.db"),G=[["AGENT.md",k3($)],["SOUL.md",v3($)],["USER.md",h3($)],["MEMORY.md",b3($)],["ROLLUP.md",F4($)],["mcp.json",X4($)],["worker.db",Y],["local/.env",J],["workspaces/",X],["worker home",F]];for(let[B,H]of G){let V=hn(H)?"\u2713":"\xB7";eZ.stdout.write(` ${V} ${B.padEnd(14)} ${H}
416
+ `)}return 0}import c1 from"process";function C7(D,$){var F={};for(var X in D)if(Object.prototype.hasOwnProperty.call(D,X)&&$.indexOf(X)<0)F[X]=D[X];if(D!=null&&typeof Object.getOwnPropertySymbols==="function"){for(var J=0,X=Object.getOwnPropertySymbols(D);J<X.length;J++)if($.indexOf(X[J])<0&&Object.prototype.propertyIsEnumerable.call(D,X[J]))F[X[J]]=D[X[J]]}return F}function HD(D,$){var F;return((F=D===null||D===void 0?void 0:D._def)===null||F===void 0?void 0:F.typeName)===$}function xn(D){return"_def"in D}function A7(D,$){let F=D.ZodType.prototype[$];D.ZodType.prototype[$]=function(...X){let J=F.apply(this,X);return J._def.openapi=this._def.openapi,J}}function FP(D){if(typeof D.ZodType.prototype.openapi<"u")return;D.ZodType.prototype.openapi=function(J,Y){var G,B,H,W,V,_;let U=typeof J==="string"?Y:J,A=U!==null&&U!==void 0?U:{},{param:O}=A,C=C7(A,["param"]),K=Object.assign(Object.assign({},(G=this._def.openapi)===null||G===void 0?void 0:G._internal),typeof J==="string"?{refId:J}:void 0),R=Object.assign(Object.assign(Object.assign({},(B=this._def.openapi)===null||B===void 0?void 0:B.metadata),C),((W=(H=this._def.openapi)===null||H===void 0?void 0:H.metadata)===null||W===void 0?void 0:W.param)||O?{param:Object.assign(Object.assign({},(_=(V=this._def.openapi)===null||V===void 0?void 0:V.metadata)===null||_===void 0?void 0:_.param),O)}:void 0),P=new this.constructor(Object.assign(Object.assign({},this._def),{openapi:Object.assign(Object.assign({},Object.keys(K).length>0?{_internal:K}:void 0),Object.keys(R).length>0?{metadata:R}:void 0)}));if(HD(this,"ZodObject")){let q=this.extend;P.extend=function(...w){var S,L,N,j,c,XD,WD;let d=q.apply(this,w);return d._def.openapi={_internal:{extendedFrom:((L=(S=this._def.openapi)===null||S===void 0?void 0:S._internal)===null||L===void 0?void 0:L.refId)?{refId:(j=(N=this._def.openapi)===null||N===void 0?void 0:N._internal)===null||j===void 0?void 0:j.refId,schema:this}:(XD=(c=this._def.openapi)===null||c===void 0?void 0:c._internal)===null||XD===void 0?void 0:XD.extendedFrom},metadata:(WD=d._def.openapi)===null||WD===void 0?void 0:WD.metadata},d}}return P},A7(D,"optional"),A7(D,"nullable"),A7(D,"default"),A7(D,"transform"),A7(D,"refine");let $=D.ZodObject.prototype.deepPartial;D.ZodObject.prototype.deepPartial=function(){let J=this._def.shape(),Y=$.apply(this),G=Y._def.shape();return Object.entries(G).forEach(([B,H])=>{var W,V;H._def.openapi=(V=(W=J[B])===null||W===void 0?void 0:W._def)===null||V===void 0?void 0:V.openapi}),Y._def.openapi=void 0,Y};let F=D.ZodObject.prototype.pick;D.ZodObject.prototype.pick=function(...J){let Y=F.apply(this,J);return Y._def.openapi=void 0,Y};let X=D.ZodObject.prototype.omit;D.ZodObject.prototype.omit=function(...J){let Y=X.apply(this,J);return Y._def.openapi=void 0,Y}}function i$(D,$){if(D===null||D===void 0||$===null||$===void 0)return D===$;if(D===$||D.valueOf()===$.valueOf())return!0;if(Array.isArray(D)){if(!Array.isArray($))return!1;if(D.length!==$.length)return!1}if(!(D instanceof Object)||!($ instanceof Object))return!1;let F=Object.keys(D);return Object.keys($).every((X)=>F.indexOf(X)!==-1)&&F.every((X)=>i$(D[X],$[X]))}class XP{constructor(){this.buckets=new Map}put(D){let $=this.hashCodeOf(D),F=this.buckets.get($);if(!F){this.buckets.set($,[D]);return}if(!F.some((J)=>i$(J,D)))F.push(D)}contains(D){let $=this.hashCodeOf(D),F=this.buckets.get($);if(!F)return!1;return F.some((X)=>i$(X,D))}values(){return[...this.buckets.values()].flat()}stats(){let D=0,$=0,F=0;for(let J of this.buckets.values())if(D+=1,$+=J.length,J.length>1)F+=1;let X=D/$;return{totalBuckets:D,collisions:F,totalValues:$,hashEffectiveness:X}}hashCodeOf(D){let $=0;if(Array.isArray(D)){for(let F=0;F<D.length;F++)$^=this.hashCodeOf(D[F])*F;return $}if(typeof D==="string"){for(let F=0;F<D.length;F++)$^=D.charCodeAt(F)*F;return $}if(typeof D==="number")return D;if(typeof D==="object")for(let[F,X]of Object.entries(D))$^=this.hashCodeOf(F)+this.hashCodeOf(X!==null&&X!==void 0?X:"");return $}}function O7(D){return D===void 0}function R7(D,$){let F={};return Object.entries(D).forEach(([X,J])=>{F[X]=$(J)}),F}function gn(D,$){let F={};return Object.entries(D).forEach(([X,J])=>{if(!$.some((Y)=>Y===X))F[X]=J}),F}function K3(D,$){let F={};return Object.entries(D).forEach(([X,J])=>{if(!$(J,X))F[X]=J}),F}function $P(D){return D.filter(($)=>!O7($))}var vB=i$;function yn(D){let $=new XP;return D.forEach((F)=>$.put(F)),[...$.values()]}function JP(D){return typeof D==="string"}class hB{constructor(D){this.parents=D,this._definitions=[]}get definitions(){var D,$;return[...($=(D=this.parents)===null||D===void 0?void 0:D.flatMap((X)=>X.definitions))!==null&&$!==void 0?$:[],...this._definitions]}register(D,$){let F=this.schemaWithRefId(D,$);return this._definitions.push({type:"schema",schema:F}),F}registerParameter(D,$){var F,X,J;let Y=this.schemaWithRefId(D,$),G=(F=Y._def.openapi)===null||F===void 0?void 0:F.metadata,B=Y.openapi(Object.assign(Object.assign({},G),{param:Object.assign(Object.assign({},G===null||G===void 0?void 0:G.param),{name:(J=(X=G===null||G===void 0?void 0:G.param)===null||X===void 0?void 0:X.name)!==null&&J!==void 0?J:D})}));return this._definitions.push({type:"parameter",schema:B}),B}registerPath(D){this._definitions.push({type:"route",route:D})}registerWebhook(D){this._definitions.push({type:"webhook",webhook:D})}registerComponent(D,$,F){return this._definitions.push({type:"component",componentType:D,name:$,component:F}),{name:$,ref:{$ref:`#/components/${D}/${$}`}}}schemaWithRefId(D,$){return $.openapi(D)}}class M7{constructor(D){this.message=D}}class A3 extends M7{constructor(D,$){super(D);this.data=$}}class E7 extends M7{constructor(D){super(`Missing parameter data, please specify \`${D.missingField}\` and other OpenAPI parameter props using the \`param\` field of \`ZodSchema.openapi\``);this.data=D}}function K7(D,$){try{return D()}catch(F){if(F instanceof E7)throw new E7(Object.assign(Object.assign({},F.data),$));throw F}}class GP extends M7{constructor(D){super("Unknown zod object type, please specify `type` and other OpenAPI props using `ZodSchema.openapi`.");this.data=D}}class TD{static getMetadata(D){var $;let F=this.unwrapChained(D),X=D._def.openapi?D._def.openapi:F._def.openapi,J=($=D.description)!==null&&$!==void 0?$:F.description;return{_internal:X===null||X===void 0?void 0:X._internal,metadata:Object.assign({description:J},X===null||X===void 0?void 0:X.metadata)}}static getInternalMetadata(D){let $=this.unwrapChained(D),F=D._def.openapi?D._def.openapi:$._def.openapi;return F===null||F===void 0?void 0:F._internal}static getParamMetadata(D){var $,F;let X=this.unwrapChained(D),J=D._def.openapi?D._def.openapi:X._def.openapi,Y=($=D.description)!==null&&$!==void 0?$:X.description;return{_internal:J===null||J===void 0?void 0:J._internal,metadata:Object.assign(Object.assign({},J===null||J===void 0?void 0:J.metadata),{param:Object.assign({description:Y},(F=J===null||J===void 0?void 0:J.metadata)===null||F===void 0?void 0:F.param)})}}static buildSchemaMetadata(D){return K3(gn(D,["param"]),O7)}static buildParameterMetadata(D){return K3(D,O7)}static applySchemaMetadata(D,$){return K3(Object.assign(Object.assign({},D),this.buildSchemaMetadata($)),O7)}static getRefId(D){var $;return($=this.getInternalMetadata(D))===null||$===void 0?void 0:$.refId}static unwrapChained(D){return this.unwrapUntil(D)}static getDefaultValue(D){let $=this.unwrapUntil(D,"ZodDefault");return $===null||$===void 0?void 0:$._def.defaultValue()}static unwrapUntil(D,$){if($&&HD(D,$))return D;if(HD(D,"ZodOptional")||HD(D,"ZodNullable")||HD(D,"ZodBranded"))return this.unwrapUntil(D.unwrap(),$);if(HD(D,"ZodDefault")||HD(D,"ZodReadonly"))return this.unwrapUntil(D._def.innerType,$);if(HD(D,"ZodEffects"))return this.unwrapUntil(D._def.schema,$);if(HD(D,"ZodPipeline"))return this.unwrapUntil(D._def.in,$);return $?void 0:D}static isOptionalSchema(D){return D.isOptional()}}class YP{transform(D,$,F){var X,J;let Y=D._def.type;return Object.assign(Object.assign({},$("array")),{items:F(Y),minItems:(X=D._def.minLength)===null||X===void 0?void 0:X.value,maxItems:(J=D._def.maxLength)===null||J===void 0?void 0:J.value})}}class BP{transform(D){return Object.assign(Object.assign({},D("string")),{pattern:"^d+$"})}}class HP{transform(D,$,F,X,J){let Y=[...D.options.values()],G=Y.map(X);if($)return{oneOf:F(G,$)};return{oneOf:G,discriminator:this.mapDiscriminator(Y,D.discriminator,J)}}mapDiscriminator(D,$,F){if(D.some((J)=>TD.getRefId(J)===void 0))return;let X={};return D.forEach((J)=>{var Y;let G=TD.getRefId(J),B=(Y=J.shape)===null||Y===void 0?void 0:Y[$];if(HD(B,"ZodEnum")||HD(B,"ZodNativeEnum")){Object.values(B.enum).filter(JP).forEach((V)=>{X[V]=F(G)});return}let H=B===null||B===void 0?void 0:B._def.value;if(typeof H!=="string")throw Error(`Discriminator ${$} could not be found in one of the values of a discriminated union`);X[H]=F(G)}),{propertyName:$,mapping:X}}}class WP{transform(D,$){return Object.assign(Object.assign({},$("string")),{enum:D._def.values})}}class QP{transform(D,$,F,X){let Y={allOf:this.flattenIntersectionTypes(D).map(X)};if($)return{anyOf:F([Y],$)};return Y}flattenIntersectionTypes(D){if(!HD(D,"ZodIntersection"))return[D];let $=this.flattenIntersectionTypes(D._def.left),F=this.flattenIntersectionTypes(D._def.right);return[...$,...F]}}class VP{transform(D,$){return Object.assign(Object.assign({},$(typeof D._def.value)),{enum:[D._def.value]})}}function un(D){let F=Object.keys(D).filter((Y)=>typeof D[D[Y]]!=="number").map((Y)=>D[Y]),X=F.filter((Y)=>typeof Y==="number").length,J=X===0?"string":X===F.length?"numeric":"mixed";return{values:F,type:J}}class _P{transform(D,$){let{type:F,values:X}=un(D._def.values);if(F==="mixed")throw new M7("Enum has mixed string and number values, please specify the OpenAPI type manually");return Object.assign(Object.assign({},$(F==="numeric"?"integer":"string")),{enum:X})}}class UP{transform(D,$,F){return Object.assign(Object.assign({},$(D.isInt?"integer":"number")),F(D._def.checks))}}class AP{transform(D,$,F,X){var J;let Y=(J=TD.getInternalMetadata(D))===null||J===void 0?void 0:J.extendedFrom,G=this.requiredKeysOf(D),B=R7(D._def.shape(),X);if(!Y)return Object.assign(Object.assign(Object.assign(Object.assign({},F("object")),{properties:B,default:$}),G.length>0?{required:G}:{}),this.generateAdditionalProperties(D,X));let H=Y.schema;X(H);let W=this.requiredKeysOf(H),V=R7(H===null||H===void 0?void 0:H._def.shape(),X),_=Object.fromEntries(Object.entries(B).filter(([O,C])=>{return!vB(V[O],C)})),U=G.filter((O)=>!W.includes(O)),A=Object.assign(Object.assign(Object.assign(Object.assign({},F("object")),{default:$,properties:_}),U.length>0?{required:U}:{}),this.generateAdditionalProperties(D,X));return{allOf:[{$ref:`#/components/schemas/${Y.refId}`},A]}}generateAdditionalProperties(D,$){let F=D._def.unknownKeys,X=D._def.catchall;if(HD(X,"ZodNever")){if(F==="strict")return{additionalProperties:!1};return{}}return{additionalProperties:$(X)}}requiredKeysOf(D){return Object.entries(D._def.shape()).filter(([$,F])=>!TD.isOptionalSchema(F)).map(([$,F])=>$)}}class KP{transform(D,$,F){let X=D._def.valueType,J=D._def.keyType,Y=F(X);if(HD(J,"ZodEnum")||HD(J,"ZodNativeEnum")){let B=Object.values(J.enum).filter(JP).reduce((H,W)=>Object.assign(Object.assign({},H),{[W]:Y}),{});return Object.assign(Object.assign({},$("object")),{properties:B})}return Object.assign(Object.assign({},$("object")),{additionalProperties:Y})}}class CP{transform(D,$){var F,X,J;let Y=this.getZodStringCheck(D,"regex"),G=(F=this.getZodStringCheck(D,"length"))===null||F===void 0?void 0:F.value,B=Number.isFinite(D.minLength)?(X=D.minLength)!==null&&X!==void 0?X:void 0:void 0,H=Number.isFinite(D.maxLength)?(J=D.maxLength)!==null&&J!==void 0?J:void 0:void 0;return Object.assign(Object.assign({},$("string")),{minLength:G!==null&&G!==void 0?G:B,maxLength:G!==null&&G!==void 0?G:H,format:this.mapStringFormat(D),pattern:Y===null||Y===void 0?void 0:Y.regex.source})}mapStringFormat(D){if(D.isUUID)return"uuid";if(D.isEmail)return"email";if(D.isURL)return"uri";if(D.isDate)return"date";if(D.isDatetime)return"date-time";if(D.isCUID)return"cuid";if(D.isCUID2)return"cuid2";if(D.isULID)return"ulid";if(D.isIP)return"ip";if(D.isEmoji)return"emoji";return}getZodStringCheck(D,$){return D._def.checks.find((F)=>{return F.kind===$})}}class OP{constructor(D){this.versionSpecifics=D}transform(D,$,F){let{items:X}=D._def,J=X.map(F);return Object.assign(Object.assign({},$("array")),this.versionSpecifics.mapTupleItems(J))}}class RP{transform(D,$,F){let J=this.flattenUnionTypes(D).map((Y)=>{let G=this.unwrapNullable(Y);return F(G)});return{anyOf:$(J)}}flattenUnionTypes(D){if(!HD(D,"ZodUnion"))return[D];return D._def.options.flatMap((F)=>this.flattenUnionTypes(F))}unwrapNullable(D){if(HD(D,"ZodNullable"))return this.unwrapNullable(D.unwrap());return D}}class EP{constructor(D){this.versionSpecifics=D,this.objectTransformer=new AP,this.stringTransformer=new CP,this.numberTransformer=new UP,this.bigIntTransformer=new BP,this.literalTransformer=new VP,this.enumTransformer=new WP,this.nativeEnumTransformer=new _P,this.arrayTransformer=new YP,this.unionTransformer=new RP,this.discriminatedUnionTransformer=new HP,this.intersectionTransformer=new QP,this.recordTransformer=new KP,this.tupleTransformer=new OP(D)}transform(D,$,F,X,J){if(HD(D,"ZodNull"))return this.versionSpecifics.nullType;if(HD(D,"ZodUnknown")||HD(D,"ZodAny"))return this.versionSpecifics.mapNullableType(void 0,$);if(HD(D,"ZodObject"))return this.objectTransformer.transform(D,J,(G)=>this.versionSpecifics.mapNullableType(G,$),F);let Y=this.transformSchemaWithoutDefault(D,$,F,X);return Object.assign(Object.assign({},Y),{default:J})}transformSchemaWithoutDefault(D,$,F,X){if(HD(D,"ZodUnknown")||HD(D,"ZodAny"))return this.versionSpecifics.mapNullableType(void 0,$);if(HD(D,"ZodString"))return this.stringTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$));if(HD(D,"ZodNumber"))return this.numberTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$),(Y)=>this.versionSpecifics.getNumberChecks(Y));if(HD(D,"ZodBigInt"))return this.bigIntTransformer.transform((Y)=>this.versionSpecifics.mapNullableType(Y,$));if(HD(D,"ZodBoolean"))return this.versionSpecifics.mapNullableType("boolean",$);if(HD(D,"ZodLiteral"))return this.literalTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$));if(HD(D,"ZodEnum"))return this.enumTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$));if(HD(D,"ZodNativeEnum"))return this.nativeEnumTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$));if(HD(D,"ZodArray"))return this.arrayTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$),F);if(HD(D,"ZodTuple"))return this.tupleTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$),F);if(HD(D,"ZodUnion"))return this.unionTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableOfArray(Y,$),F);if(HD(D,"ZodDiscriminatedUnion"))return this.discriminatedUnionTransformer.transform(D,$,(Y)=>this.versionSpecifics.mapNullableOfArray(Y,$),F,X);if(HD(D,"ZodIntersection"))return this.intersectionTransformer.transform(D,$,(Y)=>this.versionSpecifics.mapNullableOfArray(Y,$),F);if(HD(D,"ZodRecord"))return this.recordTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$),F);if(HD(D,"ZodDate"))return this.versionSpecifics.mapNullableType("string",$);let J=TD.getRefId(D);throw new GP({currentSchema:D._def,schemaName:J})}}class xB{constructor(D,$){this.definitions=D,this.versionSpecifics=$,this.schemaRefs={},this.paramRefs={},this.pathRefs={},this.rawComponents=[],this.openApiTransformer=new EP($),this.sortDefinitions()}generateDocumentData(){return this.definitions.forEach((D)=>this.generateSingle(D)),{components:this.buildComponents(),paths:this.pathRefs}}generateComponents(){return this.definitions.forEach((D)=>this.generateSingle(D)),{components:this.buildComponents()}}buildComponents(){var D,$;let F={};return this.rawComponents.forEach(({componentType:X,name:J,component:Y})=>{var G;(G=F[X])!==null&&G!==void 0||(F[X]={}),F[X][J]=Y}),Object.assign(Object.assign({},F),{schemas:Object.assign(Object.assign({},(D=F.schemas)!==null&&D!==void 0?D:{}),this.schemaRefs),parameters:Object.assign(Object.assign({},($=F.parameters)!==null&&$!==void 0?$:{}),this.paramRefs)})}sortDefinitions(){let D=["schema","parameter","component","route"];this.definitions.sort(($,F)=>{if(!("type"in $)){if(!("type"in F))return 0;return-1}if(!("type"in F))return 1;let X=D.findIndex((Y)=>Y===$.type),J=D.findIndex((Y)=>Y===F.type);return X-J})}generateSingle(D){if(!("type"in D)){this.generateSchemaWithRef(D);return}switch(D.type){case"parameter":this.generateParameterDefinition(D.schema);return;case"schema":this.generateSchemaWithRef(D.schema);return;case"route":this.generateSingleRoute(D.route);return;case"component":this.rawComponents.push(D);return}}generateParameterDefinition(D){let $=TD.getRefId(D),F=this.generateParameter(D);if($)this.paramRefs[$]=F;return F}getParameterRef(D,$){var F,X,J,Y,G;let B=(F=D===null||D===void 0?void 0:D.metadata)===null||F===void 0?void 0:F.param,H=((X=D===null||D===void 0?void 0:D._internal)===null||X===void 0?void 0:X.refId)?this.paramRefs[(J=D._internal)===null||J===void 0?void 0:J.refId]:void 0;if(!((Y=D===null||D===void 0?void 0:D._internal)===null||Y===void 0?void 0:Y.refId)||!H)return;if(B&&H.in!==B.in||($===null||$===void 0?void 0:$.in)&&H.in!==$.in)throw new A3(`Conflicting location for parameter ${H.name}`,{key:"in",values:$P([H.in,$===null||$===void 0?void 0:$.in,B===null||B===void 0?void 0:B.in])});if(B&&H.name!==B.name||($===null||$===void 0?void 0:$.name)&&H.name!==($===null||$===void 0?void 0:$.name))throw new A3("Conflicting names for parameter",{key:"name",values:$P([H.name,$===null||$===void 0?void 0:$.name,B===null||B===void 0?void 0:B.name])});return{$ref:`#/components/parameters/${(G=D._internal)===null||G===void 0?void 0:G.refId}`}}generateInlineParameters(D,$){var F;let X=TD.getMetadata(D),J=(F=X===null||X===void 0?void 0:X.metadata)===null||F===void 0?void 0:F.param,Y=this.getParameterRef(X,{in:$});if(Y)return[Y];if(HD(D,"ZodObject")){let G=D._def.shape();return Object.entries(G).map(([H,W])=>{var V,_;let U=TD.getMetadata(W),A=this.getParameterRef(U,{in:$,name:H});if(A)return A;let O=(V=U===null||U===void 0?void 0:U.metadata)===null||V===void 0?void 0:V.param;if((O===null||O===void 0?void 0:O.name)&&O.name!==H)throw new A3("Conflicting names for parameter",{key:"name",values:[H,O.name]});if((O===null||O===void 0?void 0:O.in)&&O.in!==$)throw new A3(`Conflicting location for parameter ${(_=O.name)!==null&&_!==void 0?_:H}`,{key:"in",values:[$,O.in]});return this.generateParameter(W.openapi({param:{name:H,in:$}}))})}if((J===null||J===void 0?void 0:J.in)&&J.in!==$)throw new A3(`Conflicting location for parameter ${J.name}`,{key:"in",values:[$,J.in]});return[this.generateParameter(D.openapi({param:{in:$}}))]}generateSimpleParameter(D){var $;let F=TD.getParamMetadata(D),X=($=F===null||F===void 0?void 0:F.metadata)===null||$===void 0?void 0:$.param,J=!TD.isOptionalSchema(D)&&!D.isNullable(),Y=this.generateSchemaWithRef(D);return Object.assign({schema:Y,required:J},X?TD.buildParameterMetadata(X):{})}generateParameter(D){var $;let F=TD.getMetadata(D),X=($=F===null||F===void 0?void 0:F.metadata)===null||$===void 0?void 0:$.param,J=X===null||X===void 0?void 0:X.name,Y=X===null||X===void 0?void 0:X.in;if(!J)throw new E7({missingField:"name"});if(!Y)throw new E7({missingField:"in",paramName:J});let G=this.generateSimpleParameter(D);return Object.assign(Object.assign({},G),{in:Y,name:J})}generateSchemaWithMetadata(D){var $;let F=TD.unwrapChained(D),X=TD.getMetadata(D),J=TD.getDefaultValue(D),Y=(($=X===null||X===void 0?void 0:X.metadata)===null||$===void 0?void 0:$.type)?{type:X===null||X===void 0?void 0:X.metadata.type}:this.toOpenAPISchema(F,D.isNullable(),J);return(X===null||X===void 0?void 0:X.metadata)?TD.applySchemaMetadata(Y,X.metadata):K3(Y,O7)}constructReferencedOpenAPISchema(D){var $;let F=TD.getMetadata(D),X=TD.unwrapChained(D),J=TD.getDefaultValue(D),Y=D.isNullable();if(($=F===null||F===void 0?void 0:F.metadata)===null||$===void 0?void 0:$.type)return this.versionSpecifics.mapNullableType(F.metadata.type,Y);return this.toOpenAPISchema(X,Y,J)}generateSimpleSchema(D){var $;let F=TD.getMetadata(D),X=TD.getRefId(D);if(!X||!this.schemaRefs[X])return this.generateSchemaWithMetadata(D);let J=this.schemaRefs[X],Y={$ref:this.generateSchemaRef(X)},G=K3(TD.buildSchemaMetadata(($=F===null||F===void 0?void 0:F.metadata)!==null&&$!==void 0?$:{}),(W,V)=>W===void 0||vB(W,J[V]));if(G.type)return{allOf:[Y,G]};let B=K3(this.constructReferencedOpenAPISchema(D),(W,V)=>W===void 0||vB(W,J[V])),H=TD.applySchemaMetadata(B,G);if(Object.keys(H).length>0)return{allOf:[Y,H]};return Y}generateSchemaWithRef(D){let $=TD.getRefId(D),F=this.generateSimpleSchema(D);if($&&this.schemaRefs[$]===void 0)return this.schemaRefs[$]=F,{$ref:this.generateSchemaRef($)};return F}generateSchemaRef(D){return`#/components/schemas/${D}`}getRequestBody(D){if(!D)return;let{content:$}=D,F=C7(D,["content"]),X=this.getBodyContent($);return Object.assign(Object.assign({},F),{content:X})}getParameters(D){if(!D)return[];let{headers:$}=D,F=this.cleanParameter(D.query),X=this.cleanParameter(D.params),J=this.cleanParameter(D.cookies),Y=K7(()=>F?this.generateInlineParameters(F,"query"):[],{location:"query"}),G=K7(()=>X?this.generateInlineParameters(X,"path"):[],{location:"path"}),B=K7(()=>J?this.generateInlineParameters(J,"cookie"):[],{location:"cookie"}),H=K7(()=>{if(Array.isArray($))return $.flatMap((V)=>this.generateInlineParameters(V,"header"));let W=this.cleanParameter($);return W?this.generateInlineParameters(W,"header"):[]},{location:"header"});return[...G,...Y,...H,...B]}cleanParameter(D){if(!D)return;return HD(D,"ZodEffects")?this.cleanParameter(D._def.schema):D}generatePath(D){let{method:$,path:F,request:X,responses:J}=D,Y=C7(D,["method","path","request","responses"]),G=R7(J,(V)=>{return this.getResponse(V)}),B=K7(()=>this.getParameters(X),{route:`${$} ${F}`}),H=this.getRequestBody(X===null||X===void 0?void 0:X.body);return{[$]:Object.assign(Object.assign(Object.assign(Object.assign({},Y),B.length>0?{parameters:[...Y.parameters||[],...B]}:{}),H?{requestBody:H}:{}),{responses:G})}}generateSingleRoute(D){let $=this.generatePath(D);return this.pathRefs[D.path]=Object.assign(Object.assign({},this.pathRefs[D.path]),$),$}getResponse(D){if(this.isReferenceObject(D))return D;let{content:$,headers:F}=D,X=C7(D,["content","headers"]),J=$?{content:this.getBodyContent($)}:{};if(!F)return Object.assign(Object.assign({},X),J);let Y=HD(F,"ZodObject")?this.getResponseHeaders(F):F;return Object.assign(Object.assign(Object.assign({},X),{headers:Y}),J)}isReferenceObject(D){return"$ref"in D}getResponseHeaders(D){let $=D._def.shape();return R7($,(X)=>this.generateSimpleParameter(X))}getBodyContent(D){return R7(D,($)=>{if(!$||!xn($.schema))return $;let{schema:F}=$,X=C7($,["schema"]),J=this.generateSchemaWithRef(F);return Object.assign({schema:J},X)})}toOpenAPISchema(D,$,F){return this.openApiTransformer.transform(D,$,(X)=>this.generateSchemaWithRef(X),(X)=>this.generateSchemaRef(X),F)}}class MP{get nullType(){return{nullable:!0}}mapNullableOfArray(D,$){if($)return[...D,this.nullType];return D}mapNullableType(D,$){return Object.assign(Object.assign({},D?{type:D}:void 0),$?this.nullType:void 0)}mapTupleItems(D){let $=yn(D);return{items:$.length===1?$[0]:{anyOf:$},minItems:D.length,maxItems:D.length}}getNumberChecks(D){return Object.assign({},...D.map(($)=>{switch($.kind){case"min":return $.inclusive?{minimum:Number($.value)}:{minimum:Number($.value),exclusiveMinimum:!0};case"max":return $.inclusive?{maximum:Number($.value)}:{maximum:Number($.value),exclusiveMaximum:!0};default:return{}}}))}}class gB{constructor(D){let $=new MP;this.generator=new xB(D,$)}generateDocument(D){let $=this.generator.generateDocumentData();return Object.assign(Object.assign({},D),$)}generateComponents(){return this.generator.generateComponents()}}class ZP{get nullType(){return{type:"null"}}mapNullableOfArray(D,$){if($)return[...D,this.nullType];return D}mapNullableType(D,$){if(!D)return{};if($)return{type:Array.isArray(D)?[...D,"null"]:[D,"null"]};return{type:D}}mapTupleItems(D){return{prefixItems:D}}getNumberChecks(D){return Object.assign({},...D.map(($)=>{switch($.kind){case"min":return $.inclusive?{minimum:Number($.value)}:{exclusiveMinimum:Number($.value)};case"max":return $.inclusive?{maximum:Number($.value)}:{exclusiveMaximum:Number($.value)};default:return{}}}))}}function mn(D){return"type"in D&&D.type==="webhook"}class yB{constructor(D){this.definitions=D,this.webhookRefs={};let $=new ZP;this.generator=new xB(this.definitions,$)}generateDocument(D){let $=this.generator.generateDocumentData();return this.definitions.filter(mn).forEach((F)=>this.generateSingleWebhook(F.webhook)),Object.assign(Object.assign(Object.assign({},D),$),{webhooks:this.webhookRefs})}generateComponents(){return this.generator.generateComponents()}generateSingleWebhook(D){let $=this.generator.generatePath(D);return this.webhookRefs[D.path]=Object.assign(Object.assign({},this.webhookRefs[D.path]),$),$}}var mB=(D)=>{let $=D.split("/");if($[0]==="")$.shift();return $},PP=(D)=>{let{groups:$,path:F}=pn(D),X=mB(F);return cn(X,$)},pn=(D)=>{let $=[];return D=D.replace(/\{[^}]+\}/g,(F,X)=>{let J=`@${X}`;return $.push([J,F]),J}),{groups:$,path:D}},cn=(D,$)=>{for(let F=$.length-1;F>=0;F--){let[X]=$[F];for(let J=D.length-1;J>=0;J--)if(D[J].includes(X)){D[J]=D[J].replace(X,$[F][1]);break}}return D},n$={},qP=(D,$)=>{if(D==="*")return"*";let F=D.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(F){let X=`${D}#${$}`;if(!n$[X])if(F[2])n$[X]=$&&$[0]!==":"&&$[0]!=="*"?[X,F[1],new RegExp(`^${F[2]}(?=/${$})`)]:[D,F[1],new RegExp(`^${F[2]}$`)];else n$[X]=[D,F[1],!0];return n$[X]}return null},C3=(D,$)=>{try{return $(D)}catch{return D.replace(/(?:%[0-9A-Fa-f]{2})+/g,(F)=>{try{return $(F)}catch{return F}})}},ln=(D)=>C3(D,decodeURI),pB=(D)=>{let $=D.url,F=$.indexOf("/",$.indexOf(":")+4),X=F;for(;X<$.length;X++){let J=$.charCodeAt(X);if(J===37){let Y=$.indexOf("?",X),G=$.indexOf("#",X),B=Y===-1?G===-1?void 0:G:G===-1?Y:Math.min(Y,G),H=$.slice(F,B);return ln(H.includes("%25")?H.replace(/%25/g,"%2525"):H)}else if(J===63||J===35)break}return $.slice(F,X)};var NP=(D)=>{let $=pB(D);return $.length>1&&$.at(-1)==="/"?$.slice(0,-1):$},S2=(D,$,...F)=>{if(F.length)$=S2($,...F);return`${D?.[0]==="/"?"":"/"}${D}${$==="/"?"":`${D?.at(-1)==="/"?"":"/"}${$?.[0]==="/"?$.slice(1):$}`}`},s$=(D)=>{if(D.charCodeAt(D.length-1)!==63||!D.includes(":"))return null;let $=D.split("/"),F=[],X="";return $.forEach((J)=>{if(J!==""&&!/\:/.test(J))X+="/"+J;else if(/\:/.test(J))if(/\?/.test(J)){if(F.length===0&&X==="")F.push("/");else F.push(X);let Y=J.replace("?","");X+="/"+Y,F.push(X)}else X+="/"+J}),F.filter((J,Y,G)=>G.indexOf(J)===Y)},uB=(D)=>{if(!/[%+]/.test(D))return D;if(D.indexOf("+")!==-1)D=D.replace(/\+/g," ");return D.indexOf("%")!==-1?C3(D,Z7):D},zP=(D,$,F)=>{let X;if(!F&&$&&!/[%+]/.test($)){let G=D.indexOf("?",8);if(G===-1)return;if(!D.startsWith($,G+1))G=D.indexOf(`&${$}`,G+1);while(G!==-1){let B=D.charCodeAt(G+$.length+1);if(B===61){let H=G+$.length+2,W=D.indexOf("&",H);return uB(D.slice(H,W===-1?void 0:W))}else if(B==38||isNaN(B))return"";G=D.indexOf(`&${$}`,G+1)}if(X=/[%+]/.test(D),!X)return}let J={};X??=/[%+]/.test(D);let Y=D.indexOf("?",8);while(Y!==-1){let G=D.indexOf("&",Y+1),B=D.indexOf("=",Y);if(B>G&&G!==-1)B=-1;let H=D.slice(Y+1,B===-1?G===-1?void 0:G:B);if(X)H=uB(H);if(Y=G,H==="")continue;let W;if(B===-1)W="";else if(W=D.slice(B+1,G===-1?void 0:G),X)W=uB(W);if(F){if(!(J[H]&&Array.isArray(J[H])))J[H]=[];J[H].push(W)}else J[H]??=W}return $?J[$]:J},LP=zP,jP=(D,$)=>{return zP(D,$,!0)},Z7=decodeURIComponent;var dn=/^[\w!#$%&'*.^`|~+-]+$/,nn=/^[ !#-:<-[\]-~]*$/,IP=(D)=>{let $=0,F=D.length;while($<F){let X=D.charCodeAt($);if(X!==32&&X!==9)break;$++}while(F>$){let X=D.charCodeAt(F-1);if(X!==32&&X!==9)break;F--}return $===0&&F===D.length?D:D.slice($,F)},cB=(D,$)=>{if($&&D.indexOf($)===-1)return{};let F=D.split(";"),X={};for(let J of F){let Y=J.indexOf("=");if(Y===-1)continue;let G=IP(J.substring(0,Y));if($&&$!==G||!dn.test(G))continue;let B=IP(J.substring(Y+1));if(B.startsWith('"')&&B.endsWith('"'))B=B.slice(1,-1);if(nn.test(B)){if(X[G]=B.indexOf("%")!==-1?C3(B,Z7):B,$)break}}return X};var TP=(D,$,F)=>{let X=D.req.raw.headers.get("Cookie");if(typeof $==="string"){if(!X)return;let Y=$;if(F==="secure")Y="__Secure-"+$;else if(F==="host")Y="__Host-"+$;return cB(X,Y)[Y]}if(!X)return{};return cB(X)};var r$=class extends Error{res;status;constructor(D=500,$){super($?.message,{cause:$?.cause});this.res=$?.res,this.status=D}getResponse(){if(this.res)return new Response(this.res.body,{status:this.status,headers:this.res.headers});return new Response(this.message,{status:this.status})}};var wP=(D,$)=>{return new Response(D,{headers:{"Content-Type":$}}).formData()};var sn=/^application\/([a-z-\.]+\+)?json(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/,rn=/^multipart\/form-data(;\s?boundary=[a-zA-Z0-9'"()+_,\-./:=?]+)?$/,on=/^application\/x-www-form-urlencoded(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/,lB=(D,$)=>{return async(F,X)=>{let J={},Y=F.req.header("Content-Type");switch(D){case"json":if(!Y||!sn.test(Y))break;try{J=await F.req.json()}catch{throw new r$(400,{message:"Malformed JSON in request body"})}break;case"form":{if(!Y||!(rn.test(Y)||on.test(Y)))break;let B;if(F.req.bodyCache.formData)B=await F.req.bodyCache.formData;else try{let W=await F.req.arrayBuffer();B=await wP(W,Y),F.req.bodyCache.formData=B}catch(W){let V="Malformed FormData request.";throw V+=W instanceof Error?` ${W.message}`:` ${String(W)}`,new r$(400,{message:V})}let H=Object.create(null);B.forEach((W,V)=>{if(V.endsWith("[]"))(H[V]??=[]).push(W);else if(Array.isArray(H[V]))H[V].push(W);else if(Object.hasOwn(H,V))H[V]=[H[V],W];else H[V]=W}),J=H;break}case"query":J=Object.fromEntries(Object.entries(F.req.queries()).map(([B,H])=>{return H.length===1?[B,H[0]]:[B,H]}));break;case"param":J=F.req.param();break;case"header":J=F.req.header();break;case"cookie":J=TP(F);break}let G=await $(J,F);if(G instanceof Response)return G;return F.req.addValidatedData(D,G),await X()}};function an(D,$,F,X){return lB(D,async(J,Y)=>{let G=J;if(D==="header"&&"_def"in $||D==="header"&&"_zod"in $){let H=Object.keys("in"in $?$.in.shape:$.shape),W=Object.fromEntries(H.map((V)=>[V.toLowerCase(),V]));G=Object.fromEntries(Object.entries(J).map(([V,_])=>[W[V]||V,_]))}let B=X&&X.validationFunction?await X.validationFunction($,G):await $.safeParseAsync(G);if(F){let H=await F({data:G,...B,target:D},Y);if(H){if(H instanceof Response)return H;if("response"in H)return H.response}}if(!B.success)return Y.json(B,400);return B.data})}var m1=an;var dB=(D,$,F)=>{return(X,J)=>{let Y=-1;return G(0);async function G(B){if(B<=Y)throw Error("next() called multiple times");Y=B;let H,W=!1,V;if(D[B])V=D[B][0][0],X.req.routeIndex=B;else V=B===D.length&&J||void 0;if(V)try{H=await V(X,()=>G(B+1))}catch(_){if(_ instanceof Error&&$)X.error=_,H=await $(_,X),W=!0;else throw _}else if(X.finalized===!1&&F)H=await F(X);if(H&&(X.finalized===!1||W))X.res=H;return X}}};var SP=Symbol();var fP=async(D,$=Object.create(null))=>{let{all:F=!1,dot:X=!1}=$,Y=(D instanceof o$?D.raw.headers:D.headers).get("Content-Type");if(Y?.startsWith("multipart/form-data")||Y?.startsWith("application/x-www-form-urlencoded"))return tn(D,{all:F,dot:X});return{}};async function tn(D,$){let F=await D.formData();if(F)return en(F,$);return{}}function en(D,$){let F=Object.create(null);if(D.forEach((X,J)=>{if(!($.all||J.endsWith("[]")))F[J]=X;else Ds(F,J,X)}),$.dot)Object.entries(F).forEach(([X,J])=>{if(X.includes("."))$s(F,X,J),delete F[X]});return F}var Ds=(D,$,F)=>{if(D[$]!==void 0)if(Array.isArray(D[$]))D[$].push(F);else D[$]=[D[$],F];else if(!$.endsWith("[]"))D[$]=F;else D[$]=[F]},$s=(D,$,F)=>{if(/(?:^|\.)__proto__\./.test($))return;let X=D,J=$.split(".");J.forEach((Y,G)=>{if(G===J.length-1)X[Y]=F;else{if(!X[Y]||typeof X[Y]!=="object"||Array.isArray(X[Y])||X[Y]instanceof File)X[Y]=Object.create(null);X=X[Y]}})};var bP=(D)=>C3(D,Z7),o$=class{raw;#D;#$;routeIndex=0;path;bodyCache={};constructor(D,$="/",F=[[]]){this.raw=D,this.path=$,this.#$=F,this.#D={}}param(D){return D?this.#X(D):this.#G()}#X(D){let $=this.#$[0][this.routeIndex][1][D],F=this.#J($);return F&&/\%/.test(F)?bP(F):F}#G(){let D={},$=Object.keys(this.#$[0][this.routeIndex][1]);for(let F of $){let X=this.#J(this.#$[0][this.routeIndex][1][F]);if(X!==void 0)D[F]=/\%/.test(X)?bP(X):X}return D}#J(D){return this.#$[1]?this.#$[1][D]:D}query(D){return LP(this.url,D)}queries(D){return jP(this.url,D)}header(D){if(D)return this.raw.headers.get(D)??void 0;let $={};return this.raw.headers.forEach((F,X)=>{$[X]=F}),$}async parseBody(D){return fP(this,D)}#F=(D)=>{let{bodyCache:$,raw:F}=this,X=$[D];if(X)return X;let J=Object.keys($)[0];if(J)return $[J].then((Y)=>{if(J==="json")Y=JSON.stringify(Y);return new Response(Y)[D]()});return $[D]=F[D]()};json(){return this.#F("text").then((D)=>JSON.parse(D))}text(){return this.#F("text")}arrayBuffer(){return this.#F("arrayBuffer")}blob(){return this.#F("blob")}formData(){return this.#F("formData")}addValidatedData(D,$){this.#D[D]=$}valid(D){return this.#D[D]}get url(){return this.raw.url}get method(){return this.raw.method}get[SP](){return this.#$}get matchedRoutes(){return this.#$[0].map(([[,D]])=>D)}get routePath(){return this.#$[0].map(([[,D]])=>D)[this.routeIndex].path}};var a$={Stringify:1,BeforeStream:2,Stream:3},Fs=(D,$)=>{let F=new String(D);return F.isEscaped=!0,F.callbacks=$,F};var P7=async(D,$,F,X,J)=>{if(typeof D==="object"&&!(D instanceof String)){if(!(D instanceof Promise))D=D.toString();if(D instanceof Promise)D=await D}let Y=D.callbacks;if(!Y?.length)return Promise.resolve(D);if(J)J[0]+=D;else J=[D];let G=Promise.all(Y.map((B)=>B({phase:$,buffer:J,context:X}))).then((B)=>Promise.all(B.filter(Boolean).map((H)=>P7(H,$,!1,X,J))).then(()=>J[0]));if(F)return Fs(await G,Y);else return G};var kP="text/plain; charset=UTF-8",iB=(D,$)=>{return{"Content-Type":D,...$}},q7=(D,$)=>new Response(D,$),vP=class{#D;#$;env={};#X;finalized=!1;error;#G;#J;#F;#W;#H;#B;#Y;#V;#_;constructor(D,$){if(this.#D=D,$)this.#J=$.executionCtx,this.env=$.env,this.#B=$.notFoundHandler,this.#_=$.path,this.#V=$.matchResult}get req(){return this.#$??=new o$(this.#D,this.#_,this.#V),this.#$}get event(){if(this.#J&&"respondWith"in this.#J)return this.#J;else throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#J)return this.#J;else throw Error("This context has no ExecutionContext")}get res(){return this.#F||=q7(null,{headers:this.#Y??=new Headers})}set res(D){if(this.#F&&D){D=q7(D.body,D);for(let[$,F]of this.#F.headers.entries()){if($==="content-type")continue;if($==="set-cookie"){let X=this.#F.headers.getSetCookie();D.headers.delete("set-cookie");for(let J of X)D.headers.append("set-cookie",J)}else D.headers.set($,F)}}this.#F=D,this.finalized=!0}render=(...D)=>{return this.#H??=($)=>this.html($),this.#H(...D)};setLayout=(D)=>this.#W=D;getLayout=()=>this.#W;setRenderer=(D)=>{this.#H=D};header=(D,$,F)=>{if(this.finalized)this.#F=q7(this.#F.body,this.#F);let X=this.#F?this.#F.headers:this.#Y??=new Headers;if($===void 0)X.delete(D);else if(F?.append)X.append(D,$);else X.set(D,$)};status=(D)=>{this.#G=D};set=(D,$)=>{this.#X??=new Map,this.#X.set(D,$)};get=(D)=>{return this.#X?this.#X.get(D):void 0};get var(){if(!this.#X)return{};return Object.fromEntries(this.#X)}#Q(D,$,F){let X=this.#F?new Headers(this.#F.headers):this.#Y??new Headers;if(typeof $==="object"&&"headers"in $){let Y=$.headers instanceof Headers?$.headers:new Headers($.headers);for(let[G,B]of Y)if(G.toLowerCase()==="set-cookie")X.append(G,B);else X.set(G,B)}if(F)for(let[Y,G]of Object.entries(F))if(typeof G==="string")X.set(Y,G);else{X.delete(Y);for(let B of G)X.append(Y,B)}let J=typeof $==="number"?$:$?.status??this.#G;return q7(D,{status:J,headers:X})}newResponse=(...D)=>this.#Q(...D);body=(D,$,F)=>this.#Q(D,$,F);text=(D,$,F)=>{return!this.#Y&&!this.#G&&!$&&!F&&!this.finalized?new Response(D):this.#Q(D,$,iB(kP,F))};json=(D,$,F)=>{return this.#Q(JSON.stringify(D),$,iB("application/json",F))};html=(D,$,F)=>{let X=(J)=>this.#Q(J,$,iB("text/html; charset=UTF-8",F));return typeof D==="object"?P7(D,a$.Stringify,!1,{}).then(X):X(D)};redirect=(D,$)=>{let F=String(D);return this.header("Location",!/[^\x00-\xFF]/.test(F)?F:encodeURI(F)),this.newResponse(null,$??302)};notFound=()=>{return this.#B??=()=>q7(),this.#B(this)}};var qD="ALL",hP="all",xP=["get","post","put","delete","options","patch"],t$="Can not add a route since the matcher is already built.",e$=class extends Error{};var gP="__COMPOSED_HANDLER";var Xs=(D)=>{return D.text("404 Not Found",404)},yP=(D,$)=>{if("getResponse"in D){let F=D.getResponse();return $.newResponse(F.body,F)}return console.error(D),$.text("Internal Server Error",500)},uP=class D{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#D="/";routes=[];constructor($={}){[...xP,hP].forEach((Y)=>{this[Y]=(G,...B)=>{if(typeof G==="string")this.#D=G;else this.#G(Y,this.#D,G);return B.forEach((H)=>{this.#G(Y,this.#D,H)}),this}}),this.on=(Y,G,...B)=>{for(let H of[G].flat()){this.#D=H;for(let W of[Y].flat())B.map((V)=>{this.#G(W.toUpperCase(),this.#D,V)})}return this},this.use=(Y,...G)=>{if(typeof Y==="string")this.#D=Y;else this.#D="*",G.unshift(Y);return G.forEach((B)=>{this.#G(qD,this.#D,B)}),this};let{strict:X,...J}=$;Object.assign(this,J),this.getPath=X??!0?$.getPath??pB:NP}#$(){let $=new D({router:this.router,getPath:this.getPath});return $.errorHandler=this.errorHandler,$.#X=this.#X,$.routes=this.routes,$}#X=Xs;errorHandler=yP;route($,F){let X=this.basePath($);return F.routes.map((J)=>{let Y;if(F.errorHandler===yP)Y=J.handler;else Y=async(G,B)=>(await dB([],F.errorHandler)(G,()=>J.handler(G,B))).res,Y[gP]=J.handler;X.#G(J.method,J.path,Y)}),this}basePath($){let F=this.#$();return F._basePath=S2(this._basePath,$),F}onError=($)=>{return this.errorHandler=$,this};notFound=($)=>{return this.#X=$,this};mount($,F,X){let J,Y;if(X)if(typeof X==="function")Y=X;else if(Y=X.optionHandler,X.replaceRequest===!1)J=(H)=>H;else J=X.replaceRequest;let G=Y?(H)=>{let W=Y(H);return Array.isArray(W)?W:[W]}:(H)=>{let W=void 0;try{W=H.executionCtx}catch{}return[H.env,W]};J||=(()=>{let H=S2(this._basePath,$),W=H==="/"?0:H.length;return(V)=>{let _=new URL(V.url);return _.pathname=_.pathname.slice(W)||"/",new Request(_,V)}})();let B=async(H,W)=>{let V=await F(J(H.req.raw),...G(H));if(V)return V;await W()};return this.#G(qD,S2($,"*"),B),this}#G($,F,X){$=$.toUpperCase(),F=S2(this._basePath,F);let J={basePath:this._basePath,path:F,method:$,handler:X};this.router.add($,F,[X,J]),this.routes.push(J)}#J($,F){if($ instanceof Error)return this.errorHandler($,F);throw $}#F($,F,X,J){if(J==="HEAD")return(async()=>new Response(null,await this.#F($,F,X,"GET")))();let Y=this.getPath($,{env:X}),G=this.router.match(J,Y),B=new vP($,{path:Y,matchResult:G,env:X,executionCtx:F,notFoundHandler:this.#X});if(G[0].length===1){let W;try{W=G[0][0][0][0](B,async()=>{B.res=await this.#X(B)})}catch(V){return this.#J(V,B)}return W instanceof Promise?W.then((V)=>V||(B.finalized?B.res:this.#X(B))).catch((V)=>this.#J(V,B)):W??this.#X(B)}let H=dB(G[0],this.errorHandler,this.#X);return(async()=>{try{let W=await H(B);if(!W.finalized)throw Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return W.res}catch(W){return this.#J(W,B)}})()}fetch=($,...F)=>{return this.#F($,F[1],F[0],$.method)};request=($,F,X,J)=>{if($ instanceof Request)return this.fetch(F?new Request($,F):$,X,J);return $=$.toString(),this.fetch(new Request(/^https?:\/\//.test($)?$:`http://localhost${S2("/",$)}`,F),X,J)};fire=()=>{addEventListener("fetch",($)=>{$.respondWith(this.#F($.request,$,void 0,$.request.method))})}};var N7=[];function DF(D,$){let F=this.buildAllMatchers(),X=(J,Y)=>{let G=F[J]||F[qD],B=G[2][Y];if(B)return B;let H=Y.match(G[0]);if(!H)return[[],N7];let W=H.indexOf("",1);return[G[1][W],H]};return this.match=X,X(D,$)}var $F="[^/]+",z7=".*",L7="(?:|/.*)",p1=Symbol(),Js=new Set(".\\+*[^]$()");function Gs(D,$){if(D.length===1)return $.length===1?D<$?-1:1:-1;if($.length===1)return 1;if(D===z7||D===L7)return 1;else if($===z7||$===L7)return-1;if(D===$F)return 1;else if($===$F)return-1;return D.length===$.length?D<$?-1:1:$.length-D.length}var mP=class D{#D;#$;#X=Object.create(null);insert($,F,X,J,Y){if($.length===0){if(this.#D!==void 0)throw p1;if(Y)return;this.#D=F;return}let[G,...B]=$,H=G==="*"?B.length===0?["","",z7]:["","",$F]:G==="/*"?["","",L7]:G.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),W;if(H){let V=H[1],_=H[2]||$F;if(V&&H[2]){if(_===".*")throw p1;if(_=_.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(_))throw p1}if(W=this.#X[_],!W){if(Object.keys(this.#X).some((U)=>U!==z7&&U!==L7))throw p1;if(Y)return;if(W=this.#X[_]=new D,V!=="")W.#$=J.varIndex++}if(!Y&&V!=="")X.push([V,W.#$])}else if(W=this.#X[G],!W){if(Object.keys(this.#X).some((V)=>V.length>1&&V!==z7&&V!==L7))throw p1;if(Y)return;W=this.#X[G]=new D}W.insert(B,F,X,J,Y)}buildRegExpStr(){let F=Object.keys(this.#X).sort(Gs).map((X)=>{let J=this.#X[X];return(typeof J.#$==="number"?`(${X})@${J.#$}`:Js.has(X)?`\\${X}`:X)+J.buildRegExpStr()});if(typeof this.#D==="number")F.unshift(`#${this.#D}`);if(F.length===0)return"";if(F.length===1)return F[0];return"(?:"+F.join("|")+")"}};var pP=class{#D={varIndex:0};#$=new mP;insert(D,$,F){let X=[],J=[];for(let G=0;;){let B=!1;if(D=D.replace(/\{[^}]+\}/g,(H)=>{let W=`@\\${G}`;return J[G]=[W,H],G++,B=!0,W}),!B)break}let Y=D.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let G=J.length-1;G>=0;G--){let[B]=J[G];for(let H=Y.length-1;H>=0;H--)if(Y[H].indexOf(B)!==-1){Y[H]=Y[H].replace(B,J[G][1]);break}}return this.#$.insert(Y,$,X,this.#D,F),X}buildRegExp(){let D=this.#$.buildRegExpStr();if(D==="")return[/^$/,[],[]];let $=0,F=[],X=[];return D=D.replace(/#(\d+)|@(\d+)|\.\*\$/g,(J,Y,G)=>{if(Y!==void 0)return F[++$]=Number(Y),"$()";if(G!==void 0)return X[Number(G)]=++$,"";return""}),[new RegExp(`^${D}`),F,X]}};var Ys=[/^$/,[],Object.create(null)],cP=Object.create(null);function lP(D){return cP[D]??=new RegExp(D==="*"?"":`^${D.replace(/\/\*$|([.\\+*[^\]$()])/g,($,F)=>F?`\\${F}`:"(?:|/.*)")}$`)}function Bs(){cP=Object.create(null)}function Hs(D){let $=new pP,F=[];if(D.length===0)return Ys;let X=D.map((W)=>[!/\*|\/:/.test(W[0]),...W]).sort(([W,V],[_,U])=>W?1:_?-1:V.length-U.length),J=Object.create(null);for(let W=0,V=-1,_=X.length;W<_;W++){let[U,A,O]=X[W];if(U)J[A]=[O.map(([K])=>[K,Object.create(null)]),N7];else V++;let C;try{C=$.insert(A,V,U)}catch(K){throw K===p1?new e$(A):K}if(U)continue;F[V]=O.map(([K,R])=>{let P=Object.create(null);R-=1;for(;R>=0;R--){let[q,w]=C[R];P[q]=w}return[K,P]})}let[Y,G,B]=$.buildRegExp();for(let W=0,V=F.length;W<V;W++)for(let _=0,U=F[W].length;_<U;_++){let A=F[W][_]?.[1];if(!A)continue;let O=Object.keys(A);for(let C=0,K=O.length;C<K;C++)A[O[C]]=B[A[O[C]]]}let H=[];for(let W in G)H[W]=F[G[W]];return[Y,H,J]}function O3(D,$){if(!D)return;for(let F of Object.keys(D).sort((X,J)=>J.length-X.length))if(lP(F).test($))return[...D[F]];return}var FF=class{name="RegExpRouter";#D;#$;constructor(){this.#D={[qD]:Object.create(null)},this.#$={[qD]:Object.create(null)}}add(D,$,F){let X=this.#D,J=this.#$;if(!X||!J)throw Error(t$);if(!X[D])[X,J].forEach((B)=>{B[D]=Object.create(null),Object.keys(B[qD]).forEach((H)=>{B[D][H]=[...B[qD][H]]})});if($==="/*")$="*";let Y=($.match(/\/:/g)||[]).length;if(/\*$/.test($)){let B=lP($);if(D===qD)Object.keys(X).forEach((H)=>{X[H][$]||=O3(X[H],$)||O3(X[qD],$)||[]});else X[D][$]||=O3(X[D],$)||O3(X[qD],$)||[];Object.keys(X).forEach((H)=>{if(D===qD||D===H)Object.keys(X[H]).forEach((W)=>{B.test(W)&&X[H][W].push([F,Y])})}),Object.keys(J).forEach((H)=>{if(D===qD||D===H)Object.keys(J[H]).forEach((W)=>B.test(W)&&J[H][W].push([F,Y]))});return}let G=s$($)||[$];for(let B=0,H=G.length;B<H;B++){let W=G[B];Object.keys(J).forEach((V)=>{if(D===qD||D===V)J[V][W]||=[...O3(X[V],W)||O3(X[qD],W)||[]],J[V][W].push([F,Y-H+B+1])})}}match=DF;buildAllMatchers(){let D=Object.create(null);return Object.keys(this.#$).concat(Object.keys(this.#D)).forEach(($)=>{D[$]||=this.#X($)}),this.#D=this.#$=void 0,Bs(),D}#X(D){let $=[],F=D===qD;if([this.#D,this.#$].forEach((X)=>{let J=X[D]?Object.keys(X[D]).map((Y)=>[Y,X[D][Y]]):[];if(J.length!==0)F||=!0,$.push(...J);else if(D!==qD)$.push(...Object.keys(X[qD]).map((Y)=>[Y,X[qD][Y]]))}),!F)return null;else return Hs($)}};var Ws=class{name="PreparedRegExpRouter";#D;#$;constructor(D,$){this.#D=D,this.#$=$}#X(D,$){let F=this.#D[D];F[1].forEach((X)=>X&&X.push($)),Object.values(F[2]).forEach((X)=>X[0].push($))}#G(D,$,F,X,J){let Y=this.#D[D];if(!J)Y[2][$][0].push([F,{}]);else X.forEach((G)=>{if(typeof G==="number")Y[1][G].push([F,J]);else Y[2][G||$][0].push([F,J])})}add(D,$,F){if(!this.#D[D]){let J=this.#D[qD],Y={};for(let G in J[2])Y[G]=[J[2][G][0].slice(),N7];this.#D[D]=[J[0],J[1].map((G)=>Array.isArray(G)?G.slice():0),Y]}if($==="/*"||$==="*"){let J=[F,{}];if(D===qD)for(let Y in this.#D)this.#X(Y,J);else this.#X(D,J);return}let X=this.#$[$];if(!X)throw Error(`Path ${$} is not registered`);for(let[J,Y]of X)if(D===qD)for(let G in this.#D)this.#G(G,$,F,J,Y);else this.#G(D,$,F,J,Y)}buildAllMatchers(){return this.#D}match=DF};var nB=class{name="SmartRouter";#D=[];#$=[];constructor(D){this.#D=D.routers}add(D,$,F){if(!this.#$)throw Error(t$);this.#$.push([D,$,F])}match(D,$){if(!this.#$)throw Error("Fatal error");let F=this.#D,X=this.#$,J=F.length,Y=0,G;for(;Y<J;Y++){let B=F[Y];try{for(let H=0,W=X.length;H<W;H++)B.add(...X[H]);G=B.match(D,$)}catch(H){if(H instanceof e$)continue;throw H}this.match=B.match.bind(B),this.#D=[B],this.#$=void 0;break}if(Y===J)throw Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,G}get activeRouter(){if(this.#$||this.#D.length!==1)throw Error("No active router has been determined yet.");return this.#D[0]}};var j7=Object.create(null),Qs=(D)=>{for(let $ in D)return!0;return!1},dP=class D{#D;#$;#X;#G=0;#J=j7;constructor($,F,X){if(this.#$=X||Object.create(null),this.#D=[],$&&F){let J=Object.create(null);J[$]={handler:F,possibleKeys:[],score:0},this.#D=[J]}this.#X=[]}insert($,F,X){this.#G=++this.#G;let J=this,Y=PP(F),G=[];for(let B=0,H=Y.length;B<H;B++){let W=Y[B],V=Y[B+1],_=qP(W,V),U=Array.isArray(_)?_[0]:W;if(U in J.#$){if(J=J.#$[U],_)G.push(_[1]);continue}if(J.#$[U]=new D,_)J.#X.push(_),G.push(_[1]);J=J.#$[U]}return J.#D.push({[$]:{handler:X,possibleKeys:G.filter((B,H,W)=>W.indexOf(B)===H),score:this.#G}}),J}#F($,F,X,J,Y){for(let G=0,B=F.#D.length;G<B;G++){let H=F.#D[G],W=H[X]||H[qD],V={};if(W!==void 0){if(W.params=Object.create(null),$.push(W),J!==j7||Y&&Y!==j7)for(let _=0,U=W.possibleKeys.length;_<U;_++){let A=W.possibleKeys[_],O=V[W.score];W.params[A]=Y?.[A]&&!O?Y[A]:J[A]??Y?.[A],V[W.score]=!0}}}}search($,F){let X=[];this.#J=j7;let Y=[this],G=mB(F),B=[],H=G.length,W=null;for(let V=0;V<H;V++){let _=G[V],U=V===H-1,A=[];for(let C=0,K=Y.length;C<K;C++){let R=Y[C],P=R.#$[_];if(P)if(P.#J=R.#J,U){if(P.#$["*"])this.#F(X,P.#$["*"],$,R.#J);this.#F(X,P,$,R.#J)}else A.push(P);for(let q=0,w=R.#X.length;q<w;q++){let S=R.#X[q],L=R.#J===j7?{}:{...R.#J};if(S==="*"){let WD=R.#$["*"];if(WD)this.#F(X,WD,$,R.#J),WD.#J=L,A.push(WD);continue}let[N,j,c]=S;if(!_&&!(c instanceof RegExp))continue;let XD=R.#$[N];if(c instanceof RegExp){if(W===null){W=Array(H);let cD=F[0]==="/"?1:0;for(let f2=0;f2<H;f2++)W[f2]=cD,cD+=G[f2].length+1}let WD=F.substring(W[V]),d=c.exec(WD);if(d){if(L[j]=d[0],this.#F(X,XD,$,R.#J,L),Qs(XD.#$)){XD.#J=L;let cD=d[0].match(/\//)?.length??0;(B[cD]||=[]).push(XD)}continue}}if(c===!0||c.test(_))if(L[j]=_,U){if(this.#F(X,XD,$,L,R.#J),XD.#$["*"])this.#F(X,XD.#$["*"],$,L,R.#J)}else XD.#J=L,A.push(XD)}}let O=B.shift();Y=O?A.concat(O):A}if(X.length>1)X.sort((V,_)=>{return V.score-_.score});return[X.map(({handler:V,params:_})=>[V,_])]}};var sB=class{name="TrieRouter";#D;constructor(){this.#D=new dP}add(D,$,F){let X=s$($);if(X){for(let J=0,Y=X.length;J<Y;J++)this.#D.insert(D,X[J],F);return}this.#D.insert(D,$,F)}match(D,$){return this.#D.search(D,$)}};var rB=class extends uP{constructor(D={}){super(D);this.router=D.router??new nB({routers:[new FF,new sB]})}};mD();var B2=class D extends rB{openAPIRegistry;defaultHook;constructor($){super($);this.openAPIRegistry=new hB,this.defaultHook=$?.defaultHook}openapi=({middleware:$,hide:F,...X},J,Y=this.defaultHook)=>{if(!F)this.openAPIRegistry.registerPath(X);let G=[];if(X.request?.query){let W=m1("query",X.request.query,Y);G.push(W)}if(X.request?.params){let W=m1("param",X.request.params,Y);G.push(W)}if(X.request?.headers){let W=m1("header",X.request.headers,Y);G.push(W)}if(X.request?.cookies){let W=m1("cookie",X.request.cookies,Y);G.push(W)}let B=X.request?.body?.content;if(B)for(let W of Object.keys(B)){if(!B[W])continue;let V=B[W].schema;if(!(V instanceof YD))continue;if(nP(W)){let _=m1("json",V,Y);if(X.request?.body?.required)G.push(_);else{let U=async(A,O)=>{if(A.req.header("content-type")){if(nP(A.req.header("content-type")))return await _(A,O)}A.req.addValidatedData("json",{}),await O()};G.push(U)}}if(sP(W)){let _=m1("form",V,Y);if(X.request?.body?.required)G.push(_);else{let U=async(A,O)=>{if(A.req.header("content-type")){if(sP(A.req.header("content-type")))return await _(A,O)}A.req.addValidatedData("form",{}),await O()};G.push(U)}}}let H=$?Array.isArray($)?$:[$]:[];return this.on([X.method],X.path.replaceAll(/\/{(.+?)}/g,"/:$1"),...H,...G,J),this};getOpenAPIDocument=($)=>{let X=new gB(this.openAPIRegistry.definitions).generateDocument($);return this._basePath?iP(X,this._basePath):X};getOpenAPI31Document=($)=>{let X=new yB(this.openAPIRegistry.definitions).generateDocument($);return this._basePath?iP(X,this._basePath):X};doc=($,F)=>{return this.get($,(X)=>{let J=typeof F==="function"?F(X):F;try{let Y=this.getOpenAPIDocument(J);return X.json(Y)}catch(Y){return X.json(Y,500)}})};doc31=($,F)=>{return this.get($,(X)=>{let J=typeof F==="function"?F(X):F;try{let Y=this.getOpenAPI31Document(J);return X.json(Y)}catch(Y){return X.json(Y,500)}})};route($,F){let X=$.replaceAll(/:([^\/]+)/g,"{$1}");if(super.route($,F),!(F instanceof D))return this;return F.openAPIRegistry.definitions.forEach((J)=>{switch(J.type){case"component":return this.openAPIRegistry.registerComponent(J.componentType,J.name,J.component);case"route":{this.openAPIRegistry.registerPath({...J.route,path:S2(X,F._basePath.replaceAll(/:([^\/]+)/g,"{$1}"),J.route.path)});return}case"webhook":{this.openAPIRegistry.registerWebhook({...J.webhook,path:S2(X,F._basePath.replaceAll(/:([^\/]+)/g,"{$1}"),J.webhook.path)});return}case"schema":return this.openAPIRegistry.register(J.schema._def.openapi._internal.refId,J.schema);case"parameter":return this.openAPIRegistry.registerParameter(J.schema._def.openapi._internal.refId,J.schema);default:throw Error(`Unknown registry type: ${J}`)}}),this}basePath($){return new D({...super.basePath($),defaultHook:this.defaultHook})}};FP(Q);function iP(D,$){let F={};return Object.keys(D.paths).forEach((X)=>{F[S2($.replaceAll(/:([^\/]+)/g,"{$1}"),X)]=D.paths[X]}),{...D,paths:F}}function nP(D){return/^application\/([a-z-\.]+\+)?json/.test(D)}function sP(D){return D.startsWith("multipart/form-data")||D.startsWith("application/x-www-form-urlencoded")}mD();var rP=[["--theme-","--scalar-"],["--sidebar-","--scalar-sidebar-"]],Vs=rP.map(([D])=>D);function oB(D){if(!Vs.some((F)=>D.includes(F)))return D;return console.warn("DEPRECATION WARNING: It looks like you're using legacy CSS variables in your custom CSS string. Please migrate them to use the updated prefixes. See https://github.com/scalar/scalar/blob/main/documentation/themes.md#theme-prefix-changes"),rP.reduce((F,[X,J])=>F.replaceAll(X,J),D)}var _s=Q.enum(["alternate","default","moon","purple","solarized","bluePlanet","deepSpace","saturn","kepler","elysiajs","fastify","mars","none"]),Us=Q.enum(["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]),As=Q.enum(["adonisjs","docusaurus","dotnet","elysiajs","express","fastapi","fastify","go","hono","html","laravel","litestar","nestjs","nextjs","nitro","nuxt","platformatic","react","rust","vue"]).nullable(),tB=Q.object({url:Q.string().optional(),content:Q.union([Q.string(),Q.record(Q.any()),Q.function().returns(Q.record(Q.any())),Q.null()]).optional(),title:Q.string().optional(),slug:Q.string().optional()}),Ks=Q.object({basePath:Q.string()}),aP=Q.object({authentication:Q.any().optional(),baseServerURL:Q.string().optional(),hideClientButton:Q.boolean().optional().default(!1).catch(!1),proxyUrl:Q.string().optional(),searchHotKey:Us.optional(),servers:Q.array(Q.any()).optional(),showSidebar:Q.boolean().optional().default(!0).catch(!0),spec:tB.optional(),theme:_s.optional().default("default").catch("default"),_integration:As.optional()}),oP="https://api.scalar.com/request-proxy",aB="https://proxy.scalar.com",tP=aP.merge(Q.object({layout:Q.enum(["modern","classic"]).optional().default("modern").catch("modern"),proxy:Q.string().optional(),isEditable:Q.boolean().optional().default(!1).catch(!1),hideModels:Q.boolean().optional().default(!1).catch(!1),hideDownloadButton:Q.boolean().optional().default(!1).catch(!1),hideTestRequestButton:Q.boolean().optional().default(!1).catch(!1),hideSearch:Q.boolean().optional().default(!1).catch(!1),darkMode:Q.boolean().optional(),forceDarkModeState:Q.enum(["dark","light"]).optional(),hideDarkModeToggle:Q.boolean().optional().default(!1).catch(!1),metaData:Q.any().optional(),favicon:Q.string().optional(),hiddenClients:Q.union([Q.record(Q.union([Q.boolean(),Q.array(Q.string())])),Q.array(Q.string()),Q.literal(!0)]).optional(),defaultHttpClient:Q.object({targetKey:Q.custom(),clientKey:Q.string()}).optional(),customCss:Q.string().optional(),onSpecUpdate:Q.function().args(Q.string()).returns(Q.void()).optional(),onServerChange:Q.function().args(Q.string()).returns(Q.void()).optional(),pathRouting:Ks.optional(),generateHeadingSlug:Q.function().args(Q.object({slug:Q.string().default("headingSlug")})).returns(Q.string()).optional(),generateModelSlug:Q.function().args(Q.object({name:Q.string().default("modelName")})).returns(Q.string()).optional(),generateTagSlug:Q.function().args(Q.object({name:Q.string().default("tagName")})).returns(Q.string()).optional(),generateOperationSlug:Q.function().args(Q.object({path:Q.string(),operationId:Q.string().optional(),method:Q.string(),summary:Q.string().optional()})).returns(Q.string()).optional(),generateWebhookSlug:Q.function().args(Q.object({name:Q.string(),method:Q.string().optional()})).returns(Q.string()).optional(),onLoaded:Q.function().returns(Q.void()).optional(),redirect:Q.function().args(Q.string()).returns(Q.string().nullable().optional()).optional(),withDefaultFonts:Q.boolean().optional().default(!0).catch(!0),defaultOpenAllTags:Q.boolean().optional(),tagsSorter:Q.union([Q.literal("alpha"),Q.function().args(Q.any(),Q.any()).returns(Q.number())]).optional(),operationsSorter:Q.union([Q.literal("alpha"),Q.literal("method"),Q.function().args(Q.any(),Q.any()).returns(Q.number())]).optional()})),Cs=tP.merge(Q.object({spec:Q.object({sources:Q.array(tB)})})),eP=(D)=>{let $={...D};if($.customCss)$.customCss=oB($.customCss);if($.proxy){if(console.warn("[DEPRECATED] You\u2019re using the deprecated 'proxy' attribute, rename it to 'proxyUrl' or update the package."),!$.proxyUrl)$.proxyUrl=$.proxy;delete $.proxy}if($.proxyUrl===oP)console.warn(`[DEPRECATED] Warning: configuration.proxyUrl points to our old proxy (${oP}).`),console.warn(`[DEPRECATED] We are overwriting the value and use the new proxy URL (${aB}) instead.`),console.warn(`[DEPRECATED] Action Required: You should manually update your configuration to use the new URL (${aB}). Read more: https://github.com/scalar/scalar`),$.proxyUrl=aB;return $},eB=tP.transform(eP),Os=Cs.transform(eP);mD();var DH=Q.object({cdn:Q.string().optional().default("https://cdn.jsdelivr.net/npm/@scalar/api-reference"),pageTitle:Q.string().optional().default("Scalar API Reference")});var Dq=(D,$="")=>{let{cdn:F,pageTitle:X,...J}=D,Y=DH.parse({cdn:F,pageTitle:X,customTheme:$}),G=eB.parse(J);return`
417
+ <!DOCTYPE html>
418
+ <html>
419
+ <head>
420
+ <title>${Y.pageTitle}</title>
421
+ <meta charset="utf-8" />
422
+ <meta
423
+ name="viewport"
424
+ content="width=device-width, initial-scale=1" />
425
+ <style>
426
+ ${D.theme?"":$}
427
+ </style>
428
+ </head>
429
+ <body>
430
+ ${Rs(G,Y.cdn)}
431
+ </body>
432
+ </html>
433
+ `};function Rs(D,$){return`
434
+ <script
435
+ id="api-reference"
436
+ type="application/json"
437
+ data-configuration="${Es(D)}">${Ms(D)}</script>
438
+ <script src="${$}"></script>
439
+ `}var Es=(D)=>{let $={...D};if(!$.spec?.url)delete $.spec;else if($.spec?.content)delete $.spec?.content;return JSON.stringify($).split('"').join("&quot;")},Ms=(D)=>D.spec?.content?typeof D.spec?.content==="function"?JSON.stringify(D.spec?.content()):JSON.stringify(D.spec?.content):"";var Zs={_integration:"hono"},Ps=`
440
+ .light-mode {
441
+ color-scheme: light;
442
+ --scalar-color-1: #2a2f45;
443
+ --scalar-color-2: #757575;
444
+ --scalar-color-3: #8e8e8e;
445
+ --scalar-color-disabled: #b4b1b1;
446
+ --scalar-color-ghost: #a7a7a7;
447
+ --scalar-color-accent: #0099ff;
448
+ --scalar-background-1: #fff;
449
+ --scalar-background-2: #f6f6f6;
450
+ --scalar-background-3: #e7e7e7;
451
+ --scalar-background-4: rgba(0, 0, 0, 0.06);
452
+ --scalar-background-accent: #8ab4f81f;
453
+
454
+ --scalar-border-color: rgba(0, 0, 0, 0.1);
455
+ --scalar-scrollbar-color: rgba(0, 0, 0, 0.18);
456
+ --scalar-scrollbar-color-active: rgba(0, 0, 0, 0.36);
457
+ --scalar-lifted-brightness: 1;
458
+ --scalar-backdrop-brightness: 1;
459
+
460
+ --scalar-shadow-1: 0 1px 3px 0 rgba(0, 0, 0, 0.11);
461
+ --scalar-shadow-2: rgba(0, 0, 0, 0.08) 0px 13px 20px 0px,
462
+ rgba(0, 0, 0, 0.08) 0px 3px 8px 0px, #eeeeed 0px 0 0 1px;
463
+
464
+ --scalar-button-1: rgb(49 53 56);
465
+ --scalar-button-1-color: #fff;
466
+ --scalar-button-1-hover: rgb(28 31 33);
467
+
468
+ --scalar-color-green: #069061;
469
+ --scalar-color-red: #ef0006;
470
+ --scalar-color-yellow: #edbe20;
471
+ --scalar-color-blue: #0082d0;
472
+ --scalar-color-orange: #fb892c;
473
+ --scalar-color-purple: #5203d1;
474
+ }
475
+
476
+ .dark-mode {
477
+ color-scheme: dark;
478
+ --scalar-color-1: rgba(255, 255, 245, .86);
479
+ --scalar-color-2: rgba(255, 255, 245, .6);
480
+ --scalar-color-3: rgba(255, 255, 245, .38);
481
+ --scalar-color-disabled: rgba(255, 255, 245, .25);
482
+ --scalar-color-ghost: rgba(255, 255, 245, .25);
483
+ --scalar-color-accent: #e36002;
484
+ --scalar-background-1: #1e1e20;
485
+ --scalar-background-2: #2a2a2a;
486
+ --scalar-background-3: #505053;
487
+ --scalar-background-4: rgba(255, 255, 255, 0.06);
488
+ --scalar-background-accent: #e360021f;
489
+
490
+ --scalar-border-color: rgba(255, 255, 255, 0.1);
491
+ --scalar-scrollbar-color: rgba(255, 255, 255, 0.24);
492
+ --scalar-scrollbar-color-active: rgba(255, 255, 255, 0.48);
493
+ --scalar-lifted-brightness: 1.45;
494
+ --scalar-backdrop-brightness: 0.5;
495
+
496
+ --scalar-shadow-1: 0 1px 3px 0 rgb(0, 0, 0, 0.1);
497
+ --scalar-shadow-2: rgba(15, 15, 15, 0.2) 0px 3px 6px,
498
+ rgba(15, 15, 15, 0.4) 0px 9px 24px, 0 0 0 1px rgba(255, 255, 255, 0.1);
499
+
500
+ --scalar-button-1: #f6f6f6;
501
+ --scalar-button-1-color: #000;
502
+ --scalar-button-1-hover: #e7e7e7;
503
+
504
+ --scalar-color-green: #3dd68c;
505
+ --scalar-color-red: #f66f81;
506
+ --scalar-color-yellow: #f9b44e;
507
+ --scalar-color-blue: #5c73e7;
508
+ --scalar-color-orange: #ff8d4d;
509
+ --scalar-color-purple: #b191f9;
510
+ }
511
+ /* Sidebar */
512
+ .light-mode .t-doc__sidebar {
513
+ --scalar-sidebar-background-1: var(--scalar-background-1);
514
+ --scalar-sidebar-item-hover-color: currentColor;
515
+ --scalar-sidebar-item-hover-background: var(--scalar-background-2);
516
+ --scalar-sidebar-item-active-background: var(--scalar-background-accent);
517
+ --scalar-sidebar-border-color: var(--scalar-border-color);
518
+ --scalar-sidebar-color-1: var(--scalar-color-1);
519
+ --scalar-sidebar-color-2: var(--scalar-color-2);
520
+ --scalar-sidebar-color-active: var(--scalar-color-accent);
521
+ --scalar-sidebar-search-background: var(--scalar-background-2);
522
+ --scalar-sidebar-search-border-color: var(--scalar-sidebar-border-color);
523
+ --scalar-sidebar-search-color: var(--scalar-color-3);
524
+ }
525
+
526
+ .dark-mode .sidebar {
527
+ --scalar-sidebar-background-1: #161618;
528
+ --scalar-sidebar-item-hover-color: var(--scalar-color-accent);
529
+ --scalar-sidebar-item-hover-background: transparent;
530
+ --scalar-sidebar-item-active-background: transparent;
531
+ --scalar-sidebar-border-color: transparent;
532
+ --scalar-sidebar-color-1: var(--scalar-color-1);
533
+ --scalar-sidebar-color-2: var(--scalar-color-2);
534
+ --scalar-sidebar-color-active: var(--scalar-color-accent);
535
+ --scalar-sidebar-search-background: #252529;
536
+ --scalar-sidebar-search-border-color: transparent;
537
+ --scalar-sidebar-search-color: var(--scalar-color-3);
538
+ }
539
+ `,$H=(D)=>{let $={...Zs,...D};return async(F)=>F.html(`${Dq($,Ps)}`)};Y2();bD();GD();lD();GD();function $q(D,$){if(D instanceof zD)return $.json(D.toJSON(),D.status);return E.error("Unhandled error:",D),$.json({error:{code:"INTERNAL_ERROR",message:"An unexpected error occurred"}},500)}GD();var Fq=async(D,$)=>{let F=performance.now();await $();let X=Math.round(performance.now()-F);E.info(`${D.req.method} ${D.req.path} ${D.res.status} ${X}ms`)};import{resolve as FH,sep as qs}from"path";function Xq(D){let $=FH(D);return async(F)=>{let X=new URL(F.req.url),J;try{J=Ns(decodeURIComponent(X.pathname.slice(7)))}catch{return F.text("forbidden",403)}let Y=J===""?"index.html":J,G=FH($,Y);if(G!==$&&!G.startsWith($+qs))return F.text("forbidden",403);let B=Bun.file(G);if(await B.exists())return new Response(B);if(!zs(Y)){let H=Bun.file(FH($,"index.html"));if(await H.exists())return new Response(H)}return F.text("not found",404)}}function Ns(D){let $=0;while($<D.length&&D[$]==="/")$+=1;return D.slice($)}function zs(D){let $=D.lastIndexOf("/");return($===-1?D:D.slice($+1)).includes(".")}Y2();lD();GD();function Jq(D,$){let F=new B2;return F.get("/whatsapp/webhook",(X)=>{let Y=D().channels.get("whatsapp");if(!Y||Y.credentials.channel!=="whatsapp")return X.text("whatsapp channel is not bound to this worker",404);let G=X.req.query("hub.mode"),B=X.req.query("hub.verify_token"),H=X.req.query("hub.challenge")??"";if(G==="subscribe"&&B!==void 0&&m2(B,Y.credentials.verifyToken))return X.text(H,200);return X.text("forbidden",403)}),F.post("/:channel/webhook",async(X)=>{let J=D(),Y=X.req.param("channel"),G=J.channels.get(Y);if(!G)throw zD.notFound(`Channel ${Y} is not bound to this worker`);let B=J.channels.adapter(Y),H=await X.req.text(),W={};X.req.raw.headers.forEach((_,U)=>{W[U.toLowerCase()]=_});try{await B.verify(H,W,G)}catch(_){return E.warn(`[channel:${Y}] signature verification failed: ${String(_)}`),X.json({ok:!1,error:"signature verification failed"},401)}let V=await B.toEnvelopes(H,$,G);for(let _ of V)await J.orchestrator.ingest(_);return X.json({ok:!0,accepted:V.length})}),F}var XH=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:Y}=await F.read();J?X.close():X.enqueue(Y)},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+`
540
+ `),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 XF=()=>{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 XF=()=>$,$};var Gq=class extends XH{constructor(D,$){super(D,$)}async writeSSE(D){let F=(await P7(D.data,a$.Stringify,!1,{})).split(/\r\n|\r|\n/).map((J)=>{return`data: ${J}`}).join(`
541
+ `);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(`
542
+ `)+`
543
+
544
+ `;await this.write(X)}},Ls=async(D,$,F)=>{try{await $(D)}catch(X){if(X instanceof Error&&F)await F(X,D),await D.writeSSE({event:"error",data:X.message});else console.error(X)}finally{D.close()}},js=new WeakMap,JH=(D,$,F)=>{let{readable:X,writable:J}=new TransformStream,Y=new Gq(J,X);if(XF())D.req.raw.signal.addEventListener("abort",()=>{if(!Y.closed)Y.abort()});return js.set(Y.responseReadable,D),D.header("Transfer-Encoding","chunked"),D.header("Content-Type","text/event-stream"),D.header("Cache-Control","no-cache"),D.header("Connection","keep-alive"),Ls(Y,$,F),D.newResponse(Y.responseReadable)};function Yq(D){let $=new B2;return $.get("/stream",(F)=>{let X=D().bus;return JH(F,async(J)=>{let Y=X.on((G)=>{J.writeSSE({event:G.type,data:JSON.stringify({...G.payload,at:G.at})})});await new Promise((G)=>{F.req.raw.signal.addEventListener("abort",()=>{Y(),G()})})})}),$}lD();bD();A0();var R3=new B2;R3.get("/observations",(D)=>{let $=g().select().from(C0).orderBy(LD(C0.noticedAt)).limit(200).all();return D.json({observations:$})});R3.get("/drafts",(D)=>{let $=D.req.query("status"),F=g().select().from(z0).orderBy(LD(z0.createdAt)).limit(100),X=$?F.where(k(z0.status,$)).all():F.all();return D.json({drafts:X})});R3.post("/drafts/:id/approve",async(D)=>{let $=Number(D.req.param("id"));if(!Number.isFinite($))throw zD.badRequest("invalid draft id");let F=await D.req.json().catch(()=>({})),X=new Date().toISOString();return g().update(z0).set({status:"approved",decidedAt:X,decidedBy:F.decidedBy??"operator"}).where(k(z0.id,$)).run(),D.json({ok:!0})});R3.post("/drafts/:id/reject",async(D)=>{let $=Number(D.req.param("id"));if(!Number.isFinite($))throw zD.badRequest("invalid draft id");let F=await D.req.json().catch(()=>({})),X=new Date().toISOString();return g().update(z0).set({status:"rejected",decidedAt:X,decidedBy:F.decidedBy??"operator"}).where(k(z0.id,$)).run(),D.json({ok:!0})});Y2();function Bq({getIdentity:D}){return async($,F)=>{let X=$.req.header("Authorization");if(!X)return $.json({code:"auth-failed",message:"missing Authorization header"},401);let[J,Y]=X.split(/\s+/,2);if(!J||J.toLowerCase()!=="bearer"||!Y)return $.json({code:"auth-failed",message:"expected Bearer scheme"},401);let{tokenPlaintext:G}=D();if(!G||!m2(Y,G))return $.json({code:"auth-failed",message:"invalid bearer token"},401);await F()}}Y2();lD();bD();GD();mD();var Ts=Q.object({value:Q.string().min(1)}),Hq=Q.string().regex(/^[\w.-]{1,128}$/,{message:"secret key \u4EC5\u5141\u8BB8 [A-Za-z0-9._-]\uFF0C\u957F\u5EA6 1-128"}),ws=Q.object({probe:Q.boolean().optional()}).optional(),Ss=Q.object({chatId:Q.string().optional(),text:Q.string().optional()}).optional(),fs=Q.object({limit:Q.coerce.number().int().min(1).max(200).optional().default(50),offset:Q.coerce.number().int().min(0).optional().default(0),status:Q.enum(["active","closed"]).optional()}),bs=Q.object({olderThanDays:Q.number().int().min(0).max(3650).optional().default(30),limit:Q.number().int().min(1).max(200).optional().default(50),apply:Q.boolean().optional().default(!1)}),Wq=Q.enum(["web","line","telegram","lark","whatsapp"]),ks=Q.object({expression:Q.string().min(1),prompt:Q.string().min(1),channel:Wq,chatId:Q.string().min(1),accountId:Q.string().min(1).optional(),enabled:Q.boolean().optional()}),vs=Q.object({expression:Q.string().min(1).optional(),prompt:Q.string().min(1).optional(),channel:Wq.optional(),chatId:Q.string().min(1).optional(),accountId:Q.string().min(1).optional(),enabled:Q.boolean().optional()}).refine((D)=>Object.keys(D).length>0,{message:"\u81F3\u5C11\u63D0\u4F9B\u4E00\u4E2A\u5F85\u66F4\u65B0\u5B57\u6BB5"});function Qq(D){let $=new B2;return $.get("/info",async(F)=>{let X=D.getState(),J=await Z0(g()),Y=await $3(X,J.config,{...s.AIWORKER_ADVERTISED_BASE_URL===void 0?{}:{advertisedBaseUrl:s.AIWORKER_ADVERTISED_BASE_URL}});return F.json(Y)}),$.get("/config",async(F)=>{let X=await Z0(g());return F.json(X)}),$.put("/config",async(F)=>{let X=await F.req.json().catch(()=>null),J=F.req.header("If-Match"),Y=J===void 0?void 0:Number.parseInt(J,10);if(J!==void 0&&Number.isNaN(Y))return F.json({error:{code:"invalid-if-match",message:"If-Match must be an integer"}},400);try{let G=await a6({db:g(),vault:vD(),raw:X,...Y===void 0?{}:{ifMatchVersion:Y},workerId:D.getState().workerId,reloadRuntime:D.reloadRuntime});return F.json(G)}catch(G){if(G instanceof i2)return F.json({error:{code:"invalid-config",message:G.message,details:G.issues}},400);if(G instanceof n2)return F.json({error:{code:"version-conflict",message:G.message,expected:G.expected,actual:G.actual}},409);throw G}}),$.get("/secrets",async(F)=>{let X=await F3(vD());return F.json({keys:X})}),$.put("/secrets/:key",async(F)=>{let X=Hq.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),Y=Ts.safeParse(J);if(!Y.success)return F.json({error:{code:"invalid-body",message:"invalid secret body",details:Y.error.flatten().fieldErrors}},400);try{return await X3(vD(),X.data,Y.data.value),F.json({ok:!0},200)}catch(G){if(G instanceof zD)return F.json(G.toJSON(),G.status);throw G}}),$.delete("/secrets/:key",async(F)=>{let X=Hq.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 J3(vD(),X.data),F.json({ok:!0},200)}catch(J){if(J instanceof zD)return F.json(J.toJSON(),J.status);throw J}}),$.post("/brain/test",async(F)=>{let X=D.getState(),J=await Z0(g()),Y=await t6(X,J.config);return F.json(Y)}),$.post("/executor/test",async(F)=>{let X=await F.req.json().catch(()=>null),J=ws.safeParse(X??{});if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid executor test body"}},400);let Y=D.getState(),G=await Z0(g()),B=await D3(Y,G.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),Y=Ss.safeParse(J??{});if(!Y.success)return F.json({error:{code:"invalid-body",message:"invalid channel test body"}},400);try{let G=D.getState(),B=await e6(G,X,Y.data??{});return F.json(B)}catch(G){if(G instanceof zD)return F.json(G.toJSON(),G.status);throw G}}),$.post("/token/rotate",async(F)=>{let X=D.getState(),J=await i8(g(),vD(),X);return F.json(J)}),$.get("/sessions",(F)=>{let X=fs.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=V3({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=_3(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=bs.safeParse(X??{});if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid session maintenance body",details:J.error.flatten().fieldErrors}},400);let Y=J.data,G=U3({olderThanDays:Y.olderThanDays,limit:Y.limit,apply:Y.apply});return F.json(G)}),$.post("/reload",async(F)=>{let X=await Z0(g());try{return await D.reloadRuntime(X.config,X.version),F.json({ok:!0,version:X.version})}catch(J){return E.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 y6().probeAll({refresh:X});return F.json({engines:J})}),$.get("/approvals",(F)=>{let J=D.getState().runtime.approvals.list().map((Y)=>({taskId:Y.taskId,toolCallId:Y.toolCallId,toolName:Y.toolName,params:Y.params,expiresAt:Y.expiresAt}));return F.json({approvals:J})}),$.post("/approvals/:taskId/:toolCallId/grant",async(F)=>{let X=F.req.param("taskId"),J=F.req.param("toolCallId"),Y=await F.req.json().catch(()=>null),G=Q.object({decision:Q.enum(["allow","deny"])}).safeParse(Y);if(!G.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,G.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=ks.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 Y=await D.getState().runtime.cron.addJob(J.data);return F.json({job:Y},201)}catch(Y){return F.json({error:{code:"invalid-cron",message:Y instanceof Error?Y.message:String(Y)}},400)}}),$.patch("/cron/:id",async(F)=>{let X=F.req.param("id"),J=await F.req.json().catch(()=>null),Y=vs.safeParse(J);if(!Y.success)return F.json({error:{code:"invalid-body",message:"invalid cron patch body",details:Y.error.flatten().fieldErrors}},400);try{let G=await D.getState().runtime.cron.updateJob(X,Y.data);if(!G)return F.json({error:{code:"not-found",message:`cron job ${X} \u4E0D\u5B58\u5728`}},404);return F.json({job:G})}catch(G){return F.json({error:{code:"invalid-cron",message:G instanceof Error?G.message:String(G)}},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})}),$}bD();A0();mD();var hs=Q.object({prompt:Q.string().trim().min(1,"prompt is required").max(8000,"prompt exceeds 8000 characters")});function Vq(D){let $=new B2;return $.get("/tasks",(F)=>{let X=g().select().from(P2).orderBy(LD(P2.createdAt)).limit(200).all();return F.json({tasks:X})}),$.post("/tasks",async(F)=>{let X=await F.req.json().catch(()=>null),J=hs.safeParse(X);if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid task body",details:J.error.flatten().fieldErrors}},400);let Y=await D().orchestrator.submitTask(J.data.prompt);return F.json({task:Y},201)}),$.get("/conversations",(F)=>{let X=g().select().from(p).orderBy(LD(p.lastActiveAt)).limit(200).all();return F.json({conversations:X})}),$.get("/conversations/:id/messages",(F)=>{let X=F.req.param("id"),J=g().select().from(i).where(k(i.conversationId,X)).all();return F.json({messages:J})}),$}async function _q(D){let $=vD(),F=new Set(H8(D).map((J)=>J.path)),X=new Map;for(let J of F){let Y=await $.get(J);if(Y!==null)X.set(J,Y)}return z6(D,X)}async function Uq(D={}){V9(s.WORKER_DB_PATH),_9(s.WORKER_MIGRATIONS_FOLDER);let $=vD(),F=g(),X=await A1(F,$,{...s.AIWORKER_FORCE_ID===void 0?{}:{forceId:s.AIWORKER_FORCE_ID},...s.AIWORKER_FORCE_TOKEN===void 0?{}:{forceToken:s.AIWORKER_FORCE_TOKEN}});K1(X.workerId,X.token,F,X.justMinted),E.info(`[worker ${X.workerId}] worker.db ready at ${s.WORKER_DB_PATH}`);let J=await U1(F),Y=await _q(J.config),G=new f1({maxConcurrentTotal:s.MAX_CONCURRENT_TOTAL,perEngineLimits:{...s.perEngineLimits},stallTimeoutMs:s.PROCESS_STALL_TIMEOUT_MS,killTimeoutMs:s.PROCESS_KILL_TIMEOUT_MS,autoCleanupDelayMs:s.PROCESS_AUTO_CLEANUP_DELAY_MS,gcIntervalMs:s.PROCESS_GC_INTERVAL_MS}),B=x1(X.workerId,Y,{processes:G});E.info(`[worker ${X.workerId}] runtime built \u2014 brains=${Y.brains.length} executor=${Y.executor.engine}/${Y.executor.variant} channels=${B.channels.list().length}`);let H={workerId:X.workerId,runtime:B,configVersion:J.version,startedAt:new Date().toISOString(),tokenPlaintext:X.token};async function W(_,U){let A=await _q(_);G.setLimits({maxConcurrentTotal:s.MAX_CONCURRENT_TOTAL,perEngineLimits:{...s.perEngineLimits}});let O=x1(H.workerId,A,{processes:G}),C=H.runtime;if(H.runtime=O,H.configVersion=U,D.onRuntimeReloaded)try{D.onRuntimeReloaded()}catch(K){E.warn(`[worker ${H.workerId}] onRuntimeReloaded hook failed: ${String(K)}`)}try{C.dispose()}catch(K){E.warn(`[worker ${H.workerId}] previous runtime dispose failed: ${String(K)}`)}E.info(`[worker ${H.workerId}] runtime reloaded to config version ${U}`)}let V=new B2;if(V.use(Fq),V.onError($q),D.webStaticDir){let _=D.webStaticDir;V.get("/admin",(U)=>U.redirect("/admin/",308)),V.use("/admin/*",Xq(_))}return V.get("/health",async(_)=>{let[U,A]=await Promise.all([H.runtime.brain.health().catch(()=>null),H.runtime.executor.health().catch(()=>null)]);return _.json({mode:"worker",workerId:H.workerId,status:"ok",brain:U,executor:A,configVersion:H.configVersion,startedAt:H.startedAt,checkedAt:new Date().toISOString()})}),V.route("/",Jq(()=>H.runtime,H.workerId)),V.use("/api/worker/*",Bq({getIdentity:()=>({tokenPlaintext:H.tokenPlaintext})})),V.route("/api/worker/orchestrator",Vq(()=>H.runtime)),V.route("/api/worker/evolution",R3),V.route("/api/worker/events",Yq(()=>H.runtime)),V.route("/api/worker",Qq({getState:()=>H,reloadRuntime:W})),V.doc("/openapi.json",{openapi:"3.1.0",info:{title:"AIWorker Worker API",version:"0.2.0",description:`Per-worker surface: channels, orchestrator, memory, skills, execution, evolution. Worker id: ${H.workerId}`}}),V.get("/docs",$H({spec:{url:"/openapi.json"}})),{app:V,port:s.PORT,state:H,reloadRuntime:W}}Y2();lD();bD();GD();async function Aq(D={}){let $=null,F=c1.env.AIWORKER_WORKER_NO_SERVE_WEB==="1",X=D.serveWeb!==!1&&!F,J=X?Y9("worker"):void 0;if(X&&!J)E.warn("[aiw 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??s.AIWORKER_WORKER_HOST;S3({surface:"worker",host:Y,serveWeb:J!==void 0,externalAuthAcknowledged:s.AIWORKER_ADMIN_EXTERNAL_AUTH});let{app:G,port:B,state:H,reloadRuntime:W}=await Uq({onRuntimeReloaded:()=>$?.notifyRuntimeReloaded(),...J?{webStaticDir:J}:{}}),V=D.port??B,_=Bun.serve({port:V,hostname:Y,fetch:G.fetch});if(E.success(`[aiw serve] worker ${H.workerId} listening on ${Y}:${V} (config v${H.configVersion})`),J)E.info(`[aiw serve] /admin/* serving worker bundle from ${J}`);let U=s.AIWORKER_GATEWAY_URL,A=s.AIWORKER_JOIN_TOKEN,O=s.AIWORKER_DISPLAY_NAME,C=s.AIWORKER_ENROLL_MODE,K=D.gateway&&D.gateway.length>0?D.gateway:void 0,R,P=D.gatewayToken??"",q,w="legacy";if(K)R=K;else if(U&&U.length>0){let N=C==="otp",j=!!A&&A.length>0;if(!N&&j)R=U,w="self-enroll",q={mode:"join-token",joinToken:A,apiToken:H.tokenPlaintext,...O?{displayName:O}:{}};else{let c=new URL(U);if(c.pathname="/enroll-ws",R=c.toString(),w="otp",P=H.tokenPlaintext,q={mode:"otp",apiToken:H.tokenPlaintext,...O?{displayName:O}:{}},N&&j)E.info("[aiw serve] AIWORKER_ENROLL_MODE=otp \u5DF2\u751F\u6548\uFF0C\u5FFD\u7565 AIWORKER_JOIN_TOKEN")}}else if(A&&A.length>0)E.warn("[aiw serve] AIWORKER_JOIN_TOKEN set but AIWORKER_GATEWAY_URL missing; skipping self-enroll");if(R){if(w==="self-enroll")E.info(`[aiw serve] self-enrolling to ${R} as ${O??H.workerId}`);else if(w==="otp")E.info(`[aiw serve] OTP enrolling to ${R}; awaiting operator approval`);$=O$({url:R,token:P,workerId:H.workerId,...D.gatewayReconnect===!1?{reconnect:!1}:{},...q?{enroll:q}:{},...w==="otp"?{onEnrollmentOtp:({otp:N,expiresAt:j})=>{let c=Math.max(0,Math.round((j-Date.now())/1000)),XD=xs(N,c);c1.stdout.write(`${XD}
545
+ `),E.info(`[aiw serve] OTP ${N} \u5DF2\u7B7E\u53D1\uFF0C\u8BF7\u7528 \`aim enroll approve ${N}\` \u51C6\u5165\uFF1Bexpires in ${c}s`)},onEnrollmentApproved:({workerId:N,deviceToken:j})=>{E.success(`[aiw serve] approved as ${N}; deviceToken=${j.slice(0,8)}\u2026\uFF0C\u5DF2\u52A0\u5165 fleet`)}}:{},getRuntime:()=>H.runtime,handlers:{workersInfo:async()=>{let N=await Z0(g());return await $3(H,N.config,{...s.AIWORKER_ADVERTISED_BASE_URL===void 0?{}:{advertisedBaseUrl:s.AIWORKER_ADVERTISED_BASE_URL}})},workersStop:async()=>{setTimeout(()=>{try{c1.kill(c1.pid,"SIGTERM")}catch(N){E.error(`[aiw serve] workers.stop failed to signal self: ${String(N)}`)}},0)},configGet:async()=>{let N=await Z0(g());return{version:N.version,config:N.config}},configPut:async({ifMatch:N,config:j})=>{let c=await a6({db:g(),vault:vD(),raw:j,ifMatchVersion:N,workerId:H.workerId,reloadRuntime:W});return{version:c.version,appliedAt:Date.now(),runtimeReload:c.runtimeReload}},tokenRotate:async()=>{let{newToken:N}=await i8(g(),vD(),H);return{deviceToken:N}},...K$(()=>H.runtime.cron),secretsList:async()=>{return{keys:await F3(vD())}},secretsPut:async({key:N,value:j})=>{return await X3(vD(),N,j),{ok:!0}},secretsDelete:async({key:N})=>{return await J3(vD(),N),{ok:!0}},enginesList:async({refresh:N})=>{return{engines:await y6().probeAll({refresh:N===!0})}},brainTest:async()=>{let N=await Z0(g());return await t6(H,N.config)},executorTest:async({probe:N})=>{let j=await Z0(g());return await D3(H,j.config,{probe:N===!0})},channelTest:async({channel:N,body:j})=>{return await e6(H,N,j??{})},tasksList:async()=>{return{tasks:BJ(200)}},tasksCreate:async({prompt:N})=>{return{task:await H.runtime.orchestrator.submitTask(N)}},conversationsList:async()=>{return{conversations:HJ(200)}},messagesList:async({conversationId:N})=>{return{messages:WJ(N)}}}}),E.success(`[aiw serve] gateway-client dialing ${R}`)}let S=!1,L=async(N)=>{if(S)return;S=!0,E.info(`[aiw serve] received ${N}, shutting down`);try{if($)await $.stop(),$=null}catch(j){E.warn(`[aiw serve] gateway shutdown failed: ${String(j)}`)}try{_.stop()}catch(j){E.warn(`[aiw serve] http shutdown failed: ${String(j)}`)}c1.exit(0)};c1.once("SIGTERM",()=>void L("SIGTERM")),c1.once("SIGINT",()=>void L("SIGINT")),await new Promise(()=>{})}function xs(D,$){let F=`OTP: ${D}`,X=`expires in ${$}s`,J=Math.max(F.length,X.length)+6,Y="\u2500".repeat(J),G=(B)=>`\u2502 ${B}${" ".repeat(J-B.length-4)}\u2502`;return["",`\u250C${Y}\u2510`,G(F),G(X),`\u2514${Y}\u2518`].join(`
546
+ `)}Y2();GD();async function Kq(D={}){try{let $=gs(D.status),F=await rD({silent:!0}),X=V3({config:F.hydrated,limit:D.limit,offset:D.offset,...$===void 0?{}:{status:$}});return console.log(JSON.stringify(X,null,2)),0}catch($){return E.error(`[aiworker sessions list] failed: ${$ instanceof Error?$.message:String($)}`),$ instanceof GH?2:1}}async function Cq(D){try{let $=await rD({silent:!0}),F=_3(D,$.hydrated);if(F===null)return E.error(`[aiworker sessions show] session not found: ${D}`),1;return console.log(JSON.stringify({session:F},null,2)),0}catch($){return E.error(`[aiworker sessions show] failed: ${$ instanceof Error?$.message:String($)}`),1}}async function Oq(D={}){try{await rD({silent:!0});let $=U3({olderThanDays:D.olderThanDays,limit:D.limit,apply:D.apply===!0});return console.log(JSON.stringify($,null,2)),0}catch($){return E.error(`[aiworker sessions maintenance] failed: ${$ instanceof Error?$.message:String($)}`),1}}class GH extends Error{}function gs(D){if(D===void 0)return;if(D==="active"||D==="closed")return D;throw new GH('status must be "active" or "closed"')}Y2();bD();GD();async function Rq(){let D=await rD({silent:!0}),$=vD(),F=g(),X={tokenPlaintext:D.token},{newToken:J}=await i8(F,$,X);return E.success(`[aiw token rotate] worker ${D.workerId} token rotated`),console.log(J),0}var ys={"approvals grant":"\u89E3\u9501\u8FDC\u7AEF worker \u4E0A\u67D0\u6761\u6302\u8D77\u7684\u5DE5\u5177\u5BA1\u6279","approvals list":"\u67E5\u770B\u8FDC\u7AEF worker \u6302\u8D77\u7684\u5DE5\u5177\u5BA1\u6279","approvals-grant":"\u89E3\u9501\u672C\u5730 worker \u8FDB\u7A0B\u5185\u67D0\u6761\u6302\u8D77\u7684\u5DE5\u5177\u5BA1\u6279","approvals-list":"\u67E5\u770B\u672C\u5730 worker \u8FDB\u7A0B\u5185\u6302\u8D77\u7684\u5DE5\u5177\u5BA1\u6279",chat:"\u5411\u5DF2\u63A5\u5165 fleet \u7684 worker \u53D1\u9001\u4E00\u6761\u6D88\u606F","config get":"\u8BFB\u53D6\u8FDC\u7AEF worker \u7684\u5F53\u524D\u914D\u7F6E","config set":"\u66F4\u65B0\u8FDC\u7AEF worker \u914D\u7F6E\uFF0C\u9700\u8981\u7248\u672C\u4E50\u89C2\u9501","config-set":"\u66FF\u6362\u672C\u5730 worker \u914D\u7F6E\uFF0C\u9700\u8981\u65F6\u53EF\u5E26\u7248\u672C\u4E50\u89C2\u9501","config-show":"\u6253\u5370\u672C\u5730 worker \u914D\u7F6E\uFF0C\u7F3A\u5931\u65F6\u4F1A\u521D\u59CB\u5316\u672C\u5730\u72B6\u6001","enroll approve":"\u6279\u51C6\u4E00\u6761\u5F85\u5904\u7406\u7684 OTP enrollment","enroll list":"\u5217\u51FA gateway \u5F53\u524D\u5F85\u5904\u7406\u7684 OTP enrollment","enroll reject":"\u62D2\u7EDD\u4E00\u6761\u5F85\u5904\u7406\u7684 OTP enrollment","fleet info":"\u67E5\u770B\u67D0\u4E2A worker \u7684\u8FD0\u884C\u65F6\u4FE1\u606F","fleet launch":"\u8BA9 gateway \u5728\u672C\u673A\u62C9\u8D77\u5E76\u914D\u5BF9\u4E00\u4E2A worker","fleet list":"\u5217\u51FA fleet \u5185\u6240\u6709 worker","fleet remove":"\u4ECE fleet \u79FB\u9664 worker \u5E76\u4F5C\u5E9F deviceToken","fleet stop":"\u5411\u76EE\u6807 worker \u4E0B\u53D1\u505C\u6B62\u6307\u4EE4","gateway start":"\u542F\u52A8 gateway server\uFF0C\u9ED8\u8BA4\u524D\u53F0\u8FD0\u884C","gateway status":"\u67E5\u770B\u540E\u53F0 gateway \u5B88\u62A4\u8FDB\u7A0B\u72B6\u6001\uFF08foreground/systemd \u4E0D\u7531\u6B64\u547D\u4EE4\u8DDF\u8E2A\uFF09","gateway stop":"\u505C\u6B62\u540E\u53F0 gateway \u5B88\u62A4\u8FDB\u7A0B",init:"\u521D\u59CB\u5316 worker.db\u3001\u8EAB\u4EFD\u3001token \u548C\u9ED8\u8BA4\u914D\u7F6E","install systemd":"\u6E32\u67D3\u5E76\u53EF\u9009\u6CE8\u518C gateway \u7684 systemd unit",logs:"\u8BA2\u9605\u67D0\u4E2A worker \u7684\u65E5\u5FD7\u5C3E\u90E8",pair:"\u7528 bootstrap token \u628A\u5DF2\u542F\u52A8 worker \u6CE8\u518C\u5230 gateway",run:"\u4E0D\u542F\u52A8 HTTP server\uFF0C\u76F4\u63A5\u7ED9 orchestrator \u6295\u9012\u4E00\u6761\u6D88\u606F","schedule add":"\u5728\u8FDC\u7AEF worker \u4E0A\u65B0\u589E\u4E00\u6761 cron \u4EFB\u52A1","schedule list":"\u5217\u51FA\u8FDC\u7AEF worker \u4E0A\u7684 cron \u4EFB\u52A1","schedule remove":"\u5220\u9664\u8FDC\u7AEF worker \u4E0A\u7684\u4E00\u6761 cron \u4EFB\u52A1","schedule-add":"\u5728\u672C\u5730 worker.db \u4E2D\u65B0\u589E\u4E00\u6761 cron \u4EFB\u52A1","schedule-list":"\u5217\u51FA\u672C\u5730 worker.db \u4E2D\u7684 cron \u4EFB\u52A1","schedule-remove":"\u5220\u9664\u672C\u5730 worker.db \u4E2D\u7684\u4E00\u6761 cron \u4EFB\u52A1",scope:"\u8BCA\u65AD\u5F53\u524D\u547D\u4EE4\u4F1A\u4F7F\u7528\u54EA\u4E2A AIWORKER_HOME",serve:"\u542F\u52A8\u672C\u5730 worker HTTP server\uFF0C\u53EF\u540C\u65F6\u63A5\u5165 gateway","sessions list":"\u5217\u51FA\u672C\u5730 worker \u4F1A\u8BDD\u72B6\u6001","sessions maintenance":"\u8BD5\u7B97\u6216\u6267\u884C\u5DF2\u5173\u95ED transcript \u6E05\u7406","sessions show":"\u67E5\u770B\u672C\u5730 worker \u7684\u5355\u4E2A\u4F1A\u8BDD\u72B6\u6001","token rotate":"\u4E3A\u8FDC\u7AEF worker \u8F6E\u6362 deviceToken","token-rotate":"\u4E3A\u672C\u5730 worker \u751F\u6210\u65B0\u7684 bearer token"},us=[{title:"\u672C\u5730 worker\uFF08\u5F53\u524D\u9879\u76EE / \u5F53\u524D\u4E3B\u673A\uFF09",hint:"\u7528\u4E8E\u521D\u59CB\u5316\u3001\u542F\u52A8\u548C\u76F4\u63A5\u7EF4\u62A4\u5F53\u524D\u76EE\u5F55\u6216\u5F53\u524D\u4E3B\u673A\u4E0A\u7684 worker\u3002",commands:["init","run","serve","config-show","config-set","token-rotate","schedule-list","schedule-add","schedule-remove","sessions list","sessions show"]},{title:"Gateway / fleet \u7BA1\u7406",hint:"\u7528\u4E8E\u542F\u52A8\u63A7\u5236\u9762\u3001\u6CE8\u518C worker\u3001\u5BA1\u6279 enrollment\uFF0C\u4EE5\u53CA\u67E5\u770B fleet \u6210\u5458\u3002",commands:["gateway start","gateway status","gateway stop","fleet list","fleet info","fleet launch","fleet stop","fleet remove","pair","enroll list","enroll approve","enroll reject"]},{title:"\u8FDC\u7AEF worker \u64CD\u4F5C",hint:"\u7528\u4E8E\u901A\u8FC7 gateway \u64CD\u4F5C\u5DF2\u5728\u7EBF worker\uFF0C\u4E0D\u76F4\u63A5\u8BFB\u5199\u672C\u673A worker.db\u3002",commands:["chat","config get","config set","token rotate","approvals list","approvals grant","schedule list","schedule add","schedule remove","logs"]},{title:"\u5B89\u88C5\u3001\u8BCA\u65AD\u3001\u9AD8\u7EA7\u7EF4\u62A4",hint:"\u9996\u6B21\u8BD5\u7528\u901A\u5E38\u4E0D\u9700\u8981\uFF1B\u90E8\u7F72\u3001\u6392\u9519\u3001\u6E05\u7406\u6216\u5DE5\u5177\u5BA1\u6279\u65F6\u518D\u770B\u3002",commands:["scope","install systemd","approvals-list","approvals-grant","sessions maintenance"]}];function Eq(D){D.help(($)=>ms(D,$)),YH(D)}function YH(D){for(let $ of D.globalCommand.options){if($.name==="help")$.description="\u663E\u793A\u5E2E\u52A9\u4FE1\u606F";if($.name==="version")$.description="\u663E\u793A\u7248\u672C\u53F7"}}function ms(D,$){if(D.matchedCommand?.name)return ps($);let F=$[0]??{body:"aiworker"},X=$.find((Y)=>Y.title==="Options"),J=us.map((Y)=>({title:Y.title,body:cs(D,Y)}));return[F,{title:"\u7528\u6CD5",body:" $ aiworker <command> [options]"},{title:"\u4F7F\u7528\u5F15\u5BFC",body:[" \u65B0\u5EFA\u672C\u5730 worker\uFF1Aaiworker init --soul developer -> aiworker serve",' \u53EA\u8BD5\u4E00\u6B21\u6D88\u606F\uFF1Aaiworker run --message "..."'," \u7BA1\u7406 fleet\uFF1Aaiworker gateway start -> aiworker pair \u6216 aiworker enroll list",' \u5DF2\u63A5\u5165 fleet \u540E\u5BF9\u8BDD\uFF1Aaiworker 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(`
547
+ `)},...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(`
548
+ `)},...X?[{...Mq(X),title:"\u9009\u9879"}]:[]]}function ps(D){return D.map(Mq)}function Mq(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 cs(D,$){let F=$.commands.map((J)=>{let Y=D.commands.find((G)=>G.name===J);return{name:Y?.rawName??J,summary:ys[J]??Y?.description??""}}),X=Math.max(...F.map((J)=>J.name.length));return[` ${$.hint}`,"",...F.map((J)=>` ${J.name.padEnd(X)} ${J.summary}`)].join(`
549
+ `)}I0();import ls from"process";function ds(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==="init"||F==="install")return!1;return!0}function Zq(D=ls.argv){if(!ds(D))return;let $=v0();g1({home:$.home})}var r=UH("aiworker");r.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").action(async(D)=>{a.exit(await iZ({...D.global===!0?{global:!0}:{},...D.force===!0?{force:!0}:{},...D.dryRun===!0?{dryRun:!0}:{},...D.soul===void 0?{}:{soul:D.soul}}))});r.command("scope","\u6253\u5370\u5F53\u524D aiworker scope\uFF08user/project/explicit\uFF09\u548C\u5173\u952E\u5E03\u5C40\u6587\u4EF6\u72B6\u6001").action(async()=>{a.exitCode=await DP()});r.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 nZ({message:D.message,chatId:D.chatId,dryRun:D.dryRun,timeoutMs:D.timeoutMs?.[0]});a.exit($)});r.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").action(async(D)=>{let $={};if(D.port?.[0]!==void 0)$.port=D.port[0];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;await Aq($)});r.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()=>{a.exit(await bZ())});r.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,$)=>{a.exit(await kZ({json:D,ifMatch:$.ifMatch?.[0]}))});r.command("token-rotate","\u751F\u6210\u65B0\u7684 bearer token\uFF1B\u660E\u6587\u53EA\u6253\u5370\u4E00\u6B21").action(async()=>{a.exit(await Rq())});r.command("approvals-list","\u5217\u51FA\u5F53\u524D worker \u8FDB\u7A0B\u5185\u6302\u8D77\u7684\u5DE5\u5177\u5BA1\u6279").action(async()=>{a.exit(await SZ())});r.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)=>{a.exit(await fZ({taskId:D,toolCallId:$,...F.deny===void 0?{}:{deny:F.deny}}))});r.command("schedule-list","\u5217\u51FA\u672C\u5730 worker.db \u4E2D\u6301\u4E45\u5316\u7684\u6240\u6709 cron \u4EFB\u52A1").action(async()=>{a.exit(await rZ())});r.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)E.error("[aiworker schedule-add] requires --expression, --prompt, --channel, --chat-id"),a.exit(2);let $=await oZ({expression:D.expression,prompt:D.prompt,channel:D.channel,chatId:D.chatId,...D.accountId===void 0?{}:{accountId:D.accountId},...D.disabled===!0?{enabled:!1}:{}});a.exit($)});r.command("schedule-remove <jobId>","\u4ECE\u672C\u5730 worker.db \u5220\u9664\u4E00\u6761 cron \u4EFB\u52A1").action(async(D)=>{a.exit(await aZ(D))});r.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)=>{a.exit(await Kq({limit:D.limit?.[0],offset:D.offset?.[0],...D.status===void 0?{}:{status:D.status}}))});r.command("sessions show <sessionKey>","\u6309 session key \u67E5\u770B\u4E00\u4E2A\u672C\u5730 worker \u4F1A\u8BDD\u72B6\u6001").action(async(D)=>{a.exit(await Cq(D))});r.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)=>{a.exit(await Oq({olderThanDays:D.olderThanDays?.[0],limit:D.limit?.[0],...D.apply===void 0?{}:{apply:D.apply}}))});r.command("fleet list","\u5217\u51FA fleet \u5185\u6240\u6709 worker").action(async()=>{a.exit(await SU())});r.command("fleet info <workerId>","\u67E5\u770B\u67D0\u4E2A worker \u7684\u8FD0\u884C\u65F6\u4FE1\u606F").action(async(D)=>{a.exit(await fU(D))});r.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)=>{a.exit(await bU({...D.displayName===void 0?{}:{displayName:D.displayName},...D.image===void 0?{}:{image:D.image},...D.forceId===void 0?{}:{forceId:D.forceId}}))});r.command("fleet stop <workerId>","\u5411\u76EE\u6807 worker \u4E0B\u53D1\u505C\u6B62\u6307\u4EE4\uFF08\u4E0D\u6458\u9664\u6CE8\u518C\uFF09").action(async(D)=>{a.exit(await kU(D))});r.command("fleet remove <workerId>","\u628A worker \u4ECE fleet \u4E2D\u6458\u9664\uFF08deviceToken \u4F5C\u5E9F\uFF09").action(async(D)=>{a.exit(await vU(D))});r.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=a.env.AIWORKER_GATEWAY_INTERNAL_FOREGROUND==="1"?!1:D.detach===!0;a.exit(await UU({...D.port?.[0]===void 0?{}:{port:D.port[0]},detach:F,...D.serveWeb===!1?{serveWeb:!1}:{}}))});r.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(()=>{a.exit(AU())});r.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)=>{a.exit(await KU(D.timeoutMs?.[0]===void 0?{}:{timeoutMs:D.timeoutMs[0]}))});r.command("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 aim.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)E.error("pair \u5FC5\u987B\u540C\u65F6\u63D0\u4F9B --worker-url \u548C --bootstrap-token"),a.exit(2);a.exit(await zU({...D.url===void 0?{}:{url:D.url},workerUrl:D.workerUrl,bootstrapToken:D.bootstrapToken,...D.displayName===void 0?{}:{displayName:D.displayName}}))});r.command("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)=>{a.exit(await WQ({workerId:D,content:$,...F.conversationId===void 0?{}:{conversationId:F.conversationId},...F.timeoutMs?.[0]===void 0?{}:{timeoutMs:F.timeoutMs[0]}}))});r.command("config get <workerId>","\u8BFB\u53D6\u76EE\u6807 worker \u7684\u5F53\u524D\u914D\u7F6E").action(async(D)=>{a.exit(await QQ(D))});r.command("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=F.ifMatch?.[0];if(X===void 0)E.error("config set \u5FC5\u987B\u663E\u5F0F\u63D0\u4F9B --if-match <version> \u4EE5\u9632\u6B62\u8BEF\u8986\u76D6"),a.exit(2);a.exit(await VQ({workerId:D,configJson:$,ifMatch:X}))});r.command("token rotate <workerId>","\u4E3A\u76EE\u6807 worker \u8F6E\u6362 deviceToken\uFF08\u65E7 token \u7ACB\u5373\u5931\u6548\uFF09").action(async(D)=>{a.exit(await wU(D))});r.command("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)=>{a.exit(await BQ({...D.worker===void 0?{}:{workerId:D.worker}}))});r.command("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)=>{a.exit(await HQ({workerId:D,taskId:$,toolCallId:F,...X.deny===void 0?{}:{deny:X.deny}}))});r.command("schedule list <workerId>","\u5217\u51FA\u67D0 worker \u4E0A\u6240\u6709 cron \u4EFB\u52A1").action(async(D)=>{a.exit(await jU(D))});r.command("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)E.error("schedule add \u5FC5\u987B\u63D0\u4F9B --expression / --prompt / --channel / --chat-id"),a.exit(2);a.exit(await IU({workerId:D,expression:$.expression,prompt:$.prompt,channel:$.channel,chatId:$.chatId,...$.accountId===void 0?{}:{accountId:$.accountId},...$.disabled===!0?{enabled:!1}:{}}))});r.command("schedule remove <workerId> <jobId>","\u5220\u9664\u67D0 worker \u4E0A\u7684\u67D0\u6761 cron \u4EFB\u52A1").action(async(D,$)=>{a.exit(await TU(D,$))});r.command("enroll list","\u5217\u51FA gateway \u5F53\u524D\u6240\u6709\u5F85\u5904\u7406\u7684 OTP enrollment").action(async()=>{a.exit(await _Q())});r.command("enroll approve <otp>","\u6279\u51C6\u67D0\u6761\u5F85\u5904\u7406\u7684 OTP enrollment\uFF08worker \u7ACB\u5373\u52A0\u5165 fleet\uFF09").action(async(D)=>{a.exit(await UQ(D))});r.command("enroll reject <otp>","\u62D2\u7EDD\u67D0\u6761\u5F85\u5904\u7406\u7684 OTP enrollment\uFF08worker \u6536\u5230 close 4403\uFF09").action(async(D)=>{a.exit(await AQ(D))});r.command("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,$)=>{a.exit(await NU({workerId:D,...$.follow===void 0?{}:{follow:$.follow},...$.tail?.[0]===void 0?{}:{tail:$.tail[0]},...$.timeoutMs?.[0]===void 0?{}:{timeoutMs:$.timeoutMs[0]}}))});r.command("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)E.error("install systemd: \u4E0D\u80FD\u540C\u65F6\u6307\u5B9A --user \u548C --system"),a.exit(2);a.exit(await qU({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}}))});Eq(r);r.version(JW.version);YH(r);function is(D,$=r){let F=new Set,X=1;for(let J of $.commands){let Y=J.name;if(typeof Y==="string"&&Y.includes(" ")){F.add(Y);let G=Y.split(" ").length;if(G>X)X=G}}if(F.size===0||D.length<4)return D;for(let J=X;J>=2;J--){if(D.length<2+J)continue;let Y=D.slice(2,2+J);if(Y.some((B)=>typeof B!=="string"))continue;let G=Y.join(" ");if(F.has(G)){let B=D.slice();return B.splice(2,J,G),B}}return D}class l1 extends Error{constructor(D){super(D);this.name="CliUsageError"}}var ns={chat:{timeoutMs:{integer:!0,min:1}},"config set":{ifMatch:{integer:!0,min:1}},"config-set":{ifMatch:{integer:!0,min:1}},"gateway start":{port:{integer:!0,min:0,max:65535}},"gateway stop":{timeoutMs:{integer:!0,min:0}},logs:{tail:{integer:!0,min:0,max:1000},timeoutMs:{integer:!0,min:1}},run:{timeoutMs:{integer:!0,min:1}},serve:{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}}};function ss(D){return D instanceof Error&&D.name==="CACError"}function rs(D){return/--[a-z0-9][\w-]*/i.exec(D)?.[0]??D}function os(D){return D.split(",").map(($)=>/^-{1,2}[a-z0-9][\w-]*/i.exec($.trim())?.[0]).filter(($)=>$!==void 0)}function as(D,$){let F=D.slice(2);return os($.rawName).some((J)=>F.some((Y)=>Y===J||Y.startsWith(`${J}=`)))}function ts(D){D.checkUnknownOptions(),D.checkOptionValue(),D.checkRequiredArgs()}function es(D,$){let F=ns[D.name]??{};for(let X of D.options){if(!Array.isArray(X.config?.type)||X.config.type[0]!==Number)continue;if(!as($,X))continue;let J=r.options[X.name];if(J===void 0)continue;let Y=Array.isArray(J)?J:[J];for(let G of Y){let B=rs(X.rawName);if(typeof G!=="number"||!Number.isFinite(G))throw new l1(`${B} must be a finite number`);let H=F[X.name];if(H?.integer===!0&&!Number.isInteger(G))throw new l1(`${B} must be an integer`);if(H?.min!==void 0&&G<H.min)throw new l1(`${B} must be >= ${H.min}`);if(H?.max!==void 0&&G>H.max)throw new l1(`${B} must be <= ${H.max}`)}}}function Dr(){return r.options.help===!0||r.options.version===!0&&r.matchedCommandName==null}async function $r(D=a.argv){let $=is(D);try{r.unsetMatchedCommand();let F=r.parse($,{run:!1});if(Dr())return 0;if(!r.matchedCommand&&F.args[0])throw new l1(`Unknown command: ${F.args[0]}`);let X=r.matchedCommand;if(X)ts(X),es(X,$);return Zq($),await r.runMatchedCommand(),typeof a.exitCode==="number"?a.exitCode:0}catch(F){let X=F instanceof l1||ss(F),J=F instanceof Error?F.message:String(F);return E.error(J),X?2:1}}if(import.meta.main)a.exit(await $r(a.argv));export{$r as runCli,is as preprocessArgv,r as cli};