@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.
- package/README.md +9 -4
- package/aiworker-bun.js +549 -0
- package/aiworker.js +48 -485
- package/package.json +2 -1
package/aiworker.js
CHANGED
|
@@ -1,498 +1,61 @@
|
|
|
1
|
-
#!/usr/bin/env
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
`;return this.filterAndJoin([t$(D.type),t$(D.tag),F])}log(D,$){let F=this.formatLogObj(D,{columns:$.options.stdout.columns||0,...$.options.formatOptions});return FN(F+`
|
|
17
|
-
`,D.level<2?$.options.stderr||process.stderr:$.options.stdout||process.stdout)}}var t$=(D)=>D?`[${D}]`:"";var iB=()=>{};import*as z7 from"tty";function aB(D,$,F,X,J=$.slice(0,Math.max(0,D))+X,G=$.slice(Math.max(0,D+F.length)),Y=G.indexOf(F)){return J+(Y<0?G:aB(Y,G,F,X))}function VN(D,$,F,X,J){return D<0?F+$+X:F+aB(D,$,X,J)+X}function QN(D,$,F=D,X=D.length+1){return(J)=>J||!(J===""||J===void 0)?VN((""+J).indexOf($,X),J,D,$,F):""}function XD(D,$,F){return QN(`\x1B[${D}m`,`\x1B[${$}m`,F)}function UN(D=WN){return D?nB:Object.fromEntries(Object.keys(nB).map(($)=>[$,String]))}function _N(D,$="reset"){return Z0[D]||Z0[$]}function U8(D){return D.replace(new RegExp(AN,"g"),"")}function tB(D,$={}){let F={...$,style:{...KN,...$.style}},X=D.split(`
|
|
18
|
-
`),J=[],G=_N(F.style.borderColor),Y={...typeof F.style.borderStyle==="string"?sB[F.style.borderStyle]||sB.solid:F.style.borderStyle};if(G)for(let A in Y)Y[A]=G(Y[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)=>U8(A).length),F.title?U8(F.title).length:0)+B,Q=W+B,U=F.style.marginLeft>0?" ".repeat(F.style.marginLeft):"";if(F.style.marginTop>0)J.push("".repeat(F.style.marginTop));if(F.title){let A=G?G(F.title):F.title,O=Y.h.repeat(Math.floor((W-U8(F.title).length)/2)),C=Y.h.repeat(W-U8(F.title).length-U8(O).length+B);J.push(`${U}${Y.tl}${O}${A}${C}${Y.tr}`)}else J.push(`${U}${Y.tl}${Y.h.repeat(Q)}${Y.tr}`);let _=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<_||A>=_+X.length)J.push(`${U}${Y.v}${" ".repeat(Q)}${Y.v}`);else{let O=X[A-_],C=" ".repeat(B),K=" ".repeat(W-U8(O).length);J.push(`${U}${Y.v}${C}${O}${K}${Y.v}`)}if(J.push(`${U}${Y.bl}${Y.h.repeat(Q)}${Y.br}`),F.style.marginBottom>0)J.push("".repeat(F.style.marginBottom));return J.join(`
|
|
19
|
-
`)}var _8,rB,XN,JN,YN,GN,oB,BN,HN,WN,nB,Z0,AN,sB,KN;var eB=M(()=>{({env:_8={},argv:rB=[],platform:XN=""}=typeof process>"u"?{}:process),JN="NO_COLOR"in _8||rB.includes("--no-color"),YN="FORCE_COLOR"in _8||rB.includes("--color"),GN=XN==="win32",oB=_8.TERM==="dumb",BN=z7&&z7.isatty&&z7.isatty(1)&&_8.TERM&&!oB,HN="CI"in _8&&(("GITHUB_ACTIONS"in _8)||("GITLAB_CI"in _8)||("CIRCLECI"in _8)),WN=!JN&&(YN||GN&&!oB||BN||HN);nB={reset:XD(0,0),bold:XD(1,22,"\x1B[22m\x1B[1m"),dim:XD(2,22,"\x1B[22m\x1B[2m"),italic:XD(3,23),underline:XD(4,24),inverse:XD(7,27),hidden:XD(8,28),strikethrough:XD(9,29),black:XD(30,39),red:XD(31,39),green:XD(32,39),yellow:XD(33,39),blue:XD(34,39),magenta:XD(35,39),cyan:XD(36,39),white:XD(37,39),gray:XD(90,39),bgBlack:XD(40,49),bgRed:XD(41,49),bgGreen:XD(42,49),bgYellow:XD(43,49),bgBlue:XD(44,49),bgMagenta:XD(45,49),bgCyan:XD(46,49),bgWhite:XD(47,49),blackBright:XD(90,39),redBright:XD(91,39),greenBright:XD(92,39),yellowBright:XD(93,39),blueBright:XD(94,39),magentaBright:XD(95,39),cyanBright:XD(96,39),whiteBright:XD(97,39),bgBlackBright:XD(100,49),bgRedBright:XD(101,49),bgGreenBright:XD(102,49),bgYellowBright:XD(103,49),bgBlueBright:XD(104,49),bgMagentaBright:XD(105,49),bgCyanBright:XD(106,49),bgWhiteBright:XD(107,49)};Z0=UN();AN=[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("|");sB={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"}},KN={borderColor:"white",borderStyle:"rounded",valign:"center",padding:2,marginLeft:1,marginTop:1,marginBottom:1}});var PH={};n8(PH,{prompt:()=>NH,kCancel:()=>zH});import X2,{stdin as CN,stdout as ON}from"process";import DH from"readline";import{WriteStream as RN}from"tty";function EN(D){return D&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D}function ZN(){if($H)return DF;$H=1;let D="\x1B",$=`${D}[`,F="\x07",X={to(Y,B){if(!B)return`${$}${Y+1}G`;return`${$}${B+1};${Y+1}H`},move(Y,B){let H="";if(Y<0)H+=`${$}${-Y}D`;else if(Y>0)H+=`${$}${Y}C`;if(B<0)H+=`${$}${-B}A`;else if(B>0)H+=`${$}${B}B`;return H},up:(Y=1)=>`${$}${Y}A`,down:(Y=1)=>`${$}${Y}B`,forward:(Y=1)=>`${$}${Y}C`,backward:(Y=1)=>`${$}${Y}D`,nextLine:(Y=1)=>`${$}E`.repeat(Y),prevLine:(Y=1)=>`${$}F`.repeat(Y),left:`${$}G`,hide:`${$}?25l`,show:`${$}?25h`,save:`${D}7`,restore:`${D}8`},J={up:(Y=1)=>`${$}S`.repeat(Y),down:(Y=1)=>`${$}T`.repeat(Y)},G={screen:`${$}2J`,up:(Y=1)=>`${$}1J`.repeat(Y),down:(Y=1)=>`${$}J`.repeat(Y),line:`${$}2K`,lineEnd:`${$}K`,lineStart:`${$}1K`,lines(Y){let B="";for(let H=0;H<Y;H++)B+=this.line+(H<Y-1?X.up():"");if(Y)B+=X.left;return B}};return DF={cursor:X,scroll:J,erase:G,beep:F},DF}function MN(){if(FH)return N7.exports;FH=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)=>(Q)=>{let U=""+Q,_=U.indexOf(H,B.length);return~_?B+G(U,H,W,_)+H:B+U+H},G=(B,H,W,Q)=>{let U="",_=0;do U+=B.substring(_,Q)+W,_=Q+H.length,Q=B.indexOf(H,_);while(~Q);return U+B.substring(_)},Y=(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 N7.exports=Y(),N7.exports.createColors=Y,N7.exports}function NN({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 _H(D){if(typeof D!="string")throw TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(PN,"")}function AH(D){return D&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D}function O3(D,$={}){if(typeof D!="string"||D.length===0||($={ambiguousIsNarrow:!0,...$},D=_H(D),D.length===0))return 0;D=D.replace(IN()," ");let F=$.ambiguousIsNarrow?1:2,X=0;for(let J of D){let G=J.codePointAt(0);if(G<=31||G>=127&&G<=159||G>=768&&G<=879)continue;switch(LN.eastAsianWidth(J)){case"F":case"W":X+=2;break;case"A":X+=F;break;default:X+=1}}return X}function SN(){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=XH(),wD.color.ansi256=JH(),wD.color.ansi16m=YH(),wD.bgColor.ansi=XH($F),wD.bgColor.ansi256=JH($F),wD.bgColor.ansi16m=YH($F),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((G)=>G+G).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 G=Math.max(F,X,J)*2;if(G===0)return 30;let Y=30+(Math.round(J)<<2|Math.round(X)<<1|Math.round(F));return G===2&&(Y+=60),Y},enumerable:!1},rgbToAnsi:{value:($,F,X)=>wD.ansi256ToAnsi(wD.rgbToAnsi256($,F,X)),enumerable:!1},hexToAnsi:{value:($)=>wD.ansi256ToAnsi(wD.hexToAnsi256($)),enumerable:!1}}),wD}function HH(D,$,F){return String(D).normalize().replace(/\r\n/g,`
|
|
20
|
-
`).split(`
|
|
21
|
-
`).map((X)=>hN(X,$,F)).join(`
|
|
22
|
-
`)}function RH(D,$){if(typeof D=="string")return q7.aliases.get(D)===$;for(let F of D)if(F!==void 0&&RH(F,$))return!0;return!1}function yN(D,$){if(D===$)return;let F=D.split(`
|
|
23
|
-
`),X=$.split(`
|
|
24
|
-
`),J=[];for(let G=0;G<Math.max(F.length,X.length);G++)F[G]!==X[G]&&J.push(G);return J}function P7(D,$){let F=D;F.isTTY&&F.setRawMode($)}class R3{constructor(D,$=!0){w0(this,"input"),w0(this,"output"),w0(this,"_abortSignal"),w0(this,"rl"),w0(this,"opts"),w0(this,"_render"),w0(this,"_track",!1),w0(this,"_prevFrame",""),w0(this,"_subscribers",new Map),w0(this,"_cursor",0),w0(this,"state","initial"),w0(this,"error",""),w0(this,"value");let{input:F=CN,output:X=ON,render:J,signal:G,...Y}=D;this.opts=Y,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=G,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(WH);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}let F=new RN(0);F._write=(X,J,G)=>{this._track&&(this.value=this.rl?.line.replace(/\t/g,""),this._cursor=this.rl?.cursor??0,this.emit("value",this.value)),G()},this.input.pipe(F),this.rl=DH.createInterface({input:this.input,output:F,tabSize:2,prompt:"",escapeCodeTimeout:50}),DH.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),P7(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(J2.cursor.show),this.output.off("resize",this.render),P7(this.input,!1),D(this.value)}),this.once("cancel",()=>{this.output.write(J2.cursor.show),this.output.off("resize",this.render),P7(this.input,!1),D(WH)})})}onKeypress(D,$){if(this.state==="error"&&(this.state="active"),$?.name&&(!this._track&&q7.aliases.has($.name)&&this.emit("cursor",q7.aliases.get($.name)),q7.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")}RH([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
|
-
`),P7(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let D=HH(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
|
|
26
|
-
`).length-1;this.output.write(J2.cursor.move(-999,D*-1))}render(){let D=HH(this._render(this)??"",process.stdout.columns,{hard:!0});if(D!==this._prevFrame){if(this.state==="initial")this.output.write(J2.cursor.hide);else{let $=yN(this._prevFrame,D);if(this.restoreCursor(),$&&$?.length===1){let F=$[0];this.output.write(J2.cursor.move(0,F)),this.output.write(J2.erase.lines(1));let X=D.split(`
|
|
27
|
-
`);this.output.write(X[F]),this._prevFrame=D,this.output.write(J2.cursor.move(0,X.length-F-1));return}if($&&$?.length>1){let F=$[0];this.output.write(J2.cursor.move(0,F)),this.output.write(J2.erase.down());let X=D.split(`
|
|
28
|
-
`).slice(F);this.output.write(X.join(`
|
|
29
|
-
`)),this._prevFrame=D;return}this.output.write(J2.erase.down())}this.output.write(D),this.state==="initial"&&(this.state="active"),this._prevFrame=D}}}function nN(){return X2.platform!=="win32"?X2.env.TERM!=="linux":!!X2.env.CI||!!X2.env.WT_SESSION||!!X2.env.TERMINUS_SUBLIME||X2.env.ConEmuTask==="{cmd::Cmder}"||X2.env.TERM_PROGRAM==="Terminus-Sublime"||X2.env.TERM_PROGRAM==="vscode"||X2.env.TERM==="xterm-256color"||X2.env.TERM==="alacritty"||X2.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}async function NH(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,NH);throw J}case"undefined":return;case"null":return null;case"symbol":return zH;default:case"default":return $.default??$.initial}};if(!$.type||$.type==="text")return await $P({message:D,defaultValue:$.default,placeholder:$.placeholder,initialValue:$.initial}).then(F);if($.type==="confirm")return await FP({message:D,initialValue:$.initial}).then(F);if($.type==="select")return await XP({message:D,options:$.options.map((X)=>typeof X==="string"?{value:X,label:X}:X),initialValue:$.initial}).then(F);if($.type==="multiselect")return await JP({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 DF,$H,J2,N7,FH,zN,v,PN,KH,qN,LN,jN=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},IN,$F=10,XH=(D=0)=>($)=>`\x1B[${$+D}m`,JH=(D=0)=>($)=>`\x1B[${38+D};5;${$}m`,YH=(D=0)=>($,F,X)=>`\x1B[${38+D};2;${$};${F};${X}m`,wD,TN,wN,bN,L7,fN=39,GF="\x07",CH="[",kN="]",OH="m",BF,GH=(D)=>`${L7.values().next().value}${CH}${D}${OH}`,BH=(D)=>`${L7.values().next().value}${BF}${D}${GF}`,vN=(D)=>D.split(" ").map(($)=>O3($)),FF=(D,$,F)=>{let X=[...$],J=!1,G=!1,Y=O3(_H(D[D.length-1]));for(let[B,H]of X.entries()){let W=O3(H);if(Y+W<=F?D[D.length-1]+=H:(D.push(H),Y=0),L7.has(H)&&(J=!0,G=X.slice(B+1).join("").startsWith(BF)),J){G?H===GF&&(J=!1,G=!1):H===OH&&(J=!1);continue}Y+=W,Y===F&&B<X.length-1&&(D.push(""),Y=0)}!Y&&D[D.length-1].length>0&&D.length>1&&(D[D.length-2]+=D.pop())},xN=(D)=>{let $=D.split(" "),F=$.length;for(;F>0&&!(O3($[F-1])>0);)F--;return F===$.length?D:$.slice(0,F).join(" ")+$.slice(F).join("")},hN=(D,$,F={})=>{if(F.trim!==!1&&D.trim()==="")return"";let X="",J,G,Y=vN(D),B=[""];for(let[W,Q]of D.split(" ").entries()){F.trim!==!1&&(B[B.length-1]=B[B.length-1].trimStart());let U=O3(B[B.length-1]);if(W!==0&&(U>=$&&(F.wordWrap===!1||F.trim===!1)&&(B.push(""),U=0),(U>0||F.trim===!1)&&(B[B.length-1]+=" ",U++)),F.hard&&Y[W]>$){let _=$-U,A=1+Math.floor((Y[W]-_-1)/$);Math.floor((Y[W]-1)/$)<A&&B.push(""),FF(B,Q,$);continue}if(U+Y[W]>$&&U>0&&Y[W]>0){if(F.wordWrap===!1&&U<$){FF(B,Q,$);continue}B.push("")}if(U+Y[W]>$&&F.wordWrap===!1){FF(B,Q,$);continue}B[B.length-1]+=Q}F.trim!==!1&&(B=B.map((W)=>xN(W)));let H=[...B.join(`
|
|
30
|
-
`)];for(let[W,Q]of H.entries()){if(X+=Q,L7.has(Q)){let{groups:_}=new RegExp(`(?:\\${CH}(?<code>\\d+)m|\\${BF}(?<uri>.*)${GF})`).exec(H.slice(W).join(""))||{groups:{}};if(_.code!==void 0){let A=Number.parseFloat(_.code);J=A===fN?void 0:A}else _.uri!==void 0&&(G=_.uri.length===0?void 0:_.uri)}let U=bN.codes.get(Number(J));H[W+1]===`
|
|
31
|
-
`?(G&&(X+=BH("")),J&&U&&(X+=GH(U))):Q===`
|
|
32
|
-
`&&(J&&U&&(X+=GH(J)),G&&(X+=BH(G)))}return X},gN,q7,WH,uN,mN=(D,$,F)=>($ in D)?uN(D,$,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[$]=F,w0=(D,$,F)=>(mN(D,typeof $!="symbol"?$+"":$,F),F),EH,pN,cN=(D,$,F)=>($ in D)?pN(D,$,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[$]=F,VH=(D,$,F)=>(cN(D,typeof $!="symbol"?$+"":$,F),F),dN,lN,iN=(D,$,F)=>($ in D)?lN(D,$,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[$]=F,QH=(D,$,F)=>(iN(D,typeof $!="symbol"?$+"":$,F),F),ZH,MH,sN,Y2=(D,$)=>sN?D:$,rN,oN,aN,tN,PD,c1,XF,JF,eN,UH,DP,j7=(D)=>{switch(D){case"initial":case"active":return v.cyan(rN);case"cancel":return v.red(oN);case"error":return v.yellow(aN);case"submit":return v.green(tN)}},YF=(D)=>{let{cursor:$,options:F,style:X}=D,J=D.maxItems??Number.POSITIVE_INFINITY,G=Math.max(process.stdout.rows-4,0),Y=Math.min(G,Math.max(J,5)),B=0;$>=B+Y-3?B=Math.max(Math.min($-Y+3,F.length-Y),0):$<B+2&&(B=Math.max($-2,0));let H=Y<F.length&&B>0,W=Y<F.length&&B+Y<F.length;return F.slice(B,B+Y).map((Q,U,_)=>{let A=U===0&&H,O=U===_.length-1&&W;return A||O?v.dim("..."):X(Q,U+B===$)})},$P=(D)=>new MH({validate:D.validate,placeholder:D.placeholder,defaultValue:D.defaultValue,initialValue:D.initialValue,render(){let $=`${v.gray(PD)}
|
|
33
|
-
${j7(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(PD)} ${X}
|
|
36
|
-
${v.yellow(c1)} ${v.yellow(this.error)}
|
|
37
|
-
`;case"submit":return`${$}${v.gray(PD)} ${v.dim(this.value||D.placeholder)}`;case"cancel":return`${$}${v.gray(PD)} ${v.strikethrough(v.dim(this.value??""))}${this.value?.trim()?`
|
|
38
|
-
${v.gray(PD)}`:""}`;default:return`${$}${v.cyan(PD)} ${X}
|
|
39
|
-
${v.cyan(c1)}
|
|
40
|
-
`}}}).prompt(),FP=(D)=>{let $=D.active??"Yes",F=D.inactive??"No";return new EH({active:$,inactive:F,initialValue:D.initialValue??!0,render(){let X=`${v.gray(PD)}
|
|
41
|
-
${j7(this.state)} ${D.message}
|
|
42
|
-
`,J=this.value?$:F;switch(this.state){case"submit":return`${X}${v.gray(PD)} ${v.dim(J)}`;case"cancel":return`${X}${v.gray(PD)} ${v.strikethrough(v.dim(J))}
|
|
43
|
-
${v.gray(PD)}`;default:return`${X}${v.cyan(PD)} ${this.value?`${v.green(XF)} ${$}`:`${v.dim(JF)} ${v.dim($)}`} ${v.dim("/")} ${this.value?`${v.dim(JF)} ${v.dim(F)}`:`${v.green(XF)} ${F}`}
|
|
44
|
-
${v.cyan(c1)}
|
|
45
|
-
`}}}).prompt()},XP=(D)=>{let $=(F,X)=>{let J=F.label??String(F.value);switch(X){case"selected":return`${v.dim(J)}`;case"active":return`${v.green(XF)} ${J} ${F.hint?v.dim(`(${F.hint})`):""}`;case"cancelled":return`${v.strikethrough(v.dim(J))}`;default:return`${v.dim(JF)} ${v.dim(J)}`}};return new ZH({options:D.options,initialValue:D.initialValue,render(){let F=`${v.gray(PD)}
|
|
46
|
-
${j7(this.state)} ${D.message}
|
|
47
|
-
`;switch(this.state){case"submit":return`${F}${v.gray(PD)} ${$(this.options[this.cursor],"selected")}`;case"cancel":return`${F}${v.gray(PD)} ${$(this.options[this.cursor],"cancelled")}
|
|
48
|
-
${v.gray(PD)}`;default:return`${F}${v.cyan(PD)} ${YF({cursor:this.cursor,options:this.options,maxItems:D.maxItems,style:(X,J)=>$(X,J?"active":"inactive")}).join(`
|
|
49
|
-
${v.cyan(PD)} `)}
|
|
50
|
-
${v.cyan(c1)}
|
|
51
|
-
`}}}).prompt()},JP=(D)=>{let $=(F,X)=>{let J=F.label??String(F.value);return X==="active"?`${v.cyan(eN)} ${J} ${F.hint?v.dim(`(${F.hint})`):""}`:X==="selected"?`${v.green(UH)} ${v.dim(J)}`:X==="cancelled"?`${v.strikethrough(v.dim(J))}`:X==="active-selected"?`${v.green(UH)} ${J} ${F.hint?v.dim(`(${F.hint})`):""}`:X==="submitted"?`${v.dim(J)}`:`${v.dim(DP)} ${v.dim(J)}`};return new dN({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(PD)}
|
|
53
|
-
${j7(this.state)} ${D.message}
|
|
54
|
-
`,X=(J,G)=>{let Y=this.value.includes(J.value);return G&&Y?$(J,"active-selected"):Y?$(J,"selected"):$(J,G?"active":"inactive")};switch(this.state){case"submit":return`${F}${v.gray(PD)} ${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:G})=>this.value.includes(G)).map((G)=>$(G,"cancelled")).join(v.dim(", "));return`${F}${v.gray(PD)} ${J.trim()?`${J}
|
|
55
|
-
${v.gray(PD)}`:""}`}case"error":{let J=this.error.split(`
|
|
56
|
-
`).map((G,Y)=>Y===0?`${v.yellow(c1)} ${v.yellow(G)}`:` ${G}`).join(`
|
|
57
|
-
`);return`${F+v.yellow(PD)} ${YF({options:this.options,cursor:this.cursor,maxItems:D.maxItems,style:X}).join(`
|
|
58
|
-
${v.yellow(PD)} `)}
|
|
59
|
-
${J}
|
|
60
|
-
`}default:return`${F}${v.cyan(PD)} ${YF({options:this.options,cursor:this.cursor,maxItems:D.maxItems,style:X}).join(`
|
|
61
|
-
${v.cyan(PD)} `)}
|
|
62
|
-
${v.cyan(c1)}
|
|
63
|
-
`}}}).prompt()},zH;var qH=M(()=>{J2=ZN(),N7={exports:{}};zN=MN(),v=EN(zN);PN=NN();KH={exports:{}};(function(D){var $={};D.exports=$,$.eastAsianWidth=function(X){var J=X.charCodeAt(0),G=X.length==2?X.charCodeAt(1):0,Y=J;return 55296<=J&&J<=56319&&56320<=G&&G<=57343&&(J&=1023,G&=1023,Y=J<<10|G,Y+=65536),Y==12288||65281<=Y&&Y<=65376||65504<=Y&&Y<=65510?"F":Y==8361||65377<=Y&&Y<=65470||65474<=Y&&Y<=65479||65482<=Y&&Y<=65487||65490<=Y&&Y<=65495||65498<=Y&&Y<=65500||65512<=Y&&Y<=65518?"H":4352<=Y&&Y<=4447||4515<=Y&&Y<=4519||4602<=Y&&Y<=4607||9001<=Y&&Y<=9002||11904<=Y&&Y<=11929||11931<=Y&&Y<=12019||12032<=Y&&Y<=12245||12272<=Y&&Y<=12283||12289<=Y&&Y<=12350||12353<=Y&&Y<=12438||12441<=Y&&Y<=12543||12549<=Y&&Y<=12589||12593<=Y&&Y<=12686||12688<=Y&&Y<=12730||12736<=Y&&Y<=12771||12784<=Y&&Y<=12830||12832<=Y&&Y<=12871||12880<=Y&&Y<=13054||13056<=Y&&Y<=19903||19968<=Y&&Y<=42124||42128<=Y&&Y<=42182||43360<=Y&&Y<=43388||44032<=Y&&Y<=55203||55216<=Y&&Y<=55238||55243<=Y&&Y<=55291||63744<=Y&&Y<=64255||65040<=Y&&Y<=65049||65072<=Y&&Y<=65106||65108<=Y&&Y<=65126||65128<=Y&&Y<=65131||110592<=Y&&Y<=110593||127488<=Y&&Y<=127490||127504<=Y&&Y<=127546||127552<=Y&&Y<=127560||127568<=Y&&Y<=127569||131072<=Y&&Y<=194367||177984<=Y&&Y<=196605||196608<=Y&&Y<=262141?"W":32<=Y&&Y<=126||162<=Y&&Y<=163||165<=Y&&Y<=166||Y==172||Y==175||10214<=Y&&Y<=10221||10629<=Y&&Y<=10630?"Na":Y==161||Y==164||167<=Y&&Y<=168||Y==170||173<=Y&&Y<=174||176<=Y&&Y<=180||182<=Y&&Y<=186||188<=Y&&Y<=191||Y==198||Y==208||215<=Y&&Y<=216||222<=Y&&Y<=225||Y==230||232<=Y&&Y<=234||236<=Y&&Y<=237||Y==240||242<=Y&&Y<=243||247<=Y&&Y<=250||Y==252||Y==254||Y==257||Y==273||Y==275||Y==283||294<=Y&&Y<=295||Y==299||305<=Y&&Y<=307||Y==312||319<=Y&&Y<=322||Y==324||328<=Y&&Y<=331||Y==333||338<=Y&&Y<=339||358<=Y&&Y<=359||Y==363||Y==462||Y==464||Y==466||Y==468||Y==470||Y==472||Y==474||Y==476||Y==593||Y==609||Y==708||Y==711||713<=Y&&Y<=715||Y==717||Y==720||728<=Y&&Y<=731||Y==733||Y==735||768<=Y&&Y<=879||913<=Y&&Y<=929||931<=Y&&Y<=937||945<=Y&&Y<=961||963<=Y&&Y<=969||Y==1025||1040<=Y&&Y<=1103||Y==1105||Y==8208||8211<=Y&&Y<=8214||8216<=Y&&Y<=8217||8220<=Y&&Y<=8221||8224<=Y&&Y<=8226||8228<=Y&&Y<=8231||Y==8240||8242<=Y&&Y<=8243||Y==8245||Y==8251||Y==8254||Y==8308||Y==8319||8321<=Y&&Y<=8324||Y==8364||Y==8451||Y==8453||Y==8457||Y==8467||Y==8470||8481<=Y&&Y<=8482||Y==8486||Y==8491||8531<=Y&&Y<=8532||8539<=Y&&Y<=8542||8544<=Y&&Y<=8555||8560<=Y&&Y<=8569||Y==8585||8592<=Y&&Y<=8601||8632<=Y&&Y<=8633||Y==8658||Y==8660||Y==8679||Y==8704||8706<=Y&&Y<=8707||8711<=Y&&Y<=8712||Y==8715||Y==8719||Y==8721||Y==8725||Y==8730||8733<=Y&&Y<=8736||Y==8739||Y==8741||8743<=Y&&Y<=8748||Y==8750||8756<=Y&&Y<=8759||8764<=Y&&Y<=8765||Y==8776||Y==8780||Y==8786||8800<=Y&&Y<=8801||8804<=Y&&Y<=8807||8810<=Y&&Y<=8811||8814<=Y&&Y<=8815||8834<=Y&&Y<=8835||8838<=Y&&Y<=8839||Y==8853||Y==8857||Y==8869||Y==8895||Y==8978||9312<=Y&&Y<=9449||9451<=Y&&Y<=9547||9552<=Y&&Y<=9587||9600<=Y&&Y<=9615||9618<=Y&&Y<=9621||9632<=Y&&Y<=9633||9635<=Y&&Y<=9641||9650<=Y&&Y<=9651||9654<=Y&&Y<=9655||9660<=Y&&Y<=9661||9664<=Y&&Y<=9665||9670<=Y&&Y<=9672||Y==9675||9678<=Y&&Y<=9681||9698<=Y&&Y<=9701||Y==9711||9733<=Y&&Y<=9734||Y==9737||9742<=Y&&Y<=9743||9748<=Y&&Y<=9749||Y==9756||Y==9758||Y==9792||Y==9794||9824<=Y&&Y<=9825||9827<=Y&&Y<=9829||9831<=Y&&Y<=9834||9836<=Y&&Y<=9837||Y==9839||9886<=Y&&Y<=9887||9918<=Y&&Y<=9919||9924<=Y&&Y<=9933||9935<=Y&&Y<=9953||Y==9955||9960<=Y&&Y<=9983||Y==10045||Y==10071||10102<=Y&&Y<=10111||11093<=Y&&Y<=11097||12872<=Y&&Y<=12879||57344<=Y&&Y<=63743||65024<=Y&&Y<=65039||Y==65533||127232<=Y&&Y<=127242||127248<=Y&&Y<=127277||127280<=Y&&Y<=127337||127344<=Y&&Y<=127386||917760<=Y&&Y<=917999||983040<=Y&&Y<=1048573||1048576<=Y&&Y<=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),G=0,Y=0;Y<J.length;Y++)G=G+this.characterLength(J[Y]);return G},$.slice=function(X,J,G){textLen=$.length(X),J=J||0,G=G||1,J<0&&(J=textLen+J),G<0&&(G=textLen+G);for(var Y="",B=0,H=F(X),W=0;W<H.length;W++){var Q=H[W],U=$.length(Q);if(B>=J-(U==2?1:0))if(B+U<=G)Y+=Q;else break;B+=U}return Y}})(KH);qN=KH.exports,LN=AH(qN),IN=AH(jN);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);TN=Object.keys(wD.color),wN=Object.keys(wD.bgColor);[...TN,...wN];bN=SN(),L7=new Set(["\x1B","\x9B"]),BF=`${kN}8;;`;gN=["up","down","left","right","space","enter","cancel"],q7={actions:new Set(gN),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["\x03","cancel"],["escape","cancel"]])};globalThis.process.platform.startsWith("win");WH=Symbol("clack:cancel");uN=Object.defineProperty;EH=class EH extends R3{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(J2.cursor.move(0,-1)),this.value=$,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}};pN=Object.defineProperty,dN=class extends R3{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]}},lN=Object.defineProperty;ZH=class ZH extends R3{constructor(D){super(D,!1),QH(this,"options"),QH(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}};MH=class MH extends R3{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)})}};sN=nN(),rN=Y2("\u276F",">"),oN=Y2("\u25A0","x"),aN=Y2("\u25B2","x"),tN=Y2("\u2714","\u221A"),PD=Y2(""),c1=Y2(""),XF=Y2("\u25CF",">"),JF=Y2("\u25CB"," "),eN=Y2("\u25FB","[\u2022]"),UH=Y2("\u25FC","[+]"),DP=Y2("\u25FB","[ ]");`${v.gray(PD)} `;zH=Symbol.for("cancel")});import LH from"process";function BP(){if(globalThis.process?.env)for(let D of GP){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 s8(D){return D?D!=="false":!1}function MP(){let D=ZP.find(($)=>$[0]);if(D)return{name:D[1]}}function NP({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 qP(D){if(typeof D!=="string")throw TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(PP,"")}function LP(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 jP(D){return D===12288||D>=65281&&D<=65376||D>=65504&&D<=65510}function IP(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 TP(D){if(!Number.isSafeInteger(D))throw TypeError(`Expected a code point, got \`${typeof D}\`.`)}function wP(D,{ambiguousAsWide:$=!1}={}){if(TP(D),jP(D)||IP(D)||$&&LP(D))return 2;return 1}function kP(D,$={}){if(typeof D!=="string"||D.length===0)return 0;let{ambiguousIsNarrow:F=!0,countAnsiEscapeCodes:X=!1}=$;if(!X)D=qP(D);if(D.length===0)return 0;let J=0,G={ambiguousAsWide:!F};for(let{segment:Y}of bP.segment(D)){let B=Y.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(fP.test(Y))continue;if(SP().test(Y)){J+=2;continue}J+=wP(B,G)}return J}function vP(){let{env:D}=LH,{TERM:$,TERM_PROGRAM:F}=D;if(LH.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 TH(D){if(typeof Intl!=="object"||!Intl.Segmenter)return U8(D).length;return kP(D)}function I7(D){return D.replace(/`([^`]+)`/gm,($,F)=>Z0.cyan(F)).replace(/\s+_([^_]+)_\s+/gm,($,F)=>` ${Z0.underline(F)} `)}function yP(D="white"){return Z0[D]||Z0.white}function uP(D="bgWhite"){return Z0[`bg${D[0].toUpperCase()}${D.slice(1)}`]||Z0.bgWhite}function mP(D={}){let $=pP();if(process.env.CONSOLA_LEVEL)$=Number.parseInt(process.env.CONSOLA_LEVEL)??$;return dB({level:$,defaults:{level:$},stdout:process.stdout,stderr:process.stderr,prompt:(...X)=>Promise.resolve().then(() => (qH(),PH)).then((J)=>J.prompt(...X)),reporters:D.reporters||[D.fancy??!(HF||WF)?new bH:new M7],...D})}function pP(){if(WP)return Y0.debug;if(WF)return Y0.warn;return Y0.info}var T7,E3=(D)=>globalThis.process?.env||import.meta.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(D?T7:globalThis),A8,YP,GP,wH,HP,HF,SH,WP,WF,VP,QP,UP,jH,_P,AP,KP,CP,OP,RP,EP,ZP,zP,PP,SP=()=>{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},bP,fP,xP,hP,gP,b2=(D,$)=>gP?D:$,IH,bH,E;var JD=M(()=>{a$();a$();iB();eB();T7=Object.create(null),A8=new Proxy(T7,{get(D,$){return E3()[$]??T7[$]},has(D,$){let F=E3();return $ in F||$ in T7},set(D,$,F){let X=E3(!0);return X[$]=F,!0},deleteProperty(D,$){if(!$)return!1;let F=E3(!0);return delete F[$],!0},ownKeys(){let D=E3(!0);return Object.keys(D)}}),YP=typeof process<"u"&&process.env&&"development"||"",GP=[["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}]];wH=BP();wH.name;HP=globalThis.process?.platform||"",HF=s8(A8.CI)||wH.ci!==!1,SH=s8(globalThis.process?.stdout&&globalThis.process?.stdout.isTTY),WP=s8(A8.DEBUG),WF=YP==="test"||s8(A8.TEST);s8(A8.MINIMAL);VP=/^win/i.test(HP);!s8(A8.NO_COLOR)&&(s8(A8.FORCE_COLOR)||(SH||VP)&&A8.TERM);QP=(globalThis.process?.versions?.node||"").replace(/^v/,"")||null;Number(QP?.split(".")[0]);UP=globalThis.process||Object.create(null),jH={versions:{}};new Proxy(UP,{get(D,$){if($==="env")return A8;if($ in D)return D[$];if($ in jH)return jH[$]}});_P=globalThis.process?.release?.name==="node",AP=!!globalThis.Bun||!!globalThis.process?.versions?.bun,KP=!!globalThis.Deno,CP=!!globalThis.fastly,OP=!!globalThis.Netlify,RP=!!globalThis.EdgeRuntime,EP=globalThis.navigator?.userAgent==="Cloudflare-Workers",ZP=[[OP,"netlify"],[RP,"edge-light"],[EP,"workerd"],[CP,"fastly"],[KP,"deno"],[AP,"bun"],[_P,"node"]];zP=MP();zP?.name;PP=NP();bP=globalThis.Intl?.Segmenter?new Intl.Segmenter:{segment:(D)=>D.split("")},fP=/^\p{Default_Ignorable_Code_Point}$/u;xP={info:"cyan",fail:"red",success:"green",ready:"green",start:"magenta"},hP={0:"red",1:"yellow"},gP=vP(),IH={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:""};bH=class bH extends M7{formatStack(D,$,F){let X=" ".repeat((F?.errorLevel||0)+1);return`
|
|
64
|
-
${X}`+e$(D,$).map((J)=>" "+J.replace(/^at +/,(G)=>Z0.gray(G)).replace(/\((.+)\)/,(G,Y)=>`(${Z0.cyan(Y)})`)).join(`
|
|
65
|
-
${X}`)}formatType(D,$,F){let X=xP[D.type]||hP[D.level]||"gray";if($)return uP(X)(Z0.black(` ${D.type.toUpperCase()} `));let J=typeof IH[D.type]==="string"?IH[D.type]:D.icon||D.type;return J?yP(X)(J):""}formatLogObj(D,$){let[F,...X]=this.formatArgs(D.args,$).split(`
|
|
66
|
-
`);if(D.type==="box")return tB(I7(F+(X.length>0?`
|
|
67
|
-
`+X.join(`
|
|
68
|
-
`):"")),{title:D.title?I7(D.title):void 0,style:D.style});let J=this.formatDate(D.date,$),G=J&&Z0.gray(J),Y=D.badge??D.level<2,B=this.formatType(D,Y,$),H=D.tag?Z0.gray(D.tag):"",W,Q=this.filterAndJoin([B,I7(F)]),U=this.filterAndJoin($.columns?[H,G]:[H]),_=($.columns||0)-TH(Q)-TH(U)-2;if(W=_>0&&($.columns||0)>=80?Q+" ".repeat(_)+U:(U?`${Z0.gray(`[${U}]`)} `:"")+Q,W+=I7(X.length>0?`
|
|
69
|
-
`+X.join(`
|
|
70
|
-
`):""),D.type==="trace"){let A=Error("Trace: "+D.message);W+=this.formatStack(A.stack||"",A.message)}return Y?`
|
|
71
|
-
`+W+`
|
|
72
|
-
`:W}};E=mP()});var HD,VF,x,f2=(D)=>{switch(typeof D){case"undefined":return x.undefined;case"string":return x.string;case"number":return Number.isNaN(D)?x.nan:x.number;case"boolean":return x.boolean;case"function":return x.function;case"bigint":return x.bigint;case"symbol":return x.symbol;case"object":if(Array.isArray(D))return x.array;if(D===null)return x.null;if(D.then&&typeof D.then==="function"&&D.catch&&typeof D.catch==="function")return x.promise;if(typeof Map<"u"&&D instanceof Map)return x.map;if(typeof Set<"u"&&D instanceof Set)return x.set;if(typeof Date<"u"&&D instanceof Date)return x.date;return x.object;default:return x.unknown}};var Z3=M(()=>{(function(D){D.assertEqual=(J)=>{};function $(J){}D.assertIs=$;function F(J){throw Error()}D.assertNever=F,D.arrayToEnum=(J)=>{let G={};for(let Y of J)G[Y]=Y;return G},D.getValidEnumValues=(J)=>{let G=D.objectKeys(J).filter((B)=>typeof J[J[B]]!=="number"),Y={};for(let B of G)Y[B]=J[B];return D.objectValues(Y)},D.objectValues=(J)=>{return D.objectKeys(J).map(function(G){return J[G]})},D.objectKeys=typeof Object.keys==="function"?(J)=>Object.keys(J):(J)=>{let G=[];for(let Y in J)if(Object.prototype.hasOwnProperty.call(J,Y))G.push(Y);return G},D.find=(J,G)=>{for(let Y of J)if(G(Y))return Y;return},D.isInteger=typeof Number.isInteger==="function"?(J)=>Number.isInteger(J):(J)=>typeof J==="number"&&Number.isFinite(J)&&Math.floor(J)===J;function X(J,G=" | "){return J.map((Y)=>typeof Y==="string"?`'${Y}'`:Y).join(G)}D.joinValues=X,D.jsonStringifyReplacer=(J,G)=>{if(typeof G==="bigint")return G.toString();return G}})(HD||(HD={}));(function(D){D.mergeShapes=($,F)=>{return{...$,...F}}})(VF||(VF={}));x=HD.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"])});var w,dP=(D)=>{return JSON.stringify(D,null,2).replace(/"([^"]+)":/g,"$1:")},N0;var w7=M(()=>{Z3();w=HD.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"]);N0=class N0 extends Error{get errors(){return this.issues}constructor(D){super();this.issues=[],this.addIssue=(F)=>{this.issues=[...this.issues,F]},this.addIssues=(F=[])=>{this.issues=[...this.issues,...F]};let $=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,$);else this.__proto__=$;this.name="ZodError",this.issues=D}format(D){let $=D||function(J){return J.message},F={_errors:[]},X=(J)=>{for(let G of J.issues)if(G.code==="invalid_union")G.unionErrors.map(X);else if(G.code==="invalid_return_type")X(G.returnTypeError);else if(G.code==="invalid_arguments")X(G.argumentsError);else if(G.path.length===0)F._errors.push($(G));else{let Y=F,B=0;while(B<G.path.length){let H=G.path[B];if(B!==G.path.length-1)Y[H]=Y[H]||{_errors:[]};else Y[H]=Y[H]||{_errors:[]},Y[H]._errors.push($(G));Y=Y[H],B++}}};return X(this),F}static assert(D){if(!(D instanceof N0))throw Error(`Not a ZodError: ${D}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,HD.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()}};N0.create=(D)=>{return new N0(D)}});var lP=(D,$)=>{let F;switch(D.code){case w.invalid_type:if(D.received===x.undefined)F="Required";else F=`Expected ${D.expected}, received ${D.received}`;break;case w.invalid_literal:F=`Invalid literal value, expected ${JSON.stringify(D.expected,HD.jsonStringifyReplacer)}`;break;case w.unrecognized_keys:F=`Unrecognized key(s) in object: ${HD.joinValues(D.keys,", ")}`;break;case w.invalid_union:F="Invalid input";break;case w.invalid_union_discriminator:F=`Invalid discriminator value. Expected ${HD.joinValues(D.options)}`;break;case w.invalid_enum_value:F=`Invalid enum value. Expected ${HD.joinValues(D.options)}, received '${D.received}'`;break;case w.invalid_arguments:F="Invalid function arguments";break;case w.invalid_return_type:F="Invalid function return type";break;case w.invalid_date:F="Invalid date";break;case w.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 HD.assertNever(D.validation);else if(D.validation!=="regex")F=`Invalid ${D.validation}`;else F="Invalid";break;case w.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 w.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 w.custom:F="Invalid input";break;case w.invalid_intersection_types:F="Intersection results could not be merged";break;case w.not_multiple_of:F=`Number must be a multiple of ${D.multipleOf}`;break;case w.not_finite:F="Number must be finite";break;default:F=$.defaultError,HD.assertNever(D)}return{message:F}},n2;var QF=M(()=>{w7();Z3();n2=lP});function iP(D){kH=D}function d1(){return kH}var kH;var S7=M(()=>{QF();kH=n2});function y(D,$){let F=d1(),X=M3({issueData:$,data:D.data,path:D.path,errorMaps:[D.common.contextualErrorMap,D.schemaErrorMap,F,F===n2?void 0:n2].filter((J)=>!!J)});D.common.issues.push(X)}class G0{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,G=await X.value;F.push({key:J,value:G})}return G0.mergeObjectSync(D,F)}static mergeObjectSync(D,$){let F={};for(let X of $){let{key:J,value:G}=X;if(J.status==="aborted")return n;if(G.status==="aborted")return n;if(J.status==="dirty")D.dirty();if(G.status==="dirty")D.dirty();if(J.value!=="__proto__"&&(typeof G.value<"u"||X.alwaysSet))F[J.value]=G.value}return{status:D.value,value:F}}}var M3=(D)=>{let{data:$,path:F,errorMaps:X,issueData:J}=D,G=[...F,...J.path||[]],Y={...J,path:G};if(J.message!==void 0)return{...J,path:G,message:J.message};let B="",H=X.filter((W)=>!!W).slice().reverse();for(let W of H)B=W(Y,{data:$,defaultError:B}).message;return{...J,path:G,message:B}},nP,n,r8=(D)=>({status:"dirty",value:D}),V0=(D)=>({status:"valid",value:D}),b7=(D)=>D.status==="aborted",f7=(D)=>D.status==="dirty",K8=(D)=>D.status==="valid",l1=(D)=>typeof Promise<"u"&&D instanceof Promise;var UF=M(()=>{S7();QF();nP=[];n=Object.freeze({status:"aborted"})});var vH=()=>{};var c;var xH=M(()=>{(function(D){D.errToObj=($)=>typeof $==="string"?{message:$}:$||{},D.toString=($)=>typeof $==="string"?$:$?.message})(c||(c={}))});class W2{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:(Y,B)=>{let{message:H}=D;if(Y.code==="invalid_enum_value")return{message:H??B.defaultError};if(typeof B.data>"u")return{message:H??X??B.defaultError};if(Y.code!=="invalid_type")return{message:B.defaultError};return{message:H??F??B.defaultError}},description:J}}class YD{get description(){return this._def.description}_getType(D){return f2(D.data)}_getOrReturnCtx(D,$){return $||{common:D.parent.common,data:D.data,parsedType:f2(D.data),schemaErrorMap:this._def.errorMap,path:D.path,parent:D.parent}}_processInputParams(D){return{status:new G0,ctx:{common:D.parent.common,data:D.data,parsedType:f2(D.data),schemaErrorMap:this._def.errorMap,path:D.path,parent:D.parent}}}_parseSync(D){let $=this._parse(D);if(l1($))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:f2(D)},X=this._parseSync({data:D,path:F.path,parent:F});return hH(F,X)}"~validate"(D){let $={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:D,parsedType:f2(D)};if(!this["~standard"].async)try{let F=this._parseSync({data:D,path:[],parent:$});return K8(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)=>K8(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:f2(D)},X=this._parse({data:D,path:F.path,parent:F}),J=await(l1(X)?X:Promise.resolve(X));return hH(F,J)}refine(D,$){let F=(X)=>{if(typeof $==="string"||typeof $>"u")return{message:$};else if(typeof $==="function")return $(X);else return $};return this._refinement((X,J)=>{let G=D(X),Y=()=>J.addIssue({code:w.custom,...F(X)});if(typeof Promise<"u"&&G instanceof Promise)return G.then((B)=>{if(!B)return Y(),!1;else return!0});if(!G)return Y(),!1;else return!0})}refinement(D,$){return this._refinement((F,X)=>{if(!D(F))return X.addIssue(typeof $==="function"?$(F,X):$),!1;else return!0})}_refinement(D){return new V2({schema:this,typeName:r.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 H2.create(this,this._def)}nullable(){return r2.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return B2.create(this)}promise(){return e8.create(this,this._def)}or(D){return a1.create([this,D],this._def)}and(D){return t1.create(this,D,this._def)}transform(D){return new V2({...FD(this._def),schema:this,typeName:r.ZodEffects,effect:{type:"transform",transform:D}})}default(D){let $=typeof D==="function"?D:()=>D;return new F6({...FD(this._def),innerType:this,defaultValue:$,typeName:r.ZodDefault})}brand(){return new v7({typeName:r.ZodBranded,type:this,...FD(this._def)})}catch(D){let $=typeof D==="function"?D:()=>D;return new X6({...FD(this._def),innerType:this,catchValue:$,typeName:r.ZodCatch})}describe(D){return new this.constructor({...this._def,description:D})}pipe(D){return j3.create(this,D)}readonly(){return J6.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}function uH(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 Vq(D){return new RegExp(`^${uH(D)}$`)}function mH(D){let $=`${yH}T${uH(D)}`,F=[];if(F.push(D.local?"Z?":"Z"),D.offset)F.push("([+-]\\d{2}:?\\d{2})");return $=`${$}(${F.join("|")})`,new RegExp(`^${$}$`)}function Qq(D,$){if(($==="v4"||!$)&&Xq.test(D))return!0;if(($==="v6"||!$)&&Yq.test(D))return!0;return!1}function Uq(D,$){if(!eP.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 _q(D,$){if(($==="v4"||!$)&&Jq.test(D))return!0;if(($==="v6"||!$)&&Gq.test(D))return!0;return!1}function Aq(D,$){let F=(D.toString().split(".")[1]||"").length,X=($.toString().split(".")[1]||"").length,J=F>X?F:X,G=Number.parseInt(D.toFixed(J).replace(".","")),Y=Number.parseInt($.toFixed(J).replace(".",""));return G%Y/10**J}function i1(D){if(D instanceof xD){let $={};for(let F in D.shape){let X=D.shape[F];$[F]=H2.create(i1(X))}return new xD({...D._def,shape:()=>$})}else if(D instanceof B2)return new B2({...D._def,type:i1(D.element)});else if(D instanceof H2)return H2.create(i1(D.unwrap()));else if(D instanceof r2)return r2.create(i1(D.unwrap()));else if(D instanceof v2)return v2.create(D.items.map(($)=>i1($)));else return D}function AF(D,$){let F=f2(D),X=f2($);if(D===$)return{valid:!0,data:D};else if(F===x.object&&X===x.object){let J=HD.objectKeys($),G=HD.objectKeys(D).filter((B)=>J.indexOf(B)!==-1),Y={...D,...$};for(let B of G){let H=AF(D[B],$[B]);if(!H.valid)return{valid:!1};Y[B]=H.data}return{valid:!0,data:Y}}else if(F===x.array&&X===x.array){if(D.length!==$.length)return{valid:!1};let J=[];for(let G=0;G<D.length;G++){let Y=D[G],B=$[G],H=AF(Y,B);if(!H.valid)return{valid:!1};J.push(H.data)}return{valid:!0,data:J}}else if(F===x.date&&X===x.date&&+D===+$)return{valid:!0,data:D};else return{valid:!1}}function pH(D,$){return new E8({values:D,typeName:r.ZodEnum,...FD($)})}function gH(D,$){let F=typeof D==="function"?D($):typeof D==="string"?{message:D}:D;return typeof F==="string"?{message:F}:F}function cH(D,$={},F){if(D)return a8.create().superRefine((X,J)=>{let G=D(X);if(G instanceof Promise)return G.then((Y)=>{if(!Y){let B=gH($,X),H=B.fatal??F??!0;J.addIssue({code:"custom",...B,fatal:H})}});if(!G){let Y=gH($,X),B=Y.fatal??F??!0;J.addIssue({code:"custom",...Y,fatal:B})}return});return a8.create()}var hH=(D,$)=>{if(K8($))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 N0(D.common.issues);return this._error=F,this._error}}}},sP,rP,oP,aP,tP,eP,Dq,$q,Fq="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",_F,Xq,Jq,Yq,Gq,Bq,Hq,yH="((\\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])))",Wq,G2,O8,R8,s1,o8,z3,r1,o1,a8,C8,k2,N3,B2,xD,a1,s2=(D)=>{if(D instanceof e1)return s2(D.schema);else if(D instanceof V2)return s2(D.innerType());else if(D instanceof D6)return[D.value];else if(D instanceof E8)return D.options;else if(D instanceof $6)return HD.objectValues(D.enum);else if(D instanceof F6)return s2(D._def.innerType);else if(D instanceof r1)return[void 0];else if(D instanceof o1)return[null];else if(D instanceof H2)return[void 0,...s2(D.unwrap())];else if(D instanceof r2)return[null,...s2(D.unwrap())];else if(D instanceof v7)return s2(D.unwrap());else if(D instanceof J6)return s2(D.unwrap());else if(D instanceof X6)return s2(D._def.innerType);else return[]},k7,t1,v2,P3,q3,t8,n1,e1,D6,E8,$6,e8,V2,H2,r2,F6,X6,L3,Kq,v7,j3,J6,Cq,r,Oq=(D,$={message:`Input not instance of ${D.name}`})=>cH((F)=>F instanceof D,$),dH,lH,Rq,Eq,iH,Zq,Mq,zq,Nq,Pq,qq,Lq,jq,Iq,Tq,wq,Sq,bq,fq,kq,vq,xq,hq,gq,yq,uq,mq,pq,cq,dq,lq,iq,nq,sq,rq=()=>dH().optional(),oq=()=>lH().optional(),aq=()=>iH().optional(),tq,eq;var nH=M(()=>{w7();S7();xH();UF();Z3();sP=/^c[^\s-]{8,}$/i,rP=/^[0-9a-z]+$/,oP=/^[0-9A-HJKMNP-TV-Z]{26}$/i,aP=/^[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,tP=/^[a-z0-9_-]{21}$/i,eP=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Dq=/^[-+]?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)?)??$/,$q=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Xq=/^(?:(?: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])$/,Jq=/^(?:(?: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])$/,Yq=/^(([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]))$/,Gq=/^(([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])$/,Bq=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Hq=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Wq=new RegExp(`^${yH}$`);G2=class G2 extends YD{_parse(D){if(this._def.coerce)D.data=String(D.data);if(this._getType(D)!==x.string){let J=this._getOrReturnCtx(D);return y(J,{code:w.invalid_type,expected:x.string,received:J.parsedType}),n}let F=new G0,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:w.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:w.too_big,maximum:J.value,type:"string",inclusive:!0,exact:!1,message:J.message}),F.dirty()}else if(J.kind==="length"){let G=D.data.length>J.value,Y=D.data.length<J.value;if(G||Y){if(X=this._getOrReturnCtx(D,X),G)y(X,{code:w.too_big,maximum:J.value,type:"string",inclusive:!0,exact:!0,message:J.message});else if(Y)y(X,{code:w.too_small,minimum:J.value,type:"string",inclusive:!0,exact:!0,message:J.message});F.dirty()}}else if(J.kind==="email"){if(!$q.test(D.data))X=this._getOrReturnCtx(D,X),y(X,{validation:"email",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="emoji"){if(!_F)_F=new RegExp(Fq,"u");if(!_F.test(D.data))X=this._getOrReturnCtx(D,X),y(X,{validation:"emoji",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="uuid"){if(!aP.test(D.data))X=this._getOrReturnCtx(D,X),y(X,{validation:"uuid",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="nanoid"){if(!tP.test(D.data))X=this._getOrReturnCtx(D,X),y(X,{validation:"nanoid",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cuid"){if(!sP.test(D.data))X=this._getOrReturnCtx(D,X),y(X,{validation:"cuid",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cuid2"){if(!rP.test(D.data))X=this._getOrReturnCtx(D,X),y(X,{validation:"cuid2",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="ulid"){if(!oP.test(D.data))X=this._getOrReturnCtx(D,X),y(X,{validation:"ulid",code:w.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:w.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:w.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:w.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:w.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:w.invalid_string,validation:{endsWith:J.value},message:J.message}),F.dirty()}else if(J.kind==="datetime"){if(!mH(J).test(D.data))X=this._getOrReturnCtx(D,X),y(X,{code:w.invalid_string,validation:"datetime",message:J.message}),F.dirty()}else if(J.kind==="date"){if(!Wq.test(D.data))X=this._getOrReturnCtx(D,X),y(X,{code:w.invalid_string,validation:"date",message:J.message}),F.dirty()}else if(J.kind==="time"){if(!Vq(J).test(D.data))X=this._getOrReturnCtx(D,X),y(X,{code:w.invalid_string,validation:"time",message:J.message}),F.dirty()}else if(J.kind==="duration"){if(!Dq.test(D.data))X=this._getOrReturnCtx(D,X),y(X,{validation:"duration",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="ip"){if(!Qq(D.data,J.version))X=this._getOrReturnCtx(D,X),y(X,{validation:"ip",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="jwt"){if(!Uq(D.data,J.alg))X=this._getOrReturnCtx(D,X),y(X,{validation:"jwt",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cidr"){if(!_q(D.data,J.version))X=this._getOrReturnCtx(D,X),y(X,{validation:"cidr",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="base64"){if(!Bq.test(D.data))X=this._getOrReturnCtx(D,X),y(X,{validation:"base64",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="base64url"){if(!Hq.test(D.data))X=this._getOrReturnCtx(D,X),y(X,{validation:"base64url",code:w.invalid_string,message:J.message}),F.dirty()}else HD.assertNever(J);return{status:F.value,value:D.data}}_regex(D,$,F){return this.refinement((X)=>D.test(X),{validation:$,code:w.invalid_string,...c.errToObj(F)})}_addCheck(D){return new G2({...this._def,checks:[...this._def.checks,D]})}email(D){return this._addCheck({kind:"email",...c.errToObj(D)})}url(D){return this._addCheck({kind:"url",...c.errToObj(D)})}emoji(D){return this._addCheck({kind:"emoji",...c.errToObj(D)})}uuid(D){return this._addCheck({kind:"uuid",...c.errToObj(D)})}nanoid(D){return this._addCheck({kind:"nanoid",...c.errToObj(D)})}cuid(D){return this._addCheck({kind:"cuid",...c.errToObj(D)})}cuid2(D){return this._addCheck({kind:"cuid2",...c.errToObj(D)})}ulid(D){return this._addCheck({kind:"ulid",...c.errToObj(D)})}base64(D){return this._addCheck({kind:"base64",...c.errToObj(D)})}base64url(D){return this._addCheck({kind:"base64url",...c.errToObj(D)})}jwt(D){return this._addCheck({kind:"jwt",...c.errToObj(D)})}ip(D){return this._addCheck({kind:"ip",...c.errToObj(D)})}cidr(D){return this._addCheck({kind:"cidr",...c.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,...c.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,...c.errToObj(D?.message)})}duration(D){return this._addCheck({kind:"duration",...c.errToObj(D)})}regex(D,$){return this._addCheck({kind:"regex",regex:D,...c.errToObj($)})}includes(D,$){return this._addCheck({kind:"includes",value:D,position:$?.position,...c.errToObj($?.message)})}startsWith(D,$){return this._addCheck({kind:"startsWith",value:D,...c.errToObj($)})}endsWith(D,$){return this._addCheck({kind:"endsWith",value:D,...c.errToObj($)})}min(D,$){return this._addCheck({kind:"min",value:D,...c.errToObj($)})}max(D,$){return this._addCheck({kind:"max",value:D,...c.errToObj($)})}length(D,$){return this._addCheck({kind:"length",value:D,...c.errToObj($)})}nonempty(D){return this.min(1,c.errToObj(D))}trim(){return new G2({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new G2({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new G2({...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}};G2.create=(D)=>{return new G2({checks:[],typeName:r.ZodString,coerce:D?.coerce??!1,...FD(D)})};O8=class O8 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)!==x.number){let J=this._getOrReturnCtx(D);return y(J,{code:w.invalid_type,expected:x.number,received:J.parsedType}),n}let F=void 0,X=new G0;for(let J of this._def.checks)if(J.kind==="int"){if(!HD.isInteger(D.data))F=this._getOrReturnCtx(D,F),y(F,{code:w.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:w.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:w.too_big,maximum:J.value,type:"number",inclusive:J.inclusive,exact:!1,message:J.message}),X.dirty()}else if(J.kind==="multipleOf"){if(Aq(D.data,J.value)!==0)F=this._getOrReturnCtx(D,F),y(F,{code:w.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:w.not_finite,message:J.message}),X.dirty()}else HD.assertNever(J);return{status:X.value,value:D.data}}gte(D,$){return this.setLimit("min",D,!0,c.toString($))}gt(D,$){return this.setLimit("min",D,!1,c.toString($))}lte(D,$){return this.setLimit("max",D,!0,c.toString($))}lt(D,$){return this.setLimit("max",D,!1,c.toString($))}setLimit(D,$,F,X){return new O8({...this._def,checks:[...this._def.checks,{kind:D,value:$,inclusive:F,message:c.toString(X)}]})}_addCheck(D){return new O8({...this._def,checks:[...this._def.checks,D]})}int(D){return this._addCheck({kind:"int",message:c.toString(D)})}positive(D){return this._addCheck({kind:"min",value:0,inclusive:!1,message:c.toString(D)})}negative(D){return this._addCheck({kind:"max",value:0,inclusive:!1,message:c.toString(D)})}nonpositive(D){return this._addCheck({kind:"max",value:0,inclusive:!0,message:c.toString(D)})}nonnegative(D){return this._addCheck({kind:"min",value:0,inclusive:!0,message:c.toString(D)})}multipleOf(D,$){return this._addCheck({kind:"multipleOf",value:D,message:c.toString($)})}finite(D){return this._addCheck({kind:"finite",message:c.toString(D)})}safe(D){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:c.toString(D)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:c.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"&&HD.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)}};O8.create=(D)=>{return new O8({checks:[],typeName:r.ZodNumber,coerce:D?.coerce||!1,...FD(D)})};R8=class R8 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)!==x.bigint)return this._getInvalidInput(D);let F=void 0,X=new G0;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:w.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:w.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:w.not_multiple_of,multipleOf:J.value,message:J.message}),X.dirty()}else HD.assertNever(J);return{status:X.value,value:D.data}}_getInvalidInput(D){let $=this._getOrReturnCtx(D);return y($,{code:w.invalid_type,expected:x.bigint,received:$.parsedType}),n}gte(D,$){return this.setLimit("min",D,!0,c.toString($))}gt(D,$){return this.setLimit("min",D,!1,c.toString($))}lte(D,$){return this.setLimit("max",D,!0,c.toString($))}lt(D,$){return this.setLimit("max",D,!1,c.toString($))}setLimit(D,$,F,X){return new R8({...this._def,checks:[...this._def.checks,{kind:D,value:$,inclusive:F,message:c.toString(X)}]})}_addCheck(D){return new R8({...this._def,checks:[...this._def.checks,D]})}positive(D){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:c.toString(D)})}negative(D){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:c.toString(D)})}nonpositive(D){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:c.toString(D)})}nonnegative(D){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:c.toString(D)})}multipleOf(D,$){return this._addCheck({kind:"multipleOf",value:D,message:c.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}};R8.create=(D)=>{return new R8({checks:[],typeName:r.ZodBigInt,coerce:D?.coerce??!1,...FD(D)})};s1=class s1 extends YD{_parse(D){if(this._def.coerce)D.data=Boolean(D.data);if(this._getType(D)!==x.boolean){let F=this._getOrReturnCtx(D);return y(F,{code:w.invalid_type,expected:x.boolean,received:F.parsedType}),n}return V0(D.data)}};s1.create=(D)=>{return new s1({typeName:r.ZodBoolean,coerce:D?.coerce||!1,...FD(D)})};o8=class o8 extends YD{_parse(D){if(this._def.coerce)D.data=new Date(D.data);if(this._getType(D)!==x.date){let J=this._getOrReturnCtx(D);return y(J,{code:w.invalid_type,expected:x.date,received:J.parsedType}),n}if(Number.isNaN(D.data.getTime())){let J=this._getOrReturnCtx(D);return y(J,{code:w.invalid_date}),n}let F=new G0,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:w.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:w.too_big,message:J.message,inclusive:!0,exact:!1,maximum:J.value,type:"date"}),F.dirty()}else HD.assertNever(J);return{status:F.value,value:new Date(D.data.getTime())}}_addCheck(D){return new o8({...this._def,checks:[...this._def.checks,D]})}min(D,$){return this._addCheck({kind:"min",value:D.getTime(),message:c.toString($)})}max(D,$){return this._addCheck({kind:"max",value:D.getTime(),message:c.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}};o8.create=(D)=>{return new o8({checks:[],coerce:D?.coerce||!1,typeName:r.ZodDate,...FD(D)})};z3=class z3 extends YD{_parse(D){if(this._getType(D)!==x.symbol){let F=this._getOrReturnCtx(D);return y(F,{code:w.invalid_type,expected:x.symbol,received:F.parsedType}),n}return V0(D.data)}};z3.create=(D)=>{return new z3({typeName:r.ZodSymbol,...FD(D)})};r1=class r1 extends YD{_parse(D){if(this._getType(D)!==x.undefined){let F=this._getOrReturnCtx(D);return y(F,{code:w.invalid_type,expected:x.undefined,received:F.parsedType}),n}return V0(D.data)}};r1.create=(D)=>{return new r1({typeName:r.ZodUndefined,...FD(D)})};o1=class o1 extends YD{_parse(D){if(this._getType(D)!==x.null){let F=this._getOrReturnCtx(D);return y(F,{code:w.invalid_type,expected:x.null,received:F.parsedType}),n}return V0(D.data)}};o1.create=(D)=>{return new o1({typeName:r.ZodNull,...FD(D)})};a8=class a8 extends YD{constructor(){super(...arguments);this._any=!0}_parse(D){return V0(D.data)}};a8.create=(D)=>{return new a8({typeName:r.ZodAny,...FD(D)})};C8=class C8 extends YD{constructor(){super(...arguments);this._unknown=!0}_parse(D){return V0(D.data)}};C8.create=(D)=>{return new C8({typeName:r.ZodUnknown,...FD(D)})};k2=class k2 extends YD{_parse(D){let $=this._getOrReturnCtx(D);return y($,{code:w.invalid_type,expected:x.never,received:$.parsedType}),n}};k2.create=(D)=>{return new k2({typeName:r.ZodNever,...FD(D)})};N3=class N3 extends YD{_parse(D){if(this._getType(D)!==x.undefined){let F=this._getOrReturnCtx(D);return y(F,{code:w.invalid_type,expected:x.void,received:F.parsedType}),n}return V0(D.data)}};N3.create=(D)=>{return new N3({typeName:r.ZodVoid,...FD(D)})};B2=class B2 extends YD{_parse(D){let{ctx:$,status:F}=this._processInputParams(D),X=this._def;if($.parsedType!==x.array)return y($,{code:w.invalid_type,expected:x.array,received:$.parsedType}),n;if(X.exactLength!==null){let G=$.data.length>X.exactLength.value,Y=$.data.length<X.exactLength.value;if(G||Y)y($,{code:G?w.too_big:w.too_small,minimum:Y?X.exactLength.value:void 0,maximum:G?X.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:X.exactLength.message}),F.dirty()}if(X.minLength!==null){if($.data.length<X.minLength.value)y($,{code:w.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:w.too_big,maximum:X.maxLength.value,type:"array",inclusive:!0,exact:!1,message:X.maxLength.message}),F.dirty()}if($.common.async)return Promise.all([...$.data].map((G,Y)=>{return X.type._parseAsync(new W2($,G,$.path,Y))})).then((G)=>{return G0.mergeArray(F,G)});let J=[...$.data].map((G,Y)=>{return X.type._parseSync(new W2($,G,$.path,Y))});return G0.mergeArray(F,J)}get element(){return this._def.type}min(D,$){return new B2({...this._def,minLength:{value:D,message:c.toString($)}})}max(D,$){return new B2({...this._def,maxLength:{value:D,message:c.toString($)}})}length(D,$){return new B2({...this._def,exactLength:{value:D,message:c.toString($)}})}nonempty(D){return this.min(1,D)}};B2.create=(D,$)=>{return new B2({type:D,minLength:null,maxLength:null,exactLength:null,typeName:r.ZodArray,...FD($)})};xD=class xD 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(),$=HD.objectKeys(D);return this._cached={shape:D,keys:$},this._cached}_parse(D){if(this._getType(D)!==x.object){let H=this._getOrReturnCtx(D);return y(H,{code:w.invalid_type,expected:x.object,received:H.parsedType}),n}let{status:F,ctx:X}=this._processInputParams(D),{shape:J,keys:G}=this._getCached(),Y=[];if(!(this._def.catchall instanceof k2&&this._def.unknownKeys==="strip")){for(let H in X.data)if(!G.includes(H))Y.push(H)}let B=[];for(let H of G){let W=J[H],Q=X.data[H];B.push({key:{status:"valid",value:H},value:W._parse(new W2(X,Q,X.path,H)),alwaysSet:H in X.data})}if(this._def.catchall instanceof k2){let H=this._def.unknownKeys;if(H==="passthrough")for(let W of Y)B.push({key:{status:"valid",value:W},value:{status:"valid",value:X.data[W]}});else if(H==="strict"){if(Y.length>0)y(X,{code:w.unrecognized_keys,keys:Y}),F.dirty()}else if(H==="strip");else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let H=this._def.catchall;for(let W of Y){let Q=X.data[W];B.push({key:{status:"valid",value:W},value:H._parse(new W2(X,Q,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 Q=await W.key,U=await W.value;H.push({key:Q,value:U,alwaysSet:W.alwaysSet})}return H}).then((H)=>{return G0.mergeObjectSync(F,H)});else return G0.mergeObjectSync(F,B)}get shape(){return this._def.shape()}strict(D){return c.errToObj,new xD({...this._def,unknownKeys:"strict",...D!==void 0?{errorMap:($,F)=>{let X=this._def.errorMap?.($,F).message??F.defaultError;if($.code==="unrecognized_keys")return{message:c.errToObj(D).message??X};return{message:X}}}:{}})}strip(){return new xD({...this._def,unknownKeys:"strip"})}passthrough(){return new xD({...this._def,unknownKeys:"passthrough"})}extend(D){return new xD({...this._def,shape:()=>({...this._def.shape(),...D})})}merge(D){return new xD({unknownKeys:D._def.unknownKeys,catchall:D._def.catchall,shape:()=>({...this._def.shape(),...D._def.shape()}),typeName:r.ZodObject})}setKey(D,$){return this.augment({[D]:$})}catchall(D){return new xD({...this._def,catchall:D})}pick(D){let $={};for(let F of HD.objectKeys(D))if(D[F]&&this.shape[F])$[F]=this.shape[F];return new xD({...this._def,shape:()=>$})}omit(D){let $={};for(let F of HD.objectKeys(this.shape))if(!D[F])$[F]=this.shape[F];return new xD({...this._def,shape:()=>$})}deepPartial(){return i1(this)}partial(D){let $={};for(let F of HD.objectKeys(this.shape)){let X=this.shape[F];if(D&&!D[F])$[F]=X;else $[F]=X.optional()}return new xD({...this._def,shape:()=>$})}required(D){let $={};for(let F of HD.objectKeys(this.shape))if(D&&!D[F])$[F]=this.shape[F];else{let J=this.shape[F];while(J instanceof H2)J=J._def.innerType;$[F]=J}return new xD({...this._def,shape:()=>$})}keyof(){return pH(HD.objectKeys(this.shape))}};xD.create=(D,$)=>{return new xD({shape:()=>D,unknownKeys:"strip",catchall:k2.create(),typeName:r.ZodObject,...FD($)})};xD.strictCreate=(D,$)=>{return new xD({shape:()=>D,unknownKeys:"strict",catchall:k2.create(),typeName:r.ZodObject,...FD($)})};xD.lazycreate=(D,$)=>{return new xD({shape:D,unknownKeys:"strip",catchall:k2.create(),typeName:r.ZodObject,...FD($)})};a1=class a1 extends YD{_parse(D){let{ctx:$}=this._processInputParams(D),F=this._def.options;function X(J){for(let Y of J)if(Y.result.status==="valid")return Y.result;for(let Y of J)if(Y.result.status==="dirty")return $.common.issues.push(...Y.ctx.common.issues),Y.result;let G=J.map((Y)=>new N0(Y.ctx.common.issues));return y($,{code:w.invalid_union,unionErrors:G}),n}if($.common.async)return Promise.all(F.map(async(J)=>{let G={...$,common:{...$.common,issues:[]},parent:null};return{result:await J._parseAsync({data:$.data,path:$.path,parent:G}),ctx:G}})).then(X);else{let J=void 0,G=[];for(let B of F){let H={...$,common:{...$.common,issues:[]},parent:null},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)G.push(H.common.issues)}if(J)return $.common.issues.push(...J.ctx.common.issues),J.result;let Y=G.map((B)=>new N0(B));return y($,{code:w.invalid_union,unionErrors:Y}),n}}get options(){return this._def.options}};a1.create=(D,$)=>{return new a1({options:D,typeName:r.ZodUnion,...FD($)})};k7=class k7 extends YD{_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==x.object)return y($,{code:w.invalid_type,expected:x.object,received:$.parsedType}),n;let F=this.discriminator,X=$.data[F],J=this.optionsMap.get(X);if(!J)return y($,{code:w.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 G=s2(J.shape[D]);if(!G.length)throw Error(`A discriminator value for key \`${D}\` could not be extracted from all schema options`);for(let Y of G){if(X.has(Y))throw Error(`Discriminator property ${String(D)} has duplicate value ${String(Y)}`);X.set(Y,J)}}return new k7({typeName:r.ZodDiscriminatedUnion,discriminator:D,options:$,optionsMap:X,...FD(F)})}};t1=class t1 extends YD{_parse(D){let{status:$,ctx:F}=this._processInputParams(D),X=(J,G)=>{if(b7(J)||b7(G))return n;let Y=AF(J.value,G.value);if(!Y.valid)return y(F,{code:w.invalid_intersection_types}),n;if(f7(J)||f7(G))$.dirty();return{status:$.value,value:Y.data}};if(F.common.async)return Promise.all([this._def.left._parseAsync({data:F.data,path:F.path,parent:F}),this._def.right._parseAsync({data:F.data,path:F.path,parent:F})]).then(([J,G])=>X(J,G));else return X(this._def.left._parseSync({data:F.data,path:F.path,parent:F}),this._def.right._parseSync({data:F.data,path:F.path,parent:F}))}};t1.create=(D,$,F)=>{return new t1({left:D,right:$,typeName:r.ZodIntersection,...FD(F)})};v2=class v2 extends YD{_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==x.array)return y(F,{code:w.invalid_type,expected:x.array,received:F.parsedType}),n;if(F.data.length<this._def.items.length)return y(F,{code:w.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:w.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),$.dirty();let J=[...F.data].map((G,Y)=>{let B=this._def.items[Y]||this._def.rest;if(!B)return null;return B._parse(new W2(F,G,F.path,Y))}).filter((G)=>!!G);if(F.common.async)return Promise.all(J).then((G)=>{return G0.mergeArray($,G)});else return G0.mergeArray($,J)}get items(){return this._def.items}rest(D){return new v2({...this._def,rest:D})}};v2.create=(D,$)=>{if(!Array.isArray(D))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new v2({items:D,typeName:r.ZodTuple,rest:null,...FD($)})};P3=class P3 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!==x.object)return y(F,{code:w.invalid_type,expected:x.object,received:F.parsedType}),n;let X=[],J=this._def.keyType,G=this._def.valueType;for(let Y in F.data)X.push({key:J._parse(new W2(F,Y,F.path,Y)),value:G._parse(new W2(F,F.data[Y],F.path,Y)),alwaysSet:Y in F.data});if(F.common.async)return G0.mergeObjectAsync($,X);else return G0.mergeObjectSync($,X)}get element(){return this._def.valueType}static create(D,$,F){if($ instanceof YD)return new P3({keyType:D,valueType:$,typeName:r.ZodRecord,...FD(F)});return new P3({keyType:G2.create(),valueType:D,typeName:r.ZodRecord,...FD($)})}};q3=class q3 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!==x.map)return y(F,{code:w.invalid_type,expected:x.map,received:F.parsedType}),n;let X=this._def.keyType,J=this._def.valueType,G=[...F.data.entries()].map(([Y,B],H)=>{return{key:X._parse(new W2(F,Y,F.path,[H,"key"])),value:J._parse(new W2(F,B,F.path,[H,"value"]))}});if(F.common.async){let Y=new Map;return Promise.resolve().then(async()=>{for(let B of G){let H=await B.key,W=await B.value;if(H.status==="aborted"||W.status==="aborted")return n;if(H.status==="dirty"||W.status==="dirty")$.dirty();Y.set(H.value,W.value)}return{status:$.value,value:Y}})}else{let Y=new Map;for(let B of G){let{key:H,value:W}=B;if(H.status==="aborted"||W.status==="aborted")return n;if(H.status==="dirty"||W.status==="dirty")$.dirty();Y.set(H.value,W.value)}return{status:$.value,value:Y}}}};q3.create=(D,$,F)=>{return new q3({valueType:$,keyType:D,typeName:r.ZodMap,...FD(F)})};t8=class t8 extends YD{_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==x.set)return y(F,{code:w.invalid_type,expected:x.set,received:F.parsedType}),n;let X=this._def;if(X.minSize!==null){if(F.data.size<X.minSize.value)y(F,{code:w.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:w.too_big,maximum:X.maxSize.value,type:"set",inclusive:!0,exact:!1,message:X.maxSize.message}),$.dirty()}let J=this._def.valueType;function G(B){let H=new Set;for(let W of B){if(W.status==="aborted")return n;if(W.status==="dirty")$.dirty();H.add(W.value)}return{status:$.value,value:H}}let Y=[...F.data.values()].map((B,H)=>J._parse(new W2(F,B,F.path,H)));if(F.common.async)return Promise.all(Y).then((B)=>G(B));else return G(Y)}min(D,$){return new t8({...this._def,minSize:{value:D,message:c.toString($)}})}max(D,$){return new t8({...this._def,maxSize:{value:D,message:c.toString($)}})}size(D,$){return this.min(D,$).max(D,$)}nonempty(D){return this.min(1,D)}};t8.create=(D,$)=>{return new t8({valueType:D,minSize:null,maxSize:null,typeName:r.ZodSet,...FD($)})};n1=class n1 extends YD{constructor(){super(...arguments);this.validate=this.implement}_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==x.function)return y($,{code:w.invalid_type,expected:x.function,received:$.parsedType}),n;function F(Y,B){return M3({data:Y,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,d1(),n2].filter((H)=>!!H),issueData:{code:w.invalid_arguments,argumentsError:B}})}function X(Y,B){return M3({data:Y,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,d1(),n2].filter((H)=>!!H),issueData:{code:w.invalid_return_type,returnTypeError:B}})}let J={errorMap:$.common.contextualErrorMap},G=$.data;if(this._def.returns instanceof e8){let Y=this;return V0(async function(...B){let H=new N0([]),W=await Y._def.args.parseAsync(B,J).catch((_)=>{throw H.addIssue(F(B,_)),H}),Q=await Reflect.apply(G,this,W);return await Y._def.returns._def.type.parseAsync(Q,J).catch((_)=>{throw H.addIssue(X(Q,_)),H})})}else{let Y=this;return V0(function(...B){let H=Y._def.args.safeParse(B,J);if(!H.success)throw new N0([F(B,H.error)]);let W=Reflect.apply(G,this,H.data),Q=Y._def.returns.safeParse(W,J);if(!Q.success)throw new N0([X(W,Q.error)]);return Q.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...D){return new n1({...this._def,args:v2.create(D).rest(C8.create())})}returns(D){return new n1({...this._def,returns:D})}implement(D){return this.parse(D)}strictImplement(D){return this.parse(D)}static create(D,$,F){return new n1({args:D?D:v2.create([]).rest(C8.create()),returns:$||C8.create(),typeName:r.ZodFunction,...FD(F)})}};e1=class e1 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:$})}};e1.create=(D,$)=>{return new e1({getter:D,typeName:r.ZodLazy,...FD($)})};D6=class D6 extends YD{_parse(D){if(D.data!==this._def.value){let $=this._getOrReturnCtx(D);return y($,{received:$.data,code:w.invalid_literal,expected:this._def.value}),n}return{status:"valid",value:D.data}}get value(){return this._def.value}};D6.create=(D,$)=>{return new D6({value:D,typeName:r.ZodLiteral,...FD($)})};E8=class E8 extends YD{_parse(D){if(typeof D.data!=="string"){let $=this._getOrReturnCtx(D),F=this._def.values;return y($,{expected:HD.joinValues(F),received:$.parsedType,code:w.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:w.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 E8.create(D,{...this._def,...$})}exclude(D,$=this._def){return E8.create(this.options.filter((F)=>!D.includes(F)),{...this._def,...$})}};E8.create=pH;$6=class $6 extends YD{_parse(D){let $=HD.getValidEnumValues(this._def.values),F=this._getOrReturnCtx(D);if(F.parsedType!==x.string&&F.parsedType!==x.number){let X=HD.objectValues($);return y(F,{expected:HD.joinValues(X),received:F.parsedType,code:w.invalid_type}),n}if(!this._cache)this._cache=new Set(HD.getValidEnumValues(this._def.values));if(!this._cache.has(D.data)){let X=HD.objectValues($);return y(F,{received:F.data,code:w.invalid_enum_value,options:X}),n}return V0(D.data)}get enum(){return this._def.values}};$6.create=(D,$)=>{return new $6({values:D,typeName:r.ZodNativeEnum,...FD($)})};e8=class e8 extends YD{unwrap(){return this._def.type}_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==x.promise&&$.common.async===!1)return y($,{code:w.invalid_type,expected:x.promise,received:$.parsedType}),n;let F=$.parsedType===x.promise?$.data:Promise.resolve($.data);return V0(F.then((X)=>{return this._def.type.parseAsync(X,{path:$.path,errorMap:$.common.contextualErrorMap})}))}};e8.create=(D,$)=>{return new e8({type:D,typeName:r.ZodPromise,...FD($)})};V2=class V2 extends YD{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===r.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(D){let{status:$,ctx:F}=this._processInputParams(D),X=this._def.effect||null,J={addIssue:(G)=>{if(y(F,G),G.fatal)$.abort();else $.dirty()},get path(){return F.path}};if(J.addIssue=J.addIssue.bind(J),X.type==="preprocess"){let G=X.transform(F.data,J);if(F.common.async)return Promise.resolve(G).then(async(Y)=>{if($.value==="aborted")return n;let B=await this._def.schema._parseAsync({data:Y,path:F.path,parent:F});if(B.status==="aborted")return n;if(B.status==="dirty")return r8(B.value);if($.value==="dirty")return r8(B.value);return B});else{if($.value==="aborted")return n;let Y=this._def.schema._parseSync({data:G,path:F.path,parent:F});if(Y.status==="aborted")return n;if(Y.status==="dirty")return r8(Y.value);if($.value==="dirty")return r8(Y.value);return Y}}if(X.type==="refinement"){let G=(Y)=>{let B=X.refinement(Y,J);if(F.common.async)return Promise.resolve(B);if(B instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return Y};if(F.common.async===!1){let Y=this._def.schema._parseSync({data:F.data,path:F.path,parent:F});if(Y.status==="aborted")return n;if(Y.status==="dirty")$.dirty();return G(Y.value),{status:$.value,value:Y.value}}else return this._def.schema._parseAsync({data:F.data,path:F.path,parent:F}).then((Y)=>{if(Y.status==="aborted")return n;if(Y.status==="dirty")$.dirty();return G(Y.value).then(()=>{return{status:$.value,value:Y.value}})})}if(X.type==="transform")if(F.common.async===!1){let G=this._def.schema._parseSync({data:F.data,path:F.path,parent:F});if(!K8(G))return n;let Y=X.transform(G.value,J);if(Y instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:$.value,value:Y}}else return this._def.schema._parseAsync({data:F.data,path:F.path,parent:F}).then((G)=>{if(!K8(G))return n;return Promise.resolve(X.transform(G.value,J)).then((Y)=>({status:$.value,value:Y}))});HD.assertNever(X)}};V2.create=(D,$,F)=>{return new V2({schema:D,typeName:r.ZodEffects,effect:$,...FD(F)})};V2.createWithPreprocess=(D,$,F)=>{return new V2({schema:$,effect:{type:"preprocess",transform:D},typeName:r.ZodEffects,...FD(F)})};H2=class H2 extends YD{_parse(D){if(this._getType(D)===x.undefined)return V0(void 0);return this._def.innerType._parse(D)}unwrap(){return this._def.innerType}};H2.create=(D,$)=>{return new H2({innerType:D,typeName:r.ZodOptional,...FD($)})};r2=class r2 extends YD{_parse(D){if(this._getType(D)===x.null)return V0(null);return this._def.innerType._parse(D)}unwrap(){return this._def.innerType}};r2.create=(D,$)=>{return new r2({innerType:D,typeName:r.ZodNullable,...FD($)})};F6=class F6 extends YD{_parse(D){let{ctx:$}=this._processInputParams(D),F=$.data;if($.parsedType===x.undefined)F=this._def.defaultValue();return this._def.innerType._parse({data:F,path:$.path,parent:$})}removeDefault(){return this._def.innerType}};F6.create=(D,$)=>{return new F6({innerType:D,typeName:r.ZodDefault,defaultValue:typeof $.default==="function"?$.default:()=>$.default,...FD($)})};X6=class X6 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(l1(X))return X.then((J)=>{return{status:"valid",value:J.status==="valid"?J.value:this._def.catchValue({get error(){return new N0(F.common.issues)},input:F.data})}});else return{status:"valid",value:X.status==="valid"?X.value:this._def.catchValue({get error(){return new N0(F.common.issues)},input:F.data})}}removeCatch(){return this._def.innerType}};X6.create=(D,$)=>{return new X6({innerType:D,typeName:r.ZodCatch,catchValue:typeof $.catch==="function"?$.catch:()=>$.catch,...FD($)})};L3=class L3 extends YD{_parse(D){if(this._getType(D)!==x.nan){let F=this._getOrReturnCtx(D);return y(F,{code:w.invalid_type,expected:x.nan,received:F.parsedType}),n}return{status:"valid",value:D.data}}};L3.create=(D)=>{return new L3({typeName:r.ZodNaN,...FD(D)})};Kq=Symbol("zod_brand");v7=class v7 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}};j3=class j3 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(),r8(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 j3({in:D,out:$,typeName:r.ZodPipeline})}};J6=class J6 extends YD{_parse(D){let $=this._def.innerType._parse(D),F=(X)=>{if(K8(X))X.value=Object.freeze(X.value);return X};return l1($)?$.then((X)=>F(X)):F($)}unwrap(){return this._def.innerType}};J6.create=(D,$)=>{return new J6({innerType:D,typeName:r.ZodReadonly,...FD($)})};Cq={object:xD.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"})(r||(r={}));dH=G2.create,lH=O8.create,Rq=L3.create,Eq=R8.create,iH=s1.create,Zq=o8.create,Mq=z3.create,zq=r1.create,Nq=o1.create,Pq=a8.create,qq=C8.create,Lq=k2.create,jq=N3.create,Iq=B2.create,Tq=xD.create,wq=xD.strictCreate,Sq=a1.create,bq=k7.create,fq=t1.create,kq=v2.create,vq=P3.create,xq=q3.create,hq=t8.create,gq=n1.create,yq=e1.create,uq=D6.create,mq=E8.create,pq=$6.create,cq=e8.create,dq=V2.create,lq=H2.create,iq=r2.create,nq=V2.createWithPreprocess,sq=j3.create,tq={string:(D)=>G2.create({...D,coerce:!0}),number:(D)=>O8.create({...D,coerce:!0}),boolean:(D)=>s1.create({...D,coerce:!0}),bigint:(D)=>R8.create({...D,coerce:!0}),date:(D)=>o8.create({...D,coerce:!0})},eq=n});var V={};n8(V,{void:()=>jq,util:()=>HD,unknown:()=>qq,union:()=>Sq,undefined:()=>zq,tuple:()=>kq,transformer:()=>dq,symbol:()=>Mq,string:()=>dH,strictObject:()=>wq,setErrorMap:()=>iP,set:()=>hq,record:()=>vq,quotelessJson:()=>dP,promise:()=>cq,preprocess:()=>nq,pipeline:()=>sq,ostring:()=>rq,optional:()=>lq,onumber:()=>oq,oboolean:()=>aq,objectUtil:()=>VF,object:()=>Tq,number:()=>lH,nullable:()=>iq,null:()=>Nq,never:()=>Lq,nativeEnum:()=>pq,nan:()=>Rq,map:()=>xq,makeIssue:()=>M3,literal:()=>uq,lazy:()=>yq,late:()=>Cq,isValid:()=>K8,isDirty:()=>f7,isAsync:()=>l1,isAborted:()=>b7,intersection:()=>fq,instanceof:()=>Oq,getParsedType:()=>f2,getErrorMap:()=>d1,function:()=>gq,enum:()=>mq,effect:()=>dq,discriminatedUnion:()=>bq,defaultErrorMap:()=>n2,datetimeRegex:()=>mH,date:()=>Zq,custom:()=>cH,coerce:()=>tq,boolean:()=>iH,bigint:()=>Eq,array:()=>Iq,any:()=>Pq,addIssueToContext:()=>y,ZodVoid:()=>N3,ZodUnknown:()=>C8,ZodUnion:()=>a1,ZodUndefined:()=>r1,ZodType:()=>YD,ZodTuple:()=>v2,ZodTransformer:()=>V2,ZodSymbol:()=>z3,ZodString:()=>G2,ZodSet:()=>t8,ZodSchema:()=>YD,ZodRecord:()=>P3,ZodReadonly:()=>J6,ZodPromise:()=>e8,ZodPipeline:()=>j3,ZodParsedType:()=>x,ZodOptional:()=>H2,ZodObject:()=>xD,ZodNumber:()=>O8,ZodNullable:()=>r2,ZodNull:()=>o1,ZodNever:()=>k2,ZodNativeEnum:()=>$6,ZodNaN:()=>L3,ZodMap:()=>q3,ZodLiteral:()=>D6,ZodLazy:()=>e1,ZodIssueCode:()=>w,ZodIntersection:()=>t1,ZodFunction:()=>n1,ZodFirstPartyTypeKind:()=>r,ZodError:()=>N0,ZodEnum:()=>E8,ZodEffects:()=>V2,ZodDiscriminatedUnion:()=>k7,ZodDefault:()=>F6,ZodDate:()=>o8,ZodCatch:()=>X6,ZodBranded:()=>v7,ZodBoolean:()=>s1,ZodBigInt:()=>R8,ZodArray:()=>B2,ZodAny:()=>a8,Schema:()=>YD,ParseStatus:()=>G0,OK:()=>V0,NEVER:()=>eq,INVALID:()=>n,EMPTY_PATH:()=>nP,DIRTY:()=>r8,BRAND:()=>Kq});var KF=M(()=>{S7();UF();vH();Z3();nH();w7()});var mD=M(()=>{KF();KF()});function CF(D){return Object.prototype.hasOwnProperty.call(JW,D)}var e,v0,sH,rH,oH,aH,tH,eH,DW,$W,FW,x7,h7,XW,JW;var YW=M(()=>{mD();e={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"},v0=V.object({workerId:V.string().min(1)}),sH=v0.extend({displayName:V.string().optional(),deviceId:V.string().min(1),connectedAt:V.number().int()}),rH=v0.extend({deviceId:V.string().min(1),reason:V.enum(["disconnected","expired","kicked"]).optional(),disconnectedAt:V.number().int()}),oH=v0.extend({conversationId:V.string().min(1),role:V.enum(["user","assistant","system"]),content:V.string(),createdAt:V.number().int()}),aH=v0.extend({conversationId:V.string().min(1),taskId:V.string().min(1).optional(),chunk:V.string().optional()}),tH=v0.extend({conversationId:V.string().min(1),taskId:V.string().min(1).optional(),toolCallId:V.string().min(1),toolName:V.string().min(1),status:V.enum(["pending","running","success","error"]),args:V.unknown().optional(),result:V.unknown().optional()}),eH=v0.extend({conversationId:V.string().min(1),taskId:V.string().min(1).optional(),finishReason:V.enum(["stop","length","tool_use","error","cancelled"]),usage:V.object({inputTokens:V.number().int().nonnegative().optional(),outputTokens:V.number().int().nonnegative().optional(),totalTokens:V.number().int().nonnegative().optional()}).optional()}),DW=v0.extend({version:V.number().int().nonnegative(),changedAt:V.number().int()}),$W=v0.extend({stream:V.enum(["stdout","stderr"]),line:V.string(),ts:V.number().int()}),FW=v0.extend({taskId:V.string().min(1),toolCallId:V.string().min(1),toolName:V.string().min(1),params:V.record(V.unknown()),expiresAt:V.number().int()}),x7=v0.extend({otp:V.string().min(1),expiresAt:V.number().int()}),h7=v0.extend({deviceToken:V.string().min(1)}),XW=v0.extend({otp:V.string().min(1),displayName:V.string().min(1).optional(),submittedAt:V.number().int(),expiresAt:V.number().int(),reason:V.enum(["submitted","approved","rejected","expired","abandoned"])}),JW={[e.WORKER_ONLINE]:sH,[e.WORKER_OFFLINE]:rH,[e.CHAT_MESSAGE]:oH,[e.AGENT_THINKING]:aH,[e.AGENT_TOOL_CALL]:tH,[e.AGENT_DONE]:eH,[e.CONFIG_CHANGED]:DW,[e.LOGS_LINE]:$W,[e.APPROVAL_REQUESTED]:FW,[e.ENROLLMENT_OTP]:x7,[e.ENROLLMENT_APPROVED]:h7,[e.ENROLLMENT_PENDING]:XW}});var qD;var GW=M(()=>{qD=class qD extends Error{code;status;constructor(D,$,F){super(F);this.code=D;this.status=$;this.name="AppError"}static badRequest(D,$="BAD_REQUEST"){return new qD($,400,D)}static notFound(D,$="NOT_FOUND"){return new qD($,404,D)}static internal(D,$="INTERNAL_ERROR"){return new qD($,500,D)}toJSON(){return{error:{code:this.code,message:this.message}}}}});var g7=20;var x0,y7="0123456789abcdefghjkmnpqrstvwxyz";var BW=M(()=>{x0=/^w_[0-9a-hjkmnp-tv-z]{12}$/});function Z8(D){return typeof D==="string"&&o2.test(D)}var u7="wtk_",o2;var HW=M(()=>{o2=/^wtk_[\w-]{32,}$/});var OF=M(()=>{BW();HW()});function D1(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 I3(D){return D==="1"||D==="true"}function T3(D){if(!D.serveWeb)return;if(D1(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 $L(D,$){let F=0,X=0,J="";for(let G=0;G<D.length&&J.length<$;G+=1){X=X<<8|D[G],F+=8;while(F>=5&&J.length<$)J+=y7[X>>>F-5&31],F-=5}return J.padEnd($,"0")}function RF(){let D=new Uint8Array(10);return globalThis.crypto.getRandomValues(D),`w_${$L(D,12)}`}var WW=M(()=>{OF()});var EF,ZF,m7,FL,MF,VW;var QW=M(()=>{mD();EF=V.discriminatedUnion("kind",[V.object({kind:V.literal("file_read"),path:V.string()}),V.object({kind:V.literal("file_edit"),path:V.string(),diff:V.string().optional()}),V.object({kind:V.literal("command_run"),command:V.string()}),V.object({kind:V.literal("search"),query:V.string()}),V.object({kind:V.literal("web_fetch"),url:V.string()}),V.object({kind:V.literal("task_plan"),summary:V.string()}),V.object({kind:V.literal("tool"),toolName:V.string(),arguments:V.record(V.unknown()).optional()}),V.object({kind:V.literal("other"),description:V.string().optional()})]),ZF=V.enum(["pending","running","success","failed","pending_approval","denied"]),m7=V.object({inputTokens:V.number().int().nonnegative(),outputTokens:V.number().int().nonnegative()}),FL=V.record(V.unknown()),MF=V.enum(["stop","tool","length","error","cancelled"]),VW=V.discriminatedUnion("type",[V.object({type:V.literal("assistant_message_delta"),delta:V.string()}),V.object({type:V.literal("thinking_delta"),delta:V.string()}),V.object({type:V.literal("tool_use"),id:V.string(),name:V.string(),arguments:V.record(V.unknown()),action:EF,status:ZF.optional()}),V.object({type:V.literal("tool_result"),id:V.string(),name:V.string(),content:V.string(),isError:V.boolean().optional()}),V.object({type:V.literal("permission_request"),id:V.string(),reason:V.string(),toolUseId:V.string().optional()}),V.object({type:V.literal("token_usage"),usage:m7}),V.object({type:V.literal("engine_binding"),engine:V.string().min(1),binding:FL.nullable()}),V.object({type:V.literal("finish"),reason:MF,usage:m7.optional()}),V.object({type:V.literal("error"),error:V.string()})])});var UW=M(()=>{QW()});var cD=M(()=>{GW();OF();WW();UW()});var $1,zF;var NF=M(()=>{mD();$1={OPERATOR:"operator",NODE:"node"},zF=V.union([V.literal($1.OPERATOR),V.literal($1.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=RW.safeParse($);if(!F.success)return{ok:!1,error:`schema:${F.error.message}`};return{ok:!0,frame:F.data}}function LD(D){return JSON.stringify(D)}var _W,AW,KW,XL,JL,CW,OW,RW;var EW=M(()=>{cD();mD();NF();_W=V.object({type:V.literal("connect"),role:zF,agentId:V.string().min(1),deviceId:V.string().min(1),auth:V.object({token:V.string()}),meta:V.record(V.string()).optional(),enroll:V.object({apiToken:V.string().regex(o2,"apiToken must match wtk_<base64url>"),displayName:V.string().min(1).max(80).optional(),mode:V.enum(["join-token","otp"]).optional(),joinToken:V.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"})}),AW=V.object({type:V.literal("request"),id:V.string().min(1),method:V.string().min(1),params:V.unknown().optional()}),KW=V.object({code:V.string().min(1),message:V.string(),details:V.unknown().optional()}),XL=V.object({type:V.literal("response"),id:V.string().min(1),ok:V.literal(!0),result:V.unknown()}),JL=V.object({type:V.literal("response"),id:V.string().min(1),ok:V.literal(!1),error:KW}),CW=V.discriminatedUnion("ok",[XL,JL]),OW=V.object({type:V.literal("event"),name:V.string().min(1),payload:V.unknown(),ts:V.number().int()}),RW=V.union([_W,AW,CW,OW])});function AD(D){return D}function l7(D){return Object.prototype.hasOwnProperty.call(ED,D)}function w3(D){if(!l7(D))return;return ED[D]}var F1,YL,GL,ZW,Y6,BL,HL,WL,VL,p7,QL,UL,_L,c7,AL,KL,CL,OL,RL,EL,MW,zW,ZL,ML,NW,PW,zL,NL,PL,qL,LL,jL,IL,TL,wL,SL,bL,fL,PF,d7,qW,LW,kL,vL,xL,hL,ED;var jW=M(()=>{mD();F1=V.object({workerId:V.string().min(1),displayName:V.string().optional(),online:V.boolean(),deviceId:V.string().min(1).optional(),baseUrl:V.string().optional(),lastSeenAt:V.number().int().nullable().optional()}),YL=AD({method:"workers.list",description:"\u5217\u51FA fleet \u5185\u6240\u6709\u5DF2\u6CE8\u518C worker\uFF08\u542B online \u72B6\u6001\uFF09\u3002",params:V.object({}).optional().default({}),result:V.object({workers:V.array(F1)}),routing:"operator-to-gateway"}),GL=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:V.object({workerId:V.string().min(1)}),result:V.unknown(),routing:"operator-to-node"}),ZW=V.object({workerBaseUrl:V.string().min(1),bootstrapToken:V.string().min(1),displayName:V.string().optional()}),Y6=V.object({workerId:V.string().min(1),deviceToken:V.string().min(1)}),BL=AD({method:"workers.pair",description:"\u628A\u4E00\u4E2A\u5DF2\u542F\u52A8\u7684 worker \u901A\u8FC7 bootstrap token \u6CE8\u518C\u5230 fleet\u3002",params:ZW,result:Y6,routing:"operator-to-gateway"}),HL=AD({method:"workers.launch",description:"\u7531 gateway/supervisor \u672C\u5730\u62C9\u8D77\u4E00\u4E2A worker \u5BB9\u5668\u5E76\u5B8C\u6210\u6CE8\u518C\u3002",params:V.object({displayName:V.string().optional(),image:V.string().optional(),env:V.record(V.string()).optional()}),result:Y6,routing:"operator-to-gateway"}),WL=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:V.object({workerId:V.string().min(1)}),result:V.object({stopped:V.boolean()}),routing:"operator-to-node"}),VL=AD({method:"workers.remove",description:"\u628A worker \u4ECE fleet \u4E2D\u6458\u9664\uFF08\u5B58\u91CF deviceToken \u4F5C\u5E9F\uFF09\u3002",params:V.object({workerId:V.string().min(1)}),result:V.object({removed:V.boolean()}),routing:"operator-to-gateway"}),p7=V.object({otp:V.string().min(1),workerId:V.string().min(1),displayName:V.string().min(1).optional(),submittedAt:V.number().int(),expiresAt:V.number().int()}),QL=AD({method:"enroll.list",description:"\u5217\u51FA gateway \u5F53\u524D\u6240\u6709 pending OTP enrollment \u8BF7\u6C42\u3002",params:V.object({}).optional().default({}),result:V.object({pending:V.array(p7)}),routing:"operator-to-gateway"}),UL=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:V.object({otp:V.string().min(1)}),result:V.object({workerId:V.string().min(1),deviceToken:V.string().min(1)}),routing:"operator-to-gateway"}),_L=AD({method:"enroll.reject",description:"\u62D2\u7EDD\u67D0\u6761 pending OTP\uFF1Aclose 4403 \u7ED9 worker\uFF0Caudit gateway.enrollment.rejected\u3002",params:V.object({otp:V.string().min(1)}),result:V.object({rejected:V.boolean()}),routing:"operator-to-gateway"}),c7=V.object({id:V.number().int().positive(),at:V.string().min(1),actor:V.string().min(1),action:V.string().min(1),workerId:V.string().min(1).nullable(),detail:V.record(V.unknown()).nullable()}),AL=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:V.object({limit:V.number().int().positive().max(200).optional(),before:V.number().int().positive().optional(),action:V.string().min(1).optional(),workerId:V.string().min(1).optional()}).optional().default({}),result:V.object({events:V.array(c7),hasMore:V.boolean()}),routing:"operator-to-gateway"}),KL=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:V.object({workerId:V.string().min(1),conversationId:V.string().min(1).optional(),content:V.string().min(1),metadata:V.record(V.unknown()).optional()}),result:V.object({conversationId:V.string().min(1),taskId:V.string().min(1).optional(),accepted:V.boolean()}),routing:"operator-to-node"}),CL=AD({method:"config.get",description:"\u8BFB\u53D6 worker \u5F53\u524D\u914D\u7F6E\uFF08\u542B version\uFF09\u3002",params:V.object({workerId:V.string().min(1)}),result:V.object({version:V.number().int().nonnegative(),config:V.unknown()}),routing:"operator-to-node"}),OL=AD({method:"config.put",description:"\u66F4\u65B0 worker \u914D\u7F6E\uFF0C\u4F7F\u7528 ifMatch \u8FDB\u884C\u4E50\u89C2\u9501\u3002",params:V.object({workerId:V.string().min(1),ifMatch:V.number().int().nonnegative(),config:V.unknown()}),result:V.object({version:V.number().int().nonnegative(),appliedAt:V.number().int()}),routing:"operator-to-node"}),RL=AD({method:"token.rotate",description:"\u4E3A\u76EE\u6807 worker \u8F6E\u6362 deviceToken\uFF0C\u65E7 token \u7ACB\u5373\u5931\u6548\u3002",params:V.object({workerId:V.string().min(1)}),result:V.object({deviceToken:V.string().min(1)}),routing:"operator-to-gateway"}),EL=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:V.object({workerId:V.string().min(1),follow:V.boolean().optional(),lines:V.number().int().positive().max(1000).optional()}),result:V.object({subscribed:V.boolean()}),routing:"operator-to-node"}),MW=V.enum(["allow","deny"]),zW=V.object({workerId:V.string().min(1),taskId:V.string().min(1),toolCallId:V.string().min(1),toolName:V.string().min(1),params:V.record(V.unknown()),expiresAt:V.number().int()}),ZL=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:V.object({workerId:V.string().min(1)}),result:V.object({approvals:V.array(zW)}),routing:"operator-to-node"}),ML=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:V.object({workerId:V.string().min(1),taskId:V.string().min(1),toolCallId:V.string().min(1),decision:MW}),result:V.object({granted:V.boolean()}),routing:"operator-to-node"}),NW=V.enum(["web","line","telegram","lark","whatsapp"]),PW=V.string().regex(/^[\w.-]{1,128}$/),zL=AD({method:"secrets.list",description:"\u5217\u51FA\u76EE\u6807 worker vault \u91CC\u7684 secret key\uFF0C\u4E0D\u8FD4\u56DE secret value\u3002",params:V.object({workerId:V.string().min(1)}),result:V.object({keys:V.array(V.string())}),routing:"operator-to-node"}),NL=AD({method:"secrets.put",description:"\u5199\u5165\u6216\u8986\u76D6\u76EE\u6807 worker \u7684\u4E00\u4E2A secret value\u3002",params:V.object({workerId:V.string().min(1),key:PW,value:V.string().min(1)}),result:V.object({ok:V.literal(!0)}),routing:"operator-to-node"}),PL=AD({method:"secrets.delete",description:"\u5220\u9664\u76EE\u6807 worker \u7684\u4E00\u4E2A secret key\u3002",params:V.object({workerId:V.string().min(1),key:PW}),result:V.object({ok:V.literal(!0)}),routing:"operator-to-node"}),qL=AD({method:"engines.list",description:"\u8BFB\u53D6\u76EE\u6807 worker \u7684 executor engine availability \u5217\u8868\u3002",params:V.object({workerId:V.string().min(1),refresh:V.boolean().optional()}),result:V.object({engines:V.array(V.unknown())}),routing:"operator-to-node"}),LL=AD({method:"brain.test",description:"\u5728\u76EE\u6807 worker \u4E0A\u6267\u884C brain health probe\u3002",params:V.object({workerId:V.string().min(1)}),result:V.unknown(),routing:"operator-to-node"}),jL=AD({method:"executor.test",description:"\u5728\u76EE\u6807 worker \u4E0A\u6267\u884C executor health / tiny probe\u3002",params:V.object({workerId:V.string().min(1),probe:V.boolean().optional()}),result:V.unknown(),routing:"operator-to-node"}),IL=AD({method:"channel.test",description:"\u5728\u76EE\u6807 worker \u4E0A\u6267\u884C channel binding probe\u3002",params:V.object({workerId:V.string().min(1),channel:NW,body:V.object({chatId:V.string().optional(),text:V.string().optional()}).optional()}),result:V.unknown(),routing:"operator-to-node"}),TL=AD({method:"orchestrator.tasks.list",description:"\u5217\u51FA\u76EE\u6807 worker \u7684\u6700\u8FD1 orchestrator task\u3002",params:V.object({workerId:V.string().min(1)}),result:V.object({tasks:V.array(V.unknown())}),routing:"operator-to-node"}),wL=AD({method:"orchestrator.tasks.create",description:"\u5728\u76EE\u6807 worker \u4E0A\u521B\u5EFA\u4E00\u4E2A orchestrator task\u3002",params:V.object({workerId:V.string().min(1),prompt:V.string().trim().min(1).max(8000)}),result:V.object({task:V.unknown()}),routing:"operator-to-node"}),SL=AD({method:"orchestrator.conversations.list",description:"\u5217\u51FA\u76EE\u6807 worker \u7684\u6700\u8FD1 conversations\u3002",params:V.object({workerId:V.string().min(1)}),result:V.object({conversations:V.array(V.unknown())}),routing:"operator-to-node"}),bL=AD({method:"orchestrator.messages.list",description:"\u5217\u51FA\u76EE\u6807 worker \u67D0 conversation \u7684 messages\u3002",params:V.object({workerId:V.string().min(1),conversationId:V.string().min(1)}),result:V.object({messages:V.array(V.unknown())}),routing:"operator-to-node"}),fL=AD({method:"system.presence",description:"operator \u5FC3\u8DF3 / \u8BE2\u95EE\u5F53\u524D online \u7684\u6240\u6709 node \u5217\u8868\u3002",params:V.object({}).optional().default({}),result:V.object({now:V.number().int(),online:V.array(F1)}),routing:"operator-to-gateway"}),PF=NW,d7=V.object({id:V.string().min(1),expression:V.string().min(1),prompt:V.string().min(1),channel:PF,chatId:V.string().min(1),accountId:V.string().min(1),enabled:V.boolean(),lastRunAt:V.string().nullable(),nextRunAt:V.string().nullable(),createdAt:V.string(),updatedAt:V.string()}),qW=V.object({expression:V.string().min(1),prompt:V.string().min(1),channel:PF,chatId:V.string().min(1),accountId:V.string().min(1).optional(),enabled:V.boolean().optional()}),LW=V.object({expression:V.string().min(1).optional(),prompt:V.string().min(1).optional(),channel:PF.optional(),chatId:V.string().min(1).optional(),accountId:V.string().min(1).optional(),enabled:V.boolean().optional()}).refine((D)=>Object.keys(D).length>0,{message:"\u81F3\u5C11\u63D0\u4F9B\u4E00\u4E2A\u5F85\u66F4\u65B0\u5B57\u6BB5"}),kL=AD({method:"cron.list",description:"\u5217\u51FA\u76EE\u6807 worker \u4E0A\u6240\u6709 cron \u4EFB\u52A1\uFF08\u542B enabled / lastRunAt / nextRunAt\uFF09\u3002",params:V.object({workerId:V.string().min(1)}),result:V.object({jobs:V.array(d7)}),routing:"operator-to-node"}),vL=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:V.object({workerId:V.string().min(1),job:qW}),result:V.object({job:d7}),routing:"operator-to-node"}),xL=AD({method:"cron.remove",description:"\u5220\u9664\u76EE\u6807 worker \u4E0A\u7684\u67D0\u6761 cron \u4EFB\u52A1\u3002",params:V.object({workerId:V.string().min(1),jobId:V.string().min(1)}),result:V.object({removed:V.boolean()}),routing:"operator-to-node"}),hL=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:V.object({workerId:V.string().min(1),jobId:V.string().min(1),patch:LW}),result:V.object({job:d7}),routing:"operator-to-node"}),ED={"workers.list":YL,"workers.info":GL,"workers.pair":BL,"workers.launch":HL,"workers.stop":WL,"workers.remove":VL,"enroll.list":QL,"enroll.approve":UL,"enroll.reject":_L,"audit.list":AL,"chat.send":KL,"config.get":CL,"config.put":OL,"token.rotate":RL,"logs.tail":EL,"system.presence":fL,"approval.list":ZL,"approval.grant":ML,"secrets.list":zL,"secrets.put":NL,"secrets.delete":PL,"engines.list":qL,"brain.test":LL,"executor.test":jL,"channel.test":IL,"orchestrator.tasks.list":TL,"orchestrator.tasks.create":wL,"orchestrator.conversations.list":SL,"orchestrator.messages.list":bL,"cron.list":kL,"cron.add":vL,"cron.remove":xL,"cron.update":hL}});var D0=M(()=>{YW();EW();jW();NF()});import{statSync as gL}from"fs";import{access as yL,mkdir as uL,stat as Br,writeFile as mL}from"fs/promises";import{homedir as SW}from"os";import BD from"path";import bW from"process";function TW(D){return D.startsWith("~")?BD.join(SW(),D.slice(1)):D}function wW(D){try{return gL(D).isDirectory()}catch{return!1}}function LF(D){let $=BD.resolve(D??bW.cwd());if(!$)return null;while(!0){let F=BD.join($,G6);if(wW(F))return $;let X=BD.join($,".git");if(wW(X))return null;let J=BD.dirname($);if(J===$)return null;$=J}}function Q2(D={}){if(D.explicitHome&&D.explicitHome.length>0)return{scope:"explicit",home:BD.resolve(TW(D.explicitHome)),source:"cli-flag"};let $=bW.env[pL];if($&&$.length>0)return{scope:"explicit",home:BD.resolve(TW($)),source:"env"};if(!D.disableProjectDetect){let F=LF(D.cwd);if(F)return{scope:"project",home:BD.join(F,G6,qF),projectRoot:F,source:"project-detect"}}return{scope:"user",home:BD.resolve(SW(),G6),source:"user-default"}}function U2(){return Q2().home}function _2(D){let $=Q2();if($.scope==="project"&&$.projectRoot)return BD.join($.projectRoot,G6);return BD.join($.home,"workers",D)}function B6(D){let $=Q2();if($.scope==="project"&&$.projectRoot)return BD.join($.projectRoot,G6);return BD.join(_2(D),"brain")}function cL(D){return BD.join(B6(D),"skills")}function dL(D){return BD.join(B6(D),"memories")}function jF(D){return BD.join(B6(D),"MEMORY.md")}function i7(D){let $=Q2();if($.scope==="project"&&$.projectRoot)return BD.join($.home,"workspaces");return BD.join(_2(D),"workspaces")}function fW(D){return BD.join(_2(D),"config.yaml")}function IF(D){return BD.join(_2(D),"AGENT.md")}function TF(D){return BD.join(_2(D),"SOUL.md")}function wF(D){return BD.join(_2(D),"USER.md")}function kW(D){return BD.join(_2(D),"ROLLUP.md")}function vW(D){return BD.join(_2(D),"mcp.json")}async function g0(D,$){await uL(D,{recursive:!0,...$===void 0?{}:{mode:$}})}async function h0(D,$){try{await yL(D)}catch{await mL(D,$,{encoding:"utf8"})}}async function SF(D){let $=Q2();if($.scope==="project"){await g0($.home,448),await g0(i7(D));return}let F=_2(D);await g0(F),await g0(B6(D)),await g0(cL(D)),await g0(dL(D)),await g0(i7(D)),await h0(IF(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 h0(TF(D),`# Voice of ${D}
|
|
83
|
-
|
|
84
|
-
> Draft voice / style guide. Influences how the agent phrases responses across channels.
|
|
85
|
-
`),await h0(wF(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 h0(jF(D),`# Memory index
|
|
89
|
-
|
|
90
|
-
> One line per memory: \`- [Title](filename.md) \u2014 short description.\`
|
|
91
|
-
`)}async function bF(D){let $=BD.resolve(D),F=BD.join($,G6),X=BD.join(F,qF);await g0(F),await g0(BD.join(F,"skills")),await g0(BD.join(F,"memories")),await g0(X,448),await g0(BD.join(X,"workspaces")),await h0(BD.join(F,"AGENT.md"),`# Agent
|
|
92
|
-
|
|
93
|
-
> Persona / role document for the agent that lives in this project. The orchestrator injects this file into the system prompt.
|
|
94
|
-
`),await h0(BD.join(F,"SOUL.md"),`# Voice & style
|
|
95
|
-
|
|
96
|
-
> Voice / style guide. Influences how the agent phrases responses across channels.
|
|
97
|
-
`),await h0(BD.join(F,"USER.md"),`# User profile
|
|
98
|
-
|
|
99
|
-
> The agent writes learned facts about the primary user here over time. Edit by hand to bootstrap.
|
|
100
|
-
`),await h0(BD.join(F,"MEMORY.md"),`# Long-term memory
|
|
101
|
-
|
|
102
|
-
> Durable facts, decisions, preferences. Loaded into every session.
|
|
103
|
-
`),await h0(BD.join(F,"ROLLUP.md"),`# Continuity rollup
|
|
104
|
-
|
|
105
|
-
> Auto-distilled by the evolution cron job. Recent decisions / todos / context that survive session compaction.
|
|
106
|
-
`),await h0(BD.join(F,"mcp.json"),`${JSON.stringify({servers:{}},null,2)}
|
|
107
|
-
`),await h0(BD.join(F,".gitignore"),`${qF}/
|
|
108
|
-
`),await h0(BD.join(X,".gitignore"),`*
|
|
109
|
-
!.gitignore
|
|
110
|
-
`)}var pL="AIWORKER_HOME",G6=".aiworker",qF="local";var A2=()=>{};var t7={};n8(t7,{saveAimState:()=>kF,resolveGatewayPidPath:()=>r7,resolveGatewayLogPath:()=>o7,resolveAimStatePath:()=>fF,patchAimState:()=>b3,normalizeGatewayWsUrl:()=>S3,loadAimState:()=>a7,gatewayWsUrlForLocalPort:()=>s7,DEFAULT_GATEWAY_URL:()=>xW});import{chmod as lL,mkdir as iL,readFile as nL,rename as sL,writeFile as rL}from"fs/promises";import n7 from"path";function s7(D){return`ws://localhost:${D}/ws`}function S3(D){try{let $=new URL(D);if(($.protocol==="ws:"||$.protocol==="wss:")&&($.pathname===""||$.pathname==="/"))return $.pathname="/ws",$.toString()}catch{}return D}function fF(){return n7.join(U2(),"aim.json")}function r7(){return n7.join(U2(),"aim-gateway.pid")}function o7(){return n7.join(U2(),"aim-gateway.log")}function oL(){return`op-${crypto.randomUUID()}`}function aL(){return{gatewayUrl:xW,deviceId:oL(),deviceToken:""}}function tL(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 a7(){let D=fF(),$;try{$=await nL(D,"utf8")}catch(X){if(X.code==="ENOENT")return aL();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(!tL(F))throw Error(`aim.json \u7ED3\u6784\u4E0D\u7B26\u5408 AimState (${D})`);return{...F,gatewayUrl:S3(F.gatewayUrl)}}async function kF(D){let $=fF();await iL(n7.dirname($),{recursive:!0});let F=`${$}.tmp`;await rL(F,`${JSON.stringify(D,null,2)}
|
|
111
|
-
`,{encoding:"utf8",mode:384}),await sL(F,$);try{await lL($,384)}catch{}}async function b3(D){let F={...await a7()};for(let[X,J]of Object.entries(D)){if(J===void 0)continue;let G=X==="gatewayUrl"&&typeof J==="string"?S3(J):J;F[X]=G}return await kF(F),F}var xW="ws://localhost:9218/ws";var X1=M(()=>{A2()});function I(D,$){if(!D||typeof D!=="object")return!1;if(D instanceof $)return!0;if(!Object.prototype.hasOwnProperty.call($,P))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(P in F&&F[P]===$[P])return!0;F=Object.getPrototypeOf(F)}return!1}var P;var a=M(()=>{P=Symbol.for("drizzle:entityKind")});var iW,vF,xF;var e7=M(()=>{a();iW=class iW{static[P]="ConsoleLogWriter";write(D){console.log(D)}};vF=class vF{static[P]="DefaultLogger";writer;constructor(D){this.writer=D?.writer??new iW}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}`)}};xF=class xF{static[P]="NoopLogger";logQuery(){}}});var S0;var f3=M(()=>{S0=Symbol.for("drizzle:Name")});function M8(D){return D[S0]}function J1(D){return`${D[D4]??"public"}.${D[S0]}`}var D4,$4,nW,hF,gF,k3,sW,eL,h;var Q0=M(()=>{a();f3();D4=Symbol.for("drizzle:Schema"),$4=Symbol.for("drizzle:Columns"),nW=Symbol.for("drizzle:ExtraConfigColumns"),hF=Symbol.for("drizzle:OriginalName"),gF=Symbol.for("drizzle:BaseName"),k3=Symbol.for("drizzle:IsAlias"),sW=Symbol.for("drizzle:ExtraConfigBuilder"),eL=Symbol.for("drizzle:IsDrizzleTable");h=class h{static[P]="Table";static Symbol={Name:S0,Schema:D4,OriginalName:hF,Columns:$4,ExtraConfigColumns:nW,BaseName:gF,IsAlias:k3,ExtraConfigBuilder:sW};[S0];[hF];[D4];[$4];[nW];[gF];[k3]=!1;[eL]=!0;[sW]=void 0;constructor(D,$,F){this[S0]=this[hF]=D,this[D4]=$,this[gF]=F}}});var OD;var C2=M(()=>{a();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[P]="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 yF;var uF=M(()=>{a();yF=class yF{static[P]="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 rW(D,...$){return D(...$)}var oW=()=>{};function aW(D,$){return`${D[S0]}_${$.join("_")}_unique`}var tW=M(()=>{f3()});var v3,Dj;var eW=M(()=>{C2();a();tW();v3=class v3 extends OD{constructor(D,$){if(!$.uniqueName)$.uniqueName=aW(D,[$.name]);super(D,$);this.table=D}static[P]="PgColumn"};Dj=class Dj extends v3{static[P]="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 $V(D){return!!D&&typeof D==="function"&&DV in D&&D[DV]===!0}var $j,DV,Fj;var FV=M(()=>{a();eW();$j=class $j extends v3{static[P]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(D,$){super(D,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}};DV=Symbol.for("drizzle:isPgEnum");Fj=class Fj extends v3{static[P]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(D,$){super(D,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}}});var dD,x3;var O2=M(()=>{a();dD=class dD{static[P]="Subquery";constructor(D,$,F,X=!1,J=[]){this._={brand:"Subquery",sql:D,selectedFields:$,alias:F,isWith:X,usedTables:J}}};x3=class x3 extends dD{static[P]="WithSubquery"}});var XV="0.44.7";var JV=()=>{};var mF,pF,YV;var GV=M(()=>{oW();JV();YV={startActiveSpan(D,$){if(!mF)return $();if(!pF)pF=mF.trace.getTracer("drizzle-orm",XV);return rW((F,X)=>X.startActiveSpan(D,(J)=>{try{return $(J)}catch(G){throw J.setStatus({code:F.SpanStatusCode.ERROR,message:G instanceof Error?G.message:"Unknown error"}),G}finally{J.end()}}),mF,pF)}}});var hD;var a2=M(()=>{hD=Symbol.for("drizzle:ViewBaseConfig")});function cF(D){return D!==null&&D!==void 0&&typeof D.getSQL==="function"}function Xj(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 BV(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 rD(D[0]));for(let[X,J]of $.entries())F.push(J,new rD(D[X+1]));return new m(F)}function h3(D,$){return D.map((F)=>{if(I(F,z8)){if(!(F.name in $))throw Error(`No value for placeholder "${F.name}" was provided`);return $[F.name]}if(I(F,b0)&&I(F.value,z8)){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 rD,m,F4,HV,WV,Ao,b0,z8,Jj,y0;var $0=M(()=>{a();FV();O2();GV();a2();C2();Q0();rD=class rD{static[P]="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($,h)){let F=$[h.Symbol.Schema];this.usedTables.push(F===void 0?$[h.Symbol.Name]:F+"."+$[h.Symbol.Name])}}static[P]="SQL";decoder=HV;shouldInlineParams=!1;usedTables=[];append(D){return this.queryChunks.push(...D.queryChunks),this}toQuery(D){return YV.startActiveSpan("drizzle.buildSQL",($)=>{let F=this.buildQueryFromSourceParams(this.queryChunks,D);return $?.setAttributes({"drizzle.query.text":F.sql,"drizzle.query.params":JSON.stringify(F.params)}),F})}buildQueryFromSourceParams(D,$){let F=Object.assign({},$,{inlineParams:$.inlineParams||this.shouldInlineParams,paramStartIndex:$.paramStartIndex||{value:0}}),{casing:X,escapeName:J,escapeParam:G,prepareTyping:Y,inlineParams:B,paramStartIndex:H}=F;return Xj(D.map((W)=>{if(I(W,rD))return{sql:W.value.join(""),params:[]};if(I(W,F4))return{sql:J(W.value),params:[]};if(W===void 0)return{sql:"",params:[]};if(Array.isArray(W)){let Q=[new rD("(")];for(let[U,_]of W.entries())if(Q.push(_),U<W.length-1)Q.push(new rD(", "));return Q.push(new rD(")")),this.buildQueryFromSourceParams(Q,F)}if(I(W,m))return this.buildQueryFromSourceParams(W.queryChunks,{...F,inlineParams:B||W.shouldInlineParams});if(I(W,h)){let Q=W[h.Symbol.Schema],U=W[h.Symbol.Name];return{sql:Q===void 0||W[k3]?J(U):J(Q)+"."+J(U),params:[]}}if(I(W,OD)){let Q=X.getColumnCasing(W);if($.invokeSource==="indexes")return{sql:J(Q),params:[]};let U=W.table[h.Symbol.Schema];return{sql:W.table[k3]||U===void 0?J(W.table[h.Symbol.Name])+"."+J(Q):J(U)+"."+J(W.table[h.Symbol.Name])+"."+J(Q),params:[]}}if(I(W,y0)){let Q=W[hD].schema,U=W[hD].name;return{sql:Q===void 0||W[hD].isAlias?J(U):J(Q)+"."+J(U),params:[]}}if(I(W,b0)){if(I(W.value,z8))return{sql:G(H.value++,W),params:[W],typings:["none"]};let Q=W.value===null?null:W.encoder.mapToDriverValue(W.value);if(I(Q,m))return this.buildQueryFromSourceParams([Q],F);if(B)return{sql:this.mapInlineParam(Q,F),params:[]};let U=["none"];if(Y)U=[Y(W.encoder)];return{sql:G(H.value++,Q),params:[Q],typings:U}}if(I(W,z8))return{sql:G(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 rD("("),W._.sql,new rD(") "),new F4(W._.alias)],F)}if($V(W)){if(W.schema)return{sql:J(W.schema)+"."+J(W.enumName),params:[]};return{sql:J(W.enumName),params:[]}}if(cF(W)){if(W.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([W.getSQL()],F);return this.buildQueryFromSourceParams([new rD("("),W.getSQL(),new rD(")")],F)}if(B)return{sql:this.mapInlineParam(W,F),params:[]};return{sql:G(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}};F4=class F4{constructor(D){this.value=D}static[P]="Name";brand;getSQL(){return new m([this])}};HV={mapFromDriverValue:(D)=>D},WV={mapToDriverValue:(D)=>D},Ao={...HV,...WV};b0=class b0{constructor(D,$=WV){this.value=D,this.encoder=$}static[P]="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 rD(H)])}D.raw=X;function J(H,W){let Q=[];for(let[U,_]of H.entries()){if(U>0&&W!==void 0)Q.push(W);Q.push(_)}return new m(Q)}D.join=J;function G(H){return new F4(H)}D.identifier=G;function Y(H){return new z8(H)}D.placeholder=Y;function B(H,W){return new b0(H,W)}D.param=B})(Z||(Z={}));((D)=>{class ${constructor(F,X){this.sql=F,this.fieldAlias=X}static[P]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new $(this.sql,this.fieldAlias)}}D.Aliased=$})(m||(m={}));z8=class z8{constructor(D){this.name=D}static[P]="Placeholder";getSQL(){return new m([this])}};Jj=Symbol.for("drizzle:IsDrizzleView");y0=class y0{static[P]="View";[hD];[Jj]=!0;constructor({name:D,schema:$,selectedFields:F,query:X}){this[hD]={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])};h.prototype.getSQL=function(){return new m([this])};dD.prototype.getSQL=function(){return new m([this])}});function dF(D,$,F){let X={},J=D.reduce((G,{path:Y,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 Q=G;for(let[U,_]of Y.entries())if(U<Y.length-1){if(!(_ in Q))Q[_]={};Q=Q[_]}else{let A=$[H],O=Q[_]=A===null?null:W.mapFromDriverValue(A);if(F&&I(B,OD)&&Y.length===2){let C=Y[0];if(!(C in X))X[C]=O===null?M8(B.table):!1;else if(typeof X[C]==="string"&&X[C]!==M8(B.table))X[C]=!1}}return G},{});if(F&&Object.keys(X).length>0){for(let[G,Y]of Object.entries(X))if(typeof Y==="string"&&!F[Y])J[G]=null}return J}function u0(D,$){return Object.entries(D).reduce((F,[X,J])=>{if(typeof X!=="string")return F;let G=$?[...$,X]:[X];if(I(J,OD)||I(J,m)||I(J,m.Aliased))F.push({path:G,field:J});else if(I(J,h))F.push(...u0(J[h.Symbol.Columns],G));else F.push(...u0(J,G));return F},[])}function g3(D,$){let F=Object.keys(D),X=Object.keys($);if(F.length!==X.length)return!1;for(let[J,G]of F.entries())if(G!==X[J])return!1;return!0}function X4(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 b0(J,D[h.Symbol.Columns][X])]});if(F.length===0)throw Error("No values to set");return Object.fromEntries(F)}function VV(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 QV(D){return D[h.Symbol.Columns]}function y3(D){return I(D,dD)?D._.alias:I(D,y0)?D[hD].name:I(D,m)?void 0:D[h.Symbol.IsAlias]?D[h.Symbol.Name]:D[h.Symbol.BaseName]}function h2(D,$){return{name:typeof D==="string"&&D.length>0?D:"",config:typeof D==="object"?D:$}}function UV(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 lF;var P0=M(()=>{C2();a();$0();O2();Q0();a2();lF=typeof TextDecoder>"u"?null:new TextDecoder});var _V,AV,iF;var KV=M(()=>{a();Q0();_V=Symbol.for("drizzle:PgInlineForeignKeys"),AV=Symbol.for("drizzle:EnableRLS");iF=class iF extends h{static[P]="PgTable";static Symbol=Object.assign({},h.Symbol,{InlineForeignKeys:_V,EnableRLS:AV});[_V]=[];[AV]=!1;[h.Symbol.ExtraConfigBuilder]=void 0;[h.Symbol.ExtraConfigColumns]={}}});var nF,CV;var OV=M(()=>{a();KV();nF=class nF{static[P]="PgPrimaryKeyBuilder";columns;name;constructor(D,$){this.columns=D,this.name=$}build(D){return new CV(D,this.columns,this.name)}};CV=class CV{constructor(D,$,F){this.table=D,this.columns=$,this.name=F}static[P]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[iF.Symbol.Name]}_${this.columns.map((D)=>D.name).join("_")}_pk`}}});function q0(D,$){if(BV($)&&!cF(D)&&!I(D,b0)&&!I(D,z8)&&!I(D,OD)&&!I(D,h)&&!I(D,y0))return new b0(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 rD("("),Z.join($,new rD(" and ")),new rD(")")])}function EV(...D){let $=D.filter((F)=>F!==void 0);if($.length===0)return;if($.length===1)return new m($);return new m([new rD("("),Z.join($,new rD(" or ")),new rD(")")])}function ZV(D){return Z`not ${D}`}function N8(D,$){if(Array.isArray($)){if($.length===0)return Z`false`;return Z`${D} in ${$.map((F)=>q0(F,D))}`}return Z`${D} in ${q0($,D)}`}function zV(D,$){if(Array.isArray($)){if($.length===0)return Z`true`;return Z`${D} not in ${$.map((F)=>q0(F,D))}`}return Z`${D} not in ${q0($,D)}`}function m3(D){return Z`${D} is null`}function NV(D){return Z`${D} is not null`}function PV(D){return Z`exists ${D}`}function qV(D){return Z`not exists ${D}`}function LV(D,$,F){return Z`${D} between ${q0($,D)} and ${q0(F,D)}`}function jV(D,$,F){return Z`${D} not between ${q0($,D)} and ${q0(F,D)}`}function IV(D,$){return Z`${D} like ${$}`}function TV(D,$){return Z`${D} not like ${$}`}function wV(D,$){return Z`${D} ilike ${$}`}function SV(D,$){return Z`${D} not ilike ${$}`}var k=(D,$)=>{return Z`${D} = ${q0($,D)}`},RV=(D,$)=>{return Z`${D} <> ${q0($,D)}`},u3=(D,$)=>{return Z`${D} > ${q0($,D)}`},MV=(D,$)=>{return Z`${D} >= ${q0($,D)}`},J4=(D,$)=>{return Z`${D} < ${q0($,D)}`},Y4=(D,$)=>{return Z`${D} <= ${q0($,D)}`};var bV=M(()=>{C2();a();Q0();$0()});function g2(D){return Z`${D} asc`}function jD(D){return Z`${D} desc`}var fV=M(()=>{$0()});var sF=M(()=>{bV();fV()});function vV(){return{and:pD,between:LV,eq:k,exists:PV,gt:u3,gte:MV,ilike:wV,inArray:N8,isNull:m3,isNotNull:NV,like:IV,lt:J4,lte:Y4,ne:RV,not:ZV,notBetween:jV,notExists:qV,notLike:TV,notIlike:SV,notInArray:zV,or:EV,sql:Z}}function xV(){return{sql:Z,asc:g2,desc:jD}}function hV(D,$){if(Object.keys(D).length===1&&"default"in D&&!I(D.default,h))D=D.default;let F={},X={},J={};for(let[G,Y]of Object.entries(D))if(I(Y,h)){let B=J1(Y),H=X[B];F[B]=G,J[G]={tsName:G,dbName:Y[h.Symbol.Name],schema:Y[h.Symbol.Schema],columns:Y[h.Symbol.Columns],relations:H?.relations??{},primaryKey:H?.primaryKey??[]};for(let Q of Object.values(Y[h.Symbol.Columns]))if(Q.primary)J[G].primaryKey.push(Q);let W=Y[h.Symbol.ExtraConfigBuilder]?.(Y[h.Symbol.ExtraConfigColumns]);if(W){for(let Q of Object.values(W))if(I(Q,nF))J[G].primaryKey.push(...Q.columns)}}else if(I(Y,kV)){let B=J1(Y.table),H=F[B],W=Y.config($(Y.table)),Q;for(let[U,_]of Object.entries(W))if(H){let A=J[H];if(A.relations[U]=_,Q)A.primaryKey.push(...Q)}else{if(!(B in X))X[B]={relations:{},primaryKey:Q};X[B].relations[U]=_}}return{tables:J,tableNamesMap:F}}function Yj(D){return function(F,X){return new P8(D,F,X,X?.fields.reduce((J,G)=>J&&G.notNull,!0)??!1)}}function Gj(D){return function(F,X){return new p3(D,F,X)}}function gV(D,$,F){if(I(F,P8)&&F.config)return{fields:F.config.fields,references:F.config.references};let X=$[J1(F.referencedTable)];if(!X)throw Error(`Table "${F.referencedTable[h.Symbol.Name]}" not found in schema`);let J=D[X];if(!J)throw Error(`Table "${X}" not found in schema`);let G=F.sourceTable,Y=$[J1(G)];if(!Y)throw Error(`Table "${G[h.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[h.Symbol.Name]}". Please specify relation name`);if(B[0]&&I(B[0],P8)&&B[0].config)return{fields:B[0].config.references,references:B[0].config.fields};throw Error(`There is not enough information to infer relation "${Y}.${F.fieldName}"`)}function yV(D){return{one:Yj(D),many:Gj(D)}}function G4(D,$,F,X,J=(G)=>G){let G={};for(let[Y,B]of X.entries())if(B.isJson){let H=$.relations[B.tsKey],W=F[Y],Q=typeof W==="string"?JSON.parse(W):W;G[B.tsKey]=I(H,P8)?Q&&G4(D,D[B.relationTableTsKey],Q,B.selection,J):Q.map((U)=>G4(D,D[B.relationTableTsKey],U,B.selection,J))}else{let H=J(F[Y]),W=B.field,Q;if(I(W,OD))Q=W;else if(I(W,m))Q=W.decoder;else Q=W.sql.decoder;G[B.tsKey]=H===null?null:Q.mapFromDriverValue(H)}return G}var rF,kV,P8,p3;var c3=M(()=>{Q0();C2();a();OV();sF();$0();rF=class rF{constructor(D,$,F){this.sourceTable=D,this.referencedTable=$,this.relationName=F,this.referencedTableName=$[h.Symbol.Name]}static[P]="Relation";referencedTableName;fieldName};kV=class kV{constructor(D,$){this.table=D,this.config=$}static[P]="Relations"};P8=class P8 extends rF{constructor(D,$,F,X){super(D,$,F?.relationName);this.config=F,this.isNullable=X}static[P]="One";withFieldName(D){let $=new P8(this.sourceTable,this.referencedTable,this.config,this.isNullable);return $.fieldName=D,$}};p3=class p3 extends rF{constructor(D,$,F){super(D,$,F?.relationName);this.config=F}static[P]="Many";withFieldName(D){let $=new p3(this.sourceTable,this.referencedTable,this.config);return $.fieldName=D,$}}});function B4(D,$){return new Proxy(D,new d3($,!1))}function y2(D,$){return new Proxy(D,new H6(new Proxy(D.table,new d3($,!1))))}function oF(D,$){return new m.Aliased(l3(D.sql,$),D.fieldAlias)}function l3(D,$){return Z.join(D.queryChunks.map((F)=>{if(I(F,OD))return y2(F,$);if(I(F,m))return l3(F,$);if(I(F,m.Aliased))return oF(F,$);return F}))}var H6,d3;var H4=M(()=>{C2();a();$0();Q0();a2();H6=class H6{constructor(D){this.table=D}static[P]="ColumnAliasProxyHandler";get(D,$){if($==="table")return this.table;return D[$]}};d3=class d3{constructor(D,$){this.alias=D,this.replaceOriginalName=$}static[P]="TableAliasProxyHandler";get(D,$){if($===h.Symbol.IsAlias)return!0;if($===h.Symbol.Name)return this.alias;if(this.replaceOriginalName&&$===h.Symbol.OriginalName)return this.alias;if($===hD)return{...D[hD],name:this.alias,isAlias:!0};if($===h.Symbol.Columns){let X=D[h.Symbol.Columns];if(!X)return X;let J={};return Object.keys(X).map((G)=>{J[G]=new Proxy(X[G],new H6(new Proxy(D,this)))}),J}let F=D[$];if(I(F,OD))return new Proxy(F,new H6(new Proxy(D,this)));return F}}});var lD;var W6=M(()=>{H4();C2();a();$0();O2();a2();lD=class lD{static[P]="SelectionProxyHandler";config;constructor(D){this.config={...D}}get(D,$){if($==="_")return{...D._,selectedFields:new Proxy(D._.selectedFields,this)};if($===hD)return{...D[hD],selectedFields:new Proxy(D[hD].selectedFields,this)};if(typeof $==="symbol")return D[$];let X=(I(D,dD)?D._.selectedFields:I(D,y0)?D[hD].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 H6(new Proxy(X.table,new d3(this.config.alias,this.config.replaceOriginalName??!1))));return X}if(typeof X!=="object"||X===null)return X;return new Proxy(X,new lD(this.config))}}});var M0;var t2=M(()=>{a();M0=class M0{static[P]="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 aF,uV;var tF=M(()=>{a();f3();aF=class aF{static[P]="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 uV(D,this)}};uV=class uV{constructor(D,$){this.table=D,this.reference=$.reference,this.onUpdate=$._onUpdate,this.onDelete=$._onDelete}static[P]="SQLiteForeignKey";reference;onUpdate;onDelete;getName(){let{name:D,columns:$,foreignColumns:F}=this.reference(),X=$.map((Y)=>Y.name),J=F.map((Y)=>Y.name),G=[this.table[S0],...X,F[0].table[S0],...J];return D??`${G.join("_")}_fk`}}});function mV(D,$){return`${D[S0]}_${$.join("_")}_unique`}var eF=M(()=>{f3()});var F0,yD;var q8=M(()=>{uF();C2();a();tF();eF();F0=class F0 extends yF{static[P]="SQLiteColumnBuilder";foreignKeyConfigs=[];references(D,$={}){return this.foreignKeyConfigs.push({ref:D,actions:$}),this}unique(D){return this.config.isUnique=!0,this.config.uniqueName=D,this}generatedAlwaysAs(D,$){return this.config.generated={as:D,type:"always",mode:$?.mode??"virtual"},this}buildForeignKeys(D,$){return this.foreignKeyConfigs.map(({ref:F,actions:X})=>{return((J,G)=>{let Y=new aF(()=>{let B=J();return{columns:[D],foreignColumns:[B]}});if(G.onUpdate)Y.onUpdate(G.onUpdate);if(G.onDelete)Y.onDelete(G.onDelete);return Y.build($)})(F,X)})}};yD=class yD extends OD{constructor(D,$){if(!$.uniqueName)$.uniqueName=mV(D,[$.name]);super(D,$);this.table=D}static[P]="SQLiteColumn"}});function sV(D,$){let{name:F,config:X}=h2(D,$);if(X?.mode==="json")return new dV(F);if(X?.mode==="bigint")return new pV(F);return new iV(F)}var pV,cV,dV,lV,iV,nV;var DX=M(()=>{a();P0();q8();pV=class pV extends F0{static[P]="SQLiteBigIntBuilder";constructor(D){super(D,"bigint","SQLiteBigInt")}build(D){return new cV(D,this.config)}};cV=class cV extends yD{static[P]="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(lF.decode(D))}mapToDriverValue(D){return Buffer.from(D.toString())}};dV=class dV extends F0{static[P]="SQLiteBlobJsonBuilder";constructor(D){super(D,"json","SQLiteBlobJson")}build(D){return new lV(D,this.config)}};lV=class lV extends yD{static[P]="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(lF.decode(D))}mapToDriverValue(D){return Buffer.from(JSON.stringify(D))}};iV=class iV extends F0{static[P]="SQLiteBlobBufferBuilder";constructor(D){super(D,"buffer","SQLiteBlobBuffer")}build(D){return new nV(D,this.config)}};nV=class nV extends yD{static[P]="SQLiteBlobBuffer";mapFromDriverValue(D){if(Buffer.isBuffer(D))return D;return Buffer.from(D)}getSQLType(){return"blob"}}});function aV(D){return($,F)=>{let{name:X,config:J}=h2($,F);return new rV(X,J,D)}}var rV,oV;var $X=M(()=>{a();P0();q8();rV=class rV extends F0{static[P]="SQLiteCustomColumnBuilder";constructor(D,$,F){super(D,"custom","SQLiteCustomColumn");this.config.fieldConfig=$,this.config.customTypeParams=F}build(D){return new oV(D,this.config)}};oV=class oV extends yD{static[P]="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 bD(D,$){let{name:F,config:X}=h2(D,$);if(X?.mode==="timestamp"||X?.mode==="timestamp_ms")return new DQ(F,X.mode);if(X?.mode==="boolean")return new FQ(F,X.mode);return new tV(F)}var W4,V4,tV,eV,DQ,$Q,FQ,XQ;var FX=M(()=>{a();$0();P0();q8();W4=class W4 extends F0{static[P]="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()}};V4=class V4 extends yD{static[P]="SQLiteBaseInteger";autoIncrement=this.config.autoIncrement;getSQLType(){return"integer"}};tV=class tV extends W4{static[P]="SQLiteIntegerBuilder";constructor(D){super(D,"number","SQLiteInteger")}build(D){return new eV(D,this.config)}};eV=class eV extends V4{static[P]="SQLiteInteger"};DQ=class DQ extends W4{static[P]="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 $Q(D,this.config)}};$Q=class $Q extends V4{static[P]="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 $}};FQ=class FQ extends W4{static[P]="SQLiteBooleanBuilder";constructor(D,$){super(D,"boolean","SQLiteBoolean");this.config.mode=$}build(D){return new XQ(D,this.config)}};XQ=class XQ extends V4{static[P]="SQLiteBoolean";mode=this.config.mode;mapFromDriverValue(D){return Number(D)===1}mapToDriverValue(D){return D?1:0}}});function VQ(D,$){let{name:F,config:X}=h2(D,$),J=X?.mode;return J==="number"?new GQ(F):J==="bigint"?new HQ(F):new JQ(F)}var JQ,YQ,GQ,BQ,HQ,WQ;var XX=M(()=>{a();P0();q8();JQ=class JQ extends F0{static[P]="SQLiteNumericBuilder";constructor(D){super(D,"string","SQLiteNumeric")}build(D){return new YQ(D,this.config)}};YQ=class YQ extends yD{static[P]="SQLiteNumeric";mapFromDriverValue(D){if(typeof D==="string")return D;return String(D)}getSQLType(){return"numeric"}};GQ=class GQ extends F0{static[P]="SQLiteNumericNumberBuilder";constructor(D){super(D,"number","SQLiteNumericNumber")}build(D){return new BQ(D,this.config)}};BQ=class BQ extends yD{static[P]="SQLiteNumericNumber";mapFromDriverValue(D){if(typeof D==="number")return D;return Number(D)}mapToDriverValue=String;getSQLType(){return"numeric"}};HQ=class HQ extends F0{static[P]="SQLiteNumericBigIntBuilder";constructor(D){super(D,"bigint","SQLiteNumericBigInt")}build(D){return new WQ(D,this.config)}};WQ=class WQ extends yD{static[P]="SQLiteNumericBigInt";mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){return"numeric"}}});function _Q(D){return new QQ(D??"")}var QQ,UQ;var JX=M(()=>{a();q8();QQ=class QQ extends F0{static[P]="SQLiteRealBuilder";constructor(D){super(D,"number","SQLiteReal")}build(D){return new UQ(D,this.config)}};UQ=class UQ extends yD{static[P]="SQLiteReal";getSQLType(){return"real"}}});function T(D,$={}){let{name:F,config:X}=h2(D,$);if(X.mode==="json")return new CQ(F);return new AQ(F,X)}var AQ,KQ,CQ,OQ;var YX=M(()=>{a();P0();q8();AQ=class AQ extends F0{static[P]="SQLiteTextBuilder";constructor(D,$){super(D,"string","SQLiteText");this.config.enumValues=$.enum,this.config.length=$.length}build(D){return new KQ(D,this.config)}};KQ=class KQ extends yD{static[P]="SQLiteText";enumValues=this.config.enumValues;length=this.config.length;constructor(D,$){super(D,$)}getSQLType(){return`text${this.config.length?`(${this.config.length})`:""}`}};CQ=class CQ extends F0{static[P]="SQLiteTextJsonBuilder";constructor(D){super(D,"json","SQLiteTextJson")}build(D){return new OQ(D,this.config)}};OQ=class OQ extends yD{static[P]="SQLiteTextJson";getSQLType(){return"text"}mapFromDriverValue(D){return JSON.parse(D)}mapToDriverValue(D){return JSON.stringify(D)}}});function RQ(){return{blob:sV,customType:aV,integer:bD,numeric:VQ,real:_Q,text:T}}var EQ=M(()=>{DX();$X();FX();XX();JX();YX()});function Bj(D,$,F,X,J=D){let G=new X0(D,X,J),Y=typeof $==="function"?$(RQ()):$,B=Object.fromEntries(Object.entries(Y).map(([W,Q])=>{let U=Q;U.setName(W);let _=U.build(G);return G[GX].push(...U.buildForeignKeys(_,G)),[W,_]})),H=Object.assign(G,B);if(H[h.Symbol.Columns]=B,H[h.Symbol.ExtraConfigColumns]=B,F)H[X0.Symbol.ExtraConfigBuilder]=F;return H}var GX,X0,U0=(D,$,F)=>{return Bj(D,$,F)};var Y1=M(()=>{a();Q0();EQ();GX=Symbol.for("drizzle:SQLiteInlineForeignKeys");X0=class X0 extends h{static[P]="SQLiteTable";static Symbol=Object.assign({},h.Symbol,{InlineForeignKeys:GX});[h.Symbol.Columns];[GX]=[];[h.Symbol.ExtraConfigBuilder]=void 0}});var ZQ=()=>{};function m0(D){return new BX(D,!1)}function NQ(D){return new BX(D,!0)}var BX,MQ,zQ;var PQ=M(()=>{a();BX=class BX{constructor(D,$){this.name=D,this.unique=$}static[P]="SQLiteIndexBuilderOn";on(...D){return new MQ(this.name,D,this.unique)}};MQ=class MQ{static[P]="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 zQ(this.config,D)}};zQ=class zQ{static[P]="SQLiteIndex";config;constructor(D,$){this.config={...D,table:$}}}});var qQ=()=>{};function R2(D){if(I(D,X0))return[`${D[h.Symbol.BaseName]}`];if(I(D,dD))return D._.usedTables??[];if(I(D,m))return D.usedTables??[];return[]}var V6=M(()=>{a();$0();O2();Q0();Y1()});var Q4;var LQ=M(()=>{a();t2();W6();Y1();Q0();P0();V6();Q4=class Q4 extends M0{constructor(D,$,F,X){super();this.table=D,this.session=$,this.dialect=F,this.config={table:D,withList:X}}static[P]="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[h.Symbol.Columns],new lD({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=u0(D),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:D,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(D=!0){return this.session[D?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0,void 0,{type:"delete",tables:R2(this.config.table)})}prepare(){return this._prepare(!1)}run=(D)=>{return this._prepare().run(D)};all=(D)=>{return this._prepare().all(D)};get=(D)=>{return this._prepare().get(D)};values=(D)=>{return this._prepare().values(D)};async execute(D){return this._prepare().execute(D)}$dynamic(){return this}}});function Hj(D){return(D.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((F)=>F.toLowerCase()).join("_")}function Wj(D){return(D.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((F,X,J)=>{let G=J===0?X.toLowerCase():`${X[0].toUpperCase()}${X.slice(1)}`;return F+G},"")}function Vj(D){return D}var HX;var jQ=M(()=>{a();Q0();HX=class HX{static[P]="CasingCache";cache={};cachedTables={};convert;constructor(D){this.convert=D==="snake_case"?Hj:D==="camelCase"?Wj:Vj}getColumnCasing(D){if(!D.keyAsName)return D.name;let $=D.table[h.Symbol.Schema]??"public",F=D.table[h.Symbol.OriginalName],X=`${$}.${F}.${D.name}`;if(!this.cache[X])this.cacheTable(D.table);return this.cache[X]}cacheTable(D){let $=D[h.Symbol.Schema]??"public",F=D[h.Symbol.OriginalName],X=`${$}.${F}`;if(!this.cachedTables[X]){for(let J of Object.values(D[h.Symbol.Columns])){let G=`${X}.${J.name}`;this.cache[G]=this.convert(J.name)}this.cachedTables[X]=!0}}clearCache(){this.cache={},this.cachedTables={}}}});var Q6,e2,WX;var U4=M(()=>{a();Q6=class Q6 extends Error{static[P]="DrizzleError";constructor({message:D,cause:$}){super(D);this.name="DrizzleError",this.cause=$}};e2=class e2 extends Error{constructor(D,$,F){super(`Failed query: ${D}
|
|
112
|
-
params: ${$}`);if(this.query=D,this.params=$,this.cause=F,Error.captureStackTrace(this,e2),F)this.cause=F}};WX=class WX extends Q6{static[P]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}});function _4(D){return Z`count(${D||Z.raw("*")})`.mapWith(Number)}var IQ=M(()=>{$0()});var TQ=()=>{};var wQ=M(()=>{IQ();TQ()});var VX=M(()=>{sF();wQ();$0()});var QX=M(()=>{DX();q8();$X();FX();XX();JX();YX()});var G1;var A4=M(()=>{a();$0();G1=class G1 extends y0{static[P]="SQLiteViewBase"}});var i3,n3;var K4=M(()=>{H4();jQ();C2();a();U4();c3();VX();$0();QX();Y1();O2();Q0();P0();a2();A4();i3=class i3{static[P]="SQLiteDialect";casing;constructor(D){this.casing=new HX(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:G}){let Y=this.buildWithCTE(X),B=F?Z` returning ${this.buildSelection(F,{isSingleTable:!0})}`:void 0,H=$?Z` where ${$}`:void 0,W=this.buildOrderBy(G),Q=this.buildLimit(J);return Z`${Y}delete from ${D}${H}${B}${W}${Q}`}buildUpdateSet(D,$){let F=D[h.Symbol.Columns],X=Object.keys(F).filter((G)=>$[G]!==void 0||F[G]?.onUpdateFn!==void 0),J=X.length;return Z.join(X.flatMap((G,Y)=>{let B=F[G],H=$[G]??Z.param(B.onUpdateFn(),B),W=Z`${Z.identifier(this.casing.getColumnCasing(B))} = ${H}`;if(Y<J-1)return[W,Z.raw(", ")];return[W]}))}buildUpdateQuery({table:D,set:$,where:F,returning:X,withList:J,joins:G,from:Y,limit:B,orderBy:H}){let W=this.buildWithCTE(J),Q=this.buildUpdateSet(D,$),U=Y&&Z.join([Z.raw(" from "),this.buildFromTable(Y)]),_=this.buildJoins(G),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 ${Q}${U}${_}${O}${A}${C}${K}`}buildSelection(D,{isSingleTable:$=!1}={}){let F=D.length,X=D.flatMap(({field:J},G)=>{let Y=[];if(I(J,m.Aliased)&&J.isSelectionField)Y.push(Z.identifier(J.fieldAlias));else if(I(J,m.Aliased)||I(J,m)){let B=I(J,m.Aliased)?J.sql:J;if($)Y.push(new m(B.queryChunks.map((H)=>{if(I(H,OD))return Z.identifier(this.casing.getColumnCasing(H));return H})));else Y.push(B);if(I(J,m.Aliased))Y.push(Z` as ${Z.identifier(J.fieldAlias)}`)}else if(I(J,OD)){let B=J.table[h.Symbol.Name];if(J.columnType==="SQLiteNumericBigInt")if($)Y.push(Z`cast(${Z.identifier(this.casing.getColumnCasing(J))} as text)`);else Y.push(Z`cast(${Z.identifier(B)}.${Z.identifier(this.casing.getColumnCasing(J))} as text)`);else if($)Y.push(Z.identifier(this.casing.getColumnCasing(J)));else Y.push(Z`${Z.identifier(B)}.${Z.identifier(this.casing.getColumnCasing(J))}`)}if(G<F-1)Y.push(Z`, `);return Y});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,G=X.on?Z` on ${X.on}`:void 0;if(I(J,X0)){let Y=J[X0.Symbol.Name],B=J[X0.Symbol.Schema],H=J[X0.Symbol.OriginalName],W=Y===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)}`}${G}`)}else $.push(Z`${Z.raw(X.joinType)} join ${J}${G}`);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,h)&&D[h.Symbol.IsAlias])return Z`${Z`${Z.identifier(D[h.Symbol.Schema]??"")}.`.if(D[h.Symbol.Schema])}${Z.identifier(D[h.Symbol.OriginalName])} ${Z.identifier(D[h.Symbol.Name])}`;return D}buildSelectQuery({withList:D,fields:$,fieldsFlat:F,where:X,having:J,table:G,joins:Y,orderBy:B,groupBy:H,limit:W,offset:Q,distinct:U,setOperators:_}){let A=F??u0($);for(let $D of A)if(I($D.field,OD)&&M8($D.field.table)!==(I(G,dD)?G._.alias:I(G,G1)?G[hD].name:I(G,m)?void 0:M8(G))&&!((tD)=>Y?.some(({alias:S2})=>S2===(tD[h.Symbol.IsAlias]?M8(tD):tD[h.Symbol.BaseName])))($D.field.table)){let tD=M8($D.field.table);throw Error(`Your "${$D.path.join("->")}" field references a column "${tD}"."${$D.field.name}", but the table "${tD}" is not part of the query! Did you forget to join it?`)}let O=!Y||Y.length===0,C=this.buildWithCTE(D),K=U?Z` distinct`:void 0,R=this.buildSelection(A,{isSingleTable:O}),z=this.buildFromTable(G),N=this.buildJoins(Y),S=X?Z` where ${X}`:void 0,b=J?Z` having ${J}`:void 0,L=[];if(H){for(let[$D,tD]of H.entries())if(L.push(tD),$D<H.length-1)L.push(Z`, `)}let q=L.length>0?Z` group by ${Z.join(L)}`:void 0,j=this.buildOrderBy(B),d=this.buildLimit(W),VD=Q?Z` offset ${Q}`:void 0,QD=Z`${C}select${K} ${R} from ${z}${N}${S}${q}${b}${j}${d}${VD}`;if(_.length>0)return this.buildSetOperations(QD,_);return QD}buildSetOperations(D,$){let[F,...X]=$;if(!F)throw Error("Cannot pass undefined values to any set operator");if(X.length===0)return this.buildSetOperationQuery({leftSelect:D,setOperator:F});return this.buildSetOperations(this.buildSetOperationQuery({leftSelect:D,setOperator:F}),X)}buildSetOperationQuery({leftSelect:D,setOperator:{type:$,isAll:F,rightSelect:X,limit:J,orderBy:G,offset:Y}}){let B=Z`${D.getSQL()} `,H=Z`${X.getSQL()}`,W;if(G&&G.length>0){let A=[];for(let O of G)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 Q=typeof J==="object"||typeof J==="number"&&J>=0?Z` limit ${J}`:void 0,U=Z.raw(`${$} ${F?"all ":""}`),_=Y?Z` offset ${Y}`:void 0;return Z`${B}${U}${H}${W}${Q}${_}`}buildInsertQuery({table:D,values:$,onConflict:F,returning:X,withList:J,select:G}){let Y=[],B=D[h.Symbol.Columns],H=Object.entries(B).filter(([O,C])=>!C.shouldDisableInsert()),W=H.map(([,O])=>Z.identifier(this.casing.getColumnCasing(O)));if(G){let O=$;if(I(O,m))Y.push(O);else Y.push(O.getSQL())}else{let O=$;Y.push(Z.raw("values "));for(let[C,K]of O.entries()){let R=[];for(let[z,N]of H){let S=K[z];if(S===void 0||I(S,b0)&&S.value===void 0){let b;if(N.default!==null&&N.default!==void 0)b=I(N.default,m)?N.default:Z.param(N.default,N);else if(N.defaultFn!==void 0){let L=N.defaultFn();b=I(L,m)?L:Z.param(L,N)}else if(!N.default&&N.onUpdateFn!==void 0){let L=N.onUpdateFn();b=I(L,m)?L:Z.param(L,N)}else b=Z`null`;R.push(b)}else R.push(S)}if(Y.push(R),C<O.length-1)Y.push(Z`, `)}}let Q=this.buildWithCTE(J),U=Z.join(Y),_=X?Z` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,A=F?.length?Z.join(F):void 0;return Z`${Q}insert into ${D} ${W} ${U}${A}${_}`}sqlToQuery(D,$){return D.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,invokeSource:$})}buildRelationalQuery({fullSchema:D,schema:$,tableNamesMap:F,table:X,tableConfig:J,queryConfig:G,tableAlias:Y,nestedQueryRelation:B,joinOn:H}){let W=[],Q,U,_=[],A,O=[];if(G===!0)W=Object.entries(J.columns).map(([R,z])=>({dbKey:z.name,tsKey:R,field:y2(z,Y),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let K=Object.fromEntries(Object.entries(J.columns).map(([L,q])=>[L,y2(q,Y)]));if(G.where){let L=typeof G.where==="function"?G.where(K,vV()):G.where;A=L&&l3(L,Y)}let R=[],z=[];if(G.columns){let L=!1;for(let[q,j]of Object.entries(G.columns)){if(j===void 0)continue;if(q in J.columns){if(!L&&j===!0)L=!0;z.push(q)}}if(z.length>0)z=L?z.filter((q)=>G.columns?.[q]===!0):Object.keys(J.columns).filter((q)=>!z.includes(q))}else z=Object.keys(J.columns);for(let L of z){let q=J.columns[L];R.push({tsKey:L,value:q})}let N=[];if(G.with)N=Object.entries(G.with).filter((L)=>!!L[1]).map(([L,q])=>({tsKey:L,queryConfig:q,relation:J.relations[L]}));let S;if(G.extras){S=typeof G.extras==="function"?G.extras(K,{sql:Z}):G.extras;for(let[L,q]of Object.entries(S))R.push({tsKey:L,value:oF(q,Y)})}for(let{tsKey:L,value:q}of R)W.push({dbKey:I(q,m.Aliased)?q.fieldAlias:J.columns[L].name,tsKey:L,field:I(q,OD)?y2(q,Y):q,relationTableTsKey:void 0,isJson:!1,selection:[]});let b=typeof G.orderBy==="function"?G.orderBy(K,xV()):G.orderBy??[];if(!Array.isArray(b))b=[b];_=b.map((L)=>{if(I(L,OD))return y2(L,Y);return l3(L,Y)}),Q=G.limit,U=G.offset;for(let{tsKey:L,queryConfig:q,relation:j}of N){let d=gV($,F,j),VD=J1(j.referencedTable),QD=F[VD],$D=`${Y}_${L}`,tD=pD(...d.fields.map((jz,Iz)=>k(y2(d.references[Iz],$D),y2(jz,Y)))),S2=this.buildRelationalQuery({fullSchema:D,schema:$,tableNamesMap:F,table:D[QD],tableConfig:$[QD],queryConfig:I(j,P8)?q===!0?{limit:1}:{...q,limit:1}:q,tableAlias:$D,joinOn:tD,nestedQueryRelation:j}),Lz=Z`(${S2.sql})`.as(L);W.push({dbKey:L,tsKey:L,field:Lz,relationTableTsKey:QD,isJson:!0,selection:S2.selection})}}if(W.length===0)throw new Q6({message:`No fields selected for table "${J.tsName}" ("${Y}"). You need to have at least one item in "columns", "with" or "extras". If you need to select all columns, omit the "columns" key or set it to undefined.`});let C;if(A=pD(H,A),B){let K=Z`json_array(${Z.join(W.map(({field:N})=>I(N,yD)?Z.identifier(this.casing.getColumnCasing(N)):I(N,m.Aliased)?N.sql:N),Z`, `)})`;if(I(B,p3))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(Q!==void 0||U!==void 0||_.length>0)C=this.buildSelectQuery({table:B4(X,Y),fields:{},fieldsFlat:[{path:[],field:Z.raw("*")}],where:A,limit:Q,offset:U,orderBy:_,setOperators:[]}),A=void 0,Q=void 0,U=void 0,_=void 0;else C=B4(X,Y);C=this.buildSelectQuery({table:I(C,X0)?C:new dD(C,{},Y),fields:{},fieldsFlat:R.map(({field:N})=>({path:[],field:I(N,OD)?y2(N,Y):N})),joins:O,where:A,limit:Q,offset:U,orderBy:_,setOperators:[]})}else C=this.buildSelectQuery({table:B4(X,Y),fields:{},fieldsFlat:W.map(({field:K})=>({path:[],field:I(K,OD)?y2(K,Y):K})),joins:O,where:A,limit:Q,offset:U,orderBy:_,setOperators:[]});return{tableTsKey:J.tsName,sql:C,selection:W}}};n3=class n3 extends i3{static[P]="SQLiteSyncDialect";migrate(D,$,F){let X=F===void 0?"__drizzle_migrations":typeof F==="string"?"__drizzle_migrations":F.migrationsTable??"__drizzle_migrations",J=Z`
|
|
113
|
-
CREATE TABLE IF NOT EXISTS ${Z.identifier(X)} (
|
|
114
|
-
id SERIAL PRIMARY KEY,
|
|
115
|
-
hash text NOT NULL,
|
|
116
|
-
created_at numeric
|
|
117
|
-
)
|
|
118
|
-
`;$.run(J);let Y=$.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(!Y||Number(Y[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 UX;var SQ=M(()=>{a();UX=class UX{static[P]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}});function C4(D,$){return(F,X,...J)=>{let G=[X,...J].map((Y)=>({type:D,isAll:$,rightSelect:Y}));for(let Y of G)if(!g3(F.getSelectedFields(),Y.rightSelect.getSelectedFields()))throw Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return F.addSetOperators(G)}}var E2,bQ,_X,Qj=()=>({union:Uj,unionAll:_j,intersect:Aj,except:Kj}),Uj,_j,Aj,Kj;var AX=M(()=>{a();SQ();t2();W6();$0();O2();Q0();P0();a2();V6();A4();E2=class E2{static[P]="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,G1))F=D[hD].selectedFields;else if(I(D,m))F={};else F=QV(D);return new _X({table:D,fields:F,isPartialSelect:$,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct})}};bQ=class bQ extends UX{static[P]="SQLiteSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;cacheConfig=void 0;usedTables=new Set;constructor({table:D,fields:$,isPartialSelect:F,session:X,dialect:J,withList:G,distinct:Y}){super();this.config={withList:G,table:D,fields:{...$},distinct:Y,setOperators:[]},this.isPartialSelect=F,this.session=X,this.dialect=J,this._={selectedFields:$,config:this.config},this.tableName=y3(D),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{};for(let B of R2(D))this.usedTables.add(B)}getUsedTables(){return[...this.usedTables]}createJoin(D){return($,F)=>{let X=this.tableName,J=y3($);for(let G of R2($))this.usedTables.add(G);if(typeof J==="string"&&this.config.joins?.some((G)=>G.alias===J))throw Error(`Alias "${J}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof X==="string")this.config.fields={[X]:this.config.fields};if(typeof J==="string"&&!I($,m)){let G=I($,dD)?$._.selectedFields:I($,y0)?$[hD].selectedFields:$[h.Symbol.Columns];this.config.fields[J]=G}}if(typeof F==="function")F=F(new Proxy(this.config.fields,new lD({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));if(!this.config.joins)this.config.joins=[];if(this.config.joins.push({on:F,table:$,joinType:D,alias:J}),typeof J==="string")switch(D){case"left":{this.joinsNotNullableMap[J]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([G])=>[G,!1])),this.joinsNotNullableMap[J]=!0;break}case"cross":case"inner":{this.joinsNotNullableMap[J]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([G])=>[G,!1])),this.joinsNotNullableMap[J]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");crossJoin=this.createJoin("cross");createSetOperator(D,$){return(F)=>{let X=typeof F==="function"?F(Qj()):F;if(!g3(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 lD({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=D,this}having(D){if(typeof D==="function")D=D(new Proxy(this.config.fields,new lD({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 lD({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 lD({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),F=Array.isArray($)?$:[$];if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=F;else this.config.orderBy=F}else{let $=D;if(this.config.setOperators.length>0)this.config.setOperators.at(-1).orderBy=$;else this.config.orderBy=$}return this}limit(D){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).limit=D;else this.config.limit=D;return this}offset(D){if(this.config.setOperators.length>0)this.config.setOperators.at(-1).offset=D;else this.config.offset=D;return this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:D,...$}=this.dialect.sqlToQuery(this.getSQL());return $}as(D){let $=[];if($.push(...R2(this.config.table)),this.config.joins)for(let F of this.config.joins)$.push(...R2(F.table));return new Proxy(new dD(this.getSQL(),this.config.fields,D,!1,[...new Set($)]),new lD({alias:D,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new lD({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}};_X=class _X extends bQ{static[P]="SQLiteSelect";_prepare(D=!0){if(!this.session)throw Error("Cannot execute a query on a query builder. Please use a database instance instead.");let $=u0(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()}};VV(_X,[M0]);Uj=C4("union",!1),_j=C4("union",!0),Aj=C4("intersect",!1),Kj=C4("except",!1)});var s3;var KX=M(()=>{a();W6();K4();O2();AX();s3=class s3{static[P]="SQLiteQueryBuilder";dialect;dialectConfig;constructor(D){this.dialect=I(D,i3)?D:void 0,this.dialectConfig=I(D,i3)?void 0:D}$with=(D,$)=>{let F=this;return{as:(J)=>{if(typeof J==="function")J=J(F);return new Proxy(new x3(J.getSQL(),$??("getSelectedFields"in J?J.getSelectedFields()??{}:{}),D,!0),new lD({alias:D,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...D){let $=this;function F(J){return new E2({fields:J??void 0,session:void 0,dialect:$.getDialect(),withList:D})}function X(J){return new E2({fields:J??void 0,session:void 0,dialect:$.getDialect(),withList:D,distinct:!0})}return{select:F,selectDistinct:X}}select(D){return new E2({fields:D??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(D){return new E2({fields:D??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}getDialect(){if(!this.dialect)this.dialect=new n3(this.dialectConfig);return this.dialect}}});var O4,CX;var fQ=M(()=>{a();t2();$0();Y1();Q0();P0();V6();KX();O4=class O4{constructor(D,$,F,X){this.table=D,this.session=$,this.dialect=F,this.withList=X}static[P]="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[h.Symbol.Columns];for(let G of Object.keys(F)){let Y=F[G];X[G]=I(Y,m)?Y:new b0(Y,J[G])}return X});return new CX(this.table,$,this.session,this.dialect,this.withList)}select(D){let $=typeof D==="function"?D(new s3):D;if(!I($,m)&&!g3(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 CX(this.table,$,this.session,this.dialect,this.withList,!0)}};CX=class CX extends M0{constructor(D,$,F,X,J,G){super();this.session=F,this.dialect=X,this.config={table:D,values:$,withList:J,select:G}}static[P]="SQLiteInsert";config;returning(D=this.config.table[X0.Symbol.Columns]){return this.config.returning=u0(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]}`,G=this.dialect.buildUpdateSet(this.config.table,X4(this.config.table,D.set));return this.config.onConflict.push(Z` on conflict ${J}${F} do update set ${G}${$}${X}`),this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:D,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(D=!0){return this.session[D?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0,void 0,{type:"insert",tables:R2(this.config.table)})}prepare(){return this._prepare(!1)}run=(D)=>{return this._prepare().run(D)};all=(D)=>{return this._prepare().all(D)};get=(D)=>{return this._prepare().get(D)};values=(D)=>{return this._prepare().values(D)};async execute(){return this.config.returning?this.all():this.run()}$dynamic(){return this}}});var R4,kQ;var vQ=M(()=>{a();t2();W6();Y1();O2();Q0();P0();a2();V6();A4();R4=class R4{constructor(D,$,F,X){this.table=D,this.session=$,this.dialect=F,this.withList=X}static[P]="SQLiteUpdateBuilder";set(D){return new kQ(this.table,X4(this.table,D),this.session,this.dialect,this.withList)}};kQ=class kQ extends M0{constructor(D,$,F,X,J){super();this.session=F,this.dialect=X,this.config={set:$,table:D,withList:J,joins:[]}}static[P]="SQLiteUpdate";config;from(D){return this.config.from=D,this}createJoin(D){return($,F)=>{let X=y3($);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)?$[h.Symbol.Columns]:I($,dD)?$._.selectedFields:I($,G1)?$[hD].selectedFields:void 0:void 0;F=F(new Proxy(this.config.table[h.Symbol.Columns],new lD({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),J&&new Proxy(J,new lD({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[h.Symbol.Columns],new lD({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=u0(D),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:D,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(D=!0){return this.session[D?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0,void 0,{type:"insert",tables:R2(this.config.table)})}prepare(){return this._prepare(!1)}run=(D)=>{return this._prepare().run(D)};all=(D)=>{return this._prepare().all(D)};get=(D)=>{return this._prepare().get(D)};values=(D)=>{return this._prepare().values(D)};async execute(){return this.config.returning?this.all():this.run()}$dynamic(){return this}}});var OX=M(()=>{LQ();fQ();KX();AX();vQ()});var r3;var xQ=M(()=>{a();$0();r3=class r3 extends m{constructor(D){super(r3.buildEmbeddedCount(D.source,D.filters).queryChunks);this.params=D,this.session=D.session,this.sql=r3.buildCount(D.source,D.filters)}sql;static[P]="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 EX,E4,RX;var hQ=M(()=>{a();t2();c3();EX=class EX{constructor(D,$,F,X,J,G,Y,B){this.mode=D,this.fullSchema=$,this.schema=F,this.tableNamesMap=X,this.table=J,this.tableConfig=G,this.dialect=Y,this.session=B}static[P]="SQLiteAsyncRelationalQueryBuilder";findMany(D){return this.mode==="sync"?new RX(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?D:{},"many"):new E4(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?D:{},"many")}findFirst(D){return this.mode==="sync"?new RX(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?{...D,limit:1}:{limit:1},"first"):new E4(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?{...D,limit:1}:{limit:1},"first")}};E4=class E4 extends M0{constructor(D,$,F,X,J,G,Y,B,H){super();this.fullSchema=D,this.schema=$,this.tableNamesMap=F,this.table=X,this.tableConfig=J,this.dialect=G,this.session=Y,this.config=B,this.mode=H}static[P]="SQLiteAsyncRelationalQuery";mode;getSQL(){return this.dialect.buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName}).sql}_prepare(D=!1){let{query:$,builtQuery:F}=this._toSQL();return this.session[D?"prepareOneTimeQuery":"prepareQuery"](F,void 0,this.mode==="first"?"get":"all",!0,(X,J)=>{let G=X.map((Y)=>G4(this.schema,this.tableConfig,Y,$.selection,J));if(this.mode==="first")return G[0];return G})}prepare(){return this._prepare(!1)}_toSQL(){let D=this.dialect.buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName}),$=this.dialect.sqlToQuery(D.sql);return{query:D,builtQuery:$}}toSQL(){return this._toSQL().builtQuery}executeRaw(){if(this.mode==="first")return this._prepare(!1).get();return this._prepare(!1).all()}async execute(){return this.executeRaw()}};RX=class RX extends E4{static[P]="SQLiteSyncRelationalQuery";sync(){return this.executeRaw()}}});var U6;var gQ=M(()=>{a();t2();U6=class U6 extends M0{constructor(D,$,F,X,J){super();this.execute=D,this.getSQL=$,this.dialect=X,this.mapBatchResult=J,this.config={action:F}}static[P]="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 o3;var Z4=M(()=>{a();W6();$0();OX();O2();xQ();hQ();gQ();o3=class o3{constructor(D,$,F,X){this.resultKind=D,this.dialect=$,this.session=F,this._=X?{schema:X.schema,fullSchema:X.fullSchema,tableNamesMap:X.tableNamesMap}:{schema:void 0,fullSchema:{},tableNamesMap:{}},this.query={};let J=this.query;if(this._.schema)for(let[G,Y]of Object.entries(this._.schema))J[G]=new EX(D,X.fullSchema,this._.schema,this._.tableNamesMap,X.fullSchema[G],Y,$,F);this.$cache={invalidate:async(G)=>{}}}static[P]="BaseSQLiteDatabase";query;$with=(D,$)=>{let F=this;return{as:(J)=>{if(typeof J==="function")J=J(new s3(F.dialect));return new Proxy(new x3(J.getSQL(),$??("getSelectedFields"in J?J.getSelectedFields()??{}:{}),D,!0),new lD({alias:D,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(D,$){return new r3({source:D,filters:$,session:this.session})}with(...D){let $=this;function F(B){return new E2({fields:B??void 0,session:$.session,dialect:$.dialect,withList:D})}function X(B){return new E2({fields:B??void 0,session:$.session,dialect:$.dialect,withList:D,distinct:!0})}function J(B){return new R4(B,$.session,$.dialect,D)}function G(B){return new O4(B,$.session,$.dialect,D)}function Y(B){return new Q4(B,$.session,$.dialect,D)}return{select:F,selectDistinct:X,update:J,insert:G,delete:Y}}select(D){return new E2({fields:D??void 0,session:this.session,dialect:this.dialect})}selectDistinct(D){return new E2({fields:D??void 0,session:this.session,dialect:this.dialect,distinct:!0})}update(D){return new R4(D,this.session,this.dialect)}$cache;insert(D){return new O4(D,this.session,this.dialect)}delete(D){return new Q4(D,this.session,this.dialect)}run(D){let $=typeof D==="string"?Z.raw(D):D.getSQL();if(this.resultKind==="async")return new U6(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 U6(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 U6(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 U6(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 yQ=()=>{};async function MX(D,$){let F=`${D}-${JSON.stringify($)}`,J=new TextEncoder().encode(F),G=await crypto.subtle.digest("SHA-256",J);return[...new Uint8Array(G)].map((H)=>H.toString(16).padStart(2,"0")).join("")}var uQ,ZX;var mQ=M(()=>{a();uQ=class uQ{static[P]="Cache"};ZX=class ZX extends uQ{strategy(){return"all"}static[P]="NoopCache";async get(D){return}async put(D,$,F,X){}async onMutate(D){}}});var pQ,zX,NX,PX;var qX=M(()=>{mQ();a();U4();t2();Z4();pQ=class pQ extends M0{constructor(D){super();this.resultCb=D}static[P]="ExecuteResultSync";async execute(){return this.resultCb()}sync(){return this.resultCb()}};zX=class zX{constructor(D,$,F,X,J,G){if(this.mode=D,this.executeMethod=$,this.query=F,this.cache=X,this.queryMetadata=J,this.cacheConfig=G,X&&X.strategy()==="all"&&G===void 0)this.cacheConfig={enable:!0,autoInvalidate:!0};if(!this.cacheConfig?.enable)this.cacheConfig=void 0}static[P]="PreparedQuery";joinsNotNullableMap;async queryWithCache(D,$,F){if(this.cache===void 0||I(this.cache,ZX)||this.queryMetadata===void 0)try{return await F()}catch(X){throw new e2(D,$,X)}if(this.cacheConfig&&!this.cacheConfig.enable)try{return await F()}catch(X){throw new e2(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 e2(D,$,X)}if(!this.cacheConfig)try{return await F()}catch(X){throw new e2(D,$,X)}if(this.queryMetadata.type==="select"){let X=await this.cache.get(this.cacheConfig.tag??await MX(D,$),this.queryMetadata.tables,this.cacheConfig.tag!==void 0,this.cacheConfig.autoInvalidate);if(X===void 0){let J;try{J=await F()}catch(G){throw new e2(D,$,G)}return await this.cache.put(this.cacheConfig.tag??await MX(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 e2(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 pQ(()=>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,$)}}};NX=class NX{constructor(D){this.dialect=D}static[P]="SQLiteSession";prepareOneTimeQuery(D,$,F,X,J,G,Y){return this.prepareQuery(D,$,F,X,J,G,Y)}run(D){let $=this.dialect.sqlToQuery(D);try{return this.prepareOneTimeQuery($,void 0,"run",!1).run()}catch(F){throw new Q6({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")}};PX=class PX extends o3{constructor(D,$,F,X,J=0){super(D,$,F,X);this.schema=X,this.nestedIndex=J}static[P]="SQLiteTransaction";rollback(){throw new WX}}});var cQ=()=>{};var M4=M(()=>{yQ();ZQ();QX();Z4();K4();tF();PQ();qQ();OX();qX();Y1();eF();V6();cQ()});var LX,jX,dQ;var IX=M(()=>{a();e7();$0();M4();qX();P0();LX=class LX extends NX{constructor(D,$,F,X={}){super($);this.client=D,this.schema=F,this.logger=X.logger??new xF}static[P]="SQLiteBunSession";logger;exec(D){this.client.exec(D)}prepareQuery(D,$,F,X,J){let G=this.client.prepare(D.sql);return new dQ(G,D,this.logger,$,F,X,J)}transaction(D,$={}){let F=new jX("sync",this.dialect,this,this.schema),X;return this.client.transaction(()=>{X=D(F)})[$.behavior??"deferred"](),X}};jX=class jX extends PX{static[P]="SQLiteBunTransaction";transaction(D){let $=`sp${this.nestedIndex}`,F=new jX("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}}};dQ=class dQ extends zX{constructor(D,$,F,X,J,G,Y){super("sync",J,$);this.stmt=D,this.logger=F,this.fields=X,this._isResponseInArrayMode=G,this.customResultMapper=Y}static[P]="SQLiteBunPreparedQuery";run(D){let $=h3(this.query.params,D??{});return this.logger.logQuery(this.query.sql,$),this.stmt.run(...$)}all(D){let{fields:$,query:F,logger:X,joinsNotNullableMap:J,stmt:G,customResultMapper:Y}=this;if(!$&&!Y){let H=h3(F.params,D??{});return X.logQuery(F.sql,H),G.all(...H)}let B=this.values(D);if(Y)return Y(B);return B.map((H)=>dF($,H,J))}get(D){let $=h3(this.query.params,D??{});this.logger.logQuery(this.query.sql,$);let F=this.stmt.values(...$)[0];if(!F)return;let{fields:X,joinsNotNullableMap:J,customResultMapper:G}=this;if(!X&&!G)return F;if(G)return G([F]);return dF(X,F,J)}values(D){let $=h3(this.query.params,D??{});return this.logger.logQuery(this.query.sql,$),this.stmt.values(...$)}isResponseInArrayMode(){return this._isResponseInArrayMode}}});import{Database as z4}from"bun:sqlite";function _6(D,$={}){let F=new n3({casing:$.casing}),X;if($.logger===!0)X=new vF;else if($.logger!==!1)X=$.logger;let J;if($.schema){let B=hV($.schema,yV);J={fullSchema:$.schema,schema:B.tables,tableNamesMap:B.tableNamesMap}}let G=new LX(D,F,J,{logger:X}),Y=new lQ("sync",F,G,J);return Y.$client=D,Y}function A6(...D){if(D[0]===void 0||typeof D[0]==="string"){let $=D[0]===void 0?new z4:new z4(D[0]);return _6($,D[1])}if(UV(D[0])){let{connection:$,client:F,...X}=D[0];if(F)return _6(F,X);if(typeof $==="object"){let{source:G,...Y}=$,B=Object.values(Y).filter((W)=>W!==void 0).length?Y:void 0,H=new z4(G,B);return _6(H,X)}let J=new z4($);return _6(J,X)}return _6(D[0],D[1])}var lQ;var iQ=M(()=>{a();e7();c3();Z4();K4();P0();IX();lQ=class lQ extends o3{static[P]="BunSQLiteDatabase"};((D)=>{function $(F){return _6({},F)}D.mock=$})(A6||(A6={}))});var TX=M(()=>{iQ();IX()});import Cj from"crypto";import wX from"fs";function nQ(D){let $=D.migrationsFolder,F=[],X=`${$}/meta/_journal.json`;if(!wX.existsSync(X))throw Error("Can't find meta/_journal.json file");let J=wX.readFileSync(`${$}/meta/_journal.json`).toString(),G=JSON.parse(J);for(let Y of G.entries){let B=`${$}/${Y.tag}.sql`;try{let H=wX.readFileSync(`${$}/${Y.tag}.sql`).toString(),W=H.split("--> statement-breakpoint").map((Q)=>{return Q});F.push({sql:W,bps:Y.breakpoints,folderMillis:Y.when,hash:Cj.createHash("sha256").update(H).digest("hex")})}catch{throw Error(`No file ${B} found in ${$} folder`)}}return F}var sQ=()=>{};function N4(D,$){let F=nQ($);D.dialect.migrate(F,D.session,$)}var SX=M(()=>{sQ()});var _0=M(()=>{H4();uF();C2();a();U4();e7();t2();c3();VX();O2();Q0();P0();a2()});var m4={};n8(m4,{workerSecrets:()=>K0,workerIdentity:()=>c0,workerConfig:()=>z2,skillDrafts:()=>L0,skillBindings:()=>X9,sessionEntries:()=>WD,messages:()=>l,executionLogs:()=>X8,evolutionObservations:()=>M2,cronJobs:()=>ID,conversations:()=>p,agentTasks:()=>Z2});var Z2,p,WD,l,X8,X9,L0,M2,c0,z2,ID,K0;var nX=M(()=>{M4();Z2=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:m0("agent_tasks_created_at_idx").on(D.createdAt)})),p=U0("conversations",{id:T("id").primaryKey(),taskId:T("task_id").references(()=>Z2.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:m0("conversations_lookup_idx").on(D.channel,D.chatId,D.threadId,D.status),lastActiveAtIdx:m0("conversations_last_active_at_idx").on(D.lastActiveAt)})),WD=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:bD("context_tokens").notNull().default(0),totalTokens:bD("total_tokens").notNull().default(0),totalTokensFresh:bD("total_tokens_fresh").notNull().default(0),compactionCount:bD("compaction_count").notNull().default(0),memoryFlushAt:T("memory_flush_at"),memoryFlushCompactionCount:bD("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:m0("session_entries_current_conversation_id_idx").on(D.currentConversationId),lastInteractionAtIdx:m0("session_entries_last_interaction_at_idx").on(D.lastInteractionAt)})),l=U0("messages",{id:bD("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:bD("tokens_in"),tokensOut:bD("tokens_out"),richMetadata:T("rich_metadata"),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({conversationIdIdx:m0("messages_conversation_id_idx").on(D.conversationId)})),X8=U0("execution_logs",{id:bD("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:bD("duration"),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({conversationIdIdx:m0("execution_logs_conversation_id_idx").on(D.conversationId)})),X9=U0("skill_bindings",{id:bD("id").primaryKey({autoIncrement:!0}),source:T("source").$type().notNull(),brainName:T("brain_name"),skillName:T("skill_name").notNull(),enabled:bD("enabled",{mode:"boolean"}).notNull().default(!0),priority:bD("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:NQ("skill_bindings_source_brain_name_idx").on(D.source,D.brainName,D.skillName)})),L0=U0("skill_drafts",{id:bD("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")}),M2=U0("evolution_observations",{id:bD("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:m0("evolution_observations_noticed_at_idx").on(D.noticedAt)})),c0=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")}),z2=U0("worker_config",{pk:T("pk").primaryKey().default("default"),configJson:T("config_json",{mode:"json"}).$type().notNull(),version:bD("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:bD("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:m0("cron_jobs_due_idx").on(D.enabled,D.nextRunAt)})),K0=U0("worker_secrets",{id:bD("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 FJ={};n8(FJ,{workerSecrets:()=>K0,workerSchema:()=>m4,workerIdentity:()=>c0,workerConfig:()=>z2,upsertSessionEntry:()=>tX,updateSessionEngineBinding:()=>$J,touchSessionEntry:()=>E6,skillDrafts:()=>L0,skillBindings:()=>X9,sessionEntries:()=>WD,runWorkerMigrations:()=>G9,rotateSessionConversation:()=>eX,recordSessionCompaction:()=>DJ,messages:()=>l,listConversations:()=>oX,listConversationMessages:()=>aX,listAgentTasks:()=>rX,initWorkerDb:()=>Y9,getWorkerDb:()=>g,getSessionEntry:()=>H0,executionLogs:()=>X8,evolutionObservations:()=>M2,defaultWorkerMigrationsFolder:()=>R6,cronJobs:()=>ID,conversations:()=>p,closeWorkerDb:()=>CT,agentTasks:()=>Z2});import{existsSync as __}from"fs";import sX from"path";import{fileURLToPath as UT}from"url";import{Database as _T}from"bun:sqlite";function AT(D){let $=sX.resolve(A_,"../../drizzle",D);if(__($))return $;let F=sX.resolve(A_,"drizzle",D);if(__(F))return F;return $}function KT(D){let $=new _T(D,{create:!0});return $.exec("PRAGMA journal_mode = WAL"),$.exec("PRAGMA foreign_keys = ON"),A6($,{schema:m4})}function Y9(D){return J9=KT(D),J9}function g(){if(!J9)throw Error("Worker database not initialized. Call initWorkerDb() first.");return J9}function CT(){J9=null}function G9(D=R6){N4(g(),{migrationsFolder:D})}function rX(D=200){return g().select().from(Z2).orderBy(jD(Z2.createdAt)).limit(D).all()}function oX(D=200){return g().select().from(p).orderBy(jD(p.lastActiveAt)).limit(D).all()}function aX(D){return g().select().from(l).where(k(l.conversationId,D)).all()}function H0(D){return g().select().from(WD).where(k(WD.sessionKey,D)).get()??null}function tX(D){let $=g(),F=D.at??new Date().toISOString(),X=H0(D.sessionKey);if(!X)$.insert(WD).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(WD).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(WD.sessionKey,D.sessionKey)).run();return H0(D.sessionKey)}function E6(D,$={}){if(!H0(D))return null;let X=$.at??new Date().toISOString();return g().update(WD).set({lastInteractionAt:X,updatedAt:X,...$.contextTokens===void 0?{}:{contextTokens:$.contextTokens},...$.totalTokens===void 0?{}:{totalTokens:$.totalTokens},...$.totalTokensFresh===void 0?{}:{totalTokensFresh:$.totalTokensFresh}}).where(k(WD.sessionKey,D)).run(),H0(D)}function eX(D){if(!H0(D.sessionKey))return null;let F=D.at??new Date().toISOString();return g().update(WD).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(WD.sessionKey,D.sessionKey)).run(),H0(D.sessionKey)}function DJ(D,$={}){let F=H0(D);if(!F)return null;let X=$.at??new Date().toISOString(),J=F.compactionCount+1;return g().update(WD).set({compactionCount:J,...$.memoryFlushAt===void 0?{}:{memoryFlushAt:$.memoryFlushAt,memoryFlushCompactionCount:J},updatedAt:X}).where(k(WD.sessionKey,D)).run(),H0(D)}function $J(D,$,F,X){let J=H0(D);if(!J)return null;let G={...J.engineBindings};if(F===null)delete G[$];else G[$]=F;return g().update(WD).set({engineBindings:G,updatedAt:X??new Date().toISOString()}).where(k(WD.sessionKey,D)).run(),H0(D)}var A_,R6,J9=null;var fD=M(()=>{_0();TX();SX();nX();nX();A_=sX.dirname(UT(import.meta.url));R6=AT("worker")});import K_ from"path";import C_ from"process";function RT(D){let $={};for(let[F,X]of Object.entries(D)){let J=/^MAX_CONCURRENT_(.+)$/.exec(F);if(!J)continue;if(J[1]==="TOTAL")continue;let G=J[1].toLowerCase().replace(/_/g,"-"),Y=Number.parseInt(X??"",10);if(Number.isFinite(Y)&&Y>0)$[G]=Y}return $}function W1(){if(p4)return p4;let D=OT.parse(C_.env);return p4=Object.freeze({...D,perEngineLimits:Object.freeze({...RT(C_.env)})}),p4}var OT,p4=null,i;var c4=M(()=>{A2();cD();fD();mD();OT=V.object({PORT:V.coerce.number().default(9217),AIWORKER_WORKER_HOST:V.string().min(1).default("127.0.0.1"),AIWORKER_ADMIN_EXTERNAL_AUTH:V.enum(["1","true","0","false"]).default("0").transform(I3),WORKER_DB_PATH:V.string().default(()=>K_.join(U2(),"worker.db")),WORKER_MIGRATIONS_FOLDER:V.string().default(()=>R6),AIWORKER_MASTER_KEY:V.string().regex(/^[0-9a-f]{64}$/,"AIWORKER_MASTER_KEY must be 32-byte hex (64 hex chars)"),AIWORKER_FORCE_ID:V.string().regex(x0).optional(),AIWORKER_FORCE_TOKEN:V.string().regex(o2).optional(),AIWORKER_ADVERTISED_BASE_URL:V.string().optional(),WORKER_DATA_ROOT:V.string().default(()=>K_.join(U2(),"data-root")),WORKER_WORKSPACE_GIT_ORIGIN:V.string().optional(),AIWORKER_GATEWAY_URL:V.string().url().optional(),AIWORKER_JOIN_TOKEN:V.string().min(1).optional(),AIWORKER_DISPLAY_NAME:V.string().min(1).max(80).optional(),AIWORKER_ENROLL_MODE:V.enum(["auto","otp"]).optional().default("auto"),CLAUDE_CLI_VERSION:V.string().optional(),MAX_CONCURRENT_TOTAL:V.coerce.number().int().min(1).default(4),PROCESS_STALL_TIMEOUT_MS:V.coerce.number().int().min(1).default(120000),PROCESS_KILL_TIMEOUT_MS:V.coerce.number().int().min(0).default(1e4),PROCESS_AUTO_CLEANUP_DELAY_MS:V.coerce.number().int().min(0).default(60000),PROCESS_GC_INTERVAL_MS:V.coerce.number().int().min(0).default(30000)});i=new Proxy({},{get(D,$){return W1()[$]},has(D,$){return $ in W1()},ownKeys(D){return Reflect.ownKeys(W1())},getOwnPropertyDescriptor(D,$){return Reflect.getOwnPropertyDescriptor(W1(),$)}})});function J8(D){let $=ET[D.engine];if(!$)throw Error(`unknown executor engine: ${D.engine}`);let F=$.variants[D.variant];if(!F)throw Error(`unknown executor variant '${D.variant}' for engine '${D.engine}'`);let{cmd:X,...J}=D.overrides??{},G={...F,...J};return{engine:D.engine,body:G,...X?{cmd:X}:{},...D.modelId===void 0?{}:{modelId:D.modelId},...D.reasoningId===void 0?{}:{reasoningId:D.reasoningId},...D.permissionPolicy===void 0?{}:{permissionPolicy:D.permissionPolicy}}}function O_(D){if(!D||typeof D!=="object")return{...H9};let $=D;if(typeof $.engine==="string")return $;let F=$.type;if(typeof F!=="string")return{...H9};switch(F){case"http":return{engine:"http",variant:"default",overrides:B9({baseUrl:$.baseUrl,apiKey:$.apiKey,model:$.model,timeoutMs:$.timeoutMs})};case"mcp":return{engine:"mcp",variant:"default",overrides:B9({url:$.url,token:$.token,defaultModel:$.defaultModel,tools:$.tools,timeoutMs:$.timeoutMs})};case"cli":return{engine:"cli",variant:"default",overrides:B9({command:$.command,args:$.args,cwd:$.cwd,env:$.env,timeoutMs:$.timeoutMs,sandbox:$.sandbox})};case"claude-code":return{engine:"claude-code",variant:"default",overrides:B9({model:$.model,cliVersion:$.cliVersion,extraArgs:$.extraArgs,env:$.env,workspaceRoot:$.workspaceRoot,timeoutMs:$.timeoutMs})};case"acp":return{engine:"acp",variant:$.agent==="qwen"?"qwen":"gemini",overrides:B9({model:$.model,cliVersion:$.cliVersion,extraArgs:$.extraArgs,env:$.env,timeoutMs:$.timeoutMs})};default:return{...H9}}}function B9(D){let $={};for(let[F,X]of Object.entries(D))if(X!==void 0)$[F]=X;return $}var ET,H9;var V1=M(()=>{ET={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}}}},H9={engine:"http",variant:"default",overrides:{baseUrl:"http://localhost:9999",model:"stub"}}});var Z6;var XJ=M(()=>{V1();Z6={brains:[],brainWriteTarget:"",brainRetrieval:"first-match",executor:{...H9},channels:[],evolution:{enabled:!1,observationRetentionDays:7}}});async function Q1(D){let $=await D.select().from(z2).where(k(z2.pk,"default")).get();if($)return{config:ZT($.configJson),version:$.version};let F=new Date().toISOString();return await D.insert(z2).values({pk:"default",configJson:Z6,version:1,updatedAt:F,updatedBy:"bootstrap"}).run(),{config:Z6,version:1}}function ZT(D){let $=D.executor;if($&&typeof $==="object"&&"engine"in $)return D;return{...D,executor:O_($)}}var R_=M(()=>{fD();_0();V1();XJ()});import{randomBytes as MT}from"crypto";function M6(){let D=MT(32),$=`${u7}${zT(D)}`;if(!Z8($))throw Error("mintApiToken: generated token failed isWorkerApiToken check");return $}function zT(D){return D.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function U1(D,$,F={}){let X=await D.select().from(c0).where(k(c0.pk,"default")).get();if(X){let U=$.decryptString(X.apiTokenEnc,X.nonce,X.authTag);if(!Z8(U))throw Error("loadOrMintIdentity: decrypted API token failed isWorkerApiToken check");return await SF(X.workerId),{workerId:X.workerId,token:U,justMinted:!1}}let J=F.forceId??d4();if(!x0.test(J))throw Error(`loadOrMintIdentity: forceId ${J} does not match WORKER_ID_PATTERN`);let G=F.forceToken??M6();if(!Z8(G))throw Error("loadOrMintIdentity: forceToken does not match WORKER_API_TOKEN_PATTERN");let Y=G,{ciphertext:B,nonce:H,authTag:W}=$.encryptString(Y),Q=new Date().toISOString();return await D.insert(c0).values({pk:"default",workerId:J,apiTokenEnc:B,nonce:H,authTag:W,bootstrapShownAt:Q,createdAt:Q}).run(),await SF(J),{workerId:J,token:Y,justMinted:!0}}var d4;var JJ=M(()=>{A2();cD();fD();_0();d4=RF});import NT from"process";function _1(D,$,F,X,J=NT.stdout){if(!X)return;J.write(`[worker] id=${D}
|
|
119
|
-
`),J.write(`[worker] AIWORKER_BOOTSTRAP_TOKEN=${$}
|
|
120
|
-
`),J.write(`[worker] save this token; it will not be printed again.
|
|
121
|
-
`),F.update(c0).set({bootstrapShownAt:new Date().toISOString()}).where(k(c0.pk,"default")).run()}var E_=M(()=>{fD();_0()});var Z_=M(()=>{R_();XJ();JJ();E_()});import{Buffer as M_}from"buffer";import{timingSafeEqual as PT}from"crypto";function u2(D,$){let F=M_.from(D,"utf8"),X=M_.from($,"utf8");if(F.length!==X.length)return!1;return PT(F,X)}var l4=()=>{};import{Buffer as z_}from"buffer";import{createDecipheriv as qT,createHash as LT}from"crypto";function IT(D,$){let F=LT("sha256").update($,"utf8").digest(),X=z_.from(D,"base64");if(X.length<=16)throw Error("lark: encrypted payload too short");let J=X.subarray(0,16),G=X.subarray(16),Y=qT("aes-256-cbc",F,J);return z_.concat([Y.update(G),Y.final()]).toString("utf8")}function N_(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(IT(F.encrypt,$))}return F}function TT(D){return D.type==="url_verification"||D.header?.event_type==="url_verification"}function wT(D){if(typeof D.header?.token==="string")return D.header.token;if(typeof D.token==="string")return D.token;return}async function ST(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 bT(D,$){let F=YJ.get(D);if(!F)F={},YJ.set(D,F);if(F.current&&F.current.expiresAt-Date.now()>jT)return F.current.token;if(F.inflight)return(await F.inflight).token;let X=F;return X.inflight=ST(D,$).then((J)=>{return X.current=J,J}).finally(()=>{X.inflight=void 0}),(await X.inflight).token}function fT(D){let $=typeof D.parent_id==="string"&&D.parent_id.length>0?D.parent_id:void 0;if(!$)return;return{quote:$}}function q_(){YJ.clear()}var jT=60000,YJ,P_;var GJ=M(()=>{l4();YJ=new Map;P_={channel:"lark",async verify(D,$,F){if(F.credentials.channel!=="lark")throw Error("lark adapter called with non-lark credentials");let X=N_(D,F.credentials.encryptKey),J=wT(X);if(J===void 0||!u2(J,F.credentials.verificationToken))throw Error("invalid Lark verification token")},async toEnvelopes(D,$,F){if(!F||F.credentials.channel!=="lark")throw Error("lark adapter requires a lark binding for accountId derivation");let X=F.credentials.appId,J=F.credentials.encryptKey,G=N_(D,J);if(TT(G))return[];if(G.header?.event_type!=="im.message.receive_v1")return[];let Y=G.event?.message;if(!Y||Y.message_type!=="text")return[];let B="";try{let O=JSON.parse(Y.content);B=typeof O.text==="string"?O.text:""}catch{return[]}if(!B)return[];let H=G.event?.sender,W=H?.sender_id?.open_id,Q=H?.sender_id?.name,U=Y.chat_type==="group"?`group:${Y.chat_id}`:`p2p:${W??""}`,_=fT(Y);return[{workerId:$,channel:"lark",accountId:X,chatId:U,...W===void 0?{}:{userId:W},...Q===void 0?{}:{userDisplayName:Q},text:B,..._===void 0?{}:{richMetadata:_},receivedAt:new Date(Number(Y.create_time)).toISOString(),raw:G}]},async send(D,$){if(D.credentials.channel!=="lark")throw Error("lark adapter called with non-lark credentials");let{appId:F,appSecret:X}=D.credentials,J=await bT(F,X),[G,Y]=$.chatId.split(":",2);if(!G||!Y)throw Error(`lark send: malformed chatId ${$.chatId}`);if(G!=="group"&&G!=="p2p")throw Error(`lark send: unsupported chat kind "${G}"`);let H=await fetch(`https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=${G==="group"?"chat_id":"open_id"}`,{method:"POST",headers:{Authorization:`Bearer ${J}`,"Content-Type":"application/json"},body:JSON.stringify({receive_id:Y,msg_type:"text",content:JSON.stringify({text:$.text})})}),W=await H.json().catch(()=>({}));if(W.code!==0)throw Error(`Lark send failed: ${W.code??H.status} ${W.msg??H.statusText}`)}}});function z6(){return new Date().toISOString()}import{Buffer as L_}from"buffer";import{createHash as kT,createHmac as vT,timingSafeEqual as xT}from"crypto";function hT(D,$){return vT("sha256",D).update($,"utf8").digest("base64")}function gT(D){switch(D.type){case"user":return`user:${D.userId}`;case"group":return`group:${D.groupId}`;case"room":return`room:${D.roomId}`}}function yT(D){let $=D.message?.quotedMessageId;if(typeof $!=="string"||$.length===0)return;return{quote:$}}var j_;var I_=M(()=>{j_={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=hT(F.credentials.channelSecret,D),G=L_.from(X,"base64"),Y=L_.from(J,"base64");if(G.length!==Y.length||!xT(G,Y))throw Error("invalid LINE signature")},async toEnvelopes(D,$,F){if(!F||F.credentials.channel!=="line")throw Error("line adapter requires a line binding for accountId derivation");let X=kT("sha256").update(F.credentials.channelAccessToken,"utf8").digest("hex").slice(0,16),J=JSON.parse(D),G=[];for(let Y of J.events){if(Y.type!=="message"||Y.message?.type!=="text"||!Y.message.text)continue;let B=gT(Y.source),H=Y.source.type==="user"?Y.source.userId:("userId"in Y.source)?Y.source.userId:void 0,W=yT(Y);G.push({workerId:$,channel:"line",accountId:X,chatId:B,...H===void 0?{}:{userId:H},text:Y.message.text,...W===void 0?{}:{richMetadata:W},receivedAt:new Date(Y.timestamp).toISOString()||z6(),raw:Y})}return G},async send(D,$){if(D.credentials.channel!=="line")throw Error("line adapter called with non-line credentials");let F=D.credentials.channelAccessToken,[X,J]=$.chatId.split(":",2);if(!X||!J)throw Error(`line send: malformed chatId ${$.chatId}`);let G=await fetch("https://api.line.me/v2/bot/message/push",{method:"POST",headers:{Authorization:`Bearer ${F}`,"Content-Type":"application/json"},body:JSON.stringify({to:J,messages:[{type:"text",text:$.text}]})});if(!G.ok){let Y=await G.text();throw Error(`LINE push failed: ${G.status} ${Y}`)}}}});import{Buffer as T_}from"buffer";import{createHash as uT,timingSafeEqual as mT}from"crypto";function lT(D,$){let F=T_.from(D,"utf8"),X=T_.from($,"utf8");if(F.length!==X.length)return!1;return mT(F,X)}function iT(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 nT(D,$){if(D.length<=$)return[D];let F=[],X=D;while(X.length>$){let J=-1;for(let G=$-1;G>0;G--)if(dT.test(X[G])){J=G;break}if(J>0)F.push(X.slice(0,J)),X=X.slice(J+1);else F.push(X.slice(0,$)),X=X.slice($)}if(X.length>0)F.push(X);return F}function sT(D){if(D.botUsername&&D.botUsername.length>0)return D.botUsername;return uT("sha256").update(D.botToken,"utf8").digest("hex").slice(0,16)}function rT(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 pT=4096,cT="x-telegram-bot-api-secret-token",dT,w_;var S_=M(()=>{dT=/\s/;w_={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=$[cT];if(!J||!lT(J,X))throw Error("invalid X-Telegram-Bot-Api-Secret-Token")},async toEnvelopes(D,$,F){if(!F||F.credentials.channel!=="telegram")throw Error("telegram adapter requires a telegram binding for accountId derivation");let X=JSON.parse(D),J=X.message;if(!J||typeof J.text!=="string")return[];let G=`${J.chat.type}:${J.chat.id}`,Y=J.from?.id?.toString(),B=iT(J.from),H=Number.isFinite(J.date)?new Date(J.date*1000).toISOString():z6(),W=sT(F.credentials),Q=rT(J);return[{workerId:$,channel:"telegram",accountId:W,chatId:G,...Y===void 0?{}:{userId:Y},...B===void 0?{}:{userDisplayName:B},text:J.text,...Q===void 0?{}:{richMetadata:Q},receivedAt:H,raw:X}]},async send(D,$){if(D.credentials.channel!=="telegram")throw Error("telegram adapter called with non-telegram credentials");let F=D.credentials.botToken,X=$.chatId.indexOf(":");if(X<=0||X===$.chatId.length-1)throw Error(`telegram send: malformed chatId ${$.chatId}`);let J=$.chatId.slice(X+1),G=Number(J);if(!Number.isFinite(G)||!Number.isInteger(G))throw Error(`telegram send: malformed chatId ${$.chatId}`);let Y=`https://api.telegram.org/bot${F}/sendMessage`,B=nT($.text,pT);for(let H of B){let W=await fetch(Y,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({chat_id:G,text:H})});if(!W.ok){let Q=await W.text();throw Error(`Telegram sendMessage failed: ${W.status} ${Q}`)}}}}});function aT(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 tT(D){let $=D.authorization;if(!$)return null;let F=/^bearer\s+(\S+)\s*$/i.exec($);return F?F[1]:null}var oT="default",b_;var f_=M(()=>{l4();b_={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=tT($);if(!J||!u2(J,X))throw Error("invalid Authorization bearer token")},async toEnvelopes(D,$,F){let X=F?.id&&F.id.length>0?F.id:oT,J=JSON.parse(D),G=aT(J.metadata);return[{workerId:$,channel:"web",accountId:X,chatId:J.chatId,...J.threadId===void 0?{}:{threadId:J.threadId},...J.userId===void 0?{}:{userId:J.userId},...J.userDisplayName===void 0?{}:{userDisplayName:J.userDisplayName},text:J.text,...G===void 0?{}:{richMetadata:G},receivedAt:z6(),raw:J}]},async send(){}}});import{Buffer as k_}from"buffer";import{createHmac as eT,timingSafeEqual as Dw}from"crypto";function Fw(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 Xw(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 $w="v21.0",v_;var x_=M(()=>{v_={channel:"whatsapp",async verify(D,$,F){if(F.credentials.channel!=="whatsapp")throw Error("whatsapp adapter called with non-whatsapp credentials");let X=$["x-hub-signature-256"];if(!X)throw Error("missing X-Hub-Signature-256 header");let[J,G]=X.split("=",2);if(J!=="sha256"||!G)throw Error("invalid X-Hub-Signature-256 format");let Y=eT("sha256",F.credentials.appSecret).update(D,"utf8").digest("hex"),B=k_.from(G,"hex"),H=k_.from(Y,"hex");if(B.length!==H.length||!Dw(B,H))throw Error("invalid WhatsApp signature")},async toEnvelopes(D,$,F){if(!F||F.credentials.channel!=="whatsapp")throw Error("whatsapp adapter requires a whatsapp binding for accountId derivation");let X=F.credentials.phoneNumberId,J=JSON.parse(D),G=[];for(let Y of J.entry??[])for(let B of Y.changes??[]){let H=B.value;if(!H||!H.messages||H.messages.length===0)continue;let W=H.contacts??[];for(let Q of H.messages){let U=Fw(Q);if(U===void 0)continue;let _=Q.from,O=W.find((K)=>K.wa_id===_)?.profile?.name,C=Xw(Q);G.push({workerId:$,channel:"whatsapp",accountId:X,chatId:_,userId:_,...O?{userDisplayName:O}:{},text:U,...C===void 0?{}:{richMetadata:C},receivedAt:new Date(Number(Q.timestamp)*1000).toISOString(),raw:Q})}}return G},async send(D,$){if(D.credentials.channel!=="whatsapp")throw Error("whatsapp adapter called with non-whatsapp credentials");let{phoneNumberId:F,accessToken:X}=D.credentials,J=`https://graph.facebook.com/${$w}/${F}/messages`,G=await fetch(J,{method:"POST",headers:{Authorization:`Bearer ${X}`,"Content-Type":"application/json"},body:JSON.stringify({messaging_product:"whatsapp",recipient_type:"individual",to:$.chatId,type:"text",text:{preview_url:!1,body:$.text}})});if(!G.ok){let Y=await G.text();throw Error(`WhatsApp send failed: ${G.status} ${Y}`)}}}});function A1(D){return Jw[D]}class W9{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 A1(D)}}var Jw;var V9=M(()=>{GJ();I_();S_();f_();x_();Jw={web:b_,line:j_,telegram:w_,lark:P_,whatsapp:v_}});function Y8(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 i4(D){let $=structuredClone(D);return $.brains=$.brains.map((F)=>{if(F.type==="cloud-gateway")return{...F,config:{...F.config,token:""}};return F}),Yw($),$.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 N6(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}),Gw(F,$),F.channels=F.channels.map((X)=>{let J=X.credentials;switch(J.channel){case"line":return{...X,credentials:{...J,channelSecret:$.get("channels.line.credentials.channelSecret")??"",channelAccessToken:$.get("channels.line.credentials.channelAccessToken")??""}};case"telegram":{let G=$.get("channels.telegram.credentials.webhookSecretToken");return{...X,credentials:{...J,botToken:$.get("channels.telegram.credentials.botToken")??"",webhookSecretToken:G??J.webhookSecretToken}}}case"lark":return{...X,credentials:{...J,appSecret:$.get("channels.lark.credentials.appSecret")??"",encryptKey:$.get("channels.lark.credentials.encryptKey")??"",verificationToken:$.get("channels.lark.credentials.verificationToken")??""}};case"whatsapp":return{...X,credentials:{...J,accessToken:$.get("channels.whatsapp.credentials.accessToken")??"",appSecret:$.get("channels.whatsapp.credentials.appSecret")??"",verifyToken:$.get("channels.whatsapp.credentials.verifyToken")??""}};case"web":{let G=$.get("channels.web.credentials.inboundToken");return{...X,credentials:{...J,inboundToken:G??J.inboundToken}}}default:return X}}),F}function Yw(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 Gw(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 g_=f((h_)=>{Object.defineProperty(h_,"__esModule",{value:!0})});var T8=f((y_)=>{Object.defineProperty(y_,"__esModule",{value:!0});y_.CronField=void 0;class BJ{#D=!1;#$=!1;#X=!1;#Y=[];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.#Y=D.sort(BJ.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.#Y}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.#Y}}validate(){let D,$=this.chars.length>0?` or chars ${this.chars.join("")}`:"",F=(Y)=>(B)=>new RegExp(`^\\d{0,2}${B}$`).test(Y),X=(Y)=>{return D=Y,typeof Y==="number"?Y>=this.min&&Y<=this.max:this.chars.some(F(Y))};if(!this.#Y.every(X))throw Error(`${this.constructor.name} Validation error, got value ${D} expected range ${this.min}-${this.max}${$}`);let G=this.#Y.find((Y,B)=>this.#Y.indexOf(Y)!==B);if(G)throw Error(`${this.constructor.name} Validation error, duplicate values found: ${G}`)}#J(){if(this.options.rawValue.length>0)return["*","?"].includes(this.options.rawValue);return Array.from({length:this.max-this.min+1},(D,$)=>$+this.min).every((D)=>this.#Y.includes(D))}}y_.CronField=BJ});var d_=f((p_)=>{Object.defineProperty(p_,"__esModule",{value:!0});p_.CronDayOfMonth=void 0;var Bw=T8(),Hw=1,Ww=31,Vw=Object.freeze(["L"]);class m_ extends Bw.CronField{static get min(){return Hw}static get max(){return Ww}static get chars(){return Vw}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}}p_.CronDayOfMonth=m_});var s_=f((i_)=>{Object.defineProperty(i_,"__esModule",{value:!0});i_.CronDayOfWeek=void 0;var Qw=T8(),Uw=0,_w=7,Aw=Object.freeze(["L"]);class l_ extends Qw.CronField{static get min(){return Uw}static get max(){return _w}static get chars(){return Aw}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}}i_.CronDayOfWeek=l_});var t_=f((o_)=>{Object.defineProperty(o_,"__esModule",{value:!0});o_.CronHour=void 0;var Kw=T8(),Cw=0,Ow=23,Rw=Object.freeze([]);class r_ extends Kw.CronField{static get min(){return Cw}static get max(){return Ow}static get chars(){return Rw}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}o_.CronHour=r_});var FA=f((DA)=>{Object.defineProperty(DA,"__esModule",{value:!0});DA.CronMinute=void 0;var Ew=T8(),Zw=0,Mw=59,zw=Object.freeze([]);class e_ extends Ew.CronField{static get min(){return Zw}static get max(){return Mw}static get chars(){return zw}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}DA.CronMinute=e_});var yK=f((gK)=>{Object.defineProperty(gK,"__esModule",{value:!0});class f8 extends Error{}class fA extends f8{constructor(D){super(`Invalid DateTime: ${D.toMessage()}`)}}class kA extends f8{constructor(D){super(`Invalid Interval: ${D.toMessage()}`)}}class vA extends f8{constructor(D){super(`Invalid Duration: ${D.toMessage()}`)}}class O1 extends f8{}class IJ extends f8{constructor(D){super(`Invalid unit ${D}`)}}class W0 extends f8{}class B8 extends f8{constructor(){super("Zone is an abstract class")}}var u="numeric",q2="short",k0="long",D5={year:u,month:u,day:u},xA={year:u,month:q2,day:u},Nw={year:u,month:q2,day:u,weekday:q2},hA={year:u,month:k0,day:u},gA={year:u,month:k0,day:u,weekday:k0},yA={hour:u,minute:u},uA={hour:u,minute:u,second:u},mA={hour:u,minute:u,second:u,timeZoneName:q2},pA={hour:u,minute:u,second:u,timeZoneName:k0},cA={hour:u,minute:u,hourCycle:"h23"},dA={hour:u,minute:u,second:u,hourCycle:"h23"},lA={hour:u,minute:u,second:u,hourCycle:"h23",timeZoneName:q2},iA={hour:u,minute:u,second:u,hourCycle:"h23",timeZoneName:k0},nA={year:u,month:u,day:u,hour:u,minute:u},sA={year:u,month:u,day:u,hour:u,minute:u,second:u},rA={year:u,month:q2,day:u,hour:u,minute:u},oA={year:u,month:q2,day:u,hour:u,minute:u,second:u},Pw={year:u,month:q2,day:u,weekday:q2,hour:u,minute:u},aA={year:u,month:k0,day:u,hour:u,minute:u,timeZoneName:q2},tA={year:u,month:k0,day:u,hour:u,minute:u,second:u,timeZoneName:q2},eA={year:u,month:k0,day:u,weekday:k0,hour:u,minute:u,timeZoneName:k0},DK={year:u,month:k0,day:u,weekday:k0,hour:u,minute:u,second:u,timeZoneName:k0};class E1{get type(){throw new B8}get name(){throw new B8}get ianaName(){return this.name}get isUniversal(){throw new B8}offsetName(D,$){throw new B8}formatOffset(D,$){throw new B8}offset(D){throw new B8}equals(D){throw new B8}get isValid(){throw new B8}}var HJ=null;class O9 extends E1{static get instance(){if(HJ===null)HJ=new O9;return HJ}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(D,{format:$,locale:F}){return AK(D,$,F)}formatOffset(D,$){return K9(this.offset(D),$)}offset(D){return-new Date(D).getTimezoneOffset()}equals(D){return D.type==="system"}get isValid(){return!0}}var OJ=new Map;function qw(D){let $=OJ.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"}),OJ.set(D,$);return $}var Lw={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function jw(D,$){let F=D.format($).replace(/\u200E/g,""),X=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(F),[,J,G,Y,B,H,W,Q]=X;return[Y,J,G,B,H,W,Q]}function Iw(D,$){let F=D.formatToParts($),X=[];for(let J=0;J<F.length;J++){let{type:G,value:Y}=F[J],B=Lw[G];if(G==="era")X[B]=Y;else if(!t(B))X[B]=parseInt(Y,10)}return X}var WJ=new Map;class m2 extends E1{static create(D){let $=WJ.get(D);if($===void 0)WJ.set(D,$=new m2(D));return $}static resetCache(){WJ.clear(),OJ.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=m2.isValidZone(D)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(D,{format:$,locale:F}){return AK(D,$,F,this.name)}formatOffset(D,$){return K9(this.offset(D),$)}offset(D){if(!this.valid)return NaN;let $=new Date(D);if(isNaN($))return NaN;let F=qw(this.name),[X,J,G,Y,B,H,W]=F.formatToParts?Iw(F,$):jw(F,$);if(Y==="BC")X=-Math.abs(X)+1;let U=Y5({year:X,month:J,day:G,hour:B===24?0:B,minute:H,second:W,millisecond:0}),_=+$,A=_%1000;return _-=A>=0?A:1000+A,(U-_)/60000}equals(D){return D.type==="iana"&&D.name===this.name}get isValid(){return this.valid}}var XA={};function Tw(D,$={}){let F=JSON.stringify([D,$]),X=XA[F];if(!X)X=new Intl.ListFormat(D,$),XA[F]=X;return X}var RJ=new Map;function EJ(D,$={}){let F=JSON.stringify([D,$]),X=RJ.get(F);if(X===void 0)X=new Intl.DateTimeFormat(D,$),RJ.set(F,X);return X}var ZJ=new Map;function ww(D,$={}){let F=JSON.stringify([D,$]),X=ZJ.get(F);if(X===void 0)X=new Intl.NumberFormat(D,$),ZJ.set(F,X);return X}var MJ=new Map;function Sw(D,$={}){let{base:F,...X}=$,J=JSON.stringify([D,X]),G=MJ.get(J);if(G===void 0)G=new Intl.RelativeTimeFormat(D,$),MJ.set(J,G);return G}var U9=null;function bw(){if(U9)return U9;else return U9=new Intl.DateTimeFormat().resolvedOptions().locale,U9}var zJ=new Map;function $K(D){let $=zJ.get(D);if($===void 0)$=new Intl.DateTimeFormat(D).resolvedOptions(),zJ.set(D,$);return $}var NJ=new Map;function fw(D){let $=NJ.get(D);if(!$){let F=new Intl.Locale(D);if($="getWeekInfo"in F?F.getWeekInfo():F.weekInfo,!("minimalDays"in $))$={...YK,...$};NJ.set(D,$)}return $}function kw(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=EJ(D).resolvedOptions(),J=D}catch(B){let H=D.substring(0,F);X=EJ(H).resolvedOptions(),J=H}let{numberingSystem:G,calendar:Y}=X;return[J,G,Y]}}function vw(D,$,F){if(F||$){if(!D.includes("-u-"))D+="-u";if(F)D+=`-ca-${F}`;if($)D+=`-nu-${$}`;return D}else return D}function xw(D){let $=[];for(let F=1;F<=12;F++){let X=DD.utc(2009,F,1);$.push(D(X))}return $}function hw(D){let $=[];for(let F=1;F<=7;F++){let X=DD.utc(2016,11,13+F);$.push(D(X))}return $}function n4(D,$,F,X){let J=D.listingMode();if(J==="error")return null;else if(J==="en")return F($);else return X($)}function gw(D){if(D.numberingSystem&&D.numberingSystem!=="latn")return!1;else return D.numberingSystem==="latn"||!D.locale||D.locale.startsWith("en")||$K(D.locale).numberingSystem==="latn"}class FK{constructor(D,$,F){this.padTo=F.padTo||0,this.floor=F.floor||!1;let{padTo:X,floor:J,...G}=F;if(!$||Object.keys(G).length>0){let Y={useGrouping:!1,...F};if(F.padTo>0)Y.minimumIntegerDigits=F.padTo;this.inf=ww(D,Y)}}format(D){if(this.inf){let $=this.floor?Math.floor(D):D;return this.inf.format($)}else{let $=this.floor?Math.floor(D):kJ(D,3);return iD($,this.padTo)}}}class XK{constructor(D,$,F){this.opts=F,this.originalZone=void 0;let X=void 0;if(this.opts.timeZone)this.dt=D;else if(D.zone.type==="fixed"){let G=-1*(D.offset/60),Y=G>=0?`Etc/GMT+${G}`:`Etc/GMT${G}`;if(D.offset!==0&&m2.create(Y).valid)X=Y,this.dt=D;else X="UTC",this.dt=D.offset===0?D:D.setZone("UTC").plus({minutes:D.offset}),this.originalZone=D.zone}else if(D.zone.type==="system")this.dt=D;else if(D.zone.type==="iana")this.dt=D,X=D.zone.name;else X="UTC",this.dt=D.setZone("UTC").plus({minutes:D.offset}),this.originalZone=D.zone;let J={...this.opts};J.timeZone=J.timeZone||X,this.dtf=EJ($,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},!$&&UK())this.rtf=Sw(D,F)}format(D,$){if(this.rtf)return this.rtf.format(D,$);else return YS($,D,this.opts.numeric,this.opts.style!=="long")}formatToParts(D,$){if(this.rtf)return this.rtf.formatToParts(D,$);else return[]}}var YK={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 G=D||kD.defaultLocale,Y=G||(J?"en-US":bw()),B=$||kD.defaultNumberingSystem,H=F||kD.defaultOutputCalendar,W=qJ(X)||kD.defaultWeekSettings;return new RD(Y,B,H,W,G)}static resetCache(){U9=null,RJ.clear(),ZJ.clear(),MJ.clear(),zJ.clear(),NJ.clear()}static fromObject({locale:D,numberingSystem:$,outputCalendar:F,weekSettings:X}={}){return RD.create(D,$,F,X)}constructor(D,$,F,X,J){let[G,Y,B]=kw(D);this.locale=G,this.numberingSystem=$||Y||null,this.outputCalendar=F||B||null,this.weekSettings=X,this.intl=vw(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=gw(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,qJ(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 n4(this,D,OK,()=>{let F=this.intl==="ja"||this.intl.startsWith("ja-");$&=!F;let X=$?{month:D,day:"numeric"}:{month:D},J=$?"format":"standalone";if(!this.monthsCache[J][D]){let G=!F?(Y)=>this.extract(Y,X,"month"):(Y)=>this.dtFormatter(Y,X).format();this.monthsCache[J][D]=xw(G)}return this.monthsCache[J][D]})}weekdays(D,$=!1){return n4(this,D,ZK,()=>{let F=$?{weekday:D,year:"numeric",month:"long",day:"numeric"}:{weekday:D},X=$?"format":"standalone";if(!this.weekdaysCache[X][D])this.weekdaysCache[X][D]=hw((J)=>this.extract(J,F,"weekday"));return this.weekdaysCache[X][D]})}meridiems(){return n4(this,void 0,()=>MK,()=>{if(!this.meridiemCache){let D={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[DD.utc(2016,11,13,9),DD.utc(2016,11,13,19)].map(($)=>this.extract($,D,"dayperiod"))}return this.meridiemCache})}eras(D){return n4(this,D,zK,()=>{let $={era:D};if(!this.eraCache[D])this.eraCache[D]=[DD.utc(-40,1,1),DD.utc(2017,1,1)].map((F)=>this.extract(F,$,"era"));return this.eraCache[D]})}extract(D,$,F){let X=this.dtFormatter(D,$),J=X.formatToParts(),G=J.find((Y)=>Y.type.toLowerCase()===F);return G?G.value:null}numberFormatter(D={}){return new FK(this.intl,D.forceSimple||this.fastNumbers,D)}dtFormatter(D,$={}){return new XK(D,this.intl,$)}relFormatter(D={}){return new JK(this.intl,this.isEnglish(),D)}listFormatter(D={}){return Tw(this.intl,D)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||$K(this.intl).locale.startsWith("en-us")}getWeekSettings(){if(this.weekSettings)return this.weekSettings;else if(!_K())return YK;else return fw(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 VJ=null;class O0 extends E1{static get utcInstance(){if(VJ===null)VJ=new O0(0);return VJ}static instance(D){return D===0?O0.utcInstance:new O0(D)}static parseSpecifier(D){if(D){let $=D.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if($)return new O0(G5($[1],$[2]))}return null}constructor(D){super();this.fixed=D}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${K9(this.fixed,"narrow")}`}get ianaName(){if(this.fixed===0)return"Etc/UTC";else return`Etc/GMT${K9(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(D,$){return K9(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 TJ extends E1{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 S8(D,$){if(t(D)||D===null)return $;else if(D instanceof E1)return D;else if(dw(D)){let F=D.toLowerCase();if(F==="default")return $;else if(F==="local"||F==="system")return O9.instance;else if(F==="utc"||F==="gmt")return O0.utcInstance;else return O0.parseSpecifier(F)||m2.create(D)}else if(b8(D))return O0.instance(D);else if(typeof D==="object"&&"offset"in D&&typeof D.offset==="function")return D;else return new TJ(D)}var wJ={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]},yw=wJ.hanidec.replace(/[\[|\]]/g,"").split("");function uw(D){let $=parseInt(D,10);if(isNaN($)){$="";for(let F=0;F<D.length;F++){let X=D.charCodeAt(F);if(D[F].search(wJ.hanidec)!==-1)$+=yw.indexOf(D[F]);else for(let J in JA){let[G,Y]=JA[J];if(X>=G&&X<=Y)$+=X-G}}return parseInt($,10)}else return $}var PJ=new Map;function mw(){PJ.clear()}function N2({numberingSystem:D},$=""){let F=D||"latn",X=PJ.get(F);if(X===void 0)X=new Map,PJ.set(F,X);let J=X.get($);if(J===void 0)J=new RegExp(`${wJ[F]}${$}`),X.set($,J);return J}var YA=()=>Date.now(),GA="system",BA=null,HA=null,WA=null,VA=60,QA,UA=null;class kD{static get now(){return YA}static set now(D){YA=D}static set defaultZone(D){GA=D}static get defaultZone(){return S8(GA,O9.instance)}static get defaultLocale(){return BA}static set defaultLocale(D){BA=D}static get defaultNumberingSystem(){return HA}static set defaultNumberingSystem(D){HA=D}static get defaultOutputCalendar(){return WA}static set defaultOutputCalendar(D){WA=D}static get defaultWeekSettings(){return UA}static set defaultWeekSettings(D){UA=qJ(D)}static get twoDigitCutoffYear(){return VA}static set twoDigitCutoffYear(D){VA=D%100}static get throwOnInvalid(){return QA}static set throwOnInvalid(D){QA=D}static resetCaches(){RD.resetCache(),m2.resetCache(),DD.resetCache(),mw()}}class l0{constructor(D,$){this.reason=D,this.explanation=$}toMessage(){if(this.explanation)return`${this.reason}: ${this.explanation}`;else return this.reason}}var GK=[0,31,59,90,120,151,181,212,243,273,304,334],BK=[0,31,60,91,121,152,182,213,244,274,305,335];function i0(D,$){return new l0("unit out of range",`you specified ${$} (of type ${typeof $}) as a ${D}, which is invalid`)}function SJ(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 HK(D,$,F){return F+(R9(D)?BK:GK)[$-1]}function WK(D,$){let F=R9(D)?BK:GK,X=F.findIndex((G)=>G<$),J=$-F[X];return{month:X+1,day:J}}function bJ(D,$){return(D-$+7)%7+1}function $5(D,$=4,F=1){let{year:X,month:J,day:G}=D,Y=HK(X,J,G),B=bJ(SJ(X,J,G),F),H=Math.floor((Y-B+14-$)/7),W;if(H<1)W=X-1,H=C9(W,$,F);else if(H>C9(X,$,F))W=X+1,H=1;else W=X;return{weekYear:W,weekNumber:H,weekday:B,...B5(D)}}function _A(D,$=4,F=1){let{weekYear:X,weekNumber:J,weekday:G}=D,Y=bJ(SJ(X,1,$),F),B=I6(X),H=J*7+G-Y-7+$,W;if(H<1)W=X-1,H+=I6(W);else if(H>B)W=X+1,H-=I6(X);else W=X;let{month:Q,day:U}=WK(W,H);return{year:W,month:Q,day:U,...B5(D)}}function QJ(D){let{year:$,month:F,day:X}=D,J=HK($,F,X);return{year:$,ordinal:J,...B5(D)}}function AA(D){let{year:$,ordinal:F}=D,{month:X,day:J}=WK($,F);return{year:$,month:X,day:J,...B5(D)}}function KA(D,$){if(!t(D.localWeekday)||!t(D.localWeekNumber)||!t(D.localWeekYear)){if(!t(D.weekday)||!t(D.weekNumber)||!t(D.weekYear))throw new O1("Cannot mix locale-based week fields with ISO-based week fields");if(!t(D.localWeekday))D.weekday=D.localWeekday;if(!t(D.localWeekNumber))D.weekNumber=D.localWeekNumber;if(!t(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 pw(D,$=4,F=1){let X=J5(D.weekYear),J=n0(D.weekNumber,1,C9(D.weekYear,$,F)),G=n0(D.weekday,1,7);if(!X)return i0("weekYear",D.weekYear);else if(!J)return i0("week",D.weekNumber);else if(!G)return i0("weekday",D.weekday);else return!1}function cw(D){let $=J5(D.year),F=n0(D.ordinal,1,I6(D.year));if(!$)return i0("year",D.year);else if(!F)return i0("ordinal",D.ordinal);else return!1}function VK(D){let $=J5(D.year),F=n0(D.month,1,12),X=n0(D.day,1,F5(D.year,D.month));if(!$)return i0("year",D.year);else if(!F)return i0("month",D.month);else if(!X)return i0("day",D.day);else return!1}function QK(D){let{hour:$,minute:F,second:X,millisecond:J}=D,G=n0($,0,23)||$===24&&F===0&&X===0&&J===0,Y=n0(F,0,59),B=n0(X,0,59),H=n0(J,0,999);if(!G)return i0("hour",$);else if(!Y)return i0("minute",F);else if(!B)return i0("second",X);else if(!H)return i0("millisecond",J);else return!1}function t(D){return typeof D>"u"}function b8(D){return typeof D==="number"}function J5(D){return typeof D==="number"&&D%1===0}function dw(D){return typeof D==="string"}function lw(D){return Object.prototype.toString.call(D)==="[object Date]"}function UK(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch(D){return!1}}function _K(){try{return typeof Intl<"u"&&!!Intl.Locale&&(("weekInfo"in Intl.Locale.prototype)||("getWeekInfo"in Intl.Locale.prototype))}catch(D){return!1}}function iw(D){return Array.isArray(D)?D:[D]}function CA(D,$,F){if(D.length===0)return;return D.reduce((X,J)=>{let G=[$(J),J];if(!X)return G;else if(F(X[0],G[0])===X[0])return X;else return G},null)[1]}function nw(D,$){return $.reduce((F,X)=>{return F[X]=D[X],F},{})}function w6(D,$){return Object.prototype.hasOwnProperty.call(D,$)}function qJ(D){if(D==null)return null;else if(typeof D!=="object")throw new W0("Week settings must be an object");else{if(!n0(D.firstDay,1,7)||!n0(D.minimalDays,1,7)||!Array.isArray(D.weekend)||D.weekend.some(($)=>!n0($,1,7)))throw new W0("Invalid week settings");return{firstDay:D.firstDay,minimalDays:D.minimalDays,weekend:Array.from(D.weekend)}}}function n0(D,$,F){return J5(D)&&D>=$&&D<=F}function sw(D,$){return D-$*Math.floor(D/$)}function iD(D,$=2){let F=D<0,X;if(F)X="-"+(""+-D).padStart($,"0");else X=(""+D).padStart($,"0");return X}function w8(D){if(t(D)||D===null||D==="")return;else return parseInt(D,10)}function K1(D){if(t(D)||D===null||D==="")return;else return parseFloat(D)}function fJ(D){if(t(D)||D===null||D==="")return;else{let $=parseFloat("0."+D)*1000;return Math.floor($)}}function kJ(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 R9(D){return D%4===0&&(D%100!==0||D%400===0)}function I6(D){return R9(D)?366:365}function F5(D,$){let F=sw($-1,12)+1,X=D+($-F)/12;if(F===2)return R9(X)?29:28;else return[31,null,31,30,31,30,31,31,30,31,30,31][F-1]}function Y5(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 OA(D,$,F){return-bJ(SJ(D,1,$),F)+$-1}function C9(D,$=4,F=1){let X=OA(D,$,F),J=OA(D+1,$,F);return(I6(D)-X+J)/7}function LJ(D){if(D>99)return D;else return D>kD.twoDigitCutoffYear?1900+D:2000+D}function AK(D,$,F,X=null){let J=new Date(D),G={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};if(X)G.timeZone=X;let Y={timeZoneName:$,...G},B=new Intl.DateTimeFormat(F,Y).formatToParts(J).find((H)=>H.type.toLowerCase()==="timezonename");return B?B.value:null}function G5(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 KK(D){let $=Number(D);if(typeof D==="boolean"||D===""||!Number.isFinite($))throw new W0(`Invalid unit value ${D}`);return $}function X5(D,$){let F={};for(let X in D)if(w6(D,X)){let J=D[X];if(J===void 0||J===null)continue;F[$(X)]=KK(J)}return F}function K9(D,$){let F=Math.trunc(Math.abs(D/60)),X=Math.trunc(Math.abs(D%60)),J=D>=0?"+":"-";switch($){case"short":return`${J}${iD(F,2)}:${iD(X,2)}`;case"narrow":return`${J}${F}${X>0?`:${X}`:""}`;case"techie":return`${J}${iD(F,2)}${iD(X,2)}`;default:throw RangeError(`Value format ${$} is out of range for property format`)}}function B5(D){return nw(D,["hour","minute","second","millisecond"])}var rw=["January","February","March","April","May","June","July","August","September","October","November","December"],CK=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],ow=["J","F","M","A","M","J","J","A","S","O","N","D"];function OK(D){switch(D){case"narrow":return[...ow];case"short":return[...CK];case"long":return[...rw];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 RK=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],EK=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],aw=["M","T","W","T","F","S","S"];function ZK(D){switch(D){case"narrow":return[...aw];case"short":return[...EK];case"long":return[...RK];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var MK=["AM","PM"],tw=["Before Christ","Anno Domini"],ew=["BC","AD"],DS=["B","A"];function zK(D){switch(D){case"narrow":return[...DS];case"short":return[...ew];case"long":return[...tw];default:return null}}function $S(D){return MK[D.hour<12?0:1]}function FS(D,$){return ZK($)[D.weekday-1]}function XS(D,$){return OK($)[D.month-1]}function JS(D,$){return zK($)[D.year<0?0:1]}function YS(D,$,F="always",X=!1){let J={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},G=["hours","minutes","seconds"].indexOf(D)===-1;if(F==="auto"&&G){let U=D==="days";switch($){case 1:return U?"tomorrow":`next ${J[D][0]}`;case-1:return U?"yesterday":`last ${J[D][0]}`;case 0:return U?"today":`this ${J[D][0]}`}}let Y=Object.is($,-0)||$<0,B=Math.abs($),H=B===1,W=J[D],Q=X?H?W[1]:W[2]||W[1]:H?J[D][0]:D;return Y?`${B} ${Q} ago`:`in ${B} ${Q}`}function RA(D,$){let F="";for(let X of D)if(X.literal)F+=X.val;else F+=$(X.val);return F}var GS={D:D5,DD:xA,DDD:hA,DDDD:gA,t:yA,tt:uA,ttt:mA,tttt:pA,T:cA,TT:dA,TTT:lA,TTTT:iA,f:nA,ff:rA,fff:aA,ffff:eA,F:sA,FF:oA,FFF:tA,FFFF:DK};class C0{static create(D,$={}){return new C0(D,$)}static parseFormat(D){let $=null,F="",X=!1,J=[];for(let G=0;G<D.length;G++){let Y=D.charAt(G);if(Y==="'"){if(F.length>0||X)J.push({literal:X||/^\s+$/.test(F),val:F===""?"'":F});$=null,F="",X=!X}else if(X)F+=Y;else if(Y===$)F+=Y;else{if(F.length>0)J.push({literal:/^\s+$/.test(F),val:F});F=Y,$=Y}}if(F.length>0)J.push({literal:X||/^\s+$/.test(F),val:F});return J}static macroTokenToFormatOpts(D){return GS[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 iD(D,$);let X={...this.opts};if($>0)X.padTo=$;if(F)X.signDisplay=F;return this.loc.numberFormatter(X).format(D)}formatDateTimeFromString(D,$){let F=this.loc.listingMode()==="en",X=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",J=(_,A)=>this.loc.extract(D,_,A),G=(_)=>{if(D.isOffsetFixed&&D.offset===0&&_.allowZ)return"Z";return D.isValid?D.zone.formatOffset(D.ts,_.format):""},Y=()=>F?$S(D):J({hour:"numeric",hourCycle:"h12"},"dayperiod"),B=(_,A)=>F?XS(D,_):J(A?{month:_}:{month:_,day:"numeric"},"month"),H=(_,A)=>F?FS(D,_):J(A?{weekday:_}:{weekday:_,month:"long",day:"numeric"},"weekday"),W=(_)=>{let A=C0.macroTokenToFormatOpts(_);if(A)return this.formatWithSystemDefault(D,A);else return _},Q=(_)=>F?JS(D,_):J({era:_},"era"),U=(_)=>{switch(_){case"S":return this.num(D.millisecond);case"u":case"SSS":return this.num(D.millisecond,3);case"s":return this.num(D.second);case"ss":return this.num(D.second,2);case"uu":return this.num(Math.floor(D.millisecond/10),2);case"uuu":return this.num(Math.floor(D.millisecond/100));case"m":return this.num(D.minute);case"mm":return this.num(D.minute,2);case"h":return this.num(D.hour%12===0?12:D.hour%12);case"hh":return this.num(D.hour%12===0?12:D.hour%12,2);case"H":return this.num(D.hour);case"HH":return this.num(D.hour,2);case"Z":return G({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return G({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return G({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return D.zone.offsetName(D.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return D.zone.offsetName(D.ts,{format:"long",locale:this.loc.locale});case"z":return D.zoneName;case"a":return Y();case"d":return X?J({day:"numeric"},"day"):this.num(D.day);case"dd":return X?J({day:"2-digit"},"day"):this.num(D.day,2);case"c":return this.num(D.weekday);case"ccc":return H("short",!0);case"cccc":return H("long",!0);case"ccccc":return H("narrow",!0);case"E":return this.num(D.weekday);case"EEE":return H("short",!1);case"EEEE":return H("long",!1);case"EEEEE":return H("narrow",!1);case"L":return X?J({month:"numeric",day:"numeric"},"month"):this.num(D.month);case"LL":return X?J({month:"2-digit",day:"numeric"},"month"):this.num(D.month,2);case"LLL":return B("short",!0);case"LLLL":return B("long",!0);case"LLLLL":return B("narrow",!0);case"M":return X?J({month:"numeric"},"month"):this.num(D.month);case"MM":return X?J({month:"2-digit"},"month"):this.num(D.month,2);case"MMM":return B("short",!1);case"MMMM":return B("long",!1);case"MMMMM":return B("narrow",!1);case"y":return X?J({year:"numeric"},"year"):this.num(D.year);case"yy":return X?J({year:"2-digit"},"year"):this.num(D.year.toString().slice(-2),2);case"yyyy":return X?J({year:"numeric"},"year"):this.num(D.year,4);case"yyyyyy":return X?J({year:"numeric"},"year"):this.num(D.year,6);case"G":return Q("short");case"GG":return Q("long");case"GGGGG":return Q("narrow");case"kk":return this.num(D.weekYear.toString().slice(-2),2);case"kkkk":return this.num(D.weekYear,4);case"W":return this.num(D.weekNumber);case"WW":return this.num(D.weekNumber,2);case"n":return this.num(D.localWeekNumber);case"nn":return this.num(D.localWeekNumber,2);case"ii":return this.num(D.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(D.localWeekYear,4);case"o":return this.num(D.ordinal);case"ooo":return this.num(D.ordinal,3);case"q":return this.num(D.quarter);case"qq":return this.num(D.quarter,2);case"X":return this.num(Math.floor(D.ts/1000));case"x":return this.num(D.ts);default:return W(_)}};return RA(C0.parseFormat($),U)}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,Q)=>(U)=>{let _=X(U);if(_){let A=Q.isNegativeDuration&&_!==Q.largestUnit?F:1,O;if(this.opts.signMode==="negativeLargestOnly"&&_!==Q.largestUnit)O="never";else if(this.opts.signMode==="all")O="always";else O="auto";return this.num(W.get(_)*A,U.length,O)}else return U},G=C0.parseFormat($),Y=G.reduce((W,{literal:Q,val:U})=>Q?W:W.concat(U),[]),B=D.shiftTo(...Y.map(X).filter((W)=>W)),H={isNegativeDuration:B<0,largestUnit:Object.keys(B.values)[0]};return RA(G,J(B,H))}}var NK=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function S6(...D){let $=D.reduce((F,X)=>F+X.source,"");return RegExp(`^${$}$`)}function b6(...D){return($)=>D.reduce(([F,X,J],G)=>{let[Y,B,H]=G($,J);return[{...F,...Y},B||X,H]},[{},null,1]).slice(0,2)}function f6(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 PK(...D){return($,F)=>{let X={},J;for(J=0;J<D.length;J++)X[D[J]]=w8($[F+J]);return[X,null,F+J]}}var qK=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,BS=`(?:${qK.source}?(?:\\[(${NK.source})\\])?)?`,vJ=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,LK=RegExp(`${vJ.source}${BS}`),xJ=RegExp(`(?:[Tt]${LK.source})?`),HS=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,WS=/(\d{4})-?W(\d\d)(?:-?(\d))?/,VS=/(\d{4})-?(\d{3})/,QS=PK("weekYear","weekNumber","weekDay"),US=PK("year","ordinal"),_S=/(\d{4})-(\d\d)-(\d\d)/,jK=RegExp(`${vJ.source} ?(?:${qK.source}|(${NK.source}))?`),AS=RegExp(`(?: ${jK.source})?`);function T6(D,$,F){let X=D[$];return t(X)?F:w8(X)}function KS(D,$){return[{year:T6(D,$),month:T6(D,$+1,1),day:T6(D,$+2,1)},null,$+3]}function k6(D,$){return[{hours:T6(D,$,0),minutes:T6(D,$+1,0),seconds:T6(D,$+2,0),milliseconds:fJ(D[$+3])},null,$+4]}function E9(D,$){let F=!D[$]&&!D[$+1],X=G5(D[$+1],D[$+2]),J=F?null:O0.instance(X);return[{},J,$+3]}function Z9(D,$){let F=D[$]?m2.create(D[$]):null;return[{},F,$+1]}var CS=RegExp(`^T?${vJ.source}$`),OS=/^-?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 RS(D){let[$,F,X,J,G,Y,B,H,W]=D,Q=$[0]==="-",U=H&&H[0]==="-",_=(A,O=!1)=>A!==void 0&&(O||A&&Q)?-A:A;return[{years:_(K1(F)),months:_(K1(X)),weeks:_(K1(J)),days:_(K1(G)),hours:_(K1(Y)),minutes:_(K1(B)),seconds:_(K1(H),H==="-0"),milliseconds:_(fJ(W),U)}]}var ES={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function hJ(D,$,F,X,J,G,Y){let B={year:$.length===2?LJ(w8($)):w8($),month:CK.indexOf(F)+1,day:w8(X),hour:w8(J),minute:w8(G)};if(Y)B.second=w8(Y);if(D)B.weekday=D.length>3?RK.indexOf(D)+1:EK.indexOf(D)+1;return B}var ZS=/^(?:(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 MS(D){let[,$,F,X,J,G,Y,B,H,W,Q,U]=D,_=hJ($,J,X,F,G,Y,B),A;if(H)A=ES[H];else if(W)A=0;else A=G5(Q,U);return[_,new O0(A)]}function zS(D){return D.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var NS=/^(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$/,PS=/^(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$/,qS=/^(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 EA(D){let[,$,F,X,J,G,Y,B]=D;return[hJ($,J,X,F,G,Y,B),O0.utcInstance]}function LS(D){let[,$,F,X,J,G,Y,B]=D;return[hJ($,B,F,X,J,G,Y),O0.utcInstance]}var jS=S6(HS,xJ),IS=S6(WS,xJ),TS=S6(VS,xJ),wS=S6(LK),IK=b6(KS,k6,E9,Z9),SS=b6(QS,k6,E9,Z9),bS=b6(US,k6,E9,Z9),fS=b6(k6,E9,Z9);function kS(D){return f6(D,[jS,IK],[IS,SS],[TS,bS],[wS,fS])}function vS(D){return f6(zS(D),[ZS,MS])}function xS(D){return f6(D,[NS,EA],[PS,EA],[qS,LS])}function hS(D){return f6(D,[OS,RS])}var gS=b6(k6);function yS(D){return f6(D,[CS,gS])}var uS=S6(_S,AS),mS=S6(jK),pS=b6(k6,E9,Z9);function cS(D){return f6(D,[uS,IK],[mS,pS])}var ZA="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}},dS={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},d0=365.2425,P6=30.436875,lS={years:{quarters:4,months:12,weeks:d0/7,days:d0,hours:d0*24,minutes:d0*24*60,seconds:d0*24*60*60,milliseconds:d0*24*60*60*1000},quarters:{months:3,weeks:d0/28,days:d0/4,hours:d0*24/4,minutes:d0*24*60/4,seconds:d0*24*60*60/4,milliseconds:d0*24*60*60*1000/4},months:{weeks:P6/7,days:P6,hours:P6*24,minutes:P6*24*60,seconds:P6*24*60*60,milliseconds:P6*24*60*60*1000},...TK},R1=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],iS=R1.slice(0).reverse();function G8(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 UD(X)}function wK(D,$){var F;let X=(F=$.milliseconds)!=null?F:0;for(let J of iS.slice(1))if($[J])X+=$[J]*D[J].milliseconds;return X}function MA(D,$){let F=wK(D,$)<0?-1:1;R1.reduceRight((X,J)=>{if(!t($[J])){if(X){let G=$[X]*F,Y=D[J][X],B=Math.floor(G/Y);$[J]+=B*F,$[X]-=B*Y*F}return J}else return X},null),R1.reduce((X,J)=>{if(!t($[J])){if(X){let G=$[X]%1;$[X]-=G,$[J]+=G*D[X][J]}return J}else return X},null)}function zA(D){let $={};for(let[F,X]of Object.entries(D))if(X!==0)$[F]=X;return $}class UD{constructor(D){let $=D.conversionAccuracy==="longterm"||!1,F=$?lS:dS;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 UD.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 UD({values:X5(D,UD.normalizeUnit),loc:RD.fromObject($),conversionAccuracy:$.conversionAccuracy,matrix:$.matrix})}static fromDurationLike(D){if(b8(D))return UD.fromMillis(D);else if(UD.isDuration(D))return D;else if(typeof D==="object")return UD.fromObject(D);else throw new W0(`Unknown duration argument ${D} of type ${typeof D}`)}static fromISO(D,$){let[F]=hS(D);if(F)return UD.fromObject(F,$);else return UD.invalid("unparsable",`the input "${D}" can't be parsed as ISO 8601`)}static fromISOTime(D,$){let[F]=yS(D);if(F)return UD.fromObject(F,$);else return UD.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 l0?D:new l0(D,$);if(kD.throwOnInvalid)throw new vA(F);else return new UD({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 IJ(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?C0.create(this.loc,F).formatDurationFromString(this,D):ZA}toHuman(D={}){if(!this.isValid)return ZA;let $=D.showZeros!==!1,F=R1.map((X)=>{let J=this.values[X];if(t(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+=kJ(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},DD.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 wK(this.matrix,this.values)}valueOf(){return this.toMillis()}plus(D){if(!this.isValid)return this;let $=UD.fromDurationLike(D),F={};for(let X of R1)if(w6($.values,X)||w6(this.values,X))F[X]=$.get(X)+this.get(X);return G8(this,{values:F},!0)}minus(D){if(!this.isValid)return this;let $=UD.fromDurationLike(D);return this.plus($.negate())}mapUnits(D){if(!this.isValid)return this;let $={};for(let F of Object.keys(this.values))$[F]=KK(D(this.values[F],F));return G8(this,{values:$},!0)}get(D){return this[UD.normalizeUnit(D)]}set(D){if(!this.isValid)return this;let $={...this.values,...X5(D,UD.normalizeUnit)};return G8(this,{values:$})}reconfigure({locale:D,numberingSystem:$,conversionAccuracy:F,matrix:X}={}){let G={loc:this.loc.clone({locale:D,numberingSystem:$}),matrix:X,conversionAccuracy:F};return G8(this,G)}as(D){return this.isValid?this.shiftTo(D).get(D):NaN}normalize(){if(!this.isValid)return this;let D=this.toObject();return MA(this.matrix,D),G8(this,{values:D},!0)}rescale(){if(!this.isValid)return this;let D=zA(this.normalize().shiftToAll().toObject());return G8(this,{values:D},!0)}shiftTo(...D){if(!this.isValid)return this;if(D.length===0)return this;D=D.map((G)=>UD.normalizeUnit(G));let $={},F={},X=this.toObject(),J;for(let G of R1)if(D.indexOf(G)>=0){J=G;let Y=0;for(let H in F)Y+=this.matrix[H][G]*F[H],F[H]=0;if(b8(X[G]))Y+=X[G];let B=Math.trunc(Y);$[G]=B,F[G]=(Y*1000-B*1000)/1000}else if(b8(X[G]))F[G]=X[G];for(let G in F)if(F[G]!==0)$[J]+=G===J?F[G]:F[G]/this.matrix[J][G];return MA(this.matrix,$),G8(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 G8(this,{values:D},!0)}removeZeros(){if(!this.isValid)return this;let D=zA(this.values);return G8(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 R1)if(!$(this.values[F],D.values[F]))return!1;return!0}}var q6="Invalid Interval";function nS(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 l0?D:new l0(D,$);if(kD.throwOnInvalid)throw new kA(F);else return new gD({invalid:F})}static fromDateTimes(D,$){let F=Q9(D),X=Q9($),J=nS(F,X);if(J==null)return new gD({start:F,end:X});else return J}static after(D,$){let F=UD.fromDurationLike($),X=Q9(D);return gD.fromDateTimes(X,X.plus(F))}static before(D,$){let F=UD.fromDurationLike($),X=Q9(D);return gD.fromDateTimes(X.minus(F),X)}static fromISO(D,$){let[F,X]=(D||"").split("/",2);if(F&&X){let J,G;try{J=DD.fromISO(F,$),G=J.isValid}catch(H){G=!1}let Y,B;try{Y=DD.fromISO(X,$),B=Y.isValid}catch(H){B=!1}if(G&&B)return gD.fromDateTimes(J,Y);if(G){let H=UD.fromISO(X,$);if(H.isValid)return gD.after(J,H)}else if(B){let H=UD.fromISO(F,$);if(H.isValid)return gD.before(Y,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(Q9).filter((G)=>this.contains(G)).sort((G,Y)=>G.toMillis()-Y.toMillis()),F=[],{s:X}=this,J=0;while(X<this.e){let G=$[J]||this.e,Y=+G>+this.e?this.e:G;F.push(gD.fromDateTimes(X,Y)),X=Y,J+=1}return F}splitBy(D){let $=UD.fromDurationLike(D);if(!this.isValid||!$.isValid||$.as("milliseconds")===0)return[];let{s:F}=this,X=1,J,G=[];while(F<this.e){let Y=this.start.plus($.mapUnits((B)=>B*X));J=+Y>+this.e?this.e:Y,G.push(gD.fromDateTimes(F,J)),F=J,X+=1}return G}divideEqually(D){if(!this.isValid)return[];return this.splitBy(this.length()/D).slice(0,D)}overlaps(D){return this.e>D.s&&this.s<D.e}abutsStart(D){if(!this.isValid)return!1;return+this.e===+D.s}abutsEnd(D){if(!this.isValid)return!1;return+D.e===+this.s}engulfs(D){if(!this.isValid)return!1;return this.s<=D.s&&this.e>=D.e}equals(D){if(!this.isValid||!D.isValid)return!1;return this.s.equals(D.s)&&this.e.equals(D.e)}intersection(D){if(!this.isValid)return this;let $=this.s>D.s?this.s:D.s,F=this.e<D.e?this.e:D.e;if($>=F)return null;else return 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],G)=>{if(!J)return[X,G];else if(J.overlaps(G)||J.abutsStart(G))return[X,J.union(G)];else return[X.concat([J]),G]},[[],null]);if(F)$.push(F);return $}static xor(D){let $=null,F=0,X=[],J=D.map((B)=>[{time:B.s,type:"s"},{time:B.e,type:"e"}]),G=Array.prototype.concat(...J),Y=G.sort((B,H)=>B.time-H.time);for(let B of Y)if(F+=B.type==="s"?1:-1,F===1)$=B.time;else{if($&&+$!==+B.time)X.push(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 q6;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=D5,$={}){return this.isValid?C0.create(this.s.loc.clone($),D).formatInterval(this):q6}toISO(D){if(!this.isValid)return q6;return`${this.s.toISO(D)}/${this.e.toISO(D)}`}toISODate(){if(!this.isValid)return q6;return`${this.s.toISODate()}/${this.e.toISODate()}`}toISOTime(D){if(!this.isValid)return q6;return`${this.s.toISOTime(D)}/${this.e.toISOTime(D)}`}toFormat(D,{separator:$=" \u2013 "}={}){if(!this.isValid)return q6;return`${this.s.toFormat(D)}${$}${this.e.toFormat(D)}`}toDuration(D,$){if(!this.isValid)return UD.invalid(this.invalidReason);return this.e.diff(this.s,D,$)}mapEndpoints(D){return gD.fromDateTimes(D(this.s),D(this.e))}}class j6{static hasDST(D=kD.defaultZone){let $=DD.now().setZone(D).set({month:12});return!D.isUniversal&&$.offset!==$.set({month:6}).offset}static isValidIANAZone(D){return m2.isValidZone(D)}static normalizeZone(D){return S8(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:UK(),localeWeek:_K()}}}function NA(D,$){let F=(J)=>J.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),X=F($)-F(D);return Math.floor(UD.fromMillis(X).as("days"))}function sS(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 Q=NA(H,W);return(Q-Q%7)/7}],["days",NA]],J={},G=D,Y,B;for(let[H,W]of X)if(F.indexOf(H)>=0)if(Y=H,J[H]=W(D,$),B=G.plus(J),B>$){if(J[H]--,D=G.plus(J),D>$)B=D,J[H]--,D=G.plus(J)}else D=B;return[D,J,B,Y]}function rS(D,$,F,X){let[J,G,Y,B]=sS(D,$,F),H=$-J,W=F.filter((U)=>["hours","minutes","seconds","milliseconds"].indexOf(U)>=0);if(W.length===0){if(Y<$)Y=J.plus({[B]:1});if(Y!==J)G[B]=(G[B]||0)+H/(Y-J)}let Q=UD.fromObject(G,X);if(W.length>0)return UD.fromMillis(H,X).shiftTo(...W).plus(Q);else return Q}var oS="missing Intl.DateTimeFormat.formatToParts support";function KD(D,$=(F)=>F){return{regex:D,deser:([F])=>$(uw(F))}}var aS=String.fromCharCode(160),SK=`[ ${aS}]`,bK=new RegExp(SK,"g");function tS(D){return D.replace(/\./g,"\\.?").replace(bK,SK)}function PA(D){return D.replace(/\./g,"").replace(bK," ").toLowerCase()}function P2(D,$){if(D===null)return null;else return{regex:RegExp(D.map(tS).join("|")),deser:([F])=>D.findIndex((X)=>PA(F)===PA(X))+$}}function qA(D,$){return{regex:D,deser:([,F,X])=>G5(F,X),groups:$}}function s4(D){return{regex:D,deser:([$])=>$}}function eS(D){return D.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function Db(D,$){let F=N2($),X=N2($,"{2}"),J=N2($,"{3}"),G=N2($,"{4}"),Y=N2($,"{6}"),B=N2($,"{1,2}"),H=N2($,"{1,3}"),W=N2($,"{1,6}"),Q=N2($,"{1,9}"),U=N2($,"{2,4}"),_=N2($,"{4,6}"),A=(K)=>({regex:RegExp(eS(K.val)),deser:([R])=>R,literal:!0}),C=((K)=>{if(D.literal)return A(K);switch(K.val){case"G":return P2($.eras("short"),0);case"GG":return P2($.eras("long"),0);case"y":return KD(W);case"yy":return KD(U,LJ);case"yyyy":return KD(G);case"yyyyy":return KD(_);case"yyyyyy":return KD(Y);case"M":return KD(B);case"MM":return KD(X);case"MMM":return P2($.months("short",!0),1);case"MMMM":return P2($.months("long",!0),1);case"L":return KD(B);case"LL":return KD(X);case"LLL":return P2($.months("short",!1),1);case"LLLL":return P2($.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 s4(Q);case"uu":return s4(B);case"uuu":return KD(F);case"a":return P2($.meridiems(),0);case"kkkk":return KD(G);case"kk":return KD(U,LJ);case"W":return KD(B);case"WW":return KD(X);case"E":case"c":return KD(F);case"EEE":return P2($.weekdays("short",!1),1);case"EEEE":return P2($.weekdays("long",!1),1);case"ccc":return P2($.weekdays("short",!0),1);case"cccc":return P2($.weekdays("long",!0),1);case"Z":case"ZZ":return qA(new RegExp(`([+-]${B.source})(?::(${X.source}))?`),2);case"ZZZ":return qA(new RegExp(`([+-]${B.source})(${X.source})?`),2);case"z":return s4(/[a-z_+-/]{1,256}?/i);case" ":return s4(/[^\S\n\r]/);default:return A(K)}})(D)||{invalidReason:oS};return C.token=D,C}var $b={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 Fb(D,$,F){let{type:X,value:J}=D;if(X==="literal"){let H=/^\s+$/.test(J);return{literal:!H,val:H?" ":J}}let G=$[X],Y=X;if(X==="hour")if($.hour12!=null)Y=$.hour12?"hour12":"hour24";else if($.hourCycle!=null)if($.hourCycle==="h11"||$.hourCycle==="h12")Y="hour12";else Y="hour24";else Y=F.hour12?"hour12":"hour24";let B=$b[Y];if(typeof B==="object")B=B[G];if(B)return{literal:!1,val:B};return}function Xb(D){return[`^${D.map((F)=>F.regex).reduce((F,X)=>`${F}(${X.source})`,"")}$`,D]}function Jb(D,$,F){let X=D.match($);if(X){let J={},G=1;for(let Y in F)if(w6(F,Y)){let B=F[Y],H=B.groups?B.groups+1:1;if(!B.literal&&B.token)J[B.token.val[0]]=B.deser(X.slice(G,G+H));G+=H}return[X,J]}else return[X,{}]}function Yb(D){let $=(G)=>{switch(G){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}},F=null,X;if(!t(D.z))F=m2.create(D.z);if(!t(D.Z)){if(!F)F=new O0(D.Z);X=D.Z}if(!t(D.q))D.M=(D.q-1)*3+1;if(!t(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(!t(D.u))D.S=fJ(D.u);return[Object.keys(D).reduce((G,Y)=>{let B=$(Y);if(B)G[B]=D[Y];return G},{}),F,X]}var UJ=null;function Gb(){if(!UJ)UJ=DD.fromMillis(1555555555555);return UJ}function Bb(D,$){if(D.literal)return D;let F=C0.macroTokenToFormatOpts(D.val),X=vK(F,$);if(X==null||X.includes(void 0))return D;return X}function fK(D,$){return Array.prototype.concat(...D.map((F)=>Bb(F,$)))}class gJ{constructor(D,$){if(this.locale=D,this.format=$,this.tokens=fK(C0.parseFormat($),D),this.units=this.tokens.map((F)=>Db(F,D)),this.disqualifyingUnit=this.units.find((F)=>F.invalidReason),!this.disqualifyingUnit){let[F,X]=Xb(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]=Jb(D,this.regex,this.handlers),[X,J,G]=F?Yb(F):[null,null,void 0];if(w6(F,"a")&&w6(F,"H"))throw new O1("Can't include meridiem when specifying 24-hour format");return{input:D,tokens:this.tokens,regex:this.regex,rawMatches:$,matches:F,result:X,zone:J,specificOffset:G}}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}}function kK(D,$,F){return new gJ(D,F).explainFromTokens($)}function Hb(D,$,F){let{result:X,zone:J,specificOffset:G,invalidReason:Y}=kK(D,$,F);return[X,J,G,Y]}function vK(D,$){if(!D)return null;let X=C0.create($,D).dtFormatter(Gb()),J=X.formatToParts(),G=X.resolvedOptions();return J.map((Y)=>Fb(Y,D,G))}var _J="Invalid DateTime",LA=8640000000000000;function _9(D){return new l0("unsupported zone",`the zone "${D.name}" is not supported`)}function AJ(D){if(D.weekData===null)D.weekData=$5(D.c);return D.weekData}function KJ(D){if(D.localWeekData===null)D.localWeekData=$5(D.c,D.loc.getMinDaysInFirstWeek(),D.loc.getStartOfWeek());return D.localWeekData}function C1(D,$){let F={ts:D.ts,zone:D.zone,c:D.c,o:D.o,loc:D.loc,invalid:D.invalid};return new DD({...F,...$,old:F})}function xK(D,$,F){let X=D-$*60*1000,J=F.offset(X);if($===J)return[X,$];X-=(J-$)*60*1000;let G=F.offset(X);if(J===G)return[X,J];return[D-Math.min(J,G)*60*1000,Math.max(J,G)]}function r4(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 a4(D,$,F){return xK(Y5(D),$,F)}function jA(D,$){let F=D.o,X=D.c.year+Math.trunc($.years),J=D.c.month+Math.trunc($.months)+Math.trunc($.quarters)*3,G={...D.c,year:X,month:J,day:Math.min(D.c.day,F5(X,J))+Math.trunc($.days)+Math.trunc($.weeks)*7},Y=UD.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=Y5(G),[H,W]=xK(B,F,D.zone);if(Y!==0)H+=Y,W=D.zone.offset(H);return{ts:H,o:W}}function L6(D,$,F,X,J,G){let{setZone:Y,zone:B}=F;if(D&&Object.keys(D).length!==0||$){let H=$||B,W=DD.fromObject(D,{...F,zone:H,specificOffset:G});return Y?W:W.setZone(B)}else return DD.invalid(new l0("unparsable",`the input "${J}" can't be parsed as ${X}`))}function o4(D,$,F=!0){return D.isValid?C0.create(RD.create("en-US"),{allowZ:F,forceSimple:!0}).formatDateTimeFromString(D,$):null}function CJ(D,$,F){let X=D.c.year>9999||D.c.year<0,J="";if(X&&D.c.year>=0)J+="+";if(J+=iD(D.c.year,X?6:4),F==="year")return J;if($){if(J+="-",J+=iD(D.c.month),F==="month")return J;J+="-"}else if(J+=iD(D.c.month),F==="month")return J;return J+=iD(D.c.day),J}function IA(D,$,F,X,J,G,Y){let B=!F||D.c.millisecond!==0||D.c.second!==0,H="";switch(Y){case"day":case"month":case"year":break;default:if(H+=iD(D.c.hour),Y==="hour")break;if($){if(H+=":",H+=iD(D.c.minute),Y==="minute")break;if(B)H+=":",H+=iD(D.c.second)}else{if(H+=iD(D.c.minute),Y==="minute")break;if(B)H+=iD(D.c.second)}if(Y==="second")break;if(B&&(!X||D.c.millisecond!==0))H+=".",H+=iD(D.c.millisecond,3)}if(J)if(D.isOffsetFixed&&D.offset===0&&!G)H+="Z";else if(D.o<0)H+="-",H+=iD(Math.trunc(-D.o/60)),H+=":",H+=iD(Math.trunc(-D.o%60));else H+="+",H+=iD(Math.trunc(D.o/60)),H+=":",H+=iD(Math.trunc(D.o%60));if(G)H+="["+D.zone.ianaName+"]";return H}var hK={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},Wb={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},Vb={ordinal:1,hour:0,minute:0,second:0,millisecond:0},t4=["year","month","day","hour","minute","second","millisecond"],Qb=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],Ub=["year","ordinal","hour","minute","second","millisecond"];function e4(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 IJ(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 e4(D)}}function _b(D){if(A9===void 0)A9=kD.now();if(D.type!=="iana")return D.offset(A9);let $=D.name,F=jJ.get($);if(F===void 0)F=D.offset(A9),jJ.set($,F);return F}function wA(D,$){let F=S8($.zone,kD.defaultZone);if(!F.isValid)return DD.invalid(_9(F));let X=RD.fromObject($),J,G;if(!t(D.year)){for(let H of t4)if(t(D[H]))D[H]=hK[H];let Y=VK(D)||QK(D);if(Y)return DD.invalid(Y);let B=_b(F);[J,G]=a4(D,B,F)}else J=kD.now();return new DD({ts:J,zone:F,loc:X,o:G})}function SA(D,$,F){let X=t(F.round)?!0:F.round,J=t(F.rounding)?"trunc":F.rounding,G=(B,H)=>{return B=kJ(B,X||F.calendary?0:2,F.calendary?"round":J),$.loc.clone(F).relFormatter(F).format(B,H)},Y=(B)=>{if(F.calendary)if(!$.hasSame(D,B))return $.startOf(B).diff(D.startOf(B),B).get(B);else return 0;else return $.diff(D,B).get(B)};if(F.unit)return G(Y(F.unit),F.unit);for(let B of F.units){let H=Y(B);if(Math.abs(H)>=1)return G(H,B)}return G(D>$?-0:0,F.units[F.units.length-1])}function bA(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 A9,jJ=new Map;class DD{constructor(D){let $=D.zone||kD.defaultZone,F=D.invalid||(Number.isNaN(D.ts)?new l0("invalid input"):null)||(!$.isValid?_9($):null);this.ts=t(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 Y=b8(D.o)&&!D.old?D.o:$.offset(this.ts);X=r4(this.ts,Y),F=Number.isNaN(X.year)?new l0("invalid input"):null,X=F?null:X,J=F?null:Y}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 DD({})}static local(){let[D,$]=bA(arguments),[F,X,J,G,Y,B,H]=$;return wA({year:F,month:X,day:J,hour:G,minute:Y,second:B,millisecond:H},D)}static utc(){let[D,$]=bA(arguments),[F,X,J,G,Y,B,H]=$;return D.zone=O0.utcInstance,wA({year:F,month:X,day:J,hour:G,minute:Y,second:B,millisecond:H},D)}static fromJSDate(D,$={}){let F=lw(D)?D.valueOf():NaN;if(Number.isNaN(F))return DD.invalid("invalid input");let X=S8($.zone,kD.defaultZone);if(!X.isValid)return DD.invalid(_9(X));return new DD({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<-LA||D>LA)return DD.invalid("Timestamp out of range");else return new DD({ts:D,zone:S8($.zone,kD.defaultZone),loc:RD.fromObject($)})}static fromSeconds(D,$={}){if(!b8(D))throw new W0("fromSeconds requires a numerical input");else return new DD({ts:D*1000,zone:S8($.zone,kD.defaultZone),loc:RD.fromObject($)})}static fromObject(D,$={}){D=D||{};let F=S8($.zone,kD.defaultZone);if(!F.isValid)return DD.invalid(_9(F));let X=RD.fromObject($),J=X5(D,TA),{minDaysInFirstWeek:G,startOfWeek:Y}=KA(J,X),B=kD.now(),H=!t($.specificOffset)?$.specificOffset:F.offset(B),W=!t(J.ordinal),Q=!t(J.year),U=!t(J.month)||!t(J.day),_=Q||U,A=J.weekYear||J.weekNumber;if((_||W)&&A)throw new O1("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(U&&W)throw new O1("Can't mix ordinal dates with month/day");let O=A||J.weekday&&!_,C,K,R=r4(B,H);if(O)C=Qb,K=Wb,R=$5(R,G,Y);else if(W)C=Ub,K=Vb,R=QJ(R);else C=t4,K=hK;let z=!1;for(let d of C){let VD=J[d];if(!t(VD))z=!0;else if(z)J[d]=K[d];else J[d]=R[d]}let N=O?pw(J,G,Y):W?cw(J):VK(J),S=N||QK(J);if(S)return DD.invalid(S);let b=O?_A(J,G,Y):W?AA(J):J,[L,q]=a4(b,H,F),j=new DD({ts:L,zone:F,o:q,loc:X});if(J.weekday&&_&&D.weekday!==j.weekday)return DD.invalid("mismatched weekday",`you can't specify both a weekday of ${J.weekday} and a date of ${j.toISO()}`);if(!j.isValid)return DD.invalid(j.invalid);return j}static fromISO(D,$={}){let[F,X]=kS(D);return L6(F,X,$,"ISO 8601",D)}static fromRFC2822(D,$={}){let[F,X]=vS(D);return L6(F,X,$,"RFC 2822",D)}static fromHTTP(D,$={}){let[F,X]=xS(D);return L6(F,X,$,"HTTP",$)}static fromFormat(D,$,F={}){if(t(D)||t($))throw new W0("fromFormat requires an input string and a format");let{locale:X=null,numberingSystem:J=null}=F,G=RD.fromOpts({locale:X,numberingSystem:J,defaultToEN:!0}),[Y,B,H,W]=Hb(G,D,$);if(W)return DD.invalid(W);else return L6(Y,B,F,`format ${$}`,D,H)}static fromString(D,$,F={}){return DD.fromFormat(D,$,F)}static fromSQL(D,$={}){let[F,X]=cS(D);return L6(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 l0?D:new l0(D,$);if(kD.throwOnInvalid)throw new fA(F);else return new DD({invalid:F})}static isDateTime(D){return D&&D.isLuxonDateTime||!1}static parseFormatForOpts(D,$={}){let F=vK(D,RD.fromObject($));return!F?null:F.map((X)=>X?X.val:null).join("")}static expandFormat(D,$={}){return fK(C0.parseFormat(D),RD.fromObject($)).map((X)=>X.val).join("")}static resetCache(){A9=void 0,jJ.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?AJ(this).weekYear:NaN}get weekNumber(){return this.isValid?AJ(this).weekNumber:NaN}get weekday(){return this.isValid?AJ(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?KJ(this).weekday:NaN}get localWeekNumber(){return this.isValid?KJ(this).weekNumber:NaN}get localWeekYear(){return this.isValid?KJ(this).weekYear:NaN}get ordinal(){return this.isValid?QJ(this.c).ordinal:NaN}get monthShort(){return this.isValid?j6.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?j6.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?j6.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?j6.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=Y5(this.c),X=this.zone.offset(F-D),J=this.zone.offset(F+D),G=this.zone.offset(F-X*$),Y=this.zone.offset(F-J*$);if(G===Y)return[this];let B=F-G*$,H=F-Y*$,W=r4(B,G),Q=r4(H,Y);if(W.hour===Q.hour&&W.minute===Q.minute&&W.second===Q.second&&W.millisecond===Q.millisecond)return[C1(this,{ts:B}),C1(this,{ts:H})];return[this]}get isInLeapYear(){return R9(this.year)}get daysInMonth(){return F5(this.year,this.month)}get daysInYear(){return this.isValid?I6(this.year):NaN}get weeksInWeekYear(){return this.isValid?C9(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?C9(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(D={}){let{locale:$,numberingSystem:F,calendar:X}=C0.create(this.loc.clone(D),D).resolvedOptions(this);return{locale:$,numberingSystem:F,outputCalendar:X}}toUTC(D=0,$={}){return this.setZone(O0.instance(D),$)}toLocal(){return this.setZone(kD.defaultZone)}setZone(D,{keepLocalTime:$=!1,keepCalendarTime:F=!1}={}){if(D=S8(D,kD.defaultZone),D.equals(this.zone))return this;else if(!D.isValid)return DD.invalid(_9(D));else{let X=this.ts;if($||F){let J=D.offset(this.ts),G=this.toObject();[X]=a4(G,J,D)}return C1(this,{ts:X,zone:D})}}reconfigure({locale:D,numberingSystem:$,outputCalendar:F}={}){let X=this.loc.clone({locale:D,numberingSystem:$,outputCalendar:F});return C1(this,{loc:X})}setLocale(D){return this.reconfigure({locale:D})}set(D){if(!this.isValid)return this;let $=X5(D,TA),{minDaysInFirstWeek:F,startOfWeek:X}=KA($,this.loc),J=!t($.weekYear)||!t($.weekNumber)||!t($.weekday),G=!t($.ordinal),Y=!t($.year),B=!t($.month)||!t($.day),H=Y||B,W=$.weekYear||$.weekNumber;if((H||G)&&W)throw new O1("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(B&&G)throw new O1("Can't mix ordinal dates with month/day");let Q;if(J)Q=_A({...$5(this.c,F,X),...$},F,X);else if(!t($.ordinal))Q=AA({...QJ(this.c),...$});else if(Q={...this.toObject(),...$},t($.day))Q.day=Math.min(F5(Q.year,Q.month),Q.day);let[U,_]=a4(Q,this.o,this.zone);return C1(this,{ts:U,o:_})}plus(D){if(!this.isValid)return this;let $=UD.fromDurationLike(D);return C1(this,jA(this,$))}minus(D){if(!this.isValid)return this;let $=UD.fromDurationLike(D).negate();return C1(this,jA(this,$))}startOf(D,{useLocaleWeeks:$=!1}={}){if(!this.isValid)return this;let F={},X=UD.normalizeUnit(D);switch(X){case"years":F.month=1;case"quarters":case"months":F.day=1;case"weeks":case"days":F.hour=0;case"hours":F.minute=0;case"minutes":F.second=0;case"seconds":F.millisecond=0;break}if(X==="weeks")if($){let J=this.loc.getStartOfWeek(),{weekday:G}=this;if(G<J)F.weekNumber=this.weekNumber-1;F.weekday=J}else F.weekday=1;if(X==="quarters"){let J=Math.ceil(this.month/3);F.month=(J-1)*3+1}return this.set(F)}endOf(D,$){return this.isValid?this.plus({[D]:1}).startOf(D,$).minus(1):this}toFormat(D,$={}){return this.isValid?C0.create(this.loc.redefaultToEN($)).formatDateTimeFromString(this,D):_J}toLocaleString(D=D5,$={}){return this.isValid?C0.create(this.loc.clone($),D).formatDateTime(this):_J}toLocaleParts(D={}){return this.isValid?C0.create(this.loc.clone(D),D).formatDateTimeParts(this):[]}toISO({format:D="extended",suppressSeconds:$=!1,suppressMilliseconds:F=!1,includeOffset:X=!0,extendedZone:J=!1,precision:G="milliseconds"}={}){if(!this.isValid)return null;G=e4(G);let Y=D==="extended",B=CJ(this,Y,G);if(t4.indexOf(G)>=3)B+="T";return B+=IA(this,Y,$,F,X,J,G),B}toISODate({format:D="extended",precision:$="day"}={}){if(!this.isValid)return null;return CJ(this,D==="extended",e4($))}toISOWeekDate(){return o4(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:D=!1,suppressSeconds:$=!1,includeOffset:F=!0,includePrefix:X=!1,extendedZone:J=!1,format:G="extended",precision:Y="milliseconds"}={}){if(!this.isValid)return null;return Y=e4(Y),(X&&t4.indexOf(Y)>=3?"T":"")+IA(this,G==="extended",$,D,F,J,Y)}toRFC2822(){return o4(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return o4(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){if(!this.isValid)return null;return CJ(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 o4(this,X,!0)}toSQL(D={}){if(!this.isValid)return null;return`${this.toSQLDate()} ${this.toSQLTime(D)}`}toString(){return this.isValid?this.toISO():_J}[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 UD.invalid("created by diffing an invalid DateTime");let X={locale:this.locale,numberingSystem:this.numberingSystem,...F},J=iw($).map(UD.normalizeUnit),G=D.valueOf()>this.valueOf(),Y=G?this:D,B=G?D:this,H=rS(Y,B,J,X);return G?H.negate():H}diffNow(D="milliseconds",$={}){return this.diff(DD.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||DD.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 SA($,this.plus(F),{...D,numeric:"always",units:X,unit:J})}toRelativeCalendar(D={}){if(!this.isValid)return null;return SA(D.base||DD.fromObject({},{zone:this.zone}),this,{...D,numeric:"auto",units:["years","months","days"],calendary:!0})}static min(...D){if(!D.every(DD.isDateTime))throw new W0("min requires all arguments be DateTimes");return CA(D,($)=>$.valueOf(),Math.min)}static max(...D){if(!D.every(DD.isDateTime))throw new W0("max requires all arguments be DateTimes");return CA(D,($)=>$.valueOf(),Math.max)}static fromFormatExplain(D,$,F={}){let{locale:X=null,numberingSystem:J=null}=F,G=RD.fromOpts({locale:X,numberingSystem:J,defaultToEN:!0});return kK(G,D,$)}static fromStringExplain(D,$,F={}){return DD.fromFormatExplain(D,$,F)}static buildFormatParser(D,$={}){let{locale:F=null,numberingSystem:X=null}=$,J=RD.fromOpts({locale:F,numberingSystem:X,defaultToEN:!0});return new gJ(J,D)}static fromFormatParser(D,$,F={}){if(t(D)||t($))throw new W0("fromFormatParser requires an input string and a format parser");let{locale:X=null,numberingSystem:J=null}=F,G=RD.fromOpts({locale:X,numberingSystem:J,defaultToEN:!0});if(!G.equals($.locale))throw new W0(`fromFormatParser called with a locale of ${G}, but the format parser was created for ${$.locale}`);let{result:Y,zone:B,specificOffset:H,invalidReason:W}=$.explainFromTokens(D);if(W)return DD.invalid(W);else return L6(Y,B,F,`format ${$.format}`,D,H)}static get DATE_SHORT(){return D5}static get DATE_MED(){return xA}static get DATE_MED_WITH_WEEKDAY(){return Nw}static get DATE_FULL(){return hA}static get DATE_HUGE(){return gA}static get TIME_SIMPLE(){return yA}static get TIME_WITH_SECONDS(){return uA}static get TIME_WITH_SHORT_OFFSET(){return mA}static get TIME_WITH_LONG_OFFSET(){return pA}static get TIME_24_SIMPLE(){return cA}static get TIME_24_WITH_SECONDS(){return dA}static get TIME_24_WITH_SHORT_OFFSET(){return lA}static get TIME_24_WITH_LONG_OFFSET(){return iA}static get DATETIME_SHORT(){return nA}static get DATETIME_SHORT_WITH_SECONDS(){return sA}static get DATETIME_MED(){return rA}static get DATETIME_MED_WITH_SECONDS(){return oA}static get DATETIME_MED_WITH_WEEKDAY(){return Pw}static get DATETIME_FULL(){return aA}static get DATETIME_FULL_WITH_SECONDS(){return tA}static get DATETIME_HUGE(){return eA}static get DATETIME_HUGE_WITH_SECONDS(){return DK}}function Q9(D){if(DD.isDateTime(D))return D;else if(D&&D.valueOf&&b8(D.valueOf()))return DD.fromJSDate(D);else if(D&&typeof D==="object")return DD.fromObject(D);else throw new W0(`Unknown datetime argument: ${D}, of type ${typeof D}`)}var Ab="3.7.2";gK.DateTime=DD;gK.Duration=UD;gK.FixedOffsetZone=O0;gK.IANAZone=m2;gK.Info=j6;gK.Interval=gD;gK.InvalidZone=TJ;gK.Settings=kD;gK.SystemZone=O9;gK.VERSION=Ab;gK.Zone=E1});var W5=f((uK)=>{Object.defineProperty(uK,"__esModule",{value:!0});uK.CronDate=uK.DAYS_IN_MONTH=uK.DateMathOp=uK.TimeUnit=void 0;var Z1=yK(),R0;(function(D){D.Second="Second",D.Minute="Minute",D.Hour="Hour",D.Day="Day",D.Month="Month",D.Year="Year"})(R0||(uK.TimeUnit=R0={}));var H5;(function(D){D.Add="Add",D.Subtract="Subtract"})(H5||(uK.DateMathOp=H5={}));uK.DAYS_IN_MONTH=Object.freeze([31,29,31,30,31,30,31,31,30,31,30,31]);class v6{#D;#$=null;#X=null;#Y={add:{[R0.Year]:this.addYear.bind(this),[R0.Month]:this.addMonth.bind(this),[R0.Day]:this.addDay.bind(this),[R0.Hour]:this.addHour.bind(this),[R0.Minute]:this.addMinute.bind(this),[R0.Second]:this.addSecond.bind(this)},subtract:{[R0.Year]:this.subtractYear.bind(this),[R0.Month]:this.subtractMonth.bind(this),[R0.Day]:this.subtractDay.bind(this),[R0.Hour]:this.subtractHour.bind(this),[R0.Minute]:this.subtractMinute.bind(this),[R0.Second]:this.subtractSecond.bind(this)}};constructor(D,$){let F={zone:$};if(!D)this.#D=Z1.DateTime.local();else if(D instanceof v6)this.#D=D.#D,this.#$=D.#$,this.#X=D.#X;else if(D instanceof Date)this.#D=Z1.DateTime.fromJSDate(D,F);else if(typeof D==="number")this.#D=Z1.DateTime.fromMillis(D,F);else this.#D=Z1.DateTime.fromISO(D,F),this.#D.isValid||(this.#D=Z1.DateTime.fromRFC2822(D,F)),this.#D.isValid||(this.#D=Z1.DateTime.fromSQL(D,F)),this.#D.isValid||(this.#D=Z1.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.#Y.add[D]()}subtractUnit(D){this.#Y.subtract[D]()}invokeDateOperation(D,$){if(D===H5.Add){this.addUnit($);return}if(D===H5.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=v6.#J(this.#D.year);return D===uK.DAYS_IN_MONTH[$-1]-(F?0:1)}return D===uK.DAYS_IN_MONTH[$-1]}isLastWeekdayOfMonth(){let{day:D,month:$}=this.#D,F;if($===2)F=uK.DAYS_IN_MONTH[$-1]-(v6.#J(this.#D.year)?0:1);else F=uK.DAYS_IN_MONTH[$-1];return D>F-7}applyDateOperation(D,$,F){if($===R0.Month||$===R0.Day){this.invokeDateOperation(D,$);return}let X=this.getHours();this.invokeDateOperation(D,$);let J=this.getHours(),G=J-X;if(G===2){if(F!==24)this.dstStart=J}else if(G===0&&this.getMinutes()===0&&this.getSeconds()===0){if(F!==24)this.dstEnd=J}}#F(){return this.#D.toUTC()}}uK.CronDate=v6;uK.default=v6});var lK=f((cK)=>{Object.defineProperty(cK,"__esModule",{value:!0});cK.CronMonth=void 0;var Tb=W5(),wb=T8(),Sb=1,bb=12,fb=Object.freeze([]);class pK extends wb.CronField{static get min(){return Sb}static get max(){return bb}static get chars(){return fb}static get daysInMonth(){return Tb.DAYS_IN_MONTH}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}cK.CronMonth=pK});var rK=f((nK)=>{Object.defineProperty(nK,"__esModule",{value:!0});nK.CronSecond=void 0;var kb=T8(),vb=0,xb=59,hb=Object.freeze([]);class iK extends kb.CronField{static get min(){return vb}static get max(){return xb}static get chars(){return hb}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}nK.CronSecond=iK});var V5=f((j0)=>{var gb=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]}),k8=j0&&j0.__exportStar||function(D,$){for(var F in D)if(F!=="default"&&!Object.prototype.hasOwnProperty.call($,F))gb($,D,F)};Object.defineProperty(j0,"__esModule",{value:!0});k8(g_(),j0);k8(d_(),j0);k8(s_(),j0);k8(T8(),j0);k8(t_(),j0);k8(FA(),j0);k8(lK(),j0);k8(rK(),j0)});var yJ=f((oK)=>{Object.defineProperty(oK,"__esModule",{value:!0});oK.CronFieldCollection=void 0;var s0=V5();class x6{#D;#$;#X;#Y;#J;#F;static from(D,$){return new x6({second:this.resolveField(s0.CronSecond,D.second,$.second),minute:this.resolveField(s0.CronMinute,D.minute,$.minute),hour:this.resolveField(s0.CronHour,D.hour,$.hour),dayOfMonth:this.resolveField(s0.CronDayOfMonth,D.dayOfMonth,$.dayOfMonth),month:this.resolveField(s0.CronMonth,D.month,$.month),dayOfWeek:this.resolveField(s0.CronDayOfWeek,D.dayOfWeek,$.dayOfWeek)})}static resolveField(D,$,F){if(!F)return $;if(F instanceof s0.CronField)return F;return new D(F)}constructor({second:D,minute:$,hour:F,dayOfMonth:X,month:J,dayOfWeek:G}){if(!D)throw Error("Validation error, Field second is missing");if(!$)throw Error("Validation error, Field minute is missing");if(!F)throw Error("Validation error, Field hour is missing");if(!X)throw Error("Validation error, Field dayOfMonth is missing");if(!J)throw Error("Validation error, Field month is missing");if(!G)throw Error("Validation error, Field dayOfWeek is missing");if(J.values.length===1&&!X.hasLastChar){if(!(parseInt(X.values[0],10)<=s0.CronMonth.daysInMonth[J.values[0]-1]))throw Error("Invalid explicit day of month definition")}this.#D=D,this.#$=$,this.#X=F,this.#J=J,this.#F=G,this.#Y=X}get second(){return this.#D}get minute(){return this.#$}get hour(){return this.#X}get dayOfMonth(){return this.#Y}get month(){return this.#J}get dayOfWeek(){return this.#F}static compactField(D){if(D.length===0)return[];let $=[],F=void 0;if(D.forEach((X,J,G)=>{if(F===void 0){F={start:X,count:1};return}let Y=G[J-1]||F.start,B=G[J+1];if(X==="L"||X==="W"){$.push(F),$.push({start:X,count:1}),F=void 0;return}if(F.step===void 0&&B!==void 0){let H=X-Y,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??Y,count:1});else $.push(F);F={start:X,count:1}}}),F)$.push(F);return $}static#W(D,$,F){let X=$.step;if(!X)return null;if(X===1&&$.start===D.min&&$.end&&$.end>=F)return D.hasQuestionMarkChar?"?":"*";if(X!==1&&$.start===D.min&&$.end&&$.end>=F-X+1)return`*/${X}`;return null}static#H(D,$){let F=D.step;if(F===1)return`${D.start}-${D.end}`;let X=D.start===0?D.count-1:D.count;if(!F)throw Error("Unexpected range step");if(!D.end)throw Error("Unexpected range end");if(F*X>D.end){let J=(Y,B)=>{if(typeof D.start!=="number")throw Error("Unexpected range start");return B%F===0?D.start+B:null};if(typeof D.start!=="number")throw Error("Unexpected range start");let G={length:D.end-D.start+1};return Array.from(G,J).filter((Y)=>Y!==null).join(",")}return D.end===$-F+1?`${D.start}/${F}`:`${D.start}-${D.end}/${F}`}stringifyField(D){let{max:$,values:F}=D;if(D instanceof s0.CronDayOfWeek){$=6;let J=this.#F.values;F=J[J.length-1]===7?J.slice(0,-1):J}if(D instanceof s0.CronDayOfMonth)$=this.#J.values.length===1?s0.CronMonth.daysInMonth[this.#J.values[0]-1]:D.max;let X=x6.compactField(F);if(X.length===1){let J=x6.#W(D,X[0],$);if(J)return J}return X.map((J)=>{let G=J.count===1?J.start.toString():x6.#H(J,$);if(D instanceof s0.CronDayOfWeek&&D.nthDay>0)return`${G}#${D.nthDay}`;return G}).join(",")}stringify(D=!1){let $=[];if(D)$.push(this.stringifyField(this.#D));return $.push(this.stringifyField(this.#$),this.stringifyField(this.#X),this.stringifyField(this.#Y),this.stringifyField(this.#J),this.stringifyField(this.#F)),$.join(" ")}serialize(){return{second:this.#D.serialize(),minute:this.#$.serialize(),hour:this.#X.serialize(),dayOfMonth:this.#Y.serialize(),month:this.#J.serialize(),dayOfWeek:this.#F.serialize()}}}oK.CronFieldCollection=x6});var mJ=f((eK)=>{Object.defineProperty(eK,"__esModule",{value:!0});eK.CronExpression=eK.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE=eK.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE=void 0;var uD=W5();eK.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE="Out of the time span range";eK.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE="Invalid expression, loop limit exceeded";var tK=1e4;class r0{#D;#$;#X;#Y;#J;#F;#W=null;#H=!1;constructor(D,$){this.#D=$,this.#$=$.tz,this.#Y=$.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.#Y&&X.getTime()<this.#Y.getTime())F=this.#Y;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 r0(D,$||{})}static#B(D,$){return $.some((F)=>F===D)}#G(D,$){return D[$?D.length-1:0]}#Q(D){let $=`${D.getFullYear()}-${D.getMonth()+1}-${D.getDate()}`;if(this.#W===$)return this.#H;let F=new uD.CronDate(D);F.setStartOfDay();let X=new uD.CronDate(D);return X.setEndOfDay(),this.#W=$,this.#H=F.getUTCOffset()!==X.getUTCOffset(),this.#H}#U(D,$,F){let X=this.#F.second.values,J=D.getSeconds(),G=this.#F.second.findNearestValue(J,F);if(G!==null){D.setSeconds(G);return}D.applyDateOperation($,uD.TimeUnit.Minute,this.#F.hour.values.length),D.setSeconds(this.#G(X,F))}#V(D,$,F){let X=this.#F.minute.values,J=this.#F.second.values,G=D.getMinutes(),Y=this.#F.minute.findNearestValue(G,F);if(Y!==null){D.setMinutes(Y),D.setSeconds(this.#G(J,F));return}D.applyDateOperation($,uD.TimeUnit.Hour,this.#F.hour.values.length),D.setMinutes(this.#G(X,F)),D.setSeconds(this.#G(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.#_()}prev(){return this.#_(!0)}hasNext(){let D=this.#X;try{return this.#_(),!0}catch{return!1}finally{this.#X=D}}hasPrev(){let D=this.#X;try{return this.#_(!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,G=new uD.CronDate(D,this.#$);if(!$.values.includes(G.getSeconds())||!F.values.includes(G.getMinutes())||!X.values.includes(G.getHours())||!J.values.includes(G.getMonth()+1))return!1;if(!this.#A(G))return!1;if(this.#F.dayOfWeek.nthDay>0){if(Math.ceil(G.getDate()/7)!==this.#F.dayOfWeek.nthDay)return!1}return!0}toString(){return this.#D.expression||this.stringify(!0)}#A(D){let $=this.#F.dayOfMonth.isWildcard,F=!$,X=this.#F.dayOfWeek.isWildcard,J=!X,G=r0.#B(D.getDate(),this.#F.dayOfMonth.values)||this.#F.dayOfMonth.hasLastChar&&D.isLastDayOfMonth(),Y=r0.#B(D.getDay(),this.#F.dayOfWeek.values)||this.#F.dayOfWeek.hasLastChar&&r0.#K(this.#F.dayOfWeek.values,D);if(F&&J&&(G||Y))return!0;if(G&&!J)return!0;if($&&!X&&Y)return!0;return!1}#C(D,$,F){let X=this.#F.hour.values,J=X,G=D.getHours(),Y=r0.#B(G,X),B=D.dstStart===G,H=D.dstEnd===G;if(B){if(r0.#B(G-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(Y)return!0;D.dstStart=null;let W=this.#F.hour.findNearestValue(G,F);if(W===null)return D.applyDateOperation($,uD.TimeUnit.Day,J.length),!1;if(this.#Q(D)){let Q=F?G-W:W-G;for(let U=0;U<Q;U++)D.applyDateOperation($,uD.TimeUnit.Hour,J.length)}else D.setHours(W);return D.setMinutes(this.#G(this.#F.minute.values,F)),D.setSeconds(this.#G(this.#F.second.values,F)),!1}#O(D){if(!this.#Y&&!this.#J)return;let $=D.getTime();if(this.#Y&&$<this.#Y.getTime())throw Error(eK.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE);if(this.#J&&$>this.#J.getTime())throw Error(eK.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE)}#_(D=!1){let $=D?uD.DateMathOp.Subtract:uD.DateMathOp.Add,F=new uD.CronDate(this.#X),X=F.getTime(),J=0;while(++J<tK){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(!r0.#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(!r0.#B(F.getMinutes(),this.#F.minute.values)){this.#V(F,$,D);continue}if(!r0.#B(F.getSeconds(),this.#F.second.values)){this.#U(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>tK)throw Error(eK.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE);if(F.getMilliseconds()!==0)F.setMilliseconds(0);return this.#X=F,F}[Symbol.iterator](){return{next:()=>{return{value:this.#_(),done:!this.hasNext()}}}}}eK.CronExpression=r0;eK.default=r0});var XC=f((FC)=>{Object.defineProperty(FC,"__esModule",{value:!0});FC.seededRandom=pb;function ub(D){let $=2166136261;for(let F=0;F<D.length;F++)$^=D.charCodeAt(F),$=Math.imul($,16777619);return()=>$>>>0}function mb(D){return()=>{let $=D+=1831565813;return $=Math.imul($^$>>>15,$|1),$^=$+Math.imul($^$>>>7,$|61),(($^$>>>14)>>>0)/4294967296}}function pb(D){let $=D?ub(D)():Math.floor(Math.random()*10000000000);return mb($)}});var Q5=f((JC)=>{Object.defineProperty(JC,"__esModule",{value:!0});JC.CronExpressionParser=JC.DayOfWeek=JC.Months=JC.CronUnit=JC.PredefinedExpressions=void 0;var db=yJ(),lb=mJ(),ib=XC(),o0=V5(),pJ;(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"})(pJ||(JC.PredefinedExpressions=pJ={}));var a0;(function(D){D.Second="Second",D.Minute="Minute",D.Hour="Hour",D.DayOfMonth="DayOfMonth",D.Month="Month",D.DayOfWeek="DayOfWeek"})(a0||(JC.CronUnit=a0={}));var cJ;(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"})(cJ||(JC.Months=cJ={}));var dJ;(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"})(dJ||(JC.DayOfWeek=dJ={}));class I0{static parse(D,$={}){let{strict:F=!1,hashSeed:X}=$,J=(0,ib.seededRandom)(X);D=pJ[D]||D;let G=I0.#D(D,F);if(!(G.dayOfMonth==="*"||G.dayOfWeek==="*"||!F))throw Error("Cannot use both dayOfMonth and dayOfWeek together in strict mode!");let Y=I0.#$(a0.Second,G.second,o0.CronSecond.constraints,J),B=I0.#$(a0.Minute,G.minute,o0.CronMinute.constraints,J),H=I0.#$(a0.Hour,G.hour,o0.CronHour.constraints,J),W=I0.#$(a0.Month,G.month,o0.CronMonth.constraints,J),Q=I0.#$(a0.DayOfMonth,G.dayOfMonth,o0.CronDayOfMonth.constraints,J),{dayOfWeek:U,nthDayOfWeek:_}=I0.#Q(G.dayOfWeek),A=I0.#$(a0.DayOfWeek,U,o0.CronDayOfWeek.constraints,J),O=new db.CronFieldCollection({second:new o0.CronSecond(Y,{rawValue:G.second}),minute:new o0.CronMinute(B,{rawValue:G.minute}),hour:new o0.CronHour(H,{rawValue:G.hour}),dayOfMonth:new o0.CronDayOfMonth(Q,{rawValue:G.dayOfMonth}),month:new o0.CronMonth(W,{rawValue:G.month}),dayOfWeek:new o0.CronDayOfWeek(A,{rawValue:G.dayOfWeek,nthDayOfWeek:_})});return new lb.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,G,Y,B,H,W]=F;return{second:J,minute:G,hour:Y,dayOfMonth:B,month:H,dayOfWeek:W}}static#$(D,$,F,X){if(D===a0.Month||D===a0.DayOfWeek)$=$.replace(/[a-z]{3}/gi,(J)=>{J=J.toLowerCase();let G=cJ[J]||dJ[J];if(G===void 0)throw Error(`Validation error, cannot resolve alias "${J}"`);return G.toString()});if(!F.validChars.test($))throw Error(`Invalid characters, got value: ${$}`);return $=this.#X($,F),$=this.#Y($,F,X),this.#J(D,$,F)}static#X(D,$){return D.replace(/[*?]/g,$.min+"-"+$.max)}static#Y(D,$,F){let X=F();return D.replace(/H(?:\((\d+)-(\d+)\))?(?:\/(\d+))?/g,(J,G,Y,B)=>{if(G&&Y&&B){let H=parseInt(G,10),W=parseInt(Y,10),Q=parseInt(B,10);if(H>W)throw Error(`Invalid range: ${H}-${W}, min > max`);if(Q<=0)throw Error(`Invalid step: ${Q}, must be positive`);let U=Math.max(H,$.min),_=Math.floor(X*Q),A=[];for(let O=Math.floor(U/Q)*Q+_;O<=W;O+=Q)if(O>=U)A.push(O);return A.join(",")}else if(G&&Y){let H=parseInt(G,10),W=parseInt(Y,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),Q=[];for(let U=Math.floor($.min/H)*H+W;U<=$.max;U+=H)if(U>=$.min)Q.push(U);return Q.join(",")}else return String(Math.floor(X*($.max-$.min+1)+$.min))})}static#J(D,$,F){let X=[];function J(Y,B){if(Array.isArray(Y))X.push(...Y);else if(I0.#U(B,Y))X.push(Y);else{let H=parseInt(Y.toString(),10);if(!(H>=B.min&&H<=B.max))throw Error(`Constraint error, got value ${Y} expected range ${B.min}-${B.max}`);X.push(D===a0.DayOfWeek?H%7:Y)}}return $.split(",").forEach((Y)=>{if(!(Y.length>0))throw Error("Invalid list value format");J(I0.#F(D,Y,F),F)}),X}static#F(D,$,F){let X=$.split("/");if(X.length>2)throw Error(`Invalid repeat: ${$}`);if(X.length===2){if(!isNaN(parseInt(X[0],10)))X[0]=`${X[0]}-${F.max}`;return I0.#G(D,X[0],parseInt(X[1],10),F)}return I0.#G(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===a0.DayOfWeek&&F%7===0)J.push(0);for(let G=$;G<=F;G+=X)if(J.indexOf(G)===-1)J.push(G);return J}static#G(D,$,F,X){let J=$.split("-");if(J.length<=1)return isNaN(+$)?$:+$;let[G,Y]=J.map((B)=>parseInt(B,10));return this.#W(G,Y,X),this.#H(F),this.#B(D,G,Y,F)}static#Q(D){let $=D.split("#");if($.length<=1)return{dayOfWeek:$[0]};let F=+$[$.length-1],X=D.match(/([,-/])/);if(X!==null)throw Error(`Constraint error, invalid dayOfWeek \`#\` and \`${X?.[0]}\` special characters are incompatible`);if(!($.length<=2&&!isNaN(F)&&F>=1&&F<=5))throw Error("Constraint error, invalid dayOfWeek occurrence number (#)");return{dayOfWeek:$[0],nthDayOfWeek:F}}static#U(D,$){return D.chars.some((F)=>$.toString().includes(F))}}JC.CronExpressionParser=I0});var GC=f((p2)=>{var ab=p2&&p2.__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]}),tb=p2&&p2.__setModuleDefault||(Object.create?function(D,$){Object.defineProperty(D,"default",{enumerable:!0,value:$})}:function(D,$){D.default=$}),eb=p2&&p2.__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")ab(F,$,X[J])}return tb(F,$),F}}();Object.defineProperty(p2,"__esModule",{value:!0});p2.CronFileParser=void 0;var Df=Q5();class z9{static async parseFile(D){let{readFile:$}=await Promise.resolve().then(()=>eb(Q8("fs/promises"))),F=await $(D,"utf8");return z9.#D(F)}static parseFileSync(D){let{readFileSync:$}=Q8("fs"),F=$(D,"utf8");return z9.#D(F)}static#D(D){let $=D.split(`
|
|
122
|
-
`),F={variables:{},expressions:[],errors:{}};for(let X of $){let J=X.trim();if(J.length===0||J.startsWith("#"))continue;let G=J.match(/^(.*)=(.*)$/);if(G){let[,Y,B]=G;F.variables[Y]=B.replace(/["']/g,"");continue}try{let Y=z9.#$(J);F.expressions.push(Y.interval)}catch(Y){F.errors[J]=Y}}return F}static#$(D){let $=D.split(" ");return{interval:Df.CronExpressionParser.parse($.slice(0,5).join(" ")),command:$.slice(5,$.length)}}}p2.CronFileParser=z9});var BC=f((J0)=>{var $f=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]}),Ff=J0&&J0.__exportStar||function(D,$){for(var F in D)if(F!=="default"&&!Object.prototype.hasOwnProperty.call($,F))$f($,D,F)};Object.defineProperty(J0,"__esModule",{value:!0});J0.CronFileParser=J0.CronExpressionParser=J0.CronExpression=J0.CronFieldCollection=J0.CronDate=void 0;var Xf=Q5(),Jf=W5();Object.defineProperty(J0,"CronDate",{enumerable:!0,get:function(){return Jf.CronDate}});var Yf=yJ();Object.defineProperty(J0,"CronFieldCollection",{enumerable:!0,get:function(){return Yf.CronFieldCollection}});var Gf=mJ();Object.defineProperty(J0,"CronExpression",{enumerable:!0,get:function(){return Gf.CronExpression}});var Bf=Q5();Object.defineProperty(J0,"CronExpressionParser",{enumerable:!0,get:function(){return Bf.CronExpressionParser}});var Hf=GC();Object.defineProperty(J0,"CronFileParser",{enumerable:!0,get:function(){return Hf.CronFileParser}});Ff(V5(),J0);J0.default=Xf.CronExpressionParser});class N9{deps;handle=null;ticking=!1;constructor(D){this.deps=D}start(D=Wf){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 $=U5(D.expression,new Date),F=crypto.randomUUID(),X=new Date().toISOString(),J=D.enabled??!0,G=D.accountId??Vf;if(G.length===0)throw Error("cron job accountId \u4E0D\u80FD\u4E3A\u7A7A\u5B57\u7B26\u4E32");let Y={id:F,expression:D.expression,prompt:D.prompt,channel:D.channel,chatId:D.chatId,accountId:G,enabled:J,lastRunAt:null,nextRunAt:J?$.toISOString():null,createdAt:X,updatedAt:X};g().insert(ID).values(Y).run();let B=g().select().from(ID).where(k(ID.id,F)).get();return _5(B)}async listJobs(){return g().select().from(ID).all().map(_5)}async getJob(D){let $=g().select().from(ID).where(k(ID.id,D)).get();return $?_5($):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)U5($.expression,new Date),X.expression=$.expression,J=!0;if($.prompt!==void 0)X.prompt=$.prompt;if($.channel!==void 0)X.channel=$.channel;if($.chatId!==void 0)X.chatId=$.chatId;if($.accountId!==void 0){if($.accountId.length===0)throw Error("cron job accountId \u4E0D\u80FD\u4E3A\u7A7A\u5B57\u7B26\u4E32");X.accountId=$.accountId}if($.enabled!==void 0)X.enabled=$.enabled,J=!0;if(J){let Y=$.enabled??F.enabled,B=$.expression??F.expression;X.nextRunAt=Y?U5(B,new Date).toISOString():null}g().update(ID).set(X).where(k(ID.id,D)).run();let G=g().select().from(ID).where(k(ID.id,D)).get();return _5(G)}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),Y4(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=U5(D.expression,$).toISOString()}catch(G){E.warn(`[cron ${D.id}] expression "${D.expression}" \u5F02\u5E38\uFF0C\u505C\u6B62\u540E\u7EED\u89E6\u53D1: ${String(G)}`)}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(G){E.warn(`[cron ${D.id}] orchestrator.ingest \u5931\u8D25: ${String(G)}`)}}}function U5(D,$){return HC.CronExpressionParser.parse(D,{currentDate:$}).next().toDate()}function _5(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 HC,Wf=60000,Vf="sys:cron";var lJ=M(()=>{fD();JD();_0();HC=xz(BC(),1)});class P9{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 iJ=M(()=>{JD()});import QC from"fs/promises";import Qf from"os";import t0 from"path";import A5 from"process";function _C(D=UC){let $=new Map;async function F(H){let W=new Date(D.now()).toISOString(),Q=await D.resolveBinary(H.binaryName),U={kind:H.kind,status:"not-found",checkedAt:W};if(H.agent)U.agent=H.agent;if(!Q)return{...U,authHint:"binary-not-on-path"};let _=D.homedir();for(let A of H.authPaths(_))if(await D.pathExists(A))return{...U,status:"ready",binaryPath:Q,authHint:"auth-file-present"};return{...U,status:"login-required",binaryPath:Q,authHint:"auth-file-missing"}}async function X(H,W){let Q=$.get(H.key);if(!W&&Q&&Q.expiresAt>D.now())return Q.value;let U=await F(H);return $.set(H.key,{value:U,expiresAt:D.now()+Uf}),U}function J(H){return{kind:H,status:"ready",checkedAt:new Date(D.now()).toISOString(),authHint:"no-cli-required"}}async function G(H={}){let W=H.refresh??!1,Q=[];for(let U of WC)Q.push(J(U));for(let U of VC)Q.push(await X(U,W));return Q}async function Y(H,W={}){let Q=W.refresh??!1;if(WC.includes(H))return J(H);let U=VC.filter((A)=>A.kind===H);if(U.length===0)return{kind:H,status:"not-found",checkedAt:new Date(D.now()).toISOString(),authHint:"unknown-engine"};let _=W.agent?U.find((A)=>A.agent===W.agent)??U[0]:U[0];return X(_,Q)}function B(){$.clear()}return{probe:Y,probeAll:G,clearCache:B}}function h6(){if(!q9)q9=_C();return q9}function AC(D){return q9=_C(D),q9}function nJ(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 KC(D,$=UC){let F=$.homedir(),X=D==="gemini"?".gemini":".qwen",J=t0.join(F,X,"oauth_creds.json"),G=t0.join(F,X,"settings.json");if(await $.pathExists(J))return nJ("login","oauth_creds.json present");if(await $.pathExists(G))return nJ("install","settings.json present, login pending");return nJ("none",`~/${X} not present`)}function CC(){return KC("gemini")}function OC(){return KC("qwen")}async function _f(D){let $=A5.env.PATH??"",F=A5.platform==="win32"?";":":",X=A5.platform==="win32"?(A5.env.PATHEXT??".EXE").split(";"):[""];for(let J of $.split(F)){if(!J)continue;for(let G of X){let Y=t0.join(J,`${D}${G.toLowerCase()}`);try{if((await QC.stat(Y)).isFile())return Y}catch{}}}return null}async function Af(D){try{return await QC.stat(D),!0}catch{return!1}}var Uf=600000,UC,WC,VC,q9=null;var K5=M(()=>{UC={resolveBinary:_f,pathExists:Af,homedir:()=>Qf.homedir(),now:()=>Date.now()},WC=["http","mcp","cli"],VC=[{key:"claude-code",kind:"claude-code",binaryName:"claude",authPaths:(D)=>[t0.join(D,".claude.json"),t0.join(D,".claude","config.json")]},{key:"acp:gemini",kind:"acp",agent:"gemini",binaryName:"gemini",authPaths:(D)=>[t0.join(D,".gemini","oauth_creds.json")]},{key:"acp:qwen",kind:"acp",agent:"qwen",binaryName:"qwen",authPaths:(D)=>[t0.join(D,".qwen","oauth_creds.json"),t0.join(D,".qwen","settings.json")]},{key:"codex",kind:"codex",binaryName:"codex",authPaths:(D)=>[t0.join(D,".codex","auth.json")]},{key:"cursor",kind:"cursor",binaryName:"cursor-agent",authPaths:(D)=>[t0.join(D,".cursor","cli-config.json"),t0.join(D,".cursor-agent","auth.json"),t0.join(D,".cursor","auth.json")]}]});class sJ{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!==Kf){E.warn(`[gateway-client ${this.deps.options.workerId}] send dropped: socket not open`);return}try{$.send(LD(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}:{}},G={type:"connect",role:$1.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(LD(G))}catch(Y){E.warn(`[gateway-client ${$}] connect frame send failed: ${String(Y)}`);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),G=x2(J);if(!G.ok){E.warn(`[gateway-client ${$}] drop malformed frame: ${G.error}`);return}let Y=G.frame;if(Y.type==="event"&&Y.name===e.ENROLLMENT_OTP){let B=x7.safeParse(Y.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(Y.type==="event"&&Y.name===e.ENROLLMENT_APPROVED){let B=h7.safeParse(Y.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(Y)}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 Kf=1;var RC=M(()=>{D0();JD()});function EC(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 _D=f((Nf)=>{var rJ=Symbol.for("yaml.alias"),ZC=Symbol.for("yaml.document"),C5=Symbol.for("yaml.map"),MC=Symbol.for("yaml.pair"),oJ=Symbol.for("yaml.scalar"),O5=Symbol.for("yaml.seq"),H8=Symbol.for("yaml.node.type"),Cf=(D)=>!!D&&typeof D==="object"&&D[H8]===rJ,Of=(D)=>!!D&&typeof D==="object"&&D[H8]===ZC,Rf=(D)=>!!D&&typeof D==="object"&&D[H8]===C5,Ef=(D)=>!!D&&typeof D==="object"&&D[H8]===MC,zC=(D)=>!!D&&typeof D==="object"&&D[H8]===oJ,Zf=(D)=>!!D&&typeof D==="object"&&D[H8]===O5;function NC(D){if(D&&typeof D==="object")switch(D[H8]){case C5:case O5:return!0}return!1}function Mf(D){if(D&&typeof D==="object")switch(D[H8]){case rJ:case C5:case oJ:case O5:return!0}return!1}var zf=(D)=>(zC(D)||NC(D))&&!!D.anchor;Nf.ALIAS=rJ;Nf.DOC=ZC;Nf.MAP=C5;Nf.NODE_TYPE=H8;Nf.PAIR=MC;Nf.SCALAR=oJ;Nf.SEQ=O5;Nf.hasAnchor=zf;Nf.isAlias=Cf;Nf.isCollection=NC;Nf.isDocument=Of;Nf.isMap=Rf;Nf.isNode=Mf;Nf.isPair=Ef;Nf.isScalar=zC;Nf.isSeq=Zf});var L9=f((uf)=>{var aD=_D(),T0=Symbol("break visit"),PC=Symbol("skip children"),c2=Symbol("remove node");function R5(D,$){let F=qC($);if(aD.isDocument(D)){if(g6(null,D.contents,F,Object.freeze([D]))===c2)D.contents=null}else g6(null,D,F,Object.freeze([]))}R5.BREAK=T0;R5.SKIP=PC;R5.REMOVE=c2;function g6(D,$,F,X){let J=LC(D,$,F,X);if(aD.isNode(J)||aD.isPair(J))return jC(D,X,J),g6(D,J,F,X);if(typeof J!=="symbol"){if(aD.isCollection($)){X=Object.freeze(X.concat($));for(let G=0;G<$.items.length;++G){let Y=g6(G,$.items[G],F,X);if(typeof Y==="number")G=Y-1;else if(Y===T0)return T0;else if(Y===c2)$.items.splice(G,1),G-=1}}else if(aD.isPair($)){X=Object.freeze(X.concat($));let G=g6("key",$.key,F,X);if(G===T0)return T0;else if(G===c2)$.key=null;let Y=g6("value",$.value,F,X);if(Y===T0)return T0;else if(Y===c2)$.value=null}}return J}async function E5(D,$){let F=qC($);if(aD.isDocument(D)){if(await y6(null,D.contents,F,Object.freeze([D]))===c2)D.contents=null}else await y6(null,D,F,Object.freeze([]))}E5.BREAK=T0;E5.SKIP=PC;E5.REMOVE=c2;async function y6(D,$,F,X){let J=await LC(D,$,F,X);if(aD.isNode(J)||aD.isPair(J))return jC(D,X,J),y6(D,J,F,X);if(typeof J!=="symbol"){if(aD.isCollection($)){X=Object.freeze(X.concat($));for(let G=0;G<$.items.length;++G){let Y=await y6(G,$.items[G],F,X);if(typeof Y==="number")G=Y-1;else if(Y===T0)return T0;else if(Y===c2)$.items.splice(G,1),G-=1}}else if(aD.isPair($)){X=Object.freeze(X.concat($));let G=await y6("key",$.key,F,X);if(G===T0)return T0;else if(G===c2)$.key=null;let Y=await y6("value",$.value,F,X);if(Y===T0)return T0;else if(Y===c2)$.value=null}}return J}function qC(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 LC(D,$,F,X){if(typeof F==="function")return F(D,$,X);if(aD.isMap($))return F.Map?.(D,$,X);if(aD.isSeq($))return F.Seq?.(D,$,X);if(aD.isPair($))return F.Pair?.(D,$,X);if(aD.isScalar($))return F.Scalar?.(D,$,X);if(aD.isAlias($))return F.Alias?.(D,$,X);return}function jC(D,$,F){let X=$[$.length-1];if(aD.isCollection(X))X.items[D]=F;else if(aD.isPair(X))if(D==="key")X.key=F;else X.value=F;else if(aD.isDocument(X))X.contents=F;else{let J=aD.isAlias(X)?"alias":"scalar";throw Error(`Cannot replace node with ${J} parent`)}}uf.visit=R5;uf.visitAsync=E5});var aJ=f((nf)=>{var IC=_D(),cf=L9(),df={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},lf=(D)=>D.replace(/[!,[\]{}]/g,($)=>df[$]);class e0{constructor(D,$){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e0.defaultYaml,D),this.tags=Object.assign({},e0.defaultTags,$)}clone(){let D=new e0(this.yaml,this.tags);return D.docStart=this.docStart,D}atDocument(){let D=new e0(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:e0.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},e0.defaultTags);break}return D}add(D,$){if(this.atNextDocument)this.yaml={explicit:e0.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},e0.defaultTags),this.atNextDocument=!1;let F=D.trim().split(/[ \t]+/),X=F.shift();switch(X){case"%TAG":{if(F.length!==2){if($(0,"%TAG directive should contain exactly two parts"),F.length<2)return!1}let[J,G]=F;return this.tags[J]=G,!0}case"%YAML":{if(this.yaml.explicit=!0,F.length!==1)return $(0,"%YAML directive should contain exactly one part"),!1;let[J]=F;if(J==="1.1"||J==="1.2")return this.yaml.version=J,!0;else{let G=/^\d+\.\d+$/.test(J);return $(6,`Unsupported YAML version ${J}`,G),!1}}default:return $(0,`Unknown directive ${X}`,!0),!1}}tagName(D,$){if(D==="!")return"!";if(D[0]!=="!")return $(`Not a valid tag: ${D}`),null;if(D[1]==="<"){let G=D.slice(2,-1);if(G==="!"||G==="!!")return $(`Verbatim tags aren't resolved, so ${D} is invalid.`),null;if(D[D.length-1]!==">")$("Verbatim tags must end with a >");return G}let[,F,X]=D.match(/^(.*!)([^!]*)$/s);if(!X)$(`The ${D} tag has no suffix`);let J=this.tags[F];if(J)try{return J+decodeURIComponent(X)}catch(G){return $(String(G)),null}if(F==="!")return D;return $(`Could not resolve tag: ${D}`),null}tagString(D){for(let[$,F]of Object.entries(this.tags))if(D.startsWith(F))return $+lf(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&&IC.isNode(D.contents)){let J={};cf.visit(D.contents,(G,Y)=>{if(IC.isNode(Y)&&Y.tag)J[Y.tag]=!0}),X=Object.keys(J)}else X=[];for(let[J,G]of F){if(J==="!!"&&G==="tag:yaml.org,2002:")continue;if(!D||X.some((Y)=>Y.startsWith(G)))$.push(`%TAG ${J} ${G}`)}return $.join(`
|
|
123
|
-
`)}}e0.defaultYaml={explicit:!1,version:"1.2"};e0.defaultTags={"!!":"tag:yaml.org,2002:"};nf.Directives=e0});var Z5=f((tf)=>{var TC=_D(),rf=L9();function of(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 wC(D){let $=new Set;return rf.visit(D,{Value(F,X){if(X.anchor)$.add(X.anchor)}}),$}function SC(D,$){for(let F=1;;++F){let X=`${D}${F}`;if(!$.has(X))return X}}function af(D,$){let F=[],X=new Map,J=null;return{onAnchor:(G)=>{F.push(G),J??(J=wC(D));let Y=SC($,J);return J.add(Y),Y},setAnchors:()=>{for(let G of F){let Y=X.get(G);if(typeof Y==="object"&&Y.anchor&&(TC.isScalar(Y.node)||TC.isCollection(Y.node)))Y.node.anchor=Y.anchor;else{let B=Error("Failed to resolve repeated object (this should not happen)");throw B.source=G,B}}},sourceObjects:X}}tf.anchorIsValid=of;tf.anchorNames=wC;tf.createNodeAnchors=af;tf.findNewAnchor=SC});var tJ=f((Xk)=>{function j9(D,$,F,X){if(X&&typeof X==="object")if(Array.isArray(X))for(let J=0,G=X.length;J<G;++J){let Y=X[J],B=j9(D,X,String(J),Y);if(B===void 0)delete X[J];else if(B!==Y)X[J]=B}else if(X instanceof Map)for(let J of Array.from(X.keys())){let G=X.get(J),Y=j9(D,X,J,G);if(Y===void 0)X.delete(J);else if(Y!==G)X.set(J,Y)}else if(X instanceof Set)for(let J of Array.from(X)){let G=j9(D,X,J,J);if(G===void 0)X.delete(J);else if(G!==J)X.delete(J),X.add(G)}else for(let[J,G]of Object.entries(X)){let Y=j9(D,X,J,G);if(Y===void 0)delete X[J];else if(Y!==G)X[J]=Y}return D.call($,F,X)}Xk.applyReviver=j9});var v8=f((Gk)=>{var Yk=_D();function bC(D,$,F){if(Array.isArray(D))return D.map((X,J)=>bC(X,String(J),F));if(D&&typeof D.toJSON==="function"){if(!F||!Yk.hasAnchor(D))return D.toJSON($,F);let X={aliasCount:0,count:1,res:void 0};F.anchors.set(D,X),F.onCreate=(G)=>{X.res=G,delete F.onCreate};let J=D.toJSON($,F);if(F.onCreate)F.onCreate(J);return J}if(typeof D==="bigint"&&!F?.keep)return Number(D);return D}Gk.toJS=bC});var M5=f((Vk)=>{var Hk=tJ(),fC=_D(),Wk=v8();class kC{constructor(D){Object.defineProperty(this,fC.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(!fC.isDocument(D))throw TypeError("A document argument is required");let G={anchors:new Map,doc:D,keep:!0,mapAsMap:$===!0,mapKeyWarned:!1,maxAliasCount:typeof F==="number"?F:100},Y=Wk.toJS(this,"",G);if(typeof X==="function")for(let{count:B,res:H}of G.anchors.values())X(H,B);return typeof J==="function"?Hk.applyReviver(J,{"":Y},"",Y):Y}}Vk.NodeBase=kC});var I9=f((Ck)=>{var Uk=Z5(),_k=L9(),u6=_D(),Ak=M5(),Kk=v8();class vC extends Ak.NodeBase{constructor(D){super(u6.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=[],_k.visit(D,{Node:(J,G)=>{if(u6.isAlias(G)||u6.hasAnchor(G))F.push(G)}}),$)$.aliasResolveCache=F;let X=void 0;for(let J of F){if(J===this)break;if(J.anchor===this.source)X=J}return X}toJSON(D,$){if(!$)return{source:this.source};let{anchors:F,doc:X,maxAliasCount:J}=$,G=this.resolve(X,$);if(!G){let B=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(B)}let Y=F.get(G);if(!Y)Kk.toJS(G,null,$),Y=F.get(G);if(Y?.res===void 0)throw ReferenceError("This should not happen: Alias anchor was not resolved?");if(J>=0){if(Y.count+=1,Y.aliasCount===0)Y.aliasCount=z5(X,G,F);if(Y.count*Y.aliasCount>J)throw ReferenceError("Excessive alias count indicates a resource exhaustion attack")}return Y.res}toString(D,$,F){let X=`*${this.source}`;if(D){if(Uk.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 z5(D,$,F){if(u6.isAlias($)){let X=$.resolve(D),J=F&&X&&F.get(X);return J?J.count*J.aliasCount:0}else if(u6.isCollection($)){let X=0;for(let J of $.items){let G=z5(D,J,F);if(G>X)X=G}return X}else if(u6.isPair($)){let X=z5(D,$.key,F),J=z5(D,$.value,F);return Math.max(X,J)}return 1}Ck.Alias=vC});var nD=f((zk)=>{var Rk=_D(),Ek=M5(),Zk=v8(),Mk=(D)=>!D||typeof D!=="function"&&typeof D!=="object";class M1 extends Ek.NodeBase{constructor(D){super(Rk.SCALAR);this.value=D}toJSON(D,$){return $?.keep?this.value:Zk.toJS(this.value,D,$)}toString(){return String(this.value)}}M1.BLOCK_FOLDED="BLOCK_FOLDED";M1.BLOCK_LITERAL="BLOCK_LITERAL";M1.PLAIN="PLAIN";M1.QUOTE_DOUBLE="QUOTE_DOUBLE";M1.QUOTE_SINGLE="QUOTE_SINGLE";zk.Scalar=M1;zk.isScalarValue=Mk});var T9=f((Tk)=>{var qk=I9(),z1=_D(),xC=nD(),Lk="tag:yaml.org,2002:";function jk(D,$,F){if($){let X=F.filter((G)=>G.tag===$),J=X.find((G)=>!G.format)??X[0];if(!J)throw Error(`Tag ${$} not found`);return J}return F.find((X)=>X.identify?.(D)&&!X.format)}function Ik(D,$,F){if(z1.isDocument(D))D=D.contents;if(z1.isNode(D))return D;if(z1.isPair(D)){let U=F.schema[z1.MAP].createNode?.(F.schema,null,F);return U.items.push(D),U}if(D instanceof String||D instanceof Number||D instanceof Boolean||typeof BigInt<"u"&&D instanceof BigInt)D=D.valueOf();let{aliasDuplicateObjects:X,onAnchor:J,onTagObj:G,schema:Y,sourceObjects:B}=F,H=void 0;if(X&&D&&typeof D==="object")if(H=B.get(D),H)return H.anchor??(H.anchor=J(D)),new qk.Alias(H.anchor);else H={anchor:null,node:null},B.set(D,H);if($?.startsWith("!!"))$=Lk+$.slice(2);let W=jk(D,$,Y.tags);if(!W){if(D&&typeof D.toJSON==="function")D=D.toJSON();if(!D||typeof D!=="object"){let U=new xC.Scalar(D);if(H)H.node=U;return U}W=D instanceof Map?Y[z1.MAP]:(Symbol.iterator in Object(D))?Y[z1.SEQ]:Y[z1.MAP]}if(G)G(W),delete F.onTagObj;let Q=W?.createNode?W.createNode(F.schema,D,F):typeof W?.nodeClass?.from==="function"?W.nodeClass.from(F.schema,D,F):new xC.Scalar(D);if($)Q.tag=$;else if(!W.default)Q.tag=W.tag;if(H)H.node=Q;return Q}Tk.createNode=Ik});var N5=f((fk)=>{var Sk=T9(),d2=_D(),bk=M5();function eJ(D,$,F){let X=F;for(let J=$.length-1;J>=0;--J){let G=$[J];if(typeof G==="number"&&Number.isInteger(G)&&G>=0){let Y=[];Y[G]=X,X=Y}else X=new Map([[G,X]])}return Sk.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 hC=(D)=>D==null||typeof D==="object"&&!!D[Symbol.iterator]().next().done;class gC extends bk.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(hC(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,eJ(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,eJ(this.schema,X,$));else throw Error(`Expected YAML collection at ${F}. Remaining path: ${X}`)}}}fk.Collection=gC;fk.collectionFromPath=eJ;fk.isEmptyPath=hC});var w9=f((yk)=>{var hk=(D)=>D.replace(/^(?!$)(?: $)?/gm,"#");function DY(D,$){if(/^\n+$/.test(D))return D.substring(1);return $?D.replace(/^(?! *$)/gm,$):D}var gk=(D,$,F)=>D.endsWith(`
|
|
124
|
-
`)?DY(F,$):F.includes(`
|
|
125
|
-
`)?`
|
|
126
|
-
`+DY(F,$):(D.endsWith(" ")?"":" ")+F;yk.indentComment=DY;yk.lineComment=gk;yk.stringifyComment=hk});var uC=f((dk)=>{function ck(D,$,F="flow",{indentAtStart:X,lineWidth:J=80,minContentWidth:G=20,onFold:Y,onOverflow:B}={}){if(!J||J<0)return D;if(J<G)G=0;let H=Math.max(1+G,1+J-$.length);if(D.length<=H)return D;let W=[],Q={},U=J-$.length;if(typeof X==="number")if(X>J-Math.max(2,G))W.push(0);else U=J-X;let _=void 0,A=void 0,O=!1,C=-1,K=-1,R=-1;if(F==="block"){if(C=yC(D,C,$.length),C!==-1)U=C+H}for(let N;N=D[C+=1];){if(F==="quoted"&&N==="\\"){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(N===`
|
|
127
|
-
`){if(F==="block")C=yC(D,C,$.length);U=C+$.length+H,_=void 0}else{if(N===" "&&A&&A!==" "&&A!==`
|
|
128
|
-
`&&A!=="\t"){let S=D[C+1];if(S&&S!==" "&&S!==`
|
|
129
|
-
`&&S!=="\t")_=C}if(C>=U)if(_)W.push(_),U=_+H,_=void 0;else if(F==="quoted"){while(A===" "||A==="\t")A=N,N=D[C+=1],O=!0;let S=C>R+1?C-2:K-1;if(Q[S])return D;W.push(S),Q[S]=!0,U=S+H,_=void 0}else O=!0}A=N}if(O&&B)B();if(W.length===0)return D;if(Y)Y();let z=D.slice(0,W[0]);for(let N=0;N<W.length;++N){let S=W[N],b=W[N+1]||D.length;if(S===0)z=`
|
|
130
|
-
${$}${D.slice(0,b)}`;else{if(F==="quoted"&&Q[S])z+=`${D[S]}\\`;z+=`
|
|
131
|
-
${$}${D.slice(S+1,b)}`}}return z}function yC(D,$,F){let X=$,J=$+1,G=D[J];while(G===" "||G==="\t")if($<J+F)G=D[++$];else{do G=D[++$];while(G&&G!==`
|
|
132
|
-
`);X=$,J=$+1,G=D[J]}return X}dk.FOLD_BLOCK="block";dk.FOLD_FLOW="flow";dk.FOLD_QUOTED="quoted";dk.foldFlowLines=ck});var b9=f((tk)=>{var L2=nD(),x8=uC(),q5=(D,$)=>({indentAtStart:$?D.indent.length:D.indentAtStart,lineWidth:D.options.lineWidth,minContentWidth:D.options.minContentWidth}),L5=(D)=>/^(%|---|\.\.\.)/m.test(D);function rk(D,$,F){if(!$||$<0)return!1;let X=$-F,J=D.length;if(J<=X)return!1;for(let G=0,Y=0;G<J;++G)if(D[G]===`
|
|
133
|
-
`){if(G-Y>X)return!0;if(Y=G+1,J-Y<=X)return!1}return!0}function S9(D,$){let F=JSON.stringify(D);if($.options.doubleQuotedAsJSON)return F;let{implicitKey:X}=$,J=$.options.doubleQuotedMinMultiLineLength,G=$.indent||(L5(D)?" ":""),Y="",B=0;for(let H=0,W=F[H];W;W=F[++H]){if(W===" "&&F[H+1]==="\\"&&F[H+2]==="n")Y+=F.slice(B,H)+"\\ ",H+=1,B=H,W="\\";if(W==="\\")switch(F[H+1]){case"u":{Y+=F.slice(B,H);let Q=F.substr(H+2,4);switch(Q){case"0000":Y+="\\0";break;case"0007":Y+="\\a";break;case"000b":Y+="\\v";break;case"001b":Y+="\\e";break;case"0085":Y+="\\N";break;case"00a0":Y+="\\_";break;case"2028":Y+="\\L";break;case"2029":Y+="\\P";break;default:if(Q.substr(0,2)==="00")Y+="\\x"+Q.substr(2);else Y+=F.substr(H,6)}H+=5,B=H+1}break;case"n":if(X||F[H+2]==='"'||F.length<J)H+=1;else{Y+=F.slice(B,H)+`
|
|
134
|
-
|
|
135
|
-
`;while(F[H+2]==="\\"&&F[H+3]==="n"&&F[H+4]!=='"')Y+=`
|
|
136
|
-
`,H+=2;if(Y+=G,F[H+2]===" ")Y+="\\";H+=1,B=H+1}break;default:H+=1}}return Y=B?Y+F.slice(B):F,X?Y:x8.foldFlowLines(Y,G,x8.FOLD_QUOTED,q5($,!1))}function $Y(D,$){if($.options.singleQuote===!1||$.implicitKey&&D.includes(`
|
|
137
|
-
`)||/[ \t]\n|\n[ \t]/.test(D))return S9(D,$);let F=$.indent||(L5(D)?" ":""),X="'"+D.replace(/'/g,"''").replace(/\n+/g,`$&
|
|
138
|
-
${F}`)+"'";return $.implicitKey?X:x8.foldFlowLines(X,F,x8.FOLD_FLOW,q5($,!1))}function m6(D,$){let{singleQuote:F}=$.options,X;if(F===!1)X=S9;else{let J=D.includes('"'),G=D.includes("'");if(J&&!G)X=$Y;else if(G&&!J)X=S9;else X=F?$Y:S9}return X(D,$)}var FY;try{FY=new RegExp(`(^|(?<!
|
|
139
|
-
))
|
|
140
|
-
+(?!
|
|
141
|
-
|$)`,"g")}catch{FY=/\n+(?!\n|$)/g}function P5({comment:D,type:$,value:F},X,J,G){let{blockQuote:Y,commentString:B,lineWidth:H}=X.options;if(!Y||/\n[\t ]+$/.test(F))return m6(F,X);let W=X.indent||(X.forceBlockIndent||L5(F)?" ":""),Q=Y==="literal"?!0:Y==="folded"||$===L2.Scalar.BLOCK_FOLDED?!1:$===L2.Scalar.BLOCK_LITERAL?!0:!rk(F,H,W.length);if(!F)return Q?`|
|
|
142
|
-
`:`>
|
|
143
|
-
`;let U,_;for(_=F.length;_>0;--_){let b=F[_-1];if(b!==`
|
|
144
|
-
`&&b!=="\t"&&b!==" ")break}let A=F.substring(_),O=A.indexOf(`
|
|
145
|
-
`);if(O===-1)U="-";else if(F===A||O!==A.length-1){if(U="+",G)G()}else U="";if(A){if(F=F.slice(0,-A.length),A[A.length-1]===`
|
|
146
|
-
`)A=A.slice(0,-1);A=A.replace(FY,`$&${W}`)}let C=!1,K,R=-1;for(K=0;K<F.length;++K){let b=F[K];if(b===" ")C=!0;else if(b===`
|
|
147
|
-
`)R=K;else break}let z=F.substring(0,R<K?R+1:K);if(z)F=F.substring(z.length),z=z.replace(/\n+/g,`$&${W}`);let S=(C?W?"2":"1":"")+U;if(D){if(S+=" "+B(D.replace(/ ?[\r\n]+/g," ")),J)J()}if(!Q){let b=F.replace(/\n+/g,`
|
|
148
|
-
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${W}`),L=!1,q=q5(X,!0);if(Y!=="folded"&&$!==L2.Scalar.BLOCK_FOLDED)q.onOverflow=()=>{L=!0};let j=x8.foldFlowLines(`${z}${b}${A}`,W,x8.FOLD_BLOCK,q);if(!L)return`>${S}
|
|
149
|
-
${W}${j}`}return F=F.replace(/\n+/g,`$&${W}`),`|${S}
|
|
150
|
-
${W}${z}${F}${A}`}function ok(D,$,F,X){let{type:J,value:G}=D,{actualString:Y,implicitKey:B,indent:H,indentStep:W,inFlow:Q}=$;if(B&&G.includes(`
|
|
151
|
-
`)||Q&&/[[\]{},]/.test(G))return m6(G,$);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(G))return B||Q||!G.includes(`
|
|
152
|
-
`)?m6(G,$):P5(D,$,F,X);if(!B&&!Q&&J!==L2.Scalar.PLAIN&&G.includes(`
|
|
153
|
-
`))return P5(D,$,F,X);if(L5(G)){if(H==="")return $.forceBlockIndent=!0,P5(D,$,F,X);else if(B&&H===W)return m6(G,$)}let U=G.replace(/\n+/g,`$&
|
|
154
|
-
${H}`);if(Y){let _=(C)=>C.default&&C.tag!=="tag:yaml.org,2002:str"&&C.test?.test(U),{compat:A,tags:O}=$.doc.schema;if(O.some(_)||A?.some(_))return m6(G,$)}return B?U:x8.foldFlowLines(U,H,x8.FOLD_FLOW,q5($,!1))}function ak(D,$,F,X){let{implicitKey:J,inFlow:G}=$,Y=typeof D.value==="string"?D:Object.assign({},D,{value:String(D.value)}),{type:B}=D;if(B!==L2.Scalar.QUOTE_DOUBLE){if(/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(Y.value))B=L2.Scalar.QUOTE_DOUBLE}let H=(Q)=>{switch(Q){case L2.Scalar.BLOCK_FOLDED:case L2.Scalar.BLOCK_LITERAL:return J||G?m6(Y.value,$):P5(Y,$,F,X);case L2.Scalar.QUOTE_DOUBLE:return S9(Y.value,$);case L2.Scalar.QUOTE_SINGLE:return $Y(Y.value,$);case L2.Scalar.PLAIN:return ok(Y,$,F,X);default:return null}},W=H(B);if(W===null){let{defaultKeyType:Q,defaultStringType:U}=$.options,_=J&&Q||U;if(W=H(_),W===null)throw Error(`Unsupported default string type ${_}`)}return W}tk.stringifyString=ak});var f9=f((Bv)=>{var Dv=Z5(),h8=_D(),$v=w9(),Fv=b9();function Xv(D,$){let F=Object.assign({blockQuote:!0,commentString:$v.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 Jv(D,$){if($.tag){let J=D.filter((G)=>G.tag===$.tag);if(J.length>0)return J.find((G)=>G.format===$.format)??J[0]}let F=void 0,X;if(h8.isScalar($)){X=$.value;let J=D.filter((G)=>G.identify?.(X));if(J.length>1){let G=J.filter((Y)=>Y.test);if(G.length>0)J=G}F=J.find((G)=>G.format===$.format)??J.find((G)=>!G.format)}else X=$,F=D.find((J)=>J.nodeClass&&X instanceof J.nodeClass);if(!F){let J=X?.constructor?.name??(X===null?"null":typeof X);throw Error(`Tag not resolved for ${J} value`)}return F}function Yv(D,$,{anchors:F,doc:X}){if(!X.directives)return"";let J=[],G=(h8.isScalar(D)||h8.isCollection(D))&&D.anchor;if(G&&Dv.anchorIsValid(G))F.add(G),J.push(`&${G}`);let Y=D.tag??($.default?null:$.tag);if(Y)J.push(X.directives.tagString(Y));return J.join(" ")}function Gv(D,$,F,X){if(h8.isPair(D))return D.toString($,F,X);if(h8.isAlias(D)){if($.doc.directives)return D.toString($);if($.resolvedAliases?.has(D))throw TypeError("Cannot stringify circular structure without alias nodes");else{if($.resolvedAliases)$.resolvedAliases.add(D);else $.resolvedAliases=new Set([D]);D=D.resolve($.doc)}}let J=void 0,G=h8.isNode(D)?D:$.doc.createNode(D,{onTagObj:(H)=>J=H});J??(J=Jv($.doc.schema.tags,G));let Y=Yv(G,J,$);if(Y.length>0)$.indentAtStart=($.indentAtStart??0)+Y.length+1;let B=typeof J.stringify==="function"?J.stringify(G,$,F,X):h8.isScalar(G)?Fv.stringifyString(G,$,F,X):G.toString($,F,X);if(!Y)return B;return h8.isScalar(G)||B[0]==="{"||B[0]==="["?`${Y} ${B}`:`${Y}
|
|
155
|
-
${$.indent}${B}`}Bv.createStringifyContext=Xv;Bv.stringify=Gv});var cC=f((Qv)=>{var W8=_D(),mC=nD(),pC=f9(),k9=w9();function Vv({key:D,value:$},F,X,J){let{allNullValues:G,doc:Y,indent:B,indentStep:H,options:{commentString:W,indentSeq:Q,simpleKeys:U}}=F,_=W8.isNode(D)&&D.comment||null;if(U){if(_)throw Error("With simple keys, key nodes cannot have comments");if(W8.isCollection(D)||!W8.isNode(D)&&typeof D==="object")throw Error("With simple keys, collection cannot be used as a key value")}let A=!U&&(!D||_&&$==null&&!F.inFlow||W8.isCollection(D)||(W8.isScalar(D)?D.type===mC.Scalar.BLOCK_FOLDED||D.type===mC.Scalar.BLOCK_LITERAL:typeof D==="object"));F=Object.assign({},F,{allNullValues:!1,implicitKey:!A&&(U||!G),indent:B+H});let O=!1,C=!1,K=pC.stringify(D,F,()=>O=!0,()=>C=!0);if(!A&&!F.inFlow&&K.length>1024){if(U)throw Error("With simple keys, single line scalar must not span more than 1024 characters");A=!0}if(F.inFlow){if(G||$==null){if(O&&X)X();return K===""?"?":A?`? ${K}`:K}}else if(G&&!U||$==null&&A){if(K=`? ${K}`,_&&!O)K+=k9.lineComment(K,F.indent,W(_));else if(C&&J)J();return K}if(O)_=null;if(A){if(_)K+=k9.lineComment(K,F.indent,W(_));K=`? ${K}
|
|
156
|
-
${B}:`}else if(K=`${K}:`,_)K+=k9.lineComment(K,F.indent,W(_));let R,z,N;if(W8.isNode($))R=!!$.spaceBefore,z=$.commentBefore,N=$.comment;else if(R=!1,z=null,N=null,$&&typeof $==="object")$=Y.createNode($);if(F.implicitKey=!1,!A&&!_&&W8.isScalar($))F.indentAtStart=K.length+1;if(C=!1,!Q&&H.length>=2&&!F.inFlow&&!A&&W8.isSeq($)&&!$.flow&&!$.tag&&!$.anchor)F.indent=F.indent.substring(2);let S=!1,b=pC.stringify($,F,()=>S=!0,()=>C=!0),L=" ";if(_||R||z){if(L=R?`
|
|
157
|
-
`:"",z){let q=W(z);L+=`
|
|
158
|
-
${k9.indentComment(q,F.indent)}`}if(b===""&&!F.inFlow){if(L===`
|
|
159
|
-
`&&N)L=`
|
|
160
|
-
|
|
161
|
-
`}else L+=`
|
|
162
|
-
${F.indent}`}else if(!A&&W8.isCollection($)){let q=b[0],j=b.indexOf(`
|
|
163
|
-
`),d=j!==-1,VD=F.inFlow??$.flow??$.items.length===0;if(d||!VD){let QD=!1;if(d&&(q==="&"||q==="!")){let $D=b.indexOf(" ");if(q==="&"&&$D!==-1&&$D<j&&b[$D+1]==="!")$D=b.indexOf(" ",$D+1);if($D===-1||j<$D)QD=!0}if(!QD)L=`
|
|
164
|
-
${F.indent}`}}else if(b===""||b[0]===`
|
|
165
|
-
`)L="";if(K+=L+b,F.inFlow){if(S&&X)X()}else if(N&&!S)K+=k9.lineComment(K,F.indent,W(N));else if(C&&J)J();return K}Qv.stringifyPair=Vv});var XY=f((Kv)=>{var dC=Q8("process");function _v(D,...$){if(D==="debug")console.log(...$)}function Av(D,$){if(D==="debug"||D==="warn")if(typeof dC.emitWarning==="function")dC.emitWarning($);else console.warn($)}Kv.debug=_v;Kv.warn=Av});var T5=f((Ev)=>{var v9=_D(),lC=nD(),j5="<<",I5={identify:(D)=>D===j5||typeof D==="symbol"&&D.description===j5,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new lC.Scalar(Symbol(j5)),{addToJSMap:iC}),stringify:()=>j5},Rv=(D,$)=>(I5.identify($)||v9.isScalar($)&&(!$.type||$.type===lC.Scalar.PLAIN)&&I5.identify($.value))&&D?.doc.schema.tags.some((F)=>F.tag===I5.tag&&F.default);function iC(D,$,F){if(F=D&&v9.isAlias(F)?F.resolve(D.doc):F,v9.isSeq(F))for(let X of F.items)JY(D,$,X);else if(Array.isArray(F))for(let X of F)JY(D,$,X);else JY(D,$,F)}function JY(D,$,F){let X=D&&v9.isAlias(F)?F.resolve(D.doc):F;if(!v9.isMap(X))throw Error("Merge sources must be maps or map aliases");let J=X.toJSON(null,D,Map);for(let[G,Y]of J)if($ instanceof Map){if(!$.has(G))$.set(G,Y)}else if($ instanceof Set)$.add(G);else if(!Object.prototype.hasOwnProperty.call($,G))Object.defineProperty($,G,{value:Y,writable:!0,enumerable:!0,configurable:!0});return $}Ev.addMergeToJSMap=iC;Ev.isMergeKey=Rv;Ev.merge=I5});var GY=f((jv)=>{var Nv=XY(),nC=T5(),Pv=f9(),sC=_D(),YY=v8();function qv(D,$,{key:F,value:X}){if(sC.isNode(F)&&F.addToJSMap)F.addToJSMap(D,$,X);else if(nC.isMergeKey(D,F))nC.addMergeToJSMap(D,$,X);else{let J=YY.toJS(F,"",D);if($ instanceof Map)$.set(J,YY.toJS(X,J,D));else if($ instanceof Set)$.add(J);else{let G=Lv(F,J,D),Y=YY.toJS(X,G,D);if(G in $)Object.defineProperty($,G,{value:Y,writable:!0,enumerable:!0,configurable:!0});else $[G]=Y}}return $}function Lv(D,$,F){if($===null)return"";if(typeof $!=="object")return String($);if(sC.isNode(D)&&F?.doc){let X=Pv.createStringifyContext(F.doc,{});X.anchors=new Set;for(let G of F.anchors.keys())X.anchors.add(G.anchor);X.inFlow=!0,X.inStringifyKey=!0;let J=D.toString(X);if(!F.mapKeyWarned){let G=JSON.stringify(J);if(G.length>40)G=G.substring(0,36)+'..."';Nv.warn(F.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${G}. Set mapAsMap: true to use object keys.`),F.mapKeyWarned=!0}return J}return JSON.stringify($)}jv.addPairToJSMap=qv});var g8=f((bv)=>{var rC=T9(),Tv=cC(),wv=GY(),w5=_D();function Sv(D,$,F){let X=rC.createNode(D,void 0,F),J=rC.createNode($,void 0,F);return new S5(X,J)}class S5{constructor(D,$=null){Object.defineProperty(this,w5.NODE_TYPE,{value:w5.PAIR}),this.key=D,this.value=$}clone(D){let{key:$,value:F}=this;if(w5.isNode($))$=$.clone(D);if(w5.isNode(F))F=F.clone(D);return new S5($,F)}toJSON(D,$){let F=$?.mapAsMap?new Map:{};return wv.addPairToJSMap($,F,this)}toString(D,$,F){return D?.doc?Tv.stringifyPair(this,D,$,F):JSON.stringify(this)}}bv.Pair=S5;bv.createPair=Sv});var BY=f((gv)=>{var N1=_D(),oC=f9(),b5=w9();function vv(D,$,F){return($.inFlow??D.flow?hv:xv)(D,$,F)}function xv({comment:D,items:$},F,{blockItemPrefix:X,flowChars:J,itemIndent:G,onChompKeep:Y,onComment:B}){let{indent:H,options:{commentString:W}}=F,Q=Object.assign({},F,{indent:G,type:null}),U=!1,_=[];for(let O=0;O<$.length;++O){let C=$[O],K=null;if(N1.isNode(C)){if(!U&&C.spaceBefore)_.push("");if(f5(F,_,C.commentBefore,U),C.comment)K=C.comment}else if(N1.isPair(C)){let z=N1.isNode(C.key)?C.key:null;if(z){if(!U&&z.spaceBefore)_.push("");f5(F,_,z.commentBefore,U)}}U=!1;let R=oC.stringify(C,Q,()=>K=null,()=>U=!0);if(K)R+=b5.lineComment(R,G,W(K));if(U&&K)U=!1;_.push(X+R)}let A;if(_.length===0)A=J.start+J.end;else{A=_[0];for(let O=1;O<_.length;++O){let C=_[O];A+=C?`
|
|
166
|
-
${H}${C}`:`
|
|
167
|
-
`}}if(D){if(A+=`
|
|
168
|
-
`+b5.indentComment(W(D),H),B)B()}else if(U&&Y)Y();return A}function hv({items:D},$,{flowChars:F,itemIndent:X}){let{indent:J,indentStep:G,flowCollectionPadding:Y,options:{commentString:B}}=$;X+=G;let H=Object.assign({},$,{indent:X,inFlow:!0,type:null}),W=!1,Q=0,U=[];for(let O=0;O<D.length;++O){let C=D[O],K=null;if(N1.isNode(C)){if(C.spaceBefore)U.push("");if(f5($,U,C.commentBefore,!1),C.comment)K=C.comment}else if(N1.isPair(C)){let z=N1.isNode(C.key)?C.key:null;if(z){if(z.spaceBefore)U.push("");if(f5($,U,z.commentBefore,!1),z.comment)W=!0}let N=N1.isNode(C.value)?C.value:null;if(N){if(N.comment)K=N.comment;if(N.commentBefore)W=!0}else if(C.value==null&&z?.comment)K=z.comment}if(K)W=!0;let R=oC.stringify(C,H,()=>K=null);if(W||(W=U.length>Q||R.includes(`
|
|
169
|
-
`)),O<D.length-1)R+=",";else if($.options.trailingComma){if($.options.lineWidth>0)W||(W=U.reduce((z,N)=>z+N.length+2,2)+(R.length+2)>$.options.lineWidth);if(W)R+=","}if(K)R+=b5.lineComment(R,X,B(K));U.push(R),Q=U.length}let{start:_,end:A}=F;if(U.length===0)return _+A;else{if(!W){let O=U.reduce((C,K)=>C+K.length+2,2);W=$.options.lineWidth>0&&O>$.options.lineWidth}if(W){let O=_;for(let C of U)O+=C?`
|
|
170
|
-
${G}${J}${C}`:`
|
|
171
|
-
`;return`${O}
|
|
172
|
-
${J}${A}`}else return`${_}${Y}${U.join(" ")}${Y}${A}`}}function f5({indent:D,options:{commentString:$}},F,X,J){if(X&&J)X=X.replace(/^\n+/,"");if(X){let G=b5.indentComment($(X),D);F.push(G.trimStart())}}gv.stringifyCollection=vv});var u8=f((dv)=>{var uv=BY(),mv=GY(),pv=N5(),y8=_D(),k5=g8(),cv=nD();function x9(D,$){let F=y8.isScalar($)?$.value:$;for(let X of D)if(y8.isPair(X)){if(X.key===$||X.key===F)return X;if(y8.isScalar(X.key)&&X.key.value===F)return X}return}class aC extends pv.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(D){super(y8.MAP,D);this.items=[]}static from(D,$,F){let{keepUndefined:X,replacer:J}=F,G=new this(D),Y=(B,H)=>{if(typeof J==="function")H=J.call($,B,H);else if(Array.isArray(J)&&!J.includes(B))return;if(H!==void 0||X)G.items.push(k5.createPair(B,H,F))};if($ instanceof Map)for(let[B,H]of $)Y(B,H);else if($&&typeof $==="object")for(let B of Object.keys($))Y(B,$[B]);if(typeof D.sortMapEntries==="function")G.items.sort(D.sortMapEntries);return G}add(D,$){let F;if(y8.isPair(D))F=D;else if(!D||typeof D!=="object"||!("key"in D))F=new k5.Pair(D,D?.value);else F=new k5.Pair(D.key,D.value);let X=x9(this.items,F.key),J=this.schema?.sortMapEntries;if(X){if(!$)throw Error(`Key ${F.key} already set`);if(y8.isScalar(X.value)&&cv.isScalarValue(F.value))X.value.value=F.value;else X.value=F.value}else if(J){let G=this.items.findIndex((Y)=>J(F,Y)<0);if(G===-1)this.items.push(F);else this.items.splice(G,0,F)}else this.items.push(F)}delete(D){let $=x9(this.items,D);if(!$)return!1;return this.items.splice(this.items.indexOf($),1).length>0}get(D,$){let X=x9(this.items,D)?.value;return(!$&&y8.isScalar(X)?X.value:X)??void 0}has(D){return!!x9(this.items,D)}set(D,$){this.add(new k5.Pair(D,$),!0)}toJSON(D,$,F){let X=F?new F:$?.mapAsMap?new Map:{};if($?.onCreate)$.onCreate(X);for(let J of this.items)mv.addPairToJSMap($,X,J);return X}toString(D,$,F){if(!D)return JSON.stringify(this);for(let X of this.items)if(!y8.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 uv.stringifyCollection(this,D,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:D.indent||"",onChompKeep:F,onComment:$})}}dv.YAMLMap=aC;dv.findPair=x9});var p6=f((rv)=>{var nv=_D(),tC=u8(),sv={collection:"map",default:!0,nodeClass:tC.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(D,$){if(!nv.isMap(D))$("Expected a mapping for this tag");return D},createNode:(D,$,F)=>tC.YAMLMap.from(D,$,F)};rv.map=sv});var m8=f((Fx)=>{var av=T9(),tv=BY(),ev=N5(),x5=_D(),Dx=nD(),$x=v8();class eC extends ev.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(D){super(x5.SEQ,D);this.items=[]}add(D){this.items.push(D)}delete(D){let $=v5(D);if(typeof $!=="number")return!1;return this.items.splice($,1).length>0}get(D,$){let F=v5(D);if(typeof F!=="number")return;let X=this.items[F];return!$&&x5.isScalar(X)?X.value:X}has(D){let $=v5(D);return typeof $==="number"&&$<this.items.length}set(D,$){let F=v5(D);if(typeof F!=="number")throw Error(`Expected a valid index, not ${D}.`);let X=this.items[F];if(x5.isScalar(X)&&Dx.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($x.toJS(J,String(X++),$));return F}toString(D,$,F){if(!D)return JSON.stringify(this);return tv.stringifyCollection(this,D,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(D.indent||"")+" ",onChompKeep:F,onComment:$})}static from(D,$,F){let{replacer:X}=F,J=new this(D);if($&&Symbol.iterator in Object($)){let G=0;for(let Y of $){if(typeof X==="function"){let B=$ instanceof Set?Y:String(G++);Y=X.call($,B,Y)}J.items.push(av.createNode(Y,void 0,F))}}return J}}function v5(D){let $=x5.isScalar(D)?D.value:D;if($&&typeof $==="string")$=Number($);return typeof $==="number"&&Number.isInteger($)&&$>=0?$:null}Fx.YAMLSeq=eC});var c6=f((Gx)=>{var Jx=_D(),DO=m8(),Yx={collection:"seq",default:!0,nodeClass:DO.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(D,$){if(!Jx.isSeq(D))$("Expected a sequence for this tag");return D},createNode:(D,$,F)=>DO.YAMLSeq.from(D,$,F)};Gx.seq=Yx});var h9=f((Vx)=>{var Hx=b9(),Wx={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},$),Hx.stringifyString(D,$,F,X)}};Vx.string=Wx});var h5=f((Ux)=>{var $O=nD(),FO={identify:(D)=>D==null,createNode:()=>new $O.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new $O.Scalar(null),stringify:({source:D},$)=>typeof D==="string"&&FO.test.test(D)?D:$.options.nullStr};Ux.nullTag=FO});var HY=f((Kx)=>{var Ax=nD(),XO={identify:(D)=>typeof D==="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:(D)=>new Ax.Scalar(D[0]==="t"||D[0]==="T"),stringify({source:D,value:$},F){if(D&&XO.test.test(D)){let X=D[0]==="t"||D[0]==="T";if($===X)return D}return $?F.options.trueStr:F.options.falseStr}};Kx.boolTag=XO});var d6=f((Rx)=>{function Ox({format:D,minFractionDigits:$,tag:F,value:X}){if(typeof X==="bigint")return String(X);let J=typeof X==="number"?X:Number(X);if(!isFinite(J))return isNaN(J)?".nan":J<0?"-.inf":".inf";let G=Object.is(X,-0)?"-0":JSON.stringify(X);if(!D&&$&&(!F||F==="tag:yaml.org,2002:float")&&/^\d/.test(G)){let Y=G.indexOf(".");if(Y<0)Y=G.length,G+=".";let B=$-(G.length-Y-1);while(B-- >0)G+="0"}return G}Rx.stringifyNumber=Ox});var VY=f((Px)=>{var Zx=nD(),WY=d6(),Mx={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:WY.stringifyNumber},zx={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():WY.stringifyNumber(D)}},Nx={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(D){let $=new Zx.Scalar(parseFloat(D)),F=D.indexOf(".");if(F!==-1&&D[D.length-1]==="0")$.minFractionDigits=D.length-F-1;return $},stringify:WY.stringifyNumber};Px.float=Nx;Px.floatExp=zx;Px.floatNaN=Mx});var UY=f((Sx)=>{var JO=d6(),g5=(D)=>typeof D==="bigint"||Number.isInteger(D),QY=(D,$,F,{intAsBigInt:X})=>X?BigInt(D):parseInt(D.substring($),F);function YO(D,$,F){let{value:X}=D;if(g5(X)&&X>=0)return F+X.toString($);return JO.stringifyNumber(D)}var Ix={identify:(D)=>g5(D)&&D>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(D,$,F)=>QY(D,2,8,F),stringify:(D)=>YO(D,8,"0o")},Tx={identify:g5,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(D,$,F)=>QY(D,0,10,F),stringify:JO.stringifyNumber},wx={identify:(D)=>g5(D)&&D>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(D,$,F)=>QY(D,2,16,F),stringify:(D)=>YO(D,16,"0x")};Sx.int=Tx;Sx.intHex=wx;Sx.intOct=Ix});var GO=f((mx)=>{var vx=p6(),xx=h5(),hx=c6(),gx=h9(),yx=HY(),_Y=VY(),AY=UY(),ux=[vx.map,hx.seq,gx.string,xx.nullTag,yx.boolTag,AY.intOct,AY.int,AY.intHex,_Y.floatNaN,_Y.floatExp,_Y.float];mx.schema=ux});var HO=f((rx)=>{var cx=nD(),dx=p6(),lx=c6();function BO(D){return typeof D==="bigint"||Number.isInteger(D)}var y5=({value:D})=>JSON.stringify(D),ix=[{identify:(D)=>typeof D==="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:(D)=>D,stringify:y5},{identify:(D)=>D==null,createNode:()=>new cx.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:y5},{identify:(D)=>typeof D==="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:(D)=>D==="true",stringify:y5},{identify:BO,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})=>BO(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:y5}],nx={default:!0,tag:"",test:/^/,resolve(D,$){return $(`Unresolved plain scalar ${JSON.stringify(D)}`),D}},sx=[dx.map,lx.seq].concat(ix,nx);rx.schema=sx});var CY=f((ex)=>{var g9=Q8("buffer"),KY=nD(),ax=b9(),tx={identify:(D)=>D instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(D,$){if(typeof g9.Buffer==="function")return g9.Buffer.from(D,"base64");else if(typeof atob==="function"){let F=atob(D.replace(/[\n\r]/g,"")),X=new Uint8Array(F.length);for(let J=0;J<F.length;++J)X[J]=F.charCodeAt(J);return X}else return $("This environment does not support reading binary tags; either Buffer or atob is required"),D},stringify({comment:D,type:$,value:F},X,J,G){if(!F)return"";let Y=F,B;if(typeof g9.Buffer==="function")B=Y instanceof g9.Buffer?Y.toString("base64"):g9.Buffer.from(Y.buffer).toString("base64");else if(typeof btoa==="function"){let H="";for(let W=0;W<Y.length;++W)H+=String.fromCharCode(Y[W]);B=btoa(H)}else throw Error("This environment does not support writing binary tags; either Buffer or btoa is required");if($??($=KY.Scalar.BLOCK_LITERAL),$!==KY.Scalar.QUOTE_DOUBLE){let H=Math.max(X.options.lineWidth-X.indent.length,X.options.minContentWidth),W=Math.ceil(B.length/H),Q=Array(W);for(let U=0,_=0;U<W;++U,_+=H)Q[U]=B.substr(_,H);B=Q.join($===KY.Scalar.BLOCK_LITERAL?`
|
|
173
|
-
`:" ")}return ax.stringifyString({comment:D,type:$,value:B},X,J,G)}};ex.binary=tx});var m5=f((Jh)=>{var u5=_D(),OY=g8(),$h=nD(),Fh=m8();function WO(D,$){if(u5.isSeq(D))for(let F=0;F<D.items.length;++F){let X=D.items[F];if(u5.isPair(X))continue;else if(u5.isMap(X)){if(X.items.length>1)$("Each pair must have its own sequence indicator");let J=X.items[0]||new OY.Pair(new $h.Scalar(null));if(X.commentBefore)J.key.commentBefore=J.key.commentBefore?`${X.commentBefore}
|
|
174
|
-
${J.key.commentBefore}`:X.commentBefore;if(X.comment){let G=J.value??J.key;G.comment=G.comment?`${X.comment}
|
|
175
|
-
${G.comment}`:X.comment}X=J}D.items[F]=u5.isPair(X)?X:new OY.Pair(X)}else $("Expected a sequence for this tag");return D}function VO(D,$,F){let{replacer:X}=F,J=new Fh.YAMLSeq(D);J.tag="tag:yaml.org,2002:pairs";let G=0;if($&&Symbol.iterator in Object($))for(let Y of $){if(typeof X==="function")Y=X.call($,String(G++),Y);let B,H;if(Array.isArray(Y))if(Y.length===2)B=Y[0],H=Y[1];else throw TypeError(`Expected [key, value] tuple: ${Y}`);else if(Y&&Y instanceof Object){let W=Object.keys(Y);if(W.length===1)B=W[0],H=Y[B];else throw TypeError(`Expected tuple with one key, not ${W.length} keys`)}else B=Y;J.items.push(OY.createPair(B,H,F))}return J}var Xh={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:WO,createNode:VO};Jh.createPairs=VO;Jh.pairs=Xh;Jh.resolvePairs=WO});var EY=f((Vh)=>{var QO=_D(),RY=v8(),y9=u8(),Hh=m8(),UO=m5();class P1 extends Hh.YAMLSeq{constructor(){super();this.add=y9.YAMLMap.prototype.add.bind(this),this.delete=y9.YAMLMap.prototype.delete.bind(this),this.get=y9.YAMLMap.prototype.get.bind(this),this.has=y9.YAMLMap.prototype.has.bind(this),this.set=y9.YAMLMap.prototype.set.bind(this),this.tag=P1.tag}toJSON(D,$){if(!$)return super.toJSON(D);let F=new Map;if($?.onCreate)$.onCreate(F);for(let X of this.items){let J,G;if(QO.isPair(X))J=RY.toJS(X.key,"",$),G=RY.toJS(X.value,J,$);else J=RY.toJS(X,"",$);if(F.has(J))throw Error("Ordered maps must not include duplicate keys");F.set(J,G)}return F}static from(D,$,F){let X=UO.createPairs(D,$,F),J=new this;return J.items=X.items,J}}P1.tag="tag:yaml.org,2002:omap";var Wh={collection:"seq",identify:(D)=>D instanceof Map,nodeClass:P1,default:!1,tag:"tag:yaml.org,2002:omap",resolve(D,$){let F=UO.resolvePairs(D,$),X=[];for(let{key:J}of F.items)if(QO.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 P1,F)},createNode:(D,$,F)=>P1.from(D,$,F)};Vh.YAMLOMap=P1;Vh.omap=Wh});var OO=f((_h)=>{var _O=nD();function AO({value:D,source:$},F){if($&&(D?KO:CO).test.test($))return $;return D?F.options.trueStr:F.options.falseStr}var KO={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 _O.Scalar(!0),stringify:AO},CO={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 _O.Scalar(!1),stringify:AO};_h.falseTag=CO;_h.trueTag=KO});var RO=f((Zh)=>{var Ch=nD(),ZY=d6(),Oh={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:ZY.stringifyNumber},Rh={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():ZY.stringifyNumber(D)}},Eh={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(D){let $=new Ch.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:ZY.stringifyNumber};Zh.float=Eh;Zh.floatExp=Rh;Zh.floatNaN=Oh});var ZO=f((Ih)=>{var EO=d6(),u9=(D)=>typeof D==="bigint"||Number.isInteger(D);function p5(D,$,F,{intAsBigInt:X}){let J=D[0];if(J==="-"||J==="+")$+=1;if(D=D.substring($).replace(/_/g,""),X){switch(F){case 2:D=`0b${D}`;break;case 8:D=`0o${D}`;break;case 16:D=`0x${D}`;break}let Y=BigInt(D);return J==="-"?BigInt(-1)*Y:Y}let G=parseInt(D,F);return J==="-"?-1*G:G}function MY(D,$,F){let{value:X}=D;if(u9(X)){let J=X.toString($);return X<0?"-"+F+J.substr(1):F+J}return EO.stringifyNumber(D)}var Ph={identify:u9,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(D,$,F)=>p5(D,2,2,F),stringify:(D)=>MY(D,2,"0b")},qh={identify:u9,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(D,$,F)=>p5(D,1,8,F),stringify:(D)=>MY(D,8,"0")},Lh={identify:u9,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(D,$,F)=>p5(D,0,10,F),stringify:EO.stringifyNumber},jh={identify:u9,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(D,$,F)=>p5(D,2,16,F),stringify:(D)=>MY(D,16,"0x")};Ih.int=Lh;Ih.intBin=Ph;Ih.intHex=jh;Ih.intOct=qh});var zY=f((kh)=>{var l5=_D(),c5=g8(),d5=u8();class q1 extends d5.YAMLMap{constructor(D){super(D);this.tag=q1.tag}add(D){let $;if(l5.isPair(D))$=D;else if(D&&typeof D==="object"&&"key"in D&&"value"in D&&D.value===null)$=new c5.Pair(D.key,null);else $=new c5.Pair(D,null);if(!d5.findPair(this.items,$.key))this.items.push($)}get(D,$){let F=d5.findPair(this.items,D);return!$&&l5.isPair(F)?l5.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=d5.findPair(this.items,D);if(F&&!$)this.items.splice(this.items.indexOf(F),1);else if(!F&&$)this.items.push(new c5.Pair(D))}toJSON(D,$){return super.toJSON(D,$,Set)}toString(D,$,F){if(!D)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},D,{allNullValues:!0}),$,F);else throw Error("Set items must all have null values")}static from(D,$,F){let{replacer:X}=F,J=new this(D);if($&&Symbol.iterator in Object($))for(let G of $){if(typeof X==="function")G=X.call($,G,G);J.items.push(c5.createPair(G,null,F))}return J}}q1.tag="tag:yaml.org,2002:set";var fh={collection:"map",identify:(D)=>D instanceof Set,nodeClass:q1,default:!1,tag:"tag:yaml.org,2002:set",createNode:(D,$,F)=>q1.from(D,$,F),resolve(D,$){if(l5.isMap(D))if(D.hasAllNullValues(!0))return Object.assign(new q1,D);else $("Set items must all have null values");else $("Expected a mapping for this tag");return D}};kh.YAMLSet=q1;kh.set=fh});var PY=f((uh)=>{var hh=d6();function NY(D,$){let F=D[0],X=F==="-"||F==="+"?D.substring(1):D,J=(Y)=>$?BigInt(Y):Number(Y),G=X.replace(/_/g,"").split(":").reduce((Y,B)=>Y*J(60)+J(B),J(0));return F==="-"?J(-1)*G:G}function MO(D){let{value:$}=D,F=(Y)=>Y;if(typeof $==="bigint")F=(Y)=>BigInt(Y);else if(isNaN($)||!isFinite($))return hh.stringifyNumber(D);let X="";if($<0)X="-",$*=F(-1);let J=F(60),G=[$%J];if($<60)G.unshift(0);else if($=($-G[0])/J,G.unshift($%J),$>=60)$=($-G[0])/J,G.unshift($);return X+G.map((Y)=>String(Y).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var gh={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})=>NY(D,F),stringify:MO},yh={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)=>NY(D,!1),stringify:MO},zO={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(zO.test);if(!$)throw Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,F,X,J,G,Y,B]=$.map(Number),H=$[7]?Number(($[7]+"00").substr(1,3)):0,W=Date.UTC(F,X-1,J,G||0,Y||0,B||0,H),Q=$[8];if(Q&&Q!=="Z"){let U=NY(Q,!1);if(Math.abs(U)<30)U*=60;W-=60000*U}return new Date(W)},stringify:({value:D})=>D?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};uh.floatTime=yh;uh.intTime=gh;uh.timestamp=zO});var PO=f((Dg)=>{var dh=p6(),lh=h5(),ih=c6(),nh=h9(),sh=CY(),NO=OO(),qY=RO(),i5=ZO(),rh=T5(),oh=EY(),ah=m5(),th=zY(),LY=PY(),eh=[dh.map,ih.seq,nh.string,lh.nullTag,NO.trueTag,NO.falseTag,i5.intBin,i5.intOct,i5.int,i5.intHex,qY.floatNaN,qY.floatExp,qY.float,sh.binary,rh.merge,oh.omap,ah.pairs,th.set,LY.intTime,LY.floatTime,LY.timestamp];Dg.schema=eh});var kO=f((Wg)=>{var IO=p6(),Fg=h5(),TO=c6(),Xg=h9(),Jg=HY(),jY=VY(),IY=UY(),Yg=GO(),Gg=HO(),wO=CY(),m9=T5(),SO=EY(),bO=m5(),qO=PO(),fO=zY(),n5=PY(),LO=new Map([["core",Yg.schema],["failsafe",[IO.map,TO.seq,Xg.string]],["json",Gg.schema],["yaml11",qO.schema],["yaml-1.1",qO.schema]]),jO={binary:wO.binary,bool:Jg.boolTag,float:jY.float,floatExp:jY.floatExp,floatNaN:jY.floatNaN,floatTime:n5.floatTime,int:IY.int,intHex:IY.intHex,intOct:IY.intOct,intTime:n5.intTime,map:IO.map,merge:m9.merge,null:Fg.nullTag,omap:SO.omap,pairs:bO.pairs,seq:TO.seq,set:fO.set,timestamp:n5.timestamp},Bg={"tag:yaml.org,2002:binary":wO.binary,"tag:yaml.org,2002:merge":m9.merge,"tag:yaml.org,2002:omap":SO.omap,"tag:yaml.org,2002:pairs":bO.pairs,"tag:yaml.org,2002:set":fO.set,"tag:yaml.org,2002:timestamp":n5.timestamp};function Hg(D,$,F){let X=LO.get($);if(X&&!D)return F&&!X.includes(m9.merge)?X.concat(m9.merge):X.slice();let J=X;if(!J)if(Array.isArray(D))J=[];else{let G=Array.from(LO.keys()).filter((Y)=>Y!=="yaml11").map((Y)=>JSON.stringify(Y)).join(", ");throw Error(`Unknown schema "${$}"; use one of ${G} or define customTags array`)}if(Array.isArray(D))for(let G of D)J=J.concat(G);else if(typeof D==="function")J=D(J.slice());if(F)J=J.concat(m9.merge);return J.reduce((G,Y)=>{let B=typeof Y==="string"?jO[Y]:Y;if(!B){let H=JSON.stringify(Y),W=Object.keys(jO).map((Q)=>JSON.stringify(Q)).join(", ");throw Error(`Unknown custom tag ${H}; use one of ${W}`)}if(!G.includes(B))G.push(B);return G},[])}Wg.coreKnownTags=Bg;Wg.getTags=Hg});var SY=f((Cg)=>{var TY=_D(),Ug=p6(),_g=c6(),Ag=h9(),s5=kO(),Kg=(D,$)=>D.key<$.key?-1:D.key>$.key?1:0;class wY{constructor({compat:D,customTags:$,merge:F,resolveKnownTags:X,schema:J,sortMapEntries:G,toStringDefaults:Y}){this.compat=Array.isArray(D)?s5.getTags(D,"compat"):D?s5.getTags(null,D):null,this.name=typeof J==="string"&&J||"core",this.knownTags=X?s5.coreKnownTags:{},this.tags=s5.getTags($,this.name,F),this.toStringOptions=Y??null,Object.defineProperty(this,TY.MAP,{value:Ug.map}),Object.defineProperty(this,TY.SCALAR,{value:Ag.string}),Object.defineProperty(this,TY.SEQ,{value:_g.seq}),this.sortMapEntries=typeof G==="function"?G:G===!0?Kg:null}clone(){let D=Object.create(wY.prototype,Object.getOwnPropertyDescriptors(this));return D.tags=this.tags.slice(),D}}Cg.Schema=wY});var vO=f((Zg)=>{var Rg=_D(),bY=f9(),p9=w9();function Eg(D,$){let F=[],X=$.directives===!0;if($.directives!==!1&&D.directives){let H=D.directives.toString(D);if(H)F.push(H),X=!0;else if(D.directives.docStart)X=!0}if(X)F.push("---");let J=bY.createStringifyContext(D,$),{commentString:G}=J.options;if(D.commentBefore){if(F.length!==1)F.unshift("");let H=G(D.commentBefore);F.unshift(p9.indentComment(H,""))}let Y=!1,B=null;if(D.contents){if(Rg.isNode(D.contents)){if(D.contents.spaceBefore&&X)F.push("");if(D.contents.commentBefore){let Q=G(D.contents.commentBefore);F.push(p9.indentComment(Q,""))}J.forceBlockIndent=!!D.comment,B=D.contents.comment}let H=B?void 0:()=>Y=!0,W=bY.stringify(D.contents,J,()=>B=null,H);if(B)W+=p9.lineComment(W,"",G(B));if((W[0]==="|"||W[0]===">")&&F[F.length-1]==="---")F[F.length-1]=`--- ${W}`;else F.push(W)}else F.push(bY.stringify(D.contents,J));if(D.directives?.docEnd)if(D.comment){let H=G(D.comment);if(H.includes(`
|
|
176
|
-
`))F.push("..."),F.push(p9.indentComment(H,""));else F.push(`... ${H}`)}else F.push("...");else{let H=D.comment;if(H&&Y)H=H.replace(/^\n+/,"");if(H){if((!Y||B)&&F[F.length-1]!=="")F.push("");F.push(p9.indentComment(G(H),""))}}return F.join(`
|
|
177
|
-
`)+`
|
|
178
|
-
`}Zg.stringifyDocument=Eg});var c9=f((Tg)=>{var zg=I9(),l6=N5(),D2=_D(),Ng=g8(),Pg=v8(),qg=SY(),Lg=vO(),fY=Z5(),jg=tJ(),Ig=T9(),kY=aJ();class vY{constructor(D,$,F){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,D2.NODE_TYPE,{value:D2.DOC});let X=null;if(typeof $==="function"||Array.isArray($))X=$;else if(F===void 0&&$)F=$,$=void 0;let J=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},F);this.options=J;let{version:G}=J;if(F?._directives){if(this.directives=F._directives.atDocument(),this.directives.yaml.explicit)G=this.directives.yaml.version}else this.directives=new kY.Directives({version:G});this.setSchema(G,F),this.contents=D===void 0?null:this.createNode(D,X,F)}clone(){let D=Object.create(vY.prototype,{[D2.NODE_TYPE]:{value:D2.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=D2.isNode(this.contents)?this.contents.clone(D.schema):this.contents,this.range)D.range=this.range.slice();return D}add(D){if(i6(this.contents))this.contents.add(D)}addIn(D,$){if(i6(this.contents))this.contents.addIn(D,$)}createAlias(D,$){if(!D.anchor){let F=fY.anchorNames(this);D.anchor=!$||F.has($)?fY.findNewAnchor($||"a",F):$}return new zg.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:G,flow:Y,keepUndefined:B,onTagObj:H,tag:W}=F??{},{onAnchor:Q,setAnchors:U,sourceObjects:_}=fY.createNodeAnchors(this,G||"a"),A={aliasDuplicateObjects:J??!0,keepUndefined:B??!1,onAnchor:Q,onTagObj:H,replacer:X,schema:this.schema,sourceObjects:_},O=Ig.createNode(D,W,A);if(Y&&D2.isCollection(O))O.flow=!0;return U(),O}createPair(D,$,F={}){let X=this.createNode(D,null,F),J=this.createNode($,null,F);return new Ng.Pair(X,J)}delete(D){return i6(this.contents)?this.contents.delete(D):!1}deleteIn(D){if(l6.isEmptyPath(D)){if(this.contents==null)return!1;return this.contents=null,!0}return i6(this.contents)?this.contents.deleteIn(D):!1}get(D,$){return D2.isCollection(this.contents)?this.contents.get(D,$):void 0}getIn(D,$){if(l6.isEmptyPath(D))return!$&&D2.isScalar(this.contents)?this.contents.value:this.contents;return D2.isCollection(this.contents)?this.contents.getIn(D,$):void 0}has(D){return D2.isCollection(this.contents)?this.contents.has(D):!1}hasIn(D){if(l6.isEmptyPath(D))return this.contents!==void 0;return D2.isCollection(this.contents)?this.contents.hasIn(D):!1}set(D,$){if(this.contents==null)this.contents=l6.collectionFromPath(this.schema,[D],$);else if(i6(this.contents))this.contents.set(D,$)}setIn(D,$){if(l6.isEmptyPath(D))this.contents=$;else if(this.contents==null)this.contents=l6.collectionFromPath(this.schema,Array.from(D),$);else if(i6(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 kY.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 kY.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 qg.Schema(Object.assign(F,$));else throw Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:D,jsonArg:$,mapAsMap:F,maxAliasCount:X,onAnchor:J,reviver:G}={}){let Y={anchors:new Map,doc:this,keep:!D,mapAsMap:F===!0,mapKeyWarned:!1,maxAliasCount:typeof X==="number"?X:100},B=Pg.toJS(this.contents,$??"",Y);if(typeof J==="function")for(let{count:H,res:W}of Y.anchors.values())J(W,H);return typeof G==="function"?jg.applyReviver(G,{"":B},"",B):B}toJSON(D,$){return this.toJS({json:!0,jsonArg:D,mapAsMap:!1,onAnchor:$})}toString(D={}){if(this.errors.length>0)throw Error("Document with errors cannot be stringified");if("indent"in D&&(!Number.isInteger(D.indent)||Number(D.indent)<=0)){let $=JSON.stringify(D.indent);throw Error(`"indent" option must be a positive integer, not ${$}`)}return Lg.stringifyDocument(this,D)}}function i6(D){if(D2.isCollection(D))return!0;throw Error("Expected a YAML collection as document contents")}Tg.Document=vY});var d9=f((bg)=>{class r5 extends Error{constructor(D,$,F,X){super();this.name=D,this.code=F,this.message=X,this.pos=$}}class xO extends r5{constructor(D,$,F){super("YAMLParseError",D,$,F)}}class hO extends r5{constructor(D,$,F){super("YAMLWarning",D,$,F)}}var Sg=(D,$)=>(F)=>{if(F.pos[0]===-1)return;F.linePos=F.pos.map((B)=>$.linePos(B));let{line:X,col:J}=F.linePos[0];F.message+=` at line ${X}, column ${J}`;let G=J-1,Y=D.substring($.lineStarts[X-1],$.lineStarts[X]).replace(/[\n\r]+$/,"");if(G>=60&&Y.length>80){let B=Math.min(G-39,Y.length-79);Y="\u2026"+Y.substring(B),G-=B-1}if(Y.length>80)Y=Y.substring(0,79)+"\u2026";if(X>1&&/^ *$/.test(Y.substring(0,G))){let B=D.substring($.lineStarts[X-2],$.lineStarts[X-1]);if(B.length>80)B=B.substring(0,79)+`\u2026
|
|
179
|
-
`;Y=B+Y}if(/[^ ]/.test(Y)){let B=1,H=F.linePos[1];if(H?.line===X&&H.col>J)B=Math.max(1,Math.min(H.col-J,80-G));let W=" ".repeat(G)+"^".repeat(B);F.message+=`:
|
|
180
|
-
|
|
181
|
-
${Y}
|
|
182
|
-
${W}
|
|
183
|
-
`}};bg.YAMLError=r5;bg.YAMLParseError=xO;bg.YAMLWarning=hO;bg.prettifyError=Sg});var l9=f((gg)=>{function hg(D,{flow:$,indicator:F,next:X,offset:J,onError:G,parentIndent:Y,startOnNewline:B}){let H=!1,W=B,Q=B,U="",_="",A=!1,O=!1,C=null,K=null,R=null,z=null,N=null,S=null,b=null;for(let j of D){if(O){if(j.type!=="space"&&j.type!=="newline"&&j.type!=="comma")G(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")G(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;Q=!0;break;case"comment":{if(!Q)G(j,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let d=j.source.substring(1)||" ";if(!U)U=d;else U+=_+d;_="",W=!1;break}case"newline":if(W){if(U)U+=j.source;else if(!S||F!=="seq-item-ind")H=!0}else _+=j.source;if(W=!0,A=!0,K||R)z=j;Q=!0;break;case"anchor":if(K)G(j,"MULTIPLE_ANCHORS","A node can have at most one anchor");if(j.source.endsWith(":"))G(j.offset+j.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0);K=j,b??(b=j.offset),W=!1,Q=!1,O=!0;break;case"tag":{if(R)G(j,"MULTIPLE_TAGS","A node can have at most one tag");R=j,b??(b=j.offset),W=!1,Q=!1,O=!0;break}case F:if(K||R)G(j,"BAD_PROP_ORDER",`Anchors and tags must be after the ${j.source} indicator`);if(S)G(j,"UNEXPECTED_TOKEN",`Unexpected ${j.source} in ${$??"collection"}`);S=j,W=F==="seq-item-ind"||F==="explicit-key-ind",Q=!1;break;case"comma":if($){if(N)G(j,"UNEXPECTED_TOKEN",`Unexpected , in ${$}`);N=j,W=!1,Q=!1;break}default:G(j,"UNEXPECTED_TOKEN",`Unexpected ${j.type} token`),W=!1,Q=!1}}let L=D[D.length-1],q=L?L.offset+L.source.length:J;if(O&&X&&X.type!=="space"&&X.type!=="newline"&&X.type!=="comma"&&(X.type!=="scalar"||X.source!==""))G(X.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space");if(C&&(W&&C.indent<=Y||X?.type==="block-map"||X?.type==="block-seq"))G(C,"TAB_AS_INDENT","Tabs are not allowed as indentation");return{comma:N,found:S,spaceBefore:H,comment:U,hasNewline:A,anchor:K,tag:R,newlineAfterProp:z,end:q,start:b??q}}gg.resolveProps=hg});var o5=f((ug)=>{function xY(D){if(!D)return null;switch(D.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(D.source.includes(`
|
|
184
|
-
`))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(xY($.key)||xY($.value))return!0}return!1;default:return!0}}ug.containsNewline=xY});var hY=f((dg)=>{var pg=o5();function cg(D,$,F){if($?.type==="flow-collection"){let X=$.end[0];if(X.indent===D&&(X.source==="]"||X.source==="}")&&pg.containsNewline($))F(X,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}dg.flowIndentCheck=cg});var gY=f((ng)=>{var gO=_D();function ig(D,$,F){let{uniqueKeys:X}=D.options;if(X===!1)return!1;let J=typeof X==="function"?X:(G,Y)=>G===Y||gO.isScalar(G)&&gO.isScalar(Y)&&G.value===Y.value;return $.some((G)=>J(G.key,F))}ng.mapIncludes=ig});var cO=f((eg)=>{var yO=g8(),rg=u8(),uO=l9(),og=o5(),mO=hY(),ag=gY(),pO="All mapping items must start at the same column";function tg({composeNode:D,composeEmptyNode:$},F,X,J,G){let B=new(G?.nodeClass??rg.YAMLMap)(F.schema);if(F.atRoot)F.atRoot=!1;let H=X.offset,W=null;for(let Q of X.items){let{start:U,key:_,sep:A,value:O}=Q,C=uO.resolveProps(U,{indicator:"explicit-key-ind",next:_??A?.[0],offset:H,onError:J,parentIndent:X.indent,startOnNewline:!0}),K=!C.found;if(K){if(_){if(_.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 _&&_.indent!==X.indent)J(H,"BAD_INDENT",pO)}if(!C.anchor&&!C.tag&&!A){if(W=C.end,C.comment)if(B.comment)B.comment+=`
|
|
185
|
-
`+C.comment;else B.comment=C.comment;continue}if(C.newlineAfterProp||og.containsNewline(_))J(_??U[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",pO);F.atKey=!0;let R=C.end,z=_?D(F,_,C,J):$(F,R,U,null,C,J);if(F.schema.compat)mO.flowIndentCheck(X.indent,_,J);if(F.atKey=!1,ag.mapIncludes(F,B.items,z))J(R,"DUPLICATE_KEY","Map keys must be unique");let N=uO.resolveProps(A??[],{indicator:"map-value-ind",next:O,offset:z.range[2],onError:J,parentIndent:X.indent,startOnNewline:!_||_.type==="block-scalar"});if(H=N.end,N.found){if(K){if(O?.type==="block-map"&&!N.hasNewline)J(H,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings");if(F.options.strict&&C.start<N.found.offset-1024)J(z.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key")}let S=O?D(F,O,N,J):$(F,H,A,null,N,J);if(F.schema.compat)mO.flowIndentCheck(X.indent,O,J);H=S.range[2];let b=new yO.Pair(z,S);if(F.options.keepSourceTokens)b.srcToken=Q;B.items.push(b)}else{if(K)J(z.range,"MISSING_CHAR","Implicit map keys need to be followed by map values");if(N.comment)if(z.comment)z.comment+=`
|
|
186
|
-
`+N.comment;else z.comment=N.comment;let S=new yO.Pair(z);if(F.options.keepSourceTokens)S.srcToken=Q;B.items.push(S)}}if(W&&W<H)J(W,"IMPOSSIBLE","Map comment with trailing content");return B.range=[X.offset,H,W??H],B}eg.resolveBlockMap=tg});var dO=f((Yy)=>{var $y=m8(),Fy=l9(),Xy=hY();function Jy({composeNode:D,composeEmptyNode:$},F,X,J,G){let B=new(G?.nodeClass??$y.YAMLSeq)(F.schema);if(F.atRoot)F.atRoot=!1;if(F.atKey)F.atKey=!1;let H=X.offset,W=null;for(let{start:Q,value:U}of X.items){let _=Fy.resolveProps(Q,{indicator:"seq-item-ind",next:U,offset:H,onError:J,parentIndent:X.indent,startOnNewline:!0});if(!_.found)if(_.anchor||_.tag||U)if(U?.type==="block-seq")J(_.end,"BAD_INDENT","All sequence items must start at the same column");else J(H,"MISSING_CHAR","Sequence item without - indicator");else{if(W=_.end,_.comment)B.comment=_.comment;continue}let A=U?D(F,U,_,J):$(F,_.end,Q,null,_,J);if(F.schema.compat)Xy.flowIndentCheck(X.indent,U,J);H=A.range[2],B.items.push(A)}return B.range=[X.offset,H,W??H],B}Yy.resolveBlockSeq=Jy});var n6=f((Hy)=>{function By(D,$,F,X){let J="";if(D){let G=!1,Y="";for(let B of D){let{source:H,type:W}=B;switch(W){case"space":G=!0;break;case"comment":{if(F&&!G)X(B,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let Q=H.substring(1)||" ";if(!J)J=Q;else J+=Y+Q;Y="";break}case"newline":if(J)Y+=H;G=!0;break;default:X(B,"UNEXPECTED_TOKEN",`Unexpected ${W} at node end`)}$+=H.length}}return{comment:J,offset:$}}Hy.resolveEnd=By});var nO=f((Oy)=>{var Vy=_D(),Qy=g8(),lO=u8(),Uy=m8(),_y=n6(),iO=l9(),Ay=o5(),Ky=gY(),yY="Block collections are not allowed within flow collections",uY=(D)=>D&&(D.type==="block-map"||D.type==="block-seq");function Cy({composeNode:D,composeEmptyNode:$},F,X,J,G){let Y=X.start.source==="{",B=Y?"flow map":"flow sequence",W=new(G?.nodeClass??(Y?lO.YAMLMap:Uy.YAMLSeq))(F.schema);W.flow=!0;let Q=F.atRoot;if(Q)F.atRoot=!1;if(F.atKey)F.atKey=!1;let U=X.offset+X.start.source.length;for(let K=0;K<X.items.length;++K){let R=X.items[K],{start:z,key:N,sep:S,value:b}=R,L=iO.resolveProps(z,{flow:B,indicator:"explicit-key-ind",next:N??S?.[0],offset:U,onError:J,parentIndent:X.indent,startOnNewline:!1});if(!L.found){if(!L.anchor&&!L.tag&&!S&&!b){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+=`
|
|
187
|
-
`+L.comment;else W.comment=L.comment;U=L.end;continue}if(!Y&&F.options.strict&&Ay.containsNewline(N))J(N,"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 q="";D:for(let j of z)switch(j.type){case"comma":case"space":break;case"comment":q=j.source.substring(1);break D;default:break D}if(q){let j=W.items[W.items.length-1];if(Vy.isPair(j))j=j.value??j.key;if(j.comment)j.comment+=`
|
|
188
|
-
`+q;else j.comment=q;L.comment=L.comment.substring(q.length+1)}}}if(!Y&&!S&&!L.found){let q=b?D(F,b,L,J):$(F,L.end,S,null,L,J);if(W.items.push(q),U=q.range[2],uY(b))J(q.range,"BLOCK_IN_FLOW",yY)}else{F.atKey=!0;let q=L.end,j=N?D(F,N,L,J):$(F,q,z,null,L,J);if(uY(N))J(j.range,"BLOCK_IN_FLOW",yY);F.atKey=!1;let d=iO.resolveProps(S??[],{flow:B,indicator:"map-value-ind",next:b,offset:j.range[2],onError:J,parentIndent:X.indent,startOnNewline:!1});if(d.found){if(!Y&&!L.found&&F.options.strict){if(S)for(let $D of S){if($D===d.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<d.found.offset-1024)J(d.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else if(b)if("source"in b&&b.source?.[0]===":")J(b,"MISSING_CHAR",`Missing space after : in ${B}`);else J(d.start,"MISSING_CHAR",`Missing , or : between ${B} items`);let VD=b?D(F,b,d,J):d.found?$(F,d.end,S,null,d,J):null;if(VD){if(uY(b))J(VD.range,"BLOCK_IN_FLOW",yY)}else if(d.comment)if(j.comment)j.comment+=`
|
|
189
|
-
`+d.comment;else j.comment=d.comment;let QD=new Qy.Pair(j,VD);if(F.options.keepSourceTokens)QD.srcToken=R;if(Y){let $D=W;if(Ky.mapIncludes(F,$D.items,j))J(q,"DUPLICATE_KEY","Map keys must be unique");$D.items.push(QD)}else{let $D=new lO.YAMLMap(F.schema);$D.flow=!0,$D.items.push(QD);let tD=(VD??j).range;$D.range=[j.range[0],tD[1],tD[2]],W.items.push($D)}U=VD?VD.range[2]:d.end}}let _=Y?"}":"]",[A,...O]=X.end,C=U;if(A?.source===_)C=A.offset+A.source.length;else{let K=B[0].toUpperCase()+B.substring(1),R=Q?`${K} must end with a ${_}`:`${K} in block collection must be sufficiently indented and end with a ${_}`;if(J(U,Q?"MISSING_CHAR":"BAD_INDENT",R),A&&A.source.length!==1)O.unshift(A)}if(O.length>0){let K=_y.resolveEnd(O,C,F.options.strict,J);if(K.comment)if(W.comment)W.comment+=`
|
|
190
|
-
`+K.comment;else W.comment=K.comment;W.range=[X.offset,C,K.offset]}else W.range=[X.offset,C,C];return W}Oy.resolveFlowCollection=Cy});var sO=f((jy)=>{var Ey=_D(),Zy=nD(),My=u8(),zy=m8(),Ny=cO(),Py=dO(),qy=nO();function mY(D,$,F,X,J,G){let Y=F.type==="block-map"?Ny.resolveBlockMap(D,$,F,X,G):F.type==="block-seq"?Py.resolveBlockSeq(D,$,F,X,G):qy.resolveFlowCollection(D,$,F,X,G),B=Y.constructor;if(J==="!"||J===B.tagName)return Y.tag=B.tagName,Y;if(J)Y.tag=J;return Y}function Ly(D,$,F,X,J){let G=X.tag,Y=!G?null:$.directives.tagName(G.source,(_)=>J(G,"TAG_RESOLVE_FAILED",_));if(F.type==="block-seq"){let{anchor:_,newlineAfterProp:A}=X,O=_&&G?_.offset>G.offset?_:G:_??G;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(!G||!Y||Y==="!"||Y===My.YAMLMap.tagName&&B==="map"||Y===zy.YAMLSeq.tagName&&B==="seq")return mY(D,$,F,J,Y);let H=$.schema.tags.find((_)=>_.tag===Y&&_.collection===B);if(!H){let _=$.schema.knownTags[Y];if(_?.collection===B)$.schema.tags.push(Object.assign({},_,{default:!1})),H=_;else{if(_)J(G,"BAD_COLLECTION_TYPE",`${_.tag} used for ${B} collection, but expects ${_.collection??"scalar"}`,!0);else J(G,"TAG_RESOLVE_FAILED",`Unresolved tag: ${Y}`,!0);return mY(D,$,F,J,Y)}}let W=mY(D,$,F,J,Y,H),Q=H.resolve?.(W,(_)=>J(G,"TAG_RESOLVE_FAILED",_),$.options)??W,U=Ey.isNode(Q)?Q:new Zy.Scalar(Q);if(U.range=W.range,U.tag=Y,H?.format)U.format=H.format;return U}jy.composeCollection=Ly});var cY=f((by)=>{var pY=nD();function Ty(D,$,F){let X=$.offset,J=wy($,D.options.strict,F);if(!J)return{value:"",type:null,comment:"",range:[X,X,X]};let G=J.mode===">"?pY.Scalar.BLOCK_FOLDED:pY.Scalar.BLOCK_LITERAL,Y=$.source?Sy($.source):[],B=Y.length;for(let C=Y.length-1;C>=0;--C){let K=Y[C][1];if(K===""||K==="\r")B=C;else break}if(B===0){let C=J.chomp==="+"&&Y.length>0?`
|
|
191
|
-
`.repeat(Math.max(1,Y.length-1)):"",K=X+J.length;if($.source)K+=$.source.length;return{value:C,type:G,comment:J.comment,range:[X,K,K]}}let H=$.indent+J.indent,W=$.offset+J.length,Q=0;for(let C=0;C<B;++C){let[K,R]=Y[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(Q=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=Y.length-1;C>=B;--C)if(Y[C][0].length>H)B=C+1;let U="",_="",A=!1;for(let C=0;C<Q;++C)U+=Y[C][0].slice(H)+`
|
|
192
|
-
`;for(let C=Q;C<B;++C){let[K,R]=Y[C];W+=K.length+R.length+1;let z=R[R.length-1]==="\r";if(z)R=R.slice(0,-1);if(R&&K.length<H){let S=`Block scalar lines must not be less indented than their ${J.indent?"explicit indentation indicator":"first line"}`;F(W-R.length-(z?2:1),"BAD_INDENT",S),K=""}if(G===pY.Scalar.BLOCK_LITERAL)U+=_+K.slice(H)+R,_=`
|
|
193
|
-
`;else if(K.length>H||R[0]==="\t"){if(_===" ")_=`
|
|
194
|
-
`;else if(!A&&_===`
|
|
195
|
-
`)_=`
|
|
196
|
-
|
|
197
|
-
`;U+=_+K.slice(H)+R,_=`
|
|
198
|
-
`,A=!0}else if(R==="")if(_===`
|
|
199
|
-
`)U+=`
|
|
200
|
-
`;else _=`
|
|
201
|
-
`;else U+=_+R,_=" ",A=!1}switch(J.chomp){case"-":break;case"+":for(let C=B;C<Y.length;++C)U+=`
|
|
202
|
-
`+Y[C][0].slice(H);if(U[U.length-1]!==`
|
|
203
|
-
`)U+=`
|
|
204
|
-
`;break;default:U+=`
|
|
205
|
-
`}let O=X+J.length+$.source.length;return{value:U,type:G,comment:J.comment,range:[X,O,O]}}function wy({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],G=J[0],Y=0,B="",H=-1;for(let _=1;_<J.length;++_){let A=J[_];if(!B&&(A==="-"||A==="+"))B=A;else{let O=Number(A);if(!Y&&O)Y=O;else if(H===-1)H=D+_}}if(H!==-1)X(H,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${J}`);let W=!1,Q="",U=J.length;for(let _=1;_<$.length;++_){let A=$[_];switch(A.type){case"space":W=!0;case"newline":U+=A.source.length;break;case"comment":if(F&&!W)X(A,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");U+=A.source.length,Q=A.source.substring(1);break;case"error":X(A,"UNEXPECTED_TOKEN",A.message),U+=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")U+=C.length}}}return{mode:G,indent:Y,chomp:B,comment:Q,length:U}}function Sy(D){let $=D.split(/\n( *)/),F=$[0],X=F.match(/^( *)/),G=[X?.[1]?[X[1],F.slice(X[1].length)]:["",F]];for(let Y=1;Y<$.length;Y+=2)G.push([$[Y],$[Y+1]]);return G}by.resolveBlockScalar=Ty});var lY=f((py)=>{var dY=nD(),ky=n6();function vy(D,$,F){let{offset:X,type:J,source:G,end:Y}=D,B,H,W=(_,A,O)=>F(X+_,A,O);switch(J){case"scalar":B=dY.Scalar.PLAIN,H=xy(G,W);break;case"single-quoted-scalar":B=dY.Scalar.QUOTE_SINGLE,H=hy(G,W);break;case"double-quoted-scalar":B=dY.Scalar.QUOTE_DOUBLE,H=gy(G,W);break;default:return F(D,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${J}`),{value:"",type:null,comment:"",range:[X,X+G.length,X+G.length]}}let Q=X+G.length,U=ky.resolveEnd(Y,Q,$,F);return{value:H,type:B,comment:U.comment,range:[X,Q,U.offset]}}function xy(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 rO(D)}function hy(D,$){if(D[D.length-1]!=="'"||D.length===1)$(D.length,"MISSING_CHAR","Missing closing 'quote");return rO(D.slice(1,-1)).replace(/''/g,"'")}function rO(D){let $,F;try{$=new RegExp(`(.*?)(?<![ ])[ ]*\r?
|
|
206
|
-
`,"sy"),F=new RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
|
|
207
|
-
`,"sy")}catch{$=/(.*?)[ \t]*\r?\n/sy,F=/[ \t]*(.*?)[ \t]*\r?\n/sy}let X=$.exec(D);if(!X)return D;let J=X[1],G=" ",Y=$.lastIndex;F.lastIndex=Y;while(X=F.exec(D)){if(X[1]==="")if(G===`
|
|
208
|
-
`)J+=G;else G=`
|
|
209
|
-
`;else J+=G+X[1],G=" ";Y=F.lastIndex}let B=/[ \t]*(.*)/sy;return B.lastIndex=Y,X=B.exec(D),J+G+(X?.[1]??"")}function gy(D,$){let F="";for(let X=1;X<D.length-1;++X){let J=D[X];if(J==="\r"&&D[X+1]===`
|
|
210
|
-
`)continue;if(J===`
|
|
211
|
-
`){let{fold:G,offset:Y}=yy(D,X);F+=G,X=Y}else if(J==="\\"){let G=D[++X],Y=uy[G];if(Y)F+=Y;else if(G===`
|
|
212
|
-
`){G=D[X+1];while(G===" "||G==="\t")G=D[++X+1]}else if(G==="\r"&&D[X+1]===`
|
|
213
|
-
`){G=D[++X+1];while(G===" "||G==="\t")G=D[++X+1]}else if(G==="x"||G==="u"||G==="U"){let B={x:2,u:4,U:8}[G];F+=my(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 G=X,Y=D[X+1];while(Y===" "||Y==="\t")Y=D[++X+1];if(Y!==`
|
|
214
|
-
`&&!(Y==="\r"&&D[X+2]===`
|
|
215
|
-
`))F+=X>G?D.slice(G,X+1):J}else F+=J}if(D[D.length-1]!=='"'||D.length===1)$(D.length,"MISSING_CHAR",'Missing closing "quote');return F}function yy(D,$){let F="",X=D[$+1];while(X===" "||X==="\t"||X===`
|
|
216
|
-
`||X==="\r"){if(X==="\r"&&D[$+2]!==`
|
|
217
|
-
`)break;if(X===`
|
|
218
|
-
`)F+=`
|
|
219
|
-
`;$+=1,X=D[$+1]}if(!F)F=" ";return{fold:F,offset:$}}var uy={"0":"\x00",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
|
|
220
|
-
`,r:"\r",t:"\t",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\","\t":"\t"};function my(D,$,F,X){let J=D.substr($,F),Y=J.length===F&&/^[0-9a-fA-F]+$/.test(J)?parseInt(J,16):NaN;if(isNaN(Y)){let B=D.substr($-2,F+2);return X($-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${B}`),B}return String.fromCodePoint(Y)}py.resolveFlowScalar=vy});var aO=f((ry)=>{var L1=_D(),oO=nD(),dy=cY(),ly=lY();function iy(D,$,F,X){let{value:J,type:G,comment:Y,range:B}=$.type==="block-scalar"?dy.resolveBlockScalar(D,$,X):ly.resolveFlowScalar($,D.options.strict,X),H=F?D.directives.tagName(F.source,(U)=>X(F,"TAG_RESOLVE_FAILED",U)):null,W;if(D.options.stringKeys&&D.atKey)W=D.schema[L1.SCALAR];else if(H)W=ny(D.schema,J,H,F,X);else if($.type==="scalar")W=sy(D,J,$,X);else W=D.schema[L1.SCALAR];let Q;try{let U=W.resolve(J,(_)=>X(F??$,"TAG_RESOLVE_FAILED",_),D.options);Q=L1.isScalar(U)?U:new oO.Scalar(U)}catch(U){let _=U instanceof Error?U.message:String(U);X(F??$,"TAG_RESOLVE_FAILED",_),Q=new oO.Scalar(J)}if(Q.range=B,Q.source=J,G)Q.type=G;if(H)Q.tag=H;if(W.format)Q.format=W.format;if(Y)Q.comment=Y;return Q}function ny(D,$,F,X,J){if(F==="!")return D[L1.SCALAR];let G=[];for(let B of D.tags)if(!B.collection&&B.tag===F)if(B.default&&B.test)G.push(B);else return B;for(let B of G)if(B.test?.test($))return B;let Y=D.knownTags[F];if(Y&&!Y.collection)return D.tags.push(Object.assign({},Y,{default:!1,test:void 0})),Y;return J(X,"TAG_RESOLVE_FAILED",`Unresolved tag: ${F}`,F!=="tag:yaml.org,2002:str"),D[L1.SCALAR]}function sy({atKey:D,directives:$,schema:F},X,J,G){let Y=F.tags.find((B)=>(B.default===!0||D&&B.default==="key")&&B.test?.test(X))||F[L1.SCALAR];if(F.compat){let B=F.compat.find((H)=>H.default&&H.test?.test(X))??F[L1.SCALAR];if(Y.tag!==B.tag){let H=$.tagString(Y.tag),W=$.tagString(B.tag),Q=`Value may be parsed as either ${H} or ${W}`;G(J,"TAG_RESOLVE_FAILED",Q,!0)}}return Y}ry.composeScalar=iy});var tO=f((ty)=>{function ay(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}ty.emptyScalarPosition=ay});var $R=f((Bu)=>{var Du=I9(),$u=_D(),Fu=sO(),eO=aO(),Xu=n6(),Ju=tO(),Yu={composeNode:DR,composeEmptyNode:iY};function DR(D,$,F,X){let J=D.atKey,{spaceBefore:G,comment:Y,anchor:B,tag:H}=F,W,Q=!0;switch($.type){case"alias":if(W=Gu(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=eO.composeScalar(D,$,H,X),B)W.anchor=B.source.substring(1);break;case"block-map":case"block-seq":case"flow-collection":try{if(W=Fu.composeCollection(Yu,D,$,F,X),B)W.anchor=B.source.substring(1)}catch(U){let _=U instanceof Error?U.message:String(U);X($,"RESOURCE_EXHAUSTION",_)}break;default:{let U=$.type==="error"?$.message:`Unsupported token (type: ${$.type})`;X($,"UNEXPECTED_TOKEN",U),Q=!1}}if(W??(W=iY(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&&(!$u.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(G)W.spaceBefore=!0;if(Y)if($.type==="scalar"&&$.source==="")W.comment=Y;else W.commentBefore=Y;if(D.options.keepSourceTokens&&Q)W.srcToken=$;return W}function iY(D,$,F,X,{spaceBefore:J,comment:G,anchor:Y,tag:B,end:H},W){let Q={type:"scalar",offset:Ju.emptyScalarPosition($,F,X),indent:-1,source:""},U=eO.composeScalar(D,Q,B,W);if(Y){if(U.anchor=Y.source.substring(1),U.anchor==="")W(Y,"BAD_ALIAS","Anchor cannot be an empty string")}if(J)U.spaceBefore=!0;if(G)U.comment=G,U.range[2]=H;return U}function Gu({options:D},{offset:$,source:F,end:X},J){let G=new Du.Alias(F.substring(1));if(G.source==="")J($,"BAD_ALIAS","Alias cannot be an empty string");if(G.source.endsWith(":"))J($+F.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let Y=$+F.length,B=Xu.resolveEnd(X,Y,D.strict,J);if(G.range=[$,Y,B.offset],B.comment)G.comment=B.comment;return G}Bu.composeEmptyNode=iY;Bu.composeNode=DR});var XR=f((Au)=>{var Vu=c9(),FR=$R(),Qu=n6(),Uu=l9();function _u(D,$,{offset:F,start:X,value:J,end:G},Y){let B=Object.assign({_directives:$},D),H=new Vu.Document(void 0,B),W={atKey:!1,atRoot:!0,directives:H.directives,options:H.options,schema:H.schema},Q=Uu.resolveProps(X,{indicator:"doc-start",next:J??G?.[0],offset:F,onError:Y,parentIndent:0,startOnNewline:!0});if(Q.found){if(H.directives.docStart=!0,J&&(J.type==="block-map"||J.type==="block-seq")&&!Q.hasNewline)Y(Q.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")}H.contents=J?FR.composeNode(W,J,Q,Y):FR.composeEmptyNode(W,Q.end,X,null,Q,Y);let U=H.contents.range[2],_=Qu.resolveEnd(G,U,!1,Y);if(_.comment)H.comment=_.comment;return H.range=[F,U,_.offset],H}Au.composeDoc=_u});var nY=f((Mu)=>{var Cu=Q8("process"),Ou=aJ(),Ru=c9(),i9=d9(),JR=_D(),Eu=XR(),Zu=n6();function n9(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 YR(D){let $="",F=!1,X=!1;for(let J=0;J<D.length;++J){let G=D[J];switch(G[0]){case"#":$+=($===""?"":X?`
|
|
221
|
-
|
|
222
|
-
`:`
|
|
223
|
-
`)+(G.substring(1)||" "),F=!0,X=!1;break;case"%":if(D[J+1]?.[0]!=="#")J+=1;F=!1;break;default:if(!F)X=!0;F=!1}}return{comment:$,afterEmptyLine:X}}class GR{constructor(D={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=($,F,X,J)=>{let G=n9($);if(J)this.warnings.push(new i9.YAMLWarning(G,F,X));else this.errors.push(new i9.YAMLParseError(G,F,X))},this.directives=new Ou.Directives({version:D.version||"1.2"}),this.options=D}decorate(D,$){let{comment:F,afterEmptyLine:X}=YR(this.prelude);if(F){let J=D.contents;if($)D.comment=D.comment?`${D.comment}
|
|
224
|
-
${F}`:F;else if(X||D.directives.docStart||!J)D.commentBefore=F;else if(JR.isCollection(J)&&!J.flow&&J.items.length>0){let G=J.items[0];if(JR.isPair(G))G=G.key;let Y=G.commentBefore;G.commentBefore=Y?`${F}
|
|
225
|
-
${Y}`:F}else{let G=J.commentBefore;J.commentBefore=G?`${F}
|
|
226
|
-
${G}`: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:YR(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(Cu.env.LOG_STREAM)console.dir(D,{depth:null});switch(D.type){case"directive":this.directives.add(D.source,($,F,X)=>{let J=n9(D);J[0]+=$,this.onError(J,"BAD_DIRECTIVE",F,X)}),this.prelude.push(D.source),this.atDirectives=!0;break;case"document":{let $=Eu.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 i9.YAMLParseError(n9(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 i9.YAMLParseError(n9(D),"UNEXPECTED_TOKEN","Unexpected doc-end without preceding document"));break}this.doc.directives.docEnd=!0;let $=Zu.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}
|
|
227
|
-
${$.comment}`:$.comment}this.doc.range[2]=$.offset;break}default:this.errors.push(new i9.YAMLParseError(n9(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 Ru.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}}}Mu.Composer=GR});var WR=f((wu)=>{var Nu=cY(),Pu=lY(),qu=d9(),BR=b9();function Lu(D,$=!0,F){if(D){let X=(J,G,Y)=>{let B=typeof J==="number"?J:Array.isArray(J)?J[0]:J.offset;if(F)F(B,G,Y);else throw new qu.YAMLParseError([B,B+1],G,Y)};switch(D.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return Pu.resolveFlowScalar(D,$,X);case"block-scalar":return Nu.resolveBlockScalar({options:{strict:$}},D,X)}}return null}function ju(D,$){let{implicitKey:F=!1,indent:X,inFlow:J=!1,offset:G=-1,type:Y="PLAIN"}=$,B=BR.stringifyString({type:Y,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:`
|
|
228
|
-
`}];switch(B[0]){case"|":case">":{let W=B.indexOf(`
|
|
229
|
-
`),Q=B.substring(0,W),U=B.substring(W+1)+`
|
|
230
|
-
`,_=[{type:"block-scalar-header",offset:G,indent:X,source:Q}];if(!HR(_,H))_.push({type:"newline",offset:-1,indent:X,source:`
|
|
231
|
-
`});return{type:"block-scalar",offset:G,indent:X,props:_,source:U}}case'"':return{type:"double-quoted-scalar",offset:G,indent:X,source:B,end:H};case"'":return{type:"single-quoted-scalar",offset:G,indent:X,source:B,end:H};default:return{type:"scalar",offset:G,indent:X,source:B,end:H}}}function Iu(D,$,F={}){let{afterKey:X=!1,implicitKey:J=!1,inFlow:G=!1,type:Y}=F,B="indent"in D?D.indent:null;if(X&&typeof B==="number")B+=2;if(!Y)switch(D.type){case"single-quoted-scalar":Y="QUOTE_SINGLE";break;case"double-quoted-scalar":Y="QUOTE_DOUBLE";break;case"block-scalar":{let W=D.props[0];if(W.type!=="block-scalar-header")throw Error("Invalid block scalar header");Y=W.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:Y="PLAIN"}let H=BR.stringifyString({type:Y,value:$},{implicitKey:J||B===null,indent:B!==null&&B>0?" ".repeat(B):"",inFlow:G,options:{blockQuote:!0,lineWidth:-1}});switch(H[0]){case"|":case">":Tu(D,H);break;case'"':sY(D,H,"double-quoted-scalar");break;case"'":sY(D,H,"single-quoted-scalar");break;default:sY(D,H,"scalar")}}function Tu(D,$){let F=$.indexOf(`
|
|
232
|
-
`),X=$.substring(0,F),J=$.substring(F+1)+`
|
|
233
|
-
`;if(D.type==="block-scalar"){let G=D.props[0];if(G.type!=="block-scalar-header")throw Error("Invalid block scalar header");G.source=X,D.source=J}else{let{offset:G}=D,Y="indent"in D?D.indent:-1,B=[{type:"block-scalar-header",offset:G,indent:Y,source:X}];if(!HR(B,"end"in D?D.end:void 0))B.push({type:"newline",offset:-1,indent:Y,source:`
|
|
234
|
-
`});for(let H of Object.keys(D))if(H!=="type"&&H!=="offset")delete D[H];Object.assign(D,{type:"block-scalar",indent:Y,props:B,source:J})}}function HR(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 sY(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 G of X)G.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:`
|
|
235
|
-
`};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((G)=>G.type==="space"||G.type==="comment"||G.type==="newline"):[];for(let G of Object.keys(D))if(G!=="type"&&G!=="offset")delete D[G];Object.assign(D,{type:F,indent:X,source:$,end:J})}}}wu.createScalarToken=ju;wu.resolveAsScalar=Lu;wu.setScalarValue=Iu});var VR=f((vu)=>{var ku=(D)=>("type"in D)?t5(D):a5(D);function t5(D){switch(D.type){case"block-scalar":{let $="";for(let F of D.props)$+=t5(F);return $+D.source}case"block-map":case"block-seq":{let $="";for(let F of D.items)$+=a5(F);return $}case"flow-collection":{let $=D.start.source;for(let F of D.items)$+=a5(F);for(let F of D.end)$+=F.source;return $}case"document":{let $=a5(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 a5({start:D,key:$,sep:F,value:X}){let J="";for(let G of D)J+=G.source;if($)J+=t5($);if(F)for(let G of F)J+=G.source;if(X)J+=t5(X);return J}vu.stringify=ku});var _R=f((gu)=>{var rY=Symbol("break visit"),hu=Symbol("skip children"),QR=Symbol("remove item");function j1(D,$){if("type"in D&&D.type==="document")D={start:D.start,value:D.value};UR(Object.freeze([]),D,$)}j1.BREAK=rY;j1.SKIP=hu;j1.REMOVE=QR;j1.itemAtPath=(D,$)=>{let F=D;for(let[X,J]of $){let G=F?.[X];if(G&&"items"in G)F=G.items[J];else return}return F};j1.parentCollection=(D,$)=>{let F=j1.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 UR(D,$,F){let X=F($,D);if(typeof X==="symbol")return X;for(let J of["key","value"]){let G=$[J];if(G&&"items"in G){for(let Y=0;Y<G.items.length;++Y){let B=UR(Object.freeze(D.concat([[J,Y]])),G.items[Y],F);if(typeof B==="number")Y=B-1;else if(B===rY)return rY;else if(B===QR)G.items.splice(Y,1),Y-=1}if(typeof X==="function"&&J==="key")X=X($,D)}}return typeof X==="function"?X($,D):X}gu.visit=j1});var e5=f((iu)=>{var oY=WR(),uu=VR(),mu=_R(),aY="\uFEFF",tY="\x02",eY="\x18",DG="\x1F",pu=(D)=>!!D&&("items"in D),cu=(D)=>!!D&&(D.type==="scalar"||D.type==="single-quoted-scalar"||D.type==="double-quoted-scalar"||D.type==="block-scalar");function du(D){switch(D){case aY:return"<BOM>";case tY:return"<DOC>";case eY:return"<FLOW_END>";case DG:return"<SCALAR>";default:return JSON.stringify(D)}}function lu(D){switch(D){case aY:return"byte-order-mark";case tY:return"doc-mode";case eY:return"flow-error-end";case DG:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
|
|
236
|
-
`:case`\r
|
|
237
|
-
`: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}iu.createScalarToken=oY.createScalarToken;iu.resolveAsScalar=oY.resolveAsScalar;iu.setScalarValue=oY.setScalarValue;iu.stringify=uu.stringify;iu.visit=mu.visit;iu.BOM=aY;iu.DOCUMENT=tY;iu.FLOW_END=eY;iu.SCALAR=DG;iu.isCollection=pu;iu.isScalar=cu;iu.prettyToken=du;iu.tokenType=lu});var FG=f((Hm)=>{var s9=e5();function j2(D){switch(D){case void 0:case" ":case`
|
|
238
|
-
`:case"\r":case"\t":return!0;default:return!1}}var AR=new Set("0123456789ABCDEFabcdef"),Gm=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),D$=new Set(",[]{}"),Bm=new Set(` ,[]{}
|
|
239
|
-
\r `),$G=(D)=>!D||Bm.has(D);class KR{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(!$||$==="#"||$===`
|
|
240
|
-
`)return!0;if($==="\r")return this.buffer[D+1]===`
|
|
241
|
-
`;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===`
|
|
242
|
-
`||!X&&!this.atEnd)return D+F+1}return $===`
|
|
243
|
-
`||F>=this.indentNext||!$&&!this.atEnd?D+F:-1}if($==="-"||$==="."){let F=this.buffer.substr(D,3);if((F==="---"||F==="...")&&j2(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(`
|
|
244
|
-
`,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]===s9.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 s9.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(($==="---"||$==="...")&&j2(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&&!j2(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===":")&&j2($)){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($G),"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("..."))&&j2(X[3])){if(!(F===this.indentNext-1&&this.flowLevel===1&&(X[0]==="]"||X[0]==="}")))return this.flowLevel=0,yield s9.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($G),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let G=this.charAt(1);if(this.flowKey||j2(G)||G===",")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(`
|
|
245
|
-
`,this.pos);if(X!==-1){while(X!==-1){let J=this.continueScalar(X+1);if(J===-1)break;X=F.indexOf(`
|
|
246
|
-
`,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(($)=>j2($)||$==="#")}*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`
|
|
247
|
-
`:D=J,$=0;break;case"\r":{let G=this.buffer[J+1];if(!G&&!this.atEnd)return this.setNext("block-scalar");if(G===`
|
|
248
|
-
`)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(`
|
|
249
|
-
`,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===`
|
|
250
|
-
`)F=this.buffer[++X];D=X-1}else if(!this.blockScalarKeep)do{let J=D-1,G=this.buffer[J];if(G==="\r")G=this.buffer[--J];let Y=J;while(G===" ")G=this.buffer[--J];if(G===`
|
|
251
|
-
`&&J>=this.pos&&J+1+$>Y)D=J;else break}while(!0);return yield s9.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(j2(J)||D&&D$.has(J))break;$=F}else if(j2(X)){let J=this.buffer[F+1];if(X==="\r")if(J===`
|
|
252
|
-
`)F+=1,X=`
|
|
253
|
-
`,J=this.buffer[F+1];else $=F;if(J==="#"||D&&D$.has(J))break;if(X===`
|
|
254
|
-
`){let G=this.continueScalar(F+1);if(G===-1)break;F=Math.max(F,G-2)}}else{if(D&&D$.has(X))break;$=F}if(!X&&!this.atEnd)return this.setNext("plain-scalar");return yield s9.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($G))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let D=this.flowLevel>0,$=this.charAt(1);if(j2($)||D&&D$.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(!j2($)&&$!==">")$=this.buffer[++D];return yield*this.pushToIndex($===">"?D+1:D,!1)}else{let D=this.pos+1,$=this.buffer[D];while($)if(Gm.has($))$=this.buffer[++D];else if($==="%"&&AR.has(this.buffer[D+1])&&AR.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===`
|
|
255
|
-
`)return yield*this.pushCount(1);else if(D==="\r"&&this.charAt(1)===`
|
|
256
|
-
`)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)}}Hm.Lexer=KR});var XG=f((Vm)=>{class CR{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}}}}Vm.LineCounter=CR});var JG=f((Am)=>{var Um=Q8("process"),OR=e5(),_m=FG();function p8(D,$){for(let F=0;F<D.length;++F)if(D[F].type===$)return!0;return!1}function RR(D){for(let $=0;$<D.length;++$)switch(D[$].type){case"space":case"comment":case"newline":break;default:return $}return-1}function ZR(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 s6(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 ER(D){if(D.start.type==="flow-seq-start"){for(let $ of D.items)if($.sep&&!$.value&&!p8($.start,"explicit-key-ind")&&!p8($.sep,"map-value-ind")){if($.key)$.value=$.key;if(delete $.key,ZR($.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 MR{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 _m.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,Um.env.LOG_TOKENS)console.log("|",OR.prettyToken(D));if(this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=D.length;return}let $=OR.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")ER($);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&&RR(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(RR(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=s6($),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(`
|
|
257
|
-
`)+1;while($!==0)this.onNewLine(this.offset+$),$=this.source.indexOf(`
|
|
258
|
-
`,$)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(D){let $=D.items[D.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,$.value){let F="end"in $.value?$.value.end:void 0;if((Array.isArray(F)?F[F.length-1]:void 0)?.type==="comment")F?.push(this.sourceToken);else D.items.push({start:[this.sourceToken]})}else if($.sep)$.sep.push(this.sourceToken);else $.start.push(this.sourceToken);return;case"space":case"comment":if($.value)D.items.push({start:[this.sourceToken]});else if($.sep)$.sep.push(this.sourceToken);else{if(this.atIndentedComment($.start,D.indent)){let X=D.items[D.items.length-2]?.value?.end;if(Array.isArray(X)){Array.prototype.push.apply(X,$.start),X.push(this.sourceToken),D.items.pop();return}}$.start.push(this.sourceToken)}return}if(this.indent>=D.indent){let F=!this.onKeyLine&&this.indent===D.indent,X=F&&($.sep||$.explicitKey)&&this.type!=="seq-item-ind",J=[];if(X&&$.sep&&!$.value){let G=[];for(let Y=0;Y<$.sep.length;++Y){let B=$.sep[Y];switch(B.type){case"newline":G.push(Y);break;case"space":break;case"comment":if(B.indent>D.indent)G.length=0;break;default:G.length=0}}if(G.length>=2)J=$.sep.splice(G[1])}switch(this.type){case"anchor":case"tag":if(X||$.value)J.push(this.sourceToken),D.items.push({start:J}),this.onKeyLine=!0;else if($.sep)$.sep.push(this.sourceToken);else $.start.push(this.sourceToken);return;case"explicit-key-ind":if(!$.sep&&!$.explicitKey)$.start.push(this.sourceToken),$.explicitKey=!0;else if(X||$.value)J.push(this.sourceToken),D.items.push({start:J,explicitKey:!0});else this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]});this.onKeyLine=!0;return;case"map-value-ind":if($.explicitKey)if(!$.sep)if(p8($.start,"newline"))Object.assign($,{key:null,sep:[this.sourceToken]});else{let G=s6($.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:G,key:null,sep:[this.sourceToken]}]})}else if($.value)D.items.push({start:[],key:null,sep:[this.sourceToken]});else if(p8($.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(ZR($.key)&&!p8($.sep,"newline")){let G=s6($.start),Y=$.key,B=$.sep;B.push(this.sourceToken),delete $.key,delete $.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:G,key:Y,sep:B}]})}else if(J.length>0)$.sep=$.sep.concat(J,this.sourceToken);else $.sep.push(this.sourceToken);else if(!$.sep)Object.assign($,{key:null,sep:[this.sourceToken]});else if($.value||X)D.items.push({start:J,key:null,sep:[this.sourceToken]});else if(p8($.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]});else $.sep.push(this.sourceToken);this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let G=this.flowScalar(this.type);if(X||$.value)D.items.push({start:J,key:G,sep:[]}),this.onKeyLine=!0;else if($.sep)this.stack.push(G);else Object.assign($,{key:G,sep:[]}),this.onKeyLine=!0;return}default:{let G=this.startBlockValue(D);if(G){if(G.type==="block-seq"){if(!$.explicitKey&&$.sep&&!p8($.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else if(F)D.items.push({start:J});this.stack.push(G);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(D){let $=D.items[D.items.length-1];switch(this.type){case"newline":if($.value){let F="end"in $.value?$.value.end:void 0;if((Array.isArray(F)?F[F.length-1]:void 0)?.type==="comment")F?.push(this.sourceToken);else D.items.push({start:[this.sourceToken]})}else $.start.push(this.sourceToken);return;case"space":case"comment":if($.value)D.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment($.start,D.indent)){let X=D.items[D.items.length-2]?.value?.end;if(Array.isArray(X)){Array.prototype.push.apply(X,$.start),X.push(this.sourceToken),D.items.pop();return}}$.start.push(this.sourceToken)}return;case"anchor":case"tag":if($.value||this.indent<=D.indent)break;$.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==D.indent)break;if($.value||p8($.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=s6(X);ER(D);let G=D.end.splice(1,D.end.length);G.push(this.sourceToken);let Y={type:"block-map",offset:D.offset,indent:D.indent,items:[{start:J,key:D,sep:G}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=Y}else yield*this.lineEnd(D)}}flowScalar(D){if(this.onNewLine){let $=this.source.indexOf(`
|
|
259
|
-
`)+1;while($!==0)this.onNewLine(this.offset+$),$=this.source.indexOf(`
|
|
260
|
-
`,$)+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=s6($);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=s6($);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()}}}Am.Parser=MR});var LR=f((Nm)=>{var zR=nY(),Cm=c9(),r9=d9(),Om=XY(),Rm=_D(),Em=XG(),NR=JG();function PR(D){let $=D.prettyErrors!==!1;return{lineCounter:D.lineCounter||$&&new Em.LineCounter||null,prettyErrors:$}}function Zm(D,$={}){let{lineCounter:F,prettyErrors:X}=PR($),J=new NR.Parser(F?.addNewLine),G=new zR.Composer($),Y=Array.from(G.compose(J.parse(D)));if(X&&F)for(let B of Y)B.errors.forEach(r9.prettifyError(D,F)),B.warnings.forEach(r9.prettifyError(D,F));if(Y.length>0)return Y;return Object.assign([],{empty:!0},G.streamInfo())}function qR(D,$={}){let{lineCounter:F,prettyErrors:X}=PR($),J=new NR.Parser(F?.addNewLine),G=new zR.Composer($),Y=null;for(let B of G.compose(J.parse(D),!0,D.length))if(!Y)Y=B;else if(Y.options.logLevel!=="silent"){Y.errors.push(new r9.YAMLParseError(B.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}if(X&&F)Y.errors.forEach(r9.prettifyError(D,F)),Y.warnings.forEach(r9.prettifyError(D,F));return Y}function Mm(D,$,F){let X=void 0;if(typeof $==="function")X=$;else if(F===void 0&&$&&typeof $==="object")F=$;let J=qR(D,F);if(!J)return null;if(J.warnings.forEach((G)=>Om.warn(J.options.logLevel,G)),J.errors.length>0)if(J.options.logLevel!=="silent")throw J.errors[0];else J.errors=[];return J.toJS(Object.assign({reviver:X},F))}function zm(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(Rm.isDocument(D)&&!X)return D.toString(F);return new Cm.Document(D,X,F).toString(F)}Nm.parse=Mm;Nm.parseAllDocuments=Zm;Nm.parseDocument=qR;Nm.stringify=zm});var Im,Tm,wm,YG,Sm,c8,bm,fm,km,vm,m9D,xm,hm,gm,F$,jR,ym,um,mm,pm,cm,dm,lm,im,nm,sm,rm,om,am,tm,em,Dp,$p,Fp,Xp,Jp,Yp,Gp,X$,Bp,Hp,GG,Wp,Vp;var BG=M(()=>{Im=nY(),Tm=c9(),wm=SY(),YG=d9(),Sm=I9(),c8=_D(),bm=g8(),fm=nD(),km=u8(),vm=m8(),m9D=e5(),xm=FG(),hm=XG(),gm=JG(),F$=LR(),jR=L9();ym=Im.Composer,um=Tm.Document,mm=wm.Schema,pm=YG.YAMLError,cm=YG.YAMLParseError,dm=YG.YAMLWarning,lm=Sm.Alias,im=c8.isAlias,nm=c8.isCollection,sm=c8.isDocument,rm=c8.isMap,om=c8.isNode,am=c8.isPair,tm=c8.isScalar,em=c8.isSeq,Dp=bm.Pair,$p=fm.Scalar,Fp=km.YAMLMap,Xp=vm.YAMLSeq,Jp=xm.Lexer,Yp=hm.LineCounter,Gp=gm.Parser,X$=F$.parse,Bp=F$.parseAllDocuments,Hp=F$.parseDocument,GG=F$.stringify,Wp=jR.visit,Vp=jR.visitAsync});var Qp,Up,_p,Ap,Kp,Cp,TR,Op,Rp,IR,Ep,Zp,Mp,wR;var SR=M(()=>{mD();Qp=V.object({id:V.string().min(1),type:V.literal("filesystem"),priority:V.number().int(),readOnly:V.boolean(),config:V.object({home:V.string().min(1).optional()})}),Up=V.object({id:V.string().min(1),type:V.literal("cloud-gateway"),priority:V.number().int(),readOnly:V.boolean(),config:V.object({url:V.string().min(1),token:V.string(),defaultCategory:V.string().optional(),defaultTypeId:V.string().optional()})}),_p=V.discriminatedUnion("type",[Qp,Up]),Ap=V.object({binary:V.string().min(1).optional(),extraArgs:V.array(V.string()).optional(),env:V.record(V.string()).optional(),cliVersion:V.string().min(1).optional()}).strict(),Kp=V.record(V.unknown()).and(V.object({cmd:Ap.optional()}).partial()),Cp=V.enum(["rate-limit","timeout","auth","network","server-5xx","unknown"]),TR=V.lazy(()=>V.object({engine:V.enum(["http","mcp","cli","claude-code","acp","codex","cursor"]),variant:V.string().min(1),overrides:Kp.optional(),modelId:V.string().min(1).optional(),reasoningId:V.string().min(1).optional(),permissionPolicy:V.enum(["auto","supervised","plan"]).optional(),fallbacks:V.array(V.object({executor:TR,onErrorKinds:V.array(Cp).min(1),maxRetries:V.number().int().min(1).optional()})).optional()})),Op=V.discriminatedUnion("channel",[V.object({channel:V.literal("web"),inboundToken:V.string().optional()}),V.object({channel:V.literal("line"),channelSecret:V.string(),channelAccessToken:V.string()}),V.object({channel:V.literal("telegram"),botToken:V.string(),webhookSecretToken:V.string().optional()}),V.object({channel:V.literal("lark"),appId:V.string(),appSecret:V.string(),encryptKey:V.string(),verificationToken:V.string()}),V.object({channel:V.literal("whatsapp"),phoneNumberId:V.string(),accessToken:V.string(),appSecret:V.string(),verifyToken:V.string()})]),Rp=V.object({channel:V.enum(["web","line","telegram","lark","whatsapp"]),enabled:V.boolean(),credentials:Op,profile:V.object({displayName:V.string().optional(),avatarUrl:V.string().optional()}).optional()}).refine((D)=>D.channel===D.credentials.channel,{message:"channel and credentials.channel must match",path:["credentials","channel"]}),IR=V.enum(["auto","ask","deny"]),Ep=V.object({default:IR,rules:V.array(V.object({pattern:V.string().min(1),action:IR}))}),Zp=V.object({enabled:V.boolean().optional(),triggerTokens:V.number().int().min(1).max(2000000).optional(),maxSummaryMessages:V.number().int().min(1).max(500).optional(),memoryFlush:V.object({enabled:V.boolean().optional()}).optional()}),Mp=V.object({contextWindowTokens:V.number().int().min(512).max(2000000).optional(),reserveTokens:V.number().int().min(0).max(1e6).optional(),keepRecentTokens:V.number().int().min(1).max(2000000).optional(),maxHistoryMessages:V.number().int().min(1).max(200).optional(),compaction:Zp.optional()}).superRefine((D,$)=>{if(D.contextWindowTokens!==void 0&&D.reserveTokens!==void 0&&D.reserveTokens>=D.contextWindowTokens)$.addIssue({code:V.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:V.ZodIssueCode.custom,path:["compaction","triggerTokens"],message:"compaction.triggerTokens must not exceed contextWindowTokens"})}),wR=V.object({brains:V.array(_p),brainWriteTarget:V.string(),brainRetrieval:V.enum(["merge-by-priority","first-match"]),executor:TR,channels:V.array(Rp),evolution:V.object({enabled:V.boolean(),observationRetentionDays:V.number().int().nonnegative()}),toolPolicy:Ep.optional(),orchestrator:Mp.optional()})});import{writeFile as zp}from"fs/promises";async function E0(D){let $=await D.select().from(z2).where(k(z2.pk,"default")).get();if(!$)throw Error("worker_config row missing \u2014 bootstrap did not run");return{config:$.configJson,version:$.version}}async function o9(D,$,F,X={}){let J=wR.safeParse(F);if(!J.success)throw new l2(J.error.issues);let G=await E0(D);if(X.ifMatchVersion!==void 0&&X.ifMatchVersion!==G.version)throw new i2(X.ifMatchVersion,G.version);let Y=J.data,B=new Set(Y8(G.config).map((A)=>A.path)),H=Y8(Y),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 Q=i4(Y),U=G.version+1,_=new Date().toISOString();return await D.update(z2).set({configJson:Q,version:U,updatedAt:_,updatedBy:"api"}).where(k(z2.pk,"default")).run(),{config:Q,version:U}}async function a9(D,$,F){let X=fW(D),J=GG({version:F,config:$});try{await zp(X,J,{encoding:"utf8"})}catch(G){E.warn(`[mirror-config] failed to write ${X}: ${String(G)}`)}}async function r6(D){let $=await o9(D.db,D.vault,D.raw,D.ifMatchVersion===void 0?{}:{ifMatchVersion:D.ifMatchVersion});await a9(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 l2,i2;var HG=M(()=>{A2();fD();JD();_0();BG();SR();l2=class l2 extends Error{issues;constructor(D,$="invalid worker config"){super($);this.issues=D;this.name="InvalidConfigError"}};i2=class i2 extends Error{expected;actual;constructor(D,$){super(`config version ${D} does not match current version ${$}`);this.expected=D;this.actual=$;this.name="ConfigVersionConflictError"}}});function J$(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 Y$($.jobId);return{job:F}}}}var Y$;var WG=M(()=>{Y$=class Y$ extends Error{jobId;constructor(D){super(`cron job ${D} \u4E0D\u5B58\u5728`);this.jobId=D;this.name="CronJobNotFoundError"}}});class VG{deps;constructor(D){this.deps=D}async handleRequest(D){let{id:$,method:F,params:X}=D;try{let J=w3(F);if(!J){this.replyError($,"unknown_method",`unknown method: ${F}`);return}if(J.routing!=="operator-to-node"){this.replyError($,"wrong_routing",`method ${F} should be handled by gateway, not node`);return}let G=J.params.safeParse(X??{});if(!G.success){this.replyError($,"invalid_params",`params schema mismatch for ${F}`,G.error.issues);return}let Y=G.data;switch(F){case ED["chat.send"].method:await this.handleChatSend($,Y);break;case ED["config.get"].method:await this.handleConfigGet($);break;case ED["config.put"].method:await this.handleConfigPut($,Y);break;case ED["token.rotate"].method:await this.handleTokenRotate($);break;case ED["logs.tail"].method:await this.handleLogsTail($,Y);break;case ED["approval.list"].method:this.handleApprovalList($);break;case ED["approval.grant"].method:this.handleApprovalGrant($,Y);break;case ED["cron.list"].method:await this.handleCronList($,Y);break;case ED["cron.add"].method:await this.handleCronAdd($,Y);break;case ED["cron.remove"].method:await this.handleCronRemove($,Y);break;case ED["cron.update"].method:await this.handleCronUpdate($,Y);break;case ED["secrets.list"].method:await this.handleSecretsList($,Y);break;case ED["secrets.put"].method:await this.handleSecretsPut($,Y);break;case ED["secrets.delete"].method:await this.handleSecretsDelete($,Y);break;case ED["engines.list"].method:await this.handleEnginesList($,Y);break;case ED["brain.test"].method:await this.handleBrainTest($,Y);break;case ED["executor.test"].method:await this.handleExecutorTest($,Y);break;case ED["channel.test"].method:await this.handleChannelTest($,Y);break;case ED["orchestrator.tasks.list"].method:await this.handleTasksList($,Y);break;case ED["orchestrator.tasks.create"].method:await this.handleTasksCreate($,Y);break;case ED["orchestrator.conversations.list"].method:await this.handleConversationsList($,Y);break;case ED["orchestrator.messages.list"].method:await this.handleMessagesList($,Y);break;case ED["workers.info"].method:await this.handleWorkersInfo($,Y);break;case ED["workers.stop"].method:await this.handleWorkersStop($,Y);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=Np(String($.content)),J=X?.body&&X.body.length>0?X.body:X?"A new session has started. Reply briefly to confirm.":String($.content),G=typeof $.conversationId==="string"?$.conversationId:void 0,Y=Pp(this.deps.workerId,G),B={workerId:this.deps.workerId,channel:"web",accountId:"sys:gateway",chatId:Y,text:J,receivedAt:new Date().toISOString(),raw:{source:"gateway",...X?{sessionReset:!0,resetCommand:X.command}:{},...$.metadata!==void 0?{metadata:$.metadata}:{}}};this.deps.getRuntime().orchestrator.ingest(B).catch((H)=>{E.warn(`[gateway-dispatcher ${this.deps.workerId}] orchestrator.ingest failed: ${String(H)}`)}),this.replyOk(D,{conversationId:Y,accepted:!0})}async handleWorkersInfo(D,$){if(!this.ensureWorkerMatch(D,$))return;if(!this.deps.handlers?.workersInfo){this.replyError(D,"method_not_implemented","workers.info handler not wired");return}let F=await this.deps.handlers.workersInfo();this.replyOk(D,F)}async handleWorkersStop(D,$){if(!this.ensureWorkerMatch(D,$))return;if(!this.deps.handlers?.workersStop){this.replyError(D,"method_not_implemented","workers.stop handler not wired");return}await this.deps.handlers.workersStop(),this.replyOk(D,{stopped:!0})}async handleConfigGet(D){if(!this.deps.handlers?.configGet){this.replyError(D,"method_not_implemented","config.get handler not wired");return}let $=await this.deps.handlers.configGet();this.replyOk(D,$)}async handleConfigPut(D,$){if(!this.deps.handlers?.configPut){this.replyError(D,"method_not_implemented","config.put handler not wired");return}let F=Number($.ifMatch),X=$.config;try{let J=await this.deps.handlers.configPut({ifMatch:F,config:X});this.replyOk(D,J)}catch(J){if(J instanceof l2){this.replyError(D,"invalid_config",J.message,{issues:J.issues});return}if(J instanceof i2){this.replyError(D,"version_conflict",J.message,{expected:J.expected,actual:J.actual});return}throw J}}async handleTokenRotate(D){if(!this.deps.handlers?.tokenRotate){this.replyError(D,"method_not_implemented","token.rotate handler not wired");return}let $=await this.deps.handlers.tokenRotate();this.replyOk(D,$)}async handleLogsTail(D,$){if(!this.deps.handlers?.logsTail){this.replyOk(D,{subscribed:!1});return}let F={};if(typeof $.follow==="boolean")F.follow=$.follow;if(typeof $.lines==="number")F.lines=$.lines;let X=await this.deps.handlers.logsTail(F);this.replyOk(D,X)}handleApprovalList(D){let $=this.deps.getRuntime().approvals;if(!$){this.replyError(D,"method_not_implemented","approval store not wired");return}let F=$.list().map((X)=>({workerId:this.deps.workerId,taskId:X.taskId,toolCallId:X.toolCallId,toolName:X.toolName,params:X.params,expiresAt:X.expiresAt}));this.replyOk(D,{approvals:F})}handleApprovalGrant(D,$){let F=this.deps.getRuntime().approvals;if(!F){this.replyError(D,"method_not_implemented","approval store not wired");return}let X=String($.taskId),J=String($.toolCallId),G=$.decision==="allow"?"allow":"deny",Y=F.grant(X,J,G);this.replyOk(D,{granted:Y})}ensureWorkerMatch(D,$){let F=String($.workerId);if(F!==this.deps.workerId)return this.replyError(D,"worker_mismatch",`targeted workerId=${F}, this node is ${this.deps.workerId}`),!1;return!0}async handleCronList(D,$){if(!this.deps.handlers?.cronList){this.replyError(D,"method_not_implemented","cron.list handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;let F=await this.deps.handlers.cronList();this.replyOk(D,F)}async handleCronAdd(D,$){if(!this.deps.handlers?.cronAdd){this.replyError(D,"method_not_implemented","cron.add handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;try{let F=await this.deps.handlers.cronAdd({job:$.job});this.replyOk(D,F)}catch(F){this.replyError(D,"invalid_cron",F instanceof Error?F.message:String(F))}}async handleCronRemove(D,$){if(!this.deps.handlers?.cronRemove){this.replyError(D,"method_not_implemented","cron.remove handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;let F=await this.deps.handlers.cronRemove({jobId:String($.jobId)});this.replyOk(D,F)}async handleCronUpdate(D,$){if(!this.deps.handlers?.cronUpdate){this.replyError(D,"method_not_implemented","cron.update handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;try{let F=await this.deps.handlers.cronUpdate({jobId:String($.jobId),patch:$.patch});this.replyOk(D,F)}catch(F){if(F instanceof Y$){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 qD){let F=$.status===404?"not_found":$.status===400?"invalid_params":"internal_error";this.replyError(D,F,$.message);return}throw $}}function Np(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 Pp(D,$){if($===void 0)return`gw:${D}:${crypto.randomUUID()}`;if($.startsWith("gw:"))return $;return`gw:conv:${$}`}var bR=M(()=>{D0();cD();JD();HG();WG()});class QG{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=t9($);if(!F)return null;let X=typeof $.delta==="string"?$.delta:"";return{name:e.AGENT_THINKING,payload:{conversationId:F,chunk:X}}}case"orchestrator.tool_call":{let F=t9($),X=$.call??{},J=d8(X.id),G=d8(X.name);if(!F||!J||!G)return null;return{name:e.AGENT_TOOL_CALL,payload:{conversationId:F,toolCallId:J,toolName:G,status:"pending",...X.arguments!==void 0?{args:X.arguments}:{}}}}case"orchestrator.finished":{let F=t9($);if(!F)return null;return{name:e.AGENT_DONE,payload:{conversationId:F,finishReason:"stop"}}}case"orchestrator.error":{let F=t9($);if(!F)return null;return{name:e.AGENT_DONE,payload:{conversationId:F,finishReason:"error"}}}case"conversation.message":{let F=t9($),X=d8($.role);if(!F||!X)return null;if(X!=="user"&&X!=="assistant"&&X!=="system")return null;return{name:e.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),G=typeof $.expiresAt==="number"?$.expiresAt:null;if(!F||!X||!J||G===null)return null;let Y=typeof $.params==="object"&&$.params!==null?$.params:{};return{name:e.APPROVAL_REQUESTED,payload:{taskId:F,toolCallId:X,toolName:J,params:Y,expiresAt:G}}}default:return null}}}function d8(D){return typeof D==="string"&&D.length>0?D:null}function t9(D){return d8(D.gatewayConversationId)??d8(D.conversationId)}var fR=M(()=>{D0()});function G$(D){let $=EC(D),F=!1,X=null,J=new QG({workerId:$.workerId,getBus:()=>D.getRuntime().bus,sendEvent:(Y)=>X?.send(Y)}),G=new VG({workerId:$.workerId,getRuntime:D.getRuntime,...D.handlers?{handlers:D.handlers}:{},sendResponse:(Y)=>X?.send(Y)});return X=new sJ({options:$,onConnected:()=>{F=!0,J.start()},onDisconnected:(Y)=>{F=!1,J.stop(),E.info(`[gateway-client ${$.workerId}] disconnected: ${Y}`)},onFrame:(Y)=>{if(Y.type==="request"){G.handleRequest(Y);return}E.warn(`[gateway-client ${$.workerId}] unexpected inbound frame type=${Y.type}`)},...D.onEnrollmentOtp?{onEnrollmentOtp:D.onEnrollmentOtp}:{},...D.onEnrollmentApproved?{onEnrollmentApproved:D.onEnrollmentApproved}:{},...D.webSocketCtor?{webSocketCtor:D.webSocketCtor}:{}}),X.start(),{async stop(){if(J.stop(),X)await X.stop(),X=null},isConnected(){return F},notifyRuntimeReloaded(){if(F)J.start()}}}async function kR(D){await D.stop()}var vR=M(()=>{JD();RC();bR();fR()});function qp(D){if(D instanceof Error)return D.message;return String(D)}async function o6(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:qp(X)}]}}}function jp(D){return Lp.has(D)}function Ip(D){if(D instanceof Error)return D.message;return String(D)}async function a6(D,$,F={}){if(!jp($))throw qD.notFound(`unknown channel '${$}'`);let X=D.runtime.channels.get($);if(!X)throw qD.notFound(`channel '${$}' is not bound or not enabled`);let J=A1($);if(F.chatId===void 0||F.text===void 0)return{sent:!1,platformResponse:{dryRun:!0,channel:$,enabled:X.enabled}};let G={channel:$,chatId:F.chatId,text:F.text};try{return await J.send(X,G),{sent:!0,platformResponse:{ok:!0}}}catch(Y){return{sent:!1,error:Ip(Y)}}}var Lp;var xR=M(()=>{cD();V9();Lp=new Set(["web","line","telegram","lark","whatsapp"])});function Tp(D){if(D instanceof Error)return D.message;return String(D)}async function wp(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}),G="";for await(let Y of J)if(Y.type==="assistant_message_delta"){if(G+=Y.delta,G.length>=100)break}else if(Y.type==="error")return{ok:!1,latencyMs:Math.round(performance.now()-$),error:Y.error};else if(Y.type==="finish")break;return{ok:!0,latencyMs:Math.round(performance.now()-$),output:G.slice(0,100)}}catch(J){return{ok:!1,latencyMs:Math.round(performance.now()-$),error:Tp(J)}}finally{clearTimeout(X)}}async function t6(D,$,F={}){let X=$.executor.engine,J="unknown";try{J=(await D.runtime.executor.health()).status}catch{J="unknown"}if(!F.probe)return{executor:{type:X,status:J}};let G=await wp(D);if(!G.ok)return{executor:{type:X,status:"degraded",tinyProbe:{ok:!1,latencyMs:G.latencyMs},...G.error===void 0?{}:{probeError:G.error}}};return{executor:{type:X,status:J,tinyProbe:{ok:!0,latencyMs:G.latencyMs,...G.output===void 0?{}:{output:G.output}}}}}function bp(D){if(!D)return"unknown";return D.status}async function hR(D){try{let $=await D();return bp($??null)}catch{return"unknown"}}function fp(D){let $=kp(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 kp(D){try{return J8(D)}catch{return null}}function vp(D,$){if(!D)return;return`${D.replace(/\/+$/,"")}/${$}/webhook`}async function e6(D,$,F){let{runtime:X}=D,J=await hR(()=>X.executor.health()),G=await hR(()=>X.brain.health()),Y=$.brains.map((Q)=>({id:Q.id,type:Q.type,status:G})),B=fp($.executor),H={type:$.executor.engine,...B===void 0?{}:{model:B},status:J},W=$.channels.map((Q)=>{let U=vp(F.advertisedBaseUrl,Q.channel);return{channel:Q.channel,enabled:Q.enabled,...U?{webhookUrl:U}:{}}});return{workerId:D.workerId,runtimeVersion:Sp,configVersion:D.configVersion,brains:Y,executor:H,channels:W,evolutionEnabled:$.evolution.enabled,startedAt:D.startedAt,...F.advertisedBaseUrl?{advertisedBaseUrl:F.advertisedBaseUrl}:{}}}var Sp="0.2.0";var gR=M(()=>{V1()});async function l8(D,$,F){let X=M6(),{ciphertext:J,nonce:G,authTag:Y}=$.encryptString(X),B=new Date().toISOString();return await D.update(c0).set({apiTokenEnc:J,nonce:G,authTag:Y,rotatedAt:B}).where(k(c0.pk,"default")).run(),F.tokenPlaintext=X,{newToken:X}}var yR=M(()=>{fD();_0();JJ()});async function D3(D){return D.list()}async function $3(D,$,F){if(!$||!$.trim())throw qD.badRequest("secret key is required");if(F.length===0)throw qD.badRequest("secret value must be a non-empty string");await D.put($,F)}async function F3(D,$){if(!$||!$.trim())throw qD.badRequest("secret key is required");if(await D.get($)===null)throw qD.notFound(`secret '${$}' not found`);await D.remove($)}var uR=M(()=>{cD()});class I1{pending=new Map;disposed=!1;wait(D){if(this.disposed)return Promise.reject(new mR);let $=D.timeoutMs??UG,F=Date.now()+$,X=I1.key(D.taskId,D.toolCallId);return new Promise((J)=>{let G=setTimeout(()=>{let B=this.pending.get(X);if(!B)return;this.pending.delete(X),B.resolve("deny")},$);G.unref?.(),this.pending.set(X,{taskId:D.taskId,toolCallId:D.toolCallId,toolName:D.toolName,params:D.params,expiresAt:F,resolve:J,timer:G})})}grant(D,$,F){let X=I1.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 mR,UG=60000;var B$=M(()=>{mR=class mR extends Error{name="ApprovalDisposedError";constructor(){super("approval store disposed")}}});class cR{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 H$(){return Date.now()}function T1(){return new Date().toISOString()}function _G(D){if(D===null||typeof D!=="object"||!("unref"in D))return;try{D.unref()}catch{}}class w1{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:T1(),lastActivityAt:T1(),cancel:async()=>this.cancelHandle(X)};this.handles.set(X,J);let G={handle:J,req:D,enqueuedAt:H$(),enqueueSeq:++this.enqueueSeq,resolve:$,reject:F,cancelledBeforeStart:!1},Y=this.groups.get(D.group);if(!Y)Y=new cR,this.groups.set(D.group,Y);if(Y.enqueue(G),D.signal)if(D.signal.aborted)this.cancelHandle(X).catch(()=>{return});else{let B=()=>{D.signal?.removeEventListener("abort",B),this.cancelHandle(X).catch(()=>{return})};D.signal.addEventListener("abort",B,{once:!0})}this.kick()})}async cancelGroup(D){let $=this.groups.get(D);if($)for(let X of $.drain())this.markCancelledBeforeStart(X);let F=[];for(let[,X]of this.running.entries())if(X.handle.group===D)F.push(this.cancelRunning(X));await Promise.allSettled(F),this.kick()}async cancelAll(){for(let $ of this.groups.values())for(let F of $.drain())this.markCancelledBeforeStart(F);let D=[];for(let $ of this.running.values())D.push(this.cancelRunning($));await Promise.allSettled(D),this.kick()}snapshot(){let D={queued:0,spawning:0,running:0,completed:0,failed:0,cancelled:0};for(let Y of this.handles.values())D[Y.state]+=1;let $=new Map,F=0;for(let Y of this.groups.values())for(let B of Y.values())F+=1,$.set(B.handle.engine,($.get(B.handle.engine)??0)+1);let X=new Set([...Object.keys(this.opts.perEngineLimits),...this.runningByEngine.keys(),...$.keys()]),J={};for(let Y of X){let B=this.opts.perEngineLimits[Y]??this.opts.maxConcurrentTotal,H=this.runningByEngine.get(Y)??0,W=$.get(Y)??0,Q=Math.max(0,B-H),U=Math.max(0,this.opts.maxConcurrentTotal-this.totalActive());J[Y]={limit:B,active:H,queued:W,available:Math.min(Q,U)}}let G=this.terminalLog.slice(-10).map((Y)=>({id:Y.handle.id,engine:Y.handle.engine,group:Y.handle.group,state:Y.handle.state,terminatedAt:Y.handle.updatedAt})).reverse();return{maxConcurrentTotal:this.opts.maxConcurrentTotal,totalActive:this.totalActive(),totalQueued:F,availableSlots:Math.max(0,this.opts.maxConcurrentTotal-this.totalActive()),perEngine:J,byState:D,recentTerminal:G}}dispose(){if(this.disposed=!0,this.gcTimer)clearInterval(this.gcTimer),this.gcTimer=null;for(let D of this.running.values()){if(D.stallTimer)clearTimeout(D.stallTimer);if(D.killTimer)clearTimeout(D.killTimer)}}totalActive(){return this.running.size}startGcLoop(){if(this.opts.gcIntervalMs<=0)return;this.gcTimer=setInterval(()=>this.gcTerminal(),this.opts.gcIntervalMs),_G(this.gcTimer)}gcTerminal(){let D=H$()-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=T1(),this.terminalLog.push({handle:D.handle,recordedAt:H$()}),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),_G(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 G=J.head();if(!this.canStart(G.handle))continue;let Y=xp[G.handle.class];if(Y>$||Y===$&&G.enqueueSeq<F)D=G,$=Y,F=G.enqueueSeq}return D}canStart(D){if(this.totalActive()>=this.opts.maxConcurrentTotal)return!1;let $=this.opts.perEngineLimits[D.engine]??this.opts.maxConcurrentTotal;if((this.runningByEngine.get(D.engine)??0)>=$)return!1;return!0}startCandidate(D){let $=this.groups.get(D.handle.group);if($?.shift(),$&&$.isEmpty())this.groups.delete(D.handle.group);let F={handle:D.handle,spawned:null,stallTimer:null,killTimer:null,cancelRequested:!1,killEscalated:!1};this.running.set(D.handle.id,F),this.runningGroups.add(D.handle.group),this.runningByEngine.set(D.handle.engine,(this.runningByEngine.get(D.handle.engine)??0)+1),D.handle.state="spawning",D.handle.startedAt=T1(),D.handle.lastActivityAt=D.handle.startedAt,D.handle.updatedAt=D.handle.startedAt,this.driveJob(F,D)}async driveJob(D,$){let{handle:F,req:X,resolve:J,reject:G}=$,Y=null;try{let B=await X.onSpawn();if(D.spawned=B,D.cancelRequested){try{await B.cancel()}catch{}throw Error("cancelled")}if(F.state="running",F.updatedAt=T1(),this.armStallTimer(D),Y=B.onActivity(()=>this.onActivity(D)),await X.job(),D.cancelRequested)F.state="cancelled",G(Error("cancelled"));else F.state="completed",J()}catch(B){F.state=D.cancelRequested?"cancelled":"failed",G(B)}finally{if(F.updatedAt=T1(),D.stallTimer)clearTimeout(D.stallTimer),D.stallTimer=null;if(D.killTimer)clearTimeout(D.killTimer),D.killTimer=null;if(Y)try{Y()}catch{}this.terminalLog.push({handle:F,recordedAt:H$()}),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),_G(D.stallTimer)}onActivity(D){if(pR.has(D.handle.state))return;D.handle.lastActivityAt=T1(),this.armStallTimer(D)}onStall(D){if(pR.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 pR,xp;var dR=M(()=>{JD();pR=new Set(["completed","failed","cancelled"]),xp={interactive:3,default:2,background:1}});class X3{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??hp}nextId(){return this.idCounter+=1,this.idCounter}headers(D){let $={"Content-Type":"application/json",Accept:"application/json, text/event-stream"};if(this.token)$.Authorization=`Bearer ${this.token}`;if(D&&this.sessionId)$["mcp-session-id"]=this.sessionId;return $}async postJson(D,$){let F=new AbortController,X=setTimeout(()=>F.abort(),this.timeoutMs);try{let J=await fetch(this.url,{method:"POST",headers:this.headers($),body:JSON.stringify(D),signal:F.signal});clearTimeout(X);let G=await J.text(),Y=null;if(G.length>0)try{Y=JSON.parse(G)}catch{Y=null}return{response:J,parsed:Y}}catch(J){throw clearTimeout(X),J instanceof Error?J:Error(String(J))}}async initialize(){let D={jsonrpc:"2.0",id:this.nextId(),method:"initialize",params:{protocolVersion:"2025-03-26",capabilities:{},clientInfo:{name:this.clientName,version:this.clientVersion}}},{response:$,parsed:F}=await this.postJson(D,!1);if(!$.ok)throw Error(`MCP initialize failed: HTTP ${$.status}`);if(F?.error)throw Error(`MCP initialize error: ${F.error.message}`);let X=$.headers.get("mcp-session-id");if(!X)throw Error("MCP initialize response missing mcp-session-id header");this.sessionId=X,await this.postJson({jsonrpc:"2.0",method:"notifications/initialized"},!0)}async ensureSession(){if(this.sessionId)return;if(!this.initPromise)this.initPromise=this.initialize().catch((D)=>{throw this.initPromise=null,D});await this.initPromise,this.initPromise=null}async invoke(D,$){await this.ensureSession();let F={jsonrpc:"2.0",id:this.nextId(),method:D,params:$},{response:X,parsed:J}=await this.postJson(F,!0);if(X.status===404||J?.error&&/session/i.test(J.error.message)){this.sessionId=null,await this.ensureSession();let G=await this.postJson({...F,id:this.nextId()},!0);X=G.response,J=G.parsed}if(!X.ok)throw Error(`MCP ${D} failed: HTTP ${X.status}`);if(!J)throw Error(`MCP ${D} returned non-JSON body`);if(J.error)throw Error(`MCP ${D} error: ${J.error.message}`);if(J.result===void 0)throw Error(`MCP ${D} response missing 'result'`);return J.result}async listTools(){return(await this.invoke("tools/list")).tools??[]}async callTool(D,$={}){return this.invoke("tools/call",{name:D,arguments:$})}async callToolJson(D,$={}){let X=(await this.callTool(D,$)).content.find((J)=>J.type==="text");if(!X)throw Error(`MCP tool '${D}' returned no text content`);try{return JSON.parse(X.text)}catch{return E.warn(`[mcp] tool '${D}' text is not JSON, returning raw string`),X.text}}}var hp=30000;var lR=M(()=>{JD()});var AG=M(()=>{lR()});function iR(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 KG(D){let $=D.created_at??new Date().toISOString(),F=D.updated_at??$,{content:X,id:J,score:G,...Y}=D,B={id:J,content:X??"",metadata:{...Y,tags:iR(D.tags)},createdAt:$,updatedAt:F};if(typeof G==="number")B.score=G;return B}function gp(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 CG{name="cloud-gateway";client;defaultCategory;defaultTypeId;constructor(D){this.client=new X3({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(gp)}async listMemories(D){let $={per_page:Math.min(Math.max(D?.limit??50,1),100),page:1},F=D?.tags?.find((G)=>G.startsWith("type:"));if(F)$.type_id=F.slice(5);let J=(await this.client.callToolJson("knowledge_query",$)).entries??[];if(D?.since)J=J.filter((G)=>!G.created_at||G.created_at>=D.since);if(D?.until)J=J.filter((G)=>!G.created_at||G.created_at<=D.until);return J.map(KG)}async searchMemories(D){let $=await this.client.callToolJson("knowledge_search",{query:D,limit:20});if(!Array.isArray($))return[];return $.map(KG)}async writeMemory(D){let $=D.metadata??{},F={content:D.content},X=typeof $.title==="string"?$.title:typeof $.name==="string"?$.name:void 0;if(X)F.title=X;let J=typeof $.type_id==="string"?$.type_id:this.defaultTypeId,G=typeof $.category==="string"?$.category:this.defaultCategory;if(J)F.type_id=J;else if(G)F.category=G;let Y=D.tags??iR($.tags);if(Y.length>0)F.tags=Y.join(",");let B=typeof $.source_type==="string"?$.source_type:"aiworker";if(F.source_type=B,typeof $.source_ref==="string")F.source_ref=$.source_ref;F.skip_compile=!0;let H=await this.client.callToolJson("knowledge_write",F);return KG(H)}}var nR=M(()=>{AG()});import{join as W$}from"path";async function sR(D){let $=new Bun.CryptoHasher("sha256");return $.update(D),$.digest("hex")}function rR(D){let $=D.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);if(!$)return{metadata:{},content:D};try{return{metadata:X$($[1]??"")??{},content:$[2]??""}}catch{return{metadata:{},content:D}}}function yp(D,$){let F=$.split(".").pop()?.toLowerCase();if(F==="yaml"||F==="yml")try{let X=X$(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}=rR(D);return{name:String(X.name??$.split("/").pop()?.replace(/\.md$/,"")??""),description:String(X.description??J.split(`
|
|
261
|
-
`)[0]??""),version:String(X.version??"0.0.0"),capabilities:Array.isArray(X.capabilities)?X.capabilities.map(String):[],filePath:$}}return null}async function oR(D){let $=W$(D,"skills");try{await(await import("fs/promises")).access($);let X=new Bun.Glob("**/*.{yaml,yml,md}"),J=[];for await(let G of X.scan({cwd:$})){let Y=W$($,G);try{let H=await Bun.file(Y).text(),W=yp(H,Y);if(W){let Q=await sR(H);J.push({...W,hash:Q})}}catch{}}return J}catch{return[]}}async function OG(D){let $=W$(D,"memories");try{await(await import("fs/promises")).access($);let X=new Bun.Glob("**/*.md"),J=[];for await(let G of X.scan({cwd:$})){let Y=W$($,G);try{let H=await Bun.file(Y).text(),W=await sR(H),{metadata:Q,content:U}=rR(H),_=G.replace(/\.md$/,"");J.push({id:String(Q.id??_),title:String(Q.title??_),content:U,metadata:Q,filePath:Y,hash:W,createdAt:Q.createdAt?String(Q.createdAt):void 0,updatedAt:Q.updatedAt?String(Q.updatedAt):void 0})}catch{}}return J}catch{return[]}}var aR=M(()=>{BG()});import{watch as up}from"fs";import{join as RG}from"path";function mp(D){return D.includes("/skills/")||D.includes("\\skills\\")?"skill":"memory"}class EG{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 up(D,{recursive:!0},(F,X)=>{if(!X)return;let J=RG(D,X),G=J,Y=this.debounceTimers.get(G);if(Y)clearTimeout(Y);let B=setTimeout(()=>{this.debounceTimers.delete(G);let H=F==="rename"?"add":"modify";this.emit({type:H,path:J,kind:mp(J),timestamp:Date.now()})},this.debounceMs);this.debounceTimers.set(G,B)})}catch{return null}}async start(){if(this.running)return;this.running=!0;let D=RG(this.home,"skills"),$=RG(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 tR=()=>{};import{existsSync as pp,mkdirSync as cp}from"fs";import{access as dp,stat as lp}from"fs/promises";import{join as ZG}from"path";function ip(D){return{id:D.filePath,name:D.name,description:D.description,version:D.version,tags:D.capabilities}}async function eR(D,$){let{createdAt:F,updatedAt:X}=D;if(!F||!X)try{let Y=await lp(D.filePath);F=F??Y.birthtime.toISOString(),X=X??Y.mtime.toISOString()}catch{let Y=new Date(0).toISOString();F=F??Y,X=X??Y}let J={...D.metadata,title:D.title,filePath:D.filePath,hash:D.hash},G={id:D.id,content:D.content,metadata:J,createdAt:F,updatedAt:X};if($!==void 0)G.score=$;return G}function np(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 sp(D,$){if(!$)return D;let F=D;if($.tags&&$.tags.length>0){let X=$.tags;F=F.filter((J)=>{let G=Array.isArray(J.metadata.tags)?J.metadata.tags.map(String):[];return X.every((Y)=>G.includes(Y))})}if($.since){let X=$.since;F=F.filter((J)=>J.createdAt>=X)}if($.until){let X=$.until;F=F.filter((J)=>J.createdAt<=X)}if(typeof $.limit==="number")F=F.slice(0,$.limit);return F}function rp(D){if(D==="feedback"||D==="project"||D==="reference"||D==="user")return D;return"user"}function op(D){return D.toLowerCase().replace(/[^a-z0-9_\- ]/g,"").replace(/\s+/g,"_").replace(/_+/g,"_").replace(/^_|_$/g,"").slice(0,64)}async function ap(D,$,F,X){let J=ZG(D,"..","MEMORY.md"),G=`- [${$}](memories/${F}) \u2014 ${X}`,Y=Bun.file(J);if(await Y.exists()){let H=(await Y.text()).trimEnd(),W=H?`${H}
|
|
262
|
-
${G}
|
|
263
|
-
`:`${G}
|
|
264
|
-
`;await Bun.write(J,W)}else await Bun.write(J,`# Memory index
|
|
265
|
-
|
|
266
|
-
${G}
|
|
267
|
-
`)}class MG{name="filesystem";home;watcher;watcherStarted=!1;constructor(D){this.home=D.home,this.watcher=new EG({home:D.home})}async health(){let D=new Date().toISOString();try{return await dp(this.home),{name:this.name,status:"healthy",lastChecked:D}}catch{return{name:this.name,status:"down",lastChecked:D}}}async listSkills(){return(await oR(this.home)).map(ip)}async listMemories(D){let $=await OG(this.home),F=await Promise.all($.map((X)=>eR(X)));return sp(F,D)}async searchMemories(D){let $=await OG(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)=>eR(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=rp($.type),G=ZG(this.home,"memories");if(!pp(G))cp(G,{recursive:!0});let Y=op(F),B=`${Y}.md`,H=ZG(G,B),W=`---
|
|
268
|
-
name: ${F}
|
|
269
|
-
description: ${X}
|
|
270
|
-
type: ${J}
|
|
271
|
-
---
|
|
272
|
-
`;await Bun.write(H,`${W}${D.content}
|
|
273
|
-
`),await ap(G,F,B,X);let Q=new Date().toISOString();return{id:Y,content:D.content,metadata:{...$,name:F,description:X,type:J,filePath:H,...D.tags?{tags:D.tags}:{}},createdAt:Q,updatedAt:Q}}watch(D){if(!this.watcherStarted)this.watcherStarted=!0,this.watcher.start();return this.watcher.on(($)=>{let F=np($);if(F)D(F)})}}var DE=M(()=>{aR();tR()});class zG{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 tp(D,$){let F;if($.type==="filesystem"){let X=$.config.home??B6(D);F=new MG({home:X})}else F=new CG({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 $E(D,$){let F=$.brains.map((X)=>tp(D,X));return new zG({sources:F,writeTargetId:$.brainWriteTarget,retrieval:$.brainRetrieval})}var FE=M(()=>{A2();nR();DE()});function XE(D){return D.on((F)=>{try{ep(F)}catch(X){E.warn(`[evolution] observer failed to persist: ${String(X)}`)}})}function ep(D){if(!(D.type==="orchestrator.tool_call"||D.type==="orchestrator.finished"))return;g().insert(M2).values({conversationId:typeof D.payload.conversationId==="string"?D.payload.conversationId:null,kind:D.type,payload:D.payload}).run()}var JE=M(()=>{fD();JD()});function GE(D,$=NG){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 Q=0;Q+W<=H.length;Q++){let U=H.slice(Q,Q+W),_=Fc(U),A=J.get(_);if(A)A.occurrences+=1,A.conversations.add(B);else J.set(_,{toolSequence:U,occurrences:1,conversations:new Set([B])})}}}let G=Math.max(1,$.windowSize),Y=[];for(let B of J.values()){if(B.occurrences<$.minOccurrences)continue;if(B.conversations.size<$.minConversations)continue;let H=Xc(B.occurrences/G);Y.push({toolSequence:B.toolSequence,occurrences:B.occurrences,uniqueConversations:B.conversations.size,confidence:H,rationale:$c(B.toolSequence,B.occurrences,B.conversations.size,H)})}return Y.sort((B,H)=>{if(H.occurrences!==B.occurrences)return H.occurrences-B.occurrences;return H.toolSequence.length-B.toolSequence.length}),Dc(Y)}function Dc(D){let $=[];for(let F of D){if($.find((G)=>YE(F.toolSequence,G.toolSequence)))continue;let J=$.findIndex((G)=>YE(G.toolSequence,F.toolSequence));if(J>=0)$.splice(J,1);$.push(F)}return $}function YE(D,$){if(D.length>=$.length)return!1;for(let F=0;F<D.length;F++)if(D[F]!==$[F])return!1;return!0}function $c(D,$,F,X){let J=D.join(" \u2192 "),G=(X*100).toFixed(1);return`Observed tool sequence ${J} ${$}\xD7 across ${F} conversation(s); window confidence ${G}%.`}function Fc(D){return D.join("|")}function Xc(D){if(!Number.isFinite(D))return 0;if(D<0)return 0;if(D>1)return 1;return D}var NG;var BE=M(()=>{NG={nGramMin:2,nGramMax:4,minOccurrences:3,minConversations:2,windowSize:500}});import{createHash as Jc}from"crypto";import Yc from"process";function Hc(D){return{windowSize:D?.windowSize??V$("EVOLUTION_PROPOSER_WINDOW",Gc),maxDraftsPerRun:D?.maxDraftsPerRun??V$("EVOLUTION_PROPOSER_MAX_DRAFTS_PER_RUN",Bc),intervalMs:D?.intervalMs??V$("EVOLUTION_PROPOSER_INTERVAL_MS",WE)}}async function Wc(D){let $=Hc(D),F=g(),X=F.select({conversationId:M2.conversationId}).from(M2).orderBy(jD(M2.noticedAt)).limit($.windowSize).all(),J=Array.from(new Set(X.map((Q)=>Q.conversationId).filter((Q)=>typeof Q==="string"&&Q.length>0)));if(J.length===0)return E.info("[evolution/proposer] no conversations in window; skipping"),{drafts:0};let G=F.select({conversationId:X8.conversationId,toolName:X8.toolName}).from(X8).where(N8(X8.conversationId,J)).orderBy(g2(X8.conversationId),g2(X8.id)).all(),Y=new Map;for(let Q of G){if(!Q.conversationId)continue;let U=Y.get(Q.conversationId);if(U)U.push(Q.toolName);else Y.set(Q.conversationId,[Q.toolName])}let B=GE(Y,{...NG,windowSize:$.windowSize}),H=Qc(F),W=0;for(let Q of B){if(W>=$.maxDraftsPerRun)break;let U=Q.toolSequence.join("|");if(H.has(U))continue;let _=Uc(Q);F.insert(L0).values(_).run(),H.add(U),W+=1,E.info(`[evolution/proposer] wrote draft ${_.proposedName} (occurrences=${Q.occurrences}, convs=${Q.uniqueConversations})`)}return E.info(`[evolution/proposer] ${W}/${B.length} candidate(s) written; window=${$.windowSize}, conversations=${J.length}`),{drafts:W}}function VE(D){let $=D??V$("EVOLUTION_PROPOSER_INTERVAL_MS",WE),F=setInterval(()=>{Wc().catch((X)=>E.warn(`[evolution/proposer] loop run failed: ${String(X)}`))},$);return()=>clearInterval(F)}function Vc(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,sequenceKey:typeof F.sequenceKey==="string"?F.sequenceKey:F.allowedTools.join("|")}}catch{return null}}function Qc(D){let $=new Set,F=D.select({bodyMarkdown:L0.bodyMarkdown}).from(L0).all();for(let J of F){let G=Vc(J.bodyMarkdown);if(G)$.add(G.allowedTools.join("|"))}let X=D.select({config:X9.config}).from(X9).all();for(let J of X){let G=J.config;if(!G||typeof G!=="object")continue;let Y=G.allowedTools;if(Array.isArray(Y)&&Y.every((B)=>typeof B==="string"))$.add(Y.join("|"))}return $}function Uc(D){let $=D.toolSequence.join("|"),F=Jc("sha256").update($).digest("hex").slice(0,6),X=HE(D.toolSequence[0]??"tool"),J=HE(D.toolSequence[D.toolSequence.length-1]??"tool"),G=`auto-${X}-${J}-${F}`,Y=D.toolSequence.join(" \u2192 "),B=D.toolSequence.map((U)=>`\`${U}\``).join(", "),H={allowedTools:D.toolSequence,confidence:D.confidence,sequenceKey:$},W=`When the agent runs \`${Y}\` (seen ${D.occurrences}\xD7 across ${D.uniqueConversations} conversation(s))`,Q=[`<!-- evolution-meta: ${JSON.stringify(H)} -->`,"",`# ${G}`,"","## Trigger","",W,"","## Allowed tools","",B,"","## Prompt template","","```",`You are extending the skill \`${G}\`. Invoke the following tools in order: ${B}.`,"```",""].join(`
|
|
274
|
-
`);return{proposedName:G,source:"evolution",bodyMarkdown:Q,rationale:D.rationale,status:"pending"}}function HE(D){return D.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"tool"}function V$(D,$){let F=Yc.env[D];if(F===void 0||F==="")return $;let X=Number(F);return Number.isFinite(X)&&X>0?X:$}var WE=21600000,Gc=500,Bc=5;var QE=M(()=>{fD();JD();_0();BE()});var PG;var qG=M(()=>{K5();PG={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:()=>CC()}});var LG;var jG=M(()=>{K5();LG={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:()=>OC()}});function IG(D){let $=_c[D];if(!$)throw Error(`unknown ACP agent: ${D}`);return $}var _c;var UE=M(()=>{qG();jG();_c={gemini:PG,qwen:LG}});import _E from"process";function Zc(D,$,F){if($.has(D))return!0;return F.some((X)=>D.startsWith(X))}function Mc(D){if(Rc.some(($)=>D.startsWith($)))return!0;if(Ec.some(($)=>D.endsWith($)))return!0;return!1}function AE(D,$,F){let X={};for(let[J,G]of Object.entries(D)){if(G===void 0)continue;if(Mc(J))continue;if(!Zc(J,$,F))continue;X[J]=G}return X}function I2(D,$=_E.env){let F=AE($,Ac,Kc);if(D)for(let[X,J]of Object.entries(D))F[X]=J;return F}function KE(D=_E.env){return AE(D,Cc,Oc)}var Ac,Kc,Cc,Oc,Rc,Ec;var S1=M(()=>{Ac=new Set(["PATH","HOME","USER","LOGNAME","SHELL","PWD","LANG","TZ","TERM","TMPDIR","TMP","TEMP"]),Kc=["LC_","NODE_","NPM_CONFIG_","XDG_","CLAUDE_","CODEX_","CURSOR_","GEMINI_","QWEN_"],Cc=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"]),Oc=["LC_","XDG_","GIT_AUTHOR_","GIT_COMMITTER_"],Rc=["AIWORKER_","INTERNAL_","WORKER_"],Ec=["_TOKEN","_SECRET","_API_KEY","_PRIVATE_KEY","_PASSWORD"]});function wG(D){let $=D.sessionUpdate,F=D;switch($){case"agent_message_chunk":{let X=TG(F.content);if(!X)return[];return[{type:"assistant_message_delta",delta:X}]}case"agent_thinking_chunk":{let X=TG(F.content);if(!X)return[];return[{type:"thinking_delta",delta:X}]}case"user_message_chunk":return[];case"tool_call":return zc(F);case"tool_call_update":return Nc(F);case"plan":return Pc(F.entries);case"available_commands_update":case"current_mode_update":return[];default:return[]}}function CE(D,$,F){let X=F??{};switch(D){case"read":return{kind:"file_read",path:e9(X,["file_path","path","absolute_path","filePath"])};case"edit":case"delete":case"move":{let J=e9(X,["file_path","path","absolute_path","filePath"]),G=Lc(X);return{kind:"file_edit",path:J,...G?{diff:G}:{}}}case"execute":return{kind:"command_run",command:e9(X,["command","cmd","shell_command","script"])};case"search":return{kind:"search",query:e9(X,["query","pattern","q","search"])};case"fetch":return{kind:"web_fetch",url:e9(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 SG(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 zc(D){let $=[],F=D.toolCallId;if(!F)return $;let X=D.rawInput??{},J=CE(D.kind,D.title,X),G=D.title??D.kind??"acp.tool";if($.push({type:"tool_use",id:F,name:G,arguments:X,action:J,...D.status?{status:qc(D.status)}:{}}),RE(D.status)){let Y=OE(D.content);$.push({type:"tool_result",id:F,name:G,content:Y,...D.status==="failed"||D.status==="cancelled"?{isError:!0}:{}})}return $}function Nc(D){let $=D.toolCallId;if(!$||!RE(D.status))return[];let F=OE(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 Pc(D){if(!Array.isArray(D)||D.length===0)return[];let $=D.map((F,X)=>`${X+1}. [${F.status??"pending"}] ${F.content}`).join(`
|
|
275
|
-
`);return[{type:"tool_use",id:`plan-${jc($)}`,name:"plan",arguments:{entries:D},action:{kind:"task_plan",summary:$}}]}function TG(D){if(!D)return"";if(D.type==="text"&&typeof D.text==="string")return D.text;return""}function OE(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=TG(X);if(J)$.push(J)}else if(F.type==="diff"){let X=F,J=X.oldText??"",G=X.newText??"";$.push(`--- ${X.path??""}
|
|
276
|
-
- ${J}
|
|
277
|
-
+ ${G}`)}else if(F.type==="terminal"){let X=F;$.push(`[terminal:${X.terminalId??""}]`)}}return $.join(`
|
|
278
|
-
`)}function qc(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 RE(D){return D==="completed"||D==="failed"||D==="cancelled"}function e9(D,$){for(let F of $){let X=D[F];if(typeof X==="string"&&X.length>0)return X}return""}function Lc(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`- ${$}
|
|
279
|
-
+ ${F}`;if(F!==void 0)return F;return}function jc(D){let $=5381;for(let F=0;F<D.length;F++)$=($<<5)+$+D.charCodeAt(F)>>>0;return $.toString(36)}class i8{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((G,Y)=>{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:(Q)=>G(Q),reject:Y,timer:H,abortHandler:W,signal:F??null}),W&&F)F.addEventListener("abort",W,{once:!0});try{this.options.writeLine(`${JSON.stringify(J)}
|
|
280
|
-
`)}catch(Q){this.rejectPending(X,Q instanceof Error?Q:Error(String(Q)))}})}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)}
|
|
281
|
-
`)}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)}
|
|
282
|
-
`)}catch(J){this.options.onError?.(J instanceof Error?J:Error(String(J)))}}}function b1(D,$){let X=(D+$).split(/\r?\n/),J=X.pop()??"";return{lines:X.filter((G)=>G.trim().length>0),remainder:J}}import{spawn as Ic}from"child_process";import{once as Tc}from"events";import wc from"fs/promises";import Sc from"path";import J3 from"process";function ME(D,$){let F=$?.trim();if(F&&F.length>0)return F;let X=J3.env[D.versionEnvVar]?.trim();if(X&&X.length>0)return X;return D.defaultVersion}class Q${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()+fc,info:F},F}async*runIterable(D){let $=xc(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??J3.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 G=(this.options.spawn??Ic)(X.cmd,X.args,{cwd:F,env:I2(this.options.env)}),Y=new zE,B=new i8({writeLine:(K)=>{try{G.stdin.write(K)}catch{}},onNotification:(K)=>this.handleNotification(K,Y),onRequest:(K)=>this.handleInboundRequest(K),onError:(K)=>{Y.push({type:"error",error:K.message})},requestTimeoutMs:this.options.timeoutMs??EE}),H="",W=(K)=>{let{lines:R,remainder:z}=b1(H,K.toString("utf8"));H=z;for(let N of R)B.handleLine(N)};G.stdout.on("data",W);let Q=null;G.on("error",(K)=>{Q=K.message});let U=Tc(G,"exit").then((K)=>K[0]??null).catch((K)=>{return Q=K instanceof Error?K.message:String(K),null});U.then((K)=>{if(K===0)return;let R=Q??(K===null?"acp child exited unexpectedly":`acp child exited with code ${K}`);Y.close({kind:"error",message:R}),B.dispose(R)});let _=setTimeout(()=>ZE(G,"SIGKILL"),this.options.timeoutMs??EE),A="",O=!1,C=()=>{if(O=!0,A)B.notify("session/cancel",{sessionId:A});setTimeout(()=>ZE(G,"SIGTERM"),200)};D.signal?.addEventListener("abort",C,{once:!0});try{if(await B.request("initialize",{protocolVersion:bc,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((N)=>Y.close({kind:"finish",stopReason:N.stopReason}),(N)=>Y.close({kind:"error",message:N instanceof Error?N.message:String(N)}));for await(let N of Y.iter())yield N;let z=Y.terminal;if(z?.kind==="finish")yield{type:"finish",reason:SG(z.stopReason)};else if(z?.kind==="error")yield{type:"error",error:z.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(_),D.signal?.removeEventListener("abort",C),B.dispose("run ended"),G.stdout.off("data",W),vc(G),await U.catch(()=>null)}}handleNotification(D,$){if(D.method!=="session/update")return;let F=D.params;if(!F||!F.update)return;for(let X of wG(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((G)=>G.kind==="allow_always")??X.find((G)=>G.kind==="allow_once")??X.find((G)=>G.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}}),G=await(this.options.resolveBinary??kc)($.commandName);if(G)return{cmd:G,args:X};let Y=ME($,this.options.cliVersion);return{cmd:"npx",args:["-y",`${$.npxPackage}@${Y}`,...X]}}}class zE{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 kc(D){let $=J3.env.PATH??"",F=J3.platform==="win32"?";":":",X=J3.platform==="win32"?(J3.env.PATHEXT??".EXE").split(";"):[""];for(let J of $.split(F)){if(!J)continue;for(let G of X){let Y=Sc.join(J,`${D}${G.toLowerCase()}`);try{if((await wc.stat(Y)).isFile())return Y}catch{}}}return null}function ZE(D,$){try{D.kill($)}catch{}}function vc(D){try{D.stdin.end()}catch{}}function xc(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 EE=120000,bc=1,fc=600000;var NE=M(()=>{S1()});var PE=M(()=>{qG();UE();jG();NE()});function bG(D){switch(D.type){case"assistant":return hc(D);case"user":return gc(D);case"result":return yc(D);case"stream_event":return uc(D);default:return[]}}function hc(D){let $=[],F=D.message??{};for(let X of F.content??[]){let J=mc(X);if(J)$.push(J)}return cc($,F),$}function gc(D){let $=[],F=D.message??{};for(let X of F.content??[])if(X.type==="tool_result")$.push(qE(X));return $}function yc(D){let $=[];if(D.usage){let J=D.usage.input_tokens??0,G=D.usage.output_tokens??0;$.push({type:"token_usage",usage:{inputTokens:J,outputTokens:G}})}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=lc(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 uc(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 mc(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:LE(F,X)}}case"tool_result":return qE(D);default:return null}}function qE(D){let $=typeof D.tool_use_id==="string"?D.tool_use_id:"",F=D.is_error===!0,X=pc(D.content);return{type:"tool_result",id:$,name:"",content:X,...F?{isError:!0}:{}}}function pc(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(`
|
|
283
|
-
`)}if(D===void 0||D===null)return"";return JSON.stringify(D)}function cc(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 LE(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=dc($);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 dc(D){if(typeof D.old_string==="string"&&typeof D.new_string==="string")return`- ${D.old_string}
|
|
284
|
-
+ ${D.new_string}`;if(typeof D.content==="string")return D.content;return}function lc(D){switch(D){case"success":case"completion":return"stop";case"error":return"error";default:return"stop"}}function f1(D,$){let X=(D+$).split(/\r?\n/),J=X.pop()??"";return{lines:X.filter((G)=>G.trim().length>0),remainder:J}}function fG(D){try{let $=JSON.parse(D);if($&&typeof $==="object"&&"type"in $)return $;return null}catch{return null}}class _${policy;writeLine;constructor(D){this.policy=D.policy??U$,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=ic($,F);if(this.writeLine(`${JSON.stringify(X)}
|
|
285
|
-
`),F.decision==="ask"){let J=nc($);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($)}
|
|
286
|
-
`)}}function ic(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 nc(D){let $=D.request;if(typeof $.tool_use_id==="string")return $.tool_use_id;if(typeof $.toolUseId==="string")return $.toolUseId;return}var U$;var kG=M(()=>{U$={decide:async(D)=>({decision:"allow"})}});import{spawn as sc}from"child_process";import{once as rc}from"events";import oc from"fs/promises";import ac from"path";import A$ from"process";class O${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 $=$d(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??sc,J=Fd(D.engineBinding);if(D.engineBinding!==void 0&&J===void 0)yield{type:"engine_binding",engine:K$,binding:null};let G,Y;try{({cmd:G,args:Y}=await this.resolveCommand(D.model,J))}catch(z){yield{type:"error",error:z instanceof Error?z.message:String(z)},yield{type:"finish",reason:"error"};return}let B=X(G,Y,{cwd:F,env:I2(this.options.env)}),H=new _$({policy:this.options.policy??U$,writeLine:(z)=>{try{B.stdin.write(z)}catch{}}});H.sendUserMessage($);let W=this.options.timeoutMs??tc,Q=setTimeout(()=>jE(B,"SIGKILL"),W),U="",_=null,A="",O=!1,C=rc(B,"exit").then((z)=>z[0]??null).catch((z)=>{return _=z instanceof Error?z.message:String(z),null});B.on("error",(z)=>{_=z.message});let K=()=>jE(B,"SIGTERM");D.signal?.addEventListener("abort",K,{once:!0});try{for await(let z of B.stdout){let{lines:N,remainder:S}=f1(U,z.toString("utf8"));U=S;for(let b of N){let L=fG(b);if(!L)continue;let q=Xd(L);if(q&&q!==A)A=q,yield{type:"engine_binding",engine:K$,binding:{sessionId:q}};if(L.type==="control_request"){let j=await H.handleLine(L);for(let d of j)yield d;continue}for(let j of bG(L)){if(j.type==="error"&&J!==void 0)yield{type:"engine_binding",engine:K$,binding:null};if(yield j,j.type==="finish")O=!0}if(O)break}if(O)break}}catch(z){yield{type:"error",error:z instanceof Error?z.message:String(z)}}finally{clearTimeout(Q),D.signal?.removeEventListener("abort",K),Dd(B)}let R=await C;if(!O){if(J!==void 0)yield{type:"engine_binding",engine:K$,binding:null};if(_)yield{type:"error",error:_};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=IE(D??this.options.model,this.options.extraArgs,$),J=await(this.options.resolveClaudeBinary??ec)();if(J)return{cmd:J,args:F};return{cmd:"npx",args:["-y",`@anthropic-ai/claude-code@${this.options.cliVersion?.trim()||C$}`,...F]}}}function IE(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 ec(){let D=A$.env.PATH??"",$=A$.platform==="win32"?";":":",F=A$.platform==="win32"?(A$.env.PATHEXT??".EXE").split(";"):[""];for(let X of D.split($)){if(!X)continue;for(let J of F){let G=ac.join(X,`claude${J.toLowerCase()}`);try{if((await oc.stat(G)).isFile())return G}catch{}}}return null}function jE(D,$){try{D.kill($)}catch{}}function Dd(D){try{D.stdin.end()}catch{}}function $d(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 Fd(D){if(!D||typeof D.sessionId!=="string"||D.sessionId.length===0)return;return D.sessionId}function Xd(D){if(!D||typeof D!=="object"||Array.isArray(D))return"";let $=D.session_id;return typeof $==="string"&&$.length>0?$:""}var C$="2.1.112",tc=120000,K$="claude-code";var TE=M(()=>{S1();kG()});var wE=M(()=>{TE();kG()});function xG(D){let $=D.params??{};switch(D.method){case"codex/event/assistant_message":return SE($);case"codex/event/thinking":return bE($);case"codex/event/token_usage":return Jd($);case"codex/event/tool_call":return Yd($);case"codex/event/tool_result":return Gd($);case"codex/event/stop":return Bd($);case"codex/event/error":return[{type:"error",error:typeof $.message==="string"?$.message:"codex error"}];case"item/agentMessage/delta":return SE($);case"item/reasoning/textDelta":case"item/reasoning/summaryTextDelta":return bE($);case"thread/tokenUsage/updated":return Hd($);case"turn/completed":return Wd($);case"error":return Vd($);default:return[]}}function SE(D){let $=vE(D.delta,D.text);if(!$)return[];return[{type:"assistant_message_delta",delta:$}]}function bE(D){let $=vE(D.delta,D.text);if(!$)return[];return[{type:"thinking_delta",delta:$}]}function Jd(D){let $=D.usage??{};return[{type:"token_usage",usage:{inputTokens:$.input_tokens??0,outputTokens:$.output_tokens??0}}]}function Yd(D){if(!D.id||!D.name)return[];let $=D.arguments??{};return[{type:"tool_use",id:D.id,name:D.name,arguments:$,action:fE(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 Bd(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:kE(D.reason)}),$}function Hd(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 Wd(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:vG(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 Vd(D){let $=vG(D.error)??vG(D);if(Ud($))return[];return[{type:"error",error:$??"codex error"}]}function fE(D,$){let F=D.toLowerCase();if(F==="read"||F==="view"||F==="open_file")return{kind:"file_read",path:D7($,["path","file_path","filePath"])};if(F==="edit"||F==="write"||F==="apply_patch"||F==="patch"){let X=D7($,["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:D7($,["command","cmd","script"])};if(F==="grep"||F==="search"||F==="find")return{kind:"search",query:D7($,["query","pattern"])};if(F==="web_fetch"||F==="fetch"||F==="http_get")return{kind:"web_fetch",url:D7($,["url","uri"])};return{kind:"tool",toolName:D,...Object.keys($).length>0?{arguments:$}:{}}}function kE(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 vE(...D){for(let $ of D)if(typeof $==="string"&&$.length>0)return $;return""}function D7(D,$){for(let F of $){let X=D[F];if(typeof X==="string"&&X.length>0)return X}return""}function vG(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 Ud(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}
|
|
287
|
-
+ ${D.new_string}`;if(typeof D.oldText==="string"&&typeof D.newText==="string")return`- ${D.oldText}
|
|
288
|
-
+ ${D.newText}`;if(typeof D.diff==="string")return D.diff;if(typeof D.content==="string")return D.content;return}var hG=()=>{};import{spawn as Ad}from"child_process";import{once as Kd}from"events";import Cd from"fs/promises";import Od from"path";import Y3 from"process";class Z${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 $=Pd(D.messages);if($===null){yield{type:"error",error:"Codex executor requires a user message"},yield{type:"finish",reason:"error"};return}let F=qd(D.messages),X=D.workspacePath??this.options.fallbackWorkspacePath??Y3.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 Y=(this.options.spawn??Ad)(J.cmd,J.args,{cwd:X,env:I2(this.options.env)}),B=new gE,H=new i8({writeLine:(R)=>{try{Y.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??xE}),W="",Q=(R)=>{let{lines:z,remainder:N}=b1(W,R.toString("utf8"));W=N;for(let S of z)H.handleLine(S)};Y.stdout.on("data",Q);let U=null;Y.on("error",(R)=>{U=R.message});let _=Kd(Y,"exit").then((R)=>R[0]??null).catch((R)=>{return U=R instanceof Error?R.message:String(R),null});_.then((R)=>{if(R===0)return;let z=U??(R===null?"codex child exited unexpectedly":`codex child exited with code ${R}`);B.close({kind:"error",message:z}),H.dispose(z)});let A=this.options.timeoutMs??xE,O=setTimeout(()=>hE(Y,"SIGKILL"),A),C=!1,K=()=>{C=!0,hE(Y,"SIGTERM")};D.signal?.addEventListener("abort",K,{once:!0});try{await H.request("initialize",{protocolVersion:Rd,clientInfo:{name:"aiworker",version:"0.2.0"},capabilities:{experimentalApi:!0}});let R=D.model??this.options.model,z=Zd(D.engineBinding);if(D.engineBinding!==void 0&&z===null)yield{type:"engine_binding",engine:R$,binding:null};let N;if(z?.protocol==="current")try{N=await this.resumeCurrentThread(H,z,R,X)}catch{yield{type:"engine_binding",engine:R$,binding:null},N=await this.startThread(H,R,X)}else N=await this.startThread(H,R,X);if(!N.threadId){yield{type:"error",error:"Codex thread start returned no threadId"},yield{type:"finish",reason:"error"};return}let S=N.resumed?$:F;if(N.protocol==="legacy")H.request("newTurn",{threadId:N.threadId,prompt:S}).then(()=>B.close({kind:"finish"}),(j)=>B.close({kind:"error",message:j instanceof Error?j.message:String(j)}));else{try{await this.startCurrentTurn(H,N.threadId,S)}catch(q){if(!N.resumed)throw q;yield{type:"engine_binding",engine:R$,binding:null},N=await this.startThread(H,R,X),S=F,await this.startCurrentTurn(H,N.threadId,S)}yield{type:"engine_binding",engine:R$,binding:{...Md(N)}}}let b=!1;for await(let q of B.iter())if(yield q,q.type==="finish")b=!0;let L=B.terminal;if(L?.kind==="error")yield{type:"error",error:L.message},yield{type:"finish",reason:C?"cancelled":"error"};else if(!b)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"),Y.stdout.off("data",Q),Nd(Y),await _.catch(()=>null)}}handleNotification(D,$){for(let F of xG(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(Y){if(!Ed(Y))throw Y}let J={approvalPolicy:"never",cwd:F,experimentalRawEvents:!1,persistExtendedHistory:!0};if($&&$.length>0)J.model=$;let G=await D.request("thread/start",J);return{protocol:"current",threadId:G.thread.id,...G.thread.path===void 0||G.thread.path===null?{}:{path:G.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 G=await D.request("thread/resume",J);return{protocol:"current",resumed:!0,threadId:G.thread.id||$.threadId,...G.thread.path===void 0||G.thread.path===null?$.path===void 0?{}:{path:$.path}:{path:G.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()||Y3.env.CODEX_CLI_VERSION?.trim()||E$}`,...D]}}}function Ed(D){if(!(D instanceof Error))return!1;return D.message.includes("thread_start")||D.message.includes("unknown variant")||D.message.includes("Invalid request")}function Zd(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 gE{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=Y3.env.PATH??"",$=Y3.platform==="win32"?";":":",F=Y3.platform==="win32"?(Y3.env.PATHEXT??".EXE").split(";"):[""];for(let X of D.split($)){if(!X)continue;for(let J of F){let G=Od.join(X,`codex${J.toLowerCase()}`);try{if((await Cd.stat(G)).isFile())return G}catch{}}}return null}function hE(D,$){try{D.kill($)}catch{}}function Nd(D){try{D.stdin.end()}catch{}}function Pd(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 qd(D){return D.filter(($)=>$.content.trim().length>0).map(($)=>{let F=$.role==="system"?"System":$.role==="assistant"?"Assistant":$.role==="tool"?"Tool":"User";return`<${F}>
|
|
289
|
-
${$.content}
|
|
290
|
-
</${F}>`}).join(`
|
|
291
|
-
|
|
292
|
-
`)}var E$="0.121.0",xE=120000,Rd=1,R$="codex";var yE=M(()=>{S1();hG()});var uE=M(()=>{yE();hG()});function gG(D){try{let $=JSON.parse(D);if($&&typeof $==="object"&&"type"in $&&typeof $.type==="string")return $;return null}catch{return null}}function yG(D){switch(D.type){case"system":return[];case"assistant_message":return Ld(D);case"thinking":return jd(D);case"tool_use":return Id(D);case"tool_result":return Td(D);case"token_usage":return wd(D);case"stop":case"end":return Sd(D);case"error":return[{type:"error",error:typeof D.message==="string"?D.message:"cursor error"}];default:return[]}}function uG(D){let $=D.session_id;if(typeof $==="string"&&$.length>0)return $;return""}function Ld(D){let $=cE(D.delta,D.text);if(!$)return[];return[{type:"assistant_message_delta",delta:$}]}function jd(D){let $=cE(D.delta,D.text);if(!$)return[];return[{type:"thinking_delta",delta:$}]}function Id(D){if(!D.id||!D.name)return[];let $=D.input??{};return[{type:"tool_use",id:D.id,name:D.name,arguments:$,action:pE(D.name,$),...D.status?{status:bd(D.status)}:{}}]}function Td(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 wd(D){let $=D.usage??{};return[{type:"token_usage",usage:{inputTokens:$.input_tokens??0,outputTokens:$.output_tokens??0}}]}function Sd(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:mE(D.reason)}),$}function mE(D){switch(D){case"length":return"length";case"cancelled":return"cancelled";case"error":return"error";case"stop":case"end_turn":default:return"stop"}}function bd(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 pE(D,$){let F=D.toLowerCase();if(F==="read_file"||F==="read"||F==="view"||F==="open")return{kind:"file_read",path:$7($,["path","file_path","filePath"])};if(F==="edit_file"||F==="edit"||F==="write"||F==="write_file"||F==="apply_patch"){let X=$7($,["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:$7($,["command","cmd","script"])};if(F==="grep"||F==="grep_search"||F==="codebase_search"||F==="search"||F==="find")return{kind:"search",query:$7($,["query","pattern"])};if(F==="web_fetch"||F==="fetch"||F==="web_search")return{kind:"web_fetch",url:$7($,["url","uri"])};return{kind:"tool",toolName:D,...Object.keys($).length>0?{arguments:$}:{}}}function cE(...D){for(let $ of D)if(typeof $==="string"&&$.length>0)return $;return""}function $7(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}
|
|
293
|
-
+ ${D.new_string}`;if(typeof D.oldText==="string"&&typeof D.newText==="string")return`- ${D.oldText}
|
|
294
|
-
+ ${D.newText}`;if(typeof D.diff==="string")return D.diff;if(typeof D.content==="string")return D.content;return}var mG=()=>{};import{spawn as kd}from"child_process";import{once as vd}from"events";import xd from"fs/promises";import hd from"path";import F7 from"process";class z${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 $=md(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??F7.cwd(),X=pd(D.engineBinding);if(D.engineBinding!==void 0&&X===void 0)yield{type:"engine_binding",engine:M$,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 Y=(this.options.spawn??kd)(J.cmd,J.args,{cwd:F,env:I2(this.options.env)});try{Y.stdin.write($),Y.stdin.end()}catch{}let B=this.options.timeoutMs??gd,H=setTimeout(()=>dE(Y,"SIGKILL"),B),W="",Q=null,U="",_=!1,A=vd(Y,"exit").then((R)=>R[0]??null).catch((R)=>{return Q=R instanceof Error?R.message:String(R),null});Y.on("error",(R)=>{Q=R.message});let O=!1,C=()=>{O=!0,dE(Y,"SIGTERM")};D.signal?.addEventListener("abort",C,{once:!0});try{for await(let R of Y.stdout){let{lines:z,remainder:N}=f1(W,R.toString("utf8"));W=N;for(let S of z){let b=gG(S);if(!b)continue;let L=uG(b);if(L){if(this.lastSessionId=L,L!==U)U=L,yield{type:"engine_binding",engine:M$,binding:{sessionId:L}}}for(let q of yG(b)){if(q.type==="error"&&X!==void 0)yield{type:"engine_binding",engine:M$,binding:null};if(yield q,q.type==="finish")_=!0}if(_)break}if(_)break}}catch(R){yield{type:"error",error:R instanceof Error?R.message:String(R)}}finally{clearTimeout(H),D.signal?.removeEventListener("abort",C),ud(Y)}let K=await A;if(!_){if(X!==void 0)yield{type:"engine_binding",engine:M$,binding:null};if(Q)yield{type:"error",error:Q};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??yd)();if(!X)throw Error("cursor-agent binary not found on PATH (install https://cursor.com/cli)");let J=D??this.options.model,G=$??this.options.resumeSessionId,Y=lE({model:J,...G===void 0?{}:{resumeSessionId:G},...this.options.extraArgs===void 0?{}:{extraArgs:this.options.extraArgs}});return{cmd:X,args:Y}}}function lE(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 yd(){let D=F7.env.PATH??"",$=F7.platform==="win32"?";":":",F=F7.platform==="win32"?(F7.env.PATHEXT??".EXE").split(";"):[""];for(let X of D.split($)){if(!X)continue;for(let J of F){let G=hd.join(X,`cursor-agent${J.toLowerCase()}`);try{if((await xd.stat(G)).isFile())return G}catch{}}}return null}function dE(D,$){try{D.kill($)}catch{}}function ud(D){try{D.stdin.end()}catch{}}function md(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 pd(D){if(!D||typeof D.sessionId!=="string"||D.sessionId.length===0)return;return D.sessionId}var gd=120000,M$="cursor";var iE=M(()=>{S1();mG()});var nE=M(()=>{iE();mG()});class cG{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*sE(this.primary,D);if($.kind==="ok")return;if($.yielded)throw $.error;let F=cd($.error),X=$.error;for(let J of this.fallbacks){if(!J.onErrorKinds.includes(F))continue;let G=Math.max(1,J.maxRetries);for(let Y=0;Y<G;Y++){let B=yield*sE(J.executor,D);if(B.kind==="ok")return;if(B.yielded)throw B.error;X=B.error}}throw X}}async function*sE(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 cd(D){if(D===null||D===void 0)return"unknown";let $=rE(D,"status")??rE(D,"statusCode"),F=pG(D,"code"),X=pG(D,"name"),G=(pG(D,"message")??dd(D)).toLowerCase();if($===429||G.includes("rate limit")||G.includes("rate_limit"))return"rate-limit";if($===408||X==="AbortError"||F==="ETIMEDOUT"||G.includes("timeout")||G.includes("engine stall"))return"timeout";if($===401||$===403||G.includes("invalid api key")||G.includes("unauthorized"))return"auth";if(F==="ECONNREFUSED"||F==="ENOTFOUND"||F==="ECONNRESET"||F==="EAI_AGAIN"||X==="TypeError"&&G.includes("fetch failed"))return"network";if(typeof $==="number"&&$>=500&&$<600)return"server-5xx";return"unknown"}function rE(D,$){if(typeof D!=="object"||D===null)return;let F=D[$];return typeof F==="number"?F:void 0}function pG(D,$){if(typeof D!=="object"||D===null)return;let F=D[$];return typeof F==="string"?F:void 0}function dd(D){if(typeof D==="string")return D;if(D instanceof Error)return D.message;try{return String(D)}catch{return""}}import{Buffer as oE}from"buffer";import{spawn as aE}from"child_process";import{once as tE}from"events";class dG{opts;name="cli";constructor(D){this.opts=D}async health(){let D=new Date().toISOString();try{let $=aE(this.opts.command,["--version"],{cwd:this.opts.cwd,env:I2(this.opts.env),stdio:["ignore","pipe","pipe"]}),F=await Promise.race([tE($,"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=aE(this.opts.command,this.opts.args,{cwd:this.opts.cwd,env:I2(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)}
|
|
295
|
-
`),F.stdin.end();let G=setTimeout(()=>F.kill("SIGKILL"),$),[Y]=await tE(F,"exit");if(clearTimeout(G),Y!==0){let B=oE.concat(J).toString("utf8");throw Error(`CLI executor exited with ${Y??"null"}: ${B||"(no stderr)"}`)}return oE.concat(X).toString("utf8")}}var eE=M(()=>{S1()});var ld,id,nd,N$;var lG=M(()=>{mD();ld=V.object({index:V.number().optional(),id:V.string().optional(),type:V.literal("function").optional(),function:V.object({name:V.string().optional(),arguments:V.string().optional()}).optional()}),id=V.object({role:V.enum(["system","user","assistant","tool"]).optional(),content:V.string().nullable().optional(),tool_calls:V.array(ld).optional()}),nd=V.object({prompt_tokens:V.number(),completion_tokens:V.number(),total_tokens:V.number()}),N$=V.object({id:V.string(),object:V.literal("chat.completion.chunk"),created:V.number(),model:V.string(),choices:V.array(V.object({index:V.number(),delta:id,finish_reason:V.enum(["stop","length","tool_calls","content_filter","function_call"]).nullable()})),usage:nd.nullish()})});async function iG(D){let $=D.baseUrl.replace(/\/+$/,""),F=D.timeoutMs??sd,X=new AbortController,J=setTimeout(()=>X.abort(),F),G=()=>X.abort();D.signal?.addEventListener("abort",G,{once:!0});let Y;try{Y=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",G),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(!Y.ok){let B=await Y.text().catch(()=>"");throw clearTimeout(J),D.signal?.removeEventListener("abort",G),new X7(Y.status,Y.statusText,B)}if(!Y.body)throw clearTimeout(J),D.signal?.removeEventListener("abort",G),Error("OpenAI response has no body");return rd(Y.body,()=>{clearTimeout(J),D.signal?.removeEventListener("abort",G)})}async function*rd(D,$){let F=D.getReader(),X=new TextDecoder("utf-8"),J="";try{while(!0){let{value:G,done:Y}=await F.read();if(Y)break;J+=X.decode(G,{stream:!0});while(!0){let B=od(J);if(B===-1)break;let H=J.slice(0,B);J=J.slice(B).replace(/^\r?\n\r?\n/,"");let W=DZ(H);if(!W)continue;if(W==="[DONE]"){yield{type:"done"};return}let Q;try{Q=JSON.parse(W)}catch{continue}let U=N$.safeParse(Q);if(!U.success)continue;yield{type:"chunk",chunk:U.data}}}if(J.trim().length>0){let G=DZ(J);if(G&&G!=="[DONE]")try{let Y=JSON.parse(G),B=N$.safeParse(Y);if(B.success)yield{type:"chunk",chunk:B.data}}catch{}}}finally{$();try{F.releaseLock()}catch{}}}function od(D){let $=D.indexOf(`
|
|
296
|
-
|
|
297
|
-
`),F=D.indexOf(`\r
|
|
298
|
-
\r
|
|
299
|
-
`);if($===-1)return F;if(F===-1)return $;return Math.min($,F)}function DZ(D){let $=D.split(/\r?\n/),F=[];for(let J of $){if(J.startsWith(":"))continue;if(J.startsWith("data:")){let G=J.slice(5).replace(/^ /,"");F.push(G)}}if(F.length===0)return null;let X=F.join(`
|
|
300
|
-
`);if(X==="[DONE]")return"[DONE]";return X}var sd=60000,X7;var $Z=M(()=>{lG();X7=class X7 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 FZ=M(()=>{$Z();lG()});class nG{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(td),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(ad),$.tool_choice="auto";let F;try{F=await iG({baseUrl:this.baseUrl,apiKey:this.apiKey,timeoutMs:this.timeoutMs,body:$,signal:D.signal})}catch(Y){yield{type:"error",error:XZ(Y)};return}let X=new Map,J=null,G;try{for await(let Y of F){if(Y.type==="done")break;let B=Y.chunk.choices[0];if(B){let H=B.delta;if(typeof H.content==="string"&&H.content.length>0)yield{type:"assistant_message_delta",delta:H.content};if(H.tool_calls)for(let W of H.tool_calls)ed(X,W);if(B.finish_reason)J=$l(B.finish_reason)}if(Y.chunk.usage)G={inputTokens:Y.chunk.usage.prompt_tokens,outputTokens:Y.chunk.usage.completion_tokens}}}catch(Y){yield{type:"error",error:XZ(Y)};return}for(let[,Y]of Array.from(X.entries()).sort(([B],[H])=>B-H)){let B=Dl(Y);if(B)yield B}if(G)yield{type:"token_usage",usage:G};yield{type:"finish",reason:J??"stop",...G?{usage:G}:{}}}}function ad(D){return{type:"function",function:{name:D.name,description:D.description,parameters:D.inputSchema}}}function td(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 ed(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 Dl(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 $l(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 XZ(D){if(D instanceof X7)return D.message;if(D instanceof Error)return D.message;return"Unknown executor error"}var JZ=M(()=>{FZ()});class sG{name="mcp";client;constructor(D){this.client=new X3({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 YZ=M(()=>{AG()});import GZ from"process";function oG(D){let $=Fl(D);if(!D.fallbacks||D.fallbacks.length===0)return $;let F=D.fallbacks.map((X)=>({executor:oG(X.executor),onErrorKinds:X.onErrorKinds,maxRetries:X.maxRetries??1}));return new cG($,F)}function Fl(D){let $=J8(D);switch($.engine){case"http":{let F=$.body;return new nG({baseUrl:F.baseUrl,apiKey:F.apiKey,model:$.modelId??F.model,timeoutMs:F.timeoutMs})}case"mcp":{let F=$.body;return new sG({url:F.url,token:F.token,...$.modelId!==void 0?{defaultModel:$.modelId}:F.defaultModel===void 0?{}:{defaultModel:F.defaultModel},...F.tools===void 0?{}:{tools:F.tools},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}case"cli":{let{body:F,cmd:X}=$,J=X?.binary??F.command,G=X?.extraArgs?[...F.args,...X.extraArgs]:F.args,Y=rG(F.env,X?.env);return new dG({command:J,args:G,...F.cwd===void 0?{}:{cwd:F.cwd},...Y===void 0?{}:{env:Y},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs},...F.sandbox===void 0?{}:{sandbox:F.sandbox}})}case"claude-code":{let{body:F,cmd:X}=$,J=X?.cliVersion??F.cliVersion??GZ.env.CLAUDE_CLI_VERSION??C$,G=$.modelId??F.model,Y=BZ(F.extraArgs,X?.extraArgs),B=rG(F.env,X?.env);return new O$({cliVersion:J,...G===void 0?{}:{model:G},...Y===void 0?{}:{extraArgs:Y},...B===void 0?{}:{env:B},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}case"acp":{let{body:F,cmd:X}=$,J=X?.cliVersion??F.cliVersion,G=$.modelId??F.model,Y=BZ(F.extraArgs,X?.extraArgs),B=rG(F.env,X?.env),H=IG(F.agent);return new Q$({agent:H,...G===void 0?{}:{model:G},...J===void 0?{}:{cliVersion:J},...Y===void 0?{}:{extraArgs:Y},...B===void 0?{}:{env:B},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}case"codex":{let{body:F,cmd:X}=$,J=X?.cliVersion??GZ.env.CODEX_CLI_VERSION??E$,G=$.modelId??F.model,Y=X?.extraArgs,B=X?.env;return new Z$({cliVersion:J,...G===void 0?{}:{model:G},...Y===void 0?{}:{extraArgs:Y},...B===void 0?{}:{env:B},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}case"cursor":{let{body:F,cmd:X}=$,J=$.modelId??F.model,G=X?.extraArgs,Y=X?.env;return new z$({...J===void 0?{}:{model:J},...G===void 0?{}:{extraArgs:G},...Y===void 0?{}:{env:Y},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}}}function BZ(D,$){if(!D&&!$)return;return[...D??[],...$??[]]}function rG(D,$){if(!D&&!$)return;return{...D??{},...$??{}}}var HZ=M(()=>{V1();PE();wE();uE();nE();eE();JZ();YZ()});import{Buffer as WZ}from"buffer";import{spawn as Xl}from"child_process";import{once as Jl}from"events";import G3 from"fs/promises";import V8 from"path";function VZ(D,$,F){if(!_Z.test(F))throw new q$(`invalid conversation id: ${F}`);let X=V8.resolve(D),J=V8.resolve(X,$);if(!QZ(X,J))throw new q$(`workspace subdir "${$}" escapes root`);let G=V8.resolve(J,F);if(!QZ(J,G))throw new q$(`workspace "${F}" escapes parent`);return G}function QZ(D,$){let F=V8.relative(D,$);return F===""||!F.startsWith("..")&&!V8.isAbsolute(F)}class aG{root;subdir;gitOrigin;inflight=new Map;constructor(D){this.root=V8.resolve(D.root),this.subdir=D.subdir??"workspaces",this.gitOrigin=D.gitOrigin}async createWorkspace(D){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 $=VZ(this.root,this.subdir,D);if(await P$($)){let F=await P$(V8.join($,".git"));return{conversationId:D,path:$,isGitWorktree:F}}if(await G3.mkdir(V8.dirname($),{recursive:!0}),this.gitOrigin)return await this.addGitWorktree(this.gitOrigin,$),{conversationId:D,path:$,isGitWorktree:!0};return await G3.mkdir($,{recursive:!0}),{conversationId:D,path:$,isGitWorktree:!1}}async disposeWorkspace(D){let $=VZ(this.root,this.subdir,D);if(!await P$($))return;if(this.gitOrigin){if(await this.removeGitWorktree(this.gitOrigin,$))return}await G3.rm($,{recursive:!0,force:!0})}async purgeAll(){let D=V8.resolve(this.root,this.subdir);if(!await P$(D))return;let $=await G3.readdir(D);await Promise.all($.map(async(F)=>{if(!_Z.test(F))return;await this.disposeWorkspace(F).catch(()=>{return})}))}async addGitWorktree(D,$){let F=await UZ(["worktree","add","--detach",$],D);if(F.code!==0)throw await G3.mkdir($,{recursive:!0}),Error(`git worktree add failed (code=${F.code}): ${F.stderr.trim()}`)}async removeGitWorktree(D,$){return(await UZ(["worktree","remove","--force",$],D)).code===0}}async function P$(D){try{return await G3.stat(D),!0}catch{return!1}}async function UZ(D,$){let F=Xl("git",D,{cwd:$,env:KE(),stdio:["ignore","pipe","pipe"]}),X=[],J=[];F.stdout.on("data",(Y)=>X.push(Y)),F.stderr.on("data",(Y)=>J.push(Y));let[G]=await Jl(F,"exit");return{code:G,stdout:WZ.concat(X).toString("utf8"),stderr:WZ.concat(J).toString("utf8")}}var _Z,q$;var AZ=M(()=>{S1();_Z=/^[\w-]{1,128}$/;q$=class q$ extends Error{constructor(D){super(D);this.name="WorkspaceEscapeError"}}});function KZ(D){let $=[D.channel,D.accountId,D.chatId];if(D.threadId!==void 0)$.push(D.threadId);return $.map(encodeURIComponent).join(":")}async function CZ(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 OZ(D){let $=g(),F=D.threadId?pD(k(WD.channel,D.channel),k(WD.chatId,D.chatId),k(WD.threadId,D.threadId)):pD(k(WD.channel,D.channel),k(WD.chatId,D.chatId),m3(WD.threadId));return $.select({sessionKey:WD.sessionKey}).from(WD).where(F).limit(1).get()!==void 0}async function RZ(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),m3(p.threadId),k(p.status,"open"));return $.select().from(p).where(F).orderBy(jD(p.lastActiveAt)).get()??null}function Gl(){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(`
|
|
301
|
-
`)}function Bl(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:Gl()},{role:"user",content:X.join(`
|
|
302
|
-
`)}]}async function EZ(D,$,F,X,J,G){let Y={messages:Bl(F,X,J),...$?{model:$}:{},...G?{workspacePath:G}:{},temperature:0},B="";try{for await(let H of D.run(Y))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 tG(D,$=Yl){return g().select({role:l.role,content:l.content,richMetadata:l.richMetadata}).from(l).where(k(l.conversationId,D)).orderBy(jD(l.id)).limit($*3).all().filter((J)=>!Hl(J)).slice(0,$).reverse().map((J)=>({role:J.role,content:J.content}))}function Hl(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 Yl=4;var ZZ=M(()=>{fD();JD();_0()});function Ul(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 k1(D){return Ql+Ul(D.content)}function eG(D){return D.reduce(($,F)=>$+k1(F),0)}function _l(D){return D?.contextWindowTokens!==void 0||D?.reserveTokens!==void 0||D?.keepRecentTokens!==void 0||D?.compaction?.enabled===!0||D?.compaction?.triggerTokens!==void 0}function DB(D,$){if(!_l(D))return null;let F=D?.contextWindowTokens??Al($)??Wl,X=Ol(D?.reserveTokens??Cl(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 zZ(D){let $=k1(D.systemMessage),F=Math.max(0,Math.min(D.budget.keepRecentTokens,D.budget.contextWindowTokens-D.budget.reserveTokens-$)),X=[],J=0;for(let Y of D.historyNewestFirst){let B=k1(Y);if(!(J+B<=F)){if(X.length===0)X.push(Y),J+=B;break}X.push(Y),J+=B}return{messages:[D.systemMessage,...X.reverse()],contextTokens:$+J,historyTokens:J}}function J7(D){try{let $=J8(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 Al(D){try{let F=J8(D).body,X=Rl(F.contextWindowTokens);if(X!==null)return X;let J=J7(D);return J===void 0?null:Kl(J)}catch{return null}}function Kl(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 Cl(D){return Math.min(Vl,Math.floor(D/4))}function Ol(D,$){return Math.max(0,Math.min(D,Math.max(0,$-1)))}function Rl(D){return typeof D==="number"&&Number.isInteger(D)&&D>0?D:null}var Wl=8192,Vl=1024,MZ=2000,Ql=6;var NZ=M(()=>{V1()});function PZ(D,$){if(!$)return"auto";for(let F of $.rules)if(El(F.pattern,D))return F.action;return $.default}function El(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($)}class JB{deps;constructor(D){this.deps=D}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),G=this.persistUserMessage(F.id,D,X),Y=IZ(D);this.deps.bus.emit("conversation.message",{conversationId:F.id,...Y===void 0?{}:{gatewayConversationId:Y},messageId:G.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?.(),X)})}async run(D,$,F,X,J,G){let Y=g(),B=(await this.maybeCompactConversation({conversation:D,sessionKey:G,workspace:F,signal:X,notifyActivity:J})).conversation,H=await this.buildSystemPrompt(B.summary??null),W=await this.buildRunContext(B.id,H);E6(G,{contextTokens:eG(W)});let Q=J7(this.deps.config.executor),U=LZ($),_=IZ($),A=this.deps.config.executor.engine,O=this.buildAgentRunInput({messages:W,model:Q,workspace:F,signal:X,sessionKey:G,engine:A}),C=await this.collectAssistantText(O,B.id,U,J,G,_);if(!C.ok&&C.staleBindingCleared===!0&&O.engineBinding!==void 0&&C.text.length===0)O=this.buildAgentRunInput({messages:W,model:Q,workspace:F,signal:X,sessionKey:G,engine:A}),C=await this.collectAssistantText(O,B.id,U,J,G,_);if(!C.ok&&this.isContextOverflowError(C.error)){let z=await this.maybeCompactConversation({conversation:B,sessionKey:G,workspace:F,signal:X,notifyActivity:J,force:!0});if(z.compacted){if(B=z.conversation,H=await this.buildSystemPrompt(B.summary??null),W=await this.buildRunContext(B.id,H),E6(G,{contextTokens:eG(W)}),O=this.buildAgentRunInput({messages:W,model:Q,workspace:F,signal:X,sessionKey:G,engine:A}),C=await this.collectAssistantText(O,B.id,U,J,G,_),!C.ok&&C.staleBindingCleared===!0&&O.engineBinding!==void 0&&C.text.length===0)O=this.buildAgentRunInput({messages:W,model:Q,workspace:F,signal:X,sessionKey:G,engine:A}),C=await this.collectAssistantText(O,B.id,U,J,G,_)}}if(!C.ok){let z=C.error??"executor error";E.warn(`[orchestrator] executor error: ${z}`),this.deps.bus.emit("orchestrator.error",{conversationId:B.id,..._===void 0?{}:{gatewayConversationId:_},...U===void 0?{}:{taskId:U},error:z});return}let K=C.text,R=new Date().toISOString();Y.insert(l).values({conversationId:B.id,role:"assistant",content:K,createdAt:R}).run(),Y.update(p).set({lastActiveAt:R}).where(k(p.id,B.id)).run(),E6(G,{at:R}),this.deps.bus.emit("orchestrator.finished",{conversationId:B.id,..._===void 0?{}:{gatewayConversationId:_},...U===void 0?{}:{taskId:U}}),await this.deliver($.channel,B,K)}async collectAssistantText(D,$,F,X,J,G){let Y="",B=!1;try{for await(let H of this.deps.executor.run(D))if(X(),H.type==="assistant_message_delta")Y+=H.delta,this.deps.bus.emit("orchestrator.text",{conversationId:$,...G===void 0?{}:{gatewayConversationId:G},...F===void 0?{}:{taskId:F},delta:H.delta});else if(H.type==="tool_use")this.deps.bus.emit("orchestrator.tool_call",{conversationId:$,...G===void 0?{}:{gatewayConversationId:G},...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($J(J,H.engine,H.binding),H.binding===null)B=!0}}else if(H.type==="error")return{ok:!1,text:Y,error:H.error,staleBindingCleared:B};return{ok:!0,text:Y}}catch(H){return E.error(`[orchestrator] run failed: ${String(H)}`),{ok:!1,text:Y,error:String(H),staleBindingCleared:B}}}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 jl(F)?F:void 0}async deliver(D,$,F){let X=this.deps.config.channels.find((G)=>G.channel===D&&G.enabled);if(!X)return;let J=A1(D);try{await J.send(X,{channel:D,chatId:$.chatId,...$.threadId===void 0?{}:{threadId:$.threadId},text:F})}catch(G){E.warn(`[orchestrator] deliver to ${D} failed: ${String(G)}`)}}async resolveConversation(D){let $=KZ(D),F=await CZ($),J=(F?!0:await OZ(D))?null:await RZ(D),G=F??J;if(!G){let U=this.createConversation(D);return this.upsertSession($,D,U.id),{conversation:U,sessionKey:$}}if(J)this.upsertSession($,D,G.id);if(Il(D)){this.closeConversation(G);let U=this.createConversation(D);return this.rotateSession($,D,U.id,Tl(D)),{conversation:U,sessionKey:$}}let Y=await this.provisionWorkspace(G.id),B=await tG(G.id),H=J7(this.deps.config.executor),W=await EZ(this.deps.executor,H,G.summary??null,B,D.text,Y?.path);if(this.deps.bus.emit("conversation.classifier",{conversationId:G.id,decision:W}),W.continue)return{conversation:FB(G),sessionKey:$};this.closeConversation(G);let Q=this.createConversation(D);return this.rotateSession($,D,Q.id,"classifier:new-topic"),{conversation:Q,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(),G=LZ(D);return this.deps.bus.emit("conversation.created",{conversationId:F,channel:D.channel,chatId:D.chatId,...G===void 0?{}:{taskId:G}}),FB(J)}upsertSession(D,$,F){tX({sessionKey:D,currentConversationId:F,channel:$.channel,chatId:$.chatId,...$.threadId===void 0?{}:{threadId:$.threadId},accountId:$.accountId})}rotateSession(D,$,F,X){if(!eX({sessionKey:D,currentConversationId:F,resetReason:X}))this.upsertSession(D,$,F)}persistUserMessage(D,$,F){let X=g(),J=new Date().toISOString(),G=$.richMetadata?JSON.stringify($.richMetadata):null,Y=X.insert(l).values({conversationId:D,role:"user",content:$.text,...G===null?{}:{richMetadata:G},createdAt:J}).returning({id:l.id}).all();return X.update(p).set({lastActiveAt:J}).where(k(p.id,D)).run(),E6(F,{at:J}),{id:Y[0]?.id??-1}}async maybeCompactConversation(D){let $=this.deps.config.orchestrator?.compaction;if($?.enabled!==!0)return{conversation:D.conversation,compacted:!1};let F=DB(this.deps.config.orchestrator,this.deps.config.executor);if(!F)return{conversation:D.conversation,compacted:!1};let X=this.loadLatestCompactionCheckpoint(D.conversation.id),J=this.loadPromptTranscriptRows(D.conversation.id,X?.compactedThroughMessageId);if(J.length<=1)return{conversation:D.conversation,compacted:!1};let G=await this.buildSystemPrompt(D.conversation.summary??null),Y=k1({role:"system",content:G}),B=Y+J.reduce((z,N)=>z+k1(L$(N)),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-Y)),{candidateRows:Q}=Zl(J,W);if(Q.length===0)return{conversation:D.conversation,compacted:!1};let U=Q[0].id,_=Q[Q.length-1].id,A=await this.runPreCompactionMemoryFlush({conversationId:D.conversation.id,previousSummary:D.conversation.summary??null,rows:Q,compaction:$,workspace:D.workspace,signal:D.signal,notifyActivity:D.notifyActivity,fromId:U,throughId:_}),O;try{O=await this.generateCompactionSummary({previousSummary:D.conversation.summary??null,rows:Q,compaction:$,workspace:D.workspace,signal:D.signal,notifyActivity:D.notifyActivity})}catch(z){return E.warn(`[orchestrator] compaction summary failed: ${String(z)}`),{conversation:D.conversation,compacted:!1}}let C=new Date().toISOString(),K=g();K.insert(l).values({conversationId:D.conversation.id,role:"system",content:O,richMetadata:JSON.stringify({kind:"compaction",version:qZ,compactedFromMessageId:U,compactedThroughMessageId:_,sourceMessageCount:Q.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(),DJ(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?FB(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:qZ,compactedFromMessageId:D.fromId,compactedThroughMessageId:D.throughId};try{let J=(await this.runSuppressedExecutor({messages:Pl(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:Nl(D.previousSummary,D.rows,D.compaction),workspace:D.workspace,signal:D.signal,notifyActivity:D.notifyActivity})).trim();if(F.length>0)return F;return ql(D.previousSummary,D.rows)}async runSuppressedExecutor(D){let $=J7(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(l).values({conversationId:D,role:"system",content:$,richMetadata:JSON.stringify(F),createdAt:X}).run()}loadLatestCompactionCheckpoint(D){let F=g().select({id:l.id,role:l.role,richMetadata:l.richMetadata}).from(l).where(pD(k(l.conversationId,D),k(l.role,"system"))).orderBy(jD(l.id)).all();for(let X of F){let J=TZ(X);if(J?.kind!=="compaction")continue;let G=Ll(J.compactedThroughMessageId);if(G!==null)return{messageId:X.id,compactedThroughMessageId:G}}return null}loadPromptTranscriptRows(D,$){let F=$===void 0?k(l.conversationId,D):pD(k(l.conversationId,D),u3(l.id,$));return g().select({id:l.id,role:l.role,content:l.content,toolCalls:l.toolCalls,toolCallId:l.toolCallId,richMetadata:l.richMetadata}).from(l).where(F).orderBy(g2(l.id)).all().filter((J)=>!jZ(J))}loadPromptTranscriptRowsNewestFirst(D,$,F){let X=$===void 0?k(l.conversationId,D):pD(k(l.conversationId,D),u3(l.id,$));return g().select({id:l.id,role:l.role,content:l.content,toolCalls:l.toolCalls,toolCallId:l.toolCallId,richMetadata:l.richMetadata}).from(l).where(X).orderBy(jD(l.id)).limit(F*3).all().filter((G)=>!jZ(G)).slice(0,F)}isContextOverflowError(D){if(D===void 0)return!1;return/context|token|too large|maximum length|maximum prompt|prompt is too long/i.test(D)}async buildRunContext(D,$){let F={role:"system",content:$},X=DB(this.deps.config.orchestrator,this.deps.config.executor);if(!X){let G=await this.loadHistoryWindow(D);return[F,...G]}let J=await this.loadBudgetHistory(D,X.maxHistoryMessages);return zZ({systemMessage:F,historyNewestFirst:J,budget:X}).messages}async loadHistoryWindow(D){let $=this.deps.config.orchestrator?.maxHistoryMessages??g7,F=this.loadLatestCompactionCheckpoint(D);if(!F)return(await tG(D,$)).map((J)=>({role:J.role,content:J.content}));return this.loadPromptTranscriptRowsNewestFirst(D,F.compactedThroughMessageId,$).reverse().map(L$)}async loadBudgetHistory(D,$){let F=this.loadLatestCompactionCheckpoint(D);return this.loadPromptTranscriptRowsNewestFirst(D,F?.compactedThroughMessageId,$??MZ).map(L$)}async buildSystemPrompt(D){let $=await this.deps.brain.listSkills().catch(()=>[]),F=[`You are worker ${this.deps.workerId}.`,"Respond concisely and helpfully."];if(D&&D.trim().length>0)F.push(`Conversation summary so far: ${D.trim()}`);if($.length>0){F.push("Available brain skills:");for(let X of $.slice(0,10))F.push(`- ${X.name}: ${X.description}`)}return F.join(`
|
|
303
|
-
`)}async runTool(D){let $=PZ(D.toolName,this.deps.config.toolPolicy);if($==="auto")return{decision:"allow",policy:"auto"};if($==="deny"){let Y=`tool ${D.toolName} blocked by policy`;if(D.conversationId!==void 0)this.persistAssistantMessage(D.conversationId,Y);return this.deps.bus.emit("approval.denied",{taskId:D.taskId,toolCallId:D.toolCallId,toolName:D.toolName,reason:"policy"}),{decision:"deny",policy:"deny",syntheticAssistantMessage:Y}}let F=D.timeoutMs??UG,X=Date.now()+F;this.deps.bus.emit("approval.requested",{workerId:this.deps.workerId,taskId:D.taskId,toolCallId:D.toolCallId,toolName:D.toolName,params:D.params,expiresAt:X});let J;try{J=await this.deps.approvals.wait({taskId:D.taskId,toolCallId:D.toolCallId,toolName:D.toolName,params:D.params,timeoutMs:F})}catch{J="deny"}if(J==="allow")return{decision:"allow",policy:"ask"};let G=`tool ${D.toolName} blocked by policy`;if(D.conversationId!==void 0)this.persistAssistantMessage(D.conversationId,G);return{decision:"deny",policy:"ask",syntheticAssistantMessage:G}}persistAssistantMessage(D,$){let F=g(),X=new Date().toISOString();F.insert(l).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(Z2).values({id:F,prompt:D,status:"queued",createdAt:X}).run();let J={workerId:this.deps.workerId,channel:"web",accountId:"sys:task",chatId:`task:${F}`,text:D,receivedAt:X,raw:{taskId:F}};return this.ingest(J).catch((G)=>E.error(`[orchestrator] submitTask ingest failed: ${String(G)}`)),{id:F}}}function LZ(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 L$(D){return{role:D.role,content:D.content,...D.toolCalls===null?{}:{toolCalls:D.toolCalls},...D.toolCallId===null?{}:{toolCallId:D.toolCallId}}}function Zl(D,$){let F=[],X=0;for(let Y=D.length-1;Y>=0;Y-=1){let B=D[Y],H=k1(L$(B));if(F.length>0&&X+H>$)break;F.push(B),X+=H}let J=Ml(D,F.reverse()),G=J[0]?.id;if(G===void 0)return{candidateRows:D,recentRows:[]};return{candidateRows:D.filter((Y)=>Y.id<G),recentRows:J}}function Ml(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=zl(D,X);if(J===null||J>=X)break;X=J}return D.slice(X)}function zl(D,$){let F=new Set;for(let X=$;X<D.length;X+=1){let J=D[X];for(let G of J.toolCalls??[])F.add(G.id);if(J.role!=="tool"||J.toolCallId===null||F.has(J.toolCallId))continue;for(let G=$-1;G>=0;G-=1)if(D[G].toolCalls?.some((B)=>B.id===J.toolCallId)===!0)return G}return null}function Nl(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(`
|
|
304
|
-
`)},{role:"user",content:["Previous durable summary:",D?.trim()||"(none)","","Transcript rows to compact. Raw rows remain stored for audit:",YB($,F.maxSummaryMessages??XB)].join(`
|
|
305
|
-
`)}]}function Pl(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(`
|
|
306
|
-
`)},{role:"user",content:["Previous durable summary:",D?.trim()||"(none)","","Transcript rows about to be compacted:",YB($,F.maxSummaryMessages??XB)].join(`
|
|
307
|
-
`)}]}function YB(D,$){if(D.length<=$)return D.map($B).join(`
|
|
308
|
-
`);let F=Math.ceil($/2),X=Math.floor($/2),J=D.length-F-X;return[...D.slice(0,F).map($B),`... ${J} transcript rows omitted from summarizer prompt ...`,...D.slice(D.length-X).map($B)].join(`
|
|
309
|
-
`)}function $B(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 ql(D,$){let F=$.length===0?"no rows":`rows #${$[0].id}-#${$[$.length-1].id}`;return[D?.trim()||"",`Compacted ${F}.`,YB($,Math.min(12,XB))].filter((X)=>X.length>0).join(`
|
|
310
|
-
|
|
311
|
-
`)}function jZ(D){if(D.role!=="system")return!1;let $=TZ(D);return $?.kind==="compaction"||$?.kind==="memory-flush"}function TZ(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 Ll(D){return typeof D==="number"&&Number.isInteger(D)&&D>0?D:null}function jl(D){return D!==null&&typeof D==="object"&&!Array.isArray(D)}function Il(D){if(!D.raw||typeof D.raw!=="object"||Array.isArray(D.raw))return!1;let $=D.raw;return $.source==="gateway"&&$.sessionReset===!0}function IZ(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 Tl(D){if(!D.raw||typeof D.raw!=="object"||Array.isArray(D.raw))return"manual";let $=D.raw.resetCommand;return $==="/new"||$==="/reset"?`manual:${$}`:"manual"}function FB(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 XB=120,qZ=1;var wZ=M(()=>{cD();fD();JD();_0();V9();ZZ();B$();NZ()});function v1(D,$,F){let X=$E(D,$),J=oG($.executor),G=new W9($.channels),Y=new P9,B=wl($),H=new I1,W=new JB({config:$,brain:X,executor:J,bus:Y,workerId:D,workspaces:B,processes:F.processes,approvals:H}),Q=XE(Y),U=$.evolution.enabled?VE():()=>{return},_=new N9({workerId:D,getOrchestrator:()=>W});return _.start(),{workerId:D,config:$,brain:X,executor:J,channels:G,bus:Y,orchestrator:W,cron:_,workspaces:B,processes:F.processes,approvals:H,dispose(){Q(),U(),H.dispose(),_.stop(),q_()}}}function wl(D){let $=(()=>{if(D.executor.engine!=="claude-code")return;try{let X=J8(D.executor).body.workspaceRoot;return typeof X==="string"&&X.length>0?X:void 0}catch{return}})();return new aG({root:i.WORKER_DATA_ROOT,...$?{subdir:$}:{},...i.WORKER_WORKSPACE_GIT_ORIGIN?{gitOrigin:i.WORKER_WORKSPACE_GIT_ORIGIN}:{}})}var SZ=M(()=>{c4();FE();GJ();V9();lJ();iJ();JE();QE();V1();HZ();AZ();B$();wZ()});var bZ=M(()=>{c4()});import{Buffer as B3}from"buffer";import{createCipheriv as Sl,createDecipheriv as bl,randomBytes as fl}from"crypto";class H3{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=B3.from(D,"hex"),this.key.length!==vl)throw Error("SecretsVault: decoded master key length is not 32 bytes")}async put(D,$){let{ciphertext:F,nonce:X,authTag:J}=this.encrypt($),G=await this.db.select({id:K0.id}).from(K0).where(k(K0.key,D)).get(),Y=new Date().toISOString();if(G)await this.db.update(K0).set({valueEnc:F,nonce:X,authTag:J,updatedAt:Y}).where(k(K0.id,G.id)).run();else await this.db.insert(K0).values({key:D,valueEnc:F,nonce:X,authTag:J,createdAt:Y,updatedAt:Y}).run()}async get(D){let $=await this.db.select().from(K0).where(k(K0.key,D)).get();if(!$)return null;return this.decrypt($.valueEnc,$.nonce,$.authTag)}async list(){return(await this.db.select({key:K0.key}).from(K0).all()).map(($)=>$.key)}async remove(D){await this.db.delete(K0).where(k(K0.key,D)).run()}async removeAll(){await this.db.delete(K0).run()}encryptString(D){return this.encrypt(D)}decryptString(D,$,F){return this.decrypt(D,$,F)}encrypt(D){let $=fl(kl),F=Sl(fZ,this.key,$),X=B3.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=bl(fZ,this.key,B3.from($,"base64"));return X.setAuthTag(B3.from(F,"base64")),B3.concat([X.update(B3.from(D,"base64")),X.final()]).toString("utf8")}}var fZ="aes-256-gcm",kl=12,vl=32;var GB=M(()=>{fD();_0()});function vD(){if(!j$)j$=new H3(i.AIWORKER_MASTER_KEY,g());return j$}function kZ(){j$=null}var j$=null;var vZ=M(()=>{fD();bZ();GB();GB()});function W3(D={}){let $=I$(D.limit,xl,1,hl),F=I$(D.offset,0,0,Number.MAX_SAFE_INTEGER),X=g(),J=D.status===void 0?X.select().from(WD).orderBy(jD(WD.lastInteractionAt)).limit($+1).offset(F).all():X.select().from(WD).where(k(WD.status,D.status)).orderBy(jD(WD.lastInteractionAt)).limit($+1).offset(F).all();return{sessions:J.slice(0,$).map((Y)=>hZ(Y,D.config)),page:{limit:$,offset:F,hasMore:J.length>$}}}function V3(D,$){let F=H0(D);return F===null?null:hZ(F,$)}function Q3(D={}){let $=D.apply===!0,F=BB(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(N8(p.id,J),Z`${p.status} = 'closed'
|
|
312
|
-
AND ${p.closedAt} IS NOT NULL
|
|
313
|
-
AND ${p.closedAt} <= ${F.cutoff}
|
|
314
|
-
AND ${p.id} NOT IN (SELECT ${WD.currentConversationId} FROM ${WD})`)).run();let G=X.select({id:p.id}).from(p).where(N8(p.id,J)).all(),Y=new Set(G.map((H)=>H.id)),B=F.planned.transcripts.filter((H)=>!Y.has(H.conversationId));return{...F,mode:"apply",applied:{conversationsDeleted:B.length,messagesDeleted:B.reduce((H,W)=>H+W.messageCount,0)}}}function BB(D={}){let $=I$(D.olderThanDays,ul,0,3650),F=I$(D.limit,gl,1,yl),X=ll(D.now,$),G=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'
|
|
315
|
-
AND ${p.closedAt} IS NOT NULL
|
|
316
|
-
AND ${p.closedAt} <= ${X}
|
|
317
|
-
AND ${p.id} NOT IN (SELECT ${WD.currentConversationId} FROM ${WD})`).orderBy(g2(p.closedAt),g2(p.id)).limit(F).all(),Y=dl(G.map((W)=>W.id)),B=G.map((W)=>({conversationId:W.id,channel:W.channel,chatId:W.chatId,threadId:W.threadId,closedAt:W.closedAt??"",lastActiveAt:W.lastActiveAt,messageCount:Y.get(W.id)??0})),H=B.reduce((W,Q)=>W+Q.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 hZ(D,$){let F=cl($),X=gZ(D.engineBindings)?D.engineBindings:{},J=xZ(F,X[F],nl(X,F)),G=Object.keys(X).sort().map((Y)=>xZ(Y,X[Y],!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:pl(D),at:D.memoryFlushAt,compactionCount:D.compactionCount,memoryFlushCompactionCount:D.memoryFlushCompactionCount},engineBindings:{configuredEngine:F,configured:J,all:G}}}function xZ(D,$,F){let X=gZ($)?Object.keys($).sort():[];return{engine:D,present:F,valueType:F?il($):"unknown",fieldCount:X.length,fields:X,redacted:!0}}function pl(D){if(D.compactionCount===0)return"not-needed";if(D.memoryFlushAt===null)return"never";return D.memoryFlushCompactionCount>=D.compactionCount?"current":"stale"}function cl(D){let F=D?.executor?.engine;return typeof F==="string"&&F.length>0?F:"unknown"}function dl(D){if(D.length===0)return new Map;let $=g().select({conversationId:l.conversationId,value:_4()}).from(l).where(N8(l.conversationId,D)).groupBy(l.conversationId).all();return new Map($.map((F)=>[F.conversationId,F.value]))}function ll(D,$){let F=D===void 0?new Date:new Date(D);return new Date(F.getTime()-$*ml).toISOString()}function il(D){if(D===null)return"null";if(Array.isArray(D))return"array";let $=typeof D;if($==="boolean"||$==="number"||$==="object"||$==="string")return $;return"unknown"}function gZ(D){return D!==null&&typeof D==="object"&&!Array.isArray(D)}function nl(D,$){return Object.prototype.hasOwnProperty.call(D,$)}function I$(D,$,F,X){if(D===void 0||!Number.isInteger(D))return $;return Math.max(F,Math.min(X,D))}var xl=50,hl=200,gl=50,yl=200,ul=30,ml=86400000;var yZ=M(()=>{fD();_0()});var uZ={};n8(uZ,{workerEnv:()=>i,timingSafeEqualStrings:()=>u2,stopGatewayNode:()=>kR,startGatewayNode:()=>G$,runClosedTranscriptMaintenance:()=>Q3,resetSecretsVaultForTests:()=>kZ,resetAvailabilityProbeForTests:()=>AC,redactSecrets:()=>i4,readConfig:()=>E0,putSecret:()=>$3,putConfig:()=>o9,printBootstrapIfJustMinted:()=>_1,planClosedTranscriptMaintenance:()=>BB,mirrorConfigToYaml:()=>a9,mintWorkerId:()=>d4,mintApiToken:()=>M6,loadOrSeedConfig:()=>Q1,loadOrMintIdentity:()=>U1,listSessionStatuses:()=>W3,listSecrets:()=>D3,hydrateSecrets:()=>N6,handleTokenRotate:()=>l8,handleExecutorTest:()=>t6,handleChannelTest:()=>a6,handleBrainTest:()=>o6,getWorkerEnv:()=>W1,getSessionStatus:()=>V3,getSecretsVault:()=>vD,getChannelAdapter:()=>A1,getAvailabilityProbe:()=>h6,enumerateSecretPaths:()=>Y8,deleteSecret:()=>F3,buildWorkerRuntime:()=>v1,buildInfo:()=>e6,buildCronHandlers:()=>J$,applyConfigUpdate:()=>r6,WorkerEventBus:()=>P9,SecretsVault:()=>H3,ProcessManager:()=>w1,InvalidConfigError:()=>l2,DEFAULT_EMPTY_CONFIG:()=>Z6,CronService:()=>N9,ConfigVersionConflictError:()=>i2,ChannelRegistry:()=>W9,ApprovalStore:()=>I1});var $2=M(()=>{c4();Z_();V9();lJ();iJ();K5();vR();WG();xR();HG();gR();yR();uR();B$();dR();SZ();vZ();l4();yZ()});import o from"process";import{EventEmitter as yz}from"events";function c$(D){return D==null?[]:Array.isArray(D)?D:[D]}function uz(D,$,F,X){var J,G=D[$],Y=~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[$]=G==null?Y:Array.isArray(G)?G.concat(Y):[G,Y]}function mz(D,$){D=D||[],$=$||{};var F,X,J,G,Y,B={_:[]},H=0,W=0,Q=0,U=D.length;let _=$.alias!==void 0,A=$.unknown!==void 0,O=$.default!==void 0;if($.alias=$.alias||{},$.string=c$($.string),$.boolean=c$($.boolean),_)for(F in $.alias){X=$.alias[F]=c$($.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(G=typeof $.default[F],X=$.alias[F]=$.alias[F]||[],$[G]!==void 0){$[G].push(F);for(H=0;H<X.length;H++)$[G].push(X[H])}}let C=A?Object.keys($.alias):[];for(H=0;H<U;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(G=J.substring(W+3),A&&!~C.indexOf(G))return $.unknown(J);B[G]=!1}else{for(Q=W+1;Q<J.length;Q++)if(J.charCodeAt(Q)===61)break;G=J.substring(W,Q),Y=J.substring(++Q)||(H+1===U||(""+D[H+1]).charCodeAt(0)===45||D[++H]),X=W===2?[G]:G;for(Q=0;Q<X.length;Q++){if(G=X[Q],A&&!~C.indexOf(G))return $.unknown("-".repeat(W)+G);uz(B,G,Q+1<X.length||Y,$)}}}if(O){for(F in $.default)if(B[F]===void 0)B[F]=$.default[F]}if(_)for(F in B){X=$.alias[F]||[];while(X.length>0)B[X.shift()]=B[F]}return B}var gB=(D)=>D.replace(/[<[].+/,"").trim(),pz=(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}},G;while(G=$.exec(D))X.push(J(G));let Y;while(Y=F.exec(D))X.push(J(Y));return X},cz=(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((G,Y)=>{return Y!==F&&G.names.some((B)=>X.names.includes(B))&&typeof G.required==="boolean"}))$.boolean.push(X.names[0])}else $.boolean.push(X.names[0])}return $},xB=(D)=>{return D.sort(($,F)=>{return $.length>F.length?-1:1})[0]},hB=(D,$)=>{return D.length>=$?D:`${D}${" ".repeat($-D.length)}`},dz=(D)=>{return D.replace(/([a-z])-([a-z])/g,($,F,X)=>{return F+X.toUpperCase()})},lz=(D,$,F)=>{let X=0,J=$.length,G=D,Y;for(;X<J;++X)Y=G[$[X]],G=G[$[X]]=X===J-1?F:Y!=null?Y:!!~$[X+1].indexOf(".")||!(+$[X+1]>-1)?{}:[]},iz=(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)}}},nz=(D)=>{let $=/([^\\\/]+)$/.exec(D);return $?$[1]:""},yB=(D)=>{return D.split(".").map(($,F)=>{return F===0?dz($):$}).join(".")};class Z7 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 uB{constructor(D,$,F){if(this.rawName=D,this.description=$,this.config=Object.assign({},F),D=D.replace(/\.\*/g,""),this.negated=!1,this.names=gB(D).split(",").map((X)=>{let J=X.trim().replace(/^-{1,2}/,"");if(J.startsWith("no-"))this.negated=!0,J=J.replace(/^no-/,"");return yB(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 sz=process.argv,rz=`${process.platform}-${process.arch} node-${process.version}`;class d${constructor(D,$,F={},X){this.rawName=D,this.description=$,this.config=F,this.cli=X,this.options=[],this.aliasNames=[],this.name=gB(D),this.args=pz(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 uB(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 l$}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,G=[{body:`${D}${F?`/${F}`:""}`}];if(G.push({title:"Usage",body:` $ ${D} ${this.usageText||this.rawName}`}),(this.isGlobalCommand||this.isDefaultCommand)&&$.length>0){let H=xB($.map((W)=>W.rawName));G.push({title:"Commands",body:$.map((W)=>{return` ${hB(W.rawName,H.length)} ${W.description}`}).join(`
|
|
318
|
-
`)}),G.push({title:"For more info, run any command with the `--help` flag",body:$.map((W)=>` $ ${D}${W.name===""?"":` ${W.name}`} --help`).join(`
|
|
319
|
-
`)})}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=xB(B.map((W)=>W.rawName));G.push({title:"Options",body:B.map((W)=>{return` ${hB(W.rawName,H.length)} ${W.description} ${W.config.default===void 0?"":`(default: ${W.config.default})`}`}).join(`
|
|
320
|
-
`)})}if(this.examples.length>0)G.push({title:"Examples",body:this.examples.map((H)=>{if(typeof H==="function")return H(D);return H}).join(`
|
|
321
|
-
`)});if(J)G=J(G)||G;console.log(G.map((H)=>{return H.title?`${H.title}:
|
|
322
|
-
${H.body}`:H.body}).join(`
|
|
323
|
-
|
|
324
|
-
`))}outputVersion(){let{name:D}=this.cli,{versionNumber:$}=this.cli.globalCommand;if($)console.log(`${D}/${$} ${rz}`)}checkRequiredArgs(){let D=this.args.filter(($)=>$.required).length;if(this.cli.args.length<D)throw new Z7(`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 Z7(`Unknown option \`${F.length>1?`--${F}`:`-${F}`}\``)}}checkOptionValue(){let{options:D,globalCommand:$}=this.cli,F=[...$.options,...this.options];for(let X of F){let J=D[X.name.split(".")[0]];if(X.required){let G=F.some((Y)=>Y.negated&&Y.names.includes(X.name));if(J===!0||J===!1&&!G)throw new Z7(`option \`${X.rawName}\` value is missing`)}}}}class l$ extends d${constructor(D){super("@@global@@","",{},D)}}var E7=Object.assign;class mB extends yz{constructor(D=""){super();this.name=D,this.commands=[],this.rawArgs=[],this.args=[],this.options={},this.globalCommand=new l$(this),this.globalCommand.usage("<command> [options]")}usage(D){return this.globalCommand.usage(D),this}command(D,$,F){let X=new d$(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=sz,{run:$=!0}={}){if(this.rawArgs=D,!this.name)this.name=D[1]?nz(D[1]):"cli";let F=!0;for(let J of this.commands){let G=this.mri(D.slice(2),J),Y=G.args[0];if(J.isMatched(Y)){F=!1;let B=E7(E7({},G),{args:G.args.slice(1)});this.setParsedInfo(B,J,Y),this.emit(`command:${Y}`,J)}}if(F){for(let J of this.commands)if(J.name===""){F=!1;let G=this.mri(D.slice(2),J);this.setParsedInfo(G,J),this.emit("command:!",J)}}if(F){let J=this.mri(D.slice(2));this.setParsedInfo(J)}if(this.options.help&&this.showHelpOnExit)this.outputHelp(),$=!1,this.unsetMatchedCommand();if(this.options.version&&this.showVersionOnExit&&this.matchedCommandName==null)this.outputVersion(),$=!1,this.unsetMatchedCommand();let X={args:this.args,options:this.options};if($)this.runMatchedCommand();if(!this.matchedCommand&&this.args[0])this.emit("command:*");return X}mri(D,$){let F=[...this.globalCommand.options,...$?$.options:[]],X=cz(F),J=[],G=D.indexOf("--");if(G>-1)J=D.slice(G+1),D=D.slice(0,G);let Y=mz(D,X);Y=Object.keys(Y).reduce((U,_)=>{return E7(E7({},U),{[yB(_)]:Y[_]})},{_:[]});let B=Y._,H={"--":J},W=$&&$.config.ignoreOptionDefaultValue?$.config.ignoreOptionDefaultValue:this.globalCommand.config.ignoreOptionDefaultValue,Q=Object.create(null);for(let U of F){if(!W&&U.config.default!==void 0)for(let _ of U.names)H[_]=U.config.default;if(Array.isArray(U.config.type)){if(Q[U.name]===void 0)Q[U.name]=Object.create(null),Q[U.name].shouldTransform=!0,Q[U.name].transformFunction=U.config.type[0]}}for(let U of Object.keys(Y))if(U!=="_"){let _=U.split(".");lz(H,_,Y[U]),iz(H,Q)}return{args:B,options:H}}runMatchedCommand(){let{args:D,options:$,matchedCommand:F}=this;if(!F||!F.commandAction)return;F.checkUnknownOptions(),F.checkOptionValue(),F.checkRequiredArgs();let X=[];return F.args.forEach((J,G)=>{if(J.variadic)X.push(D.slice(G));else X.push(D[G])}),X.push($),F.commandAction.apply(this,X)}}var oz=(D="")=>new mB(D),pB=oz;JD();var fH={name:"@zonease/aiworker-cli",type:"module",version:"0.4.8",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 --outdir=dist 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"}};JD();import hW from"process";D0();class B0 extends Error{code;constructor(D,$="aim_ws_error"){super(D);this.code=$;this.name="AimWsError"}}function IW(){let D=null,$=!1,F=!1,X=new Map,J=new Map;function G(K){for(let[,R]of X){if(R.timer)clearTimeout(R.timer);R.signalCleanup?.(),R.reject(K)}X.clear()}function Y(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 z=K.error;R.reject(new B0(`${z.code}: ${z.message}`,z.code))}}function B(K){let R=J.get(K.name);if(!R||R.size===0)return;for(let z of R)try{z(K.payload)}catch{}}function H(K){let R=x2(K);if(!R.ok)return;let z=R.frame;if(z.type==="response")Y(z);else if(z.type==="event")B(z)}async function W(K){if($)throw new B0("aim client \u5DF2\u7ECF\u8FDE\u63A5","already_connected");let R=K.timeoutMs??1e4;await new Promise((z,N)=>{let S=!1,b;try{b=new WebSocket(K.url)}catch(q){N(new B0(`WebSocket \u6784\u9020\u5931\u8D25 (${K.url}): ${q instanceof Error?q.message:String(q)}`,"ws_construct_failed"));return}D=b;let L=setTimeout(()=>{if(S)return;S=!0;try{b.close()}catch{}N(new B0(`\u8FDE\u63A5 gateway \u8D85\u65F6 (>${R}ms): ${K.url}`,"connect_timeout"))},R);b.onopen=()=>{let q={type:"connect",role:$1.OPERATOR,agentId:K.deviceId,deviceId:K.deviceId,auth:{token:K.token},...K.meta?{meta:K.meta}:{}};try{b.send(LD(q))}catch(j){if(S)return;S=!0,clearTimeout(L),N(new B0(`\u53D1\u9001 connect \u5E27\u5931\u8D25: ${j instanceof Error?j.message:String(j)}`,"connect_send_failed"));return}if(!S)S=!0,clearTimeout(L),$=!0,z()},b.onmessage=(q)=>{let j=typeof q.data==="string"?q.data:q.data instanceof ArrayBuffer?new TextDecoder().decode(q.data):String(q.data);H(j)},b.onerror=(q)=>{if(S)return;S=!0,clearTimeout(L);let j=q.message??"unknown";N(new B0(`WS \u8FDE\u63A5\u9519\u8BEF: ${j}`,"ws_error"))},b.onclose=(q)=>{if(F=!0,$=!1,G(new B0(`WS \u5DF2\u5173\u95ED (code=${q.code}, reason=${q.reason||"n/a"})`,"ws_closed")),!S)S=!0,clearTimeout(L),N(new B0(`WS \u5728\u63E1\u624B\u9636\u6BB5\u88AB\u5173\u95ED (code=${q.code})`,"ws_closed_early"))}})}function Q(){if(!$||F||D===null||D.readyState!==WebSocket.OPEN)throw new B0("aim client \u672A\u8FDE\u63A5\u6216\u5DF2\u5173\u95ED","not_connected")}async function U(K,R,z){Q();let N=crypto.randomUUID(),S={type:"request",id:N,method:K,...R===void 0?{}:{params:R}};return await new Promise((b,L)=>{let q=z?.timeoutMs??30000,j=null,d=null,VD={resolve:b,reject:L,timer:null,signalCleanup:null};if(j=setTimeout(()=>{X.delete(N),d?.(),L(new B0(`request ${K} \u8D85\u65F6 (>${q}ms)`,"request_timeout"))},q),VD.timer=j,z?.signal){let QD=z.signal;if(QD.aborted){X.delete(N),clearTimeout(j),L(QD.reason??new B0(`request ${K} \u88AB abort`,"aborted"));return}let $D=()=>{if(X.delete(N),j)clearTimeout(j);L(QD.reason??new B0(`request ${K} \u88AB abort`,"aborted"))};QD.addEventListener("abort",$D,{once:!0}),d=()=>QD.removeEventListener("abort",$D),VD.signalCleanup=d}X.set(N,VD);try{D?.send(LD(S))}catch(QD){if(X.delete(N),j)clearTimeout(j);d?.(),L(new B0(`request ${K} \u53D1\u9001\u5931\u8D25: ${QD instanceof Error?QD.message:String(QD)}`,"send_failed"))}})}async function _(K,R,z){if(!l7(K))throw new B0(`method ${K} \u672A\u5728 @zonease/aiworker-gateway-proto \u6CE8\u518C`,"unknown_method");return await U(K,R,z)}function A(K,R){if(!CF(K));let z=J.get(K);if(!z)z=new Set,J.set(K,z);return z.add(R),()=>{let N=J.get(K);if(!N)return;if(N.delete(R),N.size===0)J.delete(K)}}async function O(K,R){if(!D||F)return;await new Promise((z)=>{let N=D;if(!N){z();return}if(N.readyState===WebSocket.CLOSED){F=!0,$=!1,z();return}let S=N.onclose;N.onclose=(b)=>{if(typeof S==="function")S.call(N,b);z()};try{N.close(K,R)}catch{}})}function C(){return $&&!F&&D!==null&&D.readyState===WebSocket.OPEN}return{connect:W,request:_,requestRaw:U,onEvent:A,close:O,isOpen:C}}X1();async function ZD(D,$={}){let F=await a7(),X=IW();try{await X.connect({url:S3($.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);hW.stdout.write(`${$}
|
|
325
|
-
`)}function K2(D){hW.stdout.write(`${JSON.stringify(D)}
|
|
326
|
-
`)}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 gW(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((Y)=>Y.online).map((Y)=>Y.workerId),G=[];for(let Y of J)try{let B=await F.request("approval.list",{workerId:Y});for(let H of B.approvals)G.push(H)}catch(B){E.warn(`approval.list ${Y} \u5931\u8D25: ${B instanceof Error?B.message:String(B)}`)}return{approvals:G}});return SD($),0}catch($){return E.error(`approvals list \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),CD($)}}async function yW(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();JD();async function uW(D){let $=D.timeoutMs??120000;try{return await ZD(async({client:F})=>{return await new Promise((X)=>{let J=!1,G=(Q)=>{if(J)return;J=!0,X(Q)},Y=setTimeout(()=>{K2({kind:"error",payload:{code:"timeout",message:`chat \u7B49\u5F85 agent.done \u8D85\u65F6 (>${$}ms)`}}),G(3)},$),B=D.workerId,H=(Q)=>{if(Q===null||typeof Q!=="object")return!1;let U=Q.workerId;return typeof U==="string"&&U===B},W=[];W.push(F.onEvent(e.CHAT_MESSAGE,(Q)=>{if(!H(Q))return;K2({kind:e.CHAT_MESSAGE,payload:Q})})),W.push(F.onEvent(e.AGENT_THINKING,(Q)=>{if(!H(Q))return;K2({kind:e.AGENT_THINKING,payload:Q})})),W.push(F.onEvent(e.AGENT_TOOL_CALL,(Q)=>{if(!H(Q))return;K2({kind:e.AGENT_TOOL_CALL,payload:Q})})),W.push(F.onEvent(e.AGENT_DONE,(Q)=>{if(!H(Q))return;K2({kind:"done",payload:Q}),clearTimeout(Y);for(let U of W)U();G(0)})),F.request("chat.send",{workerId:D.workerId,content:D.content,...D.conversationId===void 0?{}:{conversationId:D.conversationId}},{timeoutMs:Math.min($,30000)}).then((Q)=>{K2({kind:"accepted",payload:Q})}).catch((Q)=>{K2({kind:"error",payload:{code:"request_failed",message:Q instanceof Error?Q.message:String(Q)}}),clearTimeout(Y);for(let U of W)U();G(CD(Q))})})})}catch(F){return E.error(`chat \u5931\u8D25: ${F instanceof Error?F.message:String(F)}`),CD(F)}}JD();async function mW(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 pW(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)}}JD();async function cW(){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 dW(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 lW(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 g4 from"process";import{createHash as fI}from"crypto";D0();TX();SX();import{existsSync as rQ,mkdirSync as Oj}from"fs";import a3 from"path";import{fileURLToPath as Rj}from"url";import{Database as Ej}from"bun:sqlite";M4();var bX={};n8(bX,{registeredWorkers:()=>zD,auditEvents:()=>D8});var zD=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:bD("last_config_version")}),D8=U0("audit_events",{id:bD("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:m0("audit_events_worker_id_idx").on(D.workerId)}));var oQ=a3.dirname(Rj(import.meta.url));function Zj(D){let $=a3.resolve(oQ,"../../drizzle",D);if(rQ($))return $;let F=a3.resolve(oQ,"drizzle",D);if(rQ(F))return F;return $}var fX=Zj("fleet"),t3=null;function Mj(D){let $=D===":memory:"?D:a3.resolve(D);try{if($!==":memory:")Oj(a3.dirname($),{recursive:!0,mode:448});let F=new Ej($,{create:!0});return F.exec("PRAGMA journal_mode = WAL"),F.exec("PRAGMA foreign_keys = ON"),A6(F,{schema:bX})}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 aQ(D){return t3=Mj(D),t3}function kX(){if(!t3)throw Error("Fleet database not initialized. Call initFleetDb() first.");return t3}function vX(){t3=null}function tQ(D=fX){N4(kX(),{migrationsFolder:D})}JD();A2();cD();mD();import eQ from"path";import zj from"process";var Nj=V.object({AIWORKER_GATEWAY_PORT:V.coerce.number().int().positive().max(65535).default(9218),AIWORKER_GATEWAY_HOST:V.string().min(1).default("127.0.0.1"),AIWORKER_ADMIN_EXTERNAL_AUTH:V.enum(["1","true","0","false"]).default("0").transform(I3),INTERNAL_SHARED_SECRET:V.string().min(16).optional(),NODE_ENV:V.enum(["development","production","test"]).default("development"),AIWORKER_MASTER_KEY:V.string().regex(/^[0-9a-f]{64}$/,"AIWORKER_MASTER_KEY must be 32-byte hex (64 hex chars)").optional(),AIWORKER_FLEET_DB_PATH:V.string().optional(),AIWORKER_GATEWAY_CAN_LAUNCH:V.enum(["true","false"]).default("false").transform((D)=>D==="true"),AIWORKER_MAX_WORKERS:V.coerce.number().int().positive().optional(),AIWORKER_JOIN_TOKEN:V.string().min(16).optional(),AIWORKER_ENROLL_OTP_TTL_SEC:V.coerce.number().int().min(30).max(3600).default(300),DOCKER_HOST:V.string().default("/var/run/docker.sock"),AIWORKER_IMAGE:V.string().optional(),AIWORKER_NETWORK:V.string().default("aiworker_default"),WORKER_DATA_ROOT:V.string().optional(),WORKER_MEMORY_LIMIT:V.string().optional(),WORKER_CPU_LIMIT:V.coerce.number().optional(),AIWORKER_LAUNCH_BASE_URL_TEMPLATE:V.string().default("http://{containerName}:9217")}).superRefine((D,$)=>{if(!D.AIWORKER_GATEWAY_CAN_LAUNCH)return;if(!D.INTERNAL_SHARED_SECRET)$.addIssue({code:V.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:V.ZodIssueCode.custom,path:[X],message:`${X} is required when AIWORKER_GATEWAY_CAN_LAUNCH=true`})});function DU(){let D=Nj.parse(zj.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:Pj(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 Pj(D){if(D===":memory:")return D;let $=D&&D.length>0?D:eQ.join(U2(),"fleet.db");return eQ.resolve($)}D0();function f0(D,$){let F=LD($);D.forEach((X)=>{try{X.ws.send(F)}catch{}})}class P4{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 q4{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 L4{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 j4{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 qj}from"crypto";var xX="ABCDEFGHJKMNPQRSTVWXYZ23456789",$U=4,Lj=5;class I4{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??jj}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<Lj;D++){let $=this.generator();if(!this.entries.has($))return $}throw Error("PendingEnrollmentRegistry: failed to allocate unique OTP after retries")}}function jj(){return`${FU($U)}-${FU($U)}`}function FU(D){let $=qj(D),F="";for(let X=0;X<D;X++)F+=xX[$[X]%xX.length];return F}_0();import{Buffer as XU}from"buffer";import{createCipheriv as Ij,createDecipheriv as D2D,randomBytes as Tj,timingSafeEqual as $2D}from"crypto";var wj="aes-256-gcm",Sj=12,bj=32,fj=/^[0-9a-f]{64}$/;function kj(D){if(!fj.test(D))throw Error("Gateway AIWORKER_MASTER_KEY must be 32-byte hex");let $=XU.from(D,"hex");if($.length!==bj)throw Error("Gateway AIWORKER_MASTER_KEY must be 32-byte hex");return $}function T4(D,$){let F=kj($),X=Tj(Sj),J=Ij(wj,F,X),G=XU.concat([J.update(D,"utf8"),J.final()]),Y=J.getAuthTag();return{ciphertext:G.toString("base64"),nonce:X.toString("base64"),authTag:Y.toString("base64")}}function vj(D){return D.replace(/[\\%_]/g,($)=>`\\${$}`)}class w4{db;constructor(D){this.db=D}listRegisteredWorkers(){return this.db.select().from(zD).orderBy(jD(zD.addedAt)).all().map(($)=>{let{apiTokenEnc:F,nonce:X,authTag:J,...G}=$;return{...G,lastSeenAt:G.lastSeenAt??void 0,lastSeenState:G.lastSeenState??void 0,lastConfigVersion:G.lastConfigVersion??void 0}})}getRegisteredWorker(D){let $=this.db.select().from(zD).where(k(zD.id,D)).get();if(!$)return;let{apiTokenEnc:F,nonce:X,authTag:J,...G}=$;return{...G,lastSeenAt:G.lastSeenAt??void 0,lastSeenState:G.lastSeenState??void 0,lastConfigVersion:G.lastConfigVersion??void 0}}getRegisteredWorkerRaw(D){let $=this.db.select().from(zD).where(k(zD.id,D)).get();if(!$)return;return{...$,lastSeenAt:$.lastSeenAt??void 0,lastSeenState:$.lastSeenState??void 0,lastConfigVersion:$.lastConfigVersion??void 0}}createRegisteredWorker(D,$){let F=T4(D.apiToken,$),X=new Date().toISOString(),J=D.baseUrl.replace(/\/+$/,""),G={id:D.workerId,baseUrl:J,displayName:D.displayName,apiTokenEnc:F.ciphertext,nonce:F.nonce,authTag:F.authTag,addedAt:X,addedBy:D.addedBy??"manual",lastSeenAt:X,lastSeenState:"online",lastConfigVersion:D.configVersion};this.db.insert(zD).values(G).run(),this.db.insert(D8).values({actor:"gateway",action:"gateway.worker.paired",workerId:D.workerId,detail:{baseUrl:J,displayName:D.displayName,addedBy:G.addedBy}}).run();let{apiTokenEnc:Y,nonce:B,authTag:H,...W}=G;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(zD).where(k(zD.id,D.workerId)).get();if(!J){let W=T4(D.apiToken,$),Q={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(zD).values(Q).run();let{apiTokenEnc:U,nonce:_,authTag:A,...O}=Q;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(zD).set({displayName:D.displayName,lastSeenAt:X,lastSeenState:"online"}).where(k(zD.id,D.workerId)).run();let{apiTokenEnc:W,nonce:Q,authTag:U,..._}=J;return{kind:"updated",row:{..._,displayName:D.displayName,lastSeenAt:X,lastSeenState:"online",lastConfigVersion:_.lastConfigVersion??void 0}}}this.db.update(zD).set({lastSeenAt:X,lastSeenState:"online"}).where(k(zD.id,D.workerId)).run();let{apiTokenEnc:G,nonce:Y,authTag:B,...H}=J;return{kind:"unchanged",row:{...H,lastSeenAt:X,lastSeenState:"online",lastConfigVersion:H.lastConfigVersion??void 0}}}updateEncryptedToken(D,$){if(!this.db.select({id:zD.id}).from(zD).where(k(zD.id,D.workerId)).get())return!1;let X=T4(D.newToken,$);return this.db.update(zD).set({apiTokenEnc:X.ciphertext,nonce:X.nonce,authTag:X.authTag}).where(k(zD.id,D.workerId)).run(),!0}removeRegisteredWorker(D){if(!this.db.select({id:zD.id}).from(zD).where(k(zD.id,D)).get())return!1;return this.db.delete(zD).where(k(zD.id,D)).run(),!0}countRegisteredWorkers(){return this.db.select({value:_4()}).from(zD).get()?.value??0}recordAudit(D){this.db.insert(D8).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(J4(D8.id,D.before));if(D.actionPrefix&&D.actionPrefix.length>0){let B=`${vj(D.actionPrefix)}%`;F.push(Z`${D8.action} LIKE ${B} ESCAPE '\\'`)}if(D.workerId&&D.workerId.length>0)F.push(k(D8.workerId,D.workerId));let X=F.length===0?void 0:F.length===1?F[0]:pD(...F),J=this.db.select().from(D8).where(X).orderBy(jD(D8.id)).limit($+1).all(),G=J.length>$;return{events:(G?J.slice(0,$):J).map((B)=>({id:B.id,at:B.at,actor:B.actor,action:B.action,workerId:B.workerId??null,detail:B.detail??null})),hasMore:G}}}D0();cD();import{Buffer as KI}from"buffer";import{createHash as CI}from"crypto";import{resolve as hX,sep as xj}from"path";async function S4(D){let{webStaticDir:$}=D,F=hX($),X;try{X=hj(decodeURIComponent(D.pathnameAfterPrefix))}catch{return new Response("forbidden",{status:403})}let J=X===""?"index.html":X,G=hX(F,J);if(G!==F&&!G.startsWith(F+xj))return new Response("forbidden",{status:403});let Y=Bun.file(G);if(await Y.exists())return new Response(Y);if(!gj(J)){let B=Bun.file(hX(F,"index.html"));if(await B.exists())return new Response(B)}return new Response("not found",{status:404})}function hj(D){let $=0;while($<D.length&&D[$]==="/")$+=1;return D.slice($)}function gj(D){let $=D.lastIndexOf("/");return($===-1?D:D.slice($+1)).includes(".")}cD();function JU(D){if(D1(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
|
|
327
|
-
`+`
|
|
328
|
-
`+`\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
|
|
329
|
-
`+`\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
|
|
330
|
-
`+`
|
|
331
|
-
`+`\u4FEE\u590D\u65B9\u5F0F\u4E8C\u9009\u4E00\uFF1A
|
|
332
|
-
`+` 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
|
|
333
|
-
`+" 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 YU}from"buffer";import{timingSafeEqual as yj}from"crypto";function GU(D,$){let F=YU.from(D,"utf8"),X=YU.from($,"utf8");if(F.length!==X.length)return!1;return yj(F,X)}function BU(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(!GU(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(!GU(D.presentedToken,D.sharedSecret))return{ok:!1,reason:"invalid_token"};return{ok:!0,via:"shared-secret"}}D0();cD();var f4="/w/",p0="/api/worker",uj=60000,gX=1048576,mj=50,b4=0;async function VU(D,$,F){let X=Date.now(),J=pj($.pathname);if(J===void 0)return oD(404,"not-found","Not a worker bridge path");if(!J.ok)return oD(400,"invalid-worker-id",J.message);if(J.value.workerApiPath===`${p0}/events/stream`)return lj(D,$,F,J.value,X);let G=await cj(D,$,J.value);if(!G.ok){if(G.audit)yX(F,{workerId:J.value.workerId,method:G.audit.method,path:$.pathname,result:"error",status:G.response.status,latencyMs:uX(X),errorCode:G.audit.errorCode});return G.response}let Y=await nj({ctx:F,workerId:J.value.workerId,method:G.value.method,params:G.value.params,signal:D.signal}),B=sj(Y,G.value.transformResult);return yX(F,{workerId:J.value.workerId,method:G.value.method,path:$.pathname,result:Y.ok?"success":"error",status:B.status,latencyMs:uX(X),...Y.ok?{}:{errorCode:Y.error.code}}),B}function QU(D){if(!D.startsWith(f4))return!1;let $=D.slice(f4.length),F=$.indexOf("/");if(F===-1)return!1;return $.slice(F).startsWith(p0)}function pj(D){if(!D.startsWith(f4))return;let $=D.slice(f4.length),F=$.indexOf("/"),X=F===-1?$:$.slice(0,F);if(!x0.test(X))return{ok:!1,message:`workerId must match ${String(x0)}`};let J=F===-1?"/":$.slice(F);return{ok:!0,value:{workerId:X,workerApiPath:J}}}async function cj(D,$,F){if(F.workerApiPath===`${p0}/info`){if(D.method!=="GET")return{ok:!1,response:A0("GET")};return{ok:!0,value:{method:"workers.info",params:{workerId:F.workerId}}}}if(F.workerApiPath===`${p0}/config`){if(D.method==="GET")return{ok:!0,value:{method:"config.get",params:{workerId:F.workerId}}};if(D.method==="PUT"){let H=ij(D.headers.get("If-Match"));if(!H.ok)return{ok:!1,response:oD(400,"invalid-if-match",H.message),audit:{method:"config.put",errorCode:"invalid-if-match"}};let W=await K6(D);if(!W.ok)return{ok:!1,response:oD(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:A0("GET, PUT")}}if(F.workerApiPath===`${p0}/cron`){if(D.method==="GET")return{ok:!0,value:{method:"cron.list",params:{workerId:F.workerId}}};if(D.method==="POST"){let H=await K6(D);if(!H.ok)return{ok:!1,response:oD(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:WU}}}return{ok:!1,response:A0("GET, POST")}}let X=F.workerApiPath.match(/^\/api\/worker\/cron\/([^/]+)$/);if(X){let H=decodeURIComponent(X[1]);if(D.method==="PATCH"){let W=await K6(D);if(!W.ok)return{ok:!1,response:oD(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:dj}};return{ok:!1,response:A0("PATCH, DELETE")}}if(F.workerApiPath===`${p0}/approvals`){if(D.method!=="GET")return{ok:!1,response:A0("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:A0("POST")};let H=await K6(D);if(!H.ok)return{ok:!1,response:oD(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:oD(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===`${p0}/secrets`){if(D.method!=="GET")return{ok:!1,response:A0("GET")};return{ok:!0,value:{method:"secrets.list",params:{workerId:F.workerId}}}}let G=F.workerApiPath.match(/^\/api\/worker\/secrets\/([^/]+)$/);if(G){let H=decodeURIComponent(G[1]);if(!/^[\w.-]{1,128}$/.test(H)){let W=D.method==="DELETE"?"secrets.delete":"secrets.put";return{ok:!1,response:oD(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 K6(D);if(!W.ok)return{ok:!1,response:oD(W.status,W.code,W.message),audit:{method:"secrets.put",errorCode:W.code}};let Q=W.value.value;if(typeof Q!=="string"||Q.length===0)return{ok:!1,response:oD(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:Q}}}}if(D.method==="DELETE")return{ok:!0,value:{method:"secrets.delete",params:{workerId:F.workerId,key:H}}};return{ok:!1,response:A0("PUT, DELETE")}}if(F.workerApiPath===`${p0}/engines`){if(D.method!=="GET")return{ok:!1,response:A0("GET")};return{ok:!0,value:{method:"engines.list",params:{workerId:F.workerId,refresh:$.searchParams.get("refresh")==="1"}}}}if(F.workerApiPath===`${p0}/brain/test`){if(D.method!=="POST")return{ok:!1,response:A0("POST")};return{ok:!0,value:{method:"brain.test",params:{workerId:F.workerId}}}}if(F.workerApiPath===`${p0}/executor/test`){if(D.method!=="POST")return{ok:!1,response:A0("POST")};let H=await HU(D);if(!H.ok)return{ok:!1,response:oD(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 Y=F.workerApiPath.match(/^\/api\/worker\/channels\/([^/]+)\/test$/);if(Y){if(D.method!=="POST")return{ok:!1,response:A0("POST")};let H=await HU(D);if(!H.ok)return{ok:!1,response:oD(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(Y[1]),...H.value===void 0?{}:{body:H.value}}}}}if(F.workerApiPath===`${p0}/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 K6(D);if(!H.ok)return{ok:!1,response:oD(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:oD(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:WU}}}return{ok:!1,response:A0("GET, POST")}}if(F.workerApiPath===`${p0}/orchestrator/conversations`){if(D.method!=="GET")return{ok:!1,response:A0("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:A0("GET")};return{ok:!0,value:{method:"orchestrator.messages.list",params:{workerId:F.workerId,conversationId:decodeURIComponent(B[1])}}}}return{ok:!1,response:oD(404,"not-found",`Unsupported worker bridge path ${F.workerApiPath}`)}}async function K6(D){let $=Number.parseInt(D.headers.get("Content-Length")??"0",10);if(Number.isFinite($)&&$>gX)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>gX)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 HU(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>gX)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 WU(D){return D}function dj(D){return Boolean(D.removed)?{ok:!0}:D}function lj(D,$,F,X,J){if(D.method!=="GET")return A0("GET");if(b4>=mj)return oD(503,"too-many-event-streams","Too many active worker event streams");if(!F.nodes.has(X.workerId)&&!F.persistence.getRegisteredWorker(X.workerId))return oD(404,"not-found",`worker ${X.workerId} is not registered`);if(!F.nodes.has(X.workerId))return oD(503,"node_offline",`worker ${X.workerId} \u5F53\u524D\u672A\u8FDE\u63A5\u5230 gateway`);b4+=1;let G=!1,Y=`http-sse-${crypto.randomUUID()}`,B,H=new ReadableStream({start(W){let Q=new TextEncoder,U=(C)=>{if(G)return;if(W.desiredSize!==null&&W.desiredSize<=0)return;W.enqueue(Q.encode(C))},_={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;U(`event: ${K.frame.name}
|
|
334
|
-
data: ${JSON.stringify({...R,at:K.frame.ts})}
|
|
335
|
-
|
|
336
|
-
`)},close(){},data:{}},A,O=()=>{if(G)return;if(G=!0,b4=Math.max(0,b4-1),F.operators.unregister(_),A)clearInterval(A);D.signal.removeEventListener("abort",O)};if(B=O,A=setInterval(()=>U(`: keepalive
|
|
337
|
-
|
|
338
|
-
`),30000),typeof A.unref==="function")A.unref();F.operators.register({agentId:Y,deviceId:Y,ws:_,connectedAt:Date.now()}),D.signal.addEventListener("abort",O,{once:!0}),U(`: connected
|
|
1
|
+
#!/usr/bin/env sh
|
|
2
|
+
set -u
|
|
3
|
+
|
|
4
|
+
resolve_script_dir() {
|
|
5
|
+
target=$1
|
|
6
|
+
while [ -L "$target" ]; do
|
|
7
|
+
dir=$(CDPATH= cd -P "$(dirname "$target")" 2>/dev/null && pwd) || return 1
|
|
8
|
+
target=$(readlink "$target") || return 1
|
|
9
|
+
case "$target" in
|
|
10
|
+
/*) ;;
|
|
11
|
+
*) target="$dir/$target" ;;
|
|
12
|
+
esac
|
|
13
|
+
done
|
|
14
|
+
CDPATH= cd -P "$(dirname "$target")" 2>/dev/null && pwd
|
|
15
|
+
}
|
|
339
16
|
|
|
340
|
-
`)},cancel(){B?.()}});return yX(F,{workerId:X.workerId,method:"events.stream",path:$.pathname,result:"success",status:200,latencyMs:uX(J)}),new Response(H,{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}function ij(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 nj(D){let $=D.ctx.nodes.get(D.workerId);if(!$)return Promise.resolve({type:"response",id:crypto.randomUUID(),ok:!1,error:{code:"node_offline",message:`worker ${D.workerId} \u5F53\u524D\u672A\u8FDE\u63A5\u5230 gateway`,details:{workerId:D.workerId}}});let F=`http-${crypto.randomUUID()}`;return new Promise((X)=>{let J=!1,G,Y,B,H=()=>{if(Y)clearTimeout(Y);if(B)D.signal?.removeEventListener("abort",B)},W=(_)=>{if(J)return;J=!0,H(),X(_)};B=()=>{if(G)D.ctx.forwards.consume(G);W({type:"response",id:F,ok:!1,error:{code:"request_aborted",message:"request aborted by client",details:{workerId:D.workerId,method:D.method}}})};let Q={send(_){let A=x2(_);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(Y=setTimeout(()=>{if(G)D.ctx.forwards.consume(G);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}}})},uj),typeof Y.unref==="function")Y.unref();D.signal?.addEventListener("abort",B,{once:!0});let U=D.ctx.forwards.allocate({operatorRequestId:F,operatorWs:Q,workerId:D.workerId,method:D.method});G=U.gatewayRequestId;try{$.ws.send(LD({type:"request",id:U.gatewayRequestId,method:D.method,params:D.params}))}catch(_){D.ctx.forwards.consume(U.gatewayRequestId),W({type:"response",id:F,ok:!1,error:{code:"forward_failed",message:`\u8F6C\u53D1\u5230 worker ${D.workerId} \u5931\u8D25: ${_ instanceof Error?_.message:String(_)}`,details:{workerId:D.workerId}}})}})}function sj(D,$){if(D.ok)return k4($?$(D.result):D.result,200);let F=oj(D.error.code);return k4({error:{code:F,message:D.error.message,...D.error.details===void 0?{}:{details:D.error.details}}},rj(D.error.code))}function yX(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 uX(D){return Math.max(0,Date.now()-D)}function rj(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 oj(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 A0(D){return k4({error:{code:"method-not-allowed",message:"method not allowed"}},405,{Allow:D})}function oD(D,$,F){return k4({error:{code:$,message:F}},D)}function k4(D,$,F={}){return new Response(JSON.stringify(D),{status:$,headers:{"Content-Type":"application/json",...F}})}D0();D0();mD();function UU(D){let $=V.object({workerId:V.string().min(1)}).safeParse(D.params);if(!$.success)return mX(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 mX(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(LD({type:"request",id:J.gatewayRequestId,method:D.method,params:D.params})),!0}catch(G){return D.ctx.forwards.consume(J.gatewayRequestId),mX(D.operatorWs,D.operatorRequestId,{code:"forward_failed",message:`\u8F6C\u53D1\u5230 worker ${F} \u5931\u8D25: ${G instanceof Error?G.message:String(G)}`,details:{workerId:F}}),!1}}function mX(D,$,F){let X=LD({type:"response",id:$,ok:!1,error:F});try{D.send(X)}catch{}}D0();mD();var aj=V.object({limit:V.number().int().positive().max(200).optional(),before:V.number().int().positive().optional(),action:V.string().min(1).optional(),workerId:V.string().min(1).optional()}).default({}),tj=V.object({events:V.array(c7),hasMore:V.boolean()}),_U=(D,$)=>{let F=aj.safeParse($??{});if(!F.success)return{ok:!1,code:"invalid_params",message:"audit.list \u53C2\u6570\u6821\u9A8C\u5931\u8D25",details:F.error.flatten()};let{events:X,hasMore:J}=D.persistence.listAuditEvents({...F.data.limit===void 0?{}:{limit:F.data.limit},...F.data.before===void 0?{}:{before:F.data.before},...F.data.action===void 0?{}:{actionPrefix:F.data.action},...F.data.workerId===void 0?{}:{workerId:F.data.workerId}}),G=tj.safeParse({events:X,hasMore:J});if(!G.success)return{ok:!1,code:"internal_error",message:`audit.list \u8FD4\u56DE\u503C\u4E0D\u7B26\u5408 schema: ${G.error.message}`};return{ok:!0,result:G.data}};D0();mD();import{createHash as ej}from"crypto";var AU=V.object({otp:V.string().min(1)}),KU=(D)=>{if(!D.pendingEnrollments)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u521D\u59CB\u5316 pending enrollment registry"};let $=D.pendingEnrollments.list(),F=V.object({pending:V.array(p7)}).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}},CU=(D,$)=>{if(!D.pendingEnrollments)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u521D\u59CB\u5316 pending enrollment registry"};let F=AU.safeParse($);if(!F.success)return{ok:!1,code:"invalid_params",message:"enroll.approve \u7F3A\u5C11 otp",details:F.error.flatten()};if(!D.masterKeyHex)return{ok:!1,code:"master_key_missing",message:"gateway \u672A\u914D\u7F6E AIWORKER_MASTER_KEY,\u65E0\u6CD5\u52A0\u5BC6 worker token"};if(D.maxWorkers!==void 0){let Y=DI(D,F.data.otp);if(!(Y?D.persistence.getRegisteredWorker(Y.workerId)!==void 0:!1)){let H=D.persistence.countRegisteredWorkers();if(H>=D.maxWorkers)return{ok:!1,code:"quota_exceeded",message:`fleet \u5DF2\u8FBE ${D.maxWorkers} worker \u4E0A\u9650`,details:{limit:D.maxWorkers,current:H}}}}let X=D.pendingEnrollments.approve(F.data.otp);if(!X)return{ok:!1,code:"not_found",message:`OTP ${F.data.otp} \u4E0D\u5728\u5F85\u6279\u5217\u8868\u4E2D\uFF08\u6216\u5DF2\u8FC7\u671F / \u5DF2\u5904\u7406\uFF09`};let J=D.persistence.upsertEnrolledWorker({workerId:X.workerId,baseUrl:"",apiToken:X.apiToken,displayName:X.displayName??X.workerId,addedBy:"otp"},D.masterKeyHex);X.ws.data.role="node",X.ws.data.agentId=X.workerId;let{replaced:G}=D.nodes.register({workerId:X.workerId,deviceId:X.ws.data.deviceId??X.workerId,ws:X.ws,pairedAt:Date.now(),meta:{}});if(G){D.forwards.cancelByWorker(X.workerId);try{G.ws.close(1012,"replaced_by_enroll_approve")}catch{}}try{X.ws.send(LD({type:"event",name:e.ENROLLMENT_APPROVED,payload:{workerId:X.workerId,deviceToken:X.apiToken},ts:Date.now()}))}catch{}if(f0(D.operators,{type:"event",name:e.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 f0(D.operators,{type:"event",name:e.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}}},OU=(D,$)=>{if(!D.pendingEnrollments)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u521D\u59CB\u5316 pending enrollment registry"};let F=AU.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:$I(X.otp)}}),f0(D.operators,{type:"event",name:e.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 DI(D,$){let F=D.pendingEnrollments?.list().find((X)=>X.otp===$);return F?{workerId:F.workerId}:void 0}function $I(D){return ej("sha256").update(D).digest("hex").slice(0,16)}D0();mD();var FI=V.object({now:V.number().int(),online:V.array(F1)}),RU=(D)=>{let $=Date.now(),F=D.nodes.list().map((J)=>{let G=D.persistence.getRegisteredWorker(J.workerId);return{workerId:J.workerId,displayName:G?.displayName,online:!0,deviceId:J.deviceId,baseUrl:G?.baseUrl,lastSeenAt:J.pairedAt}}),X=FI.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 EU}from"buffer";var XI=V.object({workerId:V.string().min(1)}),ZU=async(D,$)=>{let F=XI.safeParse($);if(!F.success)return{ok:!1,code:"invalid_params",message:"token.rotate \u7F3A\u5C11 workerId",details:F.error.flatten()};if(!D.masterKeyHex)return{ok:!1,code:"master_key_missing",message:"gateway \u672A\u914D\u7F6E AIWORKER_MASTER_KEY,\u65E0\u6CD5\u52A0\u5BC6 worker token"};let{workerId:X}=F.data;if(!D.persistence.getRegisteredWorker(X))return{ok:!1,code:"not_found",message:`worker ${X} \u4E0D\u5728 fleet \u4E2D`};let G=D.nodes.get(X);if(!G)return{ok:!1,code:"node_offline",message:`worker ${X} \u672A\u8FDE\u63A5\u5230 gateway`};return await new Promise((Y)=>{let B=new MU(Y,D,X),H=D.forwards.allocate({operatorRequestId:`internal:token-rotate:${X}:${Date.now()}`,operatorWs:B,workerId:X,method:"token.rotate"});try{G.ws.send(LD({type:"request",id:H.gatewayRequestId,method:"token.rotate",params:{workerId:X}}))}catch(W){D.forwards.consume(H.gatewayRequestId),Y({ok:!1,code:"forward_failed",message:`token.rotate \u53D1\u5F80 worker \u5931\u8D25: ${W instanceof Error?W.message:String(W)}`})}})};class MU{resolve;ctx;workerId;constructor(D,$,F){this.resolve=D;this.ctx=$;this.workerId=F}send(D){let $=typeof D==="string"?D:D instanceof ArrayBuffer?EU.from(new Uint8Array(D)).toString("utf8"):EU.from(D).toString("utf8"),F;try{F=JSON.parse($)}catch(Y){this.resolve({ok:!1,code:"internal_error",message:`token.rotate: \u65E0\u6CD5\u89E3\u6790 node \u54CD\u5E94: ${Y instanceof Error?Y.message:String(Y)}`});return}if(F.type!=="response"){this.resolve({ok:!1,code:"internal_error",message:"token.rotate: \u975E response frame"});return}if(!F.ok){this.resolve({ok:!1,code:F.error.code,message:F.error.message,details:F.error.details});return}let J=F.result?.deviceToken;if(typeof J!=="string"||J.length===0){this.resolve({ok:!1,code:"invalid_worker_response",message:"token.rotate: node \u8FD4\u56DE\u7684 deviceToken \u7F3A\u5931\u6216\u975E\u5B57\u7B26\u4E32"});return}if(!this.ctx.persistence.updateEncryptedToken({workerId:this.workerId,newToken:J},this.ctx.masterKeyHex)){this.resolve({ok:!1,code:"not_found",message:`worker ${this.workerId} \u5728 token.rotate \u56DE\u8C03\u671F\u95F4\u5DF2\u88AB\u5220\u9664`});return}this.ctx.persistence.recordAudit({actor:"gateway",action:"gateway.token.rotated",workerId:this.workerId,detail:{lastFour:J.slice(-4)}}),this.resolve({ok:!0,result:{deviceToken:J}})}close(){}}D0();cD();mD();cD();class e3 extends Error{constructor(D="worker rejected bearer token"){super(D);this.name="WorkerClientAuthError"}}class B1 extends Error{cause;constructor(D,$){super(D);this.cause=$;this.name="WorkerClientNetworkError"}}class L8 extends Error{constructor(D){super(D);this.name="WorkerClientInvalidResponseError"}}var JI=1e4;class pX{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??JI}buildUrl(D){let $=D.replace(/^\/+/,"");return`${this.baseUrl}/api/worker/${$}`}async request(D,$,F){let X=new AbortController,J=setTimeout(()=>X.abort(),this.timeoutMs),G={Authorization:`Bearer ${this.apiToken}`},Y={method:D,headers:G,signal:X.signal};if(F!==void 0)Y.body=JSON.stringify(F),G["Content-Type"]="application/json";try{return await this.fetchImpl(this.buildUrl($),Y)}catch(B){if(B.name==="AbortError")throw new B1(`worker ${this.baseUrl} request timed out after ${this.timeoutMs}ms`,B);throw new B1(`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 e3;if(!D.ok)throw new B1(`worker ${this.baseUrl} returned HTTP ${D.status}`);let $;try{$=await D.json()}catch(F){throw new L8(`worker ${this.baseUrl} /info returned non-JSON body: ${F.message}`)}if(!YI($))throw new L8(`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 e3;if(!D.ok)throw new B1(`worker ${this.baseUrl} returned HTTP ${D.status} from /token/rotate`);let $;try{$=await D.json()}catch(X){throw new L8(`worker ${this.baseUrl} /token/rotate returned non-JSON body: ${X.message}`)}if(!$||typeof $!=="object"||!("newToken"in $))throw new L8(`worker ${this.baseUrl} /token/rotate response missing newToken`);let F=$.newToken;if(!Z8(F))throw new L8(`worker ${this.baseUrl} /token/rotate returned a token that does not match wtk_<base64url>`);return{newToken:F}}}function YI(D){if(!D||typeof D!=="object")return!1;let $=D;return typeof $.workerId==="string"&&$.workerId.length>0&&typeof $.configVersion==="number"&&Number.isFinite($.configVersion)}class C6 extends Error{constructor(D){super(D);this.name="LaunchTimeoutError"}}class $8 extends Error{cause;constructor(D,$){super(D);this.cause=$;this.name="LaunchFailedError"}}function GI(D){if(!D)return null;let $=Date.parse(D);if(!Number.isFinite($))return null;return $}var zU=(D)=>{let F=D.persistence.listRegisteredWorkers().map((J)=>{let G=D.nodes.has(J.id),Y=G?D.nodes.get(J.id):void 0,B=Y?Y.pairedAt:GI(J.lastSeenAt);return{workerId:J.id,displayName:J.displayName,online:G,deviceId:Y?.deviceId,baseUrl:J.baseUrl,lastSeenAt:B}}),X=V.object({workers:V.array(F1)}).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}},NU=(D,$)=>{let F=V.object({workerId:V.string().min(1)}).safeParse($);if(!F.success)return{ok:!1,code:"invalid_params",message:"workers.remove \u7F3A\u5C11 workerId",details:F.error.flatten()};let{workerId:X}=F.data,J=D.persistence.getRegisteredWorker(X);if(!J)return{ok:!1,code:"not_found",message:`worker ${X} \u4E0D\u5728 fleet \u4E2D`};let G=D.nodes.get(X),Y=D.persistence.removeRegisteredWorker(X);if(G){D.forwards.cancelByWorker(X),D.nodes.unregisterByWs(G.ws);try{G.ws.close(1000,"removed_from_fleet")}catch(B){D.logger.warn(`[gateway] workers.remove \u5173\u95ED\u5728\u7EBF node \u65F6\u62A5\u9519 (workerId=${X})`,B)}}return D.persistence.recordAudit({actor:"gateway",action:"gateway.worker.removed",workerId:X,detail:{displayName:J.displayName,baseUrl:J.baseUrl}}),{ok:!0,result:{removed:Y}}},BI=V.object({workerBaseUrl:V.string().min(1),bootstrapToken:V.string().regex(o2,"bootstrapToken must match wtk_<base64url>"),displayName:V.string().min(1).max(80).optional()});function HI(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=BI.safeParse(F);if(!X.success)return{ok:!1,code:"invalid_params",message:"workers.pair \u53C2\u6570\u6821\u9A8C\u5931\u8D25",details:X.error.flatten()};let J=X.data;if($.maxWorkers!==void 0){let Q=$.persistence.countRegisteredWorkers();if(Q>=$.maxWorkers)return{ok:!1,code:"quota_exceeded",message:`fleet \u5DF2\u8FBE ${$.maxWorkers} worker \u4E0A\u9650`,details:{limit:$.maxWorkers,current:Q}}}let G=D.buildClient?D.buildClient(J.workerBaseUrl,J.bootstrapToken):new pX({baseUrl:J.workerBaseUrl,apiToken:J.bootstrapToken}),Y;try{Y=await G.info()}catch(Q){if(Q instanceof e3)return{ok:!1,code:"auth_failed",message:"worker \u62D2\u7EDD bootstrap token"};if(Q instanceof B1)return{ok:!1,code:"worker_unreachable",message:Q.message};if(Q instanceof L8)return{ok:!1,code:"invalid_worker_info",message:Q.message};throw Q}if($.persistence.getRegisteredWorker(Y.workerId))return{ok:!1,code:"already_registered",message:`worker ${Y.workerId} \u5DF2\u5728 fleet \u4E2D`,details:{workerId:Y.workerId}};let H=$.persistence.createRegisteredWorker({workerId:Y.workerId,baseUrl:J.workerBaseUrl,apiToken:J.bootstrapToken,displayName:J.displayName??Y.workerId,addedBy:"manual",configVersion:Y.configVersion},$.masterKeyHex),W=Y6.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 PU=HI(),WI=V.object({displayName:V.string().min(1).max(80).optional(),image:V.string().optional(),env:V.record(V.string()).optional(),forceId:V.string().optional()});function VI(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=WI.safeParse(F);if(!X.success)return{ok:!1,code:"invalid_params",message:"workers.launch \u53C2\u6570\u6821\u9A8C\u5931\u8D25",details:X.error.flatten()};let J=X.data,G=J.displayName??"worker";if($.maxWorkers!==void 0){let Q=$.persistence.countRegisteredWorkers();if(Q>=$.maxWorkers)return{ok:!1,code:"quota_exceeded",message:`fleet \u5DF2\u8FBE ${$.maxWorkers} worker \u4E0A\u9650`,details:{limit:$.maxWorkers,current:Q}}}let Y;try{Y=await $.supervisor.launchLocal({displayName:G,...J.forceId===void 0?{}:{forceId:J.forceId}})}catch(Q){if(Q instanceof C6)return{ok:!1,code:"launch_timeout",message:Q.message};if(Q instanceof $8)return{ok:!1,code:"launch_failed",message:Q.message};throw Q}if($.persistence.getRegisteredWorker(Y.workerId))return{ok:!1,code:"already_registered",message:`worker ${Y.workerId} \u5DF2\u5728 fleet \u4E2D`,details:{workerId:Y.workerId,containerName:Y.containerName}};let H=$.persistence.createRegisteredWorker({workerId:Y.workerId,baseUrl:Y.baseUrl,apiToken:Y.apiToken,displayName:G,addedBy:"launch-local"},$.masterKeyHex);$.persistence.recordAudit({actor:"gateway",action:"gateway.worker.launched",workerId:H.id,detail:{containerId:Y.containerId,containerName:Y.containerName,baseUrl:Y.baseUrl}});let W=Y6.safeParse({workerId:H.id,deviceToken:Y.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 qU=VI();var QI={"system.presence":RU,"workers.list":zU,"workers.remove":NU,"workers.pair":PU,"workers.launch":qU,"token.rotate":ZU,"enroll.list":KU,"enroll.approve":CU,"enroll.reject":OU,"audit.list":_U},UI=new Set(["system.presence","workers.list","audit.list","enroll.list"]);async function LU(D,$,F,X){let J=w3(F.method);if(!J){O6($,{type:"response",id:F.id,ok:!1,error:{code:"unknown_method",message:`\u672A\u6CE8\u518C\u65B9\u6CD5 ${F.method}`,details:{method:F.method}}});return}let G=J.params.safeParse(F.params??void 0);if(!G.success){O6($,{type:"response",id:F.id,ok:!1,error:{code:"invalid_params",message:`${F.method} \u53C2\u6570\u6821\u9A8C\u5931\u8D25`,details:G.error.flatten()}});return}let Y=G.data;if(!UI.has(F.method))D.persistence.recordAudit({actor:"gateway",action:"gateway.method.invoked",workerId:_I(Y),detail:{method:F.method,agentId:X}});if(J.routing==="operator-to-gateway"){let B=QI[F.method];if(!B){O6($,{type:"response",id:F.id,ok:!1,error:{code:"handler_missing",message:`\u65B9\u6CD5 ${F.method} \u6CA1\u6709\u672C\u5730 handler \u7ED1\u5B9A`,details:{method:F.method}}});return}try{let H=await B(D,Y);if(H.ok)O6($,{type:"response",id:F.id,ok:!0,result:H.result});else O6($,{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),O6($,{type:"response",id:F.id,ok:!1,error:{code:"internal_error",message:H instanceof Error?H.message:String(H)}})}return}UU({ctx:D,operatorWs:$,operatorRequestId:F.id,method:F.method,params:Y})}function jU(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(LD(J))}catch{}}function IU(D,$,F){f0(D.operators,F)}function _I(D){if(D&&typeof D==="object"&&"workerId"in D){let $=D.workerId;return typeof $==="string"&&$.length>0?$:null}return null}function O6(D,$){try{D.send(LD($))}catch{}}cD();var v4="/w/",AI="/api/worker";function wU(D){if(!D.startsWith(v4))return!1;let $=bU(D);return $!==void 0&&($.ok===!1||!$.value.pathnameAfterPrefix.startsWith(fU()))}async function SU(D,$,F){let X=bU($.pathname);if(X===void 0)return new Response("not found",{status:404});if(!X.ok)return TU({error:{code:"invalid-worker-id",message:X.message}},400);let{workerId:J}=X.value;if(!F.nodes.has(J)&&!F.persistence.getRegisteredWorker(J))return TU({error:{code:"not-found",message:`worker ${J} is not registered`}},404);if(X.value.redirectToSlash){let G=new URL(`${v4}${J}/`,$);return Response.redirect(G.toString(),308)}if(!F.workerWebStaticDir)return new Response("not found",{status:404});return S4({webStaticDir:F.workerWebStaticDir,pathnameAfterPrefix:X.value.pathnameAfterPrefix})}function bU(D){if(!D.startsWith(v4))return;let $=D.slice(v4.length),F=$.indexOf("/"),X=F===-1?$:$.slice(0,F);if(!x0.test(X))return{ok:!1,message:`workerId must match ${String(x0)}`};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 AI.slice(1)}function TU(D,$){return new Response(JSON.stringify(D),{status:$,headers:{"Content-Type":"application/json"}})}function kU(D){let{config:$,context:F}=D;JU({host:$.host,internalSharedSecret:$.internalSharedSecret}),T3({surface:"fleet",host:$.host,serveWeb:F.webStaticDir!==void 0,externalAuthAcknowledged:$.adminExternalAuthAcknowledged}),OI({host:$.host,externalAuthAcknowledged:$.adminExternalAuthAcknowledged});let X=Bun.serve({port:$.port,hostname:$.host,fetch(G,Y){let B=new URL(G.url);if(B.pathname==="/health"&&G.method==="GET")return new Response(JSON.stringify({ok:!0,service:"aiworker-gateway",ts:Date.now()}),{status:200,headers:{"Content-Type":"application/json"}});if(B.pathname==="/health")return new Response("method not allowed",{status:405,headers:{Allow:"GET"}});if(B.pathname==="/admin"){let H=new URL("/admin/",B);return Response.redirect(H.toString(),308)}if(B.pathname.startsWith("/admin/")){if(!F.webStaticDir)return new Response("not found",{status:404});return S4({webStaticDir:F.webStaticDir,pathnameAfterPrefix:B.pathname.slice(7)})}if(QU(B.pathname))return VU(G,B,F);if(wU(B.pathname))return SU(G,B,F);if(B.pathname==="/ws"||B.pathname==="/enroll-ws"){let W=Y.requestIP(G)?.address,Q=D1(W);if(!Q&&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 U=B.pathname==="/enroll-ws"?"/enroll-ws":"/ws";if(Y.upgrade(G,{data:{role:void 0,agentId:void 0,deviceId:void 0,loopback:Q,remoteAddress:W,connectedAt:Date.now(),subscribedAll:!0,path:U}}))return;return new Response("upgrade failed",{status:400})}return new Response("not found",{status:404})},websocket:{maxPayloadLength:1048576,idleTimeout:120,open(G){F.logger.debug(`[gateway] ws opened (remote=${G.data.remoteAddress??"?"} loopback=${G.data.loopback})`)},message(G,Y){RI(G,Y,F,$)},close(G,Y,B){EI(G,Y,B,F)}}}),J=X.port;if(typeof J!=="number")throw TypeError("Bun.serve did not return a TCP port \u2014 unix socket is not supported");return{server:X,port:J,context:F,stop:async()=>{F.forwards.dispose(),F.pendingEnrollments?.dispose(),await X.stop(!0)}}}function OI(D){if(D1(D.host))return;if(D.externalAuthAcknowledged)return;throw Error(`[fleet] refusing to serve /w/* on non-loopback host="${D.host}" without external-auth acknowledgement.
|
|
17
|
+
try_exec_bun() {
|
|
18
|
+
bun_bin=$1
|
|
19
|
+
shift
|
|
20
|
+
if [ -n "$bun_bin" ] && [ -x "$bun_bin" ]; then
|
|
21
|
+
exec "$bun_bin" "$AIWORKER_BUN_BUNDLE" "$@"
|
|
22
|
+
fi
|
|
23
|
+
}
|
|
341
24
|
|
|
342
|
-
|
|
25
|
+
AIWORKER_SHIM_DIR=$(resolve_script_dir "$0")
|
|
26
|
+
AIWORKER_BUN_BUNDLE="$AIWORKER_SHIM_DIR/aiworker-bun.js"
|
|
343
27
|
|
|
344
|
-
|
|
345
|
-
1. Bind the gateway to 127.0.0.1 and put Caddy/Cloudflare Access/IP allowlist/basic-auth in front;
|
|
346
|
-
2. Confirm an external auth layer protects /w/*, /admin/*, and /ws, then set AIWORKER_ADMIN_EXTERNAL_AUTH=1.`)}function RI(D,$,F,X){let J=typeof $==="string"?$:KI.from($).toString("utf8"),G=x2(J);if(!G.ok){F.logger.warn(`[gateway] \u65E0\u6CD5\u89E3\u6790\u5E27: ${G.error}`),D.close(4400,"bad_frame");return}let Y=G.frame;if(D.data.role===void 0){if(Y.type!=="connect"){F.logger.warn(`[gateway] \u63E1\u624B\u524D\u6536\u5230\u975E connect \u5E27: ${Y.type}`),D.close(4400,"connect_required");return}let B=Y.role==="node"&&Y.enroll?Y.enroll.mode??"join-token":void 0,H=B==="otp",W=Y.role==="node"&&Y.enroll!==void 0&&B==="join-token",Q=BU({loopback:D.data.loopback,sharedSecret:X.internalSharedSecret,presentedToken:Y.auth.token,enrollToken:W?Y.enroll.joinToken:void 0,gatewayJoinToken:X.joinToken,path:D.data.path,isOtpEnrollSubmit:H});if(!Q.ok){let U=Q.reason.startsWith("wrong_path:");if(F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.rejected",workerId:Y.role==="node"?Y.agentId:null,detail:{reason:Q.reason,role:Y.role,agentId:Y.agentId,remoteAddress:D.data.remoteAddress,path:D.data.path}}),!U&&!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:Q.reason}})}let _=U?4400:4401,A=U?Q.reason:`auth:${Q.reason}`;D.close(_,A);return}if(Q.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 U=Y.enroll,_=F.pendingEnrollments.submit({workerId:Y.agentId,apiToken:U.apiToken,displayName:U.displayName,ws:D});try{D.send(LD({type:"event",name:e.ENROLLMENT_OTP,payload:{workerId:Y.agentId,otp:_.otp,expiresAt:_.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=Y.agentId,D.data.deviceId=Y.deviceId,F.persistence.recordAudit({actor:"gateway",action:"gateway.enrollment.requested",workerId:Y.agentId,detail:{workerId:Y.agentId,displayName:U.displayName,deviceId:Y.deviceId,otpHash:MI(_.otp),expiresAt:_.expiresAt,path:D.data.path}}),f0(F.operators,{type:"event",name:e.ENROLLMENT_PENDING,payload:{workerId:Y.agentId,...U.displayName===void 0?{}:{displayName:U.displayName},otp:_.otp,submittedAt:Date.now(),expiresAt:_.expiresAt,reason:"submitted"},ts:Date.now()});return}if(W){if(F.maxWorkers!==void 0){let A=F.persistence.countRegisteredWorkers();if(F.persistence.getRegisteredWorker(Y.agentId)===void 0&&A>=F.maxWorkers){F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.rejected",workerId:Y.agentId,detail:{reason:"quota_exceeded",role:Y.role,agentId:Y.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:Y.agentId,detail:{reason:"master_key_missing",role:Y.role,agentId:Y.agentId}}),D.close(4401,"auth:master_key_missing");return}let U=Y.enroll,_=F.persistence.upsertEnrolledWorker({workerId:Y.agentId,baseUrl:"",apiToken:U.apiToken,displayName:U.displayName??Y.agentId,addedBy:"self-enroll"},F.masterKeyHex);if(_.kind!=="unchanged")F.persistence.recordAudit({actor:"gateway",action:"gateway.worker.enrolled",workerId:Y.agentId,detail:{workerId:Y.agentId,displayName:_.row.displayName,deviceId:Y.deviceId,change:_.kind}})}if(D.data.role=Y.role,D.data.agentId=Y.agentId,D.data.deviceId=Y.deviceId,Y.role==="operator")F.operators.register({agentId:Y.agentId,deviceId:Y.deviceId,ws:D,connectedAt:Date.now()});else{let{replaced:U}=F.nodes.register({workerId:Y.agentId,deviceId:Y.deviceId,ws:D,pairedAt:Date.now(),meta:Y.meta??{}});if(U){F.forwards.cancelByWorker(Y.agentId);try{U.ws.close(1012,"replaced_by_new_node_connection")}catch{}}let _=F.persistence.getRegisteredWorker(Y.agentId)?.displayName;f0(F.operators,{type:"event",name:e.WORKER_ONLINE,payload:{workerId:Y.agentId,displayName:_,deviceId:Y.deviceId,connectedAt:Date.now()},ts:Date.now()})}if(F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.accepted",workerId:Y.role==="node"?Y.agentId:null,detail:{role:Y.role,agentId:Y.agentId,deviceId:Y.deviceId,loopback:D.data.loopback,via:Q.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 ${Y.type} \u5E27\uFF0C\u5FFD\u7565`);return}if(D.data.role==="operator"){if(Y.type==="request"){let B=D.data.agentId??"unknown";LU(F,D,Y,B);return}F.logger.warn(`[gateway] operator \u7AEF\u53D1\u9001\u4E86\u975E request \u5E27: ${Y.type}`),D.close(4400,"operator_expects_request_only");return}if(D.data.role==="node"){if(Y.type==="response"){jU(F,D,Y);return}if(Y.type==="event"){IU(F,D,Y);return}F.logger.warn(`[gateway] node \u7AEF\u53D1\u9001\u4E86\u975E response/event \u5E27: ${Y.type}`),D.close(4400,"node_expects_response_or_event_only")}}function EI(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}}),f0(X.operators,{type:"event",name:e.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),f0(X.operators,{type:"event",name:e.WORKER_OFFLINE,payload:{workerId:J.workerId,deviceId:J.deviceId,reason:ZI($),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 ZI(D){if(D===1000||D===1012||D===1001||D===1005||D===1006)return"disconnected";if(D>=4000&&D<5000)return"kicked";return"expired"}function MI(D){return CI("sha256").update(D).digest("hex").slice(0,8)}JD();import{randomBytes as vU}from"crypto";import{mkdirSync as NI}from"fs";import{createServer as PI}from"net";import{join as xU}from"path";import qI from"process";JD();class cX{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 G=await fetch(X,J),Y=await G.text();if(!G.ok)throw Error(`Docker API ${D} ${$} failed: ${G.status} ${Y}`);if(!Y)return;try{return JSON.parse(Y)}catch{return Y}}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 Y=await J.text();throw Error(`Docker logs ${D} failed: ${J.status} ${Y}`)}let G=new Uint8Array(await J.arrayBuffer());return zI(G)}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 zI(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 LI=/\[worker\] AIWORKER_BOOTSTRAP_TOKEN=(wtk_[\w-]{32,})/,jI=30000,II=500;class dX{config;docker;allocatePort;pollIntervalMs;pollTimeoutMs;now;sleep;selfHostname;constructor(D){this.config=D.config,this.docker=D.docker??new cX(D.config.dockerHost),this.allocatePort=D.allocatePort??bI,this.pollIntervalMs=D.pollIntervalMs??II,this.pollTimeoutMs=D.pollTimeoutMs??jI,this.now=D.now??Date.now,this.sleep=D.sleep??(($)=>new Promise((F)=>setTimeout(F,$))),this.selfHostname=D.selfHostname===void 0?qI.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 $8(`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=${xU("/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 $8(`docker infrastructure unavailable: ${W.message}`,W)}let $=await this.allocatePort(),F=vU(32).toString("hex"),J=`aiworker-${vU(4).toString("hex")}`,G=xU(this.config.workerDataRoot,J);try{NI(G,{recursive:!0})}catch(W){throw new $8(`failed to create data dir ${G}: ${W.message}`,W)}let Y=this.buildEnv({masterKeyHex:F,port:$,forceId:D.forceId}),B={Image:this.config.image,Env:Y,Labels:{"aiworker.role":"worker","aiworker.addedBy":"launch-local","aiworker.displayName":D.displayName},HostConfig:{RestartPolicy:{Name:"unless-stopped"},NetworkMode:this.config.network,Memory:SI(this.config.workerMemoryLimit),NanoCpus:Math.round(this.config.workerCpuLimit*1e9),Binds:[`${G}:/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 Q=await this.awaitBootstrapToken(W.Id),U=wI(this.config.launchBaseUrlTemplate,{containerName:J,port:String($)});return E.success(`[gateway/supervisor] ${J} bootstrapped as ${Q.workerId}`),{workerId:Q.workerId,apiToken:Q.token,baseUrl:U,containerId:W.Id,containerName:J}}catch(W){if(H)try{await this.docker.removeContainer(H,{force:!0,removeVolumes:!1})}catch(Q){E.warn(`[gateway/supervisor] failed to cleanup ${H}: ${Q.message}`)}if(W instanceof C6||W instanceof $8)throw W;throw new $8(`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=TI(F);if(X)return X;await this.sleep(this.pollIntervalMs)}throw new C6(`bootstrap token not observed in container ${D.slice(0,12)} after ${this.pollTimeoutMs}ms`)}async shutdown(){}}function TI(D){let $=LI.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 wI(D,$){return D.replace(/\{(\w+)\}/g,(F,X)=>$[X]??`{${X}}`)}function SI(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 bI(){return new Promise((D,$)=>{let F=PI();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 kI(D,$={}){aQ(D.fleetDbPath),tQ(fX);let F=kX(),X=new w4(F),J=new L4,G=new j4,Y=new q4({onExpire:(Q,U)=>{if(E.warn(`[gateway] forward \u53D6\u6D88 (method=${Q.method} workerId=${Q.workerId} reason=${U})`),U==="operator_gone")return;let _=U==="timeout"?"forward_timeout":"node_gone",A=U==="timeout"?`\u7B49\u5F85 worker ${Q.workerId} \u54CD\u5E94\u8D85\u65F6`:`worker ${Q.workerId} \u5728\u7B49\u5F85\u54CD\u5E94\u671F\u95F4\u4E0B\u7EBF`;try{Q.operatorWs.send(LD({type:"response",id:Q.operatorRequestId,ok:!1,error:{code:_,message:A,details:{workerId:Q.workerId,method:Q.method}}}))}catch{}}}),B=new I4({ttlMs:D.enrollOtpTtlSec*1000,onExpire:(Q)=>{try{Q.ws.close(4408,"enroll:expired")}catch{}try{X.recordAudit({actor:"gateway",action:"gateway.enrollment.expired",workerId:Q.workerId,detail:{displayName:Q.displayName,otpHash:fI("sha256").update(Q.otp).digest("hex").slice(0,16)}})}catch(U){E.warn("[gateway] \u5199 enrollment.expired audit \u5931\u8D25",U)}try{f0(G,{type:"event",name:e.ENROLLMENT_PENDING,payload:{workerId:Q.workerId,...Q.displayName===void 0?{}:{displayName:Q.displayName},otp:Q.otp,submittedAt:Q.submittedAt,expiresAt:Q.expiresAt,reason:"expired"},ts:Date.now()})}catch(U){E.warn("[gateway] \u5E7F\u64AD enrollment.pending(expired) \u5931\u8D25",U)}}}),H=null;if(D.canLaunch)H=new dX({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 P4;return{persistence:X,nodes:J,operators:G,forwards:Y,logger:E.withTag("gateway"),masterKeyHex:D.masterKeyHex,supervisor:H,maxWorkers:D.maxWorkers,pendingEnrollments:B,connectRateLimiter:W,webStaticDir:$.webStaticDir,workerWebStaticDir:$.workerWebStaticDir}}async function hU(D,$={}){let X={...DU(),...D},J=kI(X,{webStaticDir:$.webStaticDir,workerWebStaticDir:$.workerWebStaticDir}),G=kU({config:X,context:J});return E.success(`[gateway] listening ws://${X.host}:${G.port}/ws (auth=${X.internalSharedSecret?"shared-secret+loopback":"loopback-only"})`),{...G,config:X}}JD();import{existsSync as lX,realpathSync as vI}from"fs";import{dirname as xI,resolve as H1}from"path";import gU from"process";import{fileURLToPath as hI}from"url";function D9(D){let $=D==="fleet"?"AIWORKER_WEB_STATIC_DIR_FLEET":"AIWORKER_WEB_STATIC_DIR_WORKER",F=gU.env[$];if(F){let W=yI(F);if(W&&lX(H1(W,"index.html")))return W}let X=gI();if(!X)return;let J=H1(X,"web",D);if(lX(H1(J,"index.html")))return J;let Y=X.endsWith(`apps${iX()}cli${iX()}src${iX()}lib`)||X.endsWith("apps/cli/src/lib")?4:3,B=H1(X,...Array.from({length:Y},()=>"..")),H=H1(B,"apps","web","dist",D);if(lX(H1(H,"index.html")))return H;return}function gI(){if(typeof import.meta.url!=="string")return;try{return xI(hI(import.meta.url))}catch{return}}function yI(D){try{return vI(H1(D))}catch{return}}function iX(){return gU.platform==="win32"?"\\":"/"}A2();X1();import{spawn as uI}from"child_process";import{closeSync as yU,existsSync as mI,openSync as uU,readFileSync as pI,unlinkSync as x4,writeFileSync as cI}from"fs";import{mkdir as dI}from"fs/promises";import j8 from"process";var lI="AIWORKER_GATEWAY_INTERNAL_FOREGROUND";function mU(D){if(!Number.isFinite(D)||D<=0)return!1;try{return j8.kill(D,0),!0}catch($){if($.code==="EPERM")return!0;return!1}}function iI(D){if(!mI(D))return null;try{let $=pI(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 nI(){await dI(U2(),{recursive:!0})}function h4(){let D=r7(),$=o7(),F=iI(D);if(F===null)return{running:!1,pidFile:D,logFile:$};if(!mU(F)){try{x4(D)}catch{}return{running:!1,pidFile:D,logFile:$}}return{running:!0,pid:F,pidFile:D,logFile:$}}async function pU(D={}){let $=h4();if($.running)throw Error(`gateway daemon \u5DF2\u5728\u8FD0\u884C (pid=${$.pid})\uFF0C\u5148\u6267\u884C 'aiworker gateway stop' \u518D\u91CD\u8BD5\u3002`);await nI();let F=D.port??Number.parseInt(j8.env.PORT??"9218",10);if(!Number.isFinite(F)||F<=0||F>65535)throw Error(`\u975E\u6CD5\u7AEF\u53E3: ${F}`);let X=r7(),J=o7(),G=uU(J,"a"),Y=uU(J,"a"),B={...j8.env,...D.env,PORT:String(F),[lI]:"1"},H=j8.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=uI(j8.execPath,[H,"gateway","start","--port",String(F)],{env:B,cwd:j8.cwd(),detached:!0,stdio:["ignore",G,Y]});try{yU(G)}catch{}if(Y!==G)try{yU(Y)}catch{}if(W.pid===void 0)throw Error("gateway \u5B50\u8FDB\u7A0B\u542F\u52A8\u5931\u8D25\uFF1A\u672A\u83B7\u5F97 PID");return W.unref(),cI(X,`${String(W.pid)}
|
|
347
|
-
`,"utf8"),{pid:W.pid,port:F,logFile:J,pidFile:X}}async function cU(D={}){let $=h4();if(!$.running||$.pid===void 0)return null;let F=$.pid,X=D.timeoutMs??5000,J=100;try{j8.kill(F,"SIGTERM")}catch(Y){if(Y.code==="ESRCH"){try{x4($.pidFile)}catch{}return null}throw Y}let G=Date.now()+X;while(Date.now()<G){if(!mU(F)){try{x4($.pidFile)}catch{}return F}await new Promise((Y)=>setTimeout(Y,J))}try{j8.kill(F,"SIGKILL")}catch{}try{x4($.pidFile)}catch{}return F}X1();async function dU(D={}){if(D.detach===!0)return sI(D);return rI(D)}async function sI(D){try{let $=await pU({...D.port===void 0?{}:{port:D.port},...D.serveWeb===!1?{env:{AIWORKER_GATEWAY_NO_SERVE_WEB:"1"}}:{}});if(D.persistUrl!==!1)await b3({gatewayUrl:s7($.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 rI(D){try{let $=g4.env.AIWORKER_GATEWAY_NO_SERVE_WEB==="1",F=D.serveWeb!==!1&&!$,X=F?D9("fleet"):void 0,J=F?D9("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 G=await hU(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 b3({gatewayUrl:s7(G.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=${G.port}`);let Y=!1,B=async(H)=>{if(Y)return;Y=!0,E.info(`[gateway] received ${H}, shutting down`);try{await G.stop(),vX()}catch(W){E.error("[gateway] shutdown failed",W)}g4.exit(0)};return g4.once("SIGTERM",()=>void B("SIGTERM")),g4.once("SIGINT",()=>void B("SIGINT")),await new Promise(()=>{}),0}catch($){return E.error(`gateway start \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}function lU(){let D=h4();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 iU(D={}){try{let $=await cU(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}}JD();import{spawnSync as nU}from"child_process";import{existsSync as aU,mkdirSync as oI,readFileSync as aI,writeFileSync as tI}from"fs";import{homedir as eI}from"os";import F8 from"path";import $9 from"process";var I8="aiworker-gateway.service",sU="/var/lib/aiworker",F9="/etc/aiworker/gateway.env",DT="%h/.config/aiworker/gateway.env",rU="%S/aiworker",oU="https://github.com/ZonEaseTech/aiworker/blob/main/docs/deployment.md",y4=["gateway","start"];function $T(D){let $=eU(D.execStart??tU());if(D.scope==="user")return["[Unit]","Description=AIWorker gateway daemon (user instance)",`Documentation=${oU}`,"After=network-online.target","Wants=network-online.target","","[Service]","Type=simple",`Environment=AIWORKER_HOME=${rU}`,`EnvironmentFile=-${DT}`,`ExecStart=${$}`,"Restart=on-failure","RestartSec=5","StateDirectory=aiworker","StateDirectoryMode=0700","PrivateTmp=true","ProtectSystem=strict",`ReadWritePaths=${rU}`,"NoNewPrivileges=true","","[Install]","WantedBy=default.target",""].join(`
|
|
348
|
-
`);return["[Unit]","Description=AIWorker gateway daemon (PLAN-016 systemd path)",`Documentation=${oU}`,"After=network-online.target","Wants=network-online.target","","[Service]","Type=simple",`Environment=AIWORKER_HOME=${sU}`,`EnvironmentFile=-${F9}`,`ExecStart=${$}`,"Restart=on-failure","RestartSec=5","User=root","Group=root","StateDirectory=aiworker","StateDirectoryMode=0700","PrivateTmp=true","ProtectSystem=strict",`ReadWritePaths=${sU}`,"NoNewPrivileges=true","","[Install]","WantedBy=multi-user.target",""].join(`
|
|
349
|
-
`)}function tU(D={}){let $=D.env??$9.env,F=D.execPath??$9.execPath,X=D.argv??$9.argv,J=D.cwd??$9.cwd(),G=D.pathExists??aU,Y=XT(X[1],J,G);if(JT(F)&&Y!==void 0)return u4(F,[Y,...y4]);if(YT(F))return u4(F,[...y4]);let B=GT("aiworker",$.PATH,G);if(B!==void 0)return u4(B,[...y4]);if(Y!==void 0)return u4(Y,[...y4]);throw Error("install systemd: unable to locate the current aiworker executable; re-run via the installed aiworker command or pass --exec-start")}function u4(D,$){return[D,...$].map(FT).join(" ")}function eU(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 FT(D){if(/^[\w@%+=:,./-]+$/.test(D))return D;return`"${D.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`}function XT(D,$,F){if(D===void 0||D.length===0)return;let X=F8.isAbsolute(D)?D:F8.resolve($,D);return F(X)?X:void 0}function JT(D){let $=F8.basename(D);return $==="bun"||$.startsWith("bun-")}function YT(D){return F8.basename(D).startsWith("aiworker")}function GT(D,$,F){if($===void 0||$.length===0)return;for(let X of $.split(F8.delimiter)){if(X.length===0)continue;let J=F8.join(X,D);if(F(J))return J}return}function BT(D,$=eI()){if(D==="user")return F8.join($,".config","systemd","user",I8);return`/etc/systemd/system/${I8}`}function HT(D={}){let $=D.scope??"user",F=eU(D.execStart??tU()),X=$T({scope:$,execStart:F});if(D.dryRun)return{scope:$,content:X,execStart:F,enabled:!1,restartRequired:!1};let J=D.out??BT($);oI(F8.dirname(J),{recursive:!0});let G=!1;if(aU(J)){if(aI(J,"utf8")===X)G=!0}if(!G)tI(J,X,{encoding:"utf8",mode:420});if(!(!D.noEnable&&D.out===void 0))return{scope:$,content:X,execStart:F,written:{path:J,unchanged:G},enabled:!1,restartRequired:!1};return WT($),{scope:$,content:X,execStart:F,written:{path:J,unchanged:G},enabled:!0,restartRequired:!G}}function WT(D){let $=D==="user"?["--user"]:[],F=nU("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=nU("systemctl",[...$,"enable","--now",I8],{stdio:"inherit"});if(X.error)throw Error(`\u65E0\u6CD5\u6267\u884C systemctl: ${X.error.message}`);if(X.status!==0)throw Error(`systemctl ${[...$,"enable","--now",I8].join(" ")} \u5931\u8D25 (exit=${X.status??"signal"})`)}async function D_(D={}){try{let $=HT(D);if(D.dryRun)return $9.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 ${I8}\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 ${I8}`)}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 ${I8}`);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 ${I8}`);return VT($.scope),0}catch($){return E.error(`install systemd \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}function VT(D){if(D==="system"){E.box(["First-run secrets for aiworker-gateway:",` sudo install -d -m 0700 -o root -g root ${F8.dirname(F9)}`,` sudo sh -c 'umask 077; printf "AIWORKER_MASTER_KEY=%s\\nINTERNAL_SHARED_SECRET=%s\\n" "$(openssl rand -hex 32)" "$(openssl rand -base64 24)" > ${F9}'`,` sudo chown root:root ${F9}`,` sudo chmod 600 ${F9}`].join(`
|
|
350
|
-
`));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(`
|
|
351
|
-
`))}D0();JD();async function $_(D){let $=D.follow===!0,F=D.timeoutMs??($?3600000:5000);try{return await ZD(async({client:X})=>{return await new Promise((J)=>{let G=!1,Y=(W)=>{if(G)return;G=!0,J(W)},B=X.onEvent(e.LOGS_LINE,(W)=>{if(W===null||typeof W!=="object")return;let Q=W.workerId;if(typeof Q!=="string"||Q!==D.workerId)return;K2(W)}),H=setTimeout(()=>{B(),Y(0)},F);X.request("logs.tail",{workerId:D.workerId,follow:$,...D.tail===void 0?{}:{lines:D.tail}}).then(()=>{}).catch((W)=>{B(),clearTimeout(H),K2({kind:"error",payload:{code:"request_failed",message:W instanceof Error?W.message:String(W)}}),Y(CD(W))})})})}catch(X){return E.error(`logs \u5931\u8D25: ${X instanceof Error?X.message:String(X)}`),CD(X)}}JD();async function F_(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(() => (X1(),t7));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($)}}JD();var X_=["web","line","telegram","lark","whatsapp"];function QT(D){if(!X_.includes(D))throw Error(`\u65E0\u6548 channel "${D}"\uFF0C\u53EF\u9009\u503C\uFF1A${X_.join(", ")}`);return D}async function J_(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 Y_(D){try{let $=QT(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 G_(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)}}JD();async function B_(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($)}}JD();async function H_(){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 W_(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 V_(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(() => (X1(),t7));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 Q_(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 U_(D){try{let $=await ZD(async({client:G})=>{return await G.request("workers.remove",{workerId:D})}),{loadAimState:F,saveAimState:X}=await Promise.resolve().then(() => (X1(),t7)),J=await F();if(J.defaultWorkerId===D){let G={...J};delete G.defaultWorkerId,await X(G)}return SD($),0}catch($){return E.error(`workers remove \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),CD($)}}$2();JD();import HB from"process";$2();fD();import sl from"process";async function rl(D){let $=vD(),F=Y8(D).map((J)=>J.path),X=new Map;for(let J of F){let G=await $.get(J);if(G!==null)X.set(J,G)}return N6(D,X)}async function sD(D={}){Y9(i.WORKER_DB_PATH);let $=sl.env.WORKER_MIGRATIONS_FOLDER??R6;G9($);let F=vD(),X=g(),J=await U1(X,F,{...i.AIWORKER_FORCE_ID===void 0?{}:{forceId:i.AIWORKER_FORCE_ID},...i.AIWORKER_FORCE_TOKEN===void 0?{}:{forceToken:i.AIWORKER_FORCE_TOKEN}});if(!D.silent)_1(J.workerId,J.token,X,J.justMinted);let G=await Q1(X),Y=await rl(G.config),B=new w1({maxConcurrentTotal:i.MAX_CONCURRENT_TOTAL,perEngineLimits:{...i.perEngineLimits},stallTimeoutMs:i.PROCESS_STALL_TIMEOUT_MS,killTimeoutMs:i.PROCESS_KILL_TIMEOUT_MS,autoCleanupDelayMs:i.PROCESS_AUTO_CLEANUP_DELAY_MS,gcIntervalMs:i.PROCESS_GC_INTERVAL_MS});return{workerId:J.workerId,token:J.token,configVersion:G.version,hydrated:Y,db:X,processes:B}}function mZ(D){return v1(D.workerId,D.hydrated,{processes:D.processes})}function ol(){return`http://${HB.env.AIW_LOCAL_WORKER_HOST??"localhost"}:${i.PORT}`}async function pZ(D,$={}){let F=await sD({silent:!0}),X=`${ol()}${D}`,J=new Headers($.headers??{});if(J.set("Authorization",`Bearer ${F.token}`),$.body!==void 0&&!J.has("content-type"))J.set("content-type","application/json");let G=await fetch(X,{...$,headers:J}),Y=null;try{Y=await G.json()}catch{Y=null}return{status:G.status,body:Y}}async function cZ(){try{let{status:D,body:$}=await pZ("/api/worker/approvals");if(D!==200)return E.error(`approvals list HTTP ${D}: ${JSON.stringify($)}`),1;return HB.stdout.write(`${JSON.stringify($,null,2)}
|
|
352
|
-
`),0}catch(D){return E.error(`approvals list \u5931\u8D25: ${D instanceof Error?D.message:String(D)}`),1}}async function dZ(D){try{let $=D.deny===!0?"deny":"allow",{status:F,body:X}=await pZ(`/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 HB.stdout.write(`${JSON.stringify(X,null,2)}
|
|
353
|
-
`),0}catch($){return E.error(`approvals grant \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}$2();JD();async function lZ(){await sD({silent:!0});let{getWorkerDb:D}=await Promise.resolve().then(() => (fD(),FJ)),$=await E0(D());return console.log(JSON.stringify({version:$.version,config:$.config},null,2)),0}async function iZ(D){let $=await sD({silent:!0}),F;try{F=JSON.parse(D.json)}catch(Y){return E.error(`[aiw config set] invalid JSON: ${String(Y)}`),2}let{getWorkerDb:X}=await Promise.resolve().then(() => (fD(),FJ)),J=X(),G=vD();try{let Y=await o9(J,G,F,D.ifMatch===void 0?{}:{ifMatchVersion:D.ifMatch});return await a9($.workerId,Y.config,Y.version),E.success(`[aiw config set] stored config v${Y.version}`),0}catch(Y){if(Y instanceof l2)return E.error(`[aiw config set] invalid config: ${JSON.stringify(Y.issues,null,2)}`),2;if(Y instanceof i2)return E.error(`[aiw config set] version conflict: expected ${Y.expected}, stored is ${Y.actual}`),3;throw Y}}A2();JD();import{existsSync as h1}from"fs";import{homedir as Gi}from"os";import z0 from"path";import g1 from"process";import{randomBytes as nZ}from"crypto";import{chmodSync as al,existsSync as sZ,mkdirSync as tl,readFileSync as el,writeFileSync as Di}from"fs";import{homedir as $i}from"os";import rZ from"path";import T2 from"process";var Fi=rZ.join($i(),".aiworker");function x1(D={}){let $=D.home??T2.env.AIWORKER_HOME??Fi,F=rZ.join($,".env");if(sZ(F)){let B=Xi(el(F,"utf8"));for(let[H,W]of Object.entries(B))if(T2.env[H]===void 0)T2.env[H]=W;return{minted:!1,envFile:F,freshMasterKey:null}}if(!sZ($))tl($,{recursive:!0,mode:448});let X=T2.env.AIWORKER_MASTER_KEY??nZ(32).toString("hex"),J=T2.env.INTERNAL_SHARED_SECRET??nZ(24).toString("hex"),G=["# 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(Di(F,G.join(`
|
|
354
|
-
`),{mode:384}),al(F,384),T2.env.AIWORKER_MASTER_KEY===void 0)T2.env.AIWORKER_MASTER_KEY=X;if(T2.env.INTERNAL_SHARED_SECRET===void 0)T2.env.INTERNAL_SHARED_SECRET=J;let Y=T2.env.AIWORKER_MASTER_KEY===X?X:null;if(Y&&D.printOnMint!==!1)Ji(Y,F);return{minted:!0,envFile:F,freshMasterKey:Y}}function Xi(D){let $={};for(let F of D.split(`
|
|
355
|
-
`)){let X=F.trim();if(!X||X.startsWith("#"))continue;let J=X.indexOf("=");if(J<=0)continue;let G=X.slice(0,J).trim(),Y=X.slice(J+1).trim();if(Y.startsWith('"')&&Y.endsWith('"')||Y.startsWith("'")&&Y.endsWith("'"))Y=Y.slice(1,-1);$[G]=Y}return $}function Ji(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 ${Yi($,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",""];T2.stderr.write(`${F.join(`
|
|
356
|
-
`)}
|
|
357
|
-
`)}function Yi(D,$){if(D.length<=$)return D.padEnd($);return`\u2026${D.slice(-($-1))}`.padEnd($)}var Bi=[".aiworker/",".aiworker/AGENT.md",".aiworker/SOUL.md",".aiworker/USER.md",".aiworker/MEMORY.md",".aiworker/ROLLUP.md",".aiworker/mcp.json",".aiworker/.gitignore",".aiworker/skills/",".aiworker/memories/",".aiworker/local/",".aiworker/local/.gitignore",".aiworker/local/workspaces/"],Hi=[".aiworker/local/.env",".aiworker/local/worker.db"],Wi=[".aiworker/local/identity.json"],Vi=[{path:"AGENTS.md",type:"file"},{path:"CLAUDE.md",type:"file"},{path:".agents/",type:"directory"},{path:".claude/",type:"directory"}];async function tZ(D={}){if(D.global===!0){let B=z0.join(Gi(),".aiworker"),H=aZ(B,D);if(T$(H),D.dryRun===!0)return;g1.env.AIWORKER_HOME=B,x1({home:B});let W=await sD();E.success(`[aiworker init] user-scope worker ${W.workerId} ready (config v${W.configVersion})`);return}let $=Q2();if($.scope==="explicit"){let B=aZ($.home,{...D,scope:"explicit"});if(T$(B),D.dryRun===!0)return;x1({home:$.home});let H=await sD();E.success(`[aiworker init] explicit-scope worker ${H.workerId} ready (${$.home})`);return}let F=g1.cwd(),X=LF(F);if(X){let B=oZ(X,D);if(T$(B),D.dryRun===!0)return;await bF(X),x1({home:z0.join(X,".aiworker","local")});let H=await sD();E.success(`[aiworker init] project-scope worker ${H.workerId} ready (${X})`);return}if(D.force!==!0&&!Qi(F))throw Error(`[aiworker init] cwd is not inside a git repo (cwd=${F}).
|
|
358
|
-
`+` \u2022 Run inside an existing git repo to enable project-scope worker, OR
|
|
359
|
-
`+` \u2022 aiworker init --global \u2192 use ~/.aiworker (single host-wide worker), OR
|
|
360
|
-
`+" \u2022 aiworker init --force \u2192 create .aiworker/ here anyway (no git tracking).");let J=oZ(F,D);if(T$(J),D.dryRun===!0)return;await bF(F);let G=z0.join(F,".aiworker","local");delete g1.env.AIWORKER_HOME,x1({home:G});let Y=await sD();E.success(`[aiworker init] project-scope worker ${Y.workerId} ready (${F})`)}function Qi(D){let $=z0.resolve(D);while(!0){if(h1(z0.join($,".git")))return!0;let F=z0.dirname($);if(F===$)return!1;$=F}}function oZ(D,$){let F=z0.resolve(D),X=[],J=[],G=[];for(let Y of Bi){let B=`${Y}${h1(z0.join(F,Y))?" (existing aiworker layout)":""}`;if(h1(z0.join(F,Y)))J.push(B);else X.push(Y)}for(let Y of Hi)if(h1(z0.join(F,Y)))J.push(`${Y} (existing local state)`);else X.push(`${Y} (worker bootstrap)`);for(let Y of Wi)if(h1(z0.join(F,Y)))J.push(`${Y} (existing local state)`);for(let Y of Vi){let B=Y.path,H=z0.join(F,B);if(h1(H))G.push(`${B} (external agent ${Y.type}; not modified, future adopt/merge candidate)`)}if($.force===!0)G.push("--force only skips the git-repo guard; it does not overwrite existing files");return{applyLabel:$.dryRun===!0?"dry-run (no files will be written)":"apply",create:X,preserve:J,requiresAction:G,scope:"project",targetHome:z0.join(F,".aiworker","local"),targetProject:F}}function aZ(D,$){let F=z0.resolve(D),X=[],J=[],G=[".env","worker.db","workers/"];for(let Y of G)if(h1(z0.join(F,Y)))J.push(`${Y} (existing user-scope state)`);else X.push(`${Y} (worker bootstrap)`);return{applyLabel:$.dryRun===!0?"dry-run (no files will be written)":"apply",create:X,preserve:J,requiresAction:[],scope:$.scope??"user",targetHome:F}}function T$(D){let $=[`[aiworker init] preflight (${D.scope}-scope)`,D.targetProject?`Project root : ${D.targetProject}`:null,`Home : ${D.targetHome}`,`Mode : ${D.applyLabel}`].filter((F)=>F!==null);g1.stdout.write(`${$.join(`
|
|
361
|
-
`)}
|
|
362
|
-
`),WB("Will create",D.create),WB("Will preserve",D.preserve),WB("Needs explicit action",D.requiresAction)}function WB(D,$){if(g1.stdout.write(`${D}:
|
|
363
|
-
`),$.length===0){g1.stdout.write(` - none
|
|
364
|
-
`);return}for(let F of $)g1.stdout.write(` - ${F}
|
|
365
|
-
`)}JD();var Ui=120000;async function eZ(D={}){let $=D.message??"";if(!$)return E.error("[aiw run] --message is required (non-empty)"),2;let F=await sD(),X=mZ(F),J=D.timeoutMs??Ui;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 G=D.chatId??"cli:stdin",Y={workerId:F.workerId,channel:"web",accountId:"sys:cli",chatId:G,text:$,receivedAt:new Date().toISOString(),raw:{source:"aiw-cli"}},B=new Promise((W)=>{let Q=null,U=setTimeout(()=>{E.error(`[aiw run] timed out after ${J}ms without reaching a terminal state`),Q?.(),W(124)},J);Q=X.bus.on((_)=>{if(console.log(JSON.stringify({type:_.type,at:_.at,payload:_.payload})),_.type==="orchestrator.finished"||_.type==="orchestrator.error")clearTimeout(U),Q?.(),W(_.type==="orchestrator.finished"?0:1)})});try{await X.orchestrator.ingest(Y)}catch(W){return E.error(`[aiw run] ingest failed: ${String(W)}`),X.dispose(),1}let H=await B;return X.dispose(),H}JD();var DM=["web","line","telegram","lark","whatsapp"];function _i(D){if(!DM.includes(D))throw Error(`\u65E0\u6548 channel "${D}"\uFF0C\u53EF\u9009\u503C\uFF1A${DM.join(", ")}`);return D}async function VB(D){await sD({silent:!0});let{CronService:$}=await Promise.resolve().then(() => ($2(),uZ)),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 $M(){try{let D=await VB(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 FM(D){try{let $=_i(D.channel),F=await VB(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 XM(D){try{let $=await VB(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}}A2();import{existsSync as Ai}from"fs";import JM from"path";import YM from"process";async function GM(){let D=Q2();YM.stdout.write(`${[`Scope : ${D.scope}`,`Home : ${D.home}`,`Source : ${D.source}`,D.projectRoot?`Project root : ${D.projectRoot}`:null].filter(Boolean).join(`
|
|
366
|
-
`)}
|
|
367
|
-
`);let $="<workerId>",F=_2($),X=i7($),J=JM.join(D.home,".env"),G=JM.join(D.home,"worker.db"),Y=[["AGENT.md",IF($)],["SOUL.md",TF($)],["USER.md",wF($)],["MEMORY.md",jF($)],["ROLLUP.md",kW($)],["mcp.json",vW($)],["worker.db",G],["local/.env",J],["workspaces/",X],["worker home",F]];for(let[B,H]of Y){let Q=Ai(H)?"\u2713":"\xB7";YM.stdout.write(` ${Q} ${B.padEnd(14)} ${H}
|
|
368
|
-
`)}return 0}import m1 from"process";function B7(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 GD(D,$){var F;return((F=D===null||D===void 0?void 0:D._def)===null||F===void 0?void 0:F.typeName)===$}function Ki(D){return"_def"in D}function Y7(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 HM(D){if(typeof D.ZodType.prototype.openapi<"u")return;D.ZodType.prototype.openapi=function(J,G){var Y,B,H,W,Q,U;let _=typeof J==="string"?G:J,A=_!==null&&_!==void 0?_:{},{param:O}=A,C=B7(A,["param"]),K=Object.assign(Object.assign({},(Y=this._def.openapi)===null||Y===void 0?void 0:Y._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({},(U=(Q=this._def.openapi)===null||Q===void 0?void 0:Q.metadata)===null||U===void 0?void 0:U.param),O)}:void 0),z=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(GD(this,"ZodObject")){let N=this.extend;z.extend=function(...S){var b,L,q,j,d,VD,QD;let $D=N.apply(this,S);return $D._def.openapi={_internal:{extendedFrom:((L=(b=this._def.openapi)===null||b===void 0?void 0:b._internal)===null||L===void 0?void 0:L.refId)?{refId:(j=(q=this._def.openapi)===null||q===void 0?void 0:q._internal)===null||j===void 0?void 0:j.refId,schema:this}:(VD=(d=this._def.openapi)===null||d===void 0?void 0:d._internal)===null||VD===void 0?void 0:VD.extendedFrom},metadata:(QD=$D._def.openapi)===null||QD===void 0?void 0:QD.metadata},$D}}return z},Y7(D,"optional"),Y7(D,"nullable"),Y7(D,"default"),Y7(D,"transform"),Y7(D,"refine");let $=D.ZodObject.prototype.deepPartial;D.ZodObject.prototype.deepPartial=function(){let J=this._def.shape(),G=$.apply(this),Y=G._def.shape();return Object.entries(Y).forEach(([B,H])=>{var W,Q;H._def.openapi=(Q=(W=J[B])===null||W===void 0?void 0:W._def)===null||Q===void 0?void 0:Q.openapi}),G._def.openapi=void 0,G};let F=D.ZodObject.prototype.pick;D.ZodObject.prototype.pick=function(...J){let G=F.apply(this,J);return G._def.openapi=void 0,G};let X=D.ZodObject.prototype.omit;D.ZodObject.prototype.omit=function(...J){let G=X.apply(this,J);return G._def.openapi=void 0,G}}function w$(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)=>w$(D[X],$[X]))}class WM{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)=>w$(J,D)))F.push(D)}contains(D){let $=this.hashCodeOf(D),F=this.buckets.get($);if(!F)return!1;return F.some((X)=>w$(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 H7(D){return D===void 0}function W7(D,$){let F={};return Object.entries(D).forEach(([X,J])=>{F[X]=$(J)}),F}function Ci(D,$){let F={};return Object.entries(D).forEach(([X,J])=>{if(!$.some((G)=>G===X))F[X]=J}),F}function _3(D,$){let F={};return Object.entries(D).forEach(([X,J])=>{if(!$(J,X))F[X]=J}),F}function BM(D){return D.filter(($)=>!H7($))}var QB=w$;function Oi(D){let $=new WM;return D.forEach((F)=>$.put(F)),[...$.values()]}function VM(D){return typeof D==="string"}class UB{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 G=this.schemaWithRefId(D,$),Y=(F=G._def.openapi)===null||F===void 0?void 0:F.metadata,B=G.openapi(Object.assign(Object.assign({},Y),{param:Object.assign(Object.assign({},Y===null||Y===void 0?void 0:Y.param),{name:(J=(X=Y===null||Y===void 0?void 0:Y.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 Q7{constructor(D){this.message=D}}class U3 extends Q7{constructor(D,$){super(D);this.data=$}}class V7 extends Q7{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 G7(D,$){try{return D()}catch(F){if(F instanceof V7)throw new V7(Object.assign(Object.assign({},F.data),$));throw F}}class QM extends Q7{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,G=($=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:G},(F=J===null||J===void 0?void 0:J.metadata)===null||F===void 0?void 0:F.param)})}}static buildSchemaMetadata(D){return _3(Ci(D,["param"]),H7)}static buildParameterMetadata(D){return _3(D,H7)}static applySchemaMetadata(D,$){return _3(Object.assign(Object.assign({},D),this.buildSchemaMetadata($)),H7)}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($&&GD(D,$))return D;if(GD(D,"ZodOptional")||GD(D,"ZodNullable")||GD(D,"ZodBranded"))return this.unwrapUntil(D.unwrap(),$);if(GD(D,"ZodDefault")||GD(D,"ZodReadonly"))return this.unwrapUntil(D._def.innerType,$);if(GD(D,"ZodEffects"))return this.unwrapUntil(D._def.schema,$);if(GD(D,"ZodPipeline"))return this.unwrapUntil(D._def.in,$);return $?void 0:D}static isOptionalSchema(D){return D.isOptional()}}class UM{transform(D,$,F){var X,J;let G=D._def.type;return Object.assign(Object.assign({},$("array")),{items:F(G),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 _M{transform(D){return Object.assign(Object.assign({},D("string")),{pattern:"^d+$"})}}class AM{transform(D,$,F,X,J){let G=[...D.options.values()],Y=G.map(X);if($)return{oneOf:F(Y,$)};return{oneOf:Y,discriminator:this.mapDiscriminator(G,D.discriminator,J)}}mapDiscriminator(D,$,F){if(D.some((J)=>TD.getRefId(J)===void 0))return;let X={};return D.forEach((J)=>{var G;let Y=TD.getRefId(J),B=(G=J.shape)===null||G===void 0?void 0:G[$];if(GD(B,"ZodEnum")||GD(B,"ZodNativeEnum")){Object.values(B.enum).filter(VM).forEach((Q)=>{X[Q]=F(Y)});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(Y)}),{propertyName:$,mapping:X}}}class KM{transform(D,$){return Object.assign(Object.assign({},$("string")),{enum:D._def.values})}}class CM{transform(D,$,F,X){let G={allOf:this.flattenIntersectionTypes(D).map(X)};if($)return{anyOf:F([G],$)};return G}flattenIntersectionTypes(D){if(!GD(D,"ZodIntersection"))return[D];let $=this.flattenIntersectionTypes(D._def.left),F=this.flattenIntersectionTypes(D._def.right);return[...$,...F]}}class OM{transform(D,$){return Object.assign(Object.assign({},$(typeof D._def.value)),{enum:[D._def.value]})}}function Ri(D){let F=Object.keys(D).filter((G)=>typeof D[D[G]]!=="number").map((G)=>D[G]),X=F.filter((G)=>typeof G==="number").length,J=X===0?"string":X===F.length?"numeric":"mixed";return{values:F,type:J}}class RM{transform(D,$){let{type:F,values:X}=Ri(D._def.values);if(F==="mixed")throw new Q7("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 EM{transform(D,$,F){return Object.assign(Object.assign({},$(D.isInt?"integer":"number")),F(D._def.checks))}}class ZM{transform(D,$,F,X){var J;let G=(J=TD.getInternalMetadata(D))===null||J===void 0?void 0:J.extendedFrom,Y=this.requiredKeysOf(D),B=W7(D._def.shape(),X);if(!G)return Object.assign(Object.assign(Object.assign(Object.assign({},F("object")),{properties:B,default:$}),Y.length>0?{required:Y}:{}),this.generateAdditionalProperties(D,X));let H=G.schema;X(H);let W=this.requiredKeysOf(H),Q=W7(H===null||H===void 0?void 0:H._def.shape(),X),U=Object.fromEntries(Object.entries(B).filter(([O,C])=>{return!QB(Q[O],C)})),_=Y.filter((O)=>!W.includes(O)),A=Object.assign(Object.assign(Object.assign(Object.assign({},F("object")),{default:$,properties:U}),_.length>0?{required:_}:{}),this.generateAdditionalProperties(D,X));return{allOf:[{$ref:`#/components/schemas/${G.refId}`},A]}}generateAdditionalProperties(D,$){let F=D._def.unknownKeys,X=D._def.catchall;if(GD(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 MM{transform(D,$,F){let X=D._def.valueType,J=D._def.keyType,G=F(X);if(GD(J,"ZodEnum")||GD(J,"ZodNativeEnum")){let B=Object.values(J.enum).filter(VM).reduce((H,W)=>Object.assign(Object.assign({},H),{[W]:G}),{});return Object.assign(Object.assign({},$("object")),{properties:B})}return Object.assign(Object.assign({},$("object")),{additionalProperties:G})}}class zM{transform(D,$){var F,X,J;let G=this.getZodStringCheck(D,"regex"),Y=(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:Y!==null&&Y!==void 0?Y:B,maxLength:Y!==null&&Y!==void 0?Y:H,format:this.mapStringFormat(D),pattern:G===null||G===void 0?void 0:G.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 NM{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 PM{transform(D,$,F){let J=this.flattenUnionTypes(D).map((G)=>{let Y=this.unwrapNullable(G);return F(Y)});return{anyOf:$(J)}}flattenUnionTypes(D){if(!GD(D,"ZodUnion"))return[D];return D._def.options.flatMap((F)=>this.flattenUnionTypes(F))}unwrapNullable(D){if(GD(D,"ZodNullable"))return this.unwrapNullable(D.unwrap());return D}}class qM{constructor(D){this.versionSpecifics=D,this.objectTransformer=new ZM,this.stringTransformer=new zM,this.numberTransformer=new EM,this.bigIntTransformer=new _M,this.literalTransformer=new OM,this.enumTransformer=new KM,this.nativeEnumTransformer=new RM,this.arrayTransformer=new UM,this.unionTransformer=new PM,this.discriminatedUnionTransformer=new AM,this.intersectionTransformer=new CM,this.recordTransformer=new MM,this.tupleTransformer=new NM(D)}transform(D,$,F,X,J){if(GD(D,"ZodNull"))return this.versionSpecifics.nullType;if(GD(D,"ZodUnknown")||GD(D,"ZodAny"))return this.versionSpecifics.mapNullableType(void 0,$);if(GD(D,"ZodObject"))return this.objectTransformer.transform(D,J,(Y)=>this.versionSpecifics.mapNullableType(Y,$),F);let G=this.transformSchemaWithoutDefault(D,$,F,X);return Object.assign(Object.assign({},G),{default:J})}transformSchemaWithoutDefault(D,$,F,X){if(GD(D,"ZodUnknown")||GD(D,"ZodAny"))return this.versionSpecifics.mapNullableType(void 0,$);if(GD(D,"ZodString"))return this.stringTransformer.transform(D,(G)=>this.versionSpecifics.mapNullableType(G,$));if(GD(D,"ZodNumber"))return this.numberTransformer.transform(D,(G)=>this.versionSpecifics.mapNullableType(G,$),(G)=>this.versionSpecifics.getNumberChecks(G));if(GD(D,"ZodBigInt"))return this.bigIntTransformer.transform((G)=>this.versionSpecifics.mapNullableType(G,$));if(GD(D,"ZodBoolean"))return this.versionSpecifics.mapNullableType("boolean",$);if(GD(D,"ZodLiteral"))return this.literalTransformer.transform(D,(G)=>this.versionSpecifics.mapNullableType(G,$));if(GD(D,"ZodEnum"))return this.enumTransformer.transform(D,(G)=>this.versionSpecifics.mapNullableType(G,$));if(GD(D,"ZodNativeEnum"))return this.nativeEnumTransformer.transform(D,(G)=>this.versionSpecifics.mapNullableType(G,$));if(GD(D,"ZodArray"))return this.arrayTransformer.transform(D,(G)=>this.versionSpecifics.mapNullableType(G,$),F);if(GD(D,"ZodTuple"))return this.tupleTransformer.transform(D,(G)=>this.versionSpecifics.mapNullableType(G,$),F);if(GD(D,"ZodUnion"))return this.unionTransformer.transform(D,(G)=>this.versionSpecifics.mapNullableOfArray(G,$),F);if(GD(D,"ZodDiscriminatedUnion"))return this.discriminatedUnionTransformer.transform(D,$,(G)=>this.versionSpecifics.mapNullableOfArray(G,$),F,X);if(GD(D,"ZodIntersection"))return this.intersectionTransformer.transform(D,$,(G)=>this.versionSpecifics.mapNullableOfArray(G,$),F);if(GD(D,"ZodRecord"))return this.recordTransformer.transform(D,(G)=>this.versionSpecifics.mapNullableType(G,$),F);if(GD(D,"ZodDate"))return this.versionSpecifics.mapNullableType("string",$);let J=TD.getRefId(D);throw new QM({currentSchema:D._def,schemaName:J})}}class _B{constructor(D,$){this.definitions=D,this.versionSpecifics=$,this.schemaRefs={},this.paramRefs={},this.pathRefs={},this.rawComponents=[],this.openApiTransformer=new qM($),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:G})=>{var Y;(Y=F[X])!==null&&Y!==void 0||(F[X]={}),F[X][J]=G}),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((G)=>G===$.type),J=D.findIndex((G)=>G===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,G,Y;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(!((G=D===null||D===void 0?void 0:D._internal)===null||G===void 0?void 0:G.refId)||!H)return;if(B&&H.in!==B.in||($===null||$===void 0?void 0:$.in)&&H.in!==$.in)throw new U3(`Conflicting location for parameter ${H.name}`,{key:"in",values:BM([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 U3("Conflicting names for parameter",{key:"name",values:BM([H.name,$===null||$===void 0?void 0:$.name,B===null||B===void 0?void 0:B.name])});return{$ref:`#/components/parameters/${(Y=D._internal)===null||Y===void 0?void 0:Y.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,G=this.getParameterRef(X,{in:$});if(G)return[G];if(GD(D,"ZodObject")){let Y=D._def.shape();return Object.entries(Y).map(([H,W])=>{var Q,U;let _=TD.getMetadata(W),A=this.getParameterRef(_,{in:$,name:H});if(A)return A;let O=(Q=_===null||_===void 0?void 0:_.metadata)===null||Q===void 0?void 0:Q.param;if((O===null||O===void 0?void 0:O.name)&&O.name!==H)throw new U3("Conflicting names for parameter",{key:"name",values:[H,O.name]});if((O===null||O===void 0?void 0:O.in)&&O.in!==$)throw new U3(`Conflicting location for parameter ${(U=O.name)!==null&&U!==void 0?U: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 U3(`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(),G=this.generateSchemaWithRef(D);return Object.assign({schema:G,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,G=X===null||X===void 0?void 0:X.in;if(!J)throw new V7({missingField:"name"});if(!G)throw new V7({missingField:"in",paramName:J});let Y=this.generateSimpleParameter(D);return Object.assign(Object.assign({},Y),{in:G,name:J})}generateSchemaWithMetadata(D){var $;let F=TD.unwrapChained(D),X=TD.getMetadata(D),J=TD.getDefaultValue(D),G=(($=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(G,X.metadata):_3(G,H7)}constructReferencedOpenAPISchema(D){var $;let F=TD.getMetadata(D),X=TD.unwrapChained(D),J=TD.getDefaultValue(D),G=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,G);return this.toOpenAPISchema(X,G,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],G={$ref:this.generateSchemaRef(X)},Y=_3(TD.buildSchemaMetadata(($=F===null||F===void 0?void 0:F.metadata)!==null&&$!==void 0?$:{}),(W,Q)=>W===void 0||QB(W,J[Q]));if(Y.type)return{allOf:[G,Y]};let B=_3(this.constructReferencedOpenAPISchema(D),(W,Q)=>W===void 0||QB(W,J[Q])),H=TD.applySchemaMetadata(B,Y);if(Object.keys(H).length>0)return{allOf:[G,H]};return G}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=B7(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),G=G7(()=>F?this.generateInlineParameters(F,"query"):[],{location:"query"}),Y=G7(()=>X?this.generateInlineParameters(X,"path"):[],{location:"path"}),B=G7(()=>J?this.generateInlineParameters(J,"cookie"):[],{location:"cookie"}),H=G7(()=>{if(Array.isArray($))return $.flatMap((Q)=>this.generateInlineParameters(Q,"header"));let W=this.cleanParameter($);return W?this.generateInlineParameters(W,"header"):[]},{location:"header"});return[...Y,...G,...H,...B]}cleanParameter(D){if(!D)return;return GD(D,"ZodEffects")?this.cleanParameter(D._def.schema):D}generatePath(D){let{method:$,path:F,request:X,responses:J}=D,G=B7(D,["method","path","request","responses"]),Y=W7(J,(Q)=>{return this.getResponse(Q)}),B=G7(()=>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({},G),B.length>0?{parameters:[...G.parameters||[],...B]}:{}),H?{requestBody:H}:{}),{responses:Y})}}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=B7(D,["content","headers"]),J=$?{content:this.getBodyContent($)}:{};if(!F)return Object.assign(Object.assign({},X),J);let G=GD(F,"ZodObject")?this.getResponseHeaders(F):F;return Object.assign(Object.assign(Object.assign({},X),{headers:G}),J)}isReferenceObject(D){return"$ref"in D}getResponseHeaders(D){let $=D._def.shape();return W7($,(X)=>this.generateSimpleParameter(X))}getBodyContent(D){return W7(D,($)=>{if(!$||!Ki($.schema))return $;let{schema:F}=$,X=B7($,["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 LM{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 $=Oi(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 AB{constructor(D){let $=new LM;this.generator=new _B(D,$)}generateDocument(D){let $=this.generator.generateDocumentData();return Object.assign(Object.assign({},D),$)}generateComponents(){return this.generator.generateComponents()}}class jM{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 Ei(D){return"type"in D&&D.type==="webhook"}class KB{constructor(D){this.definitions=D,this.webhookRefs={};let $=new jM;this.generator=new _B(this.definitions,$)}generateDocument(D){let $=this.generator.generateDocumentData();return this.definitions.filter(Ei).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 OB=(D)=>{let $=D.split("/");if($[0]==="")$.shift();return $},IM=(D)=>{let{groups:$,path:F}=Zi(D),X=OB(F);return Mi(X,$)},Zi=(D)=>{let $=[];return D=D.replace(/\{[^}]+\}/g,(F,X)=>{let J=`@${X}`;return $.push([J,F]),J}),{groups:$,path:D}},Mi=(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},S$={},TM=(D,$)=>{if(D==="*")return"*";let F=D.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(F){let X=`${D}#${$}`;if(!S$[X])if(F[2])S$[X]=$&&$[0]!==":"&&$[0]!=="*"?[X,F[1],new RegExp(`^${F[2]}(?=/${$})`)]:[D,F[1],new RegExp(`^${F[2]}$`)];else S$[X]=[D,F[1],!0];return S$[X]}return null},A3=(D,$)=>{try{return $(D)}catch{return D.replace(/(?:%[0-9A-Fa-f]{2})+/g,(F)=>{try{return $(F)}catch{return F}})}},zi=(D)=>A3(D,decodeURI),RB=(D)=>{let $=D.url,F=$.indexOf("/",$.indexOf(":")+4),X=F;for(;X<$.length;X++){let J=$.charCodeAt(X);if(J===37){let G=$.indexOf("?",X),Y=$.indexOf("#",X),B=G===-1?Y===-1?void 0:Y:Y===-1?G:Math.min(G,Y),H=$.slice(F,B);return zi(H.includes("%25")?H.replace(/%25/g,"%2525"):H)}else if(J===63||J===35)break}return $.slice(F,X)};var wM=(D)=>{let $=RB(D);return $.length>1&&$.at(-1)==="/"?$.slice(0,-1):$},w2=(D,$,...F)=>{if(F.length)$=w2($,...F);return`${D?.[0]==="/"?"":"/"}${D}${$==="/"?"":`${D?.at(-1)==="/"?"":"/"}${$?.[0]==="/"?$.slice(1):$}`}`},b$=(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 G=J.replace("?","");X+="/"+G,F.push(X)}else X+="/"+J}),F.filter((J,G,Y)=>Y.indexOf(J)===G)},CB=(D)=>{if(!/[%+]/.test(D))return D;if(D.indexOf("+")!==-1)D=D.replace(/\+/g," ");return D.indexOf("%")!==-1?A3(D,U7):D},SM=(D,$,F)=>{let X;if(!F&&$&&!/[%+]/.test($)){let Y=D.indexOf("?",8);if(Y===-1)return;if(!D.startsWith($,Y+1))Y=D.indexOf(`&${$}`,Y+1);while(Y!==-1){let B=D.charCodeAt(Y+$.length+1);if(B===61){let H=Y+$.length+2,W=D.indexOf("&",H);return CB(D.slice(H,W===-1?void 0:W))}else if(B==38||isNaN(B))return"";Y=D.indexOf(`&${$}`,Y+1)}if(X=/[%+]/.test(D),!X)return}let J={};X??=/[%+]/.test(D);let G=D.indexOf("?",8);while(G!==-1){let Y=D.indexOf("&",G+1),B=D.indexOf("=",G);if(B>Y&&Y!==-1)B=-1;let H=D.slice(G+1,B===-1?Y===-1?void 0:Y:B);if(X)H=CB(H);if(G=Y,H==="")continue;let W;if(B===-1)W="";else if(W=D.slice(B+1,Y===-1?void 0:Y),X)W=CB(W);if(F){if(!(J[H]&&Array.isArray(J[H])))J[H]=[];J[H].push(W)}else J[H]??=W}return $?J[$]:J},bM=SM,fM=(D,$)=>{return SM(D,$,!0)},U7=decodeURIComponent;var Ni=/^[\w!#$%&'*.^`|~+-]+$/,Pi=/^[ !#-:<-[\]-~]*$/,kM=(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)},EB=(D,$)=>{if($&&D.indexOf($)===-1)return{};let F=D.split(";"),X={};for(let J of F){let G=J.indexOf("=");if(G===-1)continue;let Y=kM(J.substring(0,G));if($&&$!==Y||!Ni.test(Y))continue;let B=kM(J.substring(G+1));if(B.startsWith('"')&&B.endsWith('"'))B=B.slice(1,-1);if(Pi.test(B)){if(X[Y]=B.indexOf("%")!==-1?A3(B,U7):B,$)break}}return X};var vM=(D,$,F)=>{let X=D.req.raw.headers.get("Cookie");if(typeof $==="string"){if(!X)return;let G=$;if(F==="secure")G="__Secure-"+$;else if(F==="host")G="__Host-"+$;return EB(X,G)[G]}if(!X)return{};return EB(X)};var f$=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 xM=(D,$)=>{return new Response(D,{headers:{"Content-Type":$}}).formData()};var qi=/^application\/([a-z-\.]+\+)?json(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/,Li=/^multipart\/form-data(;\s?boundary=[a-zA-Z0-9'"()+_,\-./:=?]+)?$/,ji=/^application\/x-www-form-urlencoded(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/,ZB=(D,$)=>{return async(F,X)=>{let J={},G=F.req.header("Content-Type");switch(D){case"json":if(!G||!qi.test(G))break;try{J=await F.req.json()}catch{throw new f$(400,{message:"Malformed JSON in request body"})}break;case"form":{if(!G||!(Li.test(G)||ji.test(G)))break;let B;if(F.req.bodyCache.formData)B=await F.req.bodyCache.formData;else try{let W=await F.req.arrayBuffer();B=await xM(W,G),F.req.bodyCache.formData=B}catch(W){let Q="Malformed FormData request.";throw Q+=W instanceof Error?` ${W.message}`:` ${String(W)}`,new f$(400,{message:Q})}let H=Object.create(null);B.forEach((W,Q)=>{if(Q.endsWith("[]"))(H[Q]??=[]).push(W);else if(Array.isArray(H[Q]))H[Q].push(W);else if(Object.hasOwn(H,Q))H[Q]=[H[Q],W];else H[Q]=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=vM(F);break}let Y=await $(J,F);if(Y instanceof Response)return Y;return F.req.addValidatedData(D,Y),await X()}};function Ii(D,$,F,X){return ZB(D,async(J,G)=>{let Y=J;if(D==="header"&&"_def"in $||D==="header"&&"_zod"in $){let H=Object.keys("in"in $?$.in.shape:$.shape),W=Object.fromEntries(H.map((Q)=>[Q.toLowerCase(),Q]));Y=Object.fromEntries(Object.entries(J).map(([Q,U])=>[W[Q]||Q,U]))}let B=X&&X.validationFunction?await X.validationFunction($,Y):await $.safeParseAsync(Y);if(F){let H=await F({data:Y,...B,target:D},G);if(H){if(H instanceof Response)return H;if("response"in H)return H.response}}if(!B.success)return G.json(B,400);return B.data})}var y1=Ii;var MB=(D,$,F)=>{return(X,J)=>{let G=-1;return Y(0);async function Y(B){if(B<=G)throw Error("next() called multiple times");G=B;let H,W=!1,Q;if(D[B])Q=D[B][0][0],X.req.routeIndex=B;else Q=B===D.length&&J||void 0;if(Q)try{H=await Q(X,()=>Y(B+1))}catch(U){if(U instanceof Error&&$)X.error=U,H=await $(U,X),W=!0;else throw U}else if(X.finalized===!1&&F)H=await F(X);if(H&&(X.finalized===!1||W))X.res=H;return X}}};var hM=Symbol();var gM=async(D,$=Object.create(null))=>{let{all:F=!1,dot:X=!1}=$,G=(D instanceof k$?D.raw.headers:D.headers).get("Content-Type");if(G?.startsWith("multipart/form-data")||G?.startsWith("application/x-www-form-urlencoded"))return Ti(D,{all:F,dot:X});return{}};async function Ti(D,$){let F=await D.formData();if(F)return wi(F,$);return{}}function wi(D,$){let F=Object.create(null);if(D.forEach((X,J)=>{if(!($.all||J.endsWith("[]")))F[J]=X;else Si(F,J,X)}),$.dot)Object.entries(F).forEach(([X,J])=>{if(X.includes("."))bi(F,X,J),delete F[X]});return F}var Si=(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]},bi=(D,$,F)=>{if(/(?:^|\.)__proto__\./.test($))return;let X=D,J=$.split(".");J.forEach((G,Y)=>{if(Y===J.length-1)X[G]=F;else{if(!X[G]||typeof X[G]!=="object"||Array.isArray(X[G])||X[G]instanceof File)X[G]=Object.create(null);X=X[G]}})};var yM=(D)=>A3(D,U7),k$=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.#Y()}#X(D){let $=this.#$[0][this.routeIndex][1][D],F=this.#J($);return F&&/\%/.test(F)?yM(F):F}#Y(){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)?yM(X):X}return D}#J(D){return this.#$[1]?this.#$[1][D]:D}query(D){return bM(this.url,D)}queries(D){return fM(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 gM(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((G)=>{if(J==="json")G=JSON.stringify(G);return new Response(G)[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[hM](){return this.#$}get matchedRoutes(){return this.#$[0].map(([[,D]])=>D)}get routePath(){return this.#$[0].map(([[,D]])=>D)[this.routeIndex].path}};var v$={Stringify:1,BeforeStream:2,Stream:3},fi=(D,$)=>{let F=new String(D);return F.isEscaped=!0,F.callbacks=$,F};var _7=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 G=D.callbacks;if(!G?.length)return Promise.resolve(D);if(J)J[0]+=D;else J=[D];let Y=Promise.all(G.map((B)=>B({phase:$,buffer:J,context:X}))).then((B)=>Promise.all(B.filter(Boolean).map((H)=>_7(H,$,!1,X,J))).then(()=>J[0]));if(F)return fi(await Y,G);else return Y};var uM="text/plain; charset=UTF-8",zB=(D,$)=>{return{"Content-Type":D,...$}},A7=(D,$)=>new Response(D,$),mM=class{#D;#$;env={};#X;finalized=!1;error;#Y;#J;#F;#W;#H;#B;#G;#Q;#U;constructor(D,$){if(this.#D=D,$)this.#J=$.executionCtx,this.env=$.env,this.#B=$.notFoundHandler,this.#U=$.path,this.#Q=$.matchResult}get req(){return this.#$??=new k$(this.#D,this.#U,this.#Q),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||=A7(null,{headers:this.#G??=new Headers})}set res(D){if(this.#F&&D){D=A7(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=A7(this.#F.body,this.#F);let X=this.#F?this.#F.headers:this.#G??=new Headers;if($===void 0)X.delete(D);else if(F?.append)X.append(D,$);else X.set(D,$)};status=(D)=>{this.#Y=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)}#V(D,$,F){let X=this.#F?new Headers(this.#F.headers):this.#G??new Headers;if(typeof $==="object"&&"headers"in $){let G=$.headers instanceof Headers?$.headers:new Headers($.headers);for(let[Y,B]of G)if(Y.toLowerCase()==="set-cookie")X.append(Y,B);else X.set(Y,B)}if(F)for(let[G,Y]of Object.entries(F))if(typeof Y==="string")X.set(G,Y);else{X.delete(G);for(let B of Y)X.append(G,B)}let J=typeof $==="number"?$:$?.status??this.#Y;return A7(D,{status:J,headers:X})}newResponse=(...D)=>this.#V(...D);body=(D,$,F)=>this.#V(D,$,F);text=(D,$,F)=>{return!this.#G&&!this.#Y&&!$&&!F&&!this.finalized?new Response(D):this.#V(D,$,zB(uM,F))};json=(D,$,F)=>{return this.#V(JSON.stringify(D),$,zB("application/json",F))};html=(D,$,F)=>{let X=(J)=>this.#V(J,$,zB("text/html; charset=UTF-8",F));return typeof D==="object"?_7(D,v$.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??=()=>A7(),this.#B(this)}};var ND="ALL",pM="all",cM=["get","post","put","delete","options","patch"],x$="Can not add a route since the matcher is already built.",h$=class extends Error{};var dM="__COMPOSED_HANDLER";var ki=(D)=>{return D.text("404 Not Found",404)},lM=(D,$)=>{if("getResponse"in D){let F=D.getResponse();return $.newResponse(F.body,F)}return console.error(D),$.text("Internal Server Error",500)},iM=class D{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#D="/";routes=[];constructor($={}){[...cM,pM].forEach((G)=>{this[G]=(Y,...B)=>{if(typeof Y==="string")this.#D=Y;else this.#Y(G,this.#D,Y);return B.forEach((H)=>{this.#Y(G,this.#D,H)}),this}}),this.on=(G,Y,...B)=>{for(let H of[Y].flat()){this.#D=H;for(let W of[G].flat())B.map((Q)=>{this.#Y(W.toUpperCase(),this.#D,Q)})}return this},this.use=(G,...Y)=>{if(typeof G==="string")this.#D=G;else this.#D="*",Y.unshift(G);return Y.forEach((B)=>{this.#Y(ND,this.#D,B)}),this};let{strict:X,...J}=$;Object.assign(this,J),this.getPath=X??!0?$.getPath??RB:wM}#$(){let $=new D({router:this.router,getPath:this.getPath});return $.errorHandler=this.errorHandler,$.#X=this.#X,$.routes=this.routes,$}#X=ki;errorHandler=lM;route($,F){let X=this.basePath($);return F.routes.map((J)=>{let G;if(F.errorHandler===lM)G=J.handler;else G=async(Y,B)=>(await MB([],F.errorHandler)(Y,()=>J.handler(Y,B))).res,G[dM]=J.handler;X.#Y(J.method,J.path,G)}),this}basePath($){let F=this.#$();return F._basePath=w2(this._basePath,$),F}onError=($)=>{return this.errorHandler=$,this};notFound=($)=>{return this.#X=$,this};mount($,F,X){let J,G;if(X)if(typeof X==="function")G=X;else if(G=X.optionHandler,X.replaceRequest===!1)J=(H)=>H;else J=X.replaceRequest;let Y=G?(H)=>{let W=G(H);return Array.isArray(W)?W:[W]}:(H)=>{let W=void 0;try{W=H.executionCtx}catch{}return[H.env,W]};J||=(()=>{let H=w2(this._basePath,$),W=H==="/"?0:H.length;return(Q)=>{let U=new URL(Q.url);return U.pathname=U.pathname.slice(W)||"/",new Request(U,Q)}})();let B=async(H,W)=>{let Q=await F(J(H.req.raw),...Y(H));if(Q)return Q;await W()};return this.#Y(ND,w2($,"*"),B),this}#Y($,F,X){$=$.toUpperCase(),F=w2(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 G=this.getPath($,{env:X}),Y=this.router.match(J,G),B=new mM($,{path:G,matchResult:Y,env:X,executionCtx:F,notFoundHandler:this.#X});if(Y[0].length===1){let W;try{W=Y[0][0][0][0](B,async()=>{B.res=await this.#X(B)})}catch(Q){return this.#J(Q,B)}return W instanceof Promise?W.then((Q)=>Q||(B.finalized?B.res:this.#X(B))).catch((Q)=>this.#J(Q,B)):W??this.#X(B)}let H=MB(Y[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${w2("/",$)}`,F),X,J)};fire=()=>{addEventListener("fetch",($)=>{$.respondWith(this.#F($.request,$,void 0,$.request.method))})}};var K7=[];function g$(D,$){let F=this.buildAllMatchers(),X=(J,G)=>{let Y=F[J]||F[ND],B=Y[2][G];if(B)return B;let H=G.match(Y[0]);if(!H)return[[],K7];let W=H.indexOf("",1);return[Y[1][W],H]};return this.match=X,X(D,$)}var y$="[^/]+",C7=".*",O7="(?:|/.*)",u1=Symbol(),vi=new Set(".\\+*[^]$()");function xi(D,$){if(D.length===1)return $.length===1?D<$?-1:1:-1;if($.length===1)return 1;if(D===C7||D===O7)return 1;else if($===C7||$===O7)return-1;if(D===y$)return 1;else if($===y$)return-1;return D.length===$.length?D<$?-1:1:$.length-D.length}var nM=class D{#D;#$;#X=Object.create(null);insert($,F,X,J,G){if($.length===0){if(this.#D!==void 0)throw u1;if(G)return;this.#D=F;return}let[Y,...B]=$,H=Y==="*"?B.length===0?["","",C7]:["","",y$]:Y==="/*"?["","",O7]:Y.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),W;if(H){let Q=H[1],U=H[2]||y$;if(Q&&H[2]){if(U===".*")throw u1;if(U=U.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(U))throw u1}if(W=this.#X[U],!W){if(Object.keys(this.#X).some((_)=>_!==C7&&_!==O7))throw u1;if(G)return;if(W=this.#X[U]=new D,Q!=="")W.#$=J.varIndex++}if(!G&&Q!=="")X.push([Q,W.#$])}else if(W=this.#X[Y],!W){if(Object.keys(this.#X).some((Q)=>Q.length>1&&Q!==C7&&Q!==O7))throw u1;if(G)return;W=this.#X[Y]=new D}W.insert(B,F,X,J,G)}buildRegExpStr(){let F=Object.keys(this.#X).sort(xi).map((X)=>{let J=this.#X[X];return(typeof J.#$==="number"?`(${X})@${J.#$}`:vi.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 sM=class{#D={varIndex:0};#$=new nM;insert(D,$,F){let X=[],J=[];for(let Y=0;;){let B=!1;if(D=D.replace(/\{[^}]+\}/g,(H)=>{let W=`@\\${Y}`;return J[Y]=[W,H],Y++,B=!0,W}),!B)break}let G=D.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let Y=J.length-1;Y>=0;Y--){let[B]=J[Y];for(let H=G.length-1;H>=0;H--)if(G[H].indexOf(B)!==-1){G[H]=G[H].replace(B,J[Y][1]);break}}return this.#$.insert(G,$,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,G,Y)=>{if(G!==void 0)return F[++$]=Number(G),"$()";if(Y!==void 0)return X[Number(Y)]=++$,"";return""}),[new RegExp(`^${D}`),F,X]}};var hi=[/^$/,[],Object.create(null)],rM=Object.create(null);function oM(D){return rM[D]??=new RegExp(D==="*"?"":`^${D.replace(/\/\*$|([.\\+*[^\]$()])/g,($,F)=>F?`\\${F}`:"(?:|/.*)")}$`)}function gi(){rM=Object.create(null)}function yi(D){let $=new sM,F=[];if(D.length===0)return hi;let X=D.map((W)=>[!/\*|\/:/.test(W[0]),...W]).sort(([W,Q],[U,_])=>W?1:U?-1:Q.length-_.length),J=Object.create(null);for(let W=0,Q=-1,U=X.length;W<U;W++){let[_,A,O]=X[W];if(_)J[A]=[O.map(([K])=>[K,Object.create(null)]),K7];else Q++;let C;try{C=$.insert(A,Q,_)}catch(K){throw K===u1?new h$(A):K}if(_)continue;F[Q]=O.map(([K,R])=>{let z=Object.create(null);R-=1;for(;R>=0;R--){let[N,S]=C[R];z[N]=S}return[K,z]})}let[G,Y,B]=$.buildRegExp();for(let W=0,Q=F.length;W<Q;W++)for(let U=0,_=F[W].length;U<_;U++){let A=F[W][U]?.[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 Y)H[W]=F[Y[W]];return[G,H,J]}function K3(D,$){if(!D)return;for(let F of Object.keys(D).sort((X,J)=>J.length-X.length))if(oM(F).test($))return[...D[F]];return}var u$=class{name="RegExpRouter";#D;#$;constructor(){this.#D={[ND]:Object.create(null)},this.#$={[ND]:Object.create(null)}}add(D,$,F){let X=this.#D,J=this.#$;if(!X||!J)throw Error(x$);if(!X[D])[X,J].forEach((B)=>{B[D]=Object.create(null),Object.keys(B[ND]).forEach((H)=>{B[D][H]=[...B[ND][H]]})});if($==="/*")$="*";let G=($.match(/\/:/g)||[]).length;if(/\*$/.test($)){let B=oM($);if(D===ND)Object.keys(X).forEach((H)=>{X[H][$]||=K3(X[H],$)||K3(X[ND],$)||[]});else X[D][$]||=K3(X[D],$)||K3(X[ND],$)||[];Object.keys(X).forEach((H)=>{if(D===ND||D===H)Object.keys(X[H]).forEach((W)=>{B.test(W)&&X[H][W].push([F,G])})}),Object.keys(J).forEach((H)=>{if(D===ND||D===H)Object.keys(J[H]).forEach((W)=>B.test(W)&&J[H][W].push([F,G]))});return}let Y=b$($)||[$];for(let B=0,H=Y.length;B<H;B++){let W=Y[B];Object.keys(J).forEach((Q)=>{if(D===ND||D===Q)J[Q][W]||=[...K3(X[Q],W)||K3(X[ND],W)||[]],J[Q][W].push([F,G-H+B+1])})}}match=g$;buildAllMatchers(){let D=Object.create(null);return Object.keys(this.#$).concat(Object.keys(this.#D)).forEach(($)=>{D[$]||=this.#X($)}),this.#D=this.#$=void 0,gi(),D}#X(D){let $=[],F=D===ND;if([this.#D,this.#$].forEach((X)=>{let J=X[D]?Object.keys(X[D]).map((G)=>[G,X[D][G]]):[];if(J.length!==0)F||=!0,$.push(...J);else if(D!==ND)$.push(...Object.keys(X[ND]).map((G)=>[G,X[ND][G]]))}),!F)return null;else return yi($)}};var ui=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($))}#Y(D,$,F,X,J){let G=this.#D[D];if(!J)G[2][$][0].push([F,{}]);else X.forEach((Y)=>{if(typeof Y==="number")G[1][Y].push([F,J]);else G[2][Y||$][0].push([F,J])})}add(D,$,F){if(!this.#D[D]){let J=this.#D[ND],G={};for(let Y in J[2])G[Y]=[J[2][Y][0].slice(),K7];this.#D[D]=[J[0],J[1].map((Y)=>Array.isArray(Y)?Y.slice():0),G]}if($==="/*"||$==="*"){let J=[F,{}];if(D===ND)for(let G in this.#D)this.#X(G,J);else this.#X(D,J);return}let X=this.#$[$];if(!X)throw Error(`Path ${$} is not registered`);for(let[J,G]of X)if(D===ND)for(let Y in this.#D)this.#Y(Y,$,F,J,G);else this.#Y(D,$,F,J,G)}buildAllMatchers(){return this.#D}match=g$};var NB=class{name="SmartRouter";#D=[];#$=[];constructor(D){this.#D=D.routers}add(D,$,F){if(!this.#$)throw Error(x$);this.#$.push([D,$,F])}match(D,$){if(!this.#$)throw Error("Fatal error");let F=this.#D,X=this.#$,J=F.length,G=0,Y;for(;G<J;G++){let B=F[G];try{for(let H=0,W=X.length;H<W;H++)B.add(...X[H]);Y=B.match(D,$)}catch(H){if(H instanceof h$)continue;throw H}this.match=B.match.bind(B),this.#D=[B],this.#$=void 0;break}if(G===J)throw Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,Y}get activeRouter(){if(this.#$||this.#D.length!==1)throw Error("No active router has been determined yet.");return this.#D[0]}};var R7=Object.create(null),mi=(D)=>{for(let $ in D)return!0;return!1},aM=class D{#D;#$;#X;#Y=0;#J=R7;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.#Y=++this.#Y;let J=this,G=IM(F),Y=[];for(let B=0,H=G.length;B<H;B++){let W=G[B],Q=G[B+1],U=TM(W,Q),_=Array.isArray(U)?U[0]:W;if(_ in J.#$){if(J=J.#$[_],U)Y.push(U[1]);continue}if(J.#$[_]=new D,U)J.#X.push(U),Y.push(U[1]);J=J.#$[_]}return J.#D.push({[$]:{handler:X,possibleKeys:Y.filter((B,H,W)=>W.indexOf(B)===H),score:this.#Y}}),J}#F($,F,X,J,G){for(let Y=0,B=F.#D.length;Y<B;Y++){let H=F.#D[Y],W=H[X]||H[ND],Q={};if(W!==void 0){if(W.params=Object.create(null),$.push(W),J!==R7||G&&G!==R7)for(let U=0,_=W.possibleKeys.length;U<_;U++){let A=W.possibleKeys[U],O=Q[W.score];W.params[A]=G?.[A]&&!O?G[A]:J[A]??G?.[A],Q[W.score]=!0}}}}search($,F){let X=[];this.#J=R7;let G=[this],Y=OB(F),B=[],H=Y.length,W=null;for(let Q=0;Q<H;Q++){let U=Y[Q],_=Q===H-1,A=[];for(let C=0,K=G.length;C<K;C++){let R=G[C],z=R.#$[U];if(z)if(z.#J=R.#J,_){if(z.#$["*"])this.#F(X,z.#$["*"],$,R.#J);this.#F(X,z,$,R.#J)}else A.push(z);for(let N=0,S=R.#X.length;N<S;N++){let b=R.#X[N],L=R.#J===R7?{}:{...R.#J};if(b==="*"){let QD=R.#$["*"];if(QD)this.#F(X,QD,$,R.#J),QD.#J=L,A.push(QD);continue}let[q,j,d]=b;if(!U&&!(d instanceof RegExp))continue;let VD=R.#$[q];if(d instanceof RegExp){if(W===null){W=Array(H);let tD=F[0]==="/"?1:0;for(let S2=0;S2<H;S2++)W[S2]=tD,tD+=Y[S2].length+1}let QD=F.substring(W[Q]),$D=d.exec(QD);if($D){if(L[j]=$D[0],this.#F(X,VD,$,R.#J,L),mi(VD.#$)){VD.#J=L;let tD=$D[0].match(/\//)?.length??0;(B[tD]||=[]).push(VD)}continue}}if(d===!0||d.test(U))if(L[j]=U,_){if(this.#F(X,VD,$,L,R.#J),VD.#$["*"])this.#F(X,VD.#$["*"],$,L,R.#J)}else VD.#J=L,A.push(VD)}}let O=B.shift();G=O?A.concat(O):A}if(X.length>1)X.sort((Q,U)=>{return Q.score-U.score});return[X.map(({handler:Q,params:U})=>[Q,U])]}};var PB=class{name="TrieRouter";#D;constructor(){this.#D=new aM}add(D,$,F){let X=b$($);if(X){for(let J=0,G=X.length;J<G;J++)this.#D.insert(D,X[J],F);return}this.#D.insert(D,$,F)}match(D,$){return this.#D.search(D,$)}};var qB=class extends iM{constructor(D={}){super(D);this.router=D.router??new NB({routers:[new u$,new PB]})}};mD();var F2=class D extends qB{openAPIRegistry;defaultHook;constructor($){super($);this.openAPIRegistry=new UB,this.defaultHook=$?.defaultHook}openapi=({middleware:$,hide:F,...X},J,G=this.defaultHook)=>{if(!F)this.openAPIRegistry.registerPath(X);let Y=[];if(X.request?.query){let W=y1("query",X.request.query,G);Y.push(W)}if(X.request?.params){let W=y1("param",X.request.params,G);Y.push(W)}if(X.request?.headers){let W=y1("header",X.request.headers,G);Y.push(W)}if(X.request?.cookies){let W=y1("cookie",X.request.cookies,G);Y.push(W)}let B=X.request?.body?.content;if(B)for(let W of Object.keys(B)){if(!B[W])continue;let Q=B[W].schema;if(!(Q instanceof YD))continue;if(eM(W)){let U=y1("json",Q,G);if(X.request?.body?.required)Y.push(U);else{let _=async(A,O)=>{if(A.req.header("content-type")){if(eM(A.req.header("content-type")))return await U(A,O)}A.req.addValidatedData("json",{}),await O()};Y.push(_)}}if(Dz(W)){let U=y1("form",Q,G);if(X.request?.body?.required)Y.push(U);else{let _=async(A,O)=>{if(A.req.header("content-type")){if(Dz(A.req.header("content-type")))return await U(A,O)}A.req.addValidatedData("form",{}),await O()};Y.push(_)}}}let H=$?Array.isArray($)?$:[$]:[];return this.on([X.method],X.path.replaceAll(/\/{(.+?)}/g,"/:$1"),...H,...Y,J),this};getOpenAPIDocument=($)=>{let X=new AB(this.openAPIRegistry.definitions).generateDocument($);return this._basePath?tM(X,this._basePath):X};getOpenAPI31Document=($)=>{let X=new KB(this.openAPIRegistry.definitions).generateDocument($);return this._basePath?tM(X,this._basePath):X};doc=($,F)=>{return this.get($,(X)=>{let J=typeof F==="function"?F(X):F;try{let G=this.getOpenAPIDocument(J);return X.json(G)}catch(G){return X.json(G,500)}})};doc31=($,F)=>{return this.get($,(X)=>{let J=typeof F==="function"?F(X):F;try{let G=this.getOpenAPI31Document(J);return X.json(G)}catch(G){return X.json(G,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:w2(X,F._basePath.replaceAll(/:([^\/]+)/g,"{$1}"),J.route.path)});return}case"webhook":{this.openAPIRegistry.registerWebhook({...J.webhook,path:w2(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})}};HM(V);function tM(D,$){let F={};return Object.keys(D.paths).forEach((X)=>{F[w2($.replaceAll(/:([^\/]+)/g,"{$1}"),X)]=D.paths[X]}),{...D,paths:F}}function eM(D){return/^application\/([a-z-\.]+\+)?json/.test(D)}function Dz(D){return D.startsWith("multipart/form-data")||D.startsWith("application/x-www-form-urlencoded")}mD();var $z=[["--theme-","--scalar-"],["--sidebar-","--scalar-sidebar-"]],pi=$z.map(([D])=>D);function LB(D){if(!pi.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"),$z.reduce((F,[X,J])=>F.replaceAll(X,J),D)}var ci=V.enum(["alternate","default","moon","purple","solarized","bluePlanet","deepSpace","saturn","kepler","elysiajs","fastify","mars","none"]),di=V.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"]),li=V.enum(["adonisjs","docusaurus","dotnet","elysiajs","express","fastapi","fastify","go","hono","html","laravel","litestar","nestjs","nextjs","nitro","nuxt","platformatic","react","rust","vue"]).nullable(),IB=V.object({url:V.string().optional(),content:V.union([V.string(),V.record(V.any()),V.function().returns(V.record(V.any())),V.null()]).optional(),title:V.string().optional(),slug:V.string().optional()}),ii=V.object({basePath:V.string()}),Xz=V.object({authentication:V.any().optional(),baseServerURL:V.string().optional(),hideClientButton:V.boolean().optional().default(!1).catch(!1),proxyUrl:V.string().optional(),searchHotKey:di.optional(),servers:V.array(V.any()).optional(),showSidebar:V.boolean().optional().default(!0).catch(!0),spec:IB.optional(),theme:ci.optional().default("default").catch("default"),_integration:li.optional()}),Fz="https://api.scalar.com/request-proxy",jB="https://proxy.scalar.com",Jz=Xz.merge(V.object({layout:V.enum(["modern","classic"]).optional().default("modern").catch("modern"),proxy:V.string().optional(),isEditable:V.boolean().optional().default(!1).catch(!1),hideModels:V.boolean().optional().default(!1).catch(!1),hideDownloadButton:V.boolean().optional().default(!1).catch(!1),hideTestRequestButton:V.boolean().optional().default(!1).catch(!1),hideSearch:V.boolean().optional().default(!1).catch(!1),darkMode:V.boolean().optional(),forceDarkModeState:V.enum(["dark","light"]).optional(),hideDarkModeToggle:V.boolean().optional().default(!1).catch(!1),metaData:V.any().optional(),favicon:V.string().optional(),hiddenClients:V.union([V.record(V.union([V.boolean(),V.array(V.string())])),V.array(V.string()),V.literal(!0)]).optional(),defaultHttpClient:V.object({targetKey:V.custom(),clientKey:V.string()}).optional(),customCss:V.string().optional(),onSpecUpdate:V.function().args(V.string()).returns(V.void()).optional(),onServerChange:V.function().args(V.string()).returns(V.void()).optional(),pathRouting:ii.optional(),generateHeadingSlug:V.function().args(V.object({slug:V.string().default("headingSlug")})).returns(V.string()).optional(),generateModelSlug:V.function().args(V.object({name:V.string().default("modelName")})).returns(V.string()).optional(),generateTagSlug:V.function().args(V.object({name:V.string().default("tagName")})).returns(V.string()).optional(),generateOperationSlug:V.function().args(V.object({path:V.string(),operationId:V.string().optional(),method:V.string(),summary:V.string().optional()})).returns(V.string()).optional(),generateWebhookSlug:V.function().args(V.object({name:V.string(),method:V.string().optional()})).returns(V.string()).optional(),onLoaded:V.function().returns(V.void()).optional(),redirect:V.function().args(V.string()).returns(V.string().nullable().optional()).optional(),withDefaultFonts:V.boolean().optional().default(!0).catch(!0),defaultOpenAllTags:V.boolean().optional(),tagsSorter:V.union([V.literal("alpha"),V.function().args(V.any(),V.any()).returns(V.number())]).optional(),operationsSorter:V.union([V.literal("alpha"),V.literal("method"),V.function().args(V.any(),V.any()).returns(V.number())]).optional()})),ni=Jz.merge(V.object({spec:V.object({sources:V.array(IB)})})),Yz=(D)=>{let $={...D};if($.customCss)$.customCss=LB($.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===Fz)console.warn(`[DEPRECATED] Warning: configuration.proxyUrl points to our old proxy (${Fz}).`),console.warn(`[DEPRECATED] We are overwriting the value and use the new proxy URL (${jB}) instead.`),console.warn(`[DEPRECATED] Action Required: You should manually update your configuration to use the new URL (${jB}). Read more: https://github.com/scalar/scalar`),$.proxyUrl=jB;return $},TB=Jz.transform(Yz),si=ni.transform(Yz);mD();var wB=V.object({cdn:V.string().optional().default("https://cdn.jsdelivr.net/npm/@scalar/api-reference"),pageTitle:V.string().optional().default("Scalar API Reference")});var Gz=(D,$="")=>{let{cdn:F,pageTitle:X,...J}=D,G=wB.parse({cdn:F,pageTitle:X,customTheme:$}),Y=TB.parse(J);return`
|
|
369
|
-
<!DOCTYPE html>
|
|
370
|
-
<html>
|
|
371
|
-
<head>
|
|
372
|
-
<title>${G.pageTitle}</title>
|
|
373
|
-
<meta charset="utf-8" />
|
|
374
|
-
<meta
|
|
375
|
-
name="viewport"
|
|
376
|
-
content="width=device-width, initial-scale=1" />
|
|
377
|
-
<style>
|
|
378
|
-
${D.theme?"":$}
|
|
379
|
-
</style>
|
|
380
|
-
</head>
|
|
381
|
-
<body>
|
|
382
|
-
${ri(Y,G.cdn)}
|
|
383
|
-
</body>
|
|
384
|
-
</html>
|
|
385
|
-
`};function ri(D,$){return`
|
|
386
|
-
<script
|
|
387
|
-
id="api-reference"
|
|
388
|
-
type="application/json"
|
|
389
|
-
data-configuration="${oi(D)}">${ai(D)}</script>
|
|
390
|
-
<script src="${$}"></script>
|
|
391
|
-
`}var oi=(D)=>{let $={...D};if(!$.spec?.url)delete $.spec;else if($.spec?.content)delete $.spec?.content;return JSON.stringify($).split('"').join(""")},ai=(D)=>D.spec?.content?typeof D.spec?.content==="function"?JSON.stringify(D.spec?.content()):JSON.stringify(D.spec?.content):"";var ti={_integration:"hono"},ei=`
|
|
392
|
-
.light-mode {
|
|
393
|
-
color-scheme: light;
|
|
394
|
-
--scalar-color-1: #2a2f45;
|
|
395
|
-
--scalar-color-2: #757575;
|
|
396
|
-
--scalar-color-3: #8e8e8e;
|
|
397
|
-
--scalar-color-disabled: #b4b1b1;
|
|
398
|
-
--scalar-color-ghost: #a7a7a7;
|
|
399
|
-
--scalar-color-accent: #0099ff;
|
|
400
|
-
--scalar-background-1: #fff;
|
|
401
|
-
--scalar-background-2: #f6f6f6;
|
|
402
|
-
--scalar-background-3: #e7e7e7;
|
|
403
|
-
--scalar-background-4: rgba(0, 0, 0, 0.06);
|
|
404
|
-
--scalar-background-accent: #8ab4f81f;
|
|
28
|
+
try_exec_bun "${AIWORKER_BUN_BIN:-}" "$@"
|
|
405
29
|
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
--scalar-lifted-brightness: 1;
|
|
410
|
-
--scalar-backdrop-brightness: 1;
|
|
30
|
+
if command -v bun >/dev/null 2>&1; then
|
|
31
|
+
exec "$(command -v bun)" "$AIWORKER_BUN_BUNDLE" "$@"
|
|
32
|
+
fi
|
|
411
33
|
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
34
|
+
if [ -n "${BUN_INSTALL:-}" ]; then
|
|
35
|
+
try_exec_bun "$BUN_INSTALL/bin/bun" "$@"
|
|
36
|
+
fi
|
|
415
37
|
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
38
|
+
if [ -n "${HOME:-}" ]; then
|
|
39
|
+
try_exec_bun "$HOME/.bun/bin/bun" "$@"
|
|
40
|
+
fi
|
|
419
41
|
|
|
420
|
-
|
|
421
|
-
--scalar-color-red: #ef0006;
|
|
422
|
-
--scalar-color-yellow: #edbe20;
|
|
423
|
-
--scalar-color-blue: #0082d0;
|
|
424
|
-
--scalar-color-orange: #fb892c;
|
|
425
|
-
--scalar-color-purple: #5203d1;
|
|
426
|
-
}
|
|
42
|
+
AIWORKER_ARGS_DISPLAY=${*:-"--help"}
|
|
427
43
|
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
--scalar-color-1: rgba(255, 255, 245, .86);
|
|
431
|
-
--scalar-color-2: rgba(255, 255, 245, .6);
|
|
432
|
-
--scalar-color-3: rgba(255, 255, 245, .38);
|
|
433
|
-
--scalar-color-disabled: rgba(255, 255, 245, .25);
|
|
434
|
-
--scalar-color-ghost: rgba(255, 255, 245, .25);
|
|
435
|
-
--scalar-color-accent: #e36002;
|
|
436
|
-
--scalar-background-1: #1e1e20;
|
|
437
|
-
--scalar-background-2: #2a2a2a;
|
|
438
|
-
--scalar-background-3: #505053;
|
|
439
|
-
--scalar-background-4: rgba(255, 255, 255, 0.06);
|
|
440
|
-
--scalar-background-accent: #e360021f;
|
|
44
|
+
cat >&2 <<EOF
|
|
45
|
+
[aiworker] Bun runtime was not found.
|
|
441
46
|
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
--scalar-scrollbar-color-active: rgba(255, 255, 255, 0.48);
|
|
445
|
-
--scalar-lifted-brightness: 1.45;
|
|
446
|
-
--scalar-backdrop-brightness: 0.5;
|
|
47
|
+
AIWorker CLI is Bun-native. Install Bun and make sure "bun" is on PATH:
|
|
48
|
+
curl -fsSL https://bun.sh/install | bash
|
|
447
49
|
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
50
|
+
Then retry:
|
|
51
|
+
npx @zonease/aiworker-cli $AIWORKER_ARGS_DISPLAY
|
|
52
|
+
bunx @zonease/aiworker-cli $AIWORKER_ARGS_DISPLAY
|
|
451
53
|
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
--scalar-button-1-hover: #e7e7e7;
|
|
54
|
+
If you do not want to install Bun, download a standalone aiworker release tarball:
|
|
55
|
+
https://github.com/ZonEaseTech/aiworker/releases
|
|
455
56
|
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
--scalar-color-blue: #5c73e7;
|
|
460
|
-
--scalar-color-orange: #ff8d4d;
|
|
461
|
-
--scalar-color-purple: #b191f9;
|
|
462
|
-
}
|
|
463
|
-
/* Sidebar */
|
|
464
|
-
.light-mode .t-doc__sidebar {
|
|
465
|
-
--scalar-sidebar-background-1: var(--scalar-background-1);
|
|
466
|
-
--scalar-sidebar-item-hover-color: currentColor;
|
|
467
|
-
--scalar-sidebar-item-hover-background: var(--scalar-background-2);
|
|
468
|
-
--scalar-sidebar-item-active-background: var(--scalar-background-accent);
|
|
469
|
-
--scalar-sidebar-border-color: var(--scalar-border-color);
|
|
470
|
-
--scalar-sidebar-color-1: var(--scalar-color-1);
|
|
471
|
-
--scalar-sidebar-color-2: var(--scalar-color-2);
|
|
472
|
-
--scalar-sidebar-color-active: var(--scalar-color-accent);
|
|
473
|
-
--scalar-sidebar-search-background: var(--scalar-background-2);
|
|
474
|
-
--scalar-sidebar-search-border-color: var(--scalar-sidebar-border-color);
|
|
475
|
-
--scalar-sidebar-search-color: var(--scalar-color-3);
|
|
476
|
-
}
|
|
477
|
-
|
|
478
|
-
.dark-mode .sidebar {
|
|
479
|
-
--scalar-sidebar-background-1: #161618;
|
|
480
|
-
--scalar-sidebar-item-hover-color: var(--scalar-color-accent);
|
|
481
|
-
--scalar-sidebar-item-hover-background: transparent;
|
|
482
|
-
--scalar-sidebar-item-active-background: transparent;
|
|
483
|
-
--scalar-sidebar-border-color: transparent;
|
|
484
|
-
--scalar-sidebar-color-1: var(--scalar-color-1);
|
|
485
|
-
--scalar-sidebar-color-2: var(--scalar-color-2);
|
|
486
|
-
--scalar-sidebar-color-active: var(--scalar-color-accent);
|
|
487
|
-
--scalar-sidebar-search-background: #252529;
|
|
488
|
-
--scalar-sidebar-search-border-color: transparent;
|
|
489
|
-
--scalar-sidebar-search-color: var(--scalar-color-3);
|
|
490
|
-
}
|
|
491
|
-
`,SB=(D)=>{let $={...ti,...D};return async(F)=>F.html(`${Gz($,ei)}`)};$2();fD();JD();cD();JD();function Bz(D,$){if(D instanceof qD)return $.json(D.toJSON(),D.status);return E.error("Unhandled error:",D),$.json({error:{code:"INTERNAL_ERROR",message:"An unexpected error occurred"}},500)}JD();var Hz=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 bB,sep as Dn}from"path";function Wz(D){let $=bB(D);return async(F)=>{let X=new URL(F.req.url),J;try{J=$n(decodeURIComponent(X.pathname.slice(7)))}catch{return F.text("forbidden",403)}let G=J===""?"index.html":J,Y=bB($,G);if(Y!==$&&!Y.startsWith($+Dn))return F.text("forbidden",403);let B=Bun.file(Y);if(await B.exists())return new Response(B);if(!Fn(G)){let H=Bun.file(bB($,"index.html"));if(await H.exists())return new Response(H)}return F.text("not found",404)}}function $n(D){let $=0;while($<D.length&&D[$]==="/")$+=1;return D.slice($)}function Fn(D){let $=D.lastIndexOf("/");return($===-1?D:D.slice($+1)).includes(".")}$2();cD();JD();function Vz(D,$){let F=new F2;return F.get("/whatsapp/webhook",(X)=>{let G=D().channels.get("whatsapp");if(!G||G.credentials.channel!=="whatsapp")return X.text("whatsapp channel is not bound to this worker",404);let Y=X.req.query("hub.mode"),B=X.req.query("hub.verify_token"),H=X.req.query("hub.challenge")??"";if(Y==="subscribe"&&B!==void 0&&u2(B,G.credentials.verifyToken))return X.text(H,200);return X.text("forbidden",403)}),F.post("/:channel/webhook",async(X)=>{let J=D(),G=X.req.param("channel"),Y=J.channels.get(G);if(!Y)throw qD.notFound(`Channel ${G} is not bound to this worker`);let B=J.channels.adapter(G),H=await X.req.text(),W={};X.req.raw.headers.forEach((U,_)=>{W[_.toLowerCase()]=U});try{await B.verify(H,W,Y)}catch(U){return E.warn(`[channel:${G}] signature verification failed: ${String(U)}`),X.json({ok:!1,error:"signature verification failed"},401)}let Q=await B.toEnvelopes(H,$,Y);for(let U of Q)await J.orchestrator.ingest(U);return X.json({ok:!0,accepted:Q.length})}),F}var fB=class{writer;encoder;writable;abortSubscribers=[];responseReadable;aborted=!1;closed=!1;constructor(D,$){this.writable=D,this.writer=D.getWriter(),this.encoder=new TextEncoder;let F=$.getReader();this.abortSubscribers.push(async()=>{await F.cancel()}),this.responseReadable=new ReadableStream({async pull(X){let{done:J,value:G}=await F.read();J?X.close():X.enqueue(G)},cancel:()=>{this.abort()}})}async write(D){try{if(typeof D==="string")D=this.encoder.encode(D);await this.writer.write(D)}catch{}return this}async writeln(D){return await this.write(D+`
|
|
492
|
-
`),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 m$=()=>{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 m$=()=>$,$};var Qz=class extends fB{constructor(D,$){super(D,$)}async writeSSE(D){let F=(await _7(D.data,v$.Stringify,!1,{})).split(/\r\n|\r|\n/).map((J)=>{return`data: ${J}`}).join(`
|
|
493
|
-
`);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(`
|
|
494
|
-
`)+`
|
|
57
|
+
For a custom Bun path:
|
|
58
|
+
AIWORKER_BUN_BIN=/path/to/bun npx @zonease/aiworker-cli $AIWORKER_ARGS_DISPLAY
|
|
59
|
+
EOF
|
|
495
60
|
|
|
496
|
-
`;await this.write(X)}},Xn=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()}},Jn=new WeakMap,kB=(D,$,F)=>{let{readable:X,writable:J}=new TransformStream,G=new Qz(J,X);if(m$())D.req.raw.signal.addEventListener("abort",()=>{if(!G.closed)G.abort()});return Jn.set(G.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"),Xn(G,$,F),D.newResponse(G.responseReadable)};function Uz(D){let $=new F2;return $.get("/stream",(F)=>{let X=D().bus;return kB(F,async(J)=>{let G=X.on((Y)=>{J.writeSSE({event:Y.type,data:JSON.stringify({...Y.payload,at:Y.at})})});await new Promise((Y)=>{F.req.raw.signal.addEventListener("abort",()=>{G(),Y()})})})}),$}cD();fD();_0();var C3=new F2;C3.get("/observations",(D)=>{let $=g().select().from(M2).orderBy(jD(M2.noticedAt)).limit(200).all();return D.json({observations:$})});C3.get("/drafts",(D)=>{let $=D.req.query("status"),F=g().select().from(L0).orderBy(jD(L0.createdAt)).limit(100),X=$?F.where(k(L0.status,$)).all():F.all();return D.json({drafts:X})});C3.post("/drafts/:id/approve",async(D)=>{let $=Number(D.req.param("id"));if(!Number.isFinite($))throw qD.badRequest("invalid draft id");let F=await D.req.json().catch(()=>({})),X=new Date().toISOString();return g().update(L0).set({status:"approved",decidedAt:X,decidedBy:F.decidedBy??"operator"}).where(k(L0.id,$)).run(),D.json({ok:!0})});C3.post("/drafts/:id/reject",async(D)=>{let $=Number(D.req.param("id"));if(!Number.isFinite($))throw qD.badRequest("invalid draft id");let F=await D.req.json().catch(()=>({})),X=new Date().toISOString();return g().update(L0).set({status:"rejected",decidedAt:X,decidedBy:F.decidedBy??"operator"}).where(k(L0.id,$)).run(),D.json({ok:!0})});$2();function _z({getIdentity:D}){return async($,F)=>{let X=$.req.header("Authorization");if(!X)return $.json({code:"auth-failed",message:"missing Authorization header"},401);let[J,G]=X.split(/\s+/,2);if(!J||J.toLowerCase()!=="bearer"||!G)return $.json({code:"auth-failed",message:"expected Bearer scheme"},401);let{tokenPlaintext:Y}=D();if(!Y||!u2(G,Y))return $.json({code:"auth-failed",message:"invalid bearer token"},401);await F()}}$2();cD();fD();JD();mD();var Gn=V.object({value:V.string().min(1)}),Az=V.string().regex(/^[\w.-]{1,128}$/,{message:"secret key \u4EC5\u5141\u8BB8 [A-Za-z0-9._-]\uFF0C\u957F\u5EA6 1-128"}),Bn=V.object({probe:V.boolean().optional()}).optional(),Hn=V.object({chatId:V.string().optional(),text:V.string().optional()}).optional(),Wn=V.object({limit:V.coerce.number().int().min(1).max(200).optional().default(50),offset:V.coerce.number().int().min(0).optional().default(0),status:V.enum(["active","closed"]).optional()}),Vn=V.object({olderThanDays:V.number().int().min(0).max(3650).optional().default(30),limit:V.number().int().min(1).max(200).optional().default(50),apply:V.boolean().optional().default(!1)}),Kz=V.enum(["web","line","telegram","lark","whatsapp"]),Qn=V.object({expression:V.string().min(1),prompt:V.string().min(1),channel:Kz,chatId:V.string().min(1),accountId:V.string().min(1).optional(),enabled:V.boolean().optional()}),Un=V.object({expression:V.string().min(1).optional(),prompt:V.string().min(1).optional(),channel:Kz.optional(),chatId:V.string().min(1).optional(),accountId:V.string().min(1).optional(),enabled:V.boolean().optional()}).refine((D)=>Object.keys(D).length>0,{message:"\u81F3\u5C11\u63D0\u4F9B\u4E00\u4E2A\u5F85\u66F4\u65B0\u5B57\u6BB5"});function Cz(D){let $=new F2;return $.get("/info",async(F)=>{let X=D.getState(),J=await E0(g()),G=await e6(X,J.config,{...i.AIWORKER_ADVERTISED_BASE_URL===void 0?{}:{advertisedBaseUrl:i.AIWORKER_ADVERTISED_BASE_URL}});return F.json(G)}),$.get("/config",async(F)=>{let X=await E0(g());return F.json(X)}),$.put("/config",async(F)=>{let X=await F.req.json().catch(()=>null),J=F.req.header("If-Match"),G=J===void 0?void 0:Number.parseInt(J,10);if(J!==void 0&&Number.isNaN(G))return F.json({error:{code:"invalid-if-match",message:"If-Match must be an integer"}},400);try{let Y=await r6({db:g(),vault:vD(),raw:X,...G===void 0?{}:{ifMatchVersion:G},workerId:D.getState().workerId,reloadRuntime:D.reloadRuntime});return F.json(Y)}catch(Y){if(Y instanceof l2)return F.json({error:{code:"invalid-config",message:Y.message,details:Y.issues}},400);if(Y instanceof i2)return F.json({error:{code:"version-conflict",message:Y.message,expected:Y.expected,actual:Y.actual}},409);throw Y}}),$.get("/secrets",async(F)=>{let X=await D3(vD());return F.json({keys:X})}),$.put("/secrets/:key",async(F)=>{let X=Az.safeParse(F.req.param("key"));if(!X.success)return F.json({error:{code:"invalid-key",message:X.error.issues[0]?.message??"invalid secret key"}},400);let J=await F.req.json().catch(()=>null),G=Gn.safeParse(J);if(!G.success)return F.json({error:{code:"invalid-body",message:"invalid secret body",details:G.error.flatten().fieldErrors}},400);try{return await $3(vD(),X.data,G.data.value),F.json({ok:!0},200)}catch(Y){if(Y instanceof qD)return F.json(Y.toJSON(),Y.status);throw Y}}),$.delete("/secrets/:key",async(F)=>{let X=Az.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 F3(vD(),X.data),F.json({ok:!0},200)}catch(J){if(J instanceof qD)return F.json(J.toJSON(),J.status);throw J}}),$.post("/brain/test",async(F)=>{let X=D.getState(),J=await E0(g()),G=await o6(X,J.config);return F.json(G)}),$.post("/executor/test",async(F)=>{let X=await F.req.json().catch(()=>null),J=Bn.safeParse(X??{});if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid executor test body"}},400);let G=D.getState(),Y=await E0(g()),B=await t6(G,Y.config,J.data??{});return F.json(B)}),$.post("/channels/:channel/test",async(F)=>{let X=F.req.param("channel"),J=await F.req.json().catch(()=>null),G=Hn.safeParse(J??{});if(!G.success)return F.json({error:{code:"invalid-body",message:"invalid channel test body"}},400);try{let Y=D.getState(),B=await a6(Y,X,G.data??{});return F.json(B)}catch(Y){if(Y instanceof qD)return F.json(Y.toJSON(),Y.status);throw Y}}),$.post("/token/rotate",async(F)=>{let X=D.getState(),J=await l8(g(),vD(),X);return F.json(J)}),$.get("/sessions",(F)=>{let X=Wn.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=W3({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=V3(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=Vn.safeParse(X??{});if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid session maintenance body",details:J.error.flatten().fieldErrors}},400);let G=J.data,Y=Q3({olderThanDays:G.olderThanDays,limit:G.limit,apply:G.apply});return F.json(Y)}),$.post("/reload",async(F)=>{let X=await E0(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 h6().probeAll({refresh:X});return F.json({engines:J})}),$.get("/approvals",(F)=>{let J=D.getState().runtime.approvals.list().map((G)=>({taskId:G.taskId,toolCallId:G.toolCallId,toolName:G.toolName,params:G.params,expiresAt:G.expiresAt}));return F.json({approvals:J})}),$.post("/approvals/:taskId/:toolCallId/grant",async(F)=>{let X=F.req.param("taskId"),J=F.req.param("toolCallId"),G=await F.req.json().catch(()=>null),Y=V.object({decision:V.enum(["allow","deny"])}).safeParse(G);if(!Y.success)return F.json({error:{code:"invalid-body",message:'decision must be "allow" or "deny"'}},400);let B=D.getState().runtime.approvals.grant(X,J,Y.data.decision);return F.json({granted:B})}),$.get("/cron",async(F)=>{let X=await D.getState().runtime.cron.listJobs();return F.json({jobs:X})}),$.post("/cron",async(F)=>{let X=await F.req.json().catch(()=>null),J=Qn.safeParse(X);if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid cron job body",details:J.error.flatten().fieldErrors}},400);try{let G=await D.getState().runtime.cron.addJob(J.data);return F.json({job:G},201)}catch(G){return F.json({error:{code:"invalid-cron",message:G instanceof Error?G.message:String(G)}},400)}}),$.patch("/cron/:id",async(F)=>{let X=F.req.param("id"),J=await F.req.json().catch(()=>null),G=Un.safeParse(J);if(!G.success)return F.json({error:{code:"invalid-body",message:"invalid cron patch body",details:G.error.flatten().fieldErrors}},400);try{let Y=await D.getState().runtime.cron.updateJob(X,G.data);if(!Y)return F.json({error:{code:"not-found",message:`cron job ${X} \u4E0D\u5B58\u5728`}},404);return F.json({job:Y})}catch(Y){return F.json({error:{code:"invalid-cron",message:Y instanceof Error?Y.message:String(Y)}},400)}}),$.delete("/cron/:id",async(F)=>{let X=F.req.param("id");if(!(await D.getState().runtime.cron.removeJob(X)).removed)return F.json({error:{code:"not-found",message:`cron job ${X} \u4E0D\u5B58\u5728`}},404);return F.json({ok:!0})}),$}fD();_0();mD();var _n=V.object({prompt:V.string().trim().min(1,"prompt is required").max(8000,"prompt exceeds 8000 characters")});function Oz(D){let $=new F2;return $.get("/tasks",(F)=>{let X=g().select().from(Z2).orderBy(jD(Z2.createdAt)).limit(200).all();return F.json({tasks:X})}),$.post("/tasks",async(F)=>{let X=await F.req.json().catch(()=>null),J=_n.safeParse(X);if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid task body",details:J.error.flatten().fieldErrors}},400);let G=await D().orchestrator.submitTask(J.data.prompt);return F.json({task:G},201)}),$.get("/conversations",(F)=>{let X=g().select().from(p).orderBy(jD(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(l).where(k(l.conversationId,X)).all();return F.json({messages:J})}),$}async function Rz(D){let $=vD(),F=new Set(Y8(D).map((J)=>J.path)),X=new Map;for(let J of F){let G=await $.get(J);if(G!==null)X.set(J,G)}return N6(D,X)}async function Ez(D={}){Y9(i.WORKER_DB_PATH),G9(i.WORKER_MIGRATIONS_FOLDER);let $=vD(),F=g(),X=await U1(F,$,{...i.AIWORKER_FORCE_ID===void 0?{}:{forceId:i.AIWORKER_FORCE_ID},...i.AIWORKER_FORCE_TOKEN===void 0?{}:{forceToken:i.AIWORKER_FORCE_TOKEN}});_1(X.workerId,X.token,F,X.justMinted),E.info(`[worker ${X.workerId}] worker.db ready at ${i.WORKER_DB_PATH}`);let J=await Q1(F),G=await Rz(J.config),Y=new w1({maxConcurrentTotal:i.MAX_CONCURRENT_TOTAL,perEngineLimits:{...i.perEngineLimits},stallTimeoutMs:i.PROCESS_STALL_TIMEOUT_MS,killTimeoutMs:i.PROCESS_KILL_TIMEOUT_MS,autoCleanupDelayMs:i.PROCESS_AUTO_CLEANUP_DELAY_MS,gcIntervalMs:i.PROCESS_GC_INTERVAL_MS}),B=v1(X.workerId,G,{processes:Y});E.info(`[worker ${X.workerId}] runtime built \u2014 brains=${G.brains.length} executor=${G.executor.engine}/${G.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 Rz(U);Y.setLimits({maxConcurrentTotal:i.MAX_CONCURRENT_TOTAL,perEngineLimits:{...i.perEngineLimits}});let O=v1(H.workerId,A,{processes:Y}),C=H.runtime;if(H.runtime=O,H.configVersion=_,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 ${_}`)}let Q=new F2;if(Q.use(Hz),Q.onError(Bz),D.webStaticDir){let U=D.webStaticDir;Q.get("/admin",(_)=>_.redirect("/admin/",308)),Q.use("/admin/*",Wz(U))}return Q.get("/health",async(U)=>{let[_,A]=await Promise.all([H.runtime.brain.health().catch(()=>null),H.runtime.executor.health().catch(()=>null)]);return U.json({mode:"worker",workerId:H.workerId,status:"ok",brain:_,executor:A,configVersion:H.configVersion,startedAt:H.startedAt,checkedAt:new Date().toISOString()})}),Q.route("/",Vz(()=>H.runtime,H.workerId)),Q.use("/api/worker/*",_z({getIdentity:()=>({tokenPlaintext:H.tokenPlaintext})})),Q.route("/api/worker/orchestrator",Oz(()=>H.runtime)),Q.route("/api/worker/evolution",C3),Q.route("/api/worker/events",Uz(()=>H.runtime)),Q.route("/api/worker",Cz({getState:()=>H,reloadRuntime:W})),Q.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}`}}),Q.get("/docs",SB({spec:{url:"/openapi.json"}})),{app:Q,port:i.PORT,state:H,reloadRuntime:W}}$2();cD();fD();JD();async function Zz(D={}){let $=null,F=m1.env.AIWORKER_WORKER_NO_SERVE_WEB==="1",X=D.serveWeb!==!1&&!F,J=X?D9("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 G=D.host??i.AIWORKER_WORKER_HOST;T3({surface:"worker",host:G,serveWeb:J!==void 0,externalAuthAcknowledged:i.AIWORKER_ADMIN_EXTERNAL_AUTH});let{app:Y,port:B,state:H,reloadRuntime:W}=await Ez({onRuntimeReloaded:()=>$?.notifyRuntimeReloaded(),...J?{webStaticDir:J}:{}}),Q=D.port??B,U=Bun.serve({port:Q,hostname:G,fetch:Y.fetch});if(E.success(`[aiw serve] worker ${H.workerId} listening on ${G}:${Q} (config v${H.configVersion})`),J)E.info(`[aiw serve] /admin/* serving worker bundle from ${J}`);let _=i.AIWORKER_GATEWAY_URL,A=i.AIWORKER_JOIN_TOKEN,O=i.AIWORKER_DISPLAY_NAME,C=i.AIWORKER_ENROLL_MODE,K=D.gateway&&D.gateway.length>0?D.gateway:void 0,R,z=D.gatewayToken??"",N,S="legacy";if(K)R=K;else if(_&&_.length>0){let q=C==="otp",j=!!A&&A.length>0;if(!q&&j)R=_,S="self-enroll",N={mode:"join-token",joinToken:A,apiToken:H.tokenPlaintext,...O?{displayName:O}:{}};else{let d=new URL(_);if(d.pathname="/enroll-ws",R=d.toString(),S="otp",z=H.tokenPlaintext,N={mode:"otp",apiToken:H.tokenPlaintext,...O?{displayName:O}:{}},q&&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(S==="self-enroll")E.info(`[aiw serve] self-enrolling to ${R} as ${O??H.workerId}`);else if(S==="otp")E.info(`[aiw serve] OTP enrolling to ${R}; awaiting operator approval`);$=G$({url:R,token:z,workerId:H.workerId,...D.gatewayReconnect===!1?{reconnect:!1}:{},...N?{enroll:N}:{},...S==="otp"?{onEnrollmentOtp:({otp:q,expiresAt:j})=>{let d=Math.max(0,Math.round((j-Date.now())/1000)),VD=An(q,d);m1.stdout.write(`${VD}
|
|
497
|
-
`),E.info(`[aiw serve] OTP ${q} \u5DF2\u7B7E\u53D1\uFF0C\u8BF7\u7528 \`aim enroll approve ${q}\` \u51C6\u5165\uFF1Bexpires in ${d}s`)},onEnrollmentApproved:({workerId:q,deviceToken:j})=>{E.success(`[aiw serve] approved as ${q}; deviceToken=${j.slice(0,8)}\u2026\uFF0C\u5DF2\u52A0\u5165 fleet`)}}:{},getRuntime:()=>H.runtime,handlers:{workersInfo:async()=>{let q=await E0(g());return await e6(H,q.config,{...i.AIWORKER_ADVERTISED_BASE_URL===void 0?{}:{advertisedBaseUrl:i.AIWORKER_ADVERTISED_BASE_URL}})},workersStop:async()=>{setTimeout(()=>{try{m1.kill(m1.pid,"SIGTERM")}catch(q){E.error(`[aiw serve] workers.stop failed to signal self: ${String(q)}`)}},0)},configGet:async()=>{let q=await E0(g());return{version:q.version,config:q.config}},configPut:async({ifMatch:q,config:j})=>{let d=await r6({db:g(),vault:vD(),raw:j,ifMatchVersion:q,workerId:H.workerId,reloadRuntime:W});return{version:d.version,appliedAt:Date.now(),runtimeReload:d.runtimeReload}},tokenRotate:async()=>{let{newToken:q}=await l8(g(),vD(),H);return{deviceToken:q}},...J$(()=>H.runtime.cron),secretsList:async()=>{return{keys:await D3(vD())}},secretsPut:async({key:q,value:j})=>{return await $3(vD(),q,j),{ok:!0}},secretsDelete:async({key:q})=>{return await F3(vD(),q),{ok:!0}},enginesList:async({refresh:q})=>{return{engines:await h6().probeAll({refresh:q===!0})}},brainTest:async()=>{let q=await E0(g());return await o6(H,q.config)},executorTest:async({probe:q})=>{let j=await E0(g());return await t6(H,j.config,{probe:q===!0})},channelTest:async({channel:q,body:j})=>{return await a6(H,q,j??{})},tasksList:async()=>{return{tasks:rX(200)}},tasksCreate:async({prompt:q})=>{return{task:await H.runtime.orchestrator.submitTask(q)}},conversationsList:async()=>{return{conversations:oX(200)}},messagesList:async({conversationId:q})=>{return{messages:aX(q)}}}}),E.success(`[aiw serve] gateway-client dialing ${R}`)}let b=!1,L=async(q)=>{if(b)return;b=!0,E.info(`[aiw serve] received ${q}, shutting down`);try{if($)await $.stop(),$=null}catch(j){E.warn(`[aiw serve] gateway shutdown failed: ${String(j)}`)}try{U.stop()}catch(j){E.warn(`[aiw serve] http shutdown failed: ${String(j)}`)}m1.exit(0)};m1.once("SIGTERM",()=>void L("SIGTERM")),m1.once("SIGINT",()=>void L("SIGINT")),await new Promise(()=>{})}function An(D,$){let F=`OTP: ${D}`,X=`expires in ${$}s`,J=Math.max(F.length,X.length)+6,G="\u2500".repeat(J),Y=(B)=>`\u2502 ${B}${" ".repeat(J-B.length-4)}\u2502`;return["",`\u250C${G}\u2510`,Y(F),Y(X),`\u2514${G}\u2518`].join(`
|
|
498
|
-
`)}$2();JD();async function Mz(D={}){try{let $=Kn(D.status),F=await sD({silent:!0}),X=W3({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 vB?2:1}}async function zz(D){try{let $=await sD({silent:!0}),F=V3(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 Nz(D={}){try{await sD({silent:!0});let $=Q3({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 vB extends Error{}function Kn(D){if(D===void 0)return;if(D==="active"||D==="closed")return D;throw new vB('status must be "active" or "closed"')}$2();fD();JD();async function Pz(){let D=await sD({silent:!0}),$=vD(),F=g(),X={tokenPlaintext:D.token},{newToken:J}=await l8(F,$,X);return E.success(`[aiw token rotate] worker ${D.workerId} token rotated`),console.log(J),0}A2();import Cn from"process";function On(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 qz(D=Cn.argv){if(!On(D))return;let $=Q2();x1({home:$.home})}var s=pB("aiworker");s.command("init","Bootstrap worker.db, mint identity + token, seed config (defaults to project-scope `<cwd>/.aiworker/`; --global for legacy ~/.aiworker)").option("--global","Initialise the legacy user-scope home `~/.aiworker/` (single host-wide worker)").option("--force","Project-scope only: skip the git-repo guard (allow .aiworker/ in non-git dirs)").option("--dry-run","Print init preflight and planned writes without creating or modifying files").action(async(D)=>{await tZ({...D.global===!0?{global:!0}:{},...D.force===!0?{force:!0}:{},...D.dryRun===!0?{dryRun:!0}:{}})});s.command("scope","Print the resolved aiworker scope (user/project/explicit) + presence of layout files").action(async()=>{o.exitCode=await GM()});s.command("run","Feed one message into the orchestrator without binding HTTP").option("--message <text>","User message to ingest (required)").option("--chat-id <id>",'Synthetic chat id (defaults to "cli:stdin")').option("--dry-run","Bootstrap everything but skip ingesting the envelope").option("--timeout-ms <n>","Max wait for a terminal event, in ms (default 120000)",{type:[Number]}).action(async(D)=>{let $=await eZ({message:D.message,chatId:D.chatId,dryRun:D.dryRun,timeoutMs:D.timeoutMs?.[0]});o.exit($)});s.command("serve","Start the worker HTTP server (equivalent to AIWORKER_MODE=worker)").option("--port <n>","Override the PORT env",{type:[Number]}).option("--host <host>","Override AIWORKER_WORKER_HOST (default 127.0.0.1)").option("--gateway <url>","Dial the given gateway WS URL as a node alongside the HTTP server").option("--gateway-token <token>","Bearer token presented to the gateway (omit for loopback)").option("--no-reconnect","Disable gateway-client auto-reconnect (useful for smoke / tests)").option("--no-serve-web","\u4E0D\u6302\u8F7D worker bundle \u5230 /admin/*\uFF08\u9ED8\u8BA4\u6302\u8F7D\uFF0CPLAN-022 / FEAT-033\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 Zz($)});s.command("config-show","Print the stored worker config as JSON (bootstraps local worker state if missing)").action(async()=>{o.exit(await lZ())});s.command("config-set <json>","Replace the stored worker config").option("--if-match <version>","Optimistic-concurrency guard (reject unless stored version matches)",{type:[Number]}).action(async(D,$)=>{o.exit(await iZ({json:D,ifMatch:$.ifMatch?.[0]}))});s.command("token-rotate","Mint a fresh bearer token; prints the new plaintext once").action(async()=>{o.exit(await Pz())});s.command("approvals-list","\u5217\u51FA\u5F53\u524D worker \u8FDB\u7A0B\u5185\u6302\u8D77\u7684 per-tool \u5BA1\u6279").action(async()=>{o.exit(await cZ())});s.command("approvals-grant <taskId> <toolCallId>","\u89E3\u9501\u67D0\u6761\u6302\u8D77\u7684 tool \u5BA1\u6279").option("--deny","\u4E0B\u53D1 deny \u51B3\u7B56\uFF1B\u9ED8\u8BA4 allow").action(async(D,$,F)=>{o.exit(await dZ({taskId:D,toolCallId:$,...F.deny===void 0?{}:{deny:F.deny}}))});s.command("schedule-list","List all cron jobs persisted in the local worker.db").action(async()=>{o.exit(await $M())});s.command("schedule-add","Add a cron job to the local worker.db (validates expression up-front)").option("--expression <expr>","Five-field cron expression (required)").option("--prompt <text>","Envelope.text synthesised when the job fires (required)").option("--channel <channel>","Channel: web/line/telegram/lark/whatsapp (required)").option("--chat-id <id>","chatId used at fire time (required)").option("--account-id <id>","Override accountId (defaults to sys:cron)").option("--disabled","Persist with enabled=false (default is enabled=true)").action(async(D)=>{if(!D.expression||!D.prompt||!D.channel||!D.chatId)E.error("[aiworker schedule-add] requires --expression, --prompt, --channel, --chat-id"),o.exit(2);let $=await FM({expression:D.expression,prompt:D.prompt,channel:D.channel,chatId:D.chatId,...D.accountId===void 0?{}:{accountId:D.accountId},...D.disabled===!0?{enabled:!1}:{}});o.exit($)});s.command("schedule-remove <jobId>","Remove a cron job from the local worker.db").action(async(D)=>{o.exit(await XM(D))});s.command("sessions list","List local worker session status from worker.db").option("--limit <n>","Max sessions to return (1-200, default 50)",{type:[Number]}).option("--offset <n>","Offset for pagination (default 0)",{type:[Number]}).option("--status <status>","Filter by status: active or closed").action(async(D)=>{o.exit(await Mz({limit:D.limit?.[0],offset:D.offset?.[0],...D.status===void 0?{}:{status:D.status}}))});s.command("sessions show <sessionKey>","Show one local worker session status by session key").action(async(D)=>{o.exit(await zz(D))});s.command("sessions maintenance","Dry-run closed transcript cleanup; pass --apply to mutate").option("--older-than-days <n>","Closed transcript retention in days (default 30)",{type:[Number]}).option("--limit <n>","Max transcripts to plan/apply (1-200, default 50)",{type:[Number]}).option("--apply","Delete planned closed transcripts instead of dry-run").action(async(D)=>{o.exit(await Nz({olderThanDays:D.olderThanDays?.[0],limit:D.limit?.[0],...D.apply===void 0?{}:{apply:D.apply}}))});s.command("fleet list","\u5217\u51FA fleet \u5185\u6240\u6709 worker").action(async()=>{o.exit(await H_())});s.command("fleet info <workerId>","\u67E5\u770B\u67D0\u4E2A worker \u7684\u8FD0\u884C\u65F6\u4FE1\u606F").action(async(D)=>{o.exit(await W_(D))});s.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)=>{o.exit(await V_({...D.displayName===void 0?{}:{displayName:D.displayName},...D.image===void 0?{}:{image:D.image},...D.forceId===void 0?{}:{forceId:D.forceId}}))});s.command("fleet stop <workerId>","\u5411\u76EE\u6807 worker \u4E0B\u53D1\u505C\u6B62\u6307\u4EE4\uFF08\u4E0D\u6458\u9664\u6CE8\u518C\uFF09").action(async(D)=>{o.exit(await Q_(D))});s.command("fleet remove <workerId>","\u628A worker \u4ECE fleet \u4E2D\u6458\u9664\uFF08deviceToken \u4F5C\u5E9F\uFF09").action(async(D)=>{o.exit(await U_(D))});s.command("gateway start","\u62C9\u8D77 gateway server\uFF08\u9ED8\u8BA4 foreground\uFF0Csystemd \u53CB\u597D\uFF1B--detach \u8D70\u540E\u53F0 daemon\uFF09").option("--port <n>","\u76D1\u542C\u7AEF\u53E3\uFF0C\u9ED8\u8BA4 9218",{type:[Number]}).option("--detach","\u540E\u53F0 daemon \u6A21\u5F0F\uFF1Aspawn \u81EA\u8EAB + PID/log \u5199\u5165 ~/.aiworker/").option("--no-serve-web","\u4E0D\u6302\u8F7D fleet bundle \u5230 /admin/*\uFF08\u9ED8\u8BA4\u6302\u8F7D\uFF0CPLAN-022 / FEAT-033\uFF09").action(async(D)=>{let F=o.env.AIWORKER_GATEWAY_INTERNAL_FOREGROUND==="1"?!1:D.detach===!0;o.exit(await dU({...D.port?.[0]===void 0?{}:{port:D.port[0]},detach:F,...D.serveWeb===!1?{serveWeb:!1}:{}}))});s.command("gateway status","\u663E\u793A detached gateway daemon \u662F\u5426\u8FD0\u884C\uFF08foreground/systemd \u5B9E\u4F8B\u4E0D\u7531\u6B64\u547D\u4EE4\u8DDF\u8E2A\uFF09").action(()=>{o.exit(lU())});s.command("gateway stop","\u505C\u6B62 detached gateway daemon (foreground/systemd \u5B9E\u4F8B\u8BF7\u7531\u5176 supervisor \u505C\u6B62)").option("--timeout-ms <n>","SIGTERM \u8D85\u65F6\uFF0C\u9ED8\u8BA4 5000ms",{type:[Number]}).action(async(D)=>{o.exit(await iU(D.timeoutMs?.[0]===void 0?{}:{timeoutMs:D.timeoutMs[0]}))});s.command("pair","\u901A\u8FC7 bootstrap token \u628A\u4E00\u4E2A\u5DF2\u542F\u52A8\u7684 worker \u6CE8\u518C\u5230 gateway").option("--url <wsUrl>","gateway WS 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"),o.exit(2);o.exit(await F_({...D.url===void 0?{}:{url:D.url},workerUrl:D.workerUrl,bootstrapToken:D.bootstrapToken,...D.displayName===void 0?{}:{displayName:D.displayName}}))});s.command("chat <workerId> <text>","\u5411\u67D0 worker \u53D1\u4E00\u6761\u6D88\u606F\u5E76\u963B\u585E\u5230 agent.done (NDJSON \u8F93\u51FA)").option("--conversation-id <id>","\u663E\u5F0F\u6307\u5B9A\u4F1A\u8BDD id\uFF1B\u4E0D\u4F20\u5219\u7531 worker \u65B0\u5EFA").option("--timeout-ms <n>","\u7B49 agent.done \u7684\u603B\u8D85\u65F6\uFF0C\u9ED8\u8BA4 120000",{type:[Number]}).action(async(D,$,F)=>{o.exit(await uW({workerId:D,content:$,...F.conversationId===void 0?{}:{conversationId:F.conversationId},...F.timeoutMs?.[0]===void 0?{}:{timeoutMs:F.timeoutMs[0]}}))});s.command("config get <workerId>","\u8BFB\u53D6\u76EE\u6807 worker \u7684\u5F53\u524D\u914D\u7F6E").action(async(D)=>{o.exit(await mW(D))});s.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"),o.exit(2);o.exit(await pW({workerId:D,configJson:$,ifMatch:X}))});s.command("token rotate <workerId>","\u4E3A\u76EE\u6807 worker \u8F6E\u6362 deviceToken\uFF08\u65E7 token \u7ACB\u5373\u5931\u6548\uFF09").action(async(D)=>{o.exit(await B_(D))});s.command("approvals list","\u5217\u51FA\u6302\u8D77\u7684 per-tool \u5BA1\u6279\uFF1B\u9ED8\u8BA4\u8986\u76D6\u6240\u6709 online worker").option("--worker <id>","\u53EA\u67E5\u6307\u5B9A workerId\uFF08\u4E0D\u4F20\u5219\u805A\u5408\u6240\u6709 online worker\uFF09").action(async(D)=>{o.exit(await gW({...D.worker===void 0?{}:{workerId:D.worker}}))});s.command("approvals grant <workerId> <taskId> <toolCallId>","\u89E3\u9501\u67D0\u6761 worker \u4E0A\u6302\u8D77\u7684 tool \u5BA1\u6279").option("--deny","\u4E0B\u53D1 deny \u51B3\u7B56\uFF1B\u4E0D\u5E26\u6B64 flag \u9ED8\u8BA4 allow").action(async(D,$,F,X)=>{o.exit(await yW({workerId:D,taskId:$,toolCallId:F,...X.deny===void 0?{}:{deny:X.deny}}))});s.command("schedule list <workerId>","\u5217\u51FA\u67D0 worker \u4E0A\u6240\u6709 cron \u4EFB\u52A1").action(async(D)=>{o.exit(await J_(D))});s.command("schedule add <workerId>","\u5728\u67D0 worker \u4E0A\u65B0\u589E\u4E00\u6761 cron \u4EFB\u52A1").option("--expression <expr>","5-field 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 flag \u6539\u4E3A false").action(async(D,$)=>{if(!$.expression||!$.prompt||!$.channel||!$.chatId)E.error("schedule add \u5FC5\u987B\u63D0\u4F9B --expression / --prompt / --channel / --chat-id"),o.exit(2);o.exit(await Y_({workerId:D,expression:$.expression,prompt:$.prompt,channel:$.channel,chatId:$.chatId,...$.accountId===void 0?{}:{accountId:$.accountId},...$.disabled===!0?{enabled:!1}:{}}))});s.command("schedule remove <workerId> <jobId>","\u5220\u9664\u67D0 worker \u4E0A\u7684\u67D0\u6761 cron \u4EFB\u52A1").action(async(D,$)=>{o.exit(await G_(D,$))});s.command("enroll list","\u5217\u51FA gateway \u5F53\u524D\u6240\u6709 pending OTP enrollment").action(async()=>{o.exit(await cW())});s.command("enroll approve <otp>","\u6279\u51C6\u67D0\u6761 pending OTP enrollment\uFF08worker \u7ACB\u5373\u52A0\u5165 fleet\uFF09").action(async(D)=>{o.exit(await dW(D))});s.command("enroll reject <otp>","\u62D2\u7EDD\u67D0\u6761 pending OTP enrollment\uFF08worker \u6536\u5230 close 4403\uFF09").action(async(D)=>{o.exit(await lW(D))});s.command("logs <workerId>","\u8BA2\u9605\u67D0 worker \u7684\u65E5\u5FD7\u5C3E\u90E8 (NDJSON \u8F93\u51FA)").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,$)=>{o.exit(await $_({workerId:D,...$.follow===void 0?{}:{follow:$.follow},...$.tail?.[0]===void 0?{}:{tail:$.tail[0]},...$.timeoutMs?.[0]===void 0?{}:{timeoutMs:$.timeoutMs[0]}}))});s.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 + 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"),o.exit(2);o.exit(await D_({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}}))});s.help();s.version(fH.version);function Rn(D,$=s){let F=new Set,X=1;for(let J of $.commands){let G=J.name;if(typeof G==="string"&&G.includes(" ")){F.add(G);let Y=G.split(" ").length;if(Y>X)X=Y}}if(F.size===0||D.length<4)return D;for(let J=X;J>=2;J--){if(D.length<2+J)continue;let G=D.slice(2,2+J);if(G.some((B)=>typeof B!=="string"))continue;let Y=G.join(" ");if(F.has(Y)){let B=D.slice();return B.splice(2,J,Y),B}}return D}class p1 extends Error{constructor(D){super(D);this.name="CliUsageError"}}var En={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 Zn(D){return D instanceof Error&&D.name==="CACError"}function Mn(D){return/--[a-z0-9][\w-]*/i.exec(D)?.[0]??D}function zn(D){return D.split(",").map(($)=>/^-{1,2}[a-z0-9][\w-]*/i.exec($.trim())?.[0]).filter(($)=>$!==void 0)}function Nn(D,$){let F=D.slice(2);return zn($.rawName).some((J)=>F.some((G)=>G===J||G.startsWith(`${J}=`)))}function Pn(D){D.checkUnknownOptions(),D.checkOptionValue(),D.checkRequiredArgs()}function qn(D,$){let F=En[D.name]??{};for(let X of D.options){if(!Array.isArray(X.config?.type)||X.config.type[0]!==Number)continue;if(!Nn($,X))continue;let J=s.options[X.name];if(J===void 0)continue;let G=Array.isArray(J)?J:[J];for(let Y of G){let B=Mn(X.rawName);if(typeof Y!=="number"||!Number.isFinite(Y))throw new p1(`${B} must be a finite number`);let H=F[X.name];if(H?.integer===!0&&!Number.isInteger(Y))throw new p1(`${B} must be an integer`);if(H?.min!==void 0&&Y<H.min)throw new p1(`${B} must be >= ${H.min}`);if(H?.max!==void 0&&Y>H.max)throw new p1(`${B} must be <= ${H.max}`)}}}function Ln(){return s.options.help===!0||s.options.version===!0&&s.matchedCommandName==null}async function jn(D=o.argv){let $=Rn(D);try{s.unsetMatchedCommand();let F=s.parse($,{run:!1});if(Ln())return 0;if(!s.matchedCommand&&F.args[0])throw new p1(`Unknown command: ${F.args[0]}`);let X=s.matchedCommand;if(X)Pn(X),qn(X,$);return qz($),await s.runMatchedCommand(),typeof o.exitCode==="number"?o.exitCode:0}catch(F){let X=F instanceof p1||Zn(F),J=F instanceof Error?F.message:String(F);return E.error(J),X?2:1}}if(import.meta.main)o.exit(await jn(o.argv));export{jn as runCli,Rn as preprocessArgv,s as cli};
|
|
61
|
+
exit 127
|