@zonease/aiworker-cli 0.4.7 → 0.4.9
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 +498 -0
- package/aiworker.js +48 -478
- package/package.json +2 -1
- package/web/fleet/assets/index-Ba3f2IoY.js +20 -0
- package/web/fleet/index.html +1 -1
- package/web/worker/assets/index-y8aomiPl.js +30 -0
- package/web/worker/index.html +3 -3
- package/web/fleet/assets/index-CG6-NnyZ.js +0 -20
- package/web/worker/assets/index-e7kVxdqq.js +0 -30
package/aiworker-bun.js
ADDED
|
@@ -0,0 +1,498 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
// @bun
|
|
3
|
+
var fz=Object.create;var{getPrototypeOf:bz,defineProperty:c$,getOwnPropertyNames:kz}=Object;var vz=Object.prototype.hasOwnProperty;function xz(D){return this[D]}var hz,gz,yz=(D,$,F)=>{var X=D!=null&&typeof D==="object";if(X){var J=$?hz??=new WeakMap:gz??=new WeakMap,G=J.get(D);if(G)return G}F=D!=null?fz(bz(D)):{};let Y=$||!D||!D.__esModule?c$(F,"default",{value:D,enumerable:!0}):F;for(let B of kz(D))if(!vz.call(Y,B))c$(Y,B,{get:xz.bind(D,B),enumerable:!0});if(X)J.set(D,Y);return Y};var b=(D,$)=>()=>($||D(($={exports:{}}).exports,$),$.exports);var uz=(D)=>D;function mz(D,$){this[D]=uz.bind(null,$)}var n8=(D,$)=>{for(var F in $)c$(D,F,{get:$[F],enumerable:!0,configurable:!0,set:mz.bind($,F)})};var M=(D,$)=>()=>(D&&($=D(D=0)),$);var U8=import.meta.require;function n$(D){if(D===null||typeof D!=="object")return!1;let $=Object.getPrototypeOf(D);if($!==null&&$!==Object.prototype&&Object.getPrototypeOf($)!==null)return!1;if(Symbol.iterator in D)return!1;if(Symbol.toStringTag in D)return Object.prototype.toString.call(D)==="[object Module]";return!0}function a$(D,$,F=".",X){if(!n$($))return a$(D,{},F,X);let J=Object.assign({},$);for(let G in D){if(G==="__proto__"||G==="constructor")continue;let Y=D[G];if(Y===null||Y===void 0)continue;if(X&&X(J,G,Y,F))continue;if(Array.isArray(Y)&&Array.isArray(J[G]))J[G]=[...Y,...J[G]];else if(n$(Y)&&n$(J[G]))J[G]=a$(Y,J[G],(F?`${F}.`:"")+G.toString(),X);else J[G]=Y}return J}function DN(D){return(...$)=>$.reduce((F,X)=>a$(F,X,"",D),{})}function FN(D){return Object.prototype.toString.call(D)==="[object Object]"}function XN(D){if(!FN(D))return!1;if(!D.message&&!D.args)return!1;if(D.stack)return!1;return!0}class eD{options;_lastLog;_mockFn;constructor(D={}){let $=D.types||o$;this.options=$N({...D,defaults:{...D.defaults},level:r$(D.level,$),reporters:[...D.reporters||[]]},{types:o$,throttle:1000,throttleMin:5,formatOptions:{date:!0,colors:!1,compact:!0}});for(let F in $){let X={type:F,...this.options.defaults,...$[F]};this[F]=this._wrapLogFn(X),this[F].raw=this._wrapLogFn(X,!0)}if(this.options.mockFn)this.mockTypes();this._lastLog={}}get level(){return this.options.level}set level(D){this.options.level=r$(D,this.options.types,this.options.level)}prompt(D,$){if(!this.options.prompt)throw Error("prompt is not supported!");return this.options.prompt(D,$)}create(D){let $=new eD({...this.options,...D});if(this._mockFn)$.mockTypes(this._mockFn);return $}withDefaults(D){return this.create({...this.options,defaults:{...this.options.defaults,...D}})}withTag(D){return this.withDefaults({tag:this.options.defaults.tag?this.options.defaults.tag+":"+D:D})}addReporter(D){return this.options.reporters.push(D),this}removeReporter(D){if(D){let $=this.options.reporters.indexOf(D);if($!==-1)return this.options.reporters.splice($,1)}else this.options.reporters.splice(0);return this}setReporters(D){return this.options.reporters=Array.isArray(D)?D:[D],this}wrapAll(){this.wrapConsole(),this.wrapStd()}restoreAll(){this.restoreConsole(),this.restoreStd()}wrapConsole(){for(let D in this.options.types){if(!console["__"+D])console["__"+D]=console[D];console[D]=this[D].raw}}restoreConsole(){for(let D in this.options.types)if(console["__"+D])console[D]=console["__"+D],delete console["__"+D]}wrapStd(){this._wrapStream(this.options.stdout,"log"),this._wrapStream(this.options.stderr,"log")}_wrapStream(D,$){if(!D)return;if(!D.__write)D.__write=D.write;D.write=(F)=>{this[$].raw(String(F).trim())}}restoreStd(){this._restoreStream(this.options.stdout),this._restoreStream(this.options.stderr)}_restoreStream(D){if(!D)return;if(D.__write)D.write=D.__write,delete D.__write}pauseLogs(){s$=!0}resumeLogs(){s$=!1;let D=dB.splice(0);for(let $ of D)$[0]._logFn($[1],$[2])}mockTypes(D){let $=D||this.options.mockFn;if(this._mockFn=$,typeof $!=="function")return;for(let F in this.options.types)this[F]=$(F,this.options.types[F])||this[F],this[F].raw=this[F]}_wrapLogFn(D,$){return(...F)=>{if(s$){dB.push([this,D,F,$]);return}return this._logFn(D,F,$)}}_logFn(D,$,F){if((D.level||0)>this.level)return!1;let X={date:new Date,args:[],...D,level:r$(D.level,this.options.types)};if(!F&&$.length===1&&XN($[0]))Object.assign(X,$[0]);else X.args=[...$];if(X.message)X.args.unshift(X.message),delete X.message;if(X.additional){if(!Array.isArray(X.additional))X.additional=X.additional.split(`
|
|
4
|
+
`);X.args.push(`
|
|
5
|
+
`+X.additional.join(`
|
|
6
|
+
`)),delete X.additional}X.type=typeof X.type==="string"?X.type.toLowerCase():"log",X.tag=typeof X.tag==="string"?X.tag:"";let J=(Y=!1)=>{let B=(this._lastLog.count||0)-this.options.throttleMin;if(this._lastLog.object&&B>0){let H=[...this._lastLog.object.args];if(B>1)H.push(`(repeated ${B} times)`);this._log({...this._lastLog.object,args:H}),this._lastLog.count=1}if(Y)this._lastLog.object=X,this._log(X)};clearTimeout(this._lastLog.timeout);let G=this._lastLog.time&&X.date?X.date.getTime()-this._lastLog.time.getTime():0;if(this._lastLog.time=X.date,G<this.options.throttle)try{let Y=JSON.stringify([X.type,X.tag,X.args]),B=this._lastLog.serialized===Y;if(this._lastLog.serialized=Y,B){if(this._lastLog.count=(this._lastLog.count||0)+1,this._lastLog.count>this.options.throttleMin){this._lastLog.timeout=setTimeout(J,this.options.throttle);return}}}catch{}J(!0)}_log(D){for(let $ of this.options.reporters)$.log(D,{options:this.options})}}function r$(D,$={},F=3){if(D===void 0)return F;if(typeof D==="number")return D;if($[D]&&$[D].level!==void 0)return $[D].level;return F}function lB(D={}){return new eD(D)}var Y0,o$,$N,s$=!1,dB;var t$=M(()=>{Y0={silent:Number.NEGATIVE_INFINITY,fatal:0,error:0,warn:1,log:2,info:3,success:3,fail:3,ready:3,start:3,box:3,debug:4,trace:5,verbose:Number.POSITIVE_INFINITY},o$={silent:{level:-1},fatal:{level:Y0.fatal},error:{level:Y0.error},warn:{level:Y0.warn},log:{level:Y0.log},info:{level:Y0.info},success:{level:Y0.success},fail:{level:Y0.fail},ready:{level:Y0.info},start:{level:Y0.info},box:{level:Y0.info},debug:{level:Y0.debug},trace:{level:Y0.trace},verbose:{level:Y0.verbose}};$N=DN();dB=[];eD.prototype.add=eD.prototype.addReporter;eD.prototype.remove=eD.prototype.removeReporter;eD.prototype.clear=eD.prototype.removeReporter;eD.prototype.withScope=eD.prototype.withTag;eD.prototype.mock=eD.prototype.mockTypes;eD.prototype.pause=eD.prototype.pauseLogs;eD.prototype.resume=eD.prototype.resumeLogs});import{formatWithOptions as iB}from"util";import{sep as JN}from"path";function DF(D,$){let F=process.cwd()+JN;return D.split(`
|
|
7
|
+
`).splice($.split(`
|
|
8
|
+
`).length).map((J)=>J.trim().replace("file://","").replace(F,""))}function YN(D,$){return($.__write||$.write).call($,D)}class M7{formatStack(D,$,F){let X=" ".repeat((F?.errorLevel||0)+1);return X+DF(D,$).join(`
|
|
9
|
+
${X}`)}formatError(D,$){let F=D.message??iB($,D),X=D.stack?this.formatStack(D.stack,F,$):"",J=$?.errorLevel||0,G=J>0?`${" ".repeat(J)}[cause]: `:"",Y=D.cause?`
|
|
10
|
+
|
|
11
|
+
`+this.formatError(D.cause,{...$,errorLevel:J+1}):"";return G+F+`
|
|
12
|
+
`+X+Y}formatArgs(D,$){let F=D.map((X)=>{if(X&&typeof X.stack==="string")return this.formatError(X,$);return X});return iB($,...F)}formatDate(D,$){return $.date?D.toLocaleTimeString():""}filterAndJoin(D){return D.filter(Boolean).join(" ")}formatLogObj(D,$){let F=this.formatArgs(D.args,$);if(D.type==="box")return`
|
|
13
|
+
`+[e$(D.tag),D.title&&D.title,...F.split(`
|
|
14
|
+
`)].filter(Boolean).map((X)=>" > "+X).join(`
|
|
15
|
+
`)+`
|
|
16
|
+
`;return this.filterAndJoin([e$(D.type),e$(D.tag),F])}log(D,$){let F=this.formatLogObj(D,{columns:$.options.stdout.columns||0,...$.options.formatOptions});return YN(F+`
|
|
17
|
+
`,D.level<2?$.options.stderr||process.stderr:$.options.stdout||process.stdout)}}var e$=(D)=>D?`[${D}]`:"";var nB=()=>{};import*as z7 from"tty";function tB(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:tB(Y,G,F,X))}function _N(D,$,F,X,J){return D<0?F+$+X:F+tB(D,$,X,J)+X}function AN(D,$,F=D,X=D.length+1){return(J)=>J||!(J===""||J===void 0)?_N((""+J).indexOf($,X),J,D,$,F):""}function XD(D,$,F){return AN(`\x1B[${D}m`,`\x1B[${$}m`,F)}function KN(D=QN){return D?sB:Object.fromEntries(Object.keys(sB).map(($)=>[$,String]))}function CN(D,$="reset"){return Z0[D]||Z0[$]}function Q8(D){return D.replace(new RegExp(ON,"g"),"")}function eB(D,$={}){let F={...$,style:{...RN,...$.style}},X=D.split(`
|
|
18
|
+
`),J=[],G=CN(F.style.borderColor),Y={...typeof F.style.borderStyle==="string"?rB[F.style.borderStyle]||rB.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)=>Q8(A).length),F.title?Q8(F.title).length:0)+B,U=W+B,Q=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-Q8(F.title).length)/2)),C=Y.h.repeat(W-Q8(F.title).length-Q8(O).length+B);J.push(`${Q}${Y.tl}${O}${A}${C}${Y.tr}`)}else J.push(`${Q}${Y.tl}${Y.h.repeat(U)}${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(`${Q}${Y.v}${" ".repeat(U)}${Y.v}`);else{let O=X[A-_],C=" ".repeat(B),K=" ".repeat(W-Q8(O).length);J.push(`${Q}${Y.v}${C}${O}${K}${Y.v}`)}if(J.push(`${Q}${Y.bl}${Y.h.repeat(U)}${Y.br}`),F.style.marginBottom>0)J.push("".repeat(F.style.marginBottom));return J.join(`
|
|
19
|
+
`)}var _8,oB,GN,BN,HN,WN,aB,VN,UN,QN,sB,Z0,ON,rB,RN;var DH=M(()=>{({env:_8={},argv:oB=[],platform:GN=""}=typeof process>"u"?{}:process),BN="NO_COLOR"in _8||oB.includes("--no-color"),HN="FORCE_COLOR"in _8||oB.includes("--color"),WN=GN==="win32",aB=_8.TERM==="dumb",VN=z7&&z7.isatty&&z7.isatty(1)&&_8.TERM&&!aB,UN="CI"in _8&&(("GITHUB_ACTIONS"in _8)||("GITLAB_CI"in _8)||("CIRCLECI"in _8)),QN=!BN&&(HN||WN&&!aB||VN||UN);sB={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=KN();ON=[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("|");rB={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"}},RN={borderColor:"white",borderStyle:"rounded",valign:"center",padding:2,marginLeft:1,marginTop:1,marginBottom:1}});var qH={};n8(qH,{prompt:()=>PH,kCancel:()=>NH});import X2,{stdin as EN,stdout as ZN}from"process";import $H from"readline";import{WriteStream as MN}from"tty";function zN(D){return D&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D}function NN(){if(FH)return $F;FH=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 $F={cursor:X,scroll:J,erase:G,beep:F},$F}function PN(){if(XH)return N7.exports;XH=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)=>(U)=>{let Q=""+U,_=Q.indexOf(H,B.length);return~_?B+G(Q,H,W,_)+H:B+Q+H},G=(B,H,W,U)=>{let Q="",_=0;do Q+=B.substring(_,U)+W,_=U+H.length,U=B.indexOf(H,_);while(~U);return Q+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 LN({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 AH(D){if(typeof D!="string")throw TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(jN,"")}function KH(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=AH(D),D.length===0))return 0;D=D.replace(SN()," ");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(TN.eastAsianWidth(J)){case"F":case"W":X+=2;break;case"A":X+=F;break;default:X+=1}}return X}function kN(){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=JH(),wD.color.ansi256=YH(),wD.color.ansi16m=GH(),wD.bgColor.ansi=JH(FF),wD.bgColor.ansi256=YH(FF),wD.bgColor.ansi16m=GH(FF),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 WH(D,$,F){return String(D).normalize().replace(/\r\n/g,`
|
|
20
|
+
`).split(`
|
|
21
|
+
`).map((X)=>uN(X,$,F)).join(`
|
|
22
|
+
`)}function EH(D,$){if(typeof D=="string")return q7.aliases.get(D)===$;for(let F of D)if(F!==void 0&&EH(F,$))return!0;return!1}function pN(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=EN,output:X=ZN,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(VH);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}let F=new MN(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=$H.createInterface({input:this.input,output:F,tabSize:2,prompt:"",escapeCodeTimeout:50}),$H.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(VH)})})}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")}EH([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=WH(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
|
|
26
|
+
`).length-1;this.output.write(J2.cursor.move(-999,D*-1))}render(){let D=WH(this._render(this)??"",process.stdout.columns,{hard:!0});if(D!==this._prevFrame){if(this.state==="initial")this.output.write(J2.cursor.hide);else{let $=pN(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 oN(){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 PH(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,PH);throw J}case"undefined":return;case"null":return null;case"symbol":return NH;default:case"default":return $.default??$.initial}};if(!$.type||$.type==="text")return await JP({message:D,defaultValue:$.default,placeholder:$.placeholder,initialValue:$.initial}).then(F);if($.type==="confirm")return await YP({message:D,initialValue:$.initial}).then(F);if($.type==="select")return await GP({message:D,options:$.options.map((X)=>typeof X==="string"?{value:X,label:X}:X),initialValue:$.initial}).then(F);if($.type==="multiselect")return await BP({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 $F,FH,J2,N7,XH,qN,v,jN,CH,IN,TN,wN=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},SN,FF=10,JH=(D=0)=>($)=>`\x1B[${$+D}m`,YH=(D=0)=>($)=>`\x1B[${38+D};5;${$}m`,GH=(D=0)=>($,F,X)=>`\x1B[${38+D};2;${$};${F};${X}m`,wD,fN,bN,vN,L7,xN=39,BF="\x07",OH="[",hN="]",RH="m",HF,BH=(D)=>`${L7.values().next().value}${OH}${D}${RH}`,HH=(D)=>`${L7.values().next().value}${HF}${D}${BF}`,gN=(D)=>D.split(" ").map(($)=>O3($)),XF=(D,$,F)=>{let X=[...$],J=!1,G=!1,Y=O3(AH(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(HF)),J){G?H===BF&&(J=!1,G=!1):H===RH&&(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())},yN=(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("")},uN=(D,$,F={})=>{if(F.trim!==!1&&D.trim()==="")return"";let X="",J,G,Y=gN(D),B=[""];for(let[W,U]of D.split(" ").entries()){F.trim!==!1&&(B[B.length-1]=B[B.length-1].trimStart());let Q=O3(B[B.length-1]);if(W!==0&&(Q>=$&&(F.wordWrap===!1||F.trim===!1)&&(B.push(""),Q=0),(Q>0||F.trim===!1)&&(B[B.length-1]+=" ",Q++)),F.hard&&Y[W]>$){let _=$-Q,A=1+Math.floor((Y[W]-_-1)/$);Math.floor((Y[W]-1)/$)<A&&B.push(""),XF(B,U,$);continue}if(Q+Y[W]>$&&Q>0&&Y[W]>0){if(F.wordWrap===!1&&Q<$){XF(B,U,$);continue}B.push("")}if(Q+Y[W]>$&&F.wordWrap===!1){XF(B,U,$);continue}B[B.length-1]+=U}F.trim!==!1&&(B=B.map((W)=>yN(W)));let H=[...B.join(`
|
|
30
|
+
`)];for(let[W,U]of H.entries()){if(X+=U,L7.has(U)){let{groups:_}=new RegExp(`(?:\\${OH}(?<code>\\d+)m|\\${HF}(?<uri>.*)${BF})`).exec(H.slice(W).join(""))||{groups:{}};if(_.code!==void 0){let A=Number.parseFloat(_.code);J=A===xN?void 0:A}else _.uri!==void 0&&(G=_.uri.length===0?void 0:_.uri)}let Q=vN.codes.get(Number(J));H[W+1]===`
|
|
31
|
+
`?(G&&(X+=HH("")),J&&Q&&(X+=BH(Q))):U===`
|
|
32
|
+
`&&(J&&Q&&(X+=BH(J)),G&&(X+=HH(G)))}return X},mN,q7,VH,cN,dN=(D,$,F)=>($ in D)?cN(D,$,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[$]=F,w0=(D,$,F)=>(dN(D,typeof $!="symbol"?$+"":$,F),F),ZH,lN,iN=(D,$,F)=>($ in D)?lN(D,$,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[$]=F,UH=(D,$,F)=>(iN(D,typeof $!="symbol"?$+"":$,F),F),nN,sN,rN=(D,$,F)=>($ in D)?sN(D,$,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[$]=F,QH=(D,$,F)=>(rN(D,typeof $!="symbol"?$+"":$,F),F),MH,zH,aN,Y2=(D,$)=>aN?D:$,tN,eN,DP,$P,PD,c1,JF,YF,FP,_H,XP,j7=(D)=>{switch(D){case"initial":case"active":return v.cyan(tN);case"cancel":return v.red(eN);case"error":return v.yellow(DP);case"submit":return v.green($P)}},GF=(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((U,Q,_)=>{let A=Q===0&&H,O=Q===_.length-1&&W;return A||O?v.dim("..."):X(U,Q+B===$)})},JP=(D)=>new zH({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(),YP=(D)=>{let $=D.active??"Yes",F=D.inactive??"No";return new ZH({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(JF)} ${$}`:`${v.dim(YF)} ${v.dim($)}`} ${v.dim("/")} ${this.value?`${v.dim(YF)} ${v.dim(F)}`:`${v.green(JF)} ${F}`}
|
|
44
|
+
${v.cyan(c1)}
|
|
45
|
+
`}}}).prompt()},GP=(D)=>{let $=(F,X)=>{let J=F.label??String(F.value);switch(X){case"selected":return`${v.dim(J)}`;case"active":return`${v.green(JF)} ${J} ${F.hint?v.dim(`(${F.hint})`):""}`;case"cancelled":return`${v.strikethrough(v.dim(J))}`;default:return`${v.dim(YF)} ${v.dim(J)}`}};return new MH({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)} ${GF({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()},BP=(D)=>{let $=(F,X)=>{let J=F.label??String(F.value);return X==="active"?`${v.cyan(FP)} ${J} ${F.hint?v.dim(`(${F.hint})`):""}`:X==="selected"?`${v.green(_H)} ${v.dim(J)}`:X==="cancelled"?`${v.strikethrough(v.dim(J))}`:X==="active-selected"?`${v.green(_H)} ${J} ${F.hint?v.dim(`(${F.hint})`):""}`:X==="submitted"?`${v.dim(J)}`:`${v.dim(XP)} ${v.dim(J)}`};return new nN({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)} ${GF({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)} ${GF({options:this.options,cursor:this.cursor,maxItems:D.maxItems,style:X}).join(`
|
|
61
|
+
${v.cyan(PD)} `)}
|
|
62
|
+
${v.cyan(c1)}
|
|
63
|
+
`}}}).prompt()},NH;var LH=M(()=>{J2=NN(),N7={exports:{}};qN=PN(),v=zN(qN);jN=LN();CH={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 U=H[W],Q=$.length(U);if(B>=J-(Q==2?1:0))if(B+Q<=G)Y+=U;else break;B+=Q}return Y}})(CH);IN=CH.exports,TN=KH(IN),SN=KH(wN);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);fN=Object.keys(wD.color),bN=Object.keys(wD.bgColor);[...fN,...bN];vN=kN(),L7=new Set(["\x1B","\x9B"]),HF=`${hN}8;;`;mN=["up","down","left","right","space","enter","cancel"],q7={actions:new Set(mN),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["\x03","cancel"],["escape","cancel"]])};globalThis.process.platform.startsWith("win");VH=Symbol("clack:cancel");cN=Object.defineProperty;ZH=class ZH 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})}};lN=Object.defineProperty,nN=class extends R3{constructor(D){super(D,!1),UH(this,"options"),UH(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]}},sN=Object.defineProperty;MH=class MH 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}};zH=class zH 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)})}};aN=oN(),tN=Y2("\u276F",">"),eN=Y2("\u25A0","x"),DP=Y2("\u25B2","x"),$P=Y2("\u2714","\u221A"),PD=Y2(""),c1=Y2(""),JF=Y2("\u25CF",">"),YF=Y2("\u25CB"," "),FP=Y2("\u25FB","[\u2022]"),_H=Y2("\u25FC","[+]"),XP=Y2("\u25FB","[ ]");`${v.gray(PD)} `;NH=Symbol.for("cancel")});import jH from"process";function VP(){if(globalThis.process?.env)for(let D of WP){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 PP(){let D=NP.find(($)=>$[0]);if(D)return{name:D[1]}}function LP({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 IP(D){if(typeof D!=="string")throw TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(jP,"")}function TP(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 wP(D){return D===12288||D>=65281&&D<=65376||D>=65504&&D<=65510}function SP(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 fP(D){if(!Number.isSafeInteger(D))throw TypeError(`Expected a code point, got \`${typeof D}\`.`)}function bP(D,{ambiguousAsWide:$=!1}={}){if(fP(D),wP(D)||SP(D)||$&&TP(D))return 2;return 1}function hP(D,$={}){if(typeof D!=="string"||D.length===0)return 0;let{ambiguousIsNarrow:F=!0,countAnsiEscapeCodes:X=!1}=$;if(!X)D=IP(D);if(D.length===0)return 0;let J=0,G={ambiguousAsWide:!F};for(let{segment:Y}of vP.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(xP.test(Y))continue;if(kP().test(Y)){J+=2;continue}J+=bP(B,G)}return J}function gP(){let{env:D}=jH,{TERM:$,TERM_PROGRAM:F}=D;if(jH.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 wH(D){if(typeof Intl!=="object"||!Intl.Segmenter)return Q8(D).length;return hP(D)}function I7(D){return D.replace(/`([^`]+)`/gm,($,F)=>Z0.cyan(F)).replace(/\s+_([^_]+)_\s+/gm,($,F)=>` ${Z0.underline(F)} `)}function pP(D="white"){return Z0[D]||Z0.white}function cP(D="bgWhite"){return Z0[`bg${D[0].toUpperCase()}${D.slice(1)}`]||Z0.bgWhite}function dP(D={}){let $=lP();if(process.env.CONSOLA_LEVEL)$=Number.parseInt(process.env.CONSOLA_LEVEL)??$;return lB({level:$,defaults:{level:$},stdout:process.stdout,stderr:process.stderr,prompt:(...X)=>Promise.resolve().then(() => (LH(),qH)).then((J)=>J.prompt(...X)),reporters:D.reporters||[D.fancy??!(WF||VF)?new bH:new M7],...D})}function lP(){if(QP)return Y0.debug;if(VF)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,HP,WP,SH,UP,WF,fH,QP,VF,_P,AP,KP,IH,CP,OP,RP,EP,ZP,MP,zP,NP,qP,jP,kP=()=>{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},vP,xP,yP,uP,mP,f2=(D,$)=>mP?D:$,TH,bH,E;var JD=M(()=>{t$();t$();nB();DH();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)}}),HP=typeof process<"u"&&process.env&&"development"||"",WP=[["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}]];SH=VP();SH.name;UP=globalThis.process?.platform||"",WF=s8(A8.CI)||SH.ci!==!1,fH=s8(globalThis.process?.stdout&&globalThis.process?.stdout.isTTY),QP=s8(A8.DEBUG),VF=HP==="test"||s8(A8.TEST);s8(A8.MINIMAL);_P=/^win/i.test(UP);!s8(A8.NO_COLOR)&&(s8(A8.FORCE_COLOR)||(fH||_P)&&A8.TERM);AP=(globalThis.process?.versions?.node||"").replace(/^v/,"")||null;Number(AP?.split(".")[0]);KP=globalThis.process||Object.create(null),IH={versions:{}};new Proxy(KP,{get(D,$){if($==="env")return A8;if($ in D)return D[$];if($ in IH)return IH[$]}});CP=globalThis.process?.release?.name==="node",OP=!!globalThis.Bun||!!globalThis.process?.versions?.bun,RP=!!globalThis.Deno,EP=!!globalThis.fastly,ZP=!!globalThis.Netlify,MP=!!globalThis.EdgeRuntime,zP=globalThis.navigator?.userAgent==="Cloudflare-Workers",NP=[[ZP,"netlify"],[MP,"edge-light"],[zP,"workerd"],[EP,"fastly"],[RP,"deno"],[OP,"bun"],[CP,"node"]];qP=PP();qP?.name;jP=LP();vP=globalThis.Intl?.Segmenter?new Intl.Segmenter:{segment:(D)=>D.split("")},xP=/^\p{Default_Ignorable_Code_Point}$/u;yP={info:"cyan",fail:"red",success:"green",ready:"green",start:"magenta"},uP={0:"red",1:"yellow"},mP=gP(),TH={error:f2("\u2716","\xD7"),fatal:f2("\u2716","\xD7"),ready:f2("\u2714","\u221A"),warn:f2("\u26A0","\u203C"),info:f2("\u2139","i"),success:f2("\u2714","\u221A"),debug:f2("\u2699","D"),trace:f2("\u2192","\u2192"),fail:f2("\u2716","\xD7"),start:f2("\u25D0","o"),log:""};bH=class bH extends M7{formatStack(D,$,F){let X=" ".repeat((F?.errorLevel||0)+1);return`
|
|
64
|
+
${X}`+DF(D,$).map((J)=>" "+J.replace(/^at +/,(G)=>Z0.gray(G)).replace(/\((.+)\)/,(G,Y)=>`(${Z0.cyan(Y)})`)).join(`
|
|
65
|
+
${X}`)}formatType(D,$,F){let X=yP[D.type]||uP[D.level]||"gray";if($)return cP(X)(Z0.black(` ${D.type.toUpperCase()} `));let J=typeof TH[D.type]==="string"?TH[D.type]:D.icon||D.type;return J?pP(X)(J):""}formatLogObj(D,$){let[F,...X]=this.formatArgs(D.args,$).split(`
|
|
66
|
+
`);if(D.type==="box")return eB(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,U=this.filterAndJoin([B,I7(F)]),Q=this.filterAndJoin($.columns?[H,G]:[H]),_=($.columns||0)-wH(U)-wH(Q)-2;if(W=_>0&&($.columns||0)>=80?U+" ".repeat(_)+Q:(Q?`${Z0.gray(`[${Q}]`)} `:"")+U,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=dP()});var HD,UF,x,b2=(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}}})(UF||(UF={}));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,nP=(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 sP=(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=sP});function rP(D){vH=D}function d1(){return vH}var vH;var S7=M(()=>{QF();vH=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}},oP,n,r8=(D)=>({status:"dirty",value:D}),V0=(D)=>({status:"valid",value:D}),f7=(D)=>D.status==="aborted",b7=(D)=>D.status==="dirty",K8=(D)=>D.status==="valid",l1=(D)=>typeof Promise<"u"&&D instanceof Promise;var _F=M(()=>{S7();QF();oP=[];n=Object.freeze({status:"aborted"})});var xH=()=>{};var c;var hH=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 b2(D.data)}_getOrReturnCtx(D,$){return $||{common:D.parent.common,data:D.data,parsedType:b2(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:b2(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:b2(D)},X=this._parseSync({data:D,path:F.path,parent:F});return gH(F,X)}"~validate"(D){let $={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:D,parsedType:b2(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:b2(D)},X=this._parse({data:D,path:F.path,parent:F}),J=await(l1(X)?X:Promise.resolve(X));return gH(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 mH(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 _q(D){return new RegExp(`^${mH(D)}$`)}function pH(D){let $=`${uH}T${mH(D)}`,F=[];if(F.push(D.local?"Z?":"Z"),D.offset)F.push("([+-]\\d{2}:?\\d{2})");return $=`${$}(${F.join("|")})`,new RegExp(`^${$}$`)}function Aq(D,$){if(($==="v4"||!$)&&Gq.test(D))return!0;if(($==="v6"||!$)&&Hq.test(D))return!0;return!1}function Kq(D,$){if(!Fq.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 Cq(D,$){if(($==="v4"||!$)&&Bq.test(D))return!0;if(($==="v6"||!$)&&Wq.test(D))return!0;return!1}function Oq(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 KF(D,$){let F=b2(D),X=b2($);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=KF(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=KF(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 cH(D,$){return new E8({values:D,typeName:r.ZodEnum,...FD($)})}function yH(D,$){let F=typeof D==="function"?D($):typeof D==="string"?{message:D}:D;return typeof F==="string"?{message:F}:F}function dH(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=yH($,X),H=B.fatal??F??!0;J.addIssue({code:"custom",...B,fatal:H})}});if(!G){let Y=yH($,X),B=Y.fatal??F??!0;J.addIssue({code:"custom",...Y,fatal:B})}return});return a8.create()}var gH=(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}}}},aP,tP,eP,Dq,$q,Fq,Xq,Jq,Yq="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",AF,Gq,Bq,Hq,Wq,Vq,Uq,uH="((\\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])))",Qq,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,Rq,v7,j3,J6,Eq,r,Zq=(D,$={message:`Input not instance of ${D.name}`})=>dH((F)=>F instanceof D,$),lH,iH,Mq,zq,nH,Nq,Pq,qq,Lq,jq,Iq,Tq,wq,Sq,fq,bq,kq,vq,xq,hq,gq,yq,uq,mq,pq,cq,dq,lq,iq,nq,sq,rq,oq,aq,tq=()=>lH().optional(),eq=()=>iH().optional(),DL=()=>nH().optional(),$L,FL;var sH=M(()=>{w7();S7();hH();_F();Z3();aP=/^c[^\s-]{8,}$/i,tP=/^[0-9a-z]+$/,eP=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Dq=/^[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,$q=/^[a-z0-9_-]{21}$/i,Fq=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Xq=/^[-+]?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)?)??$/,Jq=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Gq=/^(?:(?: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])$/,Bq=/^(?:(?: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])$/,Hq=/^(([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]))$/,Wq=/^(([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])$/,Vq=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Uq=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Qq=new RegExp(`^${uH}$`);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(!Jq.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(!AF)AF=new RegExp(Yq,"u");if(!AF.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(!Dq.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(!$q.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(!aP.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(!tP.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(!eP.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(!pH(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(!Qq.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(!_q(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(!Xq.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(!Aq(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(!Kq(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(!Cq(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(!Vq.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(!Uq.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(Oq(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],U=X.data[H];B.push({key:{status:"valid",value:H},value:W._parse(new W2(X,U,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 U=X.data[W];B.push({key:{status:"valid",value:W},value:H._parse(new W2(X,U,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 U=await W.key,Q=await W.value;H.push({key:U,value:Q,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 cH(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(f7(J)||f7(G))return n;let Y=KF(J.value,G.value);if(!Y.valid)return y(F,{code:w.invalid_intersection_types}),n;if(b7(J)||b7(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}),U=await Reflect.apply(G,this,W);return await Y._def.returns._def.type.parseAsync(U,J).catch((_)=>{throw H.addIssue(X(U,_)),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),U=Y._def.returns.safeParse(W,J);if(!U.success)throw new N0([X(W,U.error)]);return U.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=cH;$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)})};Rq=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($)})};Eq={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={}));lH=G2.create,iH=O8.create,Mq=L3.create,zq=R8.create,nH=s1.create,Nq=o8.create,Pq=z3.create,qq=r1.create,Lq=o1.create,jq=a8.create,Iq=C8.create,Tq=k2.create,wq=N3.create,Sq=B2.create,fq=xD.create,bq=xD.strictCreate,kq=a1.create,vq=k7.create,xq=t1.create,hq=v2.create,gq=P3.create,yq=q3.create,uq=t8.create,mq=n1.create,pq=e1.create,cq=D6.create,dq=E8.create,lq=$6.create,iq=e8.create,nq=V2.create,sq=H2.create,rq=r2.create,oq=V2.createWithPreprocess,aq=j3.create,$L={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})},FL=n});var V={};n8(V,{void:()=>wq,util:()=>HD,unknown:()=>Iq,union:()=>kq,undefined:()=>qq,tuple:()=>hq,transformer:()=>nq,symbol:()=>Pq,string:()=>lH,strictObject:()=>bq,setErrorMap:()=>rP,set:()=>uq,record:()=>gq,quotelessJson:()=>nP,promise:()=>iq,preprocess:()=>oq,pipeline:()=>aq,ostring:()=>tq,optional:()=>sq,onumber:()=>eq,oboolean:()=>DL,objectUtil:()=>UF,object:()=>fq,number:()=>iH,nullable:()=>rq,null:()=>Lq,never:()=>Tq,nativeEnum:()=>lq,nan:()=>Mq,map:()=>yq,makeIssue:()=>M3,literal:()=>cq,lazy:()=>pq,late:()=>Eq,isValid:()=>K8,isDirty:()=>b7,isAsync:()=>l1,isAborted:()=>f7,intersection:()=>xq,instanceof:()=>Zq,getParsedType:()=>b2,getErrorMap:()=>d1,function:()=>mq,enum:()=>dq,effect:()=>nq,discriminatedUnion:()=>vq,defaultErrorMap:()=>n2,datetimeRegex:()=>pH,date:()=>Nq,custom:()=>dH,coerce:()=>$L,boolean:()=>nH,bigint:()=>zq,array:()=>Sq,any:()=>jq,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:()=>FL,INVALID:()=>n,EMPTY_PATH:()=>oP,DIRTY:()=>r8,BRAND:()=>Rq});var CF=M(()=>{S7();_F();xH();Z3();sH();w7()});var mD=M(()=>{CF();CF()});function OF(D){return Object.prototype.hasOwnProperty.call(YW,D)}var e,v0,rH,oH,aH,tH,eH,DW,$W,FW,XW,x7,h7,JW,YW;var GW=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)}),rH=v0.extend({displayName:V.string().optional(),deviceId:V.string().min(1),connectedAt:V.number().int()}),oH=v0.extend({deviceId:V.string().min(1),reason:V.enum(["disconnected","expired","kicked"]).optional(),disconnectedAt:V.number().int()}),aH=v0.extend({conversationId:V.string().min(1),role:V.enum(["user","assistant","system"]),content:V.string(),createdAt:V.number().int()}),tH=v0.extend({conversationId:V.string().min(1),taskId:V.string().min(1).optional(),chunk:V.string().optional()}),eH=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()}),DW=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()}),$W=v0.extend({version:V.number().int().nonnegative(),changedAt:V.number().int()}),FW=v0.extend({stream:V.enum(["stdout","stderr"]),line:V.string(),ts:V.number().int()}),XW=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)}),JW=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"])}),YW={[e.WORKER_ONLINE]:rH,[e.WORKER_OFFLINE]:oH,[e.CHAT_MESSAGE]:aH,[e.AGENT_THINKING]:tH,[e.AGENT_TOOL_CALL]:eH,[e.AGENT_DONE]:DW,[e.CONFIG_CHANGED]:$W,[e.LOGS_LINE]:FW,[e.APPROVAL_REQUESTED]:XW,[e.ENROLLMENT_OTP]:x7,[e.ENROLLMENT_APPROVED]:h7,[e.ENROLLMENT_PENDING]:JW}});var qD;var BW=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 HW=M(()=>{x0=/^w_[0-9a-hjkmnp-tv-z]{12}$/});function Z8(D){return typeof D==="string"&&o2.test(D)}var u7="wtk_",o2;var WW=M(()=>{o2=/^wtk_[\w-]{32,}$/});var RF=M(()=>{HW();WW()});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 JL(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 EF(){let D=new Uint8Array(10);return globalThis.crypto.getRandomValues(D),`w_${JL(D,12)}`}var VW=M(()=>{RF()});var ZF,MF,m7,YL,zF,UW;var QW=M(()=>{mD();ZF=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()})]),MF=V.enum(["pending","running","success","failed","pending_approval","denied"]),m7=V.object({inputTokens:V.number().int().nonnegative(),outputTokens:V.number().int().nonnegative()}),YL=V.record(V.unknown()),zF=V.enum(["stop","tool","length","error","cancelled"]),UW=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:ZF,status:MF.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:YL.nullable()}),V.object({type:V.literal("finish"),reason:zF,usage:m7.optional()}),V.object({type:V.literal("error"),error:V.string()})])});var _W=M(()=>{QW()});var cD=M(()=>{BW();RF();VW();_W()});var $1,NF;var PF=M(()=>{mD();$1={OPERATOR:"operator",NODE:"node"},NF=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=EW.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 AW,KW,CW,GL,BL,OW,RW,EW;var ZW=M(()=>{cD();mD();PF();AW=V.object({type:V.literal("connect"),role:NF,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"})}),KW=V.object({type:V.literal("request"),id:V.string().min(1),method:V.string().min(1),params:V.unknown().optional()}),CW=V.object({code:V.string().min(1),message:V.string(),details:V.unknown().optional()}),GL=V.object({type:V.literal("response"),id:V.string().min(1),ok:V.literal(!0),result:V.unknown()}),BL=V.object({type:V.literal("response"),id:V.string().min(1),ok:V.literal(!1),error:CW}),OW=V.discriminatedUnion("ok",[GL,BL]),RW=V.object({type:V.literal("event"),name:V.string().min(1),payload:V.unknown(),ts:V.number().int()}),EW=V.union([AW,KW,OW,RW])});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,HL,WL,MW,Y6,VL,UL,QL,_L,p7,AL,KL,CL,c7,OL,RL,EL,ZL,ML,zL,zW,NW,NL,PL,PW,qW,qL,LL,jL,IL,TL,wL,SL,fL,bL,kL,vL,xL,qF,d7,LW,jW,hL,gL,yL,uL,ED;var IW=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()}),HL=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"}),WL=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"}),MW=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)}),VL=AD({method:"workers.pair",description:"\u628A\u4E00\u4E2A\u5DF2\u542F\u52A8\u7684 worker \u901A\u8FC7 bootstrap token \u6CE8\u518C\u5230 fleet\u3002",params:MW,result:Y6,routing:"operator-to-gateway"}),UL=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"}),QL=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"}),_L=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()}),AL=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"}),KL=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"}),CL=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()}),OL=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"}),RL=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"}),EL=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"}),ZL=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"}),ML=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"}),zL=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"}),zW=V.enum(["allow","deny"]),NW=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()}),NL=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(NW)}),routing:"operator-to-node"}),PL=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:zW}),result:V.object({granted:V.boolean()}),routing:"operator-to-node"}),PW=V.enum(["web","line","telegram","lark","whatsapp"]),qW=V.string().regex(/^[\w.-]{1,128}$/),qL=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"}),LL=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:qW,value:V.string().min(1)}),result:V.object({ok:V.literal(!0)}),routing:"operator-to-node"}),jL=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:qW}),result:V.object({ok:V.literal(!0)}),routing:"operator-to-node"}),IL=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"}),TL=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"}),wL=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"}),SL=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:PW,body:V.object({chatId:V.string().optional(),text:V.string().optional()}).optional()}),result:V.unknown(),routing:"operator-to-node"}),fL=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"}),bL=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"}),kL=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"}),vL=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"}),xL=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"}),qF=PW,d7=V.object({id:V.string().min(1),expression:V.string().min(1),prompt:V.string().min(1),channel:qF,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()}),LW=V.object({expression:V.string().min(1),prompt:V.string().min(1),channel:qF,chatId:V.string().min(1),accountId:V.string().min(1).optional(),enabled:V.boolean().optional()}),jW=V.object({expression:V.string().min(1).optional(),prompt:V.string().min(1).optional(),channel:qF.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"}),hL=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"}),gL=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:LW}),result:V.object({job:d7}),routing:"operator-to-node"}),yL=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"}),uL=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:jW}),result:V.object({job:d7}),routing:"operator-to-node"}),ED={"workers.list":HL,"workers.info":WL,"workers.pair":VL,"workers.launch":UL,"workers.stop":QL,"workers.remove":_L,"enroll.list":AL,"enroll.approve":KL,"enroll.reject":CL,"audit.list":OL,"chat.send":RL,"config.get":EL,"config.put":ZL,"token.rotate":ML,"logs.tail":zL,"system.presence":xL,"approval.list":NL,"approval.grant":PL,"secrets.list":qL,"secrets.put":LL,"secrets.delete":jL,"engines.list":IL,"brain.test":TL,"executor.test":wL,"channel.test":SL,"orchestrator.tasks.list":fL,"orchestrator.tasks.create":bL,"orchestrator.conversations.list":kL,"orchestrator.messages.list":vL,"cron.list":hL,"cron.add":gL,"cron.remove":yL,"cron.update":uL}});var D0=M(()=>{GW();ZW();IW();PF()});import{statSync as mL}from"fs";import{access as pL,mkdir as cL,stat as Kr,writeFile as dL}from"fs/promises";import{homedir as fW}from"os";import BD from"path";import bW from"process";function wW(D){return D.startsWith("~")?BD.join(fW(),D.slice(1)):D}function SW(D){try{return mL(D).isDirectory()}catch{return!1}}function jF(D){let $=BD.resolve(D??bW.cwd());if(!$)return null;while(!0){let F=BD.join($,G6);if(SW(F))return $;let X=BD.join($,".git");if(SW(X))return null;let J=BD.dirname($);if(J===$)return null;$=J}}function U2(D={}){if(D.explicitHome&&D.explicitHome.length>0)return{scope:"explicit",home:BD.resolve(wW(D.explicitHome)),source:"cli-flag"};let $=bW.env[lL];if($&&$.length>0)return{scope:"explicit",home:BD.resolve(wW($)),source:"env"};if(!D.disableProjectDetect){let F=jF(D.cwd);if(F)return{scope:"project",home:BD.join(F,G6,LF),projectRoot:F,source:"project-detect"}}return{scope:"user",home:BD.resolve(fW(),G6),source:"user-default"}}function Q2(){return U2().home}function _2(D){let $=U2();if($.scope==="project"&&$.projectRoot)return BD.join($.projectRoot,G6);return BD.join($.home,"workers",D)}function B6(D){let $=U2();if($.scope==="project"&&$.projectRoot)return BD.join($.projectRoot,G6);return BD.join(_2(D),"brain")}function iL(D){return BD.join(B6(D),"skills")}function nL(D){return BD.join(B6(D),"memories")}function IF(D){return BD.join(B6(D),"MEMORY.md")}function i7(D){let $=U2();if($.scope==="project"&&$.projectRoot)return BD.join($.home,"workspaces");return BD.join(_2(D),"workspaces")}function kW(D){return BD.join(_2(D),"config.yaml")}function TF(D){return BD.join(_2(D),"AGENT.md")}function wF(D){return BD.join(_2(D),"SOUL.md")}function SF(D){return BD.join(_2(D),"USER.md")}function vW(D){return BD.join(_2(D),"ROLLUP.md")}function xW(D){return BD.join(_2(D),"mcp.json")}async function g0(D,$){await cL(D,{recursive:!0,...$===void 0?{}:{mode:$}})}async function h0(D,$){try{await pL(D)}catch{await dL(D,$,{encoding:"utf8"})}}async function fF(D){let $=U2();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(iL(D)),await g0(nL(D)),await g0(i7(D)),await h0(TF(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(wF(D),`# Voice of ${D}
|
|
83
|
+
|
|
84
|
+
> Draft voice / style guide. Influences how the agent phrases responses across channels.
|
|
85
|
+
`),await h0(SF(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(IF(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,LF);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"),`${LF}/
|
|
108
|
+
`),await h0(BD.join(X,".gitignore"),`*
|
|
109
|
+
!.gitignore
|
|
110
|
+
`)}var lL="AIWORKER_HOME",G6=".aiworker",LF="local";var A2=()=>{};var t7={};n8(t7,{saveAimState:()=>vF,resolveGatewayPidPath:()=>r7,resolveGatewayLogPath:()=>o7,resolveAimStatePath:()=>kF,patchAimState:()=>f3,normalizeGatewayWsUrl:()=>S3,loadAimState:()=>a7,gatewayWsUrlForLocalPort:()=>s7,DEFAULT_GATEWAY_URL:()=>hW});import{chmod as sL,mkdir as rL,readFile as oL,rename as aL,writeFile as tL}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 kF(){return n7.join(Q2(),"aim.json")}function r7(){return n7.join(Q2(),"aim-gateway.pid")}function o7(){return n7.join(Q2(),"aim-gateway.log")}function eL(){return`op-${crypto.randomUUID()}`}function Dj(){return{gatewayUrl:hW,deviceId:eL(),deviceToken:""}}function $j(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=kF(),$;try{$=await oL(D,"utf8")}catch(X){if(X.code==="ENOENT")return Dj();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(!$j(F))throw Error(`aim.json \u7ED3\u6784\u4E0D\u7B26\u5408 AimState (${D})`);return{...F,gatewayUrl:S3(F.gatewayUrl)}}async function vF(D){let $=kF();await rL(n7.dirname($),{recursive:!0});let F=`${$}.tmp`;await tL(F,`${JSON.stringify(D,null,2)}
|
|
111
|
+
`,{encoding:"utf8",mode:384}),await aL(F,$);try{await sL($,384)}catch{}}async function f3(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 vF(F),F}var hW="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 nW,xF,hF;var e7=M(()=>{a();nW=class nW{static[P]="ConsoleLogWriter";write(D){console.log(D)}};xF=class xF{static[P]="DefaultLogger";writer;constructor(D){this.writer=D?.writer??new nW}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}`)}};hF=class hF{static[P]="NoopLogger";logQuery(){}}});var S0;var b3=M(()=>{S0=Symbol.for("drizzle:Name")});function M8(D){return D[S0]}function J1(D){return`${D[D4]??"public"}.${D[S0]}`}var D4,$4,sW,gF,yF,k3,rW,Fj,h;var U0=M(()=>{a();b3();D4=Symbol.for("drizzle:Schema"),$4=Symbol.for("drizzle:Columns"),sW=Symbol.for("drizzle:ExtraConfigColumns"),gF=Symbol.for("drizzle:OriginalName"),yF=Symbol.for("drizzle:BaseName"),k3=Symbol.for("drizzle:IsAlias"),rW=Symbol.for("drizzle:ExtraConfigBuilder"),Fj=Symbol.for("drizzle:IsDrizzleTable");h=class h{static[P]="Table";static Symbol={Name:S0,Schema:D4,OriginalName:gF,Columns:$4,ExtraConfigColumns:sW,BaseName:yF,IsAlias:k3,ExtraConfigBuilder:rW};[S0];[gF];[D4];[$4];[sW];[yF];[k3]=!1;[Fj]=!0;[rW]=void 0;constructor(D,$,F){this[S0]=this[gF]=D,this[D4]=$,this[yF]=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 uF;var mF=M(()=>{a();uF=class uF{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 oW(D,...$){return D(...$)}var aW=()=>{};function tW(D,$){return`${D[S0]}_${$.join("_")}_unique`}var eW=M(()=>{b3()});var v3,Xj;var DV=M(()=>{C2();a();eW();v3=class v3 extends OD{constructor(D,$){if(!$.uniqueName)$.uniqueName=tW(D,[$.name]);super(D,$);this.table=D}static[P]="PgColumn"};Xj=class Xj 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 FV(D){return!!D&&typeof D==="function"&&$V in D&&D[$V]===!0}var Jj,$V,Yj;var XV=M(()=>{a();DV();Jj=class Jj extends v3{static[P]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(D,$){super(D,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}};$V=Symbol.for("drizzle:isPgEnum");Yj=class Yj 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 JV="0.44.7";var YV=()=>{};var pF,cF,GV;var BV=M(()=>{aW();YV();GV={startActiveSpan(D,$){if(!pF)return $();if(!cF)cF=pF.trace.getTracer("drizzle-orm",JV);return oW((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()}}),pF,cF)}}});var hD;var a2=M(()=>{hD=Symbol.for("drizzle:ViewBaseConfig")});function dF(D){return D!==null&&D!==void 0&&typeof D.getSQL==="function"}function Gj(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 HV(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,f0)&&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,WV,VV,zo,f0,z8,Bj,y0;var $0=M(()=>{a();XV();O2();BV();a2();C2();U0();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=WV;shouldInlineParams=!1;usedTables=[];append(D){return this.queryChunks.push(...D.queryChunks),this}toQuery(D){return GV.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 Gj(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 U=[new rD("(")];for(let[Q,_]of W.entries())if(U.push(_),Q<W.length-1)U.push(new rD(", "));return U.push(new rD(")")),this.buildQueryFromSourceParams(U,F)}if(I(W,m))return this.buildQueryFromSourceParams(W.queryChunks,{...F,inlineParams:B||W.shouldInlineParams});if(I(W,h)){let U=W[h.Symbol.Schema],Q=W[h.Symbol.Name];return{sql:U===void 0||W[k3]?J(Q):J(U)+"."+J(Q),params:[]}}if(I(W,OD)){let U=X.getColumnCasing(W);if($.invokeSource==="indexes")return{sql:J(U),params:[]};let Q=W.table[h.Symbol.Schema];return{sql:W.table[k3]||Q===void 0?J(W.table[h.Symbol.Name])+"."+J(U):J(Q)+"."+J(W.table[h.Symbol.Name])+"."+J(U),params:[]}}if(I(W,y0)){let U=W[hD].schema,Q=W[hD].name;return{sql:U===void 0||W[hD].isAlias?J(Q):J(U)+"."+J(Q),params:[]}}if(I(W,f0)){if(I(W.value,z8))return{sql:G(H.value++,W),params:[W],typings:["none"]};let U=W.value===null?null:W.encoder.mapToDriverValue(W.value);if(I(U,m))return this.buildQueryFromSourceParams([U],F);if(B)return{sql:this.mapInlineParam(U,F),params:[]};let Q=["none"];if(Y)Q=[Y(W.encoder)];return{sql:G(H.value++,U),params:[U],typings:Q}}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(FV(W)){if(W.schema)return{sql:J(W.schema)+"."+J(W.enumName),params:[]};return{sql:J(W.enumName),params:[]}}if(dF(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])}};WV={mapFromDriverValue:(D)=>D},VV={mapToDriverValue:(D)=>D},zo={...WV,...VV};f0=class f0{constructor(D,$=VV){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 U=[];for(let[Q,_]of H.entries()){if(Q>0&&W!==void 0)U.push(W);U.push(_)}return new m(U)}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 f0(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])}};Bj=Symbol.for("drizzle:IsDrizzleView");y0=class y0{static[P]="View";[hD];[Bj]=!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 lF(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 U=G;for(let[Q,_]of Y.entries())if(Q<Y.length-1){if(!(_ in U))U[_]={};U=U[_]}else{let A=$[H],O=U[_]=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 f0(J,D[h.Symbol.Columns][X])]});if(F.length===0)throw Error("No values to set");return Object.fromEntries(F)}function UV(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 _V(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 iF;var P0=M(()=>{C2();a();$0();O2();U0();a2();iF=typeof TextDecoder>"u"?null:new TextDecoder});var AV,KV,nF;var CV=M(()=>{a();U0();AV=Symbol.for("drizzle:PgInlineForeignKeys"),KV=Symbol.for("drizzle:EnableRLS");nF=class nF extends h{static[P]="PgTable";static Symbol=Object.assign({},h.Symbol,{InlineForeignKeys:AV,EnableRLS:KV});[AV]=[];[KV]=!1;[h.Symbol.ExtraConfigBuilder]=void 0;[h.Symbol.ExtraConfigColumns]={}}});var sF,OV;var RV=M(()=>{a();CV();sF=class sF{static[P]="PgPrimaryKeyBuilder";columns;name;constructor(D,$){this.columns=D,this.name=$}build(D){return new OV(D,this.columns,this.name)}};OV=class OV{constructor(D,$,F){this.table=D,this.columns=$,this.name=F}static[P]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[nF.Symbol.Name]}_${this.columns.map((D)=>D.name).join("_")}_pk`}}});function q0(D,$){if(HV($)&&!dF(D)&&!I(D,f0)&&!I(D,z8)&&!I(D,OD)&&!I(D,h)&&!I(D,y0))return new f0(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 ZV(...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 MV(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 NV(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 PV(D){return Z`${D} is not null`}function qV(D){return Z`exists ${D}`}function LV(D){return Z`not exists ${D}`}function jV(D,$,F){return Z`${D} between ${q0($,D)} and ${q0(F,D)}`}function IV(D,$,F){return Z`${D} not between ${q0($,D)} and ${q0(F,D)}`}function TV(D,$){return Z`${D} like ${$}`}function wV(D,$){return Z`${D} not like ${$}`}function SV(D,$){return Z`${D} ilike ${$}`}function fV(D,$){return Z`${D} not ilike ${$}`}var k=(D,$)=>{return Z`${D} = ${q0($,D)}`},EV=(D,$)=>{return Z`${D} <> ${q0($,D)}`},u3=(D,$)=>{return Z`${D} > ${q0($,D)}`},zV=(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();U0();$0()});function g2(D){return Z`${D} asc`}function jD(D){return Z`${D} desc`}var kV=M(()=>{$0()});var rF=M(()=>{bV();kV()});function xV(){return{and:pD,between:jV,eq:k,exists:qV,gt:u3,gte:zV,ilike:SV,inArray:N8,isNull:m3,isNotNull:PV,like:TV,lt:J4,lte:Y4,ne:EV,not:MV,notBetween:IV,notExists:LV,notLike:wV,notIlike:fV,notInArray:NV,or:ZV,sql:Z}}function hV(){return{sql:Z,asc:g2,desc:jD}}function gV(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 U of Object.values(Y[h.Symbol.Columns]))if(U.primary)J[G].primaryKey.push(U);let W=Y[h.Symbol.ExtraConfigBuilder]?.(Y[h.Symbol.ExtraConfigColumns]);if(W){for(let U of Object.values(W))if(I(U,sF))J[G].primaryKey.push(...U.columns)}}else if(I(Y,vV)){let B=J1(Y.table),H=F[B],W=Y.config($(Y.table)),U;for(let[Q,_]of Object.entries(W))if(H){let A=J[H];if(A.relations[Q]=_,U)A.primaryKey.push(...U)}else{if(!(B in X))X[B]={relations:{},primaryKey:U};X[B].relations[Q]=_}}return{tables:J,tableNamesMap:F}}function Hj(D){return function(F,X){return new P8(D,F,X,X?.fields.reduce((J,G)=>J&&G.notNull,!0)??!1)}}function Wj(D){return function(F,X){return new p3(D,F,X)}}function yV(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 uV(D){return{one:Hj(D),many:Wj(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],U=typeof W==="string"?JSON.parse(W):W;G[B.tsKey]=I(H,P8)?U&&G4(D,D[B.relationTableTsKey],U,B.selection,J):U.map((Q)=>G4(D,D[B.relationTableTsKey],Q,B.selection,J))}else{let H=J(F[Y]),W=B.field,U;if(I(W,OD))U=W;else if(I(W,m))U=W.decoder;else U=W.sql.decoder;G[B.tsKey]=H===null?null:U.mapFromDriverValue(H)}return G}var oF,vV,P8,p3;var c3=M(()=>{U0();C2();a();RV();rF();$0();oF=class oF{constructor(D,$,F){this.sourceTable=D,this.referencedTable=$,this.relationName=F,this.referencedTableName=$[h.Symbol.Name]}static[P]="Relation";referencedTableName;fieldName};vV=class vV{constructor(D,$){this.table=D,this.config=$}static[P]="Relations"};P8=class P8 extends oF{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 oF{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 aF(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 aF(F,$);return F}))}var H6,d3;var H4=M(()=>{C2();a();$0();U0();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 tF,mV;var eF=M(()=>{a();b3();tF=class tF{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 mV(D,this)}};mV=class mV{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 pV(D,$){return`${D[S0]}_${$.join("_")}_unique`}var DX=M(()=>{b3()});var F0,yD;var q8=M(()=>{mF();C2();a();eF();DX();F0=class F0 extends uF{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 tF(()=>{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=pV(D,[$.name]);super(D,$);this.table=D}static[P]="SQLiteColumn"}});function rV(D,$){let{name:F,config:X}=h2(D,$);if(X?.mode==="json")return new lV(F);if(X?.mode==="bigint")return new cV(F);return new nV(F)}var cV,dV,lV,iV,nV,sV;var $X=M(()=>{a();P0();q8();cV=class cV extends F0{static[P]="SQLiteBigIntBuilder";constructor(D){super(D,"bigint","SQLiteBigInt")}build(D){return new dV(D,this.config)}};dV=class dV 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(iF.decode(D))}mapToDriverValue(D){return Buffer.from(D.toString())}};lV=class lV extends F0{static[P]="SQLiteBlobJsonBuilder";constructor(D){super(D,"json","SQLiteBlobJson")}build(D){return new iV(D,this.config)}};iV=class iV 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(iF.decode(D))}mapToDriverValue(D){return Buffer.from(JSON.stringify(D))}};nV=class nV extends F0{static[P]="SQLiteBlobBufferBuilder";constructor(D){super(D,"buffer","SQLiteBlobBuffer")}build(D){return new sV(D,this.config)}};sV=class sV extends yD{static[P]="SQLiteBlobBuffer";mapFromDriverValue(D){if(Buffer.isBuffer(D))return D;return Buffer.from(D)}getSQLType(){return"blob"}}});function tV(D){return($,F)=>{let{name:X,config:J}=h2($,F);return new oV(X,J,D)}}var oV,aV;var FX=M(()=>{a();P0();q8();oV=class oV extends F0{static[P]="SQLiteCustomColumnBuilder";constructor(D,$,F){super(D,"custom","SQLiteCustomColumn");this.config.fieldConfig=$,this.config.customTypeParams=F}build(D){return new aV(D,this.config)}};aV=class aV 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 fD(D,$){let{name:F,config:X}=h2(D,$);if(X?.mode==="timestamp"||X?.mode==="timestamp_ms")return new $U(F,X.mode);if(X?.mode==="boolean")return new XU(F,X.mode);return new eV(F)}var W4,V4,eV,DU,$U,FU,XU,JU;var XX=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"}};eV=class eV extends W4{static[P]="SQLiteIntegerBuilder";constructor(D){super(D,"number","SQLiteInteger")}build(D){return new DU(D,this.config)}};DU=class DU extends V4{static[P]="SQLiteInteger"};$U=class $U 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 FU(D,this.config)}};FU=class FU 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 $}};XU=class XU extends W4{static[P]="SQLiteBooleanBuilder";constructor(D,$){super(D,"boolean","SQLiteBoolean");this.config.mode=$}build(D){return new JU(D,this.config)}};JU=class JU extends V4{static[P]="SQLiteBoolean";mode=this.config.mode;mapFromDriverValue(D){return Number(D)===1}mapToDriverValue(D){return D?1:0}}});function UU(D,$){let{name:F,config:X}=h2(D,$),J=X?.mode;return J==="number"?new BU(F):J==="bigint"?new WU(F):new YU(F)}var YU,GU,BU,HU,WU,VU;var JX=M(()=>{a();P0();q8();YU=class YU extends F0{static[P]="SQLiteNumericBuilder";constructor(D){super(D,"string","SQLiteNumeric")}build(D){return new GU(D,this.config)}};GU=class GU extends yD{static[P]="SQLiteNumeric";mapFromDriverValue(D){if(typeof D==="string")return D;return String(D)}getSQLType(){return"numeric"}};BU=class BU extends F0{static[P]="SQLiteNumericNumberBuilder";constructor(D){super(D,"number","SQLiteNumericNumber")}build(D){return new HU(D,this.config)}};HU=class HU extends yD{static[P]="SQLiteNumericNumber";mapFromDriverValue(D){if(typeof D==="number")return D;return Number(D)}mapToDriverValue=String;getSQLType(){return"numeric"}};WU=class WU extends F0{static[P]="SQLiteNumericBigIntBuilder";constructor(D){super(D,"bigint","SQLiteNumericBigInt")}build(D){return new VU(D,this.config)}};VU=class VU extends yD{static[P]="SQLiteNumericBigInt";mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){return"numeric"}}});function AU(D){return new QU(D??"")}var QU,_U;var YX=M(()=>{a();q8();QU=class QU extends F0{static[P]="SQLiteRealBuilder";constructor(D){super(D,"number","SQLiteReal")}build(D){return new _U(D,this.config)}};_U=class _U extends yD{static[P]="SQLiteReal";getSQLType(){return"real"}}});function T(D,$={}){let{name:F,config:X}=h2(D,$);if(X.mode==="json")return new OU(F);return new KU(F,X)}var KU,CU,OU,RU;var GX=M(()=>{a();P0();q8();KU=class KU extends F0{static[P]="SQLiteTextBuilder";constructor(D,$){super(D,"string","SQLiteText");this.config.enumValues=$.enum,this.config.length=$.length}build(D){return new CU(D,this.config)}};CU=class CU 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})`:""}`}};OU=class OU extends F0{static[P]="SQLiteTextJsonBuilder";constructor(D){super(D,"json","SQLiteTextJson")}build(D){return new RU(D,this.config)}};RU=class RU extends yD{static[P]="SQLiteTextJson";getSQLType(){return"text"}mapFromDriverValue(D){return JSON.parse(D)}mapToDriverValue(D){return JSON.stringify(D)}}});function EU(){return{blob:rV,customType:tV,integer:fD,numeric:UU,real:AU,text:T}}var ZU=M(()=>{$X();FX();XX();JX();YX();GX()});function Vj(D,$,F,X,J=D){let G=new X0(D,X,J),Y=typeof $==="function"?$(EU()):$,B=Object.fromEntries(Object.entries(Y).map(([W,U])=>{let Q=U;Q.setName(W);let _=Q.build(G);return G[BX].push(...Q.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 BX,X0,Q0=(D,$,F)=>{return Vj(D,$,F)};var Y1=M(()=>{a();U0();ZU();BX=Symbol.for("drizzle:SQLiteInlineForeignKeys");X0=class X0 extends h{static[P]="SQLiteTable";static Symbol=Object.assign({},h.Symbol,{InlineForeignKeys:BX});[h.Symbol.Columns];[BX]=[];[h.Symbol.ExtraConfigBuilder]=void 0}});var MU=()=>{};function m0(D){return new HX(D,!1)}function PU(D){return new HX(D,!0)}var HX,zU,NU;var qU=M(()=>{a();HX=class HX{constructor(D,$){this.name=D,this.unique=$}static[P]="SQLiteIndexBuilderOn";on(...D){return new zU(this.name,D,this.unique)}};zU=class zU{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 NU(this.config,D)}};NU=class NU{static[P]="SQLiteIndex";config;constructor(D,$){this.config={...D,table:$}}}});var LU=()=>{};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();U0();Y1()});var U4;var jU=M(()=>{a();t2();W6();Y1();U0();P0();V6();U4=class U4 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 Uj(D){return(D.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((F)=>F.toLowerCase()).join("_")}function Qj(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 _j(D){return D}var WX;var IU=M(()=>{a();U0();WX=class WX{static[P]="CasingCache";cache={};cachedTables={};convert;constructor(D){this.convert=D==="snake_case"?Uj:D==="camelCase"?Qj:_j}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 U6,e2,VX;var Q4=M(()=>{a();U6=class U6 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}};VX=class VX extends U6{static[P]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}});function _4(D){return Z`count(${D||Z.raw("*")})`.mapWith(Number)}var TU=M(()=>{$0()});var wU=()=>{};var SU=M(()=>{TU();wU()});var UX=M(()=>{rF();SU();$0()});var QX=M(()=>{$X();q8();FX();XX();JX();YX();GX()});var G1;var A4=M(()=>{a();$0();G1=class G1 extends y0{static[P]="SQLiteViewBase"}});var i3,n3;var K4=M(()=>{H4();IU();C2();a();Q4();c3();UX();$0();QX();Y1();O2();U0();P0();a2();A4();i3=class i3{static[P]="SQLiteDialect";casing;constructor(D){this.casing=new WX(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),U=this.buildLimit(J);return Z`${Y}delete from ${D}${H}${B}${W}${U}`}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),U=this.buildUpdateSet(D,$),Q=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 ${U}${Q}${_}${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:U,distinct:Q,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=Q?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,f=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=U?Z` offset ${U}`:void 0,UD=Z`${C}select${K} ${R} from ${z}${N}${S}${q}${f}${j}${d}${VD}`;if(_.length>0)return this.buildSetOperations(UD,_);return UD}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 U=typeof J==="object"||typeof J==="number"&&J>=0?Z` limit ${J}`:void 0,Q=Z.raw(`${$} ${F?"all ":""}`),_=Y?Z` offset ${Y}`:void 0;return Z`${B}${Q}${H}${W}${U}${_}`}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,f0)&&S.value===void 0){let f;if(N.default!==null&&N.default!==void 0)f=I(N.default,m)?N.default:Z.param(N.default,N);else if(N.defaultFn!==void 0){let L=N.defaultFn();f=I(L,m)?L:Z.param(L,N)}else if(!N.default&&N.onUpdateFn!==void 0){let L=N.onUpdateFn();f=I(L,m)?L:Z.param(L,N)}else f=Z`null`;R.push(f)}else R.push(S)}if(Y.push(R),C<O.length-1)Y.push(Z`, `)}}let U=this.buildWithCTE(J),Q=Z.join(Y),_=X?Z` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,A=F?.length?Z.join(F):void 0;return Z`${U}insert into ${D} ${W} ${Q}${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=[],U,Q,_=[],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,xV()):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:aF(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 f=typeof G.orderBy==="function"?G.orderBy(K,hV()):G.orderBy??[];if(!Array.isArray(f))f=[f];_=f.map((L)=>{if(I(L,OD))return y2(L,Y);return l3(L,Y)}),U=G.limit,Q=G.offset;for(let{tsKey:L,queryConfig:q,relation:j}of N){let d=yV($,F,j),VD=J1(j.referencedTable),UD=F[VD],$D=`${Y}_${L}`,tD=pD(...d.fields.map((wz,Sz)=>k(y2(d.references[Sz],$D),y2(wz,Y)))),S2=this.buildRelationalQuery({fullSchema:D,schema:$,tableNamesMap:F,table:D[UD],tableConfig:$[UD],queryConfig:I(j,P8)?q===!0?{limit:1}:{...q,limit:1}:q,tableAlias:$D,joinOn:tD,nestedQueryRelation:j}),Tz=Z`(${S2.sql})`.as(L);W.push({dbKey:L,tsKey:L,field:Tz,relationTableTsKey:UD,isJson:!0,selection:S2.selection})}}if(W.length===0)throw new U6({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(U!==void 0||Q!==void 0||_.length>0)C=this.buildSelectQuery({table:B4(X,Y),fields:{},fieldsFlat:[{path:[],field:Z.raw("*")}],where:A,limit:U,offset:Q,orderBy:_,setOperators:[]}),A=void 0,U=void 0,Q=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:U,offset:Q,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:U,offset:Q,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 _X;var fU=M(()=>{a();_X=class _X{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,bU,AX,Aj=()=>({union:Kj,unionAll:Cj,intersect:Oj,except:Rj}),Kj,Cj,Oj,Rj;var KX=M(()=>{a();fU();t2();W6();$0();O2();U0();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 AX({table:D,fields:F,isPartialSelect:$,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct})}};bU=class bU extends _X{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(Aj()):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}};AX=class AX extends bU{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()}};UV(AX,[M0]);Kj=C4("union",!1),Cj=C4("union",!0),Oj=C4("intersect",!1),Rj=C4("except",!1)});var s3;var CX=M(()=>{a();W6();K4();O2();KX();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,OX;var kU=M(()=>{a();t2();$0();Y1();U0();P0();V6();CX();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 f0(Y,J[G])}return X});return new OX(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 OX(this.table,$,this.session,this.dialect,this.withList,!0)}};OX=class OX 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,vU;var xU=M(()=>{a();t2();W6();Y1();O2();U0();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 vU(this.table,X4(this.table,D),this.session,this.dialect,this.withList)}};vU=class vU 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 RX=M(()=>{jU();kU();CX();KX();xU()});var r3;var hU=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 ZX,E4,EX;var gU=M(()=>{a();t2();c3();ZX=class ZX{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 EX(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 EX(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()}};EX=class EX extends E4{static[P]="SQLiteSyncRelationalQuery";sync(){return this.executeRaw()}}});var Q6;var yU=M(()=>{a();t2();Q6=class Q6 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();RX();O2();hU();gU();yU();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 ZX(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 U4(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 U4(D,this.session,this.dialect)}run(D){let $=typeof D==="string"?Z.raw(D):D.getSQL();if(this.resultKind==="async")return new Q6(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 Q6(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 Q6(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 Q6(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 uU=()=>{};async function zX(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 mU,MX;var pU=M(()=>{a();mU=class mU{static[P]="Cache"};MX=class MX extends mU{strategy(){return"all"}static[P]="NoopCache";async get(D){return}async put(D,$,F,X){}async onMutate(D){}}});var cU,NX,PX,qX;var LX=M(()=>{pU();a();Q4();t2();Z4();cU=class cU extends M0{constructor(D){super();this.resultCb=D}static[P]="ExecuteResultSync";async execute(){return this.resultCb()}sync(){return this.resultCb()}};NX=class NX{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,MX)||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 zX(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 zX(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 cU(()=>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,$)}}};PX=class PX{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 U6({cause:F,message:`Failed to run the query '${$.sql}'`})}}extractRawRunValueFromBatchResult(D){return D}all(D){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(D),void 0,"run",!1).all()}extractRawAllValueFromBatchResult(D){throw Error("Not implemented")}get(D){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(D),void 0,"run",!1).get()}extractRawGetValueFromBatchResult(D){throw Error("Not implemented")}values(D){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(D),void 0,"run",!1).values()}async count(D){return(await this.values(D))[0][0]}extractRawValuesValueFromBatchResult(D){throw Error("Not implemented")}};qX=class qX extends o3{constructor(D,$,F,X,J=0){super(D,$,F,X);this.schema=X,this.nestedIndex=J}static[P]="SQLiteTransaction";rollback(){throw new VX}}});var dU=()=>{};var M4=M(()=>{uU();MU();QX();Z4();K4();eF();qU();LU();RX();LX();Y1();DX();V6();dU()});var jX,IX,lU;var TX=M(()=>{a();e7();$0();M4();LX();P0();jX=class jX extends PX{constructor(D,$,F,X={}){super($);this.client=D,this.schema=F,this.logger=X.logger??new hF}static[P]="SQLiteBunSession";logger;exec(D){this.client.exec(D)}prepareQuery(D,$,F,X,J){let G=this.client.prepare(D.sql);return new lU(G,D,this.logger,$,F,X,J)}transaction(D,$={}){let F=new IX("sync",this.dialect,this,this.schema),X;return this.client.transaction(()=>{X=D(F)})[$.behavior??"deferred"](),X}};IX=class IX extends qX{static[P]="SQLiteBunTransaction";transaction(D){let $=`sp${this.nestedIndex}`,F=new IX("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}}};lU=class lU extends NX{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)=>lF($,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 lF(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 xF;else if($.logger!==!1)X=$.logger;let J;if($.schema){let B=gV($.schema,uV);J={fullSchema:$.schema,schema:B.tables,tableNamesMap:B.tableNamesMap}}let G=new jX(D,F,J,{logger:X}),Y=new iU("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(_V(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 iU;var nU=M(()=>{a();e7();c3();Z4();K4();P0();TX();iU=class iU extends o3{static[P]="BunSQLiteDatabase"};((D)=>{function $(F){return _6({},F)}D.mock=$})(A6||(A6={}))});var wX=M(()=>{nU();TX()});import Ej from"crypto";import SX from"fs";function sU(D){let $=D.migrationsFolder,F=[],X=`${$}/meta/_journal.json`;if(!SX.existsSync(X))throw Error("Can't find meta/_journal.json file");let J=SX.readFileSync(`${$}/meta/_journal.json`).toString(),G=JSON.parse(J);for(let Y of G.entries){let B=`${$}/${Y.tag}.sql`;try{let H=SX.readFileSync(`${$}/${Y.tag}.sql`).toString(),W=H.split("--> statement-breakpoint").map((U)=>{return U});F.push({sql:W,bps:Y.breakpoints,folderMillis:Y.when,hash:Ej.createHash("sha256").update(H).digest("hex")})}catch{throw Error(`No file ${B} found in ${$} folder`)}}return F}var rU=()=>{};function N4(D,$){let F=sU($);D.dialect.migrate(F,D.session,$)}var fX=M(()=>{rU()});var _0=M(()=>{H4();mF();C2();a();Q4();e7();t2();c3();UX();O2();U0();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 sX=M(()=>{M4();Z2=Q0("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=Q0("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=Q0("session_entries",{sessionKey:T("session_key").primaryKey(),currentConversationId:T("current_conversation_id").notNull().references(()=>p.id),channel:T("channel").$type().notNull(),chatId:T("chat_id").notNull(),threadId:T("thread_id"),accountId:T("account_id"),status:T("status",{enum:["active","closed"]}).notNull().default("active"),sessionStartedAt:T("session_started_at").notNull().$defaultFn(()=>new Date().toISOString()),lastInteractionAt:T("last_interaction_at").notNull().$defaultFn(()=>new Date().toISOString()),resetAt:T("reset_at"),resetReason:T("reset_reason"),contextTokens:fD("context_tokens").notNull().default(0),totalTokens:fD("total_tokens").notNull().default(0),totalTokensFresh:fD("total_tokens_fresh").notNull().default(0),compactionCount:fD("compaction_count").notNull().default(0),memoryFlushAt:T("memory_flush_at"),memoryFlushCompactionCount:fD("memory_flush_compaction_count").notNull().default(0),engineBindings:T("engine_bindings",{mode:"json"}).$type().notNull().$defaultFn(()=>({})),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:T("updated_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({currentConversationIdIdx:m0("session_entries_current_conversation_id_idx").on(D.currentConversationId),lastInteractionAtIdx:m0("session_entries_last_interaction_at_idx").on(D.lastInteractionAt)})),l=Q0("messages",{id:fD("id").primaryKey({autoIncrement:!0}),conversationId:T("conversation_id").notNull().references(()=>p.id,{onDelete:"cascade"}),role:T("role",{enum:["system","user","assistant","tool"]}).notNull(),content:T("content").notNull(),toolCalls:T("tool_calls",{mode:"json"}).$type(),toolCallId:T("tool_call_id"),tokensIn:fD("tokens_in"),tokensOut:fD("tokens_out"),richMetadata:T("rich_metadata"),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({conversationIdIdx:m0("messages_conversation_id_idx").on(D.conversationId)})),X8=Q0("execution_logs",{id:fD("id").primaryKey({autoIncrement:!0}),conversationId:T("conversation_id"),toolName:T("tool_name").notNull(),params:T("params",{mode:"json"}).$type(),result:T("result",{mode:"json"}).$type(),duration:fD("duration"),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({conversationIdIdx:m0("execution_logs_conversation_id_idx").on(D.conversationId)})),X9=Q0("skill_bindings",{id:fD("id").primaryKey({autoIncrement:!0}),source:T("source").$type().notNull(),brainName:T("brain_name"),skillName:T("skill_name").notNull(),enabled:fD("enabled",{mode:"boolean"}).notNull().default(!0),priority:fD("priority").notNull().default(0),config:T("config",{mode:"json"}).$type(),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:T("updated_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({uniqueBinding:PU("skill_bindings_source_brain_name_idx").on(D.source,D.brainName,D.skillName)})),L0=Q0("skill_drafts",{id:fD("id").primaryKey({autoIncrement:!0}),proposedName:T("proposed_name").notNull(),source:T("source").$type().notNull(),bodyMarkdown:T("body_markdown").notNull(),rationale:T("rationale").notNull().default(""),status:T("status").$type().notNull().default("pending"),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString()),decidedAt:T("decided_at"),decidedBy:T("decided_by")}),M2=Q0("evolution_observations",{id:fD("id").primaryKey({autoIncrement:!0}),conversationId:T("conversation_id"),kind:T("kind").notNull(),payload:T("payload",{mode:"json"}).$type().notNull(),noticedAt:T("noticed_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({noticedAtIdx:m0("evolution_observations_noticed_at_idx").on(D.noticedAt)})),c0=Q0("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=Q0("worker_config",{pk:T("pk").primaryKey().default("default"),configJson:T("config_json",{mode:"json"}).$type().notNull(),version:fD("version").notNull().default(1),updatedAt:T("updated_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedBy:T("updated_by",{enum:["bootstrap","api","cli"]})}),ID=Q0("cron_jobs",{id:T("id").primaryKey(),expression:T("expression").notNull(),prompt:T("prompt").notNull(),channel:T("channel").$type().notNull(),chatId:T("chat_id").notNull(),accountId:T("account_id").notNull(),enabled:fD("enabled",{mode:"boolean"}).notNull().default(!0),lastRunAt:T("last_run_at"),nextRunAt:T("next_run_at"),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:T("updated_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({dueIdx:m0("cron_jobs_due_idx").on(D.enabled,D.nextRunAt)})),K0=Q0("worker_secrets",{id:fD("id").primaryKey({autoIncrement:!0}),key:T("key").notNull().unique(),valueEnc:T("value_enc").notNull(),nonce:T("nonce").notNull(),authTag:T("auth_tag").notNull(),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:T("updated_at").notNull().$defaultFn(()=>new Date().toISOString())})});var XJ={};n8(XJ,{workerSecrets:()=>K0,workerSchema:()=>m4,workerIdentity:()=>c0,workerConfig:()=>z2,upsertSessionEntry:()=>eX,updateSessionEngineBinding:()=>FJ,touchSessionEntry:()=>E6,skillDrafts:()=>L0,skillBindings:()=>X9,sessionEntries:()=>WD,runWorkerMigrations:()=>G9,rotateSessionConversation:()=>DJ,recordSessionCompaction:()=>$J,messages:()=>l,listConversations:()=>aX,listConversationMessages:()=>tX,listAgentTasks:()=>oX,initWorkerDb:()=>Y9,getWorkerDb:()=>g,getSessionEntry:()=>H0,executionLogs:()=>X8,evolutionObservations:()=>M2,defaultWorkerMigrationsFolder:()=>R6,cronJobs:()=>ID,conversations:()=>p,closeWorkerDb:()=>ET,agentTasks:()=>Z2});import{existsSync as A_}from"fs";import rX from"path";import{fileURLToPath as KT}from"url";import{Database as CT}from"bun:sqlite";function OT(D){let $=rX.resolve(K_,"../../drizzle",D);if(A_($))return $;let F=rX.resolve(K_,"drizzle",D);if(A_(F))return F;return $}function RT(D){let $=new CT(D,{create:!0});return $.exec("PRAGMA journal_mode = WAL"),$.exec("PRAGMA foreign_keys = ON"),A6($,{schema:m4})}function Y9(D){return J9=RT(D),J9}function g(){if(!J9)throw Error("Worker database not initialized. Call initWorkerDb() first.");return J9}function ET(){J9=null}function G9(D=R6){N4(g(),{migrationsFolder:D})}function oX(D=200){return g().select().from(Z2).orderBy(jD(Z2.createdAt)).limit(D).all()}function aX(D=200){return g().select().from(p).orderBy(jD(p.lastActiveAt)).limit(D).all()}function tX(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 eX(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 DJ(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 $J(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 FJ(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 K_,R6,J9=null;var bD=M(()=>{_0();wX();fX();sX();sX();K_=rX.dirname(KT(import.meta.url));R6=OT("worker")});import C_ from"path";import O_ from"process";function MT(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=ZT.parse(O_.env);return p4=Object.freeze({...D,perEngineLimits:Object.freeze({...MT(O_.env)})}),p4}var ZT,p4=null,i;var c4=M(()=>{A2();cD();bD();mD();ZT=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(()=>C_.join(Q2(),"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(()=>C_.join(Q2(),"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 $=zT[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 R_(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 zT,H9;var V1=M(()=>{zT={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 JJ=M(()=>{V1();Z6={brains:[],brainWriteTarget:"",brainRetrieval:"first-match",executor:{...H9},channels:[],evolution:{enabled:!1,observationRetentionDays:7}}});async function U1(D){let $=await D.select().from(z2).where(k(z2.pk,"default")).get();if($)return{config:NT($.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 NT(D){let $=D.executor;if($&&typeof $==="object"&&"engine"in $)return D;return{...D,executor:R_($)}}var E_=M(()=>{bD();_0();V1();JJ()});import{randomBytes as PT}from"crypto";function M6(){let D=PT(32),$=`${u7}${qT(D)}`;if(!Z8($))throw Error("mintApiToken: generated token failed isWorkerApiToken check");return $}function qT(D){return D.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function Q1(D,$,F={}){let X=await D.select().from(c0).where(k(c0.pk,"default")).get();if(X){let Q=$.decryptString(X.apiTokenEnc,X.nonce,X.authTag);if(!Z8(Q))throw Error("loadOrMintIdentity: decrypted API token failed isWorkerApiToken check");return await fF(X.workerId),{workerId:X.workerId,token:Q,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),U=new Date().toISOString();return await D.insert(c0).values({pk:"default",workerId:J,apiTokenEnc:B,nonce:H,authTag:W,bootstrapShownAt:U,createdAt:U}).run(),await fF(J),{workerId:J,token:Y,justMinted:!0}}var d4;var YJ=M(()=>{A2();cD();bD();_0();d4=EF});import LT from"process";function _1(D,$,F,X,J=LT.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 Z_=M(()=>{bD();_0()});var M_=M(()=>{E_();JJ();YJ();Z_()});import{Buffer as z_}from"buffer";import{timingSafeEqual as jT}from"crypto";function u2(D,$){let F=z_.from(D,"utf8"),X=z_.from($,"utf8");if(F.length!==X.length)return!1;return jT(F,X)}var l4=()=>{};import{Buffer as N_}from"buffer";import{createDecipheriv as IT,createHash as TT}from"crypto";function ST(D,$){let F=TT("sha256").update($,"utf8").digest(),X=N_.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=IT("aes-256-cbc",F,J);return N_.concat([Y.update(G),Y.final()]).toString("utf8")}function P_(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(ST(F.encrypt,$))}return F}function fT(D){return D.type==="url_verification"||D.header?.event_type==="url_verification"}function bT(D){if(typeof D.header?.token==="string")return D.header.token;if(typeof D.token==="string")return D.token;return}async function kT(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 vT(D,$){let F=GJ.get(D);if(!F)F={},GJ.set(D,F);if(F.current&&F.current.expiresAt-Date.now()>wT)return F.current.token;if(F.inflight)return(await F.inflight).token;let X=F;return X.inflight=kT(D,$).then((J)=>{return X.current=J,J}).finally(()=>{X.inflight=void 0}),(await X.inflight).token}function xT(D){let $=typeof D.parent_id==="string"&&D.parent_id.length>0?D.parent_id:void 0;if(!$)return;return{quote:$}}function L_(){GJ.clear()}var wT=60000,GJ,q_;var BJ=M(()=>{l4();GJ=new Map;q_={channel:"lark",async verify(D,$,F){if(F.credentials.channel!=="lark")throw Error("lark adapter called with non-lark credentials");let X=P_(D,F.credentials.encryptKey),J=bT(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=P_(D,J);if(fT(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,U=H?.sender_id?.name,Q=Y.chat_type==="group"?`group:${Y.chat_id}`:`p2p:${W??""}`,_=xT(Y);return[{workerId:$,channel:"lark",accountId:X,chatId:Q,...W===void 0?{}:{userId:W},...U===void 0?{}:{userDisplayName:U},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 vT(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 j_}from"buffer";import{createHash as hT,createHmac as gT,timingSafeEqual as yT}from"crypto";function uT(D,$){return gT("sha256",D).update($,"utf8").digest("base64")}function mT(D){switch(D.type){case"user":return`user:${D.userId}`;case"group":return`group:${D.groupId}`;case"room":return`room:${D.roomId}`}}function pT(D){let $=D.message?.quotedMessageId;if(typeof $!=="string"||$.length===0)return;return{quote:$}}var I_;var T_=M(()=>{I_={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=uT(F.credentials.channelSecret,D),G=j_.from(X,"base64"),Y=j_.from(J,"base64");if(G.length!==Y.length||!yT(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=hT("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=mT(Y.source),H=Y.source.type==="user"?Y.source.userId:("userId"in Y.source)?Y.source.userId:void 0,W=pT(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 w_}from"buffer";import{createHash as cT,timingSafeEqual as dT}from"crypto";function sT(D,$){let F=w_.from(D,"utf8"),X=w_.from($,"utf8");if(F.length!==X.length)return!1;return dT(F,X)}function rT(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 oT(D,$){if(D.length<=$)return[D];let F=[],X=D;while(X.length>$){let J=-1;for(let G=$-1;G>0;G--)if(nT.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 aT(D){if(D.botUsername&&D.botUsername.length>0)return D.botUsername;return cT("sha256").update(D.botToken,"utf8").digest("hex").slice(0,16)}function tT(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 lT=4096,iT="x-telegram-bot-api-secret-token",nT,S_;var f_=M(()=>{nT=/\s/;S_={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=$[iT];if(!J||!sT(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=rT(J.from),H=Number.isFinite(J.date)?new Date(J.date*1000).toISOString():z6(),W=aT(F.credentials),U=tT(J);return[{workerId:$,channel:"telegram",accountId:W,chatId:G,...Y===void 0?{}:{userId:Y},...B===void 0?{}:{userDisplayName:B},text:J.text,...U===void 0?{}:{richMetadata:U},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=oT($.text,lT);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 U=await W.text();throw Error(`Telegram sendMessage failed: ${W.status} ${U}`)}}}}});function Dw(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 $w(D){let $=D.authorization;if(!$)return null;let F=/^bearer\s+(\S+)\s*$/i.exec($);return F?F[1]:null}var eT="default",b_;var k_=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=$w($);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:eT,J=JSON.parse(D),G=Dw(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 v_}from"buffer";import{createHmac as Fw,timingSafeEqual as Xw}from"crypto";function Yw(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 Gw(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 Jw="v21.0",x_;var h_=M(()=>{x_={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=Fw("sha256",F.credentials.appSecret).update(D,"utf8").digest("hex"),B=v_.from(G,"hex"),H=v_.from(Y,"hex");if(B.length!==H.length||!Xw(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 U of H.messages){let Q=Yw(U);if(Q===void 0)continue;let _=U.from,O=W.find((K)=>K.wa_id===_)?.profile?.name,C=Gw(U);G.push({workerId:$,channel:"whatsapp",accountId:X,chatId:_,userId:_,...O?{userDisplayName:O}:{},text:Q,...C===void 0?{}:{richMetadata:C},receivedAt:new Date(Number(U.timestamp)*1000).toISOString(),raw:U})}}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/${Jw}/${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 Bw[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 Bw;var V9=M(()=>{BJ();T_();f_();k_();h_();Bw={web:b_,line:I_,telegram:S_,lark:q_,whatsapp:x_}});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}),Hw($),$.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}),Ww(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 Hw(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 Ww(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 y_=b((g_)=>{Object.defineProperty(g_,"__esModule",{value:!0})});var T8=b((u_)=>{Object.defineProperty(u_,"__esModule",{value:!0});u_.CronField=void 0;class HJ{#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(HJ.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))}}u_.CronField=HJ});var l_=b((c_)=>{Object.defineProperty(c_,"__esModule",{value:!0});c_.CronDayOfMonth=void 0;var Vw=T8(),Uw=1,Qw=31,_w=Object.freeze(["L"]);class p_ extends Vw.CronField{static get min(){return Uw}static get max(){return Qw}static get chars(){return _w}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}}c_.CronDayOfMonth=p_});var r_=b((n_)=>{Object.defineProperty(n_,"__esModule",{value:!0});n_.CronDayOfWeek=void 0;var Aw=T8(),Kw=0,Cw=7,Ow=Object.freeze(["L"]);class i_ extends Aw.CronField{static get min(){return Kw}static get max(){return Cw}static get chars(){return Ow}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}}n_.CronDayOfWeek=i_});var e_=b((a_)=>{Object.defineProperty(a_,"__esModule",{value:!0});a_.CronHour=void 0;var Rw=T8(),Ew=0,Zw=23,Mw=Object.freeze([]);class o_ extends Rw.CronField{static get min(){return Ew}static get max(){return Zw}static get chars(){return Mw}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}a_.CronHour=o_});var XA=b(($A)=>{Object.defineProperty($A,"__esModule",{value:!0});$A.CronMinute=void 0;var zw=T8(),Nw=0,Pw=59,qw=Object.freeze([]);class DA extends zw.CronField{static get min(){return Nw}static get max(){return Pw}static get chars(){return qw}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}$A.CronMinute=DA});var uK=b((yK)=>{Object.defineProperty(yK,"__esModule",{value:!0});class b8 extends Error{}class kA extends b8{constructor(D){super(`Invalid DateTime: ${D.toMessage()}`)}}class vA extends b8{constructor(D){super(`Invalid Interval: ${D.toMessage()}`)}}class xA extends b8{constructor(D){super(`Invalid Duration: ${D.toMessage()}`)}}class O1 extends b8{}class TJ extends b8{constructor(D){super(`Invalid unit ${D}`)}}class W0 extends b8{}class B8 extends b8{constructor(){super("Zone is an abstract class")}}var u="numeric",q2="short",k0="long",D5={year:u,month:u,day:u},hA={year:u,month:q2,day:u},Lw={year:u,month:q2,day:u,weekday:q2},gA={year:u,month:k0,day:u},yA={year:u,month:k0,day:u,weekday:k0},uA={hour:u,minute:u},mA={hour:u,minute:u,second:u},pA={hour:u,minute:u,second:u,timeZoneName:q2},cA={hour:u,minute:u,second:u,timeZoneName:k0},dA={hour:u,minute:u,hourCycle:"h23"},lA={hour:u,minute:u,second:u,hourCycle:"h23"},iA={hour:u,minute:u,second:u,hourCycle:"h23",timeZoneName:q2},nA={hour:u,minute:u,second:u,hourCycle:"h23",timeZoneName:k0},sA={year:u,month:u,day:u,hour:u,minute:u},rA={year:u,month:u,day:u,hour:u,minute:u,second:u},oA={year:u,month:q2,day:u,hour:u,minute:u},aA={year:u,month:q2,day:u,hour:u,minute:u,second:u},jw={year:u,month:q2,day:u,weekday:q2,hour:u,minute:u},tA={year:u,month:k0,day:u,hour:u,minute:u,timeZoneName:q2},eA={year:u,month:k0,day:u,hour:u,minute:u,second:u,timeZoneName:q2},DK={year:u,month:k0,day:u,weekday:k0,hour:u,minute:u,timeZoneName:k0},$K={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 WJ=null;class O9 extends E1{static get instance(){if(WJ===null)WJ=new O9;return WJ}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(D,{format:$,locale:F}){return KK(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 RJ=new Map;function Iw(D){let $=RJ.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"}),RJ.set(D,$);return $}var Tw={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function ww(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,U]=X;return[Y,J,G,B,H,W,U]}function Sw(D,$){let F=D.formatToParts($),X=[];for(let J=0;J<F.length;J++){let{type:G,value:Y}=F[J],B=Tw[G];if(G==="era")X[B]=Y;else if(!t(B))X[B]=parseInt(Y,10)}return X}var VJ=new Map;class m2 extends E1{static create(D){let $=VJ.get(D);if($===void 0)VJ.set(D,$=new m2(D));return $}static resetCache(){VJ.clear(),RJ.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 KK(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=Iw(this.name),[X,J,G,Y,B,H,W]=F.formatToParts?Sw(F,$):ww(F,$);if(Y==="BC")X=-Math.abs(X)+1;let Q=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,(Q-_)/60000}equals(D){return D.type==="iana"&&D.name===this.name}get isValid(){return this.valid}}var JA={};function fw(D,$={}){let F=JSON.stringify([D,$]),X=JA[F];if(!X)X=new Intl.ListFormat(D,$),JA[F]=X;return X}var EJ=new Map;function ZJ(D,$={}){let F=JSON.stringify([D,$]),X=EJ.get(F);if(X===void 0)X=new Intl.DateTimeFormat(D,$),EJ.set(F,X);return X}var MJ=new Map;function bw(D,$={}){let F=JSON.stringify([D,$]),X=MJ.get(F);if(X===void 0)X=new Intl.NumberFormat(D,$),MJ.set(F,X);return X}var zJ=new Map;function kw(D,$={}){let{base:F,...X}=$,J=JSON.stringify([D,X]),G=zJ.get(J);if(G===void 0)G=new Intl.RelativeTimeFormat(D,$),zJ.set(J,G);return G}var Q9=null;function vw(){if(Q9)return Q9;else return Q9=new Intl.DateTimeFormat().resolvedOptions().locale,Q9}var NJ=new Map;function FK(D){let $=NJ.get(D);if($===void 0)$=new Intl.DateTimeFormat(D).resolvedOptions(),NJ.set(D,$);return $}var PJ=new Map;function xw(D){let $=PJ.get(D);if(!$){let F=new Intl.Locale(D);if($="getWeekInfo"in F?F.getWeekInfo():F.weekInfo,!("minimalDays"in $))$={...GK,...$};PJ.set(D,$)}return $}function hw(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=ZJ(D).resolvedOptions(),J=D}catch(B){let H=D.substring(0,F);X=ZJ(H).resolvedOptions(),J=H}let{numberingSystem:G,calendar:Y}=X;return[J,G,Y]}}function gw(D,$,F){if(F||$){if(!D.includes("-u-"))D+="-u";if(F)D+=`-ca-${F}`;if($)D+=`-nu-${$}`;return D}else return D}function yw(D){let $=[];for(let F=1;F<=12;F++){let X=DD.utc(2009,F,1);$.push(D(X))}return $}function uw(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 mw(D){if(D.numberingSystem&&D.numberingSystem!=="latn")return!1;else return D.numberingSystem==="latn"||!D.locale||D.locale.startsWith("en")||FK(D.locale).numberingSystem==="latn"}class XK{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=bw(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):vJ(D,3);return iD($,this.padTo)}}}class JK{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=ZJ($,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 YK{constructor(D,$,F){if(this.opts={style:"long",...F},!$&&_K())this.rtf=kw(D,F)}format(D,$){if(this.rtf)return this.rtf.format(D,$);else return HS($,D,this.opts.numeric,this.opts.style!=="long")}formatToParts(D,$){if(this.rtf)return this.rtf.formatToParts(D,$);else return[]}}var GK={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":vw()),B=$||kD.defaultNumberingSystem,H=F||kD.defaultOutputCalendar,W=LJ(X)||kD.defaultWeekSettings;return new RD(Y,B,H,W,G)}static resetCache(){Q9=null,EJ.clear(),MJ.clear(),zJ.clear(),NJ.clear(),PJ.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]=hw(D);this.locale=G,this.numberingSystem=$||Y||null,this.outputCalendar=F||B||null,this.weekSettings=X,this.intl=gw(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=mw(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,LJ(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,RK,()=>{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]=yw(G)}return this.monthsCache[J][D]})}weekdays(D,$=!1){return n4(this,D,MK,()=>{let F=$?{weekday:D,year:"numeric",month:"long",day:"numeric"}:{weekday:D},X=$?"format":"standalone";if(!this.weekdaysCache[X][D])this.weekdaysCache[X][D]=uw((J)=>this.extract(J,F,"weekday"));return this.weekdaysCache[X][D]})}meridiems(){return n4(this,void 0,()=>zK,()=>{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,NK,()=>{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 XK(this.intl,D.forceSimple||this.fastNumbers,D)}dtFormatter(D,$={}){return new JK(D,this.intl,$)}relFormatter(D={}){return new YK(this.intl,this.isEnglish(),D)}listFormatter(D={}){return fw(this.intl,D)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||FK(this.intl).locale.startsWith("en-us")}getWeekSettings(){if(this.weekSettings)return this.weekSettings;else if(!AK())return GK;else return xw(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 UJ=null;class O0 extends E1{static get utcInstance(){if(UJ===null)UJ=new O0(0);return UJ}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 wJ 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(nw(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(f8(D))return O0.instance(D);else if(typeof D==="object"&&"offset"in D&&typeof D.offset==="function")return D;else return new wJ(D)}var SJ={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"},YA={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]},pw=SJ.hanidec.replace(/[\[|\]]/g,"").split("");function cw(D){let $=parseInt(D,10);if(isNaN($)){$="";for(let F=0;F<D.length;F++){let X=D.charCodeAt(F);if(D[F].search(SJ.hanidec)!==-1)$+=pw.indexOf(D[F]);else for(let J in YA){let[G,Y]=YA[J];if(X>=G&&X<=Y)$+=X-G}}return parseInt($,10)}else return $}var qJ=new Map;function dw(){qJ.clear()}function N2({numberingSystem:D},$=""){let F=D||"latn",X=qJ.get(F);if(X===void 0)X=new Map,qJ.set(F,X);let J=X.get($);if(J===void 0)J=new RegExp(`${SJ[F]}${$}`),X.set($,J);return J}var GA=()=>Date.now(),BA="system",HA=null,WA=null,VA=null,UA=60,QA,_A=null;class kD{static get now(){return GA}static set now(D){GA=D}static set defaultZone(D){BA=D}static get defaultZone(){return S8(BA,O9.instance)}static get defaultLocale(){return HA}static set defaultLocale(D){HA=D}static get defaultNumberingSystem(){return WA}static set defaultNumberingSystem(D){WA=D}static get defaultOutputCalendar(){return VA}static set defaultOutputCalendar(D){VA=D}static get defaultWeekSettings(){return _A}static set defaultWeekSettings(D){_A=LJ(D)}static get twoDigitCutoffYear(){return UA}static set twoDigitCutoffYear(D){UA=D%100}static get throwOnInvalid(){return QA}static set throwOnInvalid(D){QA=D}static resetCaches(){RD.resetCache(),m2.resetCache(),DD.resetCache(),dw()}}class l0{constructor(D,$){this.reason=D,this.explanation=$}toMessage(){if(this.explanation)return`${this.reason}: ${this.explanation}`;else return this.reason}}var BK=[0,31,59,90,120,151,181,212,243,273,304,334],HK=[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 fJ(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 WK(D,$,F){return F+(R9(D)?HK:BK)[$-1]}function VK(D,$){let F=R9(D)?HK:BK,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=WK(X,J,G),B=bJ(fJ(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 AA(D,$=4,F=1){let{weekYear:X,weekNumber:J,weekday:G}=D,Y=bJ(fJ(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:U,day:Q}=VK(W,H);return{year:W,month:U,day:Q,...B5(D)}}function QJ(D){let{year:$,month:F,day:X}=D,J=WK($,F,X);return{year:$,ordinal:J,...B5(D)}}function KA(D){let{year:$,ordinal:F}=D,{month:X,day:J}=VK($,F);return{year:$,month:X,day:J,...B5(D)}}function CA(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 lw(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 iw(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 UK(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 f8(D){return typeof D==="number"}function J5(D){return typeof D==="number"&&D%1===0}function nw(D){return typeof D==="string"}function sw(D){return Object.prototype.toString.call(D)==="[object Date]"}function _K(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch(D){return!1}}function AK(){try{return typeof Intl<"u"&&!!Intl.Locale&&(("weekInfo"in Intl.Locale.prototype)||("getWeekInfo"in Intl.Locale.prototype))}catch(D){return!1}}function rw(D){return Array.isArray(D)?D:[D]}function OA(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 ow(D,$){return $.reduce((F,X)=>{return F[X]=D[X],F},{})}function w6(D,$){return Object.prototype.hasOwnProperty.call(D,$)}function LJ(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 aw(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 kJ(D){if(t(D)||D===null||D==="")return;else{let $=parseFloat("0."+D)*1000;return Math.floor($)}}function vJ(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=aw($-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 RA(D,$,F){return-bJ(fJ(D,1,$),F)+$-1}function C9(D,$=4,F=1){let X=RA(D,$,F),J=RA(D+1,$,F);return(I6(D)-X+J)/7}function jJ(D){if(D>99)return D;else return D>kD.twoDigitCutoffYear?1900+D:2000+D}function KK(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 CK(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)]=CK(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 ow(D,["hour","minute","second","millisecond"])}var tw=["January","February","March","April","May","June","July","August","September","October","November","December"],OK=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],ew=["J","F","M","A","M","J","J","A","S","O","N","D"];function RK(D){switch(D){case"narrow":return[...ew];case"short":return[...OK];case"long":return[...tw];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 EK=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],ZK=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],DS=["M","T","W","T","F","S","S"];function MK(D){switch(D){case"narrow":return[...DS];case"short":return[...ZK];case"long":return[...EK];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var zK=["AM","PM"],$S=["Before Christ","Anno Domini"],FS=["BC","AD"],XS=["B","A"];function NK(D){switch(D){case"narrow":return[...XS];case"short":return[...FS];case"long":return[...$S];default:return null}}function JS(D){return zK[D.hour<12?0:1]}function YS(D,$){return MK($)[D.weekday-1]}function GS(D,$){return RK($)[D.month-1]}function BS(D,$){return NK($)[D.year<0?0:1]}function HS(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 Q=D==="days";switch($){case 1:return Q?"tomorrow":`next ${J[D][0]}`;case-1:return Q?"yesterday":`last ${J[D][0]}`;case 0:return Q?"today":`this ${J[D][0]}`}}let Y=Object.is($,-0)||$<0,B=Math.abs($),H=B===1,W=J[D],U=X?H?W[1]:W[2]||W[1]:H?J[D][0]:D;return Y?`${B} ${U} ago`:`in ${B} ${U}`}function EA(D,$){let F="";for(let X of D)if(X.literal)F+=X.val;else F+=$(X.val);return F}var WS={D:D5,DD:hA,DDD:gA,DDDD:yA,t:uA,tt:mA,ttt:pA,tttt:cA,T:dA,TT:lA,TTT:iA,TTTT:nA,f:sA,ff:oA,fff:tA,ffff:DK,F:rA,FF:aA,FFF:eA,FFFF:$K};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 WS[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?JS(D):J({hour:"numeric",hourCycle:"h12"},"dayperiod"),B=(_,A)=>F?GS(D,_):J(A?{month:_}:{month:_,day:"numeric"},"month"),H=(_,A)=>F?YS(D,_):J(A?{weekday:_}:{weekday:_,month:"long",day:"numeric"},"weekday"),W=(_)=>{let A=C0.macroTokenToFormatOpts(_);if(A)return this.formatWithSystemDefault(D,A);else return _},U=(_)=>F?BS(D,_):J({era:_},"era"),Q=(_)=>{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 U("short");case"GG":return U("long");case"GGGGG":return U("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 EA(C0.parseFormat($),Q)}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,U)=>(Q)=>{let _=X(Q);if(_){let A=U.isNegativeDuration&&_!==U.largestUnit?F:1,O;if(this.opts.signMode==="negativeLargestOnly"&&_!==U.largestUnit)O="never";else if(this.opts.signMode==="all")O="always";else O="auto";return this.num(W.get(_)*A,Q.length,O)}else return Q},G=C0.parseFormat($),Y=G.reduce((W,{literal:U,val:Q})=>U?W:W.concat(Q),[]),B=D.shiftTo(...Y.map(X).filter((W)=>W)),H={isNegativeDuration:B<0,largestUnit:Object.keys(B.values)[0]};return EA(G,J(B,H))}}var PK=/[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 f6(...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 b6(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 qK(...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 LK=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,VS=`(?:${LK.source}?(?:\\[(${PK.source})\\])?)?`,xJ=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,jK=RegExp(`${xJ.source}${VS}`),hJ=RegExp(`(?:[Tt]${jK.source})?`),US=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,QS=/(\d{4})-?W(\d\d)(?:-?(\d))?/,_S=/(\d{4})-?(\d{3})/,AS=qK("weekYear","weekNumber","weekDay"),KS=qK("year","ordinal"),CS=/(\d{4})-(\d\d)-(\d\d)/,IK=RegExp(`${xJ.source} ?(?:${LK.source}|(${PK.source}))?`),OS=RegExp(`(?: ${IK.source})?`);function T6(D,$,F){let X=D[$];return t(X)?F:w8(X)}function RS(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:kJ(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 ES=RegExp(`^T?${xJ.source}$`),ZS=/^-?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 MS(D){let[$,F,X,J,G,Y,B,H,W]=D,U=$[0]==="-",Q=H&&H[0]==="-",_=(A,O=!1)=>A!==void 0&&(O||A&&U)?-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:_(kJ(W),Q)}]}var zS={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function gJ(D,$,F,X,J,G,Y){let B={year:$.length===2?jJ(w8($)):w8($),month:OK.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?EK.indexOf(D)+1:ZK.indexOf(D)+1;return B}var NS=/^(?:(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 PS(D){let[,$,F,X,J,G,Y,B,H,W,U,Q]=D,_=gJ($,J,X,F,G,Y,B),A;if(H)A=zS[H];else if(W)A=0;else A=G5(U,Q);return[_,new O0(A)]}function qS(D){return D.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var LS=/^(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$/,jS=/^(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$/,IS=/^(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 ZA(D){let[,$,F,X,J,G,Y,B]=D;return[gJ($,J,X,F,G,Y,B),O0.utcInstance]}function TS(D){let[,$,F,X,J,G,Y,B]=D;return[gJ($,B,F,X,J,G,Y),O0.utcInstance]}var wS=S6(US,hJ),SS=S6(QS,hJ),fS=S6(_S,hJ),bS=S6(jK),TK=f6(RS,k6,E9,Z9),kS=f6(AS,k6,E9,Z9),vS=f6(KS,k6,E9,Z9),xS=f6(k6,E9,Z9);function hS(D){return b6(D,[wS,TK],[SS,kS],[fS,vS],[bS,xS])}function gS(D){return b6(qS(D),[NS,PS])}function yS(D){return b6(D,[LS,ZA],[jS,ZA],[IS,TS])}function uS(D){return b6(D,[ZS,MS])}var mS=f6(k6);function pS(D){return b6(D,[ES,mS])}var cS=S6(CS,OS),dS=S6(IK),lS=f6(k6,E9,Z9);function iS(D){return b6(D,[cS,TK],[dS,lS])}var MA="Invalid Duration",wK={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}},nS={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},...wK},d0=365.2425,P6=30.436875,sS={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},...wK},R1=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],rS=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 QD(X)}function SK(D,$){var F;let X=(F=$.milliseconds)!=null?F:0;for(let J of rS.slice(1))if($[J])X+=$[J]*D[J].milliseconds;return X}function zA(D,$){let F=SK(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 NA(D){let $={};for(let[F,X]of Object.entries(D))if(X!==0)$[F]=X;return $}class QD{constructor(D){let $=D.conversionAccuracy==="longterm"||!1,F=$?sS:nS;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 QD.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 QD({values:X5(D,QD.normalizeUnit),loc:RD.fromObject($),conversionAccuracy:$.conversionAccuracy,matrix:$.matrix})}static fromDurationLike(D){if(f8(D))return QD.fromMillis(D);else if(QD.isDuration(D))return D;else if(typeof D==="object")return QD.fromObject(D);else throw new W0(`Unknown duration argument ${D} of type ${typeof D}`)}static fromISO(D,$){let[F]=uS(D);if(F)return QD.fromObject(F,$);else return QD.invalid("unparsable",`the input "${D}" can't be parsed as ISO 8601`)}static fromISOTime(D,$){let[F]=pS(D);if(F)return QD.fromObject(F,$);else return QD.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 xA(F);else return new QD({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 TJ(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):MA}toHuman(D={}){if(!this.isValid)return MA;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+=vJ(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 SK(this.matrix,this.values)}valueOf(){return this.toMillis()}plus(D){if(!this.isValid)return this;let $=QD.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 $=QD.fromDurationLike(D);return this.plus($.negate())}mapUnits(D){if(!this.isValid)return this;let $={};for(let F of Object.keys(this.values))$[F]=CK(D(this.values[F],F));return G8(this,{values:$},!0)}get(D){return this[QD.normalizeUnit(D)]}set(D){if(!this.isValid)return this;let $={...this.values,...X5(D,QD.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 zA(this.matrix,D),G8(this,{values:D},!0)}rescale(){if(!this.isValid)return this;let D=NA(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)=>QD.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(f8(X[G]))Y+=X[G];let B=Math.trunc(Y);$[G]=B,F[G]=(Y*1000-B*1000)/1000}else if(f8(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 zA(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=NA(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 oS(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 vA(F);else return new gD({invalid:F})}static fromDateTimes(D,$){let F=U9(D),X=U9($),J=oS(F,X);if(J==null)return new gD({start:F,end:X});else return J}static after(D,$){let F=QD.fromDurationLike($),X=U9(D);return gD.fromDateTimes(X,X.plus(F))}static before(D,$){let F=QD.fromDurationLike($),X=U9(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=QD.fromISO(X,$);if(H.isValid)return gD.after(J,H)}else if(B){let H=QD.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(U9).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 $=QD.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 QD.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:_K(),localeWeek:AK()}}}function PA(D,$){let F=(J)=>J.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),X=F($)-F(D);return Math.floor(QD.fromMillis(X).as("days"))}function aS(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 U=PA(H,W);return(U-U%7)/7}],["days",PA]],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 tS(D,$,F,X){let[J,G,Y,B]=aS(D,$,F),H=$-J,W=F.filter((Q)=>["hours","minutes","seconds","milliseconds"].indexOf(Q)>=0);if(W.length===0){if(Y<$)Y=J.plus({[B]:1});if(Y!==J)G[B]=(G[B]||0)+H/(Y-J)}let U=QD.fromObject(G,X);if(W.length>0)return QD.fromMillis(H,X).shiftTo(...W).plus(U);else return U}var eS="missing Intl.DateTimeFormat.formatToParts support";function KD(D,$=(F)=>F){return{regex:D,deser:([F])=>$(cw(F))}}var Df=String.fromCharCode(160),fK=`[ ${Df}]`,bK=new RegExp(fK,"g");function $f(D){return D.replace(/\./g,"\\.?").replace(bK,fK)}function qA(D){return D.replace(/\./g,"").replace(bK," ").toLowerCase()}function P2(D,$){if(D===null)return null;else return{regex:RegExp(D.map($f).join("|")),deser:([F])=>D.findIndex((X)=>qA(F)===qA(X))+$}}function LA(D,$){return{regex:D,deser:([,F,X])=>G5(F,X),groups:$}}function s4(D){return{regex:D,deser:([$])=>$}}function Ff(D){return D.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function Xf(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}"),U=N2($,"{1,9}"),Q=N2($,"{2,4}"),_=N2($,"{4,6}"),A=(K)=>({regex:RegExp(Ff(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(Q,jJ);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(U);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(Q,jJ);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 LA(new RegExp(`([+-]${B.source})(?::(${X.source}))?`),2);case"ZZZ":return LA(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:eS};return C.token=D,C}var Jf={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 Yf(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=Jf[Y];if(typeof B==="object")B=B[G];if(B)return{literal:!1,val:B};return}function Gf(D){return[`^${D.map((F)=>F.regex).reduce((F,X)=>`${F}(${X.source})`,"")}$`,D]}function Bf(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 Hf(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=kJ(D.u);return[Object.keys(D).reduce((G,Y)=>{let B=$(Y);if(B)G[B]=D[Y];return G},{}),F,X]}var _J=null;function Wf(){if(!_J)_J=DD.fromMillis(1555555555555);return _J}function Vf(D,$){if(D.literal)return D;let F=C0.macroTokenToFormatOpts(D.val),X=xK(F,$);if(X==null||X.includes(void 0))return D;return X}function kK(D,$){return Array.prototype.concat(...D.map((F)=>Vf(F,$)))}class yJ{constructor(D,$){if(this.locale=D,this.format=$,this.tokens=kK(C0.parseFormat($),D),this.units=this.tokens.map((F)=>Xf(F,D)),this.disqualifyingUnit=this.units.find((F)=>F.invalidReason),!this.disqualifyingUnit){let[F,X]=Gf(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]=Bf(D,this.regex,this.handlers),[X,J,G]=F?Hf(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 vK(D,$,F){return new yJ(D,F).explainFromTokens($)}function Uf(D,$,F){let{result:X,zone:J,specificOffset:G,invalidReason:Y}=vK(D,$,F);return[X,J,G,Y]}function xK(D,$){if(!D)return null;let X=C0.create($,D).dtFormatter(Wf()),J=X.formatToParts(),G=X.resolvedOptions();return J.map((Y)=>Yf(Y,D,G))}var AJ="Invalid DateTime",jA=8640000000000000;function _9(D){return new l0("unsupported zone",`the zone "${D.name}" is not supported`)}function KJ(D){if(D.weekData===null)D.weekData=$5(D.c);return D.weekData}function CJ(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 hK(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 hK(Y5(D),$,F)}function IA(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=QD.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]=hK(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 OJ(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 TA(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 gK={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},Qf={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},_f={ordinal:1,hour:0,minute:0,second:0,millisecond:0},t4=["year","month","day","hour","minute","second","millisecond"],Af=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],Kf=["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 TJ(D);return $}function wA(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 Cf(D){if(A9===void 0)A9=kD.now();if(D.type!=="iana")return D.offset(A9);let $=D.name,F=IJ.get($);if(F===void 0)F=D.offset(A9),IJ.set($,F);return F}function SA(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]=gK[H];let Y=UK(D)||QK(D);if(Y)return DD.invalid(Y);let B=Cf(F);[J,G]=a4(D,B,F)}else J=kD.now();return new DD({ts:J,zone:F,loc:X,o:G})}function fA(D,$,F){let X=t(F.round)?!0:F.round,J=t(F.rounding)?"trunc":F.rounding,G=(B,H)=>{return B=vJ(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,IJ=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=f8(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 SA({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,SA({year:F,month:X,day:J,hour:G,minute:Y,second:B,millisecond:H},D)}static fromJSDate(D,$={}){let F=sw(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(!f8(D))throw new W0(`fromMillis requires a numerical input, but received a ${typeof D} with value ${D}`);else if(D<-jA||D>jA)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(!f8(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,wA),{minDaysInFirstWeek:G,startOfWeek:Y}=CA(J,X),B=kD.now(),H=!t($.specificOffset)?$.specificOffset:F.offset(B),W=!t(J.ordinal),U=!t(J.year),Q=!t(J.month)||!t(J.day),_=U||Q,A=J.weekYear||J.weekNumber;if((_||W)&&A)throw new O1("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(Q&&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=Af,K=Qf,R=$5(R,G,Y);else if(W)C=Kf,K=_f,R=QJ(R);else C=t4,K=gK;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?lw(J,G,Y):W?iw(J):UK(J),S=N||QK(J);if(S)return DD.invalid(S);let f=O?AA(J,G,Y):W?KA(J):J,[L,q]=a4(f,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]=hS(D);return L6(F,X,$,"ISO 8601",D)}static fromRFC2822(D,$={}){let[F,X]=gS(D);return L6(F,X,$,"RFC 2822",D)}static fromHTTP(D,$={}){let[F,X]=yS(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]=Uf(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]=iS(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 kA(F);else return new DD({invalid:F})}static isDateTime(D){return D&&D.isLuxonDateTime||!1}static parseFormatForOpts(D,$={}){let F=xK(D,RD.fromObject($));return!F?null:F.map((X)=>X?X.val:null).join("")}static expandFormat(D,$={}){return kK(C0.parseFormat(D),RD.fromObject($)).map((X)=>X.val).join("")}static resetCache(){A9=void 0,IJ.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?KJ(this).weekYear:NaN}get weekNumber(){return this.isValid?KJ(this).weekNumber:NaN}get weekday(){return this.isValid?KJ(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?CJ(this).weekday:NaN}get localWeekNumber(){return this.isValid?CJ(this).weekNumber:NaN}get localWeekYear(){return this.isValid?CJ(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),U=r4(H,Y);if(W.hour===U.hour&&W.minute===U.minute&&W.second===U.second&&W.millisecond===U.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,wA),{minDaysInFirstWeek:F,startOfWeek:X}=CA($,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 U;if(J)U=AA({...$5(this.c,F,X),...$},F,X);else if(!t($.ordinal))U=KA({...QJ(this.c),...$});else if(U={...this.toObject(),...$},t($.day))U.day=Math.min(F5(U.year,U.month),U.day);let[Q,_]=a4(U,this.o,this.zone);return C1(this,{ts:Q,o:_})}plus(D){if(!this.isValid)return this;let $=QD.fromDurationLike(D);return C1(this,IA(this,$))}minus(D){if(!this.isValid)return this;let $=QD.fromDurationLike(D).negate();return C1(this,IA(this,$))}startOf(D,{useLocaleWeeks:$=!1}={}){if(!this.isValid)return this;let F={},X=QD.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):AJ}toLocaleString(D=D5,$={}){return this.isValid?C0.create(this.loc.clone($),D).formatDateTime(this):AJ}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=OJ(this,Y,G);if(t4.indexOf(G)>=3)B+="T";return B+=TA(this,Y,$,F,X,J,G),B}toISODate({format:D="extended",precision:$="day"}={}){if(!this.isValid)return null;return OJ(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":"")+TA(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 OJ(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():AJ}[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 QD.invalid("created by diffing an invalid DateTime");let X={locale:this.locale,numberingSystem:this.numberingSystem,...F},J=rw($).map(QD.normalizeUnit),G=D.valueOf()>this.valueOf(),Y=G?this:D,B=G?D:this,H=tS(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 fA($,this.plus(F),{...D,numeric:"always",units:X,unit:J})}toRelativeCalendar(D={}){if(!this.isValid)return null;return fA(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 OA(D,($)=>$.valueOf(),Math.min)}static max(...D){if(!D.every(DD.isDateTime))throw new W0("max requires all arguments be DateTimes");return OA(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 vK(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 yJ(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 hA}static get DATE_MED_WITH_WEEKDAY(){return Lw}static get DATE_FULL(){return gA}static get DATE_HUGE(){return yA}static get TIME_SIMPLE(){return uA}static get TIME_WITH_SECONDS(){return mA}static get TIME_WITH_SHORT_OFFSET(){return pA}static get TIME_WITH_LONG_OFFSET(){return cA}static get TIME_24_SIMPLE(){return dA}static get TIME_24_WITH_SECONDS(){return lA}static get TIME_24_WITH_SHORT_OFFSET(){return iA}static get TIME_24_WITH_LONG_OFFSET(){return nA}static get DATETIME_SHORT(){return sA}static get DATETIME_SHORT_WITH_SECONDS(){return rA}static get DATETIME_MED(){return oA}static get DATETIME_MED_WITH_SECONDS(){return aA}static get DATETIME_MED_WITH_WEEKDAY(){return jw}static get DATETIME_FULL(){return tA}static get DATETIME_FULL_WITH_SECONDS(){return eA}static get DATETIME_HUGE(){return DK}static get DATETIME_HUGE_WITH_SECONDS(){return $K}}function U9(D){if(DD.isDateTime(D))return D;else if(D&&D.valueOf&&f8(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 Of="3.7.2";yK.DateTime=DD;yK.Duration=QD;yK.FixedOffsetZone=O0;yK.IANAZone=m2;yK.Info=j6;yK.Interval=gD;yK.InvalidZone=wJ;yK.Settings=kD;yK.SystemZone=O9;yK.VERSION=Of;yK.Zone=E1});var W5=b((mK)=>{Object.defineProperty(mK,"__esModule",{value:!0});mK.CronDate=mK.DAYS_IN_MONTH=mK.DateMathOp=mK.TimeUnit=void 0;var Z1=uK(),R0;(function(D){D.Second="Second",D.Minute="Minute",D.Hour="Hour",D.Day="Day",D.Month="Month",D.Year="Year"})(R0||(mK.TimeUnit=R0={}));var H5;(function(D){D.Add="Add",D.Subtract="Subtract"})(H5||(mK.DateMathOp=H5={}));mK.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===mK.DAYS_IN_MONTH[$-1]-(F?0:1)}return D===mK.DAYS_IN_MONTH[$-1]}isLastWeekdayOfMonth(){let{day:D,month:$}=this.#D,F;if($===2)F=mK.DAYS_IN_MONTH[$-1]-(v6.#J(this.#D.year)?0:1);else F=mK.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()}}mK.CronDate=v6;mK.default=v6});var iK=b((dK)=>{Object.defineProperty(dK,"__esModule",{value:!0});dK.CronMonth=void 0;var ff=W5(),bf=T8(),kf=1,vf=12,xf=Object.freeze([]);class cK extends bf.CronField{static get min(){return kf}static get max(){return vf}static get chars(){return xf}static get daysInMonth(){return ff.DAYS_IN_MONTH}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}dK.CronMonth=cK});var oK=b((sK)=>{Object.defineProperty(sK,"__esModule",{value:!0});sK.CronSecond=void 0;var hf=T8(),gf=0,yf=59,uf=Object.freeze([]);class nK extends hf.CronField{static get min(){return gf}static get max(){return yf}static get chars(){return uf}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}sK.CronSecond=nK});var V5=b((j0)=>{var mf=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))mf($,D,F)};Object.defineProperty(j0,"__esModule",{value:!0});k8(y_(),j0);k8(l_(),j0);k8(r_(),j0);k8(T8(),j0);k8(e_(),j0);k8(XA(),j0);k8(iK(),j0);k8(oK(),j0)});var uJ=b((aK)=>{Object.defineProperty(aK,"__esModule",{value:!0});aK.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()}}}aK.CronFieldCollection=x6});var pJ=b((DC)=>{Object.defineProperty(DC,"__esModule",{value:!0});DC.CronExpression=DC.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE=DC.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE=void 0;var uD=W5();DC.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE="Out of the time span range";DC.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE="Invalid expression, loop limit exceeded";var eK=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]}#U(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}#Q(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.#U(D)){let U=F?G-W:W-G;for(let Q=0;Q<U;Q++)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(DC.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE);if(this.#J&&$>this.#J.getTime())throw Error(DC.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<eK){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.#Q(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>eK)throw Error(DC.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()}}}}}DC.CronExpression=r0;DC.default=r0});var JC=b((XC)=>{Object.defineProperty(XC,"__esModule",{value:!0});XC.seededRandom=lf;function cf(D){let $=2166136261;for(let F=0;F<D.length;F++)$^=D.charCodeAt(F),$=Math.imul($,16777619);return()=>$>>>0}function df(D){return()=>{let $=D+=1831565813;return $=Math.imul($^$>>>15,$|1),$^=$+Math.imul($^$>>>7,$|61),(($^$>>>14)>>>0)/4294967296}}function lf(D){let $=D?cf(D)():Math.floor(Math.random()*10000000000);return df($)}});var U5=b((YC)=>{Object.defineProperty(YC,"__esModule",{value:!0});YC.CronExpressionParser=YC.DayOfWeek=YC.Months=YC.CronUnit=YC.PredefinedExpressions=void 0;var sf=uJ(),rf=pJ(),of=JC(),o0=V5(),cJ;(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"})(cJ||(YC.PredefinedExpressions=cJ={}));var a0;(function(D){D.Second="Second",D.Minute="Minute",D.Hour="Hour",D.DayOfMonth="DayOfMonth",D.Month="Month",D.DayOfWeek="DayOfWeek"})(a0||(YC.CronUnit=a0={}));var dJ;(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"})(dJ||(YC.Months=dJ={}));var lJ;(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"})(lJ||(YC.DayOfWeek=lJ={}));class I0{static parse(D,$={}){let{strict:F=!1,hashSeed:X}=$,J=(0,of.seededRandom)(X);D=cJ[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),U=I0.#$(a0.DayOfMonth,G.dayOfMonth,o0.CronDayOfMonth.constraints,J),{dayOfWeek:Q,nthDayOfWeek:_}=I0.#U(G.dayOfWeek),A=I0.#$(a0.DayOfWeek,Q,o0.CronDayOfWeek.constraints,J),O=new sf.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(U,{rawValue:G.dayOfMonth}),month:new o0.CronMonth(W,{rawValue:G.month}),dayOfWeek:new o0.CronDayOfWeek(A,{rawValue:G.dayOfWeek,nthDayOfWeek:_})});return new rf.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=dJ[J]||lJ[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),U=parseInt(B,10);if(H>W)throw Error(`Invalid range: ${H}-${W}, min > max`);if(U<=0)throw Error(`Invalid step: ${U}, must be positive`);let Q=Math.max(H,$.min),_=Math.floor(X*U),A=[];for(let O=Math.floor(Q/U)*U+_;O<=W;O+=U)if(O>=Q)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),U=[];for(let Q=Math.floor($.min/H)*H+W;Q<=$.max;Q+=H)if(Q>=$.min)U.push(Q);return U.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.#Q(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#U(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#Q(D,$){return D.chars.some((F)=>$.toString().includes(F))}}YC.CronExpressionParser=I0});var BC=b((p2)=>{var $b=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]}),Fb=p2&&p2.__setModuleDefault||(Object.create?function(D,$){Object.defineProperty(D,"default",{enumerable:!0,value:$})}:function(D,$){D.default=$}),Xb=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")$b(F,$,X[J])}return Fb(F,$),F}}();Object.defineProperty(p2,"__esModule",{value:!0});p2.CronFileParser=void 0;var Jb=U5();class z9{static async parseFile(D){let{readFile:$}=await Promise.resolve().then(()=>Xb(U8("fs/promises"))),F=await $(D,"utf8");return z9.#D(F)}static parseFileSync(D){let{readFileSync:$}=U8("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:Jb.CronExpressionParser.parse($.slice(0,5).join(" ")),command:$.slice(5,$.length)}}}p2.CronFileParser=z9});var HC=b((J0)=>{var Yb=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]}),Gb=J0&&J0.__exportStar||function(D,$){for(var F in D)if(F!=="default"&&!Object.prototype.hasOwnProperty.call($,F))Yb($,D,F)};Object.defineProperty(J0,"__esModule",{value:!0});J0.CronFileParser=J0.CronExpressionParser=J0.CronExpression=J0.CronFieldCollection=J0.CronDate=void 0;var Bb=U5(),Hb=W5();Object.defineProperty(J0,"CronDate",{enumerable:!0,get:function(){return Hb.CronDate}});var Wb=uJ();Object.defineProperty(J0,"CronFieldCollection",{enumerable:!0,get:function(){return Wb.CronFieldCollection}});var Vb=pJ();Object.defineProperty(J0,"CronExpression",{enumerable:!0,get:function(){return Vb.CronExpression}});var Ub=U5();Object.defineProperty(J0,"CronExpressionParser",{enumerable:!0,get:function(){return Ub.CronExpressionParser}});var Qb=BC();Object.defineProperty(J0,"CronFileParser",{enumerable:!0,get:function(){return Qb.CronFileParser}});Gb(V5(),J0);J0.default=Bb.CronExpressionParser});class N9{deps;handle=null;ticking=!1;constructor(D){this.deps=D}start(D=_b){if(this.handle!==null)return;this.handle=setInterval(()=>{this.tick().catch(($)=>E.warn(`[cron ${this.deps.workerId}] tick failed: ${String($)}`))},D)}stop(){if(this.handle===null)return;clearInterval(this.handle),this.handle=null}async addJob(D){let $=Q5(D.expression,new Date),F=crypto.randomUUID(),X=new Date().toISOString(),J=D.enabled??!0,G=D.accountId??Ab;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)Q5($.expression,new Date),X.expression=$.expression,J=!0;if($.prompt!==void 0)X.prompt=$.prompt;if($.channel!==void 0)X.channel=$.channel;if($.chatId!==void 0)X.chatId=$.chatId;if($.accountId!==void 0){if($.accountId.length===0)throw Error("cron job accountId \u4E0D\u80FD\u4E3A\u7A7A\u5B57\u7B26\u4E32");X.accountId=$.accountId}if($.enabled!==void 0)X.enabled=$.enabled,J=!0;if(J){let Y=$.enabled??F.enabled,B=$.expression??F.expression;X.nextRunAt=Y?Q5(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=Q5(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 Q5(D,$){return WC.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 WC,_b=60000,Ab="sys:cron";var iJ=M(()=>{bD();JD();_0();WC=yz(HC(),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 nJ=M(()=>{JD()});import QC from"fs/promises";import Kb from"os";import t0 from"path";import A5 from"process";function AC(D=_C){let $=new Map;async function F(H){let W=new Date(D.now()).toISOString(),U=await D.resolveBinary(H.binaryName),Q={kind:H.kind,status:"not-found",checkedAt:W};if(H.agent)Q.agent=H.agent;if(!U)return{...Q,authHint:"binary-not-on-path"};let _=D.homedir();for(let A of H.authPaths(_))if(await D.pathExists(A))return{...Q,status:"ready",binaryPath:U,authHint:"auth-file-present"};return{...Q,status:"login-required",binaryPath:U,authHint:"auth-file-missing"}}async function X(H,W){let U=$.get(H.key);if(!W&&U&&U.expiresAt>D.now())return U.value;let Q=await F(H);return $.set(H.key,{value:Q,expiresAt:D.now()+Cb}),Q}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,U=[];for(let Q of VC)U.push(J(Q));for(let Q of UC)U.push(await X(Q,W));return U}async function Y(H,W={}){let U=W.refresh??!1;if(VC.includes(H))return J(H);let Q=UC.filter((A)=>A.kind===H);if(Q.length===0)return{kind:H,status:"not-found",checkedAt:new Date(D.now()).toISOString(),authHint:"unknown-engine"};let _=W.agent?Q.find((A)=>A.agent===W.agent)??Q[0]:Q[0];return X(_,U)}function B(){$.clear()}return{probe:Y,probeAll:G,clearCache:B}}function h6(){if(!q9)q9=AC();return q9}function KC(D){return q9=AC(D),q9}function sJ(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 CC(D,$=_C){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 sJ("login","oauth_creds.json present");if(await $.pathExists(G))return sJ("install","settings.json present, login pending");return sJ("none",`~/${X} not present`)}function OC(){return CC("gemini")}function RC(){return CC("qwen")}async function Ob(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 Rb(D){try{return await QC.stat(D),!0}catch{return!1}}var Cb=600000,_C,VC,UC,q9=null;var K5=M(()=>{_C={resolveBinary:Ob,pathExists:Rb,homedir:()=>Kb.homedir(),now:()=>Date.now()},VC=["http","mcp","cli"],UC=[{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 rJ{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!==Eb){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 Eb=1;var EC=M(()=>{D0();JD()});function ZC(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=b((jb)=>{var oJ=Symbol.for("yaml.alias"),MC=Symbol.for("yaml.document"),C5=Symbol.for("yaml.map"),zC=Symbol.for("yaml.pair"),aJ=Symbol.for("yaml.scalar"),O5=Symbol.for("yaml.seq"),H8=Symbol.for("yaml.node.type"),Zb=(D)=>!!D&&typeof D==="object"&&D[H8]===oJ,Mb=(D)=>!!D&&typeof D==="object"&&D[H8]===MC,zb=(D)=>!!D&&typeof D==="object"&&D[H8]===C5,Nb=(D)=>!!D&&typeof D==="object"&&D[H8]===zC,NC=(D)=>!!D&&typeof D==="object"&&D[H8]===aJ,Pb=(D)=>!!D&&typeof D==="object"&&D[H8]===O5;function PC(D){if(D&&typeof D==="object")switch(D[H8]){case C5:case O5:return!0}return!1}function qb(D){if(D&&typeof D==="object")switch(D[H8]){case oJ:case C5:case aJ:case O5:return!0}return!1}var Lb=(D)=>(NC(D)||PC(D))&&!!D.anchor;jb.ALIAS=oJ;jb.DOC=MC;jb.MAP=C5;jb.NODE_TYPE=H8;jb.PAIR=zC;jb.SCALAR=aJ;jb.SEQ=O5;jb.hasAnchor=Lb;jb.isAlias=Zb;jb.isCollection=PC;jb.isDocument=Mb;jb.isMap=zb;jb.isNode=qb;jb.isPair=Nb;jb.isScalar=NC;jb.isSeq=Pb});var L9=b((db)=>{var aD=_D(),T0=Symbol("break visit"),qC=Symbol("skip children"),c2=Symbol("remove node");function R5(D,$){let F=LC($);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=qC;R5.REMOVE=c2;function g6(D,$,F,X){let J=jC(D,$,F,X);if(aD.isNode(J)||aD.isPair(J))return IC(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=LC($);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=qC;E5.REMOVE=c2;async function y6(D,$,F,X){let J=await jC(D,$,F,X);if(aD.isNode(J)||aD.isPair(J))return IC(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 LC(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 jC(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 IC(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`)}}db.visit=R5;db.visitAsync=E5});var tJ=b((ob)=>{var TC=_D(),nb=L9(),sb={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},rb=(D)=>D.replace(/[!,[\]{}]/g,($)=>sb[$]);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 $+rb(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&&TC.isNode(D.contents)){let J={};nb.visit(D.contents,(G,Y)=>{if(TC.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:"};ob.Directives=e0});var Z5=b(($k)=>{var wC=_D(),tb=L9();function eb(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 SC(D){let $=new Set;return tb.visit(D,{Value(F,X){if(X.anchor)$.add(X.anchor)}}),$}function fC(D,$){for(let F=1;;++F){let X=`${D}${F}`;if(!$.has(X))return X}}function Dk(D,$){let F=[],X=new Map,J=null;return{onAnchor:(G)=>{F.push(G),J??(J=SC(D));let Y=fC($,J);return J.add(Y),Y},setAnchors:()=>{for(let G of F){let Y=X.get(G);if(typeof Y==="object"&&Y.anchor&&(wC.isScalar(Y.node)||wC.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}}$k.anchorIsValid=eb;$k.anchorNames=SC;$k.createNodeAnchors=Dk;$k.findNewAnchor=fC});var eJ=b((Gk)=>{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)}Gk.applyReviver=j9});var v8=b((Wk)=>{var Hk=_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||!Hk.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}Wk.toJS=bC});var M5=b((_k)=>{var Uk=eJ(),kC=_D(),Qk=v8();class vC{constructor(D){Object.defineProperty(this,kC.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(!kC.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=Qk.toJS(this,"",G);if(typeof X==="function")for(let{count:B,res:H}of G.anchors.values())X(H,B);return typeof J==="function"?Uk.applyReviver(J,{"":Y},"",Y):Y}}_k.NodeBase=vC});var I9=b((Ek)=>{var Kk=Z5(),Ck=L9(),u6=_D(),Ok=M5(),Rk=v8();class xC extends Ok.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=[],Ck.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)Rk.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(Kk.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}Ek.Alias=xC});var nD=b((qk)=>{var Mk=_D(),zk=M5(),Nk=v8(),Pk=(D)=>!D||typeof D!=="function"&&typeof D!=="object";class M1 extends zk.NodeBase{constructor(D){super(Mk.SCALAR);this.value=D}toJSON(D,$){return $?.keep?this.value:Nk.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";qk.Scalar=M1;qk.isScalarValue=Pk});var T9=b((fk)=>{var Ik=I9(),z1=_D(),hC=nD(),Tk="tag:yaml.org,2002:";function wk(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 Sk(D,$,F){if(z1.isDocument(D))D=D.contents;if(z1.isNode(D))return D;if(z1.isPair(D)){let Q=F.schema[z1.MAP].createNode?.(F.schema,null,F);return Q.items.push(D),Q}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 Ik.Alias(H.anchor);else H={anchor:null,node:null},B.set(D,H);if($?.startsWith("!!"))$=Tk+$.slice(2);let W=wk(D,$,Y.tags);if(!W){if(D&&typeof D.toJSON==="function")D=D.toJSON();if(!D||typeof D!=="object"){let Q=new hC.Scalar(D);if(H)H.node=Q;return Q}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 U=W?.createNode?W.createNode(F.schema,D,F):typeof W?.nodeClass?.from==="function"?W.nodeClass.from(F.schema,D,F):new hC.Scalar(D);if($)U.tag=$;else if(!W.default)U.tag=W.tag;if(H)H.node=U;return U}fk.createNode=Sk});var N5=b((xk)=>{var kk=T9(),d2=_D(),vk=M5();function DY(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 kk.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 gC=(D)=>D==null||typeof D==="object"&&!!D[Symbol.iterator]().next().done;class yC extends vk.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(gC(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,DY(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,DY(this.schema,X,$));else throw Error(`Expected YAML collection at ${F}. Remaining path: ${X}`)}}}xk.Collection=yC;xk.collectionFromPath=DY;xk.isEmptyPath=gC});var w9=b((pk)=>{var uk=(D)=>D.replace(/^(?!$)(?: $)?/gm,"#");function $Y(D,$){if(/^\n+$/.test(D))return D.substring(1);return $?D.replace(/^(?! *$)/gm,$):D}var mk=(D,$,F)=>D.endsWith(`
|
|
124
|
+
`)?$Y(F,$):F.includes(`
|
|
125
|
+
`)?`
|
|
126
|
+
`+$Y(F,$):(D.endsWith(" ")?"":" ")+F;pk.indentComment=$Y;pk.lineComment=mk;pk.stringifyComment=uk});var mC=b((nk)=>{function ik(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=[],U={},Q=J-$.length;if(typeof X==="number")if(X>J-Math.max(2,G))W.push(0);else Q=J-X;let _=void 0,A=void 0,O=!1,C=-1,K=-1,R=-1;if(F==="block"){if(C=uC(D,C,$.length),C!==-1)Q=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=uC(D,C,$.length);Q=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>=Q)if(_)W.push(_),Q=_+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(U[S])return D;W.push(S),U[S]=!0,Q=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],f=W[N+1]||D.length;if(S===0)z=`
|
|
130
|
+
${$}${D.slice(0,f)}`;else{if(F==="quoted"&&U[S])z+=`${D[S]}\\`;z+=`
|
|
131
|
+
${$}${D.slice(S+1,f)}`}}return z}function uC(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}nk.FOLD_BLOCK="block";nk.FOLD_FLOW="flow";nk.FOLD_QUOTED="quoted";nk.foldFlowLines=ik});var f9=b(($v)=>{var L2=nD(),x8=mC(),q5=(D,$)=>({indentAtStart:$?D.indent.length:D.indentAtStart,lineWidth:D.options.lineWidth,minContentWidth:D.options.minContentWidth}),L5=(D)=>/^(%|---|\.\.\.)/m.test(D);function tk(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 U=F.substr(H+2,4);switch(U){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(U.substr(0,2)==="00")Y+="\\x"+U.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 FY(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=FY;else if(G&&!J)X=S9;else X=F?FY:S9}return X(D,$)}var XY;try{XY=new RegExp(`(^|(?<!
|
|
139
|
+
))
|
|
140
|
+
+(?!
|
|
141
|
+
|$)`,"g")}catch{XY=/\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)?" ":""),U=Y==="literal"?!0:Y==="folded"||$===L2.Scalar.BLOCK_FOLDED?!1:$===L2.Scalar.BLOCK_LITERAL?!0:!tk(F,H,W.length);if(!F)return U?`|
|
|
142
|
+
`:`>
|
|
143
|
+
`;let Q,_;for(_=F.length;_>0;--_){let f=F[_-1];if(f!==`
|
|
144
|
+
`&&f!=="\t"&&f!==" ")break}let A=F.substring(_),O=A.indexOf(`
|
|
145
|
+
`);if(O===-1)Q="-";else if(F===A||O!==A.length-1){if(Q="+",G)G()}else Q="";if(A){if(F=F.slice(0,-A.length),A[A.length-1]===`
|
|
146
|
+
`)A=A.slice(0,-1);A=A.replace(XY,`$&${W}`)}let C=!1,K,R=-1;for(K=0;K<F.length;++K){let f=F[K];if(f===" ")C=!0;else if(f===`
|
|
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":"")+Q;if(D){if(S+=" "+B(D.replace(/ ?[\r\n]+/g," ")),J)J()}if(!U){let f=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}${f}${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 ek(D,$,F,X){let{type:J,value:G}=D,{actualString:Y,implicitKey:B,indent:H,indentStep:W,inFlow:U}=$;if(B&&G.includes(`
|
|
151
|
+
`)||U&&/[[\]{},]/.test(G))return m6(G,$);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(G))return B||U||!G.includes(`
|
|
152
|
+
`)?m6(G,$):P5(D,$,F,X);if(!B&&!U&&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 Q=G.replace(/\n+/g,`$&
|
|
154
|
+
${H}`);if(Y){let _=(C)=>C.default&&C.tag!=="tag:yaml.org,2002:str"&&C.test?.test(Q),{compat:A,tags:O}=$.doc.schema;if(O.some(_)||A?.some(_))return m6(G,$)}return B?Q:x8.foldFlowLines(Q,H,x8.FOLD_FLOW,q5($,!1))}function Dv(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=(U)=>{switch(U){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 FY(Y.value,$);case L2.Scalar.PLAIN:return ek(Y,$,F,X);default:return null}},W=H(B);if(W===null){let{defaultKeyType:U,defaultStringType:Q}=$.options,_=J&&U||Q;if(W=H(_),W===null)throw Error(`Unsupported default string type ${_}`)}return W}$v.stringifyString=Dv});var b9=b((Vv)=>{var Xv=Z5(),h8=_D(),Jv=w9(),Yv=f9();function Gv(D,$){let F=Object.assign({blockQuote:!0,commentString:Jv.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 Bv(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 Hv(D,$,{anchors:F,doc:X}){if(!X.directives)return"";let J=[],G=(h8.isScalar(D)||h8.isCollection(D))&&D.anchor;if(G&&Xv.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 Wv(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=Bv($.doc.schema.tags,G));let Y=Hv(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)?Yv.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}`}Vv.createStringifyContext=Gv;Vv.stringify=Wv});var dC=b((Av)=>{var W8=_D(),pC=nD(),cC=b9(),k9=w9();function _v({key:D,value:$},F,X,J){let{allNullValues:G,doc:Y,indent:B,indentStep:H,options:{commentString:W,indentSeq:U,simpleKeys:Q}}=F,_=W8.isNode(D)&&D.comment||null;if(Q){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=!Q&&(!D||_&&$==null&&!F.inFlow||W8.isCollection(D)||(W8.isScalar(D)?D.type===pC.Scalar.BLOCK_FOLDED||D.type===pC.Scalar.BLOCK_LITERAL:typeof D==="object"));F=Object.assign({},F,{allNullValues:!1,implicitKey:!A&&(Q||!G),indent:B+H});let O=!1,C=!1,K=cC.stringify(D,F,()=>O=!0,()=>C=!0);if(!A&&!F.inFlow&&K.length>1024){if(Q)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&&!Q||$==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,!U&&H.length>=2&&!F.inFlow&&!A&&W8.isSeq($)&&!$.flow&&!$.tag&&!$.anchor)F.indent=F.indent.substring(2);let S=!1,f=cC.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(f===""&&!F.inFlow){if(L===`
|
|
159
|
+
`&&N)L=`
|
|
160
|
+
|
|
161
|
+
`}else L+=`
|
|
162
|
+
${F.indent}`}else if(!A&&W8.isCollection($)){let q=f[0],j=f.indexOf(`
|
|
163
|
+
`),d=j!==-1,VD=F.inFlow??$.flow??$.items.length===0;if(d||!VD){let UD=!1;if(d&&(q==="&"||q==="!")){let $D=f.indexOf(" ");if(q==="&"&&$D!==-1&&$D<j&&f[$D+1]==="!")$D=f.indexOf(" ",$D+1);if($D===-1||j<$D)UD=!0}if(!UD)L=`
|
|
164
|
+
${F.indent}`}}else if(f===""||f[0]===`
|
|
165
|
+
`)L="";if(K+=L+f,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}Av.stringifyPair=_v});var JY=b((Rv)=>{var lC=U8("process");function Cv(D,...$){if(D==="debug")console.log(...$)}function Ov(D,$){if(D==="debug"||D==="warn")if(typeof lC.emitWarning==="function")lC.emitWarning($);else console.warn($)}Rv.debug=Cv;Rv.warn=Ov});var T5=b((zv)=>{var v9=_D(),iC=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 iC.Scalar(Symbol(j5)),{addToJSMap:nC}),stringify:()=>j5},Mv=(D,$)=>(I5.identify($)||v9.isScalar($)&&(!$.type||$.type===iC.Scalar.PLAIN)&&I5.identify($.value))&&D?.doc.schema.tags.some((F)=>F.tag===I5.tag&&F.default);function nC(D,$,F){if(F=D&&v9.isAlias(F)?F.resolve(D.doc):F,v9.isSeq(F))for(let X of F.items)YY(D,$,X);else if(Array.isArray(F))for(let X of F)YY(D,$,X);else YY(D,$,F)}function YY(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 $}zv.addMergeToJSMap=nC;zv.isMergeKey=Mv;zv.merge=I5});var BY=b((wv)=>{var Lv=JY(),sC=T5(),jv=b9(),rC=_D(),GY=v8();function Iv(D,$,{key:F,value:X}){if(rC.isNode(F)&&F.addToJSMap)F.addToJSMap(D,$,X);else if(sC.isMergeKey(D,F))sC.addMergeToJSMap(D,$,X);else{let J=GY.toJS(F,"",D);if($ instanceof Map)$.set(J,GY.toJS(X,J,D));else if($ instanceof Set)$.add(J);else{let G=Tv(F,J,D),Y=GY.toJS(X,G,D);if(G in $)Object.defineProperty($,G,{value:Y,writable:!0,enumerable:!0,configurable:!0});else $[G]=Y}}return $}function Tv(D,$,F){if($===null)return"";if(typeof $!=="object")return String($);if(rC.isNode(D)&&F?.doc){let X=jv.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)+'..."';Lv.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($)}wv.addPairToJSMap=Iv});var g8=b((vv)=>{var oC=T9(),fv=dC(),bv=BY(),w5=_D();function kv(D,$,F){let X=oC.createNode(D,void 0,F),J=oC.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 bv.addPairToJSMap($,F,this)}toString(D,$,F){return D?.doc?fv.stringifyPair(this,D,$,F):JSON.stringify(this)}}vv.Pair=S5;vv.createPair=kv});var HY=b((mv)=>{var N1=_D(),aC=b9(),f5=w9();function gv(D,$,F){return($.inFlow??D.flow?uv:yv)(D,$,F)}function yv({comment:D,items:$},F,{blockItemPrefix:X,flowChars:J,itemIndent:G,onChompKeep:Y,onComment:B}){let{indent:H,options:{commentString:W}}=F,U=Object.assign({},F,{indent:G,type:null}),Q=!1,_=[];for(let O=0;O<$.length;++O){let C=$[O],K=null;if(N1.isNode(C)){if(!Q&&C.spaceBefore)_.push("");if(b5(F,_,C.commentBefore,Q),C.comment)K=C.comment}else if(N1.isPair(C)){let z=N1.isNode(C.key)?C.key:null;if(z){if(!Q&&z.spaceBefore)_.push("");b5(F,_,z.commentBefore,Q)}}Q=!1;let R=aC.stringify(C,U,()=>K=null,()=>Q=!0);if(K)R+=f5.lineComment(R,G,W(K));if(Q&&K)Q=!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
|
+
`+f5.indentComment(W(D),H),B)B()}else if(Q&&Y)Y();return A}function uv({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,U=0,Q=[];for(let O=0;O<D.length;++O){let C=D[O],K=null;if(N1.isNode(C)){if(C.spaceBefore)Q.push("");if(b5($,Q,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)Q.push("");if(b5($,Q,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=aC.stringify(C,H,()=>K=null);if(W||(W=Q.length>U||R.includes(`
|
|
169
|
+
`)),O<D.length-1)R+=",";else if($.options.trailingComma){if($.options.lineWidth>0)W||(W=Q.reduce((z,N)=>z+N.length+2,2)+(R.length+2)>$.options.lineWidth);if(W)R+=","}if(K)R+=f5.lineComment(R,X,B(K));Q.push(R),U=Q.length}let{start:_,end:A}=F;if(Q.length===0)return _+A;else{if(!W){let O=Q.reduce((C,K)=>C+K.length+2,2);W=$.options.lineWidth>0&&O>$.options.lineWidth}if(W){let O=_;for(let C of Q)O+=C?`
|
|
170
|
+
${G}${J}${C}`:`
|
|
171
|
+
`;return`${O}
|
|
172
|
+
${J}${A}`}else return`${_}${Y}${Q.join(" ")}${Y}${A}`}}function b5({indent:D,options:{commentString:$}},F,X,J){if(X&&J)X=X.replace(/^\n+/,"");if(X){let G=f5.indentComment($(X),D);F.push(G.trimStart())}}mv.stringifyCollection=gv});var u8=b((nv)=>{var cv=HY(),dv=BY(),lv=N5(),y8=_D(),k5=g8(),iv=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 tC extends lv.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)&&iv.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)dv.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 cv.stringifyCollection(this,D,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:D.indent||"",onChompKeep:F,onComment:$})}}nv.YAMLMap=tC;nv.findPair=x9});var p6=b((tv)=>{var ov=_D(),eC=u8(),av={collection:"map",default:!0,nodeClass:eC.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(D,$){if(!ov.isMap(D))$("Expected a mapping for this tag");return D},createNode:(D,$,F)=>eC.YAMLMap.from(D,$,F)};tv.map=av});var m8=b((Yx)=>{var Dx=T9(),$x=HY(),Fx=N5(),x5=_D(),Xx=nD(),Jx=v8();class DO extends Fx.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)&&Xx.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(Jx.toJS(J,String(X++),$));return F}toString(D,$,F){if(!D)return JSON.stringify(this);return $x.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(Dx.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}Yx.YAMLSeq=DO});var c6=b((Wx)=>{var Bx=_D(),$O=m8(),Hx={collection:"seq",default:!0,nodeClass:$O.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(D,$){if(!Bx.isSeq(D))$("Expected a sequence for this tag");return D},createNode:(D,$,F)=>$O.YAMLSeq.from(D,$,F)};Wx.seq=Hx});var h9=b((_x)=>{var Ux=f9(),Qx={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},$),Ux.stringifyString(D,$,F,X)}};_x.string=Qx});var h5=b((Kx)=>{var FO=nD(),XO={identify:(D)=>D==null,createNode:()=>new FO.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new FO.Scalar(null),stringify:({source:D},$)=>typeof D==="string"&&XO.test.test(D)?D:$.options.nullStr};Kx.nullTag=XO});var WY=b((Rx)=>{var Ox=nD(),JO={identify:(D)=>typeof D==="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:(D)=>new Ox.Scalar(D[0]==="t"||D[0]==="T"),stringify({source:D,value:$},F){if(D&&JO.test.test(D)){let X=D[0]==="t"||D[0]==="T";if($===X)return D}return $?F.options.trueStr:F.options.falseStr}};Rx.boolTag=JO});var d6=b((Mx)=>{function Zx({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}Mx.stringifyNumber=Zx});var UY=b((jx)=>{var Nx=nD(),VY=d6(),Px={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:VY.stringifyNumber},qx={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():VY.stringifyNumber(D)}},Lx={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(D){let $=new Nx.Scalar(parseFloat(D)),F=D.indexOf(".");if(F!==-1&&D[D.length-1]==="0")$.minFractionDigits=D.length-F-1;return $},stringify:VY.stringifyNumber};jx.float=Lx;jx.floatExp=qx;jx.floatNaN=Px});var _Y=b((kx)=>{var YO=d6(),g5=(D)=>typeof D==="bigint"||Number.isInteger(D),QY=(D,$,F,{intAsBigInt:X})=>X?BigInt(D):parseInt(D.substring($),F);function GO(D,$,F){let{value:X}=D;if(g5(X)&&X>=0)return F+X.toString($);return YO.stringifyNumber(D)}var Sx={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)=>GO(D,8,"0o")},fx={identify:g5,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(D,$,F)=>QY(D,0,10,F),stringify:YO.stringifyNumber},bx={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)=>GO(D,16,"0x")};kx.int=fx;kx.intHex=bx;kx.intOct=Sx});var BO=b((dx)=>{var gx=p6(),yx=h5(),ux=c6(),mx=h9(),px=WY(),AY=UY(),KY=_Y(),cx=[gx.map,ux.seq,mx.string,yx.nullTag,px.boolTag,KY.intOct,KY.int,KY.intHex,AY.floatNaN,AY.floatExp,AY.float];dx.schema=cx});var WO=b((tx)=>{var ix=nD(),nx=p6(),sx=c6();function HO(D){return typeof D==="bigint"||Number.isInteger(D)}var y5=({value:D})=>JSON.stringify(D),rx=[{identify:(D)=>typeof D==="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:(D)=>D,stringify:y5},{identify:(D)=>D==null,createNode:()=>new ix.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:HO,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})=>HO(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}],ox={default:!0,tag:"",test:/^/,resolve(D,$){return $(`Unresolved plain scalar ${JSON.stringify(D)}`),D}},ax=[nx.map,sx.seq].concat(rx,ox);tx.schema=ax});var OY=b((Fh)=>{var g9=U8("buffer"),CY=nD(),Dh=f9(),$h={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($??($=CY.Scalar.BLOCK_LITERAL),$!==CY.Scalar.QUOTE_DOUBLE){let H=Math.max(X.options.lineWidth-X.indent.length,X.options.minContentWidth),W=Math.ceil(B.length/H),U=Array(W);for(let Q=0,_=0;Q<W;++Q,_+=H)U[Q]=B.substr(_,H);B=U.join($===CY.Scalar.BLOCK_LITERAL?`
|
|
173
|
+
`:" ")}return Dh.stringifyString({comment:D,type:$,value:B},X,J,G)}};Fh.binary=$h});var m5=b((Bh)=>{var u5=_D(),RY=g8(),Jh=nD(),Yh=m8();function VO(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 RY.Pair(new Jh.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 RY.Pair(X)}else $("Expected a sequence for this tag");return D}function UO(D,$,F){let{replacer:X}=F,J=new Yh.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(RY.createPair(B,H,F))}return J}var Gh={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:VO,createNode:UO};Bh.createPairs=UO;Bh.pairs=Gh;Bh.resolvePairs=VO});var ZY=b((_h)=>{var QO=_D(),EY=v8(),y9=u8(),Uh=m8(),_O=m5();class P1 extends Uh.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=EY.toJS(X.key,"",$),G=EY.toJS(X.value,J,$);else J=EY.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=_O.createPairs(D,$,F),J=new this;return J.items=X.items,J}}P1.tag="tag:yaml.org,2002:omap";var Qh={collection:"seq",identify:(D)=>D instanceof Map,nodeClass:P1,default:!1,tag:"tag:yaml.org,2002:omap",resolve(D,$){let F=_O.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)};_h.YAMLOMap=P1;_h.omap=Qh});var RO=b((Ch)=>{var AO=nD();function KO({value:D,source:$},F){if($&&(D?CO:OO).test.test($))return $;return D?F.options.trueStr:F.options.falseStr}var CO={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 AO.Scalar(!0),stringify:KO},OO={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 AO.Scalar(!1),stringify:KO};Ch.falseTag=OO;Ch.trueTag=CO});var EO=b((Nh)=>{var Eh=nD(),MY=d6(),Zh={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:MY.stringifyNumber},Mh={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():MY.stringifyNumber(D)}},zh={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(D){let $=new Eh.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:MY.stringifyNumber};Nh.float=zh;Nh.floatExp=Mh;Nh.floatNaN=Zh});var MO=b((Sh)=>{var ZO=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 zY(D,$,F){let{value:X}=D;if(u9(X)){let J=X.toString($);return X<0?"-"+F+J.substr(1):F+J}return ZO.stringifyNumber(D)}var jh={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)=>zY(D,2,"0b")},Ih={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)=>zY(D,8,"0")},Th={identify:u9,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(D,$,F)=>p5(D,0,10,F),stringify:ZO.stringifyNumber},wh={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)=>zY(D,16,"0x")};Sh.int=Th;Sh.intBin=jh;Sh.intHex=wh;Sh.intOct=Ih});var NY=b((hh)=>{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 xh={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}};hh.YAMLSet=q1;hh.set=xh});var qY=b((ch)=>{var uh=d6();function PY(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 zO(D){let{value:$}=D,F=(Y)=>Y;if(typeof $==="bigint")F=(Y)=>BigInt(Y);else if(isNaN($)||!isFinite($))return uh.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 mh={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})=>PY(D,F),stringify:zO},ph={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)=>PY(D,!1),stringify:zO},NO={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(NO.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),U=$[8];if(U&&U!=="Z"){let Q=PY(U,!1);if(Math.abs(Q)<30)Q*=60;W-=60000*Q}return new Date(W)},stringify:({value:D})=>D?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};ch.floatTime=ph;ch.intTime=mh;ch.timestamp=NO});var qO=b((Xg)=>{var nh=p6(),sh=h5(),rh=c6(),oh=h9(),ah=OY(),PO=RO(),LY=EO(),i5=MO(),th=T5(),eh=ZY(),Dg=m5(),$g=NY(),jY=qY(),Fg=[nh.map,rh.seq,oh.string,sh.nullTag,PO.trueTag,PO.falseTag,i5.intBin,i5.intOct,i5.int,i5.intHex,LY.floatNaN,LY.floatExp,LY.float,ah.binary,th.merge,eh.omap,Dg.pairs,$g.set,jY.intTime,jY.floatTime,jY.timestamp];Xg.schema=Fg});var vO=b((Qg)=>{var TO=p6(),Yg=h5(),wO=c6(),Gg=h9(),Bg=WY(),IY=UY(),TY=_Y(),Hg=BO(),Wg=WO(),SO=OY(),m9=T5(),fO=ZY(),bO=m5(),LO=qO(),kO=NY(),n5=qY(),jO=new Map([["core",Hg.schema],["failsafe",[TO.map,wO.seq,Gg.string]],["json",Wg.schema],["yaml11",LO.schema],["yaml-1.1",LO.schema]]),IO={binary:SO.binary,bool:Bg.boolTag,float:IY.float,floatExp:IY.floatExp,floatNaN:IY.floatNaN,floatTime:n5.floatTime,int:TY.int,intHex:TY.intHex,intOct:TY.intOct,intTime:n5.intTime,map:TO.map,merge:m9.merge,null:Yg.nullTag,omap:fO.omap,pairs:bO.pairs,seq:wO.seq,set:kO.set,timestamp:n5.timestamp},Vg={"tag:yaml.org,2002:binary":SO.binary,"tag:yaml.org,2002:merge":m9.merge,"tag:yaml.org,2002:omap":fO.omap,"tag:yaml.org,2002:pairs":bO.pairs,"tag:yaml.org,2002:set":kO.set,"tag:yaml.org,2002:timestamp":n5.timestamp};function Ug(D,$,F){let X=jO.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(jO.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"?IO[Y]:Y;if(!B){let H=JSON.stringify(Y),W=Object.keys(IO).map((U)=>JSON.stringify(U)).join(", ");throw Error(`Unknown custom tag ${H}; use one of ${W}`)}if(!G.includes(B))G.push(B);return G},[])}Qg.coreKnownTags=Vg;Qg.getTags=Ug});var fY=b((Eg)=>{var wY=_D(),Kg=p6(),Cg=c6(),Og=h9(),s5=vO(),Rg=(D,$)=>D.key<$.key?-1:D.key>$.key?1:0;class SY{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,wY.MAP,{value:Kg.map}),Object.defineProperty(this,wY.SCALAR,{value:Og.string}),Object.defineProperty(this,wY.SEQ,{value:Cg.seq}),this.sortMapEntries=typeof G==="function"?G:G===!0?Rg:null}clone(){let D=Object.create(SY.prototype,Object.getOwnPropertyDescriptors(this));return D.tags=this.tags.slice(),D}}Eg.Schema=SY});var xO=b((Ng)=>{var Mg=_D(),bY=b9(),p9=w9();function zg(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(Mg.isNode(D.contents)){if(D.contents.spaceBefore&&X)F.push("");if(D.contents.commentBefore){let U=G(D.contents.commentBefore);F.push(p9.indentComment(U,""))}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
|
+
`}Ng.stringifyDocument=zg});var c9=b((fg)=>{var qg=I9(),l6=N5(),D2=_D(),Lg=g8(),jg=v8(),Ig=fY(),Tg=xO(),kY=Z5(),wg=eJ(),Sg=T9(),vY=tJ();class xY{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 vY.Directives({version:G});this.setSchema(G,F),this.contents=D===void 0?null:this.createNode(D,X,F)}clone(){let D=Object.create(xY.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=kY.anchorNames(this);D.anchor=!$||F.has($)?kY.findNewAnchor($||"a",F):$}return new qg.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:U,setAnchors:Q,sourceObjects:_}=kY.createNodeAnchors(this,G||"a"),A={aliasDuplicateObjects:J??!0,keepUndefined:B??!1,onAnchor:U,onTagObj:H,replacer:X,schema:this.schema,sourceObjects:_},O=Sg.createNode(D,W,A);if(Y&&D2.isCollection(O))O.flow=!0;return Q(),O}createPair(D,$,F={}){let X=this.createNode(D,null,F),J=this.createNode($,null,F);return new Lg.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 vY.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 vY.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 Ig.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=jg.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"?wg.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 Tg.stringifyDocument(this,D)}}function i6(D){if(D2.isCollection(D))return!0;throw Error("Expected a YAML collection as document contents")}fg.Document=xY});var d9=b((vg)=>{class r5 extends Error{constructor(D,$,F,X){super();this.name=D,this.code=F,this.message=X,this.pos=$}}class hO extends r5{constructor(D,$,F){super("YAMLParseError",D,$,F)}}class gO extends r5{constructor(D,$,F){super("YAMLWarning",D,$,F)}}var kg=(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
|
+
`}};vg.YAMLError=r5;vg.YAMLParseError=hO;vg.YAMLWarning=gO;vg.prettifyError=kg});var l9=b((mg)=>{function ug(D,{flow:$,indicator:F,next:X,offset:J,onError:G,parentIndent:Y,startOnNewline:B}){let H=!1,W=B,U=B,Q="",_="",A=!1,O=!1,C=null,K=null,R=null,z=null,N=null,S=null,f=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;U=!0;break;case"comment":{if(!U)G(j,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let d=j.source.substring(1)||" ";if(!Q)Q=d;else Q+=_+d;_="",W=!1;break}case"newline":if(W){if(Q)Q+=j.source;else if(!S||F!=="seq-item-ind")H=!0}else _+=j.source;if(W=!0,A=!0,K||R)z=j;U=!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,f??(f=j.offset),W=!1,U=!1,O=!0;break;case"tag":{if(R)G(j,"MULTIPLE_TAGS","A node can have at most one tag");R=j,f??(f=j.offset),W=!1,U=!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",U=!1;break;case"comma":if($){if(N)G(j,"UNEXPECTED_TOKEN",`Unexpected , in ${$}`);N=j,W=!1,U=!1;break}default:G(j,"UNEXPECTED_TOKEN",`Unexpected ${j.type} token`),W=!1,U=!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:Q,hasNewline:A,anchor:K,tag:R,newlineAfterProp:z,end:q,start:f??q}}mg.resolveProps=ug});var o5=b((cg)=>{function hY(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(hY($.key)||hY($.value))return!0}return!1;default:return!0}}cg.containsNewline=hY});var gY=b((ng)=>{var lg=o5();function ig(D,$,F){if($?.type==="flow-collection"){let X=$.end[0];if(X.indent===D&&(X.source==="]"||X.source==="}")&&lg.containsNewline($))F(X,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}ng.flowIndentCheck=ig});var yY=b((og)=>{var yO=_D();function rg(D,$,F){let{uniqueKeys:X}=D.options;if(X===!1)return!1;let J=typeof X==="function"?X:(G,Y)=>G===Y||yO.isScalar(G)&&yO.isScalar(Y)&&G.value===Y.value;return $.some((G)=>J(G.key,F))}og.mapIncludes=rg});var dO=b((Fy)=>{var uO=g8(),tg=u8(),mO=l9(),eg=o5(),pO=gY(),Dy=yY(),cO="All mapping items must start at the same column";function $y({composeNode:D,composeEmptyNode:$},F,X,J,G){let B=new(G?.nodeClass??tg.YAMLMap)(F.schema);if(F.atRoot)F.atRoot=!1;let H=X.offset,W=null;for(let U of X.items){let{start:Q,key:_,sep:A,value:O}=U,C=mO.resolveProps(Q,{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",cO)}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||eg.containsNewline(_))J(_??Q[Q.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",cO);F.atKey=!0;let R=C.end,z=_?D(F,_,C,J):$(F,R,Q,null,C,J);if(F.schema.compat)pO.flowIndentCheck(X.indent,_,J);if(F.atKey=!1,Dy.mapIncludes(F,B.items,z))J(R,"DUPLICATE_KEY","Map keys must be unique");let N=mO.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)pO.flowIndentCheck(X.indent,O,J);H=S.range[2];let f=new uO.Pair(z,S);if(F.options.keepSourceTokens)f.srcToken=U;B.items.push(f)}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 uO.Pair(z);if(F.options.keepSourceTokens)S.srcToken=U;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}Fy.resolveBlockMap=$y});var lO=b((Hy)=>{var Jy=m8(),Yy=l9(),Gy=gY();function By({composeNode:D,composeEmptyNode:$},F,X,J,G){let B=new(G?.nodeClass??Jy.YAMLSeq)(F.schema);if(F.atRoot)F.atRoot=!1;if(F.atKey)F.atKey=!1;let H=X.offset,W=null;for(let{start:U,value:Q}of X.items){let _=Yy.resolveProps(U,{indicator:"seq-item-ind",next:Q,offset:H,onError:J,parentIndent:X.indent,startOnNewline:!0});if(!_.found)if(_.anchor||_.tag||Q)if(Q?.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=Q?D(F,Q,_,J):$(F,_.end,U,null,_,J);if(F.schema.compat)Gy.flowIndentCheck(X.indent,Q,J);H=A.range[2],B.items.push(A)}return B.range=[X.offset,H,W??H],B}Hy.resolveBlockSeq=By});var n6=b((Uy)=>{function Vy(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 U=H.substring(1)||" ";if(!J)J=U;else J+=Y+U;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:$}}Uy.resolveEnd=Vy});var sO=b((Zy)=>{var _y=_D(),Ay=g8(),iO=u8(),Ky=m8(),Cy=n6(),nO=l9(),Oy=o5(),Ry=yY(),uY="Block collections are not allowed within flow collections",mY=(D)=>D&&(D.type==="block-map"||D.type==="block-seq");function Ey({composeNode:D,composeEmptyNode:$},F,X,J,G){let Y=X.start.source==="{",B=Y?"flow map":"flow sequence",W=new(G?.nodeClass??(Y?iO.YAMLMap:Ky.YAMLSeq))(F.schema);W.flow=!0;let U=F.atRoot;if(U)F.atRoot=!1;if(F.atKey)F.atKey=!1;let Q=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:f}=R,L=nO.resolveProps(z,{flow:B,indicator:"explicit-key-ind",next:N??S?.[0],offset:Q,onError:J,parentIndent:X.indent,startOnNewline:!1});if(!L.found){if(!L.anchor&&!L.tag&&!S&&!f){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;Q=L.end;continue}if(!Y&&F.options.strict&&Oy.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(_y.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=f?D(F,f,L,J):$(F,L.end,S,null,L,J);if(W.items.push(q),Q=q.range[2],mY(f))J(q.range,"BLOCK_IN_FLOW",uY)}else{F.atKey=!0;let q=L.end,j=N?D(F,N,L,J):$(F,q,z,null,L,J);if(mY(N))J(j.range,"BLOCK_IN_FLOW",uY);F.atKey=!1;let d=nO.resolveProps(S??[],{flow:B,indicator:"map-value-ind",next:f,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(f)if("source"in f&&f.source?.[0]===":")J(f,"MISSING_CHAR",`Missing space after : in ${B}`);else J(d.start,"MISSING_CHAR",`Missing , or : between ${B} items`);let VD=f?D(F,f,d,J):d.found?$(F,d.end,S,null,d,J):null;if(VD){if(mY(f))J(VD.range,"BLOCK_IN_FLOW",uY)}else if(d.comment)if(j.comment)j.comment+=`
|
|
189
|
+
`+d.comment;else j.comment=d.comment;let UD=new Ay.Pair(j,VD);if(F.options.keepSourceTokens)UD.srcToken=R;if(Y){let $D=W;if(Ry.mapIncludes(F,$D.items,j))J(q,"DUPLICATE_KEY","Map keys must be unique");$D.items.push(UD)}else{let $D=new iO.YAMLMap(F.schema);$D.flow=!0,$D.items.push(UD);let tD=(VD??j).range;$D.range=[j.range[0],tD[1],tD[2]],W.items.push($D)}Q=VD?VD.range[2]:d.end}}let _=Y?"}":"]",[A,...O]=X.end,C=Q;if(A?.source===_)C=A.offset+A.source.length;else{let K=B[0].toUpperCase()+B.substring(1),R=U?`${K} must end with a ${_}`:`${K} in block collection must be sufficiently indented and end with a ${_}`;if(J(Q,U?"MISSING_CHAR":"BAD_INDENT",R),A&&A.source.length!==1)O.unshift(A)}if(O.length>0){let K=Cy.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}Zy.resolveFlowCollection=Ey});var rO=b((wy)=>{var zy=_D(),Ny=nD(),Py=u8(),qy=m8(),Ly=dO(),jy=lO(),Iy=sO();function pY(D,$,F,X,J,G){let Y=F.type==="block-map"?Ly.resolveBlockMap(D,$,F,X,G):F.type==="block-seq"?jy.resolveBlockSeq(D,$,F,X,G):Iy.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 Ty(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===Py.YAMLMap.tagName&&B==="map"||Y===qy.YAMLSeq.tagName&&B==="seq")return pY(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 pY(D,$,F,J,Y)}}let W=pY(D,$,F,J,Y,H),U=H.resolve?.(W,(_)=>J(G,"TAG_RESOLVE_FAILED",_),$.options)??W,Q=zy.isNode(U)?U:new Ny.Scalar(U);if(Q.range=W.range,Q.tag=Y,H?.format)Q.format=H.format;return Q}wy.composeCollection=Ty});var dY=b((vy)=>{var cY=nD();function fy(D,$,F){let X=$.offset,J=by($,D.options.strict,F);if(!J)return{value:"",type:null,comment:"",range:[X,X,X]};let G=J.mode===">"?cY.Scalar.BLOCK_FOLDED:cY.Scalar.BLOCK_LITERAL,Y=$.source?ky($.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,U=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(U=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 Q="",_="",A=!1;for(let C=0;C<U;++C)Q+=Y[C][0].slice(H)+`
|
|
192
|
+
`;for(let C=U;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===cY.Scalar.BLOCK_LITERAL)Q+=_+K.slice(H)+R,_=`
|
|
193
|
+
`;else if(K.length>H||R[0]==="\t"){if(_===" ")_=`
|
|
194
|
+
`;else if(!A&&_===`
|
|
195
|
+
`)_=`
|
|
196
|
+
|
|
197
|
+
`;Q+=_+K.slice(H)+R,_=`
|
|
198
|
+
`,A=!0}else if(R==="")if(_===`
|
|
199
|
+
`)Q+=`
|
|
200
|
+
`;else _=`
|
|
201
|
+
`;else Q+=_+R,_=" ",A=!1}switch(J.chomp){case"-":break;case"+":for(let C=B;C<Y.length;++C)Q+=`
|
|
202
|
+
`+Y[C][0].slice(H);if(Q[Q.length-1]!==`
|
|
203
|
+
`)Q+=`
|
|
204
|
+
`;break;default:Q+=`
|
|
205
|
+
`}let O=X+J.length+$.source.length;return{value:Q,type:G,comment:J.comment,range:[X,O,O]}}function by({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,U="",Q=J.length;for(let _=1;_<$.length;++_){let A=$[_];switch(A.type){case"space":W=!0;case"newline":Q+=A.source.length;break;case"comment":if(F&&!W)X(A,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");Q+=A.source.length,U=A.source.substring(1);break;case"error":X(A,"UNEXPECTED_TOKEN",A.message),Q+=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")Q+=C.length}}}return{mode:G,indent:Y,chomp:B,comment:U,length:Q}}function ky(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}vy.resolveBlockScalar=fy});var iY=b((ly)=>{var lY=nD(),hy=n6();function gy(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=lY.Scalar.PLAIN,H=yy(G,W);break;case"single-quoted-scalar":B=lY.Scalar.QUOTE_SINGLE,H=uy(G,W);break;case"double-quoted-scalar":B=lY.Scalar.QUOTE_DOUBLE,H=my(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 U=X+G.length,Q=hy.resolveEnd(Y,U,$,F);return{value:H,type:B,comment:Q.comment,range:[X,U,Q.offset]}}function yy(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 oO(D)}function uy(D,$){if(D[D.length-1]!=="'"||D.length===1)$(D.length,"MISSING_CHAR","Missing closing 'quote");return oO(D.slice(1,-1)).replace(/''/g,"'")}function oO(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 my(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}=py(D,X);F+=G,X=Y}else if(J==="\\"){let G=D[++X],Y=cy[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+=dy(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 py(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 cy={"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 dy(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)}ly.resolveFlowScalar=gy});var tO=b((ty)=>{var L1=_D(),aO=nD(),ny=dY(),sy=iY();function ry(D,$,F,X){let{value:J,type:G,comment:Y,range:B}=$.type==="block-scalar"?ny.resolveBlockScalar(D,$,X):sy.resolveFlowScalar($,D.options.strict,X),H=F?D.directives.tagName(F.source,(Q)=>X(F,"TAG_RESOLVE_FAILED",Q)):null,W;if(D.options.stringKeys&&D.atKey)W=D.schema[L1.SCALAR];else if(H)W=oy(D.schema,J,H,F,X);else if($.type==="scalar")W=ay(D,J,$,X);else W=D.schema[L1.SCALAR];let U;try{let Q=W.resolve(J,(_)=>X(F??$,"TAG_RESOLVE_FAILED",_),D.options);U=L1.isScalar(Q)?Q:new aO.Scalar(Q)}catch(Q){let _=Q instanceof Error?Q.message:String(Q);X(F??$,"TAG_RESOLVE_FAILED",_),U=new aO.Scalar(J)}if(U.range=B,U.source=J,G)U.type=G;if(H)U.tag=H;if(W.format)U.format=W.format;if(Y)U.comment=Y;return U}function oy(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 ay({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),U=`Value may be parsed as either ${H} or ${W}`;G(J,"TAG_RESOLVE_FAILED",U,!0)}}return Y}ty.composeScalar=ry});var eO=b(($u)=>{function Du(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}$u.emptyScalarPosition=Du});var FR=b((Vu)=>{var Xu=I9(),Ju=_D(),Yu=rO(),DR=tO(),Gu=n6(),Bu=eO(),Hu={composeNode:$R,composeEmptyNode:nY};function $R(D,$,F,X){let J=D.atKey,{spaceBefore:G,comment:Y,anchor:B,tag:H}=F,W,U=!0;switch($.type){case"alias":if(W=Wu(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=DR.composeScalar(D,$,H,X),B)W.anchor=B.source.substring(1);break;case"block-map":case"block-seq":case"flow-collection":try{if(W=Yu.composeCollection(Hu,D,$,F,X),B)W.anchor=B.source.substring(1)}catch(Q){let _=Q instanceof Error?Q.message:String(Q);X($,"RESOURCE_EXHAUSTION",_)}break;default:{let Q=$.type==="error"?$.message:`Unsupported token (type: ${$.type})`;X($,"UNEXPECTED_TOKEN",Q),U=!1}}if(W??(W=nY(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&&(!Ju.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&&U)W.srcToken=$;return W}function nY(D,$,F,X,{spaceBefore:J,comment:G,anchor:Y,tag:B,end:H},W){let U={type:"scalar",offset:Bu.emptyScalarPosition($,F,X),indent:-1,source:""},Q=DR.composeScalar(D,U,B,W);if(Y){if(Q.anchor=Y.source.substring(1),Q.anchor==="")W(Y,"BAD_ALIAS","Anchor cannot be an empty string")}if(J)Q.spaceBefore=!0;if(G)Q.comment=G,Q.range[2]=H;return Q}function Wu({options:D},{offset:$,source:F,end:X},J){let G=new Xu.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=Gu.resolveEnd(X,Y,D.strict,J);if(G.range=[$,Y,B.offset],B.comment)G.comment=B.comment;return G}Vu.composeEmptyNode=nY;Vu.composeNode=$R});var JR=b((Ou)=>{var _u=c9(),XR=FR(),Au=n6(),Ku=l9();function Cu(D,$,{offset:F,start:X,value:J,end:G},Y){let B=Object.assign({_directives:$},D),H=new _u.Document(void 0,B),W={atKey:!1,atRoot:!0,directives:H.directives,options:H.options,schema:H.schema},U=Ku.resolveProps(X,{indicator:"doc-start",next:J??G?.[0],offset:F,onError:Y,parentIndent:0,startOnNewline:!0});if(U.found){if(H.directives.docStart=!0,J&&(J.type==="block-map"||J.type==="block-seq")&&!U.hasNewline)Y(U.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")}H.contents=J?XR.composeNode(W,J,U,Y):XR.composeEmptyNode(W,U.end,X,null,U,Y);let Q=H.contents.range[2],_=Au.resolveEnd(G,Q,!1,Y);if(_.comment)H.comment=_.comment;return H.range=[F,Q,_.offset],H}Ou.composeDoc=Cu});var sY=b((Pu)=>{var Eu=U8("process"),Zu=tJ(),Mu=c9(),i9=d9(),YR=_D(),zu=JR(),Nu=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 GR(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 BR{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 Zu.Directives({version:D.version||"1.2"}),this.options=D}decorate(D,$){let{comment:F,afterEmptyLine:X}=GR(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(YR.isCollection(J)&&!J.flow&&J.items.length>0){let G=J.items[0];if(YR.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:GR(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(Eu.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 $=zu.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 $=Nu.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 Mu.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}}}Pu.Composer=BR});var VR=b((bu)=>{var Lu=dY(),ju=iY(),Iu=d9(),HR=f9();function Tu(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 Iu.YAMLParseError([B,B+1],G,Y)};switch(D.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return ju.resolveFlowScalar(D,$,X);case"block-scalar":return Lu.resolveBlockScalar({options:{strict:$}},D,X)}}return null}function wu(D,$){let{implicitKey:F=!1,indent:X,inFlow:J=!1,offset:G=-1,type:Y="PLAIN"}=$,B=HR.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
|
+
`),U=B.substring(0,W),Q=B.substring(W+1)+`
|
|
230
|
+
`,_=[{type:"block-scalar-header",offset:G,indent:X,source:U}];if(!WR(_,H))_.push({type:"newline",offset:-1,indent:X,source:`
|
|
231
|
+
`});return{type:"block-scalar",offset:G,indent:X,props:_,source:Q}}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 Su(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=HR.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">":fu(D,H);break;case'"':rY(D,H,"double-quoted-scalar");break;case"'":rY(D,H,"single-quoted-scalar");break;default:rY(D,H,"scalar")}}function fu(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(!WR(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 WR(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 rY(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})}}}bu.createScalarToken=wu;bu.resolveAsScalar=Tu;bu.setScalarValue=Su});var UR=b((gu)=>{var hu=(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}gu.stringify=hu});var AR=b((mu)=>{var oY=Symbol("break visit"),uu=Symbol("skip children"),QR=Symbol("remove item");function j1(D,$){if("type"in D&&D.type==="document")D={start:D.start,value:D.value};_R(Object.freeze([]),D,$)}j1.BREAK=oY;j1.SKIP=uu;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 _R(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=_R(Object.freeze(D.concat([[J,Y]])),G.items[Y],F);if(typeof B==="number")Y=B-1;else if(B===oY)return oY;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}mu.visit=j1});var e5=b((ru)=>{var aY=VR(),cu=UR(),du=AR(),tY="\uFEFF",eY="\x02",DG="\x18",$G="\x1F",lu=(D)=>!!D&&("items"in D),iu=(D)=>!!D&&(D.type==="scalar"||D.type==="single-quoted-scalar"||D.type==="double-quoted-scalar"||D.type==="block-scalar");function nu(D){switch(D){case tY:return"<BOM>";case eY:return"<DOC>";case DG:return"<FLOW_END>";case $G:return"<SCALAR>";default:return JSON.stringify(D)}}function su(D){switch(D){case tY:return"byte-order-mark";case eY:return"doc-mode";case DG:return"flow-error-end";case $G: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}ru.createScalarToken=aY.createScalarToken;ru.resolveAsScalar=aY.resolveAsScalar;ru.setScalarValue=aY.setScalarValue;ru.stringify=cu.stringify;ru.visit=du.visit;ru.BOM=tY;ru.DOCUMENT=eY;ru.FLOW_END=DG;ru.SCALAR=$G;ru.isCollection=lu;ru.isScalar=iu;ru.prettyToken=nu;ru.tokenType=su});var XG=b((Um)=>{var s9=e5();function j2(D){switch(D){case void 0:case" ":case`
|
|
238
|
+
`:case"\r":case"\t":return!0;default:return!1}}var KR=new Set("0123456789ABCDEFabcdef"),Wm=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),D$=new Set(",[]{}"),Vm=new Set(` ,[]{}
|
|
239
|
+
\r `),FG=(D)=>!D||Vm.has(D);class CR{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(FG),"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(FG),"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(FG))+(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(Wm.has($))$=this.buffer[++D];else if($==="%"&&KR.has(this.buffer[D+1])&&KR.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)}}Um.Lexer=CR});var JG=b((_m)=>{class OR{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}}}}_m.LineCounter=OR});var YG=b((Om)=>{var Km=U8("process"),RR=e5(),Cm=XG();function p8(D,$){for(let F=0;F<D.length;++F)if(D[F].type===$)return!0;return!1}function ER(D){for(let $=0;$<D.length;++$)switch(D[$].type){case"space":case"comment":case"newline":break;default:return $}return-1}function MR(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 ZR(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,MR($.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 zR{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 Cm.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,Km.env.LOG_TOKENS)console.log("|",RR.prettyToken(D));if(this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=D.length;return}let $=RR.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")ZR($);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&&ER(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(ER(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(MR($.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);ZR(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()}}}Om.Parser=zR});var jR=b((Lm)=>{var NR=sY(),Em=c9(),r9=d9(),Zm=JY(),Mm=_D(),zm=JG(),PR=YG();function qR(D){let $=D.prettyErrors!==!1;return{lineCounter:D.lineCounter||$&&new zm.LineCounter||null,prettyErrors:$}}function Nm(D,$={}){let{lineCounter:F,prettyErrors:X}=qR($),J=new PR.Parser(F?.addNewLine),G=new NR.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 LR(D,$={}){let{lineCounter:F,prettyErrors:X}=qR($),J=new PR.Parser(F?.addNewLine),G=new NR.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 Pm(D,$,F){let X=void 0;if(typeof $==="function")X=$;else if(F===void 0&&$&&typeof $==="object")F=$;let J=LR(D,F);if(!J)return null;if(J.warnings.forEach((G)=>Zm.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 qm(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(Mm.isDocument(D)&&!X)return D.toString(F);return new Em.Document(D,X,F).toString(F)}Lm.parse=Pm;Lm.parseAllDocuments=Nm;Lm.parseDocument=LR;Lm.stringify=qm});var Sm,fm,bm,GG,km,c8,vm,xm,hm,gm,r9D,ym,um,mm,F$,IR,pm,cm,dm,lm,im,nm,sm,rm,om,am,tm,em,Dp,$p,Fp,Xp,Jp,Yp,Gp,Bp,Hp,Wp,X$,Vp,Up,BG,Qp,_p;var HG=M(()=>{Sm=sY(),fm=c9(),bm=fY(),GG=d9(),km=I9(),c8=_D(),vm=g8(),xm=nD(),hm=u8(),gm=m8(),r9D=e5(),ym=XG(),um=JG(),mm=YG(),F$=jR(),IR=L9();pm=Sm.Composer,cm=fm.Document,dm=bm.Schema,lm=GG.YAMLError,im=GG.YAMLParseError,nm=GG.YAMLWarning,sm=km.Alias,rm=c8.isAlias,om=c8.isCollection,am=c8.isDocument,tm=c8.isMap,em=c8.isNode,Dp=c8.isPair,$p=c8.isScalar,Fp=c8.isSeq,Xp=vm.Pair,Jp=xm.Scalar,Yp=hm.YAMLMap,Gp=gm.YAMLSeq,Bp=ym.Lexer,Hp=um.LineCounter,Wp=mm.Parser,X$=F$.parse,Vp=F$.parseAllDocuments,Up=F$.parseDocument,BG=F$.stringify,Qp=IR.visit,_p=IR.visitAsync});var Ap,Kp,Cp,Op,Rp,Ep,wR,Zp,Mp,TR,zp,Np,Pp,SR;var fR=M(()=>{mD();Ap=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()})}),Kp=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()})}),Cp=V.discriminatedUnion("type",[Ap,Kp]),Op=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(),Rp=V.record(V.unknown()).and(V.object({cmd:Op.optional()}).partial()),Ep=V.enum(["rate-limit","timeout","auth","network","server-5xx","unknown"]),wR=V.lazy(()=>V.object({engine:V.enum(["http","mcp","cli","claude-code","acp","codex","cursor"]),variant:V.string().min(1),overrides:Rp.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:wR,onErrorKinds:V.array(Ep).min(1),maxRetries:V.number().int().min(1).optional()})).optional()})),Zp=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()})]),Mp=V.object({channel:V.enum(["web","line","telegram","lark","whatsapp"]),enabled:V.boolean(),credentials:Zp,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"]}),TR=V.enum(["auto","ask","deny"]),zp=V.object({default:TR,rules:V.array(V.object({pattern:V.string().min(1),action:TR}))}),Np=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()}),Pp=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:Np.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"})}),SR=V.object({brains:V.array(Cp),brainWriteTarget:V.string(),brainRetrieval:V.enum(["merge-by-priority","first-match"]),executor:wR,channels:V.array(Mp),evolution:V.object({enabled:V.boolean(),observationRetentionDays:V.number().int().nonnegative()}),toolPolicy:zp.optional(),orchestrator:Pp.optional()})});import{writeFile as qp}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=SR.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 U=i4(Y),Q=G.version+1,_=new Date().toISOString();return await D.update(z2).set({configJson:U,version:Q,updatedAt:_,updatedBy:"api"}).where(k(z2.pk,"default")).run(),{config:U,version:Q}}async function a9(D,$,F){let X=kW(D),J=BG({version:F,config:$});try{await qp(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 WG=M(()=>{A2();bD();JD();_0();HG();fR();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 VG=M(()=>{Y$=class Y$ extends Error{jobId;constructor(D){super(`cron job ${D} \u4E0D\u5B58\u5728`);this.jobId=D;this.name="CronJobNotFoundError"}}});class UG{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=Lp(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=jp(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 Lp(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 jp(D,$){if($===void 0)return`gw:${D}:${crypto.randomUUID()}`;if($.startsWith("gw:"))return $;return`gw:conv:${$}`}var bR=M(()=>{D0();cD();JD();WG();VG()});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 kR=M(()=>{D0()});function G$(D){let $=ZC(D),F=!1,X=null,J=new QG({workerId:$.workerId,getBus:()=>D.getRuntime().bus,sendEvent:(Y)=>X?.send(Y)}),G=new UG({workerId:$.workerId,getRuntime:D.getRuntime,...D.handlers?{handlers:D.handlers}:{},sendResponse:(Y)=>X?.send(Y)});return X=new rJ({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 vR(D){await D.stop()}var xR=M(()=>{JD();EC();bR();kR()});function Ip(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:Ip(X)}]}}}function wp(D){return Tp.has(D)}function Sp(D){if(D instanceof Error)return D.message;return String(D)}async function a6(D,$,F={}){if(!wp($))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:Sp(Y)}}}var Tp;var hR=M(()=>{cD();V9();Tp=new Set(["web","line","telegram","lark","whatsapp"])});function fp(D){if(D instanceof Error)return D.message;return String(D)}async function bp(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:fp(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 bp(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 vp(D){if(!D)return"unknown";return D.status}async function gR(D){try{let $=await D();return vp($??null)}catch{return"unknown"}}function xp(D){let $=hp(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 hp(D){try{return J8(D)}catch{return null}}function gp(D,$){if(!D)return;return`${D.replace(/\/+$/,"")}/${$}/webhook`}async function e6(D,$,F){let{runtime:X}=D,J=await gR(()=>X.executor.health()),G=await gR(()=>X.brain.health()),Y=$.brains.map((U)=>({id:U.id,type:U.type,status:G})),B=xp($.executor),H={type:$.executor.engine,...B===void 0?{}:{model:B},status:J},W=$.channels.map((U)=>{let Q=gp(F.advertisedBaseUrl,U.channel);return{channel:U.channel,enabled:U.enabled,...Q?{webhookUrl:Q}:{}}});return{workerId:D.workerId,runtimeVersion:kp,configVersion:D.configVersion,brains:Y,executor:H,channels:W,evolutionEnabled:$.evolution.enabled,startedAt:D.startedAt,...F.advertisedBaseUrl?{advertisedBaseUrl:F.advertisedBaseUrl}:{}}}var kp="0.2.0";var yR=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 uR=M(()=>{bD();_0();YJ()});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 mR=M(()=>{cD()});class I1{pending=new Map;disposed=!1;wait(D){if(this.disposed)return Promise.reject(new pR);let $=D.timeoutMs??_G,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 pR,_G=60000;var B$=M(()=>{pR=class pR extends Error{name="ApprovalDisposedError";constructor(){super("approval store disposed")}}});class dR{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 AG(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 dR,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,U=Math.max(0,B-H),Q=Math.max(0,this.opts.maxConcurrentTotal-this.totalActive());J[Y]={limit:B,active:H,queued:W,available:Math.min(U,Q)}}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),AG(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),AG(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=yp[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),AG(D.stallTimer)}onActivity(D){if(cR.has(D.handle.state))return;D.handle.lastActivityAt=T1(),this.armStallTimer(D)}onStall(D){if(cR.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 cR,yp;var lR=M(()=>{JD();cR=new Set(["completed","failed","cancelled"]),yp={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??up}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 up=30000;var iR=M(()=>{JD()});var KG=M(()=>{iR()});function nR(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 CG(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:nR(D.tags)},createdAt:$,updatedAt:F};if(typeof G==="number")B.score=G;return B}function mp(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 OG{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(mp)}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(CG)}async searchMemories(D){let $=await this.client.callToolJson("knowledge_search",{query:D,limit:20});if(!Array.isArray($))return[];return $.map(CG)}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??nR($.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 CG(H)}}var sR=M(()=>{KG()});import{join as W$}from"path";async function rR(D){let $=new Bun.CryptoHasher("sha256");return $.update(D),$.digest("hex")}function oR(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 pp(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}=oR(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 aR(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=pp(H,Y);if(W){let U=await rR(H);J.push({...W,hash:U})}}catch{}}return J}catch{return[]}}async function RG(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 rR(H),{metadata:U,content:Q}=oR(H),_=G.replace(/\.md$/,"");J.push({id:String(U.id??_),title:String(U.title??_),content:Q,metadata:U,filePath:Y,hash:W,createdAt:U.createdAt?String(U.createdAt):void 0,updatedAt:U.updatedAt?String(U.updatedAt):void 0})}catch{}}return J}catch{return[]}}var tR=M(()=>{HG()});import{watch as cp}from"fs";import{join as EG}from"path";function dp(D){return D.includes("/skills/")||D.includes("\\skills\\")?"skill":"memory"}class ZG{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 cp(D,{recursive:!0},(F,X)=>{if(!X)return;let J=EG(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:dp(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=EG(this.home,"skills"),$=EG(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 eR=()=>{};import{existsSync as lp,mkdirSync as ip}from"fs";import{access as np,stat as sp}from"fs/promises";import{join as MG}from"path";function rp(D){return{id:D.filePath,name:D.name,description:D.description,version:D.version,tags:D.capabilities}}async function DE(D,$){let{createdAt:F,updatedAt:X}=D;if(!F||!X)try{let Y=await sp(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 op(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 ap(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 tp(D){if(D==="feedback"||D==="project"||D==="reference"||D==="user")return D;return"user"}function ep(D){return D.toLowerCase().replace(/[^a-z0-9_\- ]/g,"").replace(/\s+/g,"_").replace(/_+/g,"_").replace(/^_|_$/g,"").slice(0,64)}async function Dc(D,$,F,X){let J=MG(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 zG{name="filesystem";home;watcher;watcherStarted=!1;constructor(D){this.home=D.home,this.watcher=new ZG({home:D.home})}async health(){let D=new Date().toISOString();try{return await np(this.home),{name:this.name,status:"healthy",lastChecked:D}}catch{return{name:this.name,status:"down",lastChecked:D}}}async listSkills(){return(await aR(this.home)).map(rp)}async listMemories(D){let $=await RG(this.home),F=await Promise.all($.map((X)=>DE(X)));return ap(F,D)}async searchMemories(D){let $=await RG(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)=>DE(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=tp($.type),G=MG(this.home,"memories");if(!lp(G))ip(G,{recursive:!0});let Y=ep(F),B=`${Y}.md`,H=MG(G,B),W=`---
|
|
268
|
+
name: ${F}
|
|
269
|
+
description: ${X}
|
|
270
|
+
type: ${J}
|
|
271
|
+
---
|
|
272
|
+
`;await Bun.write(H,`${W}${D.content}
|
|
273
|
+
`),await Dc(G,F,B,X);let U=new Date().toISOString();return{id:Y,content:D.content,metadata:{...$,name:F,description:X,type:J,filePath:H,...D.tags?{tags:D.tags}:{}},createdAt:U,updatedAt:U}}watch(D){if(!this.watcherStarted)this.watcherStarted=!0,this.watcher.start();return this.watcher.on(($)=>{let F=op($);if(F)D(F)})}}var $E=M(()=>{tR();eR()});class NG{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 $c(D,$){let F;if($.type==="filesystem"){let X=$.config.home??B6(D);F=new zG({home:X})}else F=new OG({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 FE(D,$){let F=$.brains.map((X)=>$c(D,X));return new NG({sources:F,writeTargetId:$.brainWriteTarget,retrieval:$.brainRetrieval})}var XE=M(()=>{A2();sR();$E()});function JE(D){return D.on((F)=>{try{Fc(F)}catch(X){E.warn(`[evolution] observer failed to persist: ${String(X)}`)}})}function Fc(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 YE=M(()=>{bD();JD()});function BE(D,$=PG){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 U=0;U+W<=H.length;U++){let Q=H.slice(U,U+W),_=Yc(Q),A=J.get(_);if(A)A.occurrences+=1,A.conversations.add(B);else J.set(_,{toolSequence:Q,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=Gc(B.occurrences/G);Y.push({toolSequence:B.toolSequence,occurrences:B.occurrences,uniqueConversations:B.conversations.size,confidence:H,rationale:Jc(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}),Xc(Y)}function Xc(D){let $=[];for(let F of D){if($.find((G)=>GE(F.toolSequence,G.toolSequence)))continue;let J=$.findIndex((G)=>GE(G.toolSequence,F.toolSequence));if(J>=0)$.splice(J,1);$.push(F)}return $}function GE(D,$){if(D.length>=$.length)return!1;for(let F=0;F<D.length;F++)if(D[F]!==$[F])return!1;return!0}function Jc(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 Yc(D){return D.join("|")}function Gc(D){if(!Number.isFinite(D))return 0;if(D<0)return 0;if(D>1)return 1;return D}var PG;var HE=M(()=>{PG={nGramMin:2,nGramMax:4,minOccurrences:3,minConversations:2,windowSize:500}});import{createHash as Bc}from"crypto";import Hc from"process";function Uc(D){return{windowSize:D?.windowSize??V$("EVOLUTION_PROPOSER_WINDOW",Wc),maxDraftsPerRun:D?.maxDraftsPerRun??V$("EVOLUTION_PROPOSER_MAX_DRAFTS_PER_RUN",Vc),intervalMs:D?.intervalMs??V$("EVOLUTION_PROPOSER_INTERVAL_MS",VE)}}async function Qc(D){let $=Uc(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((U)=>U.conversationId).filter((U)=>typeof U==="string"&&U.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 U of G){if(!U.conversationId)continue;let Q=Y.get(U.conversationId);if(Q)Q.push(U.toolName);else Y.set(U.conversationId,[U.toolName])}let B=BE(Y,{...PG,windowSize:$.windowSize}),H=Ac(F),W=0;for(let U of B){if(W>=$.maxDraftsPerRun)break;let Q=U.toolSequence.join("|");if(H.has(Q))continue;let _=Kc(U);F.insert(L0).values(_).run(),H.add(Q),W+=1,E.info(`[evolution/proposer] wrote draft ${_.proposedName} (occurrences=${U.occurrences}, convs=${U.uniqueConversations})`)}return E.info(`[evolution/proposer] ${W}/${B.length} candidate(s) written; window=${$.windowSize}, conversations=${J.length}`),{drafts:W}}function UE(D){let $=D??V$("EVOLUTION_PROPOSER_INTERVAL_MS",VE),F=setInterval(()=>{Qc().catch((X)=>E.warn(`[evolution/proposer] loop run failed: ${String(X)}`))},$);return()=>clearInterval(F)}function _c(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 Ac(D){let $=new Set,F=D.select({bodyMarkdown:L0.bodyMarkdown}).from(L0).all();for(let J of F){let G=_c(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 Kc(D){let $=D.toolSequence.join("|"),F=Bc("sha256").update($).digest("hex").slice(0,6),X=WE(D.toolSequence[0]??"tool"),J=WE(D.toolSequence[D.toolSequence.length-1]??"tool"),G=`auto-${X}-${J}-${F}`,Y=D.toolSequence.join(" \u2192 "),B=D.toolSequence.map((Q)=>`\`${Q}\``).join(", "),H={allowedTools:D.toolSequence,confidence:D.confidence,sequenceKey:$},W=`When the agent runs \`${Y}\` (seen ${D.occurrences}\xD7 across ${D.uniqueConversations} conversation(s))`,U=[`<!-- 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:U,rationale:D.rationale,status:"pending"}}function WE(D){return D.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"tool"}function V$(D,$){let F=Hc.env[D];if(F===void 0||F==="")return $;let X=Number(F);return Number.isFinite(X)&&X>0?X:$}var VE=21600000,Wc=500,Vc=5;var QE=M(()=>{bD();JD();_0();HE()});var qG;var LG=M(()=>{K5();qG={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:()=>OC()}});var jG;var IG=M(()=>{K5();jG={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:()=>RC()}});function TG(D){let $=Cc[D];if(!$)throw Error(`unknown ACP agent: ${D}`);return $}var Cc;var _E=M(()=>{LG();IG();Cc={gemini:qG,qwen:jG}});import AE from"process";function Nc(D,$,F){if($.has(D))return!0;return F.some((X)=>D.startsWith(X))}function Pc(D){if(Mc.some(($)=>D.startsWith($)))return!0;if(zc.some(($)=>D.endsWith($)))return!0;return!1}function KE(D,$,F){let X={};for(let[J,G]of Object.entries(D)){if(G===void 0)continue;if(Pc(J))continue;if(!Nc(J,$,F))continue;X[J]=G}return X}function I2(D,$=AE.env){let F=KE($,Oc,Rc);if(D)for(let[X,J]of Object.entries(D))F[X]=J;return F}function CE(D=AE.env){return KE(D,Ec,Zc)}var Oc,Rc,Ec,Zc,Mc,zc;var S1=M(()=>{Oc=new Set(["PATH","HOME","USER","LOGNAME","SHELL","PWD","LANG","TZ","TERM","TMPDIR","TMP","TEMP"]),Rc=["LC_","NODE_","NPM_CONFIG_","XDG_","CLAUDE_","CODEX_","CURSOR_","GEMINI_","QWEN_"],Ec=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"]),Zc=["LC_","XDG_","GIT_AUTHOR_","GIT_COMMITTER_"],Mc=["AIWORKER_","INTERNAL_","WORKER_"],zc=["_TOKEN","_SECRET","_API_KEY","_PRIVATE_KEY","_PASSWORD"]});function SG(D){let $=D.sessionUpdate,F=D;switch($){case"agent_message_chunk":{let X=wG(F.content);if(!X)return[];return[{type:"assistant_message_delta",delta:X}]}case"agent_thinking_chunk":{let X=wG(F.content);if(!X)return[];return[{type:"thinking_delta",delta:X}]}case"user_message_chunk":return[];case"tool_call":return qc(F);case"tool_call_update":return Lc(F);case"plan":return jc(F.entries);case"available_commands_update":case"current_mode_update":return[];default:return[]}}function OE(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=Tc(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 fG(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 qc(D){let $=[],F=D.toolCallId;if(!F)return $;let X=D.rawInput??{},J=OE(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:Ic(D.status)}:{}}),EE(D.status)){let Y=RE(D.content);$.push({type:"tool_result",id:F,name:G,content:Y,...D.status==="failed"||D.status==="cancelled"?{isError:!0}:{}})}return $}function Lc(D){let $=D.toolCallId;if(!$||!EE(D.status))return[];let F=RE(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 jc(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-${wc($)}`,name:"plan",arguments:{entries:D},action:{kind:"task_plan",summary:$}}]}function wG(D){if(!D)return"";if(D.type==="text"&&typeof D.text==="string")return D.text;return""}function RE(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=wG(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 Ic(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 EE(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 Tc(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 wc(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:(U)=>G(U),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(U){this.rejectPending(X,U instanceof Error?U:Error(String(U)))}})}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 f1(D,$){let X=(D+$).split(/\r?\n/),J=X.pop()??"";return{lines:X.filter((G)=>G.trim().length>0),remainder:J}}import{spawn as Sc}from"child_process";import{once as fc}from"events";import bc from"fs/promises";import kc from"path";import J3 from"process";function zE(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 U${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()+xc,info:F},F}async*runIterable(D){let $=yc(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??Sc)(X.cmd,X.args,{cwd:F,env:I2(this.options.env)}),Y=new NE,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??ZE}),H="",W=(K)=>{let{lines:R,remainder:z}=f1(H,K.toString("utf8"));H=z;for(let N of R)B.handleLine(N)};G.stdout.on("data",W);let U=null;G.on("error",(K)=>{U=K.message});let Q=fc(G,"exit").then((K)=>K[0]??null).catch((K)=>{return U=K instanceof Error?K.message:String(K),null});Q.then((K)=>{if(K===0)return;let R=U??(K===null?"acp child exited unexpectedly":`acp child exited with code ${K}`);Y.close({kind:"error",message:R}),B.dispose(R)});let _=setTimeout(()=>ME(G,"SIGKILL"),this.options.timeoutMs??ZE),A="",O=!1,C=()=>{if(O=!0,A)B.notify("session/cancel",{sessionId:A});setTimeout(()=>ME(G,"SIGTERM"),200)};D.signal?.addEventListener("abort",C,{once:!0});try{if(await B.request("initialize",{protocolVersion:vc,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:fG(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),gc(G),await Q.catch(()=>null)}}handleNotification(D,$){if(D.method!=="session/update")return;let F=D.params;if(!F||!F.update)return;for(let X of SG(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??hc)($.commandName);if(G)return{cmd:G,args:X};let Y=zE($,this.options.cliVersion);return{cmd:"npx",args:["-y",`${$.npxPackage}@${Y}`,...X]}}}class NE{buffer=[];resolver=null;closed=!1;terminal=null;push(D){if(this.closed)return;if(this.resolver){let $=this.resolver;this.resolver=null,$({value:D,done:!1});return}this.buffer.push(D)}close(D){if(this.closed)return;if(this.closed=!0,D)this.terminal=D;if(this.resolver){let $=this.resolver;this.resolver=null,$({value:void 0,done:!0})}}async*iter(){while(!0){if(this.buffer.length>0){yield this.buffer.shift();continue}if(this.closed)return;let D=await new Promise(($)=>{this.resolver=$});if(D.done)return;yield D.value}}}async function hc(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=kc.join(J,`${D}${G.toLowerCase()}`);try{if((await bc.stat(Y)).isFile())return Y}catch{}}}return null}function ME(D,$){try{D.kill($)}catch{}}function gc(D){try{D.stdin.end()}catch{}}function yc(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 ZE=120000,vc=1,xc=600000;var PE=M(()=>{S1()});var qE=M(()=>{LG();_E();IG();PE()});function bG(D){switch(D.type){case"assistant":return uc(D);case"user":return mc(D);case"result":return pc(D);case"stream_event":return cc(D);default:return[]}}function uc(D){let $=[],F=D.message??{};for(let X of F.content??[]){let J=dc(X);if(J)$.push(J)}return ic($,F),$}function mc(D){let $=[],F=D.message??{};for(let X of F.content??[])if(X.type==="tool_result")$.push(LE(X));return $}function pc(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=sc(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 cc(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 dc(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:jE(F,X)}}case"tool_result":return LE(D);default:return null}}function LE(D){let $=typeof D.tool_use_id==="string"?D.tool_use_id:"",F=D.is_error===!0,X=lc(D.content);return{type:"tool_result",id:$,name:"",content:X,...F?{isError:!0}:{}}}function lc(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 ic(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 jE(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=nc($);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 nc(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 sc(D){switch(D){case"success":case"completion":return"stop";case"error":return"error";default:return"stop"}}function b1(D,$){let X=(D+$).split(/\r?\n/),J=X.pop()??"";return{lines:X.filter((G)=>G.trim().length>0),remainder:J}}function kG(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??Q$,this.writeLine=D.writeLine}async handleLine(D){if(D.type!=="control_request")return[];let $=D,F=await this.policy.decide($).catch((J)=>({decision:"deny",reason:`policy error: ${J instanceof Error?J.message:String(J)}`})),X=rc($,F);if(this.writeLine(`${JSON.stringify(X)}
|
|
285
|
+
`),F.decision==="ask"){let J=oc($);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 rc(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 oc(D){let $=D.request;if(typeof $.tool_use_id==="string")return $.tool_use_id;if(typeof $.toolUseId==="string")return $.toolUseId;return}var Q$;var vG=M(()=>{Q$={decide:async(D)=>({decision:"allow"})}});import{spawn as ac}from"child_process";import{once as tc}from"events";import ec from"fs/promises";import Dd 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 $=Jd(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??ac,J=Yd(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??Q$,writeLine:(z)=>{try{B.stdin.write(z)}catch{}}});H.sendUserMessage($);let W=this.options.timeoutMs??$d,U=setTimeout(()=>IE(B,"SIGKILL"),W),Q="",_=null,A="",O=!1,C=tc(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=()=>IE(B,"SIGTERM");D.signal?.addEventListener("abort",K,{once:!0});try{for await(let z of B.stdout){let{lines:N,remainder:S}=b1(Q,z.toString("utf8"));Q=S;for(let f of N){let L=kG(f);if(!L)continue;let q=Gd(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(U),D.signal?.removeEventListener("abort",K),Xd(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=TE(D??this.options.model,this.options.extraArgs,$),J=await(this.options.resolveClaudeBinary??Fd)();if(J)return{cmd:J,args:F};return{cmd:"npx",args:["-y",`@anthropic-ai/claude-code@${this.options.cliVersion?.trim()||C$}`,...F]}}}function TE(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 Fd(){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=Dd.join(X,`claude${J.toLowerCase()}`);try{if((await ec.stat(G)).isFile())return G}catch{}}}return null}function IE(D,$){try{D.kill($)}catch{}}function Xd(D){try{D.stdin.end()}catch{}}function Jd(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 Yd(D){if(!D||typeof D.sessionId!=="string"||D.sessionId.length===0)return;return D.sessionId}function Gd(D){if(!D||typeof D!=="object"||Array.isArray(D))return"";let $=D.session_id;return typeof $==="string"&&$.length>0?$:""}var C$="2.1.112",$d=120000,K$="claude-code";var wE=M(()=>{S1();vG()});var SE=M(()=>{wE();vG()});function hG(D){let $=D.params??{};switch(D.method){case"codex/event/assistant_message":return fE($);case"codex/event/thinking":return bE($);case"codex/event/token_usage":return Bd($);case"codex/event/tool_call":return Hd($);case"codex/event/tool_result":return Wd($);case"codex/event/stop":return Vd($);case"codex/event/error":return[{type:"error",error:typeof $.message==="string"?$.message:"codex error"}];case"item/agentMessage/delta":return fE($);case"item/reasoning/textDelta":case"item/reasoning/summaryTextDelta":return bE($);case"thread/tokenUsage/updated":return Ud($);case"turn/completed":return Qd($);case"error":return _d($);default:return[]}}function fE(D){let $=xE(D.delta,D.text);if(!$)return[];return[{type:"assistant_message_delta",delta:$}]}function bE(D){let $=xE(D.delta,D.text);if(!$)return[];return[{type:"thinking_delta",delta:$}]}function Bd(D){let $=D.usage??{};return[{type:"token_usage",usage:{inputTokens:$.input_tokens??0,outputTokens:$.output_tokens??0}}]}function Hd(D){if(!D.id||!D.name)return[];let $=D.arguments??{};return[{type:"tool_use",id:D.id,name:D.name,arguments:$,action:kE(D.name,$),...D.status?{status:Ad(D.status)}:{}}]}function Wd(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 Vd(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:vE(D.reason)}),$}function Ud(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 Qd(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:xG(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 _d(D){let $=xG(D.error)??xG(D);if(Kd($))return[];return[{type:"error",error:$??"codex error"}]}function kE(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=Cd($);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 vE(D){switch(D){case"max_tokens":return"length";case"cancelled":return"cancelled";case"error":return"error";case"stop":default:return"stop"}}function Ad(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 xE(...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 xG(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 Kd(D){return/^Reconnecting\.\.\. \d+\/\d+$/.test(D?.trim()??"")}function Cd(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 gG=()=>{};import{spawn as Od}from"child_process";import{once as Rd}from"events";import Ed from"fs/promises";import Zd 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 $=jd(D.messages);if($===null){yield{type:"error",error:"Codex executor requires a user message"},yield{type:"finish",reason:"error"};return}let F=Id(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??Od)(J.cmd,J.args,{cwd:X,env:I2(this.options.env)}),B=new yE,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??hE}),W="",U=(R)=>{let{lines:z,remainder:N}=f1(W,R.toString("utf8"));W=N;for(let S of z)H.handleLine(S)};Y.stdout.on("data",U);let Q=null;Y.on("error",(R)=>{Q=R.message});let _=Rd(Y,"exit").then((R)=>R[0]??null).catch((R)=>{return Q=R instanceof Error?R.message:String(R),null});_.then((R)=>{if(R===0)return;let z=Q??(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??hE,O=setTimeout(()=>gE(Y,"SIGKILL"),A),C=!1,K=()=>{C=!0,gE(Y,"SIGTERM")};D.signal?.addEventListener("abort",K,{once:!0});try{await H.request("initialize",{protocolVersion:Md,clientInfo:{name:"aiworker",version:"0.2.0"},capabilities:{experimentalApi:!0}});let R=D.model??this.options.model,z=Nd(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:{...Pd(N)}}}let f=!1;for await(let q of B.iter())if(yield q,q.type==="finish")f=!0;let L=B.terminal;if(L?.kind==="error")yield{type:"error",error:L.message},yield{type:"finish",reason:C?"cancelled":"error"};else if(!f)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",U),Ld(Y),await _.catch(()=>null)}}handleNotification(D,$){for(let F of hG(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(!zd(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??qd)();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 zd(D){if(!(D instanceof Error))return!1;return D.message.includes("thread_start")||D.message.includes("unknown variant")||D.message.includes("Invalid request")}function Nd(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 Pd(D){return{protocol:"current",threadId:D.threadId,...D.path===void 0?{}:{path:D.path}}}class yE{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 qd(){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=Zd.join(X,`codex${J.toLowerCase()}`);try{if((await Ed.stat(G)).isFile())return G}catch{}}}return null}function gE(D,$){try{D.kill($)}catch{}}function Ld(D){try{D.stdin.end()}catch{}}function jd(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 Id(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",hE=120000,Md=1,R$="codex";var uE=M(()=>{S1();gG()});var mE=M(()=>{uE();gG()});function yG(D){try{let $=JSON.parse(D);if($&&typeof $==="object"&&"type"in $&&typeof $.type==="string")return $;return null}catch{return null}}function uG(D){switch(D.type){case"system":return[];case"assistant_message":return Td(D);case"thinking":return wd(D);case"tool_use":return Sd(D);case"tool_result":return fd(D);case"token_usage":return bd(D);case"stop":case"end":return kd(D);case"error":return[{type:"error",error:typeof D.message==="string"?D.message:"cursor error"}];default:return[]}}function mG(D){let $=D.session_id;if(typeof $==="string"&&$.length>0)return $;return""}function Td(D){let $=dE(D.delta,D.text);if(!$)return[];return[{type:"assistant_message_delta",delta:$}]}function wd(D){let $=dE(D.delta,D.text);if(!$)return[];return[{type:"thinking_delta",delta:$}]}function Sd(D){if(!D.id||!D.name)return[];let $=D.input??{};return[{type:"tool_use",id:D.id,name:D.name,arguments:$,action:cE(D.name,$),...D.status?{status:vd(D.status)}:{}}]}function fd(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 bd(D){let $=D.usage??{};return[{type:"token_usage",usage:{inputTokens:$.input_tokens??0,outputTokens:$.output_tokens??0}}]}function kd(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:pE(D.reason)}),$}function pE(D){switch(D){case"length":return"length";case"cancelled":return"cancelled";case"error":return"error";case"stop":case"end_turn":default:return"stop"}}function vd(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 cE(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=xd($);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 dE(...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 xd(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 pG=()=>{};import{spawn as hd}from"child_process";import{once as gd}from"events";import yd from"fs/promises";import ud 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 $=dd(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=ld(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??hd)(J.cmd,J.args,{cwd:F,env:I2(this.options.env)});try{Y.stdin.write($),Y.stdin.end()}catch{}let B=this.options.timeoutMs??md,H=setTimeout(()=>lE(Y,"SIGKILL"),B),W="",U=null,Q="",_=!1,A=gd(Y,"exit").then((R)=>R[0]??null).catch((R)=>{return U=R instanceof Error?R.message:String(R),null});Y.on("error",(R)=>{U=R.message});let O=!1,C=()=>{O=!0,lE(Y,"SIGTERM")};D.signal?.addEventListener("abort",C,{once:!0});try{for await(let R of Y.stdout){let{lines:z,remainder:N}=b1(W,R.toString("utf8"));W=N;for(let S of z){let f=yG(S);if(!f)continue;let L=mG(f);if(L){if(this.lastSessionId=L,L!==Q)Q=L,yield{type:"engine_binding",engine:M$,binding:{sessionId:L}}}for(let q of uG(f)){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),cd(Y)}let K=await A;if(!_){if(X!==void 0)yield{type:"engine_binding",engine:M$,binding:null};if(U)yield{type:"error",error:U};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??pd)();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=iE({model:J,...G===void 0?{}:{resumeSessionId:G},...this.options.extraArgs===void 0?{}:{extraArgs:this.options.extraArgs}});return{cmd:X,args:Y}}}function iE(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 pd(){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=ud.join(X,`cursor-agent${J.toLowerCase()}`);try{if((await yd.stat(G)).isFile())return G}catch{}}}return null}function lE(D,$){try{D.kill($)}catch{}}function cd(D){try{D.stdin.end()}catch{}}function dd(D){for(let $=D.length-1;$>=0;$--){let F=D[$];if(F&&F.role==="user"&&typeof F.content==="string"&&F.content.length>0)return F.content}return null}function ld(D){if(!D||typeof D.sessionId!=="string"||D.sessionId.length===0)return;return D.sessionId}var md=120000,M$="cursor";var nE=M(()=>{S1();pG()});var sE=M(()=>{nE();pG()});class dG{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*rE(this.primary,D);if($.kind==="ok")return;if($.yielded)throw $.error;let F=id($.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*rE(J.executor,D);if(B.kind==="ok")return;if(B.yielded)throw B.error;X=B.error}}throw X}}async function*rE(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 id(D){if(D===null||D===void 0)return"unknown";let $=oE(D,"status")??oE(D,"statusCode"),F=cG(D,"code"),X=cG(D,"name"),G=(cG(D,"message")??nd(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 oE(D,$){if(typeof D!=="object"||D===null)return;let F=D[$];return typeof F==="number"?F:void 0}function cG(D,$){if(typeof D!=="object"||D===null)return;let F=D[$];return typeof F==="string"?F:void 0}function nd(D){if(typeof D==="string")return D;if(D instanceof Error)return D.message;try{return String(D)}catch{return""}}import{Buffer as aE}from"buffer";import{spawn as tE}from"child_process";import{once as eE}from"events";class lG{opts;name="cli";constructor(D){this.opts=D}async health(){let D=new Date().toISOString();try{let $=tE(this.opts.command,["--version"],{cwd:this.opts.cwd,env:I2(this.opts.env),stdio:["ignore","pipe","pipe"]}),F=await Promise.race([eE($,"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=tE(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 eE(F,"exit");if(clearTimeout(G),Y!==0){let B=aE.concat(J).toString("utf8");throw Error(`CLI executor exited with ${Y??"null"}: ${B||"(no stderr)"}`)}return aE.concat(X).toString("utf8")}}var DZ=M(()=>{S1()});var sd,rd,od,N$;var iG=M(()=>{mD();sd=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()}),rd=V.object({role:V.enum(["system","user","assistant","tool"]).optional(),content:V.string().nullable().optional(),tool_calls:V.array(sd).optional()}),od=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:rd,finish_reason:V.enum(["stop","length","tool_calls","content_filter","function_call"]).nullable()})),usage:od.nullish()})});async function nG(D){let $=D.baseUrl.replace(/\/+$/,""),F=D.timeoutMs??ad,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 td(Y.body,()=>{clearTimeout(J),D.signal?.removeEventListener("abort",G)})}async function*td(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=ed(J);if(B===-1)break;let H=J.slice(0,B);J=J.slice(B).replace(/^\r?\n\r?\n/,"");let W=$Z(H);if(!W)continue;if(W==="[DONE]"){yield{type:"done"};return}let U;try{U=JSON.parse(W)}catch{continue}let Q=N$.safeParse(U);if(!Q.success)continue;yield{type:"chunk",chunk:Q.data}}}if(J.trim().length>0){let G=$Z(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 ed(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 $Z(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 ad=60000,X7;var FZ=M(()=>{iG();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 XZ=M(()=>{FZ();iG()});class sG{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($l),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(Dl),$.tool_choice="auto";let F;try{F=await nG({baseUrl:this.baseUrl,apiKey:this.apiKey,timeoutMs:this.timeoutMs,body:$,signal:D.signal})}catch(Y){yield{type:"error",error:JZ(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)Fl(X,W);if(B.finish_reason)J=Jl(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:JZ(Y)};return}for(let[,Y]of Array.from(X.entries()).sort(([B],[H])=>B-H)){let B=Xl(Y);if(B)yield B}if(G)yield{type:"token_usage",usage:G};yield{type:"finish",reason:J??"stop",...G?{usage:G}:{}}}}function Dl(D){return{type:"function",function:{name:D.name,description:D.description,parameters:D.inputSchema}}}function $l(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 Fl(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 Xl(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 Jl(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 JZ(D){if(D instanceof X7)return D.message;if(D instanceof Error)return D.message;return"Unknown executor error"}var YZ=M(()=>{XZ()});class rG{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 GZ=M(()=>{KG()});import BZ from"process";function aG(D){let $=Yl(D);if(!D.fallbacks||D.fallbacks.length===0)return $;let F=D.fallbacks.map((X)=>({executor:aG(X.executor),onErrorKinds:X.onErrorKinds,maxRetries:X.maxRetries??1}));return new dG($,F)}function Yl(D){let $=J8(D);switch($.engine){case"http":{let F=$.body;return new sG({baseUrl:F.baseUrl,apiKey:F.apiKey,model:$.modelId??F.model,timeoutMs:F.timeoutMs})}case"mcp":{let F=$.body;return new rG({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=oG(F.env,X?.env);return new lG({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??BZ.env.CLAUDE_CLI_VERSION??C$,G=$.modelId??F.model,Y=HZ(F.extraArgs,X?.extraArgs),B=oG(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=HZ(F.extraArgs,X?.extraArgs),B=oG(F.env,X?.env),H=TG(F.agent);return new U$({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??BZ.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 HZ(D,$){if(!D&&!$)return;return[...D??[],...$??[]]}function oG(D,$){if(!D&&!$)return;return{...D??{},...$??{}}}var WZ=M(()=>{V1();qE();SE();mE();sE();DZ();YZ();GZ()});import{Buffer as VZ}from"buffer";import{spawn as Gl}from"child_process";import{once as Bl}from"events";import G3 from"fs/promises";import V8 from"path";function UZ(D,$,F){if(!AZ.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 tG{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 $=UZ(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 $=UZ(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(!AZ.test(F))return;await this.disposeWorkspace(F).catch(()=>{return})}))}async addGitWorktree(D,$){let F=await _Z(["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 _Z(["worktree","remove","--force",$],D)).code===0}}async function P$(D){try{return await G3.stat(D),!0}catch{return!1}}async function _Z(D,$){let F=Gl("git",D,{cwd:$,env:CE(),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 Bl(F,"exit");return{code:G,stdout:VZ.concat(X).toString("utf8"),stderr:VZ.concat(J).toString("utf8")}}var AZ,q$;var KZ=M(()=>{S1();AZ=/^[\w-]{1,128}$/;q$=class q$ extends Error{constructor(D){super(D);this.name="WorkspaceEscapeError"}}});function CZ(D){let $=[D.channel,D.accountId,D.chatId];if(D.threadId!==void 0)$.push(D.threadId);return $.map(encodeURIComponent).join(":")}async function OZ(D){let $=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 RZ(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 EZ(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 Wl(){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 Vl(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:Wl()},{role:"user",content:X.join(`
|
|
302
|
+
`)}]}async function ZZ(D,$,F,X,J,G){let Y={messages:Vl(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 eG(D,$=Hl){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)=>!Ul(J)).slice(0,$).reverse().map((J)=>({role:J.role,content:J.content}))}function Ul(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 Hl=4;var MZ=M(()=>{bD();JD();_0()});function Kl(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 Al+Kl(D.content)}function DB(D){return D.reduce(($,F)=>$+k1(F),0)}function Cl(D){return D?.contextWindowTokens!==void 0||D?.reserveTokens!==void 0||D?.keepRecentTokens!==void 0||D?.compaction?.enabled===!0||D?.compaction?.triggerTokens!==void 0}function $B(D,$){if(!Cl(D))return null;let F=D?.contextWindowTokens??Ol($)??Ql,X=Zl(D?.reserveTokens??El(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 NZ(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 Ol(D){try{let F=J8(D).body,X=Ml(F.contextWindowTokens);if(X!==null)return X;let J=J7(D);return J===void 0?null:Rl(J)}catch{return null}}function Rl(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 El(D){return Math.min(_l,Math.floor(D/4))}function Zl(D,$){return Math.max(0,Math.min(D,Math.max(0,$-1)))}function Ml(D){return typeof D==="number"&&Number.isInteger(D)&&D>0?D:null}var Ql=8192,_l=1024,zZ=2000,Al=6;var PZ=M(()=>{V1()});function qZ(D,$){if(!$)return"auto";for(let F of $.rules)if(zl(F.pattern,D))return F.action;return $.default}function zl(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 YB{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=TZ(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:DB(W)});let U=J7(this.deps.config.executor),Q=jZ($),_=TZ($),A=this.deps.config.executor.engine,O=this.buildAgentRunInput({messages:W,model:U,workspace:F,signal:X,sessionKey:G,engine:A}),C=await this.collectAssistantText(O,B.id,Q,J,G,_);if(!C.ok&&C.staleBindingCleared===!0&&O.engineBinding!==void 0&&C.text.length===0)O=this.buildAgentRunInput({messages:W,model:U,workspace:F,signal:X,sessionKey:G,engine:A}),C=await this.collectAssistantText(O,B.id,Q,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:DB(W)}),O=this.buildAgentRunInput({messages:W,model:U,workspace:F,signal:X,sessionKey:G,engine:A}),C=await this.collectAssistantText(O,B.id,Q,J,G,_),!C.ok&&C.staleBindingCleared===!0&&O.engineBinding!==void 0&&C.text.length===0)O=this.buildAgentRunInput({messages:W,model:U,workspace:F,signal:X,sessionKey:G,engine:A}),C=await this.collectAssistantText(O,B.id,Q,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:_},...Q===void 0?{}:{taskId:Q},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:_},...Q===void 0?{}:{taskId:Q}}),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(FJ(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 wl(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 $=CZ(D),F=await OZ($),J=(F?!0:await RZ(D))?null:await EZ(D),G=F??J;if(!G){let Q=this.createConversation(D);return this.upsertSession($,D,Q.id),{conversation:Q,sessionKey:$}}if(J)this.upsertSession($,D,G.id);if(Sl(D)){this.closeConversation(G);let Q=this.createConversation(D);return this.rotateSession($,D,Q.id,fl(D)),{conversation:Q,sessionKey:$}}let Y=await this.provisionWorkspace(G.id),B=await eG(G.id),H=J7(this.deps.config.executor),W=await ZZ(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:XB(G),sessionKey:$};this.closeConversation(G);let U=this.createConversation(D);return this.rotateSession($,D,U.id,"classifier:new-topic"),{conversation:U,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=jZ(D);return this.deps.bus.emit("conversation.created",{conversationId:F,channel:D.channel,chatId:D.chatId,...G===void 0?{}:{taskId:G}}),XB(J)}upsertSession(D,$,F){eX({sessionKey:D,currentConversationId:F,channel:$.channel,chatId:$.chatId,...$.threadId===void 0?{}:{threadId:$.threadId},accountId:$.accountId})}rotateSession(D,$,F,X){if(!DJ({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=$B(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:U}=Nl(J,W);if(U.length===0)return{conversation:D.conversation,compacted:!1};let Q=U[0].id,_=U[U.length-1].id,A=await this.runPreCompactionMemoryFlush({conversationId:D.conversation.id,previousSummary:D.conversation.summary??null,rows:U,compaction:$,workspace:D.workspace,signal:D.signal,notifyActivity:D.notifyActivity,fromId:Q,throughId:_}),O;try{O=await this.generateCompactionSummary({previousSummary:D.conversation.summary??null,rows:U,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:LZ,compactedFromMessageId:Q,compactedThroughMessageId:_,sourceMessageCount:U.length,previousCompactionMessageId:X?.messageId??null,memoryFlush:A.attempted?{status:A.status,at:A.at,...A.error===void 0?{}:{error:A.error}}:{status:"disabled"}}),createdAt:C}).run(),K.update(p).set({summary:O,lastActiveAt:C}).where(k(p.id,D.conversation.id)).run(),$J(D.sessionKey,{at:C,...A.attempted&&A.at!==void 0?{memoryFlushAt:A.at}:{}});let R=K.select().from(p).where(k(p.id,D.conversation.id)).get();return{conversation:R?XB(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:LZ,compactedFromMessageId:D.fromId,compactedThroughMessageId:D.throughId};try{let J=(await this.runSuppressedExecutor({messages:jl(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:Ll(D.previousSummary,D.rows,D.compaction),workspace:D.workspace,signal:D.signal,notifyActivity:D.notifyActivity})).trim();if(F.length>0)return F;return Il(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=wZ(X);if(J?.kind!=="compaction")continue;let G=Tl(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)=>!IZ(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)=>!IZ(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=$B(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 NZ({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 eG(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,$??zZ).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 $=qZ(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??_G,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 jZ(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 Nl(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=Pl(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 Pl(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=ql(D,X);if(J===null||J>=X)break;X=J}return D.slice(X)}function ql(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 Ll(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:",GB($,F.maxSummaryMessages??JB)].join(`
|
|
305
|
+
`)}]}function jl(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:",GB($,F.maxSummaryMessages??JB)].join(`
|
|
307
|
+
`)}]}function GB(D,$){if(D.length<=$)return D.map(FB).join(`
|
|
308
|
+
`);let F=Math.ceil($/2),X=Math.floor($/2),J=D.length-F-X;return[...D.slice(0,F).map(FB),`... ${J} transcript rows omitted from summarizer prompt ...`,...D.slice(D.length-X).map(FB)].join(`
|
|
309
|
+
`)}function FB(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 Il(D,$){let F=$.length===0?"no rows":`rows #${$[0].id}-#${$[$.length-1].id}`;return[D?.trim()||"",`Compacted ${F}.`,GB($,Math.min(12,JB))].filter((X)=>X.length>0).join(`
|
|
310
|
+
|
|
311
|
+
`)}function IZ(D){if(D.role!=="system")return!1;let $=wZ(D);return $?.kind==="compaction"||$?.kind==="memory-flush"}function wZ(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 Tl(D){return typeof D==="number"&&Number.isInteger(D)&&D>0?D:null}function wl(D){return D!==null&&typeof D==="object"&&!Array.isArray(D)}function Sl(D){if(!D.raw||typeof D.raw!=="object"||Array.isArray(D.raw))return!1;let $=D.raw;return $.source==="gateway"&&$.sessionReset===!0}function TZ(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 fl(D){if(!D.raw||typeof D.raw!=="object"||Array.isArray(D.raw))return"manual";let $=D.raw.resetCommand;return $==="/new"||$==="/reset"?`manual:${$}`:"manual"}function XB(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 JB=120,LZ=1;var SZ=M(()=>{cD();bD();JD();_0();V9();MZ();B$();PZ()});function v1(D,$,F){let X=FE(D,$),J=aG($.executor),G=new W9($.channels),Y=new P9,B=bl($),H=new I1,W=new YB({config:$,brain:X,executor:J,bus:Y,workerId:D,workspaces:B,processes:F.processes,approvals:H}),U=JE(Y),Q=$.evolution.enabled?UE():()=>{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(){U(),Q(),H.dispose(),_.stop(),L_()}}}function bl(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 tG({root:i.WORKER_DATA_ROOT,...$?{subdir:$}:{},...i.WORKER_WORKSPACE_GIT_ORIGIN?{gitOrigin:i.WORKER_WORKSPACE_GIT_ORIGIN}:{}})}var fZ=M(()=>{c4();XE();BJ();V9();iJ();nJ();YE();QE();V1();WZ();KZ();B$();SZ()});var bZ=M(()=>{c4()});import{Buffer as B3}from"buffer";import{createCipheriv as kl,createDecipheriv as vl,randomBytes as xl}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!==gl)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 $=xl(hl),F=kl(kZ,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=vl(kZ,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 kZ="aes-256-gcm",hl=12,gl=32;var BB=M(()=>{bD();_0()});function vD(){if(!j$)j$=new H3(i.AIWORKER_MASTER_KEY,g());return j$}function vZ(){j$=null}var j$=null;var xZ=M(()=>{bD();bZ();BB();BB()});function W3(D={}){let $=I$(D.limit,yl,1,ul),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)=>gZ(Y,D.config)),page:{limit:$,offset:F,hasMore:J.length>$}}}function V3(D,$){let F=H0(D);return F===null?null:gZ(F,$)}function U3(D={}){let $=D.apply===!0,F=HB(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 HB(D={}){let $=I$(D.olderThanDays,cl,0,3650),F=I$(D.limit,ml,1,pl),X=sl(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=nl(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,U)=>W+U.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 gZ(D,$){let F=il($),X=yZ(D.engineBindings)?D.engineBindings:{},J=hZ(F,X[F],ol(X,F)),G=Object.keys(X).sort().map((Y)=>hZ(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:ll(D),at:D.memoryFlushAt,compactionCount:D.compactionCount,memoryFlushCompactionCount:D.memoryFlushCompactionCount},engineBindings:{configuredEngine:F,configured:J,all:G}}}function hZ(D,$,F){let X=yZ($)?Object.keys($).sort():[];return{engine:D,present:F,valueType:F?rl($):"unknown",fieldCount:X.length,fields:X,redacted:!0}}function ll(D){if(D.compactionCount===0)return"not-needed";if(D.memoryFlushAt===null)return"never";return D.memoryFlushCompactionCount>=D.compactionCount?"current":"stale"}function il(D){let F=D?.executor?.engine;return typeof F==="string"&&F.length>0?F:"unknown"}function nl(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 sl(D,$){let F=D===void 0?new Date:new Date(D);return new Date(F.getTime()-$*dl).toISOString()}function rl(D){if(D===null)return"null";if(Array.isArray(D))return"array";let $=typeof D;if($==="boolean"||$==="number"||$==="object"||$==="string")return $;return"unknown"}function yZ(D){return D!==null&&typeof D==="object"&&!Array.isArray(D)}function ol(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 yl=50,ul=200,ml=50,pl=200,cl=30,dl=86400000;var uZ=M(()=>{bD();_0()});var mZ={};n8(mZ,{workerEnv:()=>i,timingSafeEqualStrings:()=>u2,stopGatewayNode:()=>vR,startGatewayNode:()=>G$,runClosedTranscriptMaintenance:()=>U3,resetSecretsVaultForTests:()=>vZ,resetAvailabilityProbeForTests:()=>KC,redactSecrets:()=>i4,readConfig:()=>E0,putSecret:()=>$3,putConfig:()=>o9,printBootstrapIfJustMinted:()=>_1,planClosedTranscriptMaintenance:()=>HB,mirrorConfigToYaml:()=>a9,mintWorkerId:()=>d4,mintApiToken:()=>M6,loadOrSeedConfig:()=>U1,loadOrMintIdentity:()=>Q1,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();M_();V9();iJ();nJ();K5();xR();VG();hR();WG();yR();uR();mR();B$();lR();fZ();xZ();l4();uZ()});import o from"process";import{EventEmitter as pz}from"events";function d$(D){return D==null?[]:Array.isArray(D)?D:[D]}function cz(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 dz(D,$){D=D||[],$=$||{};var F,X,J,G,Y,B={_:[]},H=0,W=0,U=0,Q=D.length;let _=$.alias!==void 0,A=$.unknown!==void 0,O=$.default!==void 0;if($.alias=$.alias||{},$.string=d$($.string),$.boolean=d$($.boolean),_)for(F in $.alias){X=$.alias[F]=d$($.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<Q;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(U=W+1;U<J.length;U++)if(J.charCodeAt(U)===61)break;G=J.substring(W,U),Y=J.substring(++U)||(H+1===Q||(""+D[H+1]).charCodeAt(0)===45||D[++H]),X=W===2?[G]:G;for(U=0;U<X.length;U++){if(G=X[U],A&&!~C.indexOf(G))return $.unknown("-".repeat(W)+G);cz(B,G,U+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 yB=(D)=>D.replace(/[<[].+/,"").trim(),lz=(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},iz=(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 $},hB=(D)=>{return D.sort(($,F)=>{return $.length>F.length?-1:1})[0]},gB=(D,$)=>{return D.length>=$?D:`${D}${" ".repeat($-D.length)}`},nz=(D)=>{return D.replace(/([a-z])-([a-z])/g,($,F,X)=>{return F+X.toUpperCase()})},sz=(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)?{}:[]},rz=(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)}}},oz=(D)=>{let $=/([^\\\/]+)$/.exec(D);return $?$[1]:""},uB=(D)=>{return D.split(".").map(($,F)=>{return F===0?nz($):$}).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 mB{constructor(D,$,F){if(this.rawName=D,this.description=$,this.config=Object.assign({},F),D=D.replace(/\.\*/g,""),this.negated=!1,this.names=yB(D).split(",").map((X)=>{let J=X.trim().replace(/^-{1,2}/,"");if(J.startsWith("no-"))this.negated=!0,J=J.replace(/^no-/,"");return uB(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 az=process.argv,tz=`${process.platform}-${process.arch} node-${process.version}`;class l${constructor(D,$,F={},X){this.rawName=D,this.description=$,this.config=F,this.cli=X,this.options=[],this.aliasNames=[],this.name=yB(D),this.args=lz(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 mB(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 i$}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=hB($.map((W)=>W.rawName));G.push({title:"Commands",body:$.map((W)=>{return` ${gB(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=hB(B.map((W)=>W.rawName));G.push({title:"Options",body:B.map((W)=>{return` ${gB(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}/${$} ${tz}`)}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 i$ extends l${constructor(D){super("@@global@@","",{},D)}}var E7=Object.assign;class pB extends pz{constructor(D=""){super();this.name=D,this.commands=[],this.rawArgs=[],this.args=[],this.options={},this.globalCommand=new i$(this),this.globalCommand.usage("<command> [options]")}usage(D){return this.globalCommand.usage(D),this}command(D,$,F){let X=new l$(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=az,{run:$=!0}={}){if(this.rawArgs=D,!this.name)this.name=D[1]?oz(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=iz(F),J=[],G=D.indexOf("--");if(G>-1)J=D.slice(G+1),D=D.slice(0,G);let Y=dz(D,X);Y=Object.keys(Y).reduce((Q,_)=>{return E7(E7({},Q),{[uB(_)]:Y[_]})},{_:[]});let B=Y._,H={"--":J},W=$&&$.config.ignoreOptionDefaultValue?$.config.ignoreOptionDefaultValue:this.globalCommand.config.ignoreOptionDefaultValue,U=Object.create(null);for(let Q of F){if(!W&&Q.config.default!==void 0)for(let _ of Q.names)H[_]=Q.config.default;if(Array.isArray(Q.config.type)){if(U[Q.name]===void 0)U[Q.name]=Object.create(null),U[Q.name].shouldTransform=!0,U[Q.name].transformFunction=Q.config.type[0]}}for(let Q of Object.keys(Y))if(Q!=="_"){let _=Q.split(".");sz(H,_,Y[Q]),rz(H,U)}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 ez=(D="")=>new pB(D),cB=ez;JD();var kH={name:"@zonease/aiworker-cli",type:"module",version:"0.4.9",description:"AIWorker fleet CLI \u2014 gateway / worker / operator \u5355\u4E00\u4E8C\u8FDB\u5236",license:"MIT",homepage:"https://github.com/ZonEaseTech/aiworker#readme",repository:{type:"git",url:"git+https://github.com/ZonEaseTech/aiworker.git"},publishConfig:{access:"public"},bin:{aiworker:"./dist/aiworker.js"},files:["README.md","dist/"],engines:{bun:">=1.1"},scripts:{typecheck:"tsc --noEmit",test:"bun test --timeout=15000","test:stress":"bun test --timeout=15000 --rerun-each=3 src/commands/init.integration.test.ts src/commands/sessions.test.ts",build:"bun run --filter '@zonease/aiworker-web' build && bun run build:bundle","build:bundle":"bun build --target=bun --minify --outfile=dist/aiworker-bun.js src/aiworker.ts && bun scripts/build-publish-manifest.ts",prepublishOnly:"bun run build","smoke:aiworker-run":"bun scripts/smoke-aiworker-run.ts","smoke:aiworker-fleet":"bun scripts/smoke-aiworker-fleet.ts"},devDependencies:{"@types/bun":"^1.2.13","@zonease/aiworker-api":"workspace:*","@zonease/aiworker-core":"workspace:*","@zonease/aiworker-fs-layout":"workspace:*","@zonease/aiworker-gateway":"workspace:*","@zonease/aiworker-gateway-proto":"workspace:*","@zonease/aiworker-shared":"workspace:*","@zonease/aiworker-storage-sqlite":"workspace:*",cac:"^6.7.14",consola:"^3.4.2",typescript:"^5.8.3"}};JD();import gW from"process";D0();class B0 extends Error{code;constructor(D,$="aim_ws_error"){super(D);this.code=$;this.name="AimWsError"}}function TW(){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,f;try{f=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=f;let L=setTimeout(()=>{if(S)return;S=!0;try{f.close()}catch{}N(new B0(`\u8FDE\u63A5 gateway \u8D85\u65F6 (>${R}ms): ${K.url}`,"connect_timeout"))},R);f.onopen=()=>{let q={type:"connect",role:$1.OPERATOR,agentId:K.deviceId,deviceId:K.deviceId,auth:{token:K.token},...K.meta?{meta:K.meta}:{}};try{f.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()},f.onmessage=(q)=>{let j=typeof q.data==="string"?q.data:q.data instanceof ArrayBuffer?new TextDecoder().decode(q.data):String(q.data);H(j)},f.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"))},f.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 U(){if(!$||F||D===null||D.readyState!==WebSocket.OPEN)throw new B0("aim client \u672A\u8FDE\u63A5\u6216\u5DF2\u5173\u95ED","not_connected")}async function Q(K,R,z){U();let N=crypto.randomUUID(),S={type:"request",id:N,method:K,...R===void 0?{}:{params:R}};return await new Promise((f,L)=>{let q=z?.timeoutMs??30000,j=null,d=null,VD={resolve:f,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 UD=z.signal;if(UD.aborted){X.delete(N),clearTimeout(j),L(UD.reason??new B0(`request ${K} \u88AB abort`,"aborted"));return}let $D=()=>{if(X.delete(N),j)clearTimeout(j);L(UD.reason??new B0(`request ${K} \u88AB abort`,"aborted"))};UD.addEventListener("abort",$D,{once:!0}),d=()=>UD.removeEventListener("abort",$D),VD.signalCleanup=d}X.set(N,VD);try{D?.send(LD(S))}catch(UD){if(X.delete(N),j)clearTimeout(j);d?.(),L(new B0(`request ${K} \u53D1\u9001\u5931\u8D25: ${UD instanceof Error?UD.message:String(UD)}`,"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 Q(K,R,z)}function A(K,R){if(!OF(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=(f)=>{if(typeof S==="function")S.call(N,f);z()};try{N.close(K,R)}catch{}})}function C(){return $&&!F&&D!==null&&D.readyState===WebSocket.OPEN}return{connect:W,request:_,requestRaw:Q,onEvent:A,close:O,isOpen:C}}X1();async function ZD(D,$={}){let F=await a7(),X=TW();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);gW.stdout.write(`${$}
|
|
325
|
+
`)}function K2(D){gW.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 yW(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 uW(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 mW(D){let $=D.timeoutMs??120000;try{return await ZD(async({client:F})=>{return await new Promise((X)=>{let J=!1,G=(U)=>{if(J)return;J=!0,X(U)},Y=setTimeout(()=>{K2({kind:"error",payload:{code:"timeout",message:`chat \u7B49\u5F85 agent.done \u8D85\u65F6 (>${$}ms)`}}),G(3)},$),B=D.workerId,H=(U)=>{if(U===null||typeof U!=="object")return!1;let Q=U.workerId;return typeof Q==="string"&&Q===B},W=[];W.push(F.onEvent(e.CHAT_MESSAGE,(U)=>{if(!H(U))return;K2({kind:e.CHAT_MESSAGE,payload:U})})),W.push(F.onEvent(e.AGENT_THINKING,(U)=>{if(!H(U))return;K2({kind:e.AGENT_THINKING,payload:U})})),W.push(F.onEvent(e.AGENT_TOOL_CALL,(U)=>{if(!H(U))return;K2({kind:e.AGENT_TOOL_CALL,payload:U})})),W.push(F.onEvent(e.AGENT_DONE,(U)=>{if(!H(U))return;K2({kind:"done",payload:U}),clearTimeout(Y);for(let Q of W)Q();G(0)})),F.request("chat.send",{workerId:D.workerId,content:D.content,...D.conversationId===void 0?{}:{conversationId:D.conversationId}},{timeoutMs:Math.min($,30000)}).then((U)=>{K2({kind:"accepted",payload:U})}).catch((U)=>{K2({kind:"error",payload:{code:"request_failed",message:U instanceof Error?U.message:String(U)}}),clearTimeout(Y);for(let Q of W)Q();G(CD(U))})})})}catch(F){return E.error(`chat \u5931\u8D25: ${F instanceof Error?F.message:String(F)}`),CD(F)}}JD();async function pW(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 cW(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 dW(){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 lW(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 iW(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 xI}from"crypto";D0();wX();fX();import{existsSync as oU,mkdirSync as Zj}from"fs";import a3 from"path";import{fileURLToPath as Mj}from"url";import{Database as zj}from"bun:sqlite";M4();var bX={};n8(bX,{registeredWorkers:()=>zD,auditEvents:()=>D8});var zD=Q0("registered_workers",{id:T("id").primaryKey(),baseUrl:T("base_url").notNull(),displayName:T("display_name").notNull(),apiTokenEnc:T("api_token_enc").notNull(),nonce:T("nonce").notNull(),authTag:T("auth_tag").notNull(),addedAt:T("added_at").notNull().$defaultFn(()=>new Date().toISOString()),addedBy:T("added_by").$type().notNull(),lastSeenAt:T("last_seen_at"),lastSeenState:T("last_seen_state").$type(),lastConfigVersion:fD("last_config_version")}),D8=Q0("audit_events",{id:fD("id").primaryKey({autoIncrement:!0}),at:T("at").notNull().$defaultFn(()=>new Date().toISOString()),actor:T("actor").notNull(),action:T("action").notNull(),workerId:T("worker_id"),detail:T("detail",{mode:"json"}).$type()},(D)=>({workerIdIdx:m0("audit_events_worker_id_idx").on(D.workerId)}));var aU=a3.dirname(Mj(import.meta.url));function Nj(D){let $=a3.resolve(aU,"../../drizzle",D);if(oU($))return $;let F=a3.resolve(aU,"drizzle",D);if(oU(F))return F;return $}var kX=Nj("fleet"),t3=null;function Pj(D){let $=D===":memory:"?D:a3.resolve(D);try{if($!==":memory:")Zj(a3.dirname($),{recursive:!0,mode:448});let F=new zj($,{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 tU(D){return t3=Pj(D),t3}function vX(){if(!t3)throw Error("Fleet database not initialized. Call initFleetDb() first.");return t3}function xX(){t3=null}function eU(D=kX){N4(vX(),{migrationsFolder:D})}JD();A2();cD();mD();import DQ from"path";import qj from"process";var Lj=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 $Q(){let D=Lj.parse(qj.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:jj(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 jj(D){if(D===":memory:")return D;let $=D&&D.length>0?D:DQ.join(Q2(),"fleet.db");return DQ.resolve($)}D0();function b0(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 Ij}from"crypto";var hX="ABCDEFGHJKMNPQRSTVWXYZ23456789",FQ=4,Tj=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??wj}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<Tj;D++){let $=this.generator();if(!this.entries.has($))return $}throw Error("PendingEnrollmentRegistry: failed to allocate unique OTP after retries")}}function wj(){return`${XQ(FQ)}-${XQ(FQ)}`}function XQ(D){let $=Ij(D),F="";for(let X=0;X<D;X++)F+=hX[$[X]%hX.length];return F}_0();import{Buffer as JQ}from"buffer";import{createCipheriv as Sj,createDecipheriv as H2D,randomBytes as fj,timingSafeEqual as W2D}from"crypto";var bj="aes-256-gcm",kj=12,vj=32,xj=/^[0-9a-f]{64}$/;function hj(D){if(!xj.test(D))throw Error("Gateway AIWORKER_MASTER_KEY must be 32-byte hex");let $=JQ.from(D,"hex");if($.length!==vj)throw Error("Gateway AIWORKER_MASTER_KEY must be 32-byte hex");return $}function T4(D,$){let F=hj($),X=fj(kj),J=Sj(bj,F,X),G=JQ.concat([J.update(D,"utf8"),J.final()]),Y=J.getAuthTag();return{ciphertext:G.toString("base64"),nonce:X.toString("base64"),authTag:Y.toString("base64")}}function gj(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,$),U={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(U).run();let{apiTokenEnc:Q,nonce:_,authTag:A,...O}=U;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:U,authTag:Q,..._}=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=`${gj(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 RI}from"buffer";import{createHash as EI}from"crypto";import{resolve as gX,sep as yj}from"path";async function S4(D){let{webStaticDir:$}=D,F=gX($),X;try{X=uj(decodeURIComponent(D.pathnameAfterPrefix))}catch{return new Response("forbidden",{status:403})}let J=X===""?"index.html":X,G=gX(F,J);if(G!==F&&!G.startsWith(F+yj))return new Response("forbidden",{status:403});let Y=Bun.file(G);if(await Y.exists())return new Response(Y);if(!mj(J)){let B=Bun.file(gX(F,"index.html"));if(await B.exists())return new Response(B)}return new Response("not found",{status:404})}function uj(D){let $=0;while($<D.length&&D[$]==="/")$+=1;return D.slice($)}function mj(D){let $=D.lastIndexOf("/");return($===-1?D:D.slice($+1)).includes(".")}cD();function YQ(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 GQ}from"buffer";import{timingSafeEqual as pj}from"crypto";function BQ(D,$){let F=GQ.from(D,"utf8"),X=GQ.from($,"utf8");if(F.length!==X.length)return!1;return pj(F,X)}function HQ(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(!BQ(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(!BQ(D.presentedToken,D.sharedSecret))return{ok:!1,reason:"invalid_token"};return{ok:!0,via:"shared-secret"}}D0();cD();var b4="/w/",p0="/api/worker",cj=60000,yX=1048576,dj=50,f4=0;async function UQ(D,$,F){let X=Date.now(),J=lj($.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 sj(D,$,F,J.value,X);let G=await ij(D,$,J.value);if(!G.ok){if(G.audit)uX(F,{workerId:J.value.workerId,method:G.audit.method,path:$.pathname,result:"error",status:G.response.status,latencyMs:mX(X),errorCode:G.audit.errorCode});return G.response}let Y=await oj({ctx:F,workerId:J.value.workerId,method:G.value.method,params:G.value.params,signal:D.signal}),B=aj(Y,G.value.transformResult);return uX(F,{workerId:J.value.workerId,method:G.value.method,path:$.pathname,result:Y.ok?"success":"error",status:B.status,latencyMs:mX(X),...Y.ok?{}:{errorCode:Y.error.code}}),B}function QQ(D){if(!D.startsWith(b4))return!1;let $=D.slice(b4.length),F=$.indexOf("/");if(F===-1)return!1;return $.slice(F).startsWith(p0)}function lj(D){if(!D.startsWith(b4))return;let $=D.slice(b4.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 ij(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=rj(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:VQ}}}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:nj}};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 U=W.value.value;if(typeof U!=="string"||U.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:U}}}}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 WQ(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 WQ(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:VQ}}}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($)&&$>yX)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>yX)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 WQ(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>yX)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 VQ(D){return D}function nj(D){return Boolean(D.removed)?{ok:!0}:D}function sj(D,$,F,X,J){if(D.method!=="GET")return A0("GET");if(f4>=dj)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`);f4+=1;let G=!1,Y=`http-sse-${crypto.randomUUID()}`,B,H=new ReadableStream({start(W){let U=new TextEncoder,Q=(C)=>{if(G)return;if(W.desiredSize!==null&&W.desiredSize<=0)return;W.enqueue(U.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;Q(`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,f4=Math.max(0,f4-1),F.operators.unregister(_),A)clearInterval(A);D.signal.removeEventListener("abort",O)};if(B=O,A=setInterval(()=>Q(`: 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}),Q(`: connected
|
|
339
|
+
|
|
340
|
+
`)},cancel(){B?.()}});return uX(F,{workerId:X.workerId,method:"events.stream",path:$.pathname,result:"success",status:200,latencyMs:mX(J)}),new Response(H,{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}function rj(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 oj(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 U={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}}})},cj),typeof Y.unref==="function")Y.unref();D.signal?.addEventListener("abort",B,{once:!0});let Q=D.ctx.forwards.allocate({operatorRequestId:F,operatorWs:U,workerId:D.workerId,method:D.method});G=Q.gatewayRequestId;try{$.ws.send(LD({type:"request",id:Q.gatewayRequestId,method:D.method,params:D.params}))}catch(_){D.ctx.forwards.consume(Q.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 aj(D,$){if(D.ok)return k4($?$(D.result):D.result,200);let F=ej(D.error.code);return k4({error:{code:F,message:D.error.message,...D.error.details===void 0?{}:{details:D.error.details}}},tj(D.error.code))}function uX(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 mX(D){return Math.max(0,Date.now()-D)}function tj(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 ej(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 _Q(D){let $=V.object({workerId:V.string().min(1)}).safeParse(D.params);if(!$.success)return pX(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 pX(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),pX(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 pX(D,$,F){let X=LD({type:"response",id:$,ok:!1,error:F});try{D.send(X)}catch{}}D0();mD();var DI=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({}),$I=V.object({events:V.array(c7),hasMore:V.boolean()}),AQ=(D,$)=>{let F=DI.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=$I.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 FI}from"crypto";var KQ=V.object({otp:V.string().min(1)}),CQ=(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}},OQ=(D,$)=>{if(!D.pendingEnrollments)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u521D\u59CB\u5316 pending enrollment registry"};let F=KQ.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=XI(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(b0(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 b0(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}}},RQ=(D,$)=>{if(!D.pendingEnrollments)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u521D\u59CB\u5316 pending enrollment registry"};let F=KQ.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:JI(X.otp)}}),b0(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 XI(D,$){let F=D.pendingEnrollments?.list().find((X)=>X.otp===$);return F?{workerId:F.workerId}:void 0}function JI(D){return FI("sha256").update(D).digest("hex").slice(0,16)}D0();mD();var YI=V.object({now:V.number().int(),online:V.array(F1)}),EQ=(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=YI.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 ZQ}from"buffer";var GI=V.object({workerId:V.string().min(1)}),MQ=async(D,$)=>{let F=GI.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 zQ(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 zQ{resolve;ctx;workerId;constructor(D,$,F){this.resolve=D;this.ctx=$;this.workerId=F}send(D){let $=typeof D==="string"?D:D instanceof ArrayBuffer?ZQ.from(new Uint8Array(D)).toString("utf8"):ZQ.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 BI=1e4;class cX{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??BI}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(!HI($))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 HI(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 WI(D){if(!D)return null;let $=Date.parse(D);if(!Number.isFinite($))return null;return $}var NQ=(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:WI(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}},PQ=(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}}},VI=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 UI(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=VI.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 U=$.persistence.countRegisteredWorkers();if(U>=$.maxWorkers)return{ok:!1,code:"quota_exceeded",message:`fleet \u5DF2\u8FBE ${$.maxWorkers} worker \u4E0A\u9650`,details:{limit:$.maxWorkers,current:U}}}let G=D.buildClient?D.buildClient(J.workerBaseUrl,J.bootstrapToken):new cX({baseUrl:J.workerBaseUrl,apiToken:J.bootstrapToken}),Y;try{Y=await G.info()}catch(U){if(U instanceof e3)return{ok:!1,code:"auth_failed",message:"worker \u62D2\u7EDD bootstrap token"};if(U instanceof B1)return{ok:!1,code:"worker_unreachable",message:U.message};if(U instanceof L8)return{ok:!1,code:"invalid_worker_info",message:U.message};throw U}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 qQ=UI(),QI=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 _I(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=QI.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 U=$.persistence.countRegisteredWorkers();if(U>=$.maxWorkers)return{ok:!1,code:"quota_exceeded",message:`fleet \u5DF2\u8FBE ${$.maxWorkers} worker \u4E0A\u9650`,details:{limit:$.maxWorkers,current:U}}}let Y;try{Y=await $.supervisor.launchLocal({displayName:G,...J.forceId===void 0?{}:{forceId:J.forceId}})}catch(U){if(U instanceof C6)return{ok:!1,code:"launch_timeout",message:U.message};if(U instanceof $8)return{ok:!1,code:"launch_failed",message:U.message};throw U}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 LQ=_I();var AI={"system.presence":EQ,"workers.list":NQ,"workers.remove":PQ,"workers.pair":qQ,"workers.launch":LQ,"token.rotate":MQ,"enroll.list":CQ,"enroll.approve":OQ,"enroll.reject":RQ,"audit.list":AQ},KI=new Set(["system.presence","workers.list","audit.list","enroll.list"]);async function jQ(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(!KI.has(F.method))D.persistence.recordAudit({actor:"gateway",action:"gateway.method.invoked",workerId:CI(Y),detail:{method:F.method,agentId:X}});if(J.routing==="operator-to-gateway"){let B=AI[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}_Q({ctx:D,operatorWs:$,operatorRequestId:F.id,method:F.method,params:Y})}function IQ(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 TQ(D,$,F){b0(D.operators,F)}function CI(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/",OI="/api/worker";function SQ(D){if(!D.startsWith(v4))return!1;let $=bQ(D);return $!==void 0&&($.ok===!1||!$.value.pathnameAfterPrefix.startsWith(kQ()))}async function fQ(D,$,F){let X=bQ($.pathname);if(X===void 0)return new Response("not found",{status:404});if(!X.ok)return wQ({error:{code:"invalid-worker-id",message:X.message}},400);let{workerId:J}=X.value;if(!F.nodes.has(J)&&!F.persistence.getRegisteredWorker(J))return wQ({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 bQ(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(kQ()))return;return{ok:!0,value:{workerId:X,pathnameAfterPrefix:J,redirectToSlash:!1}}}function kQ(){return OI.slice(1)}function wQ(D,$){return new Response(JSON.stringify(D),{status:$,headers:{"Content-Type":"application/json"}})}function vQ(D){let{config:$,context:F}=D;YQ({host:$.host,internalSharedSecret:$.internalSharedSecret}),T3({surface:"fleet",host:$.host,serveWeb:F.webStaticDir!==void 0,externalAuthAcknowledged:$.adminExternalAuthAcknowledged}),ZI({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(QQ(B.pathname))return UQ(G,B,F);if(SQ(B.pathname))return fQ(G,B,F);if(B.pathname==="/ws"||B.pathname==="/enroll-ws"){let W=Y.requestIP(G)?.address,U=D1(W);if(!U&&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 Q=B.pathname==="/enroll-ws"?"/enroll-ws":"/ws";if(Y.upgrade(G,{data:{role:void 0,agentId:void 0,deviceId:void 0,loopback:U,remoteAddress:W,connectedAt:Date.now(),subscribedAll:!0,path:Q}}))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){MI(G,Y,F,$)},close(G,Y,B){zI(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 ZI(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.
|
|
341
|
+
|
|
342
|
+
The /w/:workerId/* bridge exposes worker management APIs through gateway WS/RPC.
|
|
343
|
+
|
|
344
|
+
Fix one of these ways:
|
|
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 MI(D,$,F,X){let J=typeof $==="string"?$:RI.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",U=HQ({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(!U.ok){let Q=U.reason.startsWith("wrong_path:");if(F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.rejected",workerId:Y.role==="node"?Y.agentId:null,detail:{reason:U.reason,role:Y.role,agentId:Y.agentId,remoteAddress:D.data.remoteAddress,path:D.data.path}}),!Q&&!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:U.reason}})}let _=Q?4400:4401,A=Q?U.reason:`auth:${U.reason}`;D.close(_,A);return}if(U.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 Q=Y.enroll,_=F.pendingEnrollments.submit({workerId:Y.agentId,apiToken:Q.apiToken,displayName:Q.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:Q.displayName,deviceId:Y.deviceId,otpHash:PI(_.otp),expiresAt:_.expiresAt,path:D.data.path}}),b0(F.operators,{type:"event",name:e.ENROLLMENT_PENDING,payload:{workerId:Y.agentId,...Q.displayName===void 0?{}:{displayName:Q.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 Q=Y.enroll,_=F.persistence.upsertEnrolledWorker({workerId:Y.agentId,baseUrl:"",apiToken:Q.apiToken,displayName:Q.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:Q}=F.nodes.register({workerId:Y.agentId,deviceId:Y.deviceId,ws:D,pairedAt:Date.now(),meta:Y.meta??{}});if(Q){F.forwards.cancelByWorker(Y.agentId);try{Q.ws.close(1012,"replaced_by_new_node_connection")}catch{}}let _=F.persistence.getRegisteredWorker(Y.agentId)?.displayName;b0(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:U.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";jQ(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"){IQ(F,D,Y);return}if(Y.type==="event"){TQ(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 zI(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}}),b0(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),b0(X.operators,{type:"event",name:e.WORKER_OFFLINE,payload:{workerId:J.workerId,deviceId:J.deviceId,reason:NI($),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 NI(D){if(D===1000||D===1012||D===1001||D===1005||D===1006)return"disconnected";if(D>=4000&&D<5000)return"kicked";return"expired"}function PI(D){return EI("sha256").update(D).digest("hex").slice(0,8)}JD();import{randomBytes as xQ}from"crypto";import{mkdirSync as LI}from"fs";import{createServer as jI}from"net";import{join as hQ}from"path";import II from"process";JD();class dX{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 qI(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 qI(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 TI=/\[worker\] AIWORKER_BOOTSTRAP_TOKEN=(wtk_[\w-]{32,})/,wI=30000,SI=500;class lX{config;docker;allocatePort;pollIntervalMs;pollTimeoutMs;now;sleep;selfHostname;constructor(D){this.config=D.config,this.docker=D.docker??new dX(D.config.dockerHost),this.allocatePort=D.allocatePort??vI,this.pollIntervalMs=D.pollIntervalMs??SI,this.pollTimeoutMs=D.pollTimeoutMs??wI,this.now=D.now??Date.now,this.sleep=D.sleep??(($)=>new Promise((F)=>setTimeout(F,$))),this.selfHostname=D.selfHostname===void 0?II.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=${hQ("/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=xQ(32).toString("hex"),J=`aiworker-${xQ(4).toString("hex")}`,G=hQ(this.config.workerDataRoot,J);try{LI(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:kI(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 U=await this.awaitBootstrapToken(W.Id),Q=bI(this.config.launchBaseUrlTemplate,{containerName:J,port:String($)});return E.success(`[gateway/supervisor] ${J} bootstrapped as ${U.workerId}`),{workerId:U.workerId,apiToken:U.token,baseUrl:Q,containerId:W.Id,containerName:J}}catch(W){if(H)try{await this.docker.removeContainer(H,{force:!0,removeVolumes:!1})}catch(U){E.warn(`[gateway/supervisor] failed to cleanup ${H}: ${U.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=fI(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 fI(D){let $=TI.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 bI(D,$){return D.replace(/\{(\w+)\}/g,(F,X)=>$[X]??`{${X}}`)}function kI(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 vI(){return new Promise((D,$)=>{let F=jI();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 hI(D,$={}){tU(D.fleetDbPath),eU(kX);let F=vX(),X=new w4(F),J=new L4,G=new j4,Y=new q4({onExpire:(U,Q)=>{if(E.warn(`[gateway] forward \u53D6\u6D88 (method=${U.method} workerId=${U.workerId} reason=${Q})`),Q==="operator_gone")return;let _=Q==="timeout"?"forward_timeout":"node_gone",A=Q==="timeout"?`\u7B49\u5F85 worker ${U.workerId} \u54CD\u5E94\u8D85\u65F6`:`worker ${U.workerId} \u5728\u7B49\u5F85\u54CD\u5E94\u671F\u95F4\u4E0B\u7EBF`;try{U.operatorWs.send(LD({type:"response",id:U.operatorRequestId,ok:!1,error:{code:_,message:A,details:{workerId:U.workerId,method:U.method}}}))}catch{}}}),B=new I4({ttlMs:D.enrollOtpTtlSec*1000,onExpire:(U)=>{try{U.ws.close(4408,"enroll:expired")}catch{}try{X.recordAudit({actor:"gateway",action:"gateway.enrollment.expired",workerId:U.workerId,detail:{displayName:U.displayName,otpHash:xI("sha256").update(U.otp).digest("hex").slice(0,16)}})}catch(Q){E.warn("[gateway] \u5199 enrollment.expired audit \u5931\u8D25",Q)}try{b0(G,{type:"event",name:e.ENROLLMENT_PENDING,payload:{workerId:U.workerId,...U.displayName===void 0?{}:{displayName:U.displayName},otp:U.otp,submittedAt:U.submittedAt,expiresAt:U.expiresAt,reason:"expired"},ts:Date.now()})}catch(Q){E.warn("[gateway] \u5E7F\u64AD enrollment.pending(expired) \u5931\u8D25",Q)}}}),H=null;if(D.canLaunch)H=new lX({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 gQ(D,$={}){let X={...$Q(),...D},J=hI(X,{webStaticDir:$.webStaticDir,workerWebStaticDir:$.workerWebStaticDir}),G=vQ({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 iX,realpathSync as gI}from"fs";import{dirname as yI,resolve as H1}from"path";import yQ from"process";import{fileURLToPath as uI}from"url";function D9(D){let $=D==="fleet"?"AIWORKER_WEB_STATIC_DIR_FLEET":"AIWORKER_WEB_STATIC_DIR_WORKER",F=yQ.env[$];if(F){let W=pI(F);if(W&&iX(H1(W,"index.html")))return W}let X=mI();if(!X)return;let J=H1(X,"web",D);if(iX(H1(J,"index.html")))return J;let Y=X.endsWith(`apps${nX()}cli${nX()}src${nX()}lib`)||X.endsWith("apps/cli/src/lib")?4:3,B=H1(X,...Array.from({length:Y},()=>"..")),H=H1(B,"apps","web","dist",D);if(iX(H1(H,"index.html")))return H;return}function mI(){if(typeof import.meta.url!=="string")return;try{return yI(uI(import.meta.url))}catch{return}}function pI(D){try{return gI(H1(D))}catch{return}}function nX(){return yQ.platform==="win32"?"\\":"/"}A2();X1();import{spawn as cI}from"child_process";import{closeSync as uQ,existsSync as dI,openSync as mQ,readFileSync as lI,unlinkSync as x4,writeFileSync as iI}from"fs";import{mkdir as nI}from"fs/promises";import j8 from"process";var sI="AIWORKER_GATEWAY_INTERNAL_FOREGROUND";function pQ(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 rI(D){if(!dI(D))return null;try{let $=lI(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 oI(){await nI(Q2(),{recursive:!0})}function h4(){let D=r7(),$=o7(),F=rI(D);if(F===null)return{running:!1,pidFile:D,logFile:$};if(!pQ(F)){try{x4(D)}catch{}return{running:!1,pidFile:D,logFile:$}}return{running:!0,pid:F,pidFile:D,logFile:$}}async function cQ(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 oI();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=mQ(J,"a"),Y=mQ(J,"a"),B={...j8.env,...D.env,PORT:String(F),[sI]:"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=cI(j8.execPath,[H,"gateway","start","--port",String(F)],{env:B,cwd:j8.cwd(),detached:!0,stdio:["ignore",G,Y]});try{uQ(G)}catch{}if(Y!==G)try{uQ(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(),iI(X,`${String(W.pid)}
|
|
347
|
+
`,"utf8"),{pid:W.pid,port:F,logFile:J,pidFile:X}}async function dQ(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(!pQ(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 lQ(D={}){if(D.detach===!0)return aI(D);return tI(D)}async function aI(D){try{let $=await cQ({...D.port===void 0?{}:{port:D.port},...D.serveWeb===!1?{env:{AIWORKER_GATEWAY_NO_SERVE_WEB:"1"}}:{}});if(D.persistUrl!==!1)await f3({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 tI(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 gQ(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 f3({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(),xX()}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 iQ(){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 nQ(D={}){try{let $=await dQ(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 sQ}from"child_process";import{existsSync as tQ,mkdirSync as eI,readFileSync as DT,writeFileSync as $T}from"fs";import{homedir as FT}from"os";import F8 from"path";import $9 from"process";var I8="aiworker-gateway.service",rQ="/var/lib/aiworker",F9="/etc/aiworker/gateway.env",XT="%h/.config/aiworker/gateway.env",oQ="%S/aiworker",aQ="https://github.com/ZonEaseTech/aiworker/blob/main/docs/deployment.md",y4=["gateway","start"];function JT(D){let $=D_(D.execStart??eQ());if(D.scope==="user")return["[Unit]","Description=AIWorker gateway daemon (user instance)",`Documentation=${aQ}`,"After=network-online.target","Wants=network-online.target","","[Service]","Type=simple",`Environment=AIWORKER_HOME=${oQ}`,`EnvironmentFile=-${XT}`,`ExecStart=${$}`,"Restart=on-failure","RestartSec=5","StateDirectory=aiworker","StateDirectoryMode=0700","PrivateTmp=true","ProtectSystem=strict",`ReadWritePaths=${oQ}`,"NoNewPrivileges=true","","[Install]","WantedBy=default.target",""].join(`
|
|
348
|
+
`);return["[Unit]","Description=AIWorker gateway daemon (PLAN-016 systemd path)",`Documentation=${aQ}`,"After=network-online.target","Wants=network-online.target","","[Service]","Type=simple",`Environment=AIWORKER_HOME=${rQ}`,`EnvironmentFile=-${F9}`,`ExecStart=${$}`,"Restart=on-failure","RestartSec=5","User=root","Group=root","StateDirectory=aiworker","StateDirectoryMode=0700","PrivateTmp=true","ProtectSystem=strict",`ReadWritePaths=${rQ}`,"NoNewPrivileges=true","","[Install]","WantedBy=multi-user.target",""].join(`
|
|
349
|
+
`)}function eQ(D={}){let $=D.env??$9.env,F=D.execPath??$9.execPath,X=D.argv??$9.argv,J=D.cwd??$9.cwd(),G=D.pathExists??tQ,Y=GT(X[1],J,G);if(BT(F)&&Y!==void 0)return u4(F,[Y,...y4]);if(HT(F))return u4(F,[...y4]);let B=WT("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(YT).join(" ")}function D_(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 YT(D){if(/^[\w@%+=:,./-]+$/.test(D))return D;return`"${D.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`}function GT(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 BT(D){let $=F8.basename(D);return $==="bun"||$.startsWith("bun-")}function HT(D){return F8.basename(D).startsWith("aiworker")}function WT(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 VT(D,$=FT()){if(D==="user")return F8.join($,".config","systemd","user",I8);return`/etc/systemd/system/${I8}`}function UT(D={}){let $=D.scope??"user",F=D_(D.execStart??eQ()),X=JT({scope:$,execStart:F});if(D.dryRun)return{scope:$,content:X,execStart:F,enabled:!1,restartRequired:!1};let J=D.out??VT($);eI(F8.dirname(J),{recursive:!0});let G=!1;if(tQ(J)){if(DT(J,"utf8")===X)G=!0}if(!G)$T(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 QT($),{scope:$,content:X,execStart:F,written:{path:J,unchanged:G},enabled:!0,restartRequired:!G}}function QT(D){let $=D==="user"?["--user"]:[],F=sQ("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=sQ("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={}){try{let $=UT(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 _T($.scope),0}catch($){return E.error(`install systemd \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}function _T(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 F_(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 U=W.workerId;if(typeof U!=="string"||U!==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 X_(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 J_=["web","line","telegram","lark","whatsapp"];function AT(D){if(!J_.includes(D))throw Error(`\u65E0\u6548 channel "${D}"\uFF0C\u53EF\u9009\u503C\uFF1A${J_.join(", ")}`);return D}async function Y_(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 G_(D){try{let $=AT(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 B_(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 H_(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 W_(){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 V_(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 U_(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 __(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 WB from"process";$2();bD();import al from"process";async function tl(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 $=al.env.WORKER_MIGRATIONS_FOLDER??R6;G9($);let F=vD(),X=g(),J=await Q1(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 U1(X),Y=await tl(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 pZ(D){return v1(D.workerId,D.hydrated,{processes:D.processes})}function el(){return`http://${WB.env.AIW_LOCAL_WORKER_HOST??"localhost"}:${i.PORT}`}async function cZ(D,$={}){let F=await sD({silent:!0}),X=`${el()}${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 dZ(){try{let{status:D,body:$}=await cZ("/api/worker/approvals");if(D!==200)return E.error(`approvals list HTTP ${D}: ${JSON.stringify($)}`),1;return WB.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 lZ(D){try{let $=D.deny===!0?"deny":"allow",{status:F,body:X}=await cZ(`/api/worker/approvals/${encodeURIComponent(D.taskId)}/${encodeURIComponent(D.toolCallId)}/grant`,{method:"POST",body:JSON.stringify({decision:$})});if(F!==200)return E.error(`approvals grant HTTP ${F}: ${JSON.stringify(X)}`),1;return WB.stdout.write(`${JSON.stringify(X,null,2)}
|
|
353
|
+
`),0}catch($){return E.error(`approvals grant \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}$2();JD();async function iZ(){await sD({silent:!0});let{getWorkerDb:D}=await Promise.resolve().then(() => (bD(),XJ)),$=await E0(D());return console.log(JSON.stringify({version:$.version,config:$.config},null,2)),0}async function nZ(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(() => (bD(),XJ)),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 Wi}from"os";import z0 from"path";import g1 from"process";import{randomBytes as sZ}from"crypto";import{chmodSync as Di,existsSync as rZ,mkdirSync as $i,readFileSync as Fi,writeFileSync as Xi}from"fs";import{homedir as Ji}from"os";import oZ from"path";import T2 from"process";var Yi=oZ.join(Ji(),".aiworker");function x1(D={}){let $=D.home??T2.env.AIWORKER_HOME??Yi,F=oZ.join($,".env");if(rZ(F)){let B=Gi(Fi(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(!rZ($))$i($,{recursive:!0,mode:448});let X=T2.env.AIWORKER_MASTER_KEY??sZ(32).toString("hex"),J=T2.env.INTERNAL_SHARED_SECRET??sZ(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(Xi(F,G.join(`
|
|
354
|
+
`),{mode:384}),Di(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)Bi(Y,F);return{minted:!0,envFile:F,freshMasterKey:Y}}function Gi(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 Bi(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 ${Hi($,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 Hi(D,$){if(D.length<=$)return D.padEnd($);return`\u2026${D.slice(-($-1))}`.padEnd($)}var Vi=[".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/"],Ui=[".aiworker/local/.env",".aiworker/local/worker.db"],Qi=[".aiworker/local/identity.json"],_i=[{path:"AGENTS.md",type:"file"},{path:"CLAUDE.md",type:"file"},{path:".agents/",type:"directory"},{path:".claude/",type:"directory"}];async function eZ(D={}){if(D.global===!0){let B=z0.join(Wi(),".aiworker"),H=tZ(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 $=U2();if($.scope==="explicit"){let B=tZ($.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=jF(F);if(X){let B=aZ(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}let J=aZ(F,{...D,gitRepoDetected:Ai(F)});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 Ai(D){let $=z0.resolve(D);while(!0){if(h1(z0.join($,".git")))return!0;let F=z0.dirname($);if(F===$)return!1;$=F}}function aZ(D,$){let F=z0.resolve(D),X=[],J=[],G=[],Y=[];for(let B of Vi){let H=`${B}${h1(z0.join(F,B))?" (existing aiworker layout)":""}`;if(h1(z0.join(F,B)))G.push(H);else X.push(B)}for(let B of Ui)if(h1(z0.join(F,B)))G.push(`${B} (existing local state)`);else X.push(`${B} (worker bootstrap)`);for(let B of Qi)if(h1(z0.join(F,B)))G.push(`${B} (existing local state)`);for(let B of _i){let H=B.path,W=z0.join(F,H);if(h1(W))Y.push(`${H} (external agent ${B.type}; not modified, future adopt/merge candidate)`)}if($.gitRepoDetected===!1)J.push("No git repository detected; aiworker will still create project-local state in the current directory."),J.push("Run from the directory that should own this worker, or use --global for a host-wide worker.");if($.force===!0)J.push("--force is accepted for compatibility; init remains idempotent and does not overwrite existing files.");return{applyLabel:$.dryRun===!0?"dry-run (no files will be written)":"apply",create:X,notes:J,preserve:G,requiresAction:Y,scope:"project",targetHome:z0.join(F,".aiworker","local"),targetProject:F}}function tZ(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,notes:[],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(`
|
|
358
|
+
`)}
|
|
359
|
+
`),w$("Will create",D.create),w$("Will preserve",D.preserve),w$("Notes",D.notes),w$("Needs explicit action",D.requiresAction)}function w$(D,$){if(g1.stdout.write(`${D}:
|
|
360
|
+
`),$.length===0){g1.stdout.write(` - none
|
|
361
|
+
`);return}for(let F of $)g1.stdout.write(` - ${F}
|
|
362
|
+
`)}JD();var Ki=120000;async function DM(D={}){let $=D.message??"";if(!$)return E.error("[aiw run] --message is required (non-empty)"),2;let F=await sD(),X=pZ(F),J=D.timeoutMs??Ki;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 U=null,Q=setTimeout(()=>{E.error(`[aiw run] timed out after ${J}ms without reaching a terminal state`),U?.(),W(124)},J);U=X.bus.on((_)=>{if(console.log(JSON.stringify({type:_.type,at:_.at,payload:_.payload})),_.type==="orchestrator.finished"||_.type==="orchestrator.error")clearTimeout(Q),U?.(),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 $M=["web","line","telegram","lark","whatsapp"];function Ci(D){if(!$M.includes(D))throw Error(`\u65E0\u6548 channel "${D}"\uFF0C\u53EF\u9009\u503C\uFF1A${$M.join(", ")}`);return D}async function VB(D){await sD({silent:!0});let{CronService:$}=await Promise.resolve().then(() => ($2(),mZ)),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 FM(){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 XM(D){try{let $=Ci(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 JM(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 Oi}from"fs";import YM from"path";import GM from"process";async function BM(){let D=U2();GM.stdout.write(`${[`Scope : ${D.scope}`,`Home : ${D.home}`,`Source : ${D.source}`,D.projectRoot?`Project root : ${D.projectRoot}`:null].filter(Boolean).join(`
|
|
363
|
+
`)}
|
|
364
|
+
`);let $="<workerId>",F=_2($),X=i7($),J=YM.join(D.home,".env"),G=YM.join(D.home,"worker.db"),Y=[["AGENT.md",TF($)],["SOUL.md",wF($)],["USER.md",SF($)],["MEMORY.md",IF($)],["ROLLUP.md",vW($)],["mcp.json",xW($)],["worker.db",G],["local/.env",J],["workspaces/",X],["worker home",F]];for(let[B,H]of Y){let U=Oi(H)?"\u2713":"\xB7";GM.stdout.write(` ${U} ${B.padEnd(14)} ${H}
|
|
365
|
+
`)}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 Ri(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 WM(D){if(typeof D.ZodType.prototype.openapi<"u")return;D.ZodType.prototype.openapi=function(J,G){var Y,B,H,W,U,Q;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({},(Q=(U=this._def.openapi)===null||U===void 0?void 0:U.metadata)===null||Q===void 0?void 0:Q.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 f,L,q,j,d,VD,UD;let $D=N.apply(this,S);return $D._def.openapi={_internal:{extendedFrom:((L=(f=this._def.openapi)===null||f===void 0?void 0:f._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:(UD=$D._def.openapi)===null||UD===void 0?void 0:UD.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,U;H._def.openapi=(U=(W=J[B])===null||W===void 0?void 0:W._def)===null||U===void 0?void 0:U.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 S$(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)=>S$(D[X],$[X]))}class VM{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)=>S$(J,D)))F.push(D)}contains(D){let $=this.hashCodeOf(D),F=this.buckets.get($);if(!F)return!1;return F.some((X)=>S$(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 Ei(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 HM(D){return D.filter(($)=>!H7($))}var UB=S$;function Zi(D){let $=new VM;return D.forEach((F)=>$.put(F)),[...$.values()]}function UM(D){return typeof D==="string"}class QB{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 U7{constructor(D){this.message=D}}class Q3 extends U7{constructor(D,$){super(D);this.data=$}}class V7 extends U7{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 U7{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(Ei(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 _M{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 AM{transform(D){return Object.assign(Object.assign({},D("string")),{pattern:"^d+$"})}}class KM{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(UM).forEach((U)=>{X[U]=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 CM{transform(D,$){return Object.assign(Object.assign({},$("string")),{enum:D._def.values})}}class OM{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 RM{transform(D,$){return Object.assign(Object.assign({},$(typeof D._def.value)),{enum:[D._def.value]})}}function Mi(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 EM{transform(D,$){let{type:F,values:X}=Mi(D._def.values);if(F==="mixed")throw new U7("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 ZM{transform(D,$,F){return Object.assign(Object.assign({},$(D.isInt?"integer":"number")),F(D._def.checks))}}class MM{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),U=W7(H===null||H===void 0?void 0:H._def.shape(),X),Q=Object.fromEntries(Object.entries(B).filter(([O,C])=>{return!UB(U[O],C)})),_=Y.filter((O)=>!W.includes(O)),A=Object.assign(Object.assign(Object.assign(Object.assign({},F("object")),{default:$,properties:Q}),_.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 zM{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(UM).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 NM{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 PM{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 qM{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 LM{constructor(D){this.versionSpecifics=D,this.objectTransformer=new MM,this.stringTransformer=new NM,this.numberTransformer=new ZM,this.bigIntTransformer=new AM,this.literalTransformer=new RM,this.enumTransformer=new CM,this.nativeEnumTransformer=new EM,this.arrayTransformer=new _M,this.unionTransformer=new qM,this.discriminatedUnionTransformer=new KM,this.intersectionTransformer=new OM,this.recordTransformer=new zM,this.tupleTransformer=new PM(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 LM($),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 Q3(`Conflicting location for parameter ${H.name}`,{key:"in",values:HM([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 Q3("Conflicting names for parameter",{key:"name",values:HM([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 U,Q;let _=TD.getMetadata(W),A=this.getParameterRef(_,{in:$,name:H});if(A)return A;let O=(U=_===null||_===void 0?void 0:_.metadata)===null||U===void 0?void 0:U.param;if((O===null||O===void 0?void 0:O.name)&&O.name!==H)throw new Q3("Conflicting names for parameter",{key:"name",values:[H,O.name]});if((O===null||O===void 0?void 0:O.in)&&O.in!==$)throw new Q3(`Conflicting location for parameter ${(Q=O.name)!==null&&Q!==void 0?Q: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 Q3(`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,U)=>W===void 0||UB(W,J[U]));if(Y.type)return{allOf:[G,Y]};let B=_3(this.constructReferencedOpenAPISchema(D),(W,U)=>W===void 0||UB(W,J[U])),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((U)=>this.generateInlineParameters(U,"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,(U)=>{return this.getResponse(U)}),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(!$||!Ri($.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 jM{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 $=Zi(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 jM;this.generator=new _B(D,$)}generateDocument(D){let $=this.generator.generateDocumentData();return Object.assign(Object.assign({},D),$)}generateComponents(){return this.generator.generateComponents()}}class IM{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 zi(D){return"type"in D&&D.type==="webhook"}class KB{constructor(D){this.definitions=D,this.webhookRefs={};let $=new IM;this.generator=new _B(this.definitions,$)}generateDocument(D){let $=this.generator.generateDocumentData();return this.definitions.filter(zi).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 $},TM=(D)=>{let{groups:$,path:F}=Ni(D),X=OB(F);return Pi(X,$)},Ni=(D)=>{let $=[];return D=D.replace(/\{[^}]+\}/g,(F,X)=>{let J=`@${X}`;return $.push([J,F]),J}),{groups:$,path:D}},Pi=(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},f$={},wM=(D,$)=>{if(D==="*")return"*";let F=D.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(F){let X=`${D}#${$}`;if(!f$[X])if(F[2])f$[X]=$&&$[0]!==":"&&$[0]!=="*"?[X,F[1],new RegExp(`^${F[2]}(?=/${$})`)]:[D,F[1],new RegExp(`^${F[2]}$`)];else f$[X]=[D,F[1],!0];return f$[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}})}},qi=(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 qi(H.includes("%25")?H.replace(/%25/g,"%2525"):H)}else if(J===63||J===35)break}return $.slice(F,X)};var SM=(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,Q7):D},fM=(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=fM,kM=(D,$)=>{return fM(D,$,!0)},Q7=decodeURIComponent;var Li=/^[\w!#$%&'*.^`|~+-]+$/,ji=/^[ !#-:<-[\]-~]*$/,vM=(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=vM(J.substring(0,G));if($&&$!==Y||!Li.test(Y))continue;let B=vM(J.substring(G+1));if(B.startsWith('"')&&B.endsWith('"'))B=B.slice(1,-1);if(ji.test(B)){if(X[Y]=B.indexOf("%")!==-1?A3(B,Q7):B,$)break}}return X};var xM=(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 k$=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 hM=(D,$)=>{return new Response(D,{headers:{"Content-Type":$}}).formData()};var Ii=/^application\/([a-z-\.]+\+)?json(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/,Ti=/^multipart\/form-data(;\s?boundary=[a-zA-Z0-9'"()+_,\-./:=?]+)?$/,wi=/^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||!Ii.test(G))break;try{J=await F.req.json()}catch{throw new k$(400,{message:"Malformed JSON in request body"})}break;case"form":{if(!G||!(Ti.test(G)||wi.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 hM(W,G),F.req.bodyCache.formData=B}catch(W){let U="Malformed FormData request.";throw U+=W instanceof Error?` ${W.message}`:` ${String(W)}`,new k$(400,{message:U})}let H=Object.create(null);B.forEach((W,U)=>{if(U.endsWith("[]"))(H[U]??=[]).push(W);else if(Array.isArray(H[U]))H[U].push(W);else if(Object.hasOwn(H,U))H[U]=[H[U],W];else H[U]=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=xM(F);break}let Y=await $(J,F);if(Y instanceof Response)return Y;return F.req.addValidatedData(D,Y),await X()}};function Si(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((U)=>[U.toLowerCase(),U]));Y=Object.fromEntries(Object.entries(J).map(([U,Q])=>[W[U]||U,Q]))}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=Si;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,U;if(D[B])U=D[B][0][0],X.req.routeIndex=B;else U=B===D.length&&J||void 0;if(U)try{H=await U(X,()=>Y(B+1))}catch(Q){if(Q instanceof Error&&$)X.error=Q,H=await $(Q,X),W=!0;else throw Q}else if(X.finalized===!1&&F)H=await F(X);if(H&&(X.finalized===!1||W))X.res=H;return X}}};var gM=Symbol();var yM=async(D,$=Object.create(null))=>{let{all:F=!1,dot:X=!1}=$,G=(D instanceof v$?D.raw.headers:D.headers).get("Content-Type");if(G?.startsWith("multipart/form-data")||G?.startsWith("application/x-www-form-urlencoded"))return fi(D,{all:F,dot:X});return{}};async function fi(D,$){let F=await D.formData();if(F)return bi(F,$);return{}}function bi(D,$){let F=Object.create(null);if(D.forEach((X,J)=>{if(!($.all||J.endsWith("[]")))F[J]=X;else ki(F,J,X)}),$.dot)Object.entries(F).forEach(([X,J])=>{if(X.includes("."))vi(F,X,J),delete F[X]});return F}var ki=(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]},vi=(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 uM=(D)=>A3(D,Q7),v$=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)?uM(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)?uM(X):X}return D}#J(D){return this.#$[1]?this.#$[1][D]:D}query(D){return bM(this.url,D)}queries(D){return kM(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 yM(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[gM](){return this.#$}get matchedRoutes(){return this.#$[0].map(([[,D]])=>D)}get routePath(){return this.#$[0].map(([[,D]])=>D)[this.routeIndex].path}};var x$={Stringify:1,BeforeStream:2,Stream:3},xi=(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 xi(await Y,G);else return Y};var mM="text/plain; charset=UTF-8",zB=(D,$)=>{return{"Content-Type":D,...$}},A7=(D,$)=>new Response(D,$),pM=class{#D;#$;env={};#X;finalized=!1;error;#Y;#J;#F;#W;#H;#B;#G;#U;#Q;constructor(D,$){if(this.#D=D,$)this.#J=$.executionCtx,this.env=$.env,this.#B=$.notFoundHandler,this.#Q=$.path,this.#U=$.matchResult}get req(){return this.#$??=new v$(this.#D,this.#Q,this.#U),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(mM,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,x$.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",cM="all",dM=["get","post","put","delete","options","patch"],h$="Can not add a route since the matcher is already built.",g$=class extends Error{};var lM="__COMPOSED_HANDLER";var hi=(D)=>{return D.text("404 Not Found",404)},iM=(D,$)=>{if("getResponse"in D){let F=D.getResponse();return $.newResponse(F.body,F)}return console.error(D),$.text("Internal Server Error",500)},nM=class D{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#D="/";routes=[];constructor($={}){[...dM,cM].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((U)=>{this.#Y(W.toUpperCase(),this.#D,U)})}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:SM}#$(){let $=new D({router:this.router,getPath:this.getPath});return $.errorHandler=this.errorHandler,$.#X=this.#X,$.routes=this.routes,$}#X=hi;errorHandler=iM;route($,F){let X=this.basePath($);return F.routes.map((J)=>{let G;if(F.errorHandler===iM)G=J.handler;else G=async(Y,B)=>(await MB([],F.errorHandler)(Y,()=>J.handler(Y,B))).res,G[lM]=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(U)=>{let Q=new URL(U.url);return Q.pathname=Q.pathname.slice(W)||"/",new Request(Q,U)}})();let B=async(H,W)=>{let U=await F(J(H.req.raw),...Y(H));if(U)return U;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 pM($,{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(U){return this.#J(U,B)}return W instanceof Promise?W.then((U)=>U||(B.finalized?B.res:this.#X(B))).catch((U)=>this.#J(U,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 y$(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 u$="[^/]+",C7=".*",O7="(?:|/.*)",u1=Symbol(),gi=new Set(".\\+*[^]$()");function yi(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===u$)return 1;else if($===u$)return-1;return D.length===$.length?D<$?-1:1:$.length-D.length}var sM=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]:["","",u$]:Y==="/*"?["","",O7]:Y.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),W;if(H){let U=H[1],Q=H[2]||u$;if(U&&H[2]){if(Q===".*")throw u1;if(Q=Q.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(Q))throw u1}if(W=this.#X[Q],!W){if(Object.keys(this.#X).some((_)=>_!==C7&&_!==O7))throw u1;if(G)return;if(W=this.#X[Q]=new D,U!=="")W.#$=J.varIndex++}if(!G&&U!=="")X.push([U,W.#$])}else if(W=this.#X[Y],!W){if(Object.keys(this.#X).some((U)=>U.length>1&&U!==C7&&U!==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(yi).map((X)=>{let J=this.#X[X];return(typeof J.#$==="number"?`(${X})@${J.#$}`:gi.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 rM=class{#D={varIndex:0};#$=new sM;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 ui=[/^$/,[],Object.create(null)],oM=Object.create(null);function aM(D){return oM[D]??=new RegExp(D==="*"?"":`^${D.replace(/\/\*$|([.\\+*[^\]$()])/g,($,F)=>F?`\\${F}`:"(?:|/.*)")}$`)}function mi(){oM=Object.create(null)}function pi(D){let $=new rM,F=[];if(D.length===0)return ui;let X=D.map((W)=>[!/\*|\/:/.test(W[0]),...W]).sort(([W,U],[Q,_])=>W?1:Q?-1:U.length-_.length),J=Object.create(null);for(let W=0,U=-1,Q=X.length;W<Q;W++){let[_,A,O]=X[W];if(_)J[A]=[O.map(([K])=>[K,Object.create(null)]),K7];else U++;let C;try{C=$.insert(A,U,_)}catch(K){throw K===u1?new g$(A):K}if(_)continue;F[U]=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,U=F.length;W<U;W++)for(let Q=0,_=F[W].length;Q<_;Q++){let A=F[W][Q]?.[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(aM(F).test($))return[...D[F]];return}var m$=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(h$);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=aM($);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((U)=>{if(D===ND||D===U)J[U][W]||=[...K3(X[U],W)||K3(X[ND],W)||[]],J[U][W].push([F,G-H+B+1])})}}match=y$;buildAllMatchers(){let D=Object.create(null);return Object.keys(this.#$).concat(Object.keys(this.#D)).forEach(($)=>{D[$]||=this.#X($)}),this.#D=this.#$=void 0,mi(),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 pi($)}};var ci=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=y$};var NB=class{name="SmartRouter";#D=[];#$=[];constructor(D){this.#D=D.routers}add(D,$,F){if(!this.#$)throw Error(h$);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 g$)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),di=(D)=>{for(let $ in D)return!0;return!1},tM=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=TM(F),Y=[];for(let B=0,H=G.length;B<H;B++){let W=G[B],U=G[B+1],Q=wM(W,U),_=Array.isArray(Q)?Q[0]:W;if(_ in J.#$){if(J=J.#$[_],Q)Y.push(Q[1]);continue}if(J.#$[_]=new D,Q)J.#X.push(Q),Y.push(Q[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],U={};if(W!==void 0){if(W.params=Object.create(null),$.push(W),J!==R7||G&&G!==R7)for(let Q=0,_=W.possibleKeys.length;Q<_;Q++){let A=W.possibleKeys[Q],O=U[W.score];W.params[A]=G?.[A]&&!O?G[A]:J[A]??G?.[A],U[W.score]=!0}}}}search($,F){let X=[];this.#J=R7;let G=[this],Y=OB(F),B=[],H=Y.length,W=null;for(let U=0;U<H;U++){let Q=Y[U],_=U===H-1,A=[];for(let C=0,K=G.length;C<K;C++){let R=G[C],z=R.#$[Q];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 f=R.#X[N],L=R.#J===R7?{}:{...R.#J};if(f==="*"){let UD=R.#$["*"];if(UD)this.#F(X,UD,$,R.#J),UD.#J=L,A.push(UD);continue}let[q,j,d]=f;if(!Q&&!(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 UD=F.substring(W[U]),$D=d.exec(UD);if($D){if(L[j]=$D[0],this.#F(X,VD,$,R.#J,L),di(VD.#$)){VD.#J=L;let tD=$D[0].match(/\//)?.length??0;(B[tD]||=[]).push(VD)}continue}}if(d===!0||d.test(Q))if(L[j]=Q,_){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((U,Q)=>{return U.score-Q.score});return[X.map(({handler:U,params:Q})=>[U,Q])]}};var PB=class{name="TrieRouter";#D;constructor(){this.#D=new tM}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 nM{constructor(D={}){super(D);this.router=D.router??new NB({routers:[new m$,new PB]})}};mD();var F2=class D extends qB{openAPIRegistry;defaultHook;constructor($){super($);this.openAPIRegistry=new QB,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 U=B[W].schema;if(!(U instanceof YD))continue;if(Dz(W)){let Q=y1("json",U,G);if(X.request?.body?.required)Y.push(Q);else{let _=async(A,O)=>{if(A.req.header("content-type")){if(Dz(A.req.header("content-type")))return await Q(A,O)}A.req.addValidatedData("json",{}),await O()};Y.push(_)}}if($z(W)){let Q=y1("form",U,G);if(X.request?.body?.required)Y.push(Q);else{let _=async(A,O)=>{if(A.req.header("content-type")){if($z(A.req.header("content-type")))return await Q(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?eM(X,this._basePath):X};getOpenAPI31Document=($)=>{let X=new KB(this.openAPIRegistry.definitions).generateDocument($);return this._basePath?eM(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})}};WM(V);function eM(D,$){let F={};return Object.keys(D.paths).forEach((X)=>{F[w2($.replaceAll(/:([^\/]+)/g,"{$1}"),X)]=D.paths[X]}),{...D,paths:F}}function Dz(D){return/^application\/([a-z-\.]+\+)?json/.test(D)}function $z(D){return D.startsWith("multipart/form-data")||D.startsWith("application/x-www-form-urlencoded")}mD();var Fz=[["--theme-","--scalar-"],["--sidebar-","--scalar-sidebar-"]],li=Fz.map(([D])=>D);function LB(D){if(!li.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"),Fz.reduce((F,[X,J])=>F.replaceAll(X,J),D)}var ii=V.enum(["alternate","default","moon","purple","solarized","bluePlanet","deepSpace","saturn","kepler","elysiajs","fastify","mars","none"]),ni=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"]),si=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()}),ri=V.object({basePath:V.string()}),Jz=V.object({authentication:V.any().optional(),baseServerURL:V.string().optional(),hideClientButton:V.boolean().optional().default(!1).catch(!1),proxyUrl:V.string().optional(),searchHotKey:ni.optional(),servers:V.array(V.any()).optional(),showSidebar:V.boolean().optional().default(!0).catch(!0),spec:IB.optional(),theme:ii.optional().default("default").catch("default"),_integration:si.optional()}),Xz="https://api.scalar.com/request-proxy",jB="https://proxy.scalar.com",Yz=Jz.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:ri.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()})),oi=Yz.merge(V.object({spec:V.object({sources:V.array(IB)})})),Gz=(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===Xz)console.warn(`[DEPRECATED] Warning: configuration.proxyUrl points to our old proxy (${Xz}).`),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=Yz.transform(Gz),ai=oi.transform(Gz);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 Bz=(D,$="")=>{let{cdn:F,pageTitle:X,...J}=D,G=wB.parse({cdn:F,pageTitle:X,customTheme:$}),Y=TB.parse(J);return`
|
|
366
|
+
<!DOCTYPE html>
|
|
367
|
+
<html>
|
|
368
|
+
<head>
|
|
369
|
+
<title>${G.pageTitle}</title>
|
|
370
|
+
<meta charset="utf-8" />
|
|
371
|
+
<meta
|
|
372
|
+
name="viewport"
|
|
373
|
+
content="width=device-width, initial-scale=1" />
|
|
374
|
+
<style>
|
|
375
|
+
${D.theme?"":$}
|
|
376
|
+
</style>
|
|
377
|
+
</head>
|
|
378
|
+
<body>
|
|
379
|
+
${ti(Y,G.cdn)}
|
|
380
|
+
</body>
|
|
381
|
+
</html>
|
|
382
|
+
`};function ti(D,$){return`
|
|
383
|
+
<script
|
|
384
|
+
id="api-reference"
|
|
385
|
+
type="application/json"
|
|
386
|
+
data-configuration="${ei(D)}">${Dn(D)}</script>
|
|
387
|
+
<script src="${$}"></script>
|
|
388
|
+
`}var ei=(D)=>{let $={...D};if(!$.spec?.url)delete $.spec;else if($.spec?.content)delete $.spec?.content;return JSON.stringify($).split('"').join(""")},Dn=(D)=>D.spec?.content?typeof D.spec?.content==="function"?JSON.stringify(D.spec?.content()):JSON.stringify(D.spec?.content):"";var $n={_integration:"hono"},Fn=`
|
|
389
|
+
.light-mode {
|
|
390
|
+
color-scheme: light;
|
|
391
|
+
--scalar-color-1: #2a2f45;
|
|
392
|
+
--scalar-color-2: #757575;
|
|
393
|
+
--scalar-color-3: #8e8e8e;
|
|
394
|
+
--scalar-color-disabled: #b4b1b1;
|
|
395
|
+
--scalar-color-ghost: #a7a7a7;
|
|
396
|
+
--scalar-color-accent: #0099ff;
|
|
397
|
+
--scalar-background-1: #fff;
|
|
398
|
+
--scalar-background-2: #f6f6f6;
|
|
399
|
+
--scalar-background-3: #e7e7e7;
|
|
400
|
+
--scalar-background-4: rgba(0, 0, 0, 0.06);
|
|
401
|
+
--scalar-background-accent: #8ab4f81f;
|
|
402
|
+
|
|
403
|
+
--scalar-border-color: rgba(0, 0, 0, 0.1);
|
|
404
|
+
--scalar-scrollbar-color: rgba(0, 0, 0, 0.18);
|
|
405
|
+
--scalar-scrollbar-color-active: rgba(0, 0, 0, 0.36);
|
|
406
|
+
--scalar-lifted-brightness: 1;
|
|
407
|
+
--scalar-backdrop-brightness: 1;
|
|
408
|
+
|
|
409
|
+
--scalar-shadow-1: 0 1px 3px 0 rgba(0, 0, 0, 0.11);
|
|
410
|
+
--scalar-shadow-2: rgba(0, 0, 0, 0.08) 0px 13px 20px 0px,
|
|
411
|
+
rgba(0, 0, 0, 0.08) 0px 3px 8px 0px, #eeeeed 0px 0 0 1px;
|
|
412
|
+
|
|
413
|
+
--scalar-button-1: rgb(49 53 56);
|
|
414
|
+
--scalar-button-1-color: #fff;
|
|
415
|
+
--scalar-button-1-hover: rgb(28 31 33);
|
|
416
|
+
|
|
417
|
+
--scalar-color-green: #069061;
|
|
418
|
+
--scalar-color-red: #ef0006;
|
|
419
|
+
--scalar-color-yellow: #edbe20;
|
|
420
|
+
--scalar-color-blue: #0082d0;
|
|
421
|
+
--scalar-color-orange: #fb892c;
|
|
422
|
+
--scalar-color-purple: #5203d1;
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
.dark-mode {
|
|
426
|
+
color-scheme: dark;
|
|
427
|
+
--scalar-color-1: rgba(255, 255, 245, .86);
|
|
428
|
+
--scalar-color-2: rgba(255, 255, 245, .6);
|
|
429
|
+
--scalar-color-3: rgba(255, 255, 245, .38);
|
|
430
|
+
--scalar-color-disabled: rgba(255, 255, 245, .25);
|
|
431
|
+
--scalar-color-ghost: rgba(255, 255, 245, .25);
|
|
432
|
+
--scalar-color-accent: #e36002;
|
|
433
|
+
--scalar-background-1: #1e1e20;
|
|
434
|
+
--scalar-background-2: #2a2a2a;
|
|
435
|
+
--scalar-background-3: #505053;
|
|
436
|
+
--scalar-background-4: rgba(255, 255, 255, 0.06);
|
|
437
|
+
--scalar-background-accent: #e360021f;
|
|
438
|
+
|
|
439
|
+
--scalar-border-color: rgba(255, 255, 255, 0.1);
|
|
440
|
+
--scalar-scrollbar-color: rgba(255, 255, 255, 0.24);
|
|
441
|
+
--scalar-scrollbar-color-active: rgba(255, 255, 255, 0.48);
|
|
442
|
+
--scalar-lifted-brightness: 1.45;
|
|
443
|
+
--scalar-backdrop-brightness: 0.5;
|
|
444
|
+
|
|
445
|
+
--scalar-shadow-1: 0 1px 3px 0 rgb(0, 0, 0, 0.1);
|
|
446
|
+
--scalar-shadow-2: rgba(15, 15, 15, 0.2) 0px 3px 6px,
|
|
447
|
+
rgba(15, 15, 15, 0.4) 0px 9px 24px, 0 0 0 1px rgba(255, 255, 255, 0.1);
|
|
448
|
+
|
|
449
|
+
--scalar-button-1: #f6f6f6;
|
|
450
|
+
--scalar-button-1-color: #000;
|
|
451
|
+
--scalar-button-1-hover: #e7e7e7;
|
|
452
|
+
|
|
453
|
+
--scalar-color-green: #3dd68c;
|
|
454
|
+
--scalar-color-red: #f66f81;
|
|
455
|
+
--scalar-color-yellow: #f9b44e;
|
|
456
|
+
--scalar-color-blue: #5c73e7;
|
|
457
|
+
--scalar-color-orange: #ff8d4d;
|
|
458
|
+
--scalar-color-purple: #b191f9;
|
|
459
|
+
}
|
|
460
|
+
/* Sidebar */
|
|
461
|
+
.light-mode .t-doc__sidebar {
|
|
462
|
+
--scalar-sidebar-background-1: var(--scalar-background-1);
|
|
463
|
+
--scalar-sidebar-item-hover-color: currentColor;
|
|
464
|
+
--scalar-sidebar-item-hover-background: var(--scalar-background-2);
|
|
465
|
+
--scalar-sidebar-item-active-background: var(--scalar-background-accent);
|
|
466
|
+
--scalar-sidebar-border-color: var(--scalar-border-color);
|
|
467
|
+
--scalar-sidebar-color-1: var(--scalar-color-1);
|
|
468
|
+
--scalar-sidebar-color-2: var(--scalar-color-2);
|
|
469
|
+
--scalar-sidebar-color-active: var(--scalar-color-accent);
|
|
470
|
+
--scalar-sidebar-search-background: var(--scalar-background-2);
|
|
471
|
+
--scalar-sidebar-search-border-color: var(--scalar-sidebar-border-color);
|
|
472
|
+
--scalar-sidebar-search-color: var(--scalar-color-3);
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
.dark-mode .sidebar {
|
|
476
|
+
--scalar-sidebar-background-1: #161618;
|
|
477
|
+
--scalar-sidebar-item-hover-color: var(--scalar-color-accent);
|
|
478
|
+
--scalar-sidebar-item-hover-background: transparent;
|
|
479
|
+
--scalar-sidebar-item-active-background: transparent;
|
|
480
|
+
--scalar-sidebar-border-color: transparent;
|
|
481
|
+
--scalar-sidebar-color-1: var(--scalar-color-1);
|
|
482
|
+
--scalar-sidebar-color-2: var(--scalar-color-2);
|
|
483
|
+
--scalar-sidebar-color-active: var(--scalar-color-accent);
|
|
484
|
+
--scalar-sidebar-search-background: #252529;
|
|
485
|
+
--scalar-sidebar-search-border-color: transparent;
|
|
486
|
+
--scalar-sidebar-search-color: var(--scalar-color-3);
|
|
487
|
+
}
|
|
488
|
+
`,SB=(D)=>{let $={...$n,...D};return async(F)=>F.html(`${Bz($,Fn)}`)};$2();bD();JD();cD();JD();function Hz(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 Wz=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 fB,sep as Xn}from"path";function Vz(D){let $=fB(D);return async(F)=>{let X=new URL(F.req.url),J;try{J=Jn(decodeURIComponent(X.pathname.slice(7)))}catch{return F.text("forbidden",403)}let G=J===""?"index.html":J,Y=fB($,G);if(Y!==$&&!Y.startsWith($+Xn))return F.text("forbidden",403);let B=Bun.file(Y);if(await B.exists())return new Response(B);if(!Yn(G)){let H=Bun.file(fB($,"index.html"));if(await H.exists())return new Response(H)}return F.text("not found",404)}}function Jn(D){let $=0;while($<D.length&&D[$]==="/")$+=1;return D.slice($)}function Yn(D){let $=D.lastIndexOf("/");return($===-1?D:D.slice($+1)).includes(".")}$2();cD();JD();function Uz(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((Q,_)=>{W[_.toLowerCase()]=Q});try{await B.verify(H,W,Y)}catch(Q){return E.warn(`[channel:${G}] signature verification failed: ${String(Q)}`),X.json({ok:!1,error:"signature verification failed"},401)}let U=await B.toEnvelopes(H,$,Y);for(let Q of U)await J.orchestrator.ingest(Q);return X.json({ok:!0,accepted:U.length})}),F}var bB=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+`
|
|
489
|
+
`),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 p$=()=>{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 p$=()=>$,$};var Qz=class extends bB{constructor(D,$){super(D,$)}async writeSSE(D){let F=(await _7(D.data,x$.Stringify,!1,{})).split(/\r\n|\r|\n/).map((J)=>{return`data: ${J}`}).join(`
|
|
490
|
+
`);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(`
|
|
491
|
+
`)+`
|
|
492
|
+
|
|
493
|
+
`;await this.write(X)}},Gn=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()}},Bn=new WeakMap,kB=(D,$,F)=>{let{readable:X,writable:J}=new TransformStream,G=new Qz(J,X);if(p$())D.req.raw.signal.addEventListener("abort",()=>{if(!G.closed)G.abort()});return Bn.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"),Gn(G,$,F),D.newResponse(G.responseReadable)};function _z(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();bD();_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 Az({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();bD();JD();mD();var Wn=V.object({value:V.string().min(1)}),Kz=V.string().regex(/^[\w.-]{1,128}$/,{message:"secret key \u4EC5\u5141\u8BB8 [A-Za-z0-9._-]\uFF0C\u957F\u5EA6 1-128"}),Vn=V.object({probe:V.boolean().optional()}).optional(),Un=V.object({chatId:V.string().optional(),text:V.string().optional()}).optional(),Qn=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()}),_n=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)}),Cz=V.enum(["web","line","telegram","lark","whatsapp"]),An=V.object({expression:V.string().min(1),prompt:V.string().min(1),channel:Cz,chatId:V.string().min(1),accountId:V.string().min(1).optional(),enabled:V.boolean().optional()}),Kn=V.object({expression:V.string().min(1).optional(),prompt:V.string().min(1).optional(),channel:Cz.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 Oz(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=Kz.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=Wn.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=Kz.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=Vn.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=Un.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=Qn.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=_n.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=U3({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=An.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=Kn.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})}),$}bD();_0();mD();var Cn=V.object({prompt:V.string().trim().min(1,"prompt is required").max(8000,"prompt exceeds 8000 characters")});function Rz(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=Cn.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 Ez(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 Zz(D={}){Y9(i.WORKER_DB_PATH),G9(i.WORKER_MIGRATIONS_FOLDER);let $=vD(),F=g(),X=await Q1(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 U1(F),G=await Ez(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(Q,_){let A=await Ez(Q);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 U=new F2;if(U.use(Wz),U.onError(Hz),D.webStaticDir){let Q=D.webStaticDir;U.get("/admin",(_)=>_.redirect("/admin/",308)),U.use("/admin/*",Vz(Q))}return U.get("/health",async(Q)=>{let[_,A]=await Promise.all([H.runtime.brain.health().catch(()=>null),H.runtime.executor.health().catch(()=>null)]);return Q.json({mode:"worker",workerId:H.workerId,status:"ok",brain:_,executor:A,configVersion:H.configVersion,startedAt:H.startedAt,checkedAt:new Date().toISOString()})}),U.route("/",Uz(()=>H.runtime,H.workerId)),U.use("/api/worker/*",Az({getIdentity:()=>({tokenPlaintext:H.tokenPlaintext})})),U.route("/api/worker/orchestrator",Rz(()=>H.runtime)),U.route("/api/worker/evolution",C3),U.route("/api/worker/events",_z(()=>H.runtime)),U.route("/api/worker",Oz({getState:()=>H,reloadRuntime:W})),U.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}`}}),U.get("/docs",SB({spec:{url:"/openapi.json"}})),{app:U,port:i.PORT,state:H,reloadRuntime:W}}$2();cD();bD();JD();async function Mz(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 Zz({onRuntimeReloaded:()=>$?.notifyRuntimeReloaded(),...J?{webStaticDir:J}:{}}),U=D.port??B,Q=Bun.serve({port:U,hostname:G,fetch:Y.fetch});if(E.success(`[aiw serve] worker ${H.workerId} listening on ${G}:${U} (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=On(q,d);m1.stdout.write(`${VD}
|
|
494
|
+
`),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:oX(200)}},tasksCreate:async({prompt:q})=>{return{task:await H.runtime.orchestrator.submitTask(q)}},conversationsList:async()=>{return{conversations:aX(200)}},messagesList:async({conversationId:q})=>{return{messages:tX(q)}}}}),E.success(`[aiw serve] gateway-client dialing ${R}`)}let f=!1,L=async(q)=>{if(f)return;f=!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{Q.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 On(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(`
|
|
495
|
+
`)}$2();JD();async function zz(D={}){try{let $=Rn(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 Nz(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 Pz(D={}){try{await sD({silent:!0});let $=U3({olderThanDays:D.olderThanDays,limit:D.limit,apply:D.apply===!0});return console.log(JSON.stringify($,null,2)),0}catch($){return E.error(`[aiworker sessions maintenance] failed: ${$ instanceof Error?$.message:String($)}`),1}}class vB extends Error{}function Rn(D){if(D===void 0)return;if(D==="active"||D==="closed")return D;throw new vB('status must be "active" or "closed"')}$2();bD();JD();async function qz(){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}var En={"approvals grant":"\u89E3\u9501\u8FDC\u7AEF worker \u4E0A\u67D0\u6761\u6302\u8D77\u7684\u5DE5\u5177\u5BA1\u6279","approvals list":"\u67E5\u770B\u8FDC\u7AEF worker \u6302\u8D77\u7684\u5DE5\u5177\u5BA1\u6279","approvals-grant":"\u89E3\u9501\u672C\u5730 worker \u8FDB\u7A0B\u5185\u67D0\u6761\u6302\u8D77\u7684\u5DE5\u5177\u5BA1\u6279","approvals-list":"\u67E5\u770B\u672C\u5730 worker \u8FDB\u7A0B\u5185\u6302\u8D77\u7684\u5DE5\u5177\u5BA1\u6279",chat:"\u5411\u5DF2\u63A5\u5165 fleet \u7684 worker \u53D1\u9001\u4E00\u6761\u6D88\u606F","config get":"\u8BFB\u53D6\u8FDC\u7AEF worker \u7684\u5F53\u524D\u914D\u7F6E","config set":"\u66F4\u65B0\u8FDC\u7AEF worker \u914D\u7F6E\uFF0C\u9700\u8981\u7248\u672C\u4E50\u89C2\u9501","config-set":"\u66FF\u6362\u672C\u5730 worker \u914D\u7F6E\uFF0C\u9700\u8981\u65F6\u53EF\u5E26\u7248\u672C\u4E50\u89C2\u9501","config-show":"\u6253\u5370\u672C\u5730 worker \u914D\u7F6E\uFF0C\u7F3A\u5931\u65F6\u4F1A\u521D\u59CB\u5316\u672C\u5730\u72B6\u6001","enroll approve":"\u6279\u51C6\u4E00\u6761\u5F85\u5904\u7406\u7684 OTP enrollment","enroll list":"\u5217\u51FA gateway \u5F53\u524D\u5F85\u5904\u7406\u7684 OTP enrollment","enroll reject":"\u62D2\u7EDD\u4E00\u6761\u5F85\u5904\u7406\u7684 OTP enrollment","fleet info":"\u67E5\u770B\u67D0\u4E2A worker \u7684\u8FD0\u884C\u65F6\u4FE1\u606F","fleet launch":"\u8BA9 gateway \u5728\u672C\u673A\u62C9\u8D77\u5E76\u914D\u5BF9\u4E00\u4E2A worker","fleet list":"\u5217\u51FA fleet \u5185\u6240\u6709 worker","fleet remove":"\u4ECE fleet \u79FB\u9664 worker \u5E76\u4F5C\u5E9F deviceToken","fleet stop":"\u5411\u76EE\u6807 worker \u4E0B\u53D1\u505C\u6B62\u6307\u4EE4","gateway start":"\u542F\u52A8 gateway server\uFF0C\u9ED8\u8BA4\u524D\u53F0\u8FD0\u884C","gateway status":"\u67E5\u770B\u540E\u53F0 gateway \u5B88\u62A4\u8FDB\u7A0B\u72B6\u6001\uFF08foreground/systemd \u4E0D\u7531\u6B64\u547D\u4EE4\u8DDF\u8E2A\uFF09","gateway stop":"\u505C\u6B62\u540E\u53F0 gateway \u5B88\u62A4\u8FDB\u7A0B",init:"\u521D\u59CB\u5316 worker.db\u3001\u8EAB\u4EFD\u3001token \u548C\u9ED8\u8BA4\u914D\u7F6E","install systemd":"\u6E32\u67D3\u5E76\u53EF\u9009\u6CE8\u518C gateway \u7684 systemd unit",logs:"\u8BA2\u9605\u67D0\u4E2A worker \u7684\u65E5\u5FD7\u5C3E\u90E8",pair:"\u7528 bootstrap token \u628A\u5DF2\u542F\u52A8 worker \u6CE8\u518C\u5230 gateway",run:"\u4E0D\u542F\u52A8 HTTP server\uFF0C\u76F4\u63A5\u7ED9 orchestrator \u6295\u9012\u4E00\u6761\u6D88\u606F","schedule add":"\u5728\u8FDC\u7AEF worker \u4E0A\u65B0\u589E\u4E00\u6761 cron \u4EFB\u52A1","schedule list":"\u5217\u51FA\u8FDC\u7AEF worker \u4E0A\u7684 cron \u4EFB\u52A1","schedule remove":"\u5220\u9664\u8FDC\u7AEF worker \u4E0A\u7684\u4E00\u6761 cron \u4EFB\u52A1","schedule-add":"\u5728\u672C\u5730 worker.db \u4E2D\u65B0\u589E\u4E00\u6761 cron \u4EFB\u52A1","schedule-list":"\u5217\u51FA\u672C\u5730 worker.db \u4E2D\u7684 cron \u4EFB\u52A1","schedule-remove":"\u5220\u9664\u672C\u5730 worker.db \u4E2D\u7684\u4E00\u6761 cron \u4EFB\u52A1",scope:"\u8BCA\u65AD\u5F53\u524D\u547D\u4EE4\u4F1A\u4F7F\u7528\u54EA\u4E2A AIWORKER_HOME",serve:"\u542F\u52A8\u672C\u5730 worker HTTP server\uFF0C\u53EF\u540C\u65F6\u63A5\u5165 gateway","sessions list":"\u5217\u51FA\u672C\u5730 worker \u4F1A\u8BDD\u72B6\u6001","sessions maintenance":"\u8BD5\u7B97\u6216\u6267\u884C\u5DF2\u5173\u95ED transcript \u6E05\u7406","sessions show":"\u67E5\u770B\u672C\u5730 worker \u7684\u5355\u4E2A\u4F1A\u8BDD\u72B6\u6001","token rotate":"\u4E3A\u8FDC\u7AEF worker \u8F6E\u6362 deviceToken","token-rotate":"\u4E3A\u672C\u5730 worker \u751F\u6210\u65B0\u7684 bearer token"},Zn=[{title:"\u672C\u5730 worker\uFF08\u5F53\u524D\u9879\u76EE / \u5F53\u524D\u4E3B\u673A\uFF09",hint:"\u7528\u4E8E\u521D\u59CB\u5316\u3001\u542F\u52A8\u548C\u76F4\u63A5\u7EF4\u62A4\u5F53\u524D\u76EE\u5F55\u6216\u5F53\u524D\u4E3B\u673A\u4E0A\u7684 worker\u3002",commands:["init","run","serve","config-show","config-set","token-rotate","schedule-list","schedule-add","schedule-remove","sessions list","sessions show"]},{title:"Gateway / fleet \u7BA1\u7406",hint:"\u7528\u4E8E\u542F\u52A8\u63A7\u5236\u9762\u3001\u6CE8\u518C worker\u3001\u5BA1\u6279 enrollment\uFF0C\u4EE5\u53CA\u67E5\u770B fleet \u6210\u5458\u3002",commands:["gateway start","gateway status","gateway stop","fleet list","fleet info","fleet launch","fleet stop","fleet remove","pair","enroll list","enroll approve","enroll reject"]},{title:"\u8FDC\u7AEF worker \u64CD\u4F5C",hint:"\u7528\u4E8E\u901A\u8FC7 gateway \u64CD\u4F5C\u5DF2\u5728\u7EBF worker\uFF0C\u4E0D\u76F4\u63A5\u8BFB\u5199\u672C\u673A worker.db\u3002",commands:["chat","config get","config set","token rotate","approvals list","approvals grant","schedule list","schedule add","schedule remove","logs"]},{title:"\u5B89\u88C5\u3001\u8BCA\u65AD\u3001\u9AD8\u7EA7\u7EF4\u62A4",hint:"\u9996\u6B21\u8BD5\u7528\u901A\u5E38\u4E0D\u9700\u8981\uFF1B\u90E8\u7F72\u3001\u6392\u9519\u3001\u6E05\u7406\u6216\u5DE5\u5177\u5BA1\u6279\u65F6\u518D\u770B\u3002",commands:["scope","install systemd","approvals-list","approvals-grant","sessions maintenance"]}];function Lz(D){D.help(($)=>Mn(D,$)),xB(D)}function xB(D){for(let $ of D.globalCommand.options){if($.name==="help")$.description="\u663E\u793A\u5E2E\u52A9\u4FE1\u606F";if($.name==="version")$.description="\u663E\u793A\u7248\u672C\u53F7"}}function Mn(D,$){if(D.matchedCommand?.name)return zn($);let F=$[0]??{body:"aiworker"},X=$.find((G)=>G.title==="Options"),J=Zn.map((G)=>({title:G.title,body:Nn(D,G)}));return[F,{title:"\u7528\u6CD5",body:" $ aiworker <command> [options]"},{title:"\u4F7F\u7528\u5F15\u5BFC",body:[" \u65B0\u5EFA\u672C\u5730 worker\uFF1Aaiworker init -> aiworker serve",' \u53EA\u8BD5\u4E00\u6B21\u6D88\u606F\uFF1Aaiworker run --message "..."'," \u7BA1\u7406 fleet\uFF1Aaiworker gateway start -> aiworker pair \u6216 aiworker enroll list",' \u5DF2\u63A5\u5165 fleet \u540E\u5BF9\u8BDD\uFF1Aaiworker chat <workerId> "..."'," \u90E8\u7F72\u3001\u6E05\u7406\u3001\u5DE5\u5177\u5BA1\u6279\u4E0D\u662F\u9996\u6B21\u4F7F\u7528\u5FC5\u9700\u8DEF\u5F84\uFF1B\u9700\u8981\u65F6\u518D\u770B\u9AD8\u7EA7\u7EF4\u62A4\u547D\u4EE4\u3002"].join(`
|
|
496
|
+
`)},...J,{title:"\u66F4\u591A",body:[" aiworker <command> --help \u67E5\u770B\u67D0\u4E2A\u547D\u4EE4\u7684\u53C2\u6570\u548C\u9009\u9879"," aiworker scope \u786E\u8BA4\u5F53\u524D\u547D\u4EE4\u4F1A\u843D\u5230\u54EA\u4E2A AIWORKER_HOME"].join(`
|
|
497
|
+
`)},...X?[{...jz(X),title:"\u9009\u9879"}]:[]]}function zn(D){return D.map(jz)}function jz(D){let $={Examples:"\u793A\u4F8B",Options:"\u9009\u9879",Usage:"\u7528\u6CD5"};return{...D,...D.title?{title:$[D.title]??D.title}:{},body:D.body.replaceAll(/ \(default: ([^)]+)\)/g,"\uFF08\u9ED8\u8BA4\uFF1A$1\uFF09")}}function Nn(D,$){let F=$.commands.map((J)=>{let G=D.commands.find((Y)=>Y.name===J);return{name:G?.rawName??J,summary:En[J]??G?.description??""}}),X=Math.max(...F.map((J)=>J.name.length));return[` ${$.hint}`,"",...F.map((J)=>` ${J.name.padEnd(X)} ${J.summary}`)].join(`
|
|
498
|
+
`)}A2();import Pn from"process";function qn(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 Iz(D=Pn.argv){if(!qn(D))return;let $=U2();x1({home:$.home})}var s=cB("aiworker");s.command("init","\u521D\u59CB\u5316 worker.db\u3001\u8EAB\u4EFD\u3001token \u548C\u9ED8\u8BA4\u914D\u7F6E\uFF08\u9ED8\u8BA4\u5F53\u524D\u9879\u76EE `<cwd>/.aiworker/`\uFF1B--global \u4F7F\u7528\u65E7\u7248 ~/.aiworker\uFF09").option("--global","\u521D\u59CB\u5316\u65E7\u7248\u7528\u6237\u7EA7 `~/.aiworker/`\uFF08\u5355\u4E3B\u673A\u5168\u5C40 worker\uFF09").option("--force","\u517C\u5BB9\u65E7\u811A\u672C\uFF1B\u9879\u76EE\u521D\u59CB\u5316\u5141\u8BB8\u5728\u975E git \u76EE\u5F55\u8FD0\u884C\uFF0C\u4E14\u4ECD\u4E0D\u4F1A\u8986\u76D6\u73B0\u6709\u6587\u4EF6").option("--dry-run","\u53EA\u6253\u5370\u521D\u59CB\u5316\u9884\u68C0\u548C\u8BA1\u5212\u5199\u5165\uFF0C\u4E0D\u521B\u5EFA\u6216\u4FEE\u6539\u6587\u4EF6").action(async(D)=>{await eZ({...D.global===!0?{global:!0}:{},...D.force===!0?{force:!0}:{},...D.dryRun===!0?{dryRun:!0}:{}})});s.command("scope","\u6253\u5370\u5F53\u524D aiworker scope\uFF08user/project/explicit\uFF09\u548C\u5173\u952E\u5E03\u5C40\u6587\u4EF6\u72B6\u6001").action(async()=>{o.exitCode=await BM()});s.command("run","\u4E0D\u542F\u52A8 HTTP server\uFF0C\u76F4\u63A5\u7ED9 orchestrator \u6295\u9012\u4E00\u6761\u6D88\u606F").option("--message <text>","\u8981\u6295\u9012\u7684\u7528\u6237\u6D88\u606F\uFF08\u5FC5\u586B\uFF09").option("--chat-id <id>",'\u5408\u6210 chat id\uFF08\u9ED8\u8BA4 "cli:stdin"\uFF09').option("--dry-run","\u5B8C\u6210 bootstrap\uFF0C\u4F46\u4E0D\u771F\u6B63\u6295\u9012 envelope").option("--timeout-ms <n>","\u7B49\u5F85\u7EC8\u6001\u4E8B\u4EF6\u7684\u6700\u957F\u65F6\u95F4\uFF0C\u5355\u4F4D\u6BEB\u79D2\uFF08\u9ED8\u8BA4 120000\uFF09",{type:[Number]}).action(async(D)=>{let $=await DM({message:D.message,chatId:D.chatId,dryRun:D.dryRun,timeoutMs:D.timeoutMs?.[0]});o.exit($)});s.command("serve","\u542F\u52A8 worker HTTP server\uFF08\u7B49\u4EF7\u4E8E AIWORKER_MODE=worker\uFF09").option("--port <n>","\u8986\u76D6 PORT \u73AF\u5883\u53D8\u91CF",{type:[Number]}).option("--host <host>","\u8986\u76D6 AIWORKER_WORKER_HOST\uFF08\u9ED8\u8BA4 127.0.0.1\uFF09").option("--gateway <url>","\u968F HTTP server \u4E00\u8D77\u8FDE\u63A5\u6307\u5B9A gateway WebSocket URL").option("--gateway-token <token>","\u8FDE\u63A5 gateway \u65F6\u4F7F\u7528\u7684 bearer token\uFF08loopback \u53EF\u7701\u7565\uFF09").option("--no-reconnect","\u5173\u95ED gateway-client \u81EA\u52A8\u91CD\u8FDE\uFF08smoke / \u6D4B\u8BD5\u65F6\u4F7F\u7528\uFF09").option("--no-serve-web","\u4E0D\u6302\u8F7D worker bundle \u5230 /admin/*\uFF08\u9ED8\u8BA4\u6302\u8F7D\uFF09").action(async(D)=>{let $={};if(D.port?.[0]!==void 0)$.port=D.port[0];if(D.host!==void 0)$.host=D.host;if(D.gateway!==void 0)$.gateway=D.gateway;if(D.gatewayToken!==void 0)$.gatewayToken=D.gatewayToken;if(D.reconnect===!1)$.gatewayReconnect=!1;if(D.serveWeb===!1)$.serveWeb=!1;await Mz($)});s.command("config-show","\u4EE5 JSON \u6253\u5370\u672C\u5730 worker \u914D\u7F6E\uFF08\u7F3A\u5931\u65F6\u4F1A\u521D\u59CB\u5316\u672C\u5730 worker \u72B6\u6001\uFF09").action(async()=>{o.exit(await iZ())});s.command("config-set <json>","\u66FF\u6362\u672C\u5730 worker \u914D\u7F6E").option("--if-match <version>","\u4E50\u89C2\u9501\uFF1B\u5F53\u524D\u5B58\u50A8 version \u4E0D\u7B49\u4E8E\u6B64\u503C\u5219\u62D2\u7EDD",{type:[Number]}).action(async(D,$)=>{o.exit(await nZ({json:D,ifMatch:$.ifMatch?.[0]}))});s.command("token-rotate","\u751F\u6210\u65B0\u7684 bearer token\uFF1B\u660E\u6587\u53EA\u6253\u5370\u4E00\u6B21").action(async()=>{o.exit(await qz())});s.command("approvals-list","\u5217\u51FA\u5F53\u524D worker \u8FDB\u7A0B\u5185\u6302\u8D77\u7684\u5DE5\u5177\u5BA1\u6279").action(async()=>{o.exit(await dZ())});s.command("approvals-grant <taskId> <toolCallId>","\u89E3\u9501\u67D0\u6761\u6302\u8D77\u7684\u5DE5\u5177\u5BA1\u6279").option("--deny","\u4E0B\u53D1\u62D2\u7EDD\u51B3\u7B56\uFF1B\u9ED8\u8BA4\u5141\u8BB8").action(async(D,$,F)=>{o.exit(await lZ({taskId:D,toolCallId:$,...F.deny===void 0?{}:{deny:F.deny}}))});s.command("schedule-list","\u5217\u51FA\u672C\u5730 worker.db \u4E2D\u6301\u4E45\u5316\u7684\u6240\u6709 cron \u4EFB\u52A1").action(async()=>{o.exit(await FM())});s.command("schedule-add","\u5411\u672C\u5730 worker.db \u65B0\u589E cron \u4EFB\u52A1\uFF08\u4F1A\u5148\u6821\u9A8C\u8868\u8FBE\u5F0F\uFF09").option("--expression <expr>","\u4E94\u6BB5 cron \u8868\u8FBE\u5F0F\uFF08\u5FC5\u586B\uFF09").option("--prompt <text>","\u4EFB\u52A1\u89E6\u53D1\u65F6\u5408\u6210\u7684 envelope.text\uFF08\u5FC5\u586B\uFF09").option("--channel <channel>","channel \u7C7B\u578B\uFF1Aweb/line/telegram/lark/whatsapp\uFF08\u5FC5\u586B\uFF09").option("--chat-id <id>","\u4EFB\u52A1\u89E6\u53D1\u65F6\u4F7F\u7528\u7684 chatId\uFF08\u5FC5\u586B\uFF09").option("--account-id <id>","\u8986\u76D6 accountId\uFF08\u9ED8\u8BA4 sys:cron\uFF09").option("--disabled","\u4EE5 enabled=false \u4FDD\u5B58\uFF08\u9ED8\u8BA4 enabled=true\uFF09").action(async(D)=>{if(!D.expression||!D.prompt||!D.channel||!D.chatId)E.error("[aiworker schedule-add] requires --expression, --prompt, --channel, --chat-id"),o.exit(2);let $=await XM({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>","\u4ECE\u672C\u5730 worker.db \u5220\u9664\u4E00\u6761 cron \u4EFB\u52A1").action(async(D)=>{o.exit(await JM(D))});s.command("sessions list","\u4ECE worker.db \u5217\u51FA\u672C\u5730 worker \u4F1A\u8BDD\u72B6\u6001").option("--limit <n>","\u6700\u591A\u8FD4\u56DE\u4F1A\u8BDD\u6570\uFF081-200\uFF0C\u9ED8\u8BA4 50\uFF09",{type:[Number]}).option("--offset <n>","\u5206\u9875\u504F\u79FB\u91CF\uFF08\u9ED8\u8BA4 0\uFF09",{type:[Number]}).option("--status <status>","\u6309\u72B6\u6001\u8FC7\u6EE4\uFF1Aactive \u6216 closed").action(async(D)=>{o.exit(await zz({limit:D.limit?.[0],offset:D.offset?.[0],...D.status===void 0?{}:{status:D.status}}))});s.command("sessions show <sessionKey>","\u6309 session key \u67E5\u770B\u4E00\u4E2A\u672C\u5730 worker \u4F1A\u8BDD\u72B6\u6001").action(async(D)=>{o.exit(await Nz(D))});s.command("sessions maintenance","\u8BD5\u7B97\u5DF2\u5173\u95ED transcript \u6E05\u7406\uFF1B\u5E26 --apply \u624D\u4F1A\u5B9E\u9645\u5220\u9664").option("--older-than-days <n>","\u5DF2\u5173\u95ED transcript \u4FDD\u7559\u5929\u6570\uFF08\u9ED8\u8BA4 30\uFF09",{type:[Number]}).option("--limit <n>","\u6700\u591A\u8BD5\u7B97/\u6E05\u7406 transcript \u6570\u91CF\uFF081-200\uFF0C\u9ED8\u8BA4 50\uFF09",{type:[Number]}).option("--apply","\u5B9E\u9645\u5220\u9664\u8BA1\u5212\u5185\u7684\u5DF2\u5173\u95ED transcript\uFF0C\u800C\u4E0D\u662F dry-run").action(async(D)=>{o.exit(await Pz({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 W_())});s.command("fleet info <workerId>","\u67E5\u770B\u67D0\u4E2A worker \u7684\u8FD0\u884C\u65F6\u4FE1\u606F").action(async(D)=>{o.exit(await V_(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 U_({...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 __(D))});s.command("gateway start","\u542F\u52A8 gateway server\uFF08\u9ED8\u8BA4\u524D\u53F0\u8FD0\u884C\uFF0C\u9002\u5408 systemd\uFF1B--detach \u4F7F\u7528\u540E\u53F0\u5B88\u62A4\u8FDB\u7A0B\uFF09").option("--port <n>","\u76D1\u542C\u7AEF\u53E3\uFF08\u9ED8\u8BA4 9218\uFF09",{type:[Number]}).option("--detach","\u540E\u53F0\u5B88\u62A4\u8FDB\u7A0B\u6A21\u5F0F\uFF1Aspawn \u81EA\u8EAB\uFF0C\u5E76\u628A PID/log \u5199\u5165 ~/.aiworker/").option("--no-serve-web","\u4E0D\u6302\u8F7D fleet bundle \u5230 /admin/*\uFF08\u9ED8\u8BA4\u6302\u8F7D\uFF09").action(async(D)=>{let F=o.env.AIWORKER_GATEWAY_INTERNAL_FOREGROUND==="1"?!1:D.detach===!0;o.exit(await lQ({...D.port?.[0]===void 0?{}:{port:D.port[0]},detach:F,...D.serveWeb===!1?{serveWeb:!1}:{}}))});s.command("gateway status","\u663E\u793A\u540E\u53F0 gateway \u5B88\u62A4\u8FDB\u7A0B\u662F\u5426\u8FD0\u884C\uFF08foreground/systemd \u5B9E\u4F8B\u4E0D\u7531\u6B64\u547D\u4EE4\u8DDF\u8E2A\uFF09").action(()=>{o.exit(iQ())});s.command("gateway stop","\u505C\u6B62\u540E\u53F0 gateway \u5B88\u62A4\u8FDB\u7A0B\uFF08foreground/systemd \u5B9E\u4F8B\u8BF7\u7531\u5176 supervisor \u505C\u6B62\uFF09").option("--timeout-ms <n>","SIGTERM \u8D85\u65F6\u65F6\u95F4\uFF08\u9ED8\u8BA4 5000ms\uFF09",{type:[Number]}).action(async(D)=>{o.exit(await nQ(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 WebSocket URL\uFF08\u9ED8\u8BA4\u4F7F\u7528 aim.json \u91CC\u7684 gatewayUrl\uFF09").option("--worker-url <httpUrl>","worker HTTP base URL\uFF08\u5FC5\u586B\uFF09").option("--bootstrap-token <token>","worker \u6253\u5370\u7684\u4E00\u6B21\u6027 bootstrap token\uFF08\u5FC5\u586B\uFF09").option("--display-name <name>","\u53EF\u9009 worker \u5C55\u793A\u540D").action(async(D)=>{if(!D.workerUrl||!D.bootstrapToken)E.error("pair \u5FC5\u987B\u540C\u65F6\u63D0\u4F9B --worker-url \u548C --bootstrap-token"),o.exit(2);o.exit(await X_({...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\u4E2A worker \u53D1\u9001\u4E00\u6761\u6D88\u606F\uFF0C\u5E76\u963B\u585E\u5230 agent.done\uFF08NDJSON \u8F93\u51FA\uFF09").option("--conversation-id <id>","\u663E\u5F0F\u6307\u5B9A\u4F1A\u8BDD id\uFF1B\u4E0D\u4F20\u5219\u7531 worker \u65B0\u5EFA").option("--timeout-ms <n>","\u7B49\u5F85 agent.done \u7684\u603B\u8D85\u65F6\u65F6\u95F4\uFF08\u9ED8\u8BA4 120000\uFF09",{type:[Number]}).action(async(D,$,F)=>{o.exit(await mW({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 pW(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 cW({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 H_(D))});s.command("approvals list","\u5217\u51FA\u6302\u8D77\u7684\u5DE5\u5177\u5BA1\u6279\uFF1B\u9ED8\u8BA4\u8986\u76D6\u6240\u6709\u5728\u7EBF worker").option("--worker <id>","\u53EA\u67E5\u6307\u5B9A workerId\uFF08\u4E0D\u4F20\u5219\u805A\u5408\u6240\u6709\u5728\u7EBF worker\uFF09").action(async(D)=>{o.exit(await yW({...D.worker===void 0?{}:{workerId:D.worker}}))});s.command("approvals grant <workerId> <taskId> <toolCallId>","\u89E3\u9501\u67D0\u6761 worker \u4E0A\u6302\u8D77\u7684\u5DE5\u5177\u5BA1\u6279").option("--deny","\u4E0B\u53D1\u62D2\u7EDD\u51B3\u7B56\uFF1B\u4E0D\u5E26\u6B64 flag \u9ED8\u8BA4\u5141\u8BB8").action(async(D,$,F,X)=>{o.exit(await uW({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 Y_(D))});s.command("schedule add <workerId>","\u5728\u67D0 worker \u4E0A\u65B0\u589E\u4E00\u6761 cron \u4EFB\u52A1").option("--expression <expr>","\u4E94\u6BB5 cron \u8868\u8FBE\u5F0F\uFF08\u5FC5\u586B\uFF09").option("--prompt <text>","cron \u89E6\u53D1\u65F6\u5408\u6210\u7684 envelope.text\uFF08\u5FC5\u586B\uFF09").option("--channel <channel>","channel \u7C7B\u578B\uFF1Aweb/line/telegram/lark/whatsapp\uFF08\u5FC5\u586B\uFF09").option("--chat-id <id>","\u89E6\u53D1\u65F6\u4F7F\u7528\u7684 chatId\uFF08\u5FC5\u586B\uFF09").option("--account-id <id>","accountId\uFF0C\u9ED8\u8BA4 sys:cron").option("--disabled","\u9ED8\u8BA4 enabled=true\uFF1B\u5E26\u6B64\u9009\u9879\u6539\u4E3A false").action(async(D,$)=>{if(!$.expression||!$.prompt||!$.channel||!$.chatId)E.error("schedule add \u5FC5\u987B\u63D0\u4F9B --expression / --prompt / --channel / --chat-id"),o.exit(2);o.exit(await G_({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 B_(D,$))});s.command("enroll list","\u5217\u51FA gateway \u5F53\u524D\u6240\u6709\u5F85\u5904\u7406\u7684 OTP enrollment").action(async()=>{o.exit(await dW())});s.command("enroll approve <otp>","\u6279\u51C6\u67D0\u6761\u5F85\u5904\u7406\u7684 OTP enrollment\uFF08worker \u7ACB\u5373\u52A0\u5165 fleet\uFF09").action(async(D)=>{o.exit(await lW(D))});s.command("enroll reject <otp>","\u62D2\u7EDD\u67D0\u6761\u5F85\u5904\u7406\u7684 OTP enrollment\uFF08worker \u6536\u5230 close 4403\uFF09").action(async(D)=>{o.exit(await iW(D))});s.command("logs <workerId>","\u8BA2\u9605\u67D0\u4E2A worker \u7684\u65E5\u5FD7\u5C3E\u90E8\uFF08NDJSON \u8F93\u51FA\uFF09").option("--follow","\u6301\u7EED\u8BA2\u9605\u76F4\u5230\u8D85\u65F6\u6216 Ctrl-C").option("--tail <n>","\u8BF7\u6C42\u5386\u53F2\u884C\u6570\uFF0C\u4E0A\u9650 1000",{type:[Number]}).option("--timeout-ms <n>","\u8BA2\u9605\u603B\u8D85\u65F6",{type:[Number]}).action(async(D,$)=>{o.exit(await F_({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 \u548C enable --now").option("--exec-start <command>","\u9AD8\u7EA7\u8986\u76D6\uFF1A\u624B\u52A8\u6307\u5B9A\u5B8C\u6574 systemd ExecStart \u547D\u4EE4").action(async(D)=>{if(D.user===!0&&D.system===!0)E.error("install systemd: \u4E0D\u80FD\u540C\u65F6\u6307\u5B9A --user \u548C --system"),o.exit(2);o.exit(await $_({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}}))});Lz(s);s.version(kH.version);xB(s);function Ln(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 jn={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 In(D){return D instanceof Error&&D.name==="CACError"}function Tn(D){return/--[a-z0-9][\w-]*/i.exec(D)?.[0]??D}function wn(D){return D.split(",").map(($)=>/^-{1,2}[a-z0-9][\w-]*/i.exec($.trim())?.[0]).filter(($)=>$!==void 0)}function Sn(D,$){let F=D.slice(2);return wn($.rawName).some((J)=>F.some((G)=>G===J||G.startsWith(`${J}=`)))}function fn(D){D.checkUnknownOptions(),D.checkOptionValue(),D.checkRequiredArgs()}function bn(D,$){let F=jn[D.name]??{};for(let X of D.options){if(!Array.isArray(X.config?.type)||X.config.type[0]!==Number)continue;if(!Sn($,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=Tn(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 kn(){return s.options.help===!0||s.options.version===!0&&s.matchedCommandName==null}async function vn(D=o.argv){let $=Ln(D);try{s.unsetMatchedCommand();let F=s.parse($,{run:!1});if(kn())return 0;if(!s.matchedCommand&&F.args[0])throw new p1(`Unknown command: ${F.args[0]}`);let X=s.matchedCommand;if(X)fn(X),bn(X,$);return Iz($),await s.runMatchedCommand(),typeof o.exitCode==="number"?o.exitCode:0}catch(F){let X=F instanceof p1||In(F),J=F instanceof Error?F.message:String(F);return E.error(J),X?2:1}}if(import.meta.main)o.exit(await vn(o.argv));export{vn as runCli,Ln as preprocessArgv,s as cli};
|