@zonease/aiworker-cli 0.4.5 → 0.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/aiworker.js CHANGED
@@ -1,35 +1,35 @@
1
1
  #!/usr/bin/env bun
2
2
  // @bun
3
- var eZ=Object.create;var{getPrototypeOf:Dq,defineProperty:w$,getOwnPropertyNames:$q}=Object;var Fq=Object.prototype.hasOwnProperty;function Xq(D){return this[D]}var Jq,Yq,Gq=(D,$,F)=>{var X=D!=null&&typeof D==="object";if(X){var J=$?Jq??=new WeakMap:Yq??=new WeakMap,G=J.get(D);if(G)return G}F=D!=null?eZ(Dq(D)):{};let Y=$||!D||!D.__esModule?w$(F,"default",{value:D,enumerable:!0}):F;for(let B of $q(D))if(!Fq.call(Y,B))w$(Y,B,{get:Xq.bind(D,B),enumerable:!0});if(X)J.set(D,Y);return Y};var f=(D,$)=>()=>($||D(($={exports:{}}).exports,$),$.exports);var Bq=(D)=>D;function Hq(D,$){this[D]=Bq.bind(null,$)}var m8=(D,$)=>{for(var F in $)w$(D,F,{get:$[F],enumerable:!0,configurable:!0,set:Hq.bind($,F)})};var Z=(D,$)=>()=>(D&&($=D(D=0)),$);var J8=import.meta.require;function k$(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 g$(D,$,F=".",X){if(!k$($))return g$(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(k$(Y)&&k$(J[G]))J[G]=g$(Y,J[G],(F?`${F}.`:"")+G.toString(),X);else J[G]=Y}return J}function Zq(D){return(...$)=>$.reduce((F,X)=>g$(F,X,"",D),{})}function Nq(D){return Object.prototype.toString.call(D)==="[object Object]"}function Pq(D){if(!Nq(D))return!1;if(!D.message&&!D.args)return!1;if(D.stack)return!1;return!0}class aD{options;_lastLog;_mockFn;constructor(D={}){let $=D.types||x$;this.options=qq({...D,defaults:{...D.defaults},level:h$(D.level,$),reporters:[...D.reporters||[]]},{types:x$,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=h$(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 aD({...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(){v$=!0}resumeLogs(){v$=!1;let D=PB.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(v$){PB.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:h$(D.level,this.options.types)};if(!F&&$.length===1&&Pq($[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(`
3
+ var eZ=Object.create;var{getPrototypeOf:Dq,defineProperty:w$,getOwnPropertyNames:$q}=Object;var Fq=Object.prototype.hasOwnProperty;function Xq(D){return this[D]}var Jq,Yq,Gq=(D,$,F)=>{var X=D!=null&&typeof D==="object";if(X){var J=$?Jq??=new WeakMap:Yq??=new WeakMap,G=J.get(D);if(G)return G}F=D!=null?eZ(Dq(D)):{};let Y=$||!D||!D.__esModule?w$(F,"default",{value:D,enumerable:!0}):F;for(let B of $q(D))if(!Fq.call(Y,B))w$(Y,B,{get:Xq.bind(D,B),enumerable:!0});if(X)J.set(D,Y);return Y};var f=(D,$)=>()=>($||D(($={exports:{}}).exports,$),$.exports);var Bq=(D)=>D;function Hq(D,$){this[D]=Bq.bind(null,$)}var m8=(D,$)=>{for(var F in $)w$(D,F,{get:$[F],enumerable:!0,configurable:!0,set:Hq.bind($,F)})};var Z=(D,$)=>()=>(D&&($=D(D=0)),$);var J8=import.meta.require;function k$(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 g$(D,$,F=".",X){if(!k$($))return g$(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(k$(Y)&&k$(J[G]))J[G]=g$(Y,J[G],(F?`${F}.`:"")+G.toString(),X);else J[G]=Y}return J}function Zq(D){return(...$)=>$.reduce((F,X)=>g$(F,X,"",D),{})}function Nq(D){return Object.prototype.toString.call(D)==="[object Object]"}function Pq(D){if(!Nq(D))return!1;if(!D.message&&!D.args)return!1;if(D.stack)return!1;return!0}class aD{options;_lastLog;_mockFn;constructor(D={}){let $=D.types||x$;this.options=qq({...D,defaults:{...D.defaults},level:h$(D.level,$),reporters:[...D.reporters||[]]},{types:x$,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=h$(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 aD({...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(){v$=!0}resumeLogs(){v$=!1;let D=LB.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(v$){LB.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:h$(D.level,this.options.types)};if(!F&&$.length===1&&Pq($[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
4
  `);X.args.push(`
5
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 h$(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 aD(D)}var F0,x$,qq,v$=!1,PB;var y$=Z(()=>{F0={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},x$={silent:{level:-1},fatal:{level:F0.fatal},error:{level:F0.error},warn:{level:F0.warn},log:{level:F0.log},info:{level:F0.info},success:{level:F0.success},fail:{level:F0.fail},ready:{level:F0.info},start:{level:F0.info},box:{level:F0.info},debug:{level:F0.debug},trace:{level:F0.trace},verbose:{level:F0.verbose}};qq=Zq();PB=[];aD.prototype.add=aD.prototype.addReporter;aD.prototype.remove=aD.prototype.removeReporter;aD.prototype.clear=aD.prototype.removeReporter;aD.prototype.withScope=aD.prototype.withTag;aD.prototype.mock=aD.prototype.mockTypes;aD.prototype.pause=aD.prototype.pauseLogs;aD.prototype.resume=aD.prototype.resumeLogs});import{formatWithOptions as jB}from"util";import{sep as Lq}from"path";function m$(D,$){let F=process.cwd()+Lq;return D.split(`
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 h$(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 jB(D={}){return new aD(D)}var F0,x$,qq,v$=!1,LB;var y$=Z(()=>{F0={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},x$={silent:{level:-1},fatal:{level:F0.fatal},error:{level:F0.error},warn:{level:F0.warn},log:{level:F0.log},info:{level:F0.info},success:{level:F0.success},fail:{level:F0.fail},ready:{level:F0.info},start:{level:F0.info},box:{level:F0.info},debug:{level:F0.debug},trace:{level:F0.trace},verbose:{level:F0.verbose}};qq=Zq();LB=[];aD.prototype.add=aD.prototype.addReporter;aD.prototype.remove=aD.prototype.removeReporter;aD.prototype.clear=aD.prototype.removeReporter;aD.prototype.withScope=aD.prototype.withTag;aD.prototype.mock=aD.prototype.mockTypes;aD.prototype.pause=aD.prototype.pauseLogs;aD.prototype.resume=aD.prototype.resumeLogs});import{formatWithOptions as zB}from"util";import{sep as Lq}from"path";function m$(D,$){let F=process.cwd()+Lq;return D.split(`
7
7
  `).splice($.split(`
8
8
  `).length).map((J)=>J.trim().replace("file://","").replace(F,""))}function jq(D,$){return($.__write||$.write).call($,D)}class G7{formatStack(D,$,F){let X=" ".repeat((F?.errorLevel||0)+1);return X+m$(D,$).join(`
9
- ${X}`)}formatError(D,$){let F=D.message??jB($,D),X=D.stack?this.formatStack(D.stack,F,$):"",J=$?.errorLevel||0,G=J>0?`${" ".repeat(J)}[cause]: `:"",Y=D.cause?`
9
+ ${X}`)}formatError(D,$){let F=D.message??zB($,D),X=D.stack?this.formatStack(D.stack,F,$):"",J=$?.errorLevel||0,G=J>0?`${" ".repeat(J)}[cause]: `:"",Y=D.cause?`
10
10
 
11
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 jB($,...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`
12
+ `+X+Y}formatArgs(D,$){let F=D.map((X)=>{if(X&&typeof X.stack==="string")return this.formatError(X,$);return X});return zB($,...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
13
  `+[u$(D.tag),D.title&&D.title,...F.split(`
14
14
  `)].filter(Boolean).map((X)=>" > "+X).join(`
15
15
  `)+`
16
16
  `;return this.filterAndJoin([u$(D.type),u$(D.tag),F])}log(D,$){let F=this.formatLogObj(D,{columns:$.options.stdout.columns||0,...$.options.formatOptions});return jq(F+`
17
- `,D.level<2?$.options.stderr||process.stderr:$.options.stdout||process.stdout)}}var u$=(D)=>D?`[${D}]`:"";var zB=()=>{};import*as B7 from"tty";function bB(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:bB(Y,G,F,X))}function kq(D,$,F,X,J){return D<0?F+$+X:F+bB(D,$,X,J)+X}function vq(D,$,F=D,X=D.length+1){return(J)=>J||!(J===""||J===void 0)?kq((""+J).indexOf($,X),J,D,$,F):""}function XD(D,$,F){return vq(`\x1B[${D}m`,`\x1B[${$}m`,F)}function hq(D=fq){return D?IB:Object.fromEntries(Object.keys(IB).map(($)=>[$,String]))}function xq(D,$="reset"){return R0[D]||R0[$]}function Y8(D){return D.replace(new RegExp(gq,"g"),"")}function fB(D,$={}){let F={...$,style:{...yq,...$.style}},X=D.split(`
18
- `),J=[],G=xq(F.style.borderColor),Y={...typeof F.style.borderStyle==="string"?TB[F.style.borderStyle]||TB.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)=>Y8(A).length),F.title?Y8(F.title).length:0)+B,Q=W+B,_=F.style.marginLeft>0?" ".repeat(F.style.marginLeft):"";if(F.style.marginTop>0)J.push("".repeat(F.style.marginTop));if(F.title){let A=G?G(F.title):F.title,R=Y.h.repeat(Math.floor((W-Y8(F.title).length)/2)),O=Y.h.repeat(W-Y8(F.title).length-Y8(R).length+B);J.push(`${_}${Y.tl}${R}${A}${O}${Y.tr}`)}else J.push(`${_}${Y.tl}${Y.h.repeat(Q)}${Y.tr}`);let U=F.style.valign==="center"?Math.floor((H-X.length)/2):F.style.valign==="top"?H-X.length-B:H-X.length;for(let A=0;A<H;A++)if(A<U||A>=U+X.length)J.push(`${_}${Y.v}${" ".repeat(Q)}${Y.v}`);else{let R=X[A-U],O=" ".repeat(B),K=" ".repeat(W-Y8(R).length);J.push(`${_}${Y.v}${O}${R}${K}${Y.v}`)}if(J.push(`${_}${Y.bl}${Y.h.repeat(Q)}${Y.br}`),F.style.marginBottom>0)J.push("".repeat(F.style.marginBottom));return J.join(`
19
- `)}var G8,wB,zq,Iq,Tq,wq,SB,Sq,bq,fq,IB,R0,gq,TB,yq;var kB=Z(()=>{({env:G8={},argv:wB=[],platform:zq=""}=typeof process>"u"?{}:process),Iq="NO_COLOR"in G8||wB.includes("--no-color"),Tq="FORCE_COLOR"in G8||wB.includes("--color"),wq=zq==="win32",SB=G8.TERM==="dumb",Sq=B7&&B7.isatty&&B7.isatty(1)&&G8.TERM&&!SB,bq="CI"in G8&&(("GITHUB_ACTIONS"in G8)||("GITLAB_CI"in G8)||("CIRCLECI"in G8)),fq=!Iq&&(Tq||wq&&!SB||Sq||bq);IB={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)};R0=hq();gq=[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("|");TB={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"}},yq={borderColor:"white",borderStyle:"rounded",valign:"center",padding:2,marginLeft:1,marginTop:1,marginBottom:1}});var YH={};m8(YH,{prompt:()=>JH,kCancel:()=>XH});import t0,{stdin as uq,stdout as mq}from"process";import vB from"readline";import{WriteStream as pq}from"tty";function cq(D){return D&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D}function dq(){if(hB)return p$;hB=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 p$={cursor:X,scroll:J,erase:G,beep:F},p$}function lq(){if(xB)return H7.exports;xB=1;let D=process||{},$=D.argv||[],F=D.env||{},X=!(!!F.NO_COLOR||$.includes("--no-color"))&&(!!F.FORCE_COLOR||$.includes("--color")||D.platform==="win32"||(D.stdout||{}).isTTY&&F.TERM!=="dumb"||!!F.CI),J=(B,H,W=B)=>(Q)=>{let _=""+Q,U=_.indexOf(H,B.length);return~U?B+G(_,H,W,U)+H:B+_+H},G=(B,H,W,Q)=>{let _="",U=0;do _+=B.substring(U,Q)+W,U=Q+H.length,Q=B.indexOf(H,U);while(~Q);return _+B.substring(U)},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 H7.exports=Y(),H7.exports.createColors=Y,H7.exports}function nq({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 sB(D){if(typeof D!="string")throw TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(sq,"")}function rB(D){return D&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D}function F3(D,$={}){if(typeof D!="string"||D.length===0||($={ambiguousIsNarrow:!0,...$},D=sB(D),D.length===0))return 0;D=D.replace(tq()," ");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(aq.eastAsianWidth(J)){case"F":case"W":X+=2;break;case"A":X+=F;break;default:X+=1}}return X}function $N(){let D=new Map;for(let[$,F]of Object.entries(LD)){for(let[X,J]of Object.entries(F))LD[X]={open:`\x1B[${J[0]}m`,close:`\x1B[${J[1]}m`},F[X]=LD[X],D.set(J[0],J[1]);Object.defineProperty(LD,$,{value:F,enumerable:!1})}return Object.defineProperty(LD,"codes",{value:D,enumerable:!1}),LD.color.close="\x1B[39m",LD.bgColor.close="\x1B[49m",LD.color.ansi=gB(),LD.color.ansi256=yB(),LD.color.ansi16m=uB(),LD.bgColor.ansi=gB(c$),LD.bgColor.ansi256=yB(c$),LD.bgColor.ansi16m=uB(c$),Object.defineProperties(LD,{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:($)=>LD.rgbToAnsi256(...LD.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)=>LD.ansi256ToAnsi(LD.rgbToAnsi256($,F,X)),enumerable:!1},hexToAnsi:{value:($)=>LD.ansi256ToAnsi(LD.hexToAnsi256($)),enumerable:!1}}),LD}function cB(D,$,F){return String(D).normalize().replace(/\r\n/g,`
17
+ `,D.level<2?$.options.stderr||process.stderr:$.options.stdout||process.stdout)}}var u$=(D)=>D?`[${D}]`:"";var IB=()=>{};import*as B7 from"tty";function fB(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:fB(Y,G,F,X))}function kq(D,$,F,X,J){return D<0?F+$+X:F+fB(D,$,X,J)+X}function vq(D,$,F=D,X=D.length+1){return(J)=>J||!(J===""||J===void 0)?kq((""+J).indexOf($,X),J,D,$,F):""}function XD(D,$,F){return vq(`\x1B[${D}m`,`\x1B[${$}m`,F)}function hq(D=fq){return D?TB:Object.fromEntries(Object.keys(TB).map(($)=>[$,String]))}function xq(D,$="reset"){return R0[D]||R0[$]}function Y8(D){return D.replace(new RegExp(gq,"g"),"")}function kB(D,$={}){let F={...$,style:{...yq,...$.style}},X=D.split(`
18
+ `),J=[],G=xq(F.style.borderColor),Y={...typeof F.style.borderStyle==="string"?wB[F.style.borderStyle]||wB.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)=>Y8(A).length),F.title?Y8(F.title).length:0)+B,Q=W+B,_=F.style.marginLeft>0?" ".repeat(F.style.marginLeft):"";if(F.style.marginTop>0)J.push("".repeat(F.style.marginTop));if(F.title){let A=G?G(F.title):F.title,R=Y.h.repeat(Math.floor((W-Y8(F.title).length)/2)),O=Y.h.repeat(W-Y8(F.title).length-Y8(R).length+B);J.push(`${_}${Y.tl}${R}${A}${O}${Y.tr}`)}else J.push(`${_}${Y.tl}${Y.h.repeat(Q)}${Y.tr}`);let U=F.style.valign==="center"?Math.floor((H-X.length)/2):F.style.valign==="top"?H-X.length-B:H-X.length;for(let A=0;A<H;A++)if(A<U||A>=U+X.length)J.push(`${_}${Y.v}${" ".repeat(Q)}${Y.v}`);else{let R=X[A-U],O=" ".repeat(B),K=" ".repeat(W-Y8(R).length);J.push(`${_}${Y.v}${O}${R}${K}${Y.v}`)}if(J.push(`${_}${Y.bl}${Y.h.repeat(Q)}${Y.br}`),F.style.marginBottom>0)J.push("".repeat(F.style.marginBottom));return J.join(`
19
+ `)}var G8,SB,zq,Iq,Tq,wq,bB,Sq,bq,fq,TB,R0,gq,wB,yq;var vB=Z(()=>{({env:G8={},argv:SB=[],platform:zq=""}=typeof process>"u"?{}:process),Iq="NO_COLOR"in G8||SB.includes("--no-color"),Tq="FORCE_COLOR"in G8||SB.includes("--color"),wq=zq==="win32",bB=G8.TERM==="dumb",Sq=B7&&B7.isatty&&B7.isatty(1)&&G8.TERM&&!bB,bq="CI"in G8&&(("GITHUB_ACTIONS"in G8)||("GITLAB_CI"in G8)||("CIRCLECI"in G8)),fq=!Iq&&(Tq||wq&&!bB||Sq||bq);TB={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)};R0=hq();gq=[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("|");wB={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"}},yq={borderColor:"white",borderStyle:"rounded",valign:"center",padding:2,marginLeft:1,marginTop:1,marginBottom:1}});var GH={};m8(GH,{prompt:()=>YH,kCancel:()=>JH});import t0,{stdin as uq,stdout as mq}from"process";import hB from"readline";import{WriteStream as pq}from"tty";function cq(D){return D&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D}function dq(){if(xB)return p$;xB=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 p$={cursor:X,scroll:J,erase:G,beep:F},p$}function lq(){if(gB)return H7.exports;gB=1;let D=process||{},$=D.argv||[],F=D.env||{},X=!(!!F.NO_COLOR||$.includes("--no-color"))&&(!!F.FORCE_COLOR||$.includes("--color")||D.platform==="win32"||(D.stdout||{}).isTTY&&F.TERM!=="dumb"||!!F.CI),J=(B,H,W=B)=>(Q)=>{let _=""+Q,U=_.indexOf(H,B.length);return~U?B+G(_,H,W,U)+H:B+_+H},G=(B,H,W,Q)=>{let _="",U=0;do _+=B.substring(U,Q)+W,U=Q+H.length,Q=B.indexOf(H,U);while(~Q);return _+B.substring(U)},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 H7.exports=Y(),H7.exports.createColors=Y,H7.exports}function nq({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 rB(D){if(typeof D!="string")throw TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(sq,"")}function aB(D){return D&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D}function F3(D,$={}){if(typeof D!="string"||D.length===0||($={ambiguousIsNarrow:!0,...$},D=rB(D),D.length===0))return 0;D=D.replace(tq()," ");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(aq.eastAsianWidth(J)){case"F":case"W":X+=2;break;case"A":X+=F;break;default:X+=1}}return X}function $N(){let D=new Map;for(let[$,F]of Object.entries(LD)){for(let[X,J]of Object.entries(F))LD[X]={open:`\x1B[${J[0]}m`,close:`\x1B[${J[1]}m`},F[X]=LD[X],D.set(J[0],J[1]);Object.defineProperty(LD,$,{value:F,enumerable:!1})}return Object.defineProperty(LD,"codes",{value:D,enumerable:!1}),LD.color.close="\x1B[39m",LD.bgColor.close="\x1B[49m",LD.color.ansi=yB(),LD.color.ansi256=uB(),LD.color.ansi16m=mB(),LD.bgColor.ansi=yB(c$),LD.bgColor.ansi256=uB(c$),LD.bgColor.ansi16m=mB(c$),Object.defineProperties(LD,{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:($)=>LD.rgbToAnsi256(...LD.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)=>LD.ansi256ToAnsi(LD.rgbToAnsi256($,F,X)),enumerable:!1},hexToAnsi:{value:($)=>LD.ansi256ToAnsi(LD.hexToAnsi256($)),enumerable:!1}}),LD}function dB(D,$,F){return String(D).normalize().replace(/\r\n/g,`
20
20
  `).split(`
21
21
  `).map((X)=>BN(X,$,F)).join(`
22
- `)}function eB(D,$){if(typeof D=="string")return V7.aliases.get(D)===$;for(let F of D)if(F!==void 0&&eB(F,$))return!0;return!1}function WN(D,$){if(D===$)return;let F=D.split(`
22
+ `)}function DH(D,$){if(typeof D=="string")return V7.aliases.get(D)===$;for(let F of D)if(F!==void 0&&DH(F,$))return!0;return!1}function WN(D,$){if(D===$)return;let F=D.split(`
23
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 W7(D,$){let F=D;F.isTTY&&F.setRawMode($)}class X3{constructor(D,$=!0){j0(this,"input"),j0(this,"output"),j0(this,"_abortSignal"),j0(this,"rl"),j0(this,"opts"),j0(this,"_render"),j0(this,"_track",!1),j0(this,"_prevFrame",""),j0(this,"_subscribers",new Map),j0(this,"_cursor",0),j0(this,"state","initial"),j0(this,"error",""),j0(this,"value");let{input:F=uq,output:X=mq,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(dB);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}let F=new pq(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=vB.createInterface({input:this.input,output:F,tabSize:2,prompt:"",escapeCodeTimeout:50}),vB.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),W7(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(e0.cursor.show),this.output.off("resize",this.render),W7(this.input,!1),D(this.value)}),this.once("cancel",()=>{this.output.write(e0.cursor.show),this.output.off("resize",this.render),W7(this.input,!1),D(dB)})})}onKeypress(D,$){if(this.state==="error"&&(this.state="active"),$?.name&&(!this._track&&V7.aliases.has($.name)&&this.emit("cursor",V7.aliases.get($.name)),V7.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")}eB([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
- `),W7(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let D=cB(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
26
- `).length-1;this.output.write(e0.cursor.move(-999,D*-1))}render(){let D=cB(this._render(this)??"",process.stdout.columns,{hard:!0});if(D!==this._prevFrame){if(this.state==="initial")this.output.write(e0.cursor.hide);else{let $=WN(this._prevFrame,D);if(this.restoreCursor(),$&&$?.length===1){let F=$[0];this.output.write(e0.cursor.move(0,F)),this.output.write(e0.erase.lines(1));let X=D.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 W7(D,$){let F=D;F.isTTY&&F.setRawMode($)}class X3{constructor(D,$=!0){j0(this,"input"),j0(this,"output"),j0(this,"_abortSignal"),j0(this,"rl"),j0(this,"opts"),j0(this,"_render"),j0(this,"_track",!1),j0(this,"_prevFrame",""),j0(this,"_subscribers",new Map),j0(this,"_cursor",0),j0(this,"state","initial"),j0(this,"error",""),j0(this,"value");let{input:F=uq,output:X=mq,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(lB);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}let F=new pq(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=hB.createInterface({input:this.input,output:F,tabSize:2,prompt:"",escapeCodeTimeout:50}),hB.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),W7(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(e0.cursor.show),this.output.off("resize",this.render),W7(this.input,!1),D(this.value)}),this.once("cancel",()=>{this.output.write(e0.cursor.show),this.output.off("resize",this.render),W7(this.input,!1),D(lB)})})}onKeypress(D,$){if(this.state==="error"&&(this.state="active"),$?.name&&(!this._track&&V7.aliases.has($.name)&&this.emit("cursor",V7.aliases.get($.name)),V7.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")}DH([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
+ `),W7(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let D=dB(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
26
+ `).length-1;this.output.write(e0.cursor.move(-999,D*-1))}render(){let D=dB(this._render(this)??"",process.stdout.columns,{hard:!0});if(D!==this._prevFrame){if(this.state==="initial")this.output.write(e0.cursor.hide);else{let $=WN(this._prevFrame,D);if(this.restoreCursor(),$&&$?.length===1){let F=$[0];this.output.write(e0.cursor.move(0,F)),this.output.write(e0.erase.lines(1));let X=D.split(`
27
27
  `);this.output.write(X[F]),this._prevFrame=D,this.output.write(e0.cursor.move(0,X.length-F-1));return}if($&&$?.length>1){let F=$[0];this.output.write(e0.cursor.move(0,F)),this.output.write(e0.erase.down());let X=D.split(`
28
28
  `).slice(F);this.output.write(X.join(`
29
- `)),this._prevFrame=D;return}this.output.write(e0.erase.down())}this.output.write(D),this.state==="initial"&&(this.state="active"),this._prevFrame=D}}}function RN(){return t0.platform!=="win32"?t0.env.TERM!=="linux":!!t0.env.CI||!!t0.env.WT_SESSION||!!t0.env.TERMINUS_SUBLIME||t0.env.ConEmuTask==="{cmd::Cmder}"||t0.env.TERM_PROGRAM==="Terminus-Sublime"||t0.env.TERM_PROGRAM==="vscode"||t0.env.TERM==="xterm-256color"||t0.env.TERM==="alacritty"||t0.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}async function JH(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,JH);throw J}case"undefined":return;case"null":return null;case"symbol":return XH;default:case"default":return $.default??$.initial}};if(!$.type||$.type==="text")return await LN({message:D,defaultValue:$.default,placeholder:$.placeholder,initialValue:$.initial}).then(F);if($.type==="confirm")return await jN({message:D,initialValue:$.initial}).then(F);if($.type==="select")return await zN({message:D,options:$.options.map((X)=>typeof X==="string"?{value:X,label:X}:X),initialValue:$.initial}).then(F);if($.type==="multiselect")return await IN({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 p$,hB,e0,H7,xB,iq,k,sq,aB,rq,aq,oq=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},tq,c$=10,gB=(D=0)=>($)=>`\x1B[${$+D}m`,yB=(D=0)=>($)=>`\x1B[${38+D};5;${$}m`,uB=(D=0)=>($,F,X)=>`\x1B[${38+D};2;${$};${F};${X}m`,LD,eq,DN,FN,Q7,XN=39,s$="\x07",oB="[",JN="]",tB="m",r$,mB=(D)=>`${Q7.values().next().value}${oB}${D}${tB}`,pB=(D)=>`${Q7.values().next().value}${r$}${D}${s$}`,YN=(D)=>D.split(" ").map(($)=>F3($)),d$=(D,$,F)=>{let X=[...$],J=!1,G=!1,Y=F3(sB(D[D.length-1]));for(let[B,H]of X.entries()){let W=F3(H);if(Y+W<=F?D[D.length-1]+=H:(D.push(H),Y=0),Q7.has(H)&&(J=!0,G=X.slice(B+1).join("").startsWith(r$)),J){G?H===s$&&(J=!1,G=!1):H===tB&&(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())},GN=(D)=>{let $=D.split(" "),F=$.length;for(;F>0&&!(F3($[F-1])>0);)F--;return F===$.length?D:$.slice(0,F).join(" ")+$.slice(F).join("")},BN=(D,$,F={})=>{if(F.trim!==!1&&D.trim()==="")return"";let X="",J,G,Y=YN(D),B=[""];for(let[W,Q]of D.split(" ").entries()){F.trim!==!1&&(B[B.length-1]=B[B.length-1].trimStart());let _=F3(B[B.length-1]);if(W!==0&&(_>=$&&(F.wordWrap===!1||F.trim===!1)&&(B.push(""),_=0),(_>0||F.trim===!1)&&(B[B.length-1]+=" ",_++)),F.hard&&Y[W]>$){let U=$-_,A=1+Math.floor((Y[W]-U-1)/$);Math.floor((Y[W]-1)/$)<A&&B.push(""),d$(B,Q,$);continue}if(_+Y[W]>$&&_>0&&Y[W]>0){if(F.wordWrap===!1&&_<$){d$(B,Q,$);continue}B.push("")}if(_+Y[W]>$&&F.wordWrap===!1){d$(B,Q,$);continue}B[B.length-1]+=Q}F.trim!==!1&&(B=B.map((W)=>GN(W)));let H=[...B.join(`
30
- `)];for(let[W,Q]of H.entries()){if(X+=Q,Q7.has(Q)){let{groups:U}=new RegExp(`(?:\\${oB}(?<code>\\d+)m|\\${r$}(?<uri>.*)${s$})`).exec(H.slice(W).join(""))||{groups:{}};if(U.code!==void 0){let A=Number.parseFloat(U.code);J=A===XN?void 0:A}else U.uri!==void 0&&(G=U.uri.length===0?void 0:U.uri)}let _=FN.codes.get(Number(J));H[W+1]===`
31
- `?(G&&(X+=pB("")),J&&_&&(X+=mB(_))):Q===`
32
- `&&(J&&_&&(X+=mB(J)),G&&(X+=pB(G)))}return X},HN,V7,dB,VN,QN=(D,$,F)=>($ in D)?VN(D,$,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[$]=F,j0=(D,$,F)=>(QN(D,typeof $!="symbol"?$+"":$,F),F),DH,_N,UN=(D,$,F)=>($ in D)?_N(D,$,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[$]=F,lB=(D,$,F)=>(UN(D,typeof $!="symbol"?$+"":$,F),F),AN,KN,ON=(D,$,F)=>($ in D)?KN(D,$,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[$]=F,iB=(D,$,F)=>(ON(D,typeof $!="symbol"?$+"":$,F),F),$H,FH,EN,D2=(D,$)=>EN?D:$,CN,MN,ZN,qN,qD,k1,l$,i$,NN,nB,PN,_7=(D)=>{switch(D){case"initial":case"active":return k.cyan(CN);case"cancel":return k.red(MN);case"error":return k.yellow(ZN);case"submit":return k.green(qN)}},n$=(D)=>{let{cursor:$,options:F,style:X}=D,J=D.maxItems??Number.POSITIVE_INFINITY,G=Math.max(process.stdout.rows-4,0),Y=Math.min(G,Math.max(J,5)),B=0;$>=B+Y-3?B=Math.max(Math.min($-Y+3,F.length-Y),0):$<B+2&&(B=Math.max($-2,0));let H=Y<F.length&&B>0,W=Y<F.length&&B+Y<F.length;return F.slice(B,B+Y).map((Q,_,U)=>{let A=_===0&&H,R=_===U.length-1&&W;return A||R?k.dim("..."):X(Q,_+B===$)})},LN=(D)=>new FH({validate:D.validate,placeholder:D.placeholder,defaultValue:D.defaultValue,initialValue:D.initialValue,render(){let $=`${k.gray(qD)}
29
+ `)),this._prevFrame=D;return}this.output.write(e0.erase.down())}this.output.write(D),this.state==="initial"&&(this.state="active"),this._prevFrame=D}}}function RN(){return t0.platform!=="win32"?t0.env.TERM!=="linux":!!t0.env.CI||!!t0.env.WT_SESSION||!!t0.env.TERMINUS_SUBLIME||t0.env.ConEmuTask==="{cmd::Cmder}"||t0.env.TERM_PROGRAM==="Terminus-Sublime"||t0.env.TERM_PROGRAM==="vscode"||t0.env.TERM==="xterm-256color"||t0.env.TERM==="alacritty"||t0.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}async function YH(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,YH);throw J}case"undefined":return;case"null":return null;case"symbol":return JH;default:case"default":return $.default??$.initial}};if(!$.type||$.type==="text")return await LN({message:D,defaultValue:$.default,placeholder:$.placeholder,initialValue:$.initial}).then(F);if($.type==="confirm")return await jN({message:D,initialValue:$.initial}).then(F);if($.type==="select")return await zN({message:D,options:$.options.map((X)=>typeof X==="string"?{value:X,label:X}:X),initialValue:$.initial}).then(F);if($.type==="multiselect")return await IN({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 p$,xB,e0,H7,gB,iq,k,sq,oB,rq,aq,oq=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},tq,c$=10,yB=(D=0)=>($)=>`\x1B[${$+D}m`,uB=(D=0)=>($)=>`\x1B[${38+D};5;${$}m`,mB=(D=0)=>($,F,X)=>`\x1B[${38+D};2;${$};${F};${X}m`,LD,eq,DN,FN,Q7,XN=39,s$="\x07",tB="[",JN="]",eB="m",r$,pB=(D)=>`${Q7.values().next().value}${tB}${D}${eB}`,cB=(D)=>`${Q7.values().next().value}${r$}${D}${s$}`,YN=(D)=>D.split(" ").map(($)=>F3($)),d$=(D,$,F)=>{let X=[...$],J=!1,G=!1,Y=F3(rB(D[D.length-1]));for(let[B,H]of X.entries()){let W=F3(H);if(Y+W<=F?D[D.length-1]+=H:(D.push(H),Y=0),Q7.has(H)&&(J=!0,G=X.slice(B+1).join("").startsWith(r$)),J){G?H===s$&&(J=!1,G=!1):H===eB&&(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())},GN=(D)=>{let $=D.split(" "),F=$.length;for(;F>0&&!(F3($[F-1])>0);)F--;return F===$.length?D:$.slice(0,F).join(" ")+$.slice(F).join("")},BN=(D,$,F={})=>{if(F.trim!==!1&&D.trim()==="")return"";let X="",J,G,Y=YN(D),B=[""];for(let[W,Q]of D.split(" ").entries()){F.trim!==!1&&(B[B.length-1]=B[B.length-1].trimStart());let _=F3(B[B.length-1]);if(W!==0&&(_>=$&&(F.wordWrap===!1||F.trim===!1)&&(B.push(""),_=0),(_>0||F.trim===!1)&&(B[B.length-1]+=" ",_++)),F.hard&&Y[W]>$){let U=$-_,A=1+Math.floor((Y[W]-U-1)/$);Math.floor((Y[W]-1)/$)<A&&B.push(""),d$(B,Q,$);continue}if(_+Y[W]>$&&_>0&&Y[W]>0){if(F.wordWrap===!1&&_<$){d$(B,Q,$);continue}B.push("")}if(_+Y[W]>$&&F.wordWrap===!1){d$(B,Q,$);continue}B[B.length-1]+=Q}F.trim!==!1&&(B=B.map((W)=>GN(W)));let H=[...B.join(`
30
+ `)];for(let[W,Q]of H.entries()){if(X+=Q,Q7.has(Q)){let{groups:U}=new RegExp(`(?:\\${tB}(?<code>\\d+)m|\\${r$}(?<uri>.*)${s$})`).exec(H.slice(W).join(""))||{groups:{}};if(U.code!==void 0){let A=Number.parseFloat(U.code);J=A===XN?void 0:A}else U.uri!==void 0&&(G=U.uri.length===0?void 0:U.uri)}let _=FN.codes.get(Number(J));H[W+1]===`
31
+ `?(G&&(X+=cB("")),J&&_&&(X+=pB(_))):Q===`
32
+ `&&(J&&_&&(X+=pB(J)),G&&(X+=cB(G)))}return X},HN,V7,lB,VN,QN=(D,$,F)=>($ in D)?VN(D,$,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[$]=F,j0=(D,$,F)=>(QN(D,typeof $!="symbol"?$+"":$,F),F),$H,_N,UN=(D,$,F)=>($ in D)?_N(D,$,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[$]=F,iB=(D,$,F)=>(UN(D,typeof $!="symbol"?$+"":$,F),F),AN,KN,ON=(D,$,F)=>($ in D)?KN(D,$,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[$]=F,nB=(D,$,F)=>(ON(D,typeof $!="symbol"?$+"":$,F),F),FH,XH,EN,D2=(D,$)=>EN?D:$,CN,MN,ZN,qN,qD,k1,l$,i$,NN,sB,PN,_7=(D)=>{switch(D){case"initial":case"active":return k.cyan(CN);case"cancel":return k.red(MN);case"error":return k.yellow(ZN);case"submit":return k.green(qN)}},n$=(D)=>{let{cursor:$,options:F,style:X}=D,J=D.maxItems??Number.POSITIVE_INFINITY,G=Math.max(process.stdout.rows-4,0),Y=Math.min(G,Math.max(J,5)),B=0;$>=B+Y-3?B=Math.max(Math.min($-Y+3,F.length-Y),0):$<B+2&&(B=Math.max($-2,0));let H=Y<F.length&&B>0,W=Y<F.length&&B+Y<F.length;return F.slice(B,B+Y).map((Q,_,U)=>{let A=_===0&&H,R=_===U.length-1&&W;return A||R?k.dim("..."):X(Q,_+B===$)})},LN=(D)=>new XH({validate:D.validate,placeholder:D.placeholder,defaultValue:D.defaultValue,initialValue:D.initialValue,render(){let $=`${k.gray(qD)}
33
33
  ${_7(this.state)} ${D.message}
34
34
  `,F=D.placeholder?k.inverse(D.placeholder[0])+k.dim(D.placeholder.slice(1)):k.inverse(k.hidden("_")),X=this.value?this.valueWithCursor:F;switch(this.state){case"error":return`${$.trim()}
35
35
  ${k.yellow(qD)} ${X}
@@ -37,18 +37,18 @@ ${k.yellow(k1)} ${k.yellow(this.error)}
37
37
  `;case"submit":return`${$}${k.gray(qD)} ${k.dim(this.value||D.placeholder)}`;case"cancel":return`${$}${k.gray(qD)} ${k.strikethrough(k.dim(this.value??""))}${this.value?.trim()?`
38
38
  ${k.gray(qD)}`:""}`;default:return`${$}${k.cyan(qD)} ${X}
39
39
  ${k.cyan(k1)}
40
- `}}}).prompt(),jN=(D)=>{let $=D.active??"Yes",F=D.inactive??"No";return new DH({active:$,inactive:F,initialValue:D.initialValue??!0,render(){let X=`${k.gray(qD)}
40
+ `}}}).prompt(),jN=(D)=>{let $=D.active??"Yes",F=D.inactive??"No";return new $H({active:$,inactive:F,initialValue:D.initialValue??!0,render(){let X=`${k.gray(qD)}
41
41
  ${_7(this.state)} ${D.message}
42
42
  `,J=this.value?$:F;switch(this.state){case"submit":return`${X}${k.gray(qD)} ${k.dim(J)}`;case"cancel":return`${X}${k.gray(qD)} ${k.strikethrough(k.dim(J))}
43
43
  ${k.gray(qD)}`;default:return`${X}${k.cyan(qD)} ${this.value?`${k.green(l$)} ${$}`:`${k.dim(i$)} ${k.dim($)}`} ${k.dim("/")} ${this.value?`${k.dim(i$)} ${k.dim(F)}`:`${k.green(l$)} ${F}`}
44
44
  ${k.cyan(k1)}
45
- `}}}).prompt()},zN=(D)=>{let $=(F,X)=>{let J=F.label??String(F.value);switch(X){case"selected":return`${k.dim(J)}`;case"active":return`${k.green(l$)} ${J} ${F.hint?k.dim(`(${F.hint})`):""}`;case"cancelled":return`${k.strikethrough(k.dim(J))}`;default:return`${k.dim(i$)} ${k.dim(J)}`}};return new $H({options:D.options,initialValue:D.initialValue,render(){let F=`${k.gray(qD)}
45
+ `}}}).prompt()},zN=(D)=>{let $=(F,X)=>{let J=F.label??String(F.value);switch(X){case"selected":return`${k.dim(J)}`;case"active":return`${k.green(l$)} ${J} ${F.hint?k.dim(`(${F.hint})`):""}`;case"cancelled":return`${k.strikethrough(k.dim(J))}`;default:return`${k.dim(i$)} ${k.dim(J)}`}};return new FH({options:D.options,initialValue:D.initialValue,render(){let F=`${k.gray(qD)}
46
46
  ${_7(this.state)} ${D.message}
47
47
  `;switch(this.state){case"submit":return`${F}${k.gray(qD)} ${$(this.options[this.cursor],"selected")}`;case"cancel":return`${F}${k.gray(qD)} ${$(this.options[this.cursor],"cancelled")}
48
48
  ${k.gray(qD)}`;default:return`${F}${k.cyan(qD)} ${n$({cursor:this.cursor,options:this.options,maxItems:D.maxItems,style:(X,J)=>$(X,J?"active":"inactive")}).join(`
49
49
  ${k.cyan(qD)} `)}
50
50
  ${k.cyan(k1)}
51
- `}}}).prompt()},IN=(D)=>{let $=(F,X)=>{let J=F.label??String(F.value);return X==="active"?`${k.cyan(NN)} ${J} ${F.hint?k.dim(`(${F.hint})`):""}`:X==="selected"?`${k.green(nB)} ${k.dim(J)}`:X==="cancelled"?`${k.strikethrough(k.dim(J))}`:X==="active-selected"?`${k.green(nB)} ${J} ${F.hint?k.dim(`(${F.hint})`):""}`:X==="submitted"?`${k.dim(J)}`:`${k.dim(PN)} ${k.dim(J)}`};return new AN({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.
51
+ `}}}).prompt()},IN=(D)=>{let $=(F,X)=>{let J=F.label??String(F.value);return X==="active"?`${k.cyan(NN)} ${J} ${F.hint?k.dim(`(${F.hint})`):""}`:X==="selected"?`${k.green(sB)} ${k.dim(J)}`:X==="cancelled"?`${k.strikethrough(k.dim(J))}`:X==="active-selected"?`${k.green(sB)} ${J} ${F.hint?k.dim(`(${F.hint})`):""}`:X==="submitted"?`${k.dim(J)}`:`${k.dim(PN)} ${k.dim(J)}`};return new AN({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
52
  ${k.reset(k.dim(`Press ${k.gray(k.bgWhite(k.inverse(" space ")))} to select, ${k.gray(k.bgWhite(k.inverse(" enter ")))} to submit`))}`},render(){let F=`${k.gray(qD)}
53
53
  ${_7(this.state)} ${D.message}
54
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}${k.gray(qD)} ${this.options.filter(({value:J})=>this.value.includes(J)).map((J)=>$(J,"submitted")).join(k.dim(", "))||k.dim("none")}`;case"cancel":{let J=this.options.filter(({value:G})=>this.value.includes(G)).map((G)=>$(G,"cancelled")).join(k.dim(", "));return`${F}${k.gray(qD)} ${J.trim()?`${J}
@@ -60,23 +60,23 @@ ${J}
60
60
  `}default:return`${F}${k.cyan(qD)} ${n$({options:this.options,cursor:this.cursor,maxItems:D.maxItems,style:X}).join(`
61
61
  ${k.cyan(qD)} `)}
62
62
  ${k.cyan(k1)}
63
- `}}}).prompt()},XH;var GH=Z(()=>{e0=dq(),H7={exports:{}};iq=lq(),k=cq(iq);sq=nq();aB={exports:{}};(function(D){var $={};D.exports=$,$.eastAsianWidth=function(X){var J=X.charCodeAt(0),G=X.length==2?X.charCodeAt(1):0,Y=J;return 55296<=J&&J<=56319&&56320<=G&&G<=57343&&(J&=1023,G&=1023,Y=J<<10|G,Y+=65536),Y==12288||65281<=Y&&Y<=65376||65504<=Y&&Y<=65510?"F":Y==8361||65377<=Y&&Y<=65470||65474<=Y&&Y<=65479||65482<=Y&&Y<=65487||65490<=Y&&Y<=65495||65498<=Y&&Y<=65500||65512<=Y&&Y<=65518?"H":4352<=Y&&Y<=4447||4515<=Y&&Y<=4519||4602<=Y&&Y<=4607||9001<=Y&&Y<=9002||11904<=Y&&Y<=11929||11931<=Y&&Y<=12019||12032<=Y&&Y<=12245||12272<=Y&&Y<=12283||12289<=Y&&Y<=12350||12353<=Y&&Y<=12438||12441<=Y&&Y<=12543||12549<=Y&&Y<=12589||12593<=Y&&Y<=12686||12688<=Y&&Y<=12730||12736<=Y&&Y<=12771||12784<=Y&&Y<=12830||12832<=Y&&Y<=12871||12880<=Y&&Y<=13054||13056<=Y&&Y<=19903||19968<=Y&&Y<=42124||42128<=Y&&Y<=42182||43360<=Y&&Y<=43388||44032<=Y&&Y<=55203||55216<=Y&&Y<=55238||55243<=Y&&Y<=55291||63744<=Y&&Y<=64255||65040<=Y&&Y<=65049||65072<=Y&&Y<=65106||65108<=Y&&Y<=65126||65128<=Y&&Y<=65131||110592<=Y&&Y<=110593||127488<=Y&&Y<=127490||127504<=Y&&Y<=127546||127552<=Y&&Y<=127560||127568<=Y&&Y<=127569||131072<=Y&&Y<=194367||177984<=Y&&Y<=196605||196608<=Y&&Y<=262141?"W":32<=Y&&Y<=126||162<=Y&&Y<=163||165<=Y&&Y<=166||Y==172||Y==175||10214<=Y&&Y<=10221||10629<=Y&&Y<=10630?"Na":Y==161||Y==164||167<=Y&&Y<=168||Y==170||173<=Y&&Y<=174||176<=Y&&Y<=180||182<=Y&&Y<=186||188<=Y&&Y<=191||Y==198||Y==208||215<=Y&&Y<=216||222<=Y&&Y<=225||Y==230||232<=Y&&Y<=234||236<=Y&&Y<=237||Y==240||242<=Y&&Y<=243||247<=Y&&Y<=250||Y==252||Y==254||Y==257||Y==273||Y==275||Y==283||294<=Y&&Y<=295||Y==299||305<=Y&&Y<=307||Y==312||319<=Y&&Y<=322||Y==324||328<=Y&&Y<=331||Y==333||338<=Y&&Y<=339||358<=Y&&Y<=359||Y==363||Y==462||Y==464||Y==466||Y==468||Y==470||Y==472||Y==474||Y==476||Y==593||Y==609||Y==708||Y==711||713<=Y&&Y<=715||Y==717||Y==720||728<=Y&&Y<=731||Y==733||Y==735||768<=Y&&Y<=879||913<=Y&&Y<=929||931<=Y&&Y<=937||945<=Y&&Y<=961||963<=Y&&Y<=969||Y==1025||1040<=Y&&Y<=1103||Y==1105||Y==8208||8211<=Y&&Y<=8214||8216<=Y&&Y<=8217||8220<=Y&&Y<=8221||8224<=Y&&Y<=8226||8228<=Y&&Y<=8231||Y==8240||8242<=Y&&Y<=8243||Y==8245||Y==8251||Y==8254||Y==8308||Y==8319||8321<=Y&&Y<=8324||Y==8364||Y==8451||Y==8453||Y==8457||Y==8467||Y==8470||8481<=Y&&Y<=8482||Y==8486||Y==8491||8531<=Y&&Y<=8532||8539<=Y&&Y<=8542||8544<=Y&&Y<=8555||8560<=Y&&Y<=8569||Y==8585||8592<=Y&&Y<=8601||8632<=Y&&Y<=8633||Y==8658||Y==8660||Y==8679||Y==8704||8706<=Y&&Y<=8707||8711<=Y&&Y<=8712||Y==8715||Y==8719||Y==8721||Y==8725||Y==8730||8733<=Y&&Y<=8736||Y==8739||Y==8741||8743<=Y&&Y<=8748||Y==8750||8756<=Y&&Y<=8759||8764<=Y&&Y<=8765||Y==8776||Y==8780||Y==8786||8800<=Y&&Y<=8801||8804<=Y&&Y<=8807||8810<=Y&&Y<=8811||8814<=Y&&Y<=8815||8834<=Y&&Y<=8835||8838<=Y&&Y<=8839||Y==8853||Y==8857||Y==8869||Y==8895||Y==8978||9312<=Y&&Y<=9449||9451<=Y&&Y<=9547||9552<=Y&&Y<=9587||9600<=Y&&Y<=9615||9618<=Y&&Y<=9621||9632<=Y&&Y<=9633||9635<=Y&&Y<=9641||9650<=Y&&Y<=9651||9654<=Y&&Y<=9655||9660<=Y&&Y<=9661||9664<=Y&&Y<=9665||9670<=Y&&Y<=9672||Y==9675||9678<=Y&&Y<=9681||9698<=Y&&Y<=9701||Y==9711||9733<=Y&&Y<=9734||Y==9737||9742<=Y&&Y<=9743||9748<=Y&&Y<=9749||Y==9756||Y==9758||Y==9792||Y==9794||9824<=Y&&Y<=9825||9827<=Y&&Y<=9829||9831<=Y&&Y<=9834||9836<=Y&&Y<=9837||Y==9839||9886<=Y&&Y<=9887||9918<=Y&&Y<=9919||9924<=Y&&Y<=9933||9935<=Y&&Y<=9953||Y==9955||9960<=Y&&Y<=9983||Y==10045||Y==10071||10102<=Y&&Y<=10111||11093<=Y&&Y<=11097||12872<=Y&&Y<=12879||57344<=Y&&Y<=63743||65024<=Y&&Y<=65039||Y==65533||127232<=Y&&Y<=127242||127248<=Y&&Y<=127277||127280<=Y&&Y<=127337||127344<=Y&&Y<=127386||917760<=Y&&Y<=917999||983040<=Y&&Y<=1048573||1048576<=Y&&Y<=1114109?"A":"N"},$.characterLength=function(X){var J=this.eastAsianWidth(X);return J=="F"||J=="W"||J=="A"?2:1};function F(X){return X.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}$.length=function(X){for(var J=F(X),G=0,Y=0;Y<J.length;Y++)G=G+this.characterLength(J[Y]);return G},$.slice=function(X,J,G){textLen=$.length(X),J=J||0,G=G||1,J<0&&(J=textLen+J),G<0&&(G=textLen+G);for(var Y="",B=0,H=F(X),W=0;W<H.length;W++){var Q=H[W],_=$.length(Q);if(B>=J-(_==2?1:0))if(B+_<=G)Y+=Q;else break;B+=_}return Y}})(aB);rq=aB.exports,aq=rB(rq),tq=rB(oq);LD={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(LD.modifier);eq=Object.keys(LD.color),DN=Object.keys(LD.bgColor);[...eq,...DN];FN=$N(),Q7=new Set(["\x1B","\x9B"]),r$=`${JN}8;;`;HN=["up","down","left","right","space","enter","cancel"],V7={actions:new Set(HN),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["\x03","cancel"],["escape","cancel"]])};globalThis.process.platform.startsWith("win");dB=Symbol("clack:cancel");VN=Object.defineProperty;DH=class DH extends X3{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(e0.cursor.move(0,-1)),this.value=$,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}};_N=Object.defineProperty,AN=class extends X3{constructor(D){super(D,!1),lB(this,"options"),lB(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]}},KN=Object.defineProperty;$H=class $H extends X3{constructor(D){super(D,!1),iB(this,"options"),iB(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}};FH=class FH extends X3{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}${k.inverse($)}${F.join("")}`}get cursor(){return this._cursor}constructor(D){super(D),this.on("finalize",()=>{this.value||(this.value=D.defaultValue)})}};EN=RN(),CN=D2("\u276F",">"),MN=D2("\u25A0","x"),ZN=D2("\u25B2","x"),qN=D2("\u2714","\u221A"),qD=D2(""),k1=D2(""),l$=D2("\u25CF",">"),i$=D2("\u25CB"," "),NN=D2("\u25FB","[\u2022]"),nB=D2("\u25FC","[+]"),PN=D2("\u25FB","[ ]");`${k.gray(qD)} `;XH=Symbol.for("cancel")});import BH from"process";function SN(){if(globalThis.process?.env)for(let D of wN){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 p8(D){return D?D!=="false":!1}function lN(){let D=dN.find(($)=>$[0]);if(D)return{name:D[1]}}function nN({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 rN(D){if(typeof D!=="string")throw TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(sN,"")}function aN(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 oN(D){return D===12288||D>=65281&&D<=65376||D>=65504&&D<=65510}function tN(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 eN(D){if(!Number.isSafeInteger(D))throw TypeError(`Expected a code point, got \`${typeof D}\`.`)}function DP(D,{ambiguousAsWide:$=!1}={}){if(eN(D),oN(D)||tN(D)||$&&aN(D))return 2;return 1}function JP(D,$={}){if(typeof D!=="string"||D.length===0)return 0;let{ambiguousIsNarrow:F=!0,countAnsiEscapeCodes:X=!1}=$;if(!X)D=rN(D);if(D.length===0)return 0;let J=0,G={ambiguousAsWide:!F};for(let{segment:Y}of FP.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($P().test(Y)){J+=2;continue}J+=DP(B,G)}return J}function YP(){let{env:D}=BH,{TERM:$,TERM_PROGRAM:F}=D;if(BH.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 VH(D){if(typeof Intl!=="object"||!Intl.Segmenter)return Y8(D).length;return JP(D)}function U7(D){return D.replace(/`([^`]+)`/gm,($,F)=>R0.cyan(F)).replace(/\s+_([^_]+)_\s+/gm,($,F)=>` ${R0.underline(F)} `)}function WP(D="white"){return R0[D]||R0.white}function VP(D="bgWhite"){return R0[`bg${D[0].toUpperCase()}${D.slice(1)}`]||R0.bgWhite}function QP(D={}){let $=_P();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(() => (GH(),YH)).then((J)=>J.prompt(...X)),reporters:D.reporters||[D.fancy??!(a$||o$)?new UH:new G7],...D})}function _P(){if(fN)return F0.debug;if(o$)return F0.warn;return F0.info}var A7,J3=(D)=>globalThis.process?.env||import.meta.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(D?A7:globalThis),B8,TN,wN,QH,bN,a$,_H,fN,o$,kN,vN,hN,HH,xN,gN,yN,uN,mN,pN,cN,dN,iN,sN,$P=()=>{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},FP,XP,GP,BP,HP,j2=(D,$)=>HP?D:$,WH,UH,C;var JD=Z(()=>{y$();y$();zB();kB();A7=Object.create(null),B8=new Proxy(A7,{get(D,$){return J3()[$]??A7[$]},has(D,$){let F=J3();return $ in F||$ in A7},set(D,$,F){let X=J3(!0);return X[$]=F,!0},deleteProperty(D,$){if(!$)return!1;let F=J3(!0);return delete F[$],!0},ownKeys(){let D=J3(!0);return Object.keys(D)}}),TN=typeof process<"u"&&process.env&&"development"||"",wN=[["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}]];QH=SN();QH.name;bN=globalThis.process?.platform||"",a$=p8(B8.CI)||QH.ci!==!1,_H=p8(globalThis.process?.stdout&&globalThis.process?.stdout.isTTY),fN=p8(B8.DEBUG),o$=TN==="test"||p8(B8.TEST);p8(B8.MINIMAL);kN=/^win/i.test(bN);!p8(B8.NO_COLOR)&&(p8(B8.FORCE_COLOR)||(_H||kN)&&B8.TERM);vN=(globalThis.process?.versions?.node||"").replace(/^v/,"")||null;Number(vN?.split(".")[0]);hN=globalThis.process||Object.create(null),HH={versions:{}};new Proxy(hN,{get(D,$){if($==="env")return B8;if($ in D)return D[$];if($ in HH)return HH[$]}});xN=globalThis.process?.release?.name==="node",gN=!!globalThis.Bun||!!globalThis.process?.versions?.bun,yN=!!globalThis.Deno,uN=!!globalThis.fastly,mN=!!globalThis.Netlify,pN=!!globalThis.EdgeRuntime,cN=globalThis.navigator?.userAgent==="Cloudflare-Workers",dN=[[mN,"netlify"],[pN,"edge-light"],[cN,"workerd"],[uN,"fastly"],[yN,"deno"],[gN,"bun"],[xN,"node"]];iN=lN();iN?.name;sN=nN();FP=globalThis.Intl?.Segmenter?new Intl.Segmenter:{segment:(D)=>D.split("")},XP=/^\p{Default_Ignorable_Code_Point}$/u;GP={info:"cyan",fail:"red",success:"green",ready:"green",start:"magenta"},BP={0:"red",1:"yellow"},HP=YP(),WH={error:j2("\u2716","\xD7"),fatal:j2("\u2716","\xD7"),ready:j2("\u2714","\u221A"),warn:j2("\u26A0","\u203C"),info:j2("\u2139","i"),success:j2("\u2714","\u221A"),debug:j2("\u2699","D"),trace:j2("\u2192","\u2192"),fail:j2("\u2716","\xD7"),start:j2("\u25D0","o"),log:""};UH=class UH extends G7{formatStack(D,$,F){let X=" ".repeat((F?.errorLevel||0)+1);return`
63
+ `}}}).prompt()},JH;var BH=Z(()=>{e0=dq(),H7={exports:{}};iq=lq(),k=cq(iq);sq=nq();oB={exports:{}};(function(D){var $={};D.exports=$,$.eastAsianWidth=function(X){var J=X.charCodeAt(0),G=X.length==2?X.charCodeAt(1):0,Y=J;return 55296<=J&&J<=56319&&56320<=G&&G<=57343&&(J&=1023,G&=1023,Y=J<<10|G,Y+=65536),Y==12288||65281<=Y&&Y<=65376||65504<=Y&&Y<=65510?"F":Y==8361||65377<=Y&&Y<=65470||65474<=Y&&Y<=65479||65482<=Y&&Y<=65487||65490<=Y&&Y<=65495||65498<=Y&&Y<=65500||65512<=Y&&Y<=65518?"H":4352<=Y&&Y<=4447||4515<=Y&&Y<=4519||4602<=Y&&Y<=4607||9001<=Y&&Y<=9002||11904<=Y&&Y<=11929||11931<=Y&&Y<=12019||12032<=Y&&Y<=12245||12272<=Y&&Y<=12283||12289<=Y&&Y<=12350||12353<=Y&&Y<=12438||12441<=Y&&Y<=12543||12549<=Y&&Y<=12589||12593<=Y&&Y<=12686||12688<=Y&&Y<=12730||12736<=Y&&Y<=12771||12784<=Y&&Y<=12830||12832<=Y&&Y<=12871||12880<=Y&&Y<=13054||13056<=Y&&Y<=19903||19968<=Y&&Y<=42124||42128<=Y&&Y<=42182||43360<=Y&&Y<=43388||44032<=Y&&Y<=55203||55216<=Y&&Y<=55238||55243<=Y&&Y<=55291||63744<=Y&&Y<=64255||65040<=Y&&Y<=65049||65072<=Y&&Y<=65106||65108<=Y&&Y<=65126||65128<=Y&&Y<=65131||110592<=Y&&Y<=110593||127488<=Y&&Y<=127490||127504<=Y&&Y<=127546||127552<=Y&&Y<=127560||127568<=Y&&Y<=127569||131072<=Y&&Y<=194367||177984<=Y&&Y<=196605||196608<=Y&&Y<=262141?"W":32<=Y&&Y<=126||162<=Y&&Y<=163||165<=Y&&Y<=166||Y==172||Y==175||10214<=Y&&Y<=10221||10629<=Y&&Y<=10630?"Na":Y==161||Y==164||167<=Y&&Y<=168||Y==170||173<=Y&&Y<=174||176<=Y&&Y<=180||182<=Y&&Y<=186||188<=Y&&Y<=191||Y==198||Y==208||215<=Y&&Y<=216||222<=Y&&Y<=225||Y==230||232<=Y&&Y<=234||236<=Y&&Y<=237||Y==240||242<=Y&&Y<=243||247<=Y&&Y<=250||Y==252||Y==254||Y==257||Y==273||Y==275||Y==283||294<=Y&&Y<=295||Y==299||305<=Y&&Y<=307||Y==312||319<=Y&&Y<=322||Y==324||328<=Y&&Y<=331||Y==333||338<=Y&&Y<=339||358<=Y&&Y<=359||Y==363||Y==462||Y==464||Y==466||Y==468||Y==470||Y==472||Y==474||Y==476||Y==593||Y==609||Y==708||Y==711||713<=Y&&Y<=715||Y==717||Y==720||728<=Y&&Y<=731||Y==733||Y==735||768<=Y&&Y<=879||913<=Y&&Y<=929||931<=Y&&Y<=937||945<=Y&&Y<=961||963<=Y&&Y<=969||Y==1025||1040<=Y&&Y<=1103||Y==1105||Y==8208||8211<=Y&&Y<=8214||8216<=Y&&Y<=8217||8220<=Y&&Y<=8221||8224<=Y&&Y<=8226||8228<=Y&&Y<=8231||Y==8240||8242<=Y&&Y<=8243||Y==8245||Y==8251||Y==8254||Y==8308||Y==8319||8321<=Y&&Y<=8324||Y==8364||Y==8451||Y==8453||Y==8457||Y==8467||Y==8470||8481<=Y&&Y<=8482||Y==8486||Y==8491||8531<=Y&&Y<=8532||8539<=Y&&Y<=8542||8544<=Y&&Y<=8555||8560<=Y&&Y<=8569||Y==8585||8592<=Y&&Y<=8601||8632<=Y&&Y<=8633||Y==8658||Y==8660||Y==8679||Y==8704||8706<=Y&&Y<=8707||8711<=Y&&Y<=8712||Y==8715||Y==8719||Y==8721||Y==8725||Y==8730||8733<=Y&&Y<=8736||Y==8739||Y==8741||8743<=Y&&Y<=8748||Y==8750||8756<=Y&&Y<=8759||8764<=Y&&Y<=8765||Y==8776||Y==8780||Y==8786||8800<=Y&&Y<=8801||8804<=Y&&Y<=8807||8810<=Y&&Y<=8811||8814<=Y&&Y<=8815||8834<=Y&&Y<=8835||8838<=Y&&Y<=8839||Y==8853||Y==8857||Y==8869||Y==8895||Y==8978||9312<=Y&&Y<=9449||9451<=Y&&Y<=9547||9552<=Y&&Y<=9587||9600<=Y&&Y<=9615||9618<=Y&&Y<=9621||9632<=Y&&Y<=9633||9635<=Y&&Y<=9641||9650<=Y&&Y<=9651||9654<=Y&&Y<=9655||9660<=Y&&Y<=9661||9664<=Y&&Y<=9665||9670<=Y&&Y<=9672||Y==9675||9678<=Y&&Y<=9681||9698<=Y&&Y<=9701||Y==9711||9733<=Y&&Y<=9734||Y==9737||9742<=Y&&Y<=9743||9748<=Y&&Y<=9749||Y==9756||Y==9758||Y==9792||Y==9794||9824<=Y&&Y<=9825||9827<=Y&&Y<=9829||9831<=Y&&Y<=9834||9836<=Y&&Y<=9837||Y==9839||9886<=Y&&Y<=9887||9918<=Y&&Y<=9919||9924<=Y&&Y<=9933||9935<=Y&&Y<=9953||Y==9955||9960<=Y&&Y<=9983||Y==10045||Y==10071||10102<=Y&&Y<=10111||11093<=Y&&Y<=11097||12872<=Y&&Y<=12879||57344<=Y&&Y<=63743||65024<=Y&&Y<=65039||Y==65533||127232<=Y&&Y<=127242||127248<=Y&&Y<=127277||127280<=Y&&Y<=127337||127344<=Y&&Y<=127386||917760<=Y&&Y<=917999||983040<=Y&&Y<=1048573||1048576<=Y&&Y<=1114109?"A":"N"},$.characterLength=function(X){var J=this.eastAsianWidth(X);return J=="F"||J=="W"||J=="A"?2:1};function F(X){return X.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}$.length=function(X){for(var J=F(X),G=0,Y=0;Y<J.length;Y++)G=G+this.characterLength(J[Y]);return G},$.slice=function(X,J,G){textLen=$.length(X),J=J||0,G=G||1,J<0&&(J=textLen+J),G<0&&(G=textLen+G);for(var Y="",B=0,H=F(X),W=0;W<H.length;W++){var Q=H[W],_=$.length(Q);if(B>=J-(_==2?1:0))if(B+_<=G)Y+=Q;else break;B+=_}return Y}})(oB);rq=oB.exports,aq=aB(rq),tq=aB(oq);LD={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(LD.modifier);eq=Object.keys(LD.color),DN=Object.keys(LD.bgColor);[...eq,...DN];FN=$N(),Q7=new Set(["\x1B","\x9B"]),r$=`${JN}8;;`;HN=["up","down","left","right","space","enter","cancel"],V7={actions:new Set(HN),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["\x03","cancel"],["escape","cancel"]])};globalThis.process.platform.startsWith("win");lB=Symbol("clack:cancel");VN=Object.defineProperty;$H=class $H extends X3{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(e0.cursor.move(0,-1)),this.value=$,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}};_N=Object.defineProperty,AN=class extends X3{constructor(D){super(D,!1),iB(this,"options"),iB(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]}},KN=Object.defineProperty;FH=class FH extends X3{constructor(D){super(D,!1),nB(this,"options"),nB(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}};XH=class XH extends X3{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}${k.inverse($)}${F.join("")}`}get cursor(){return this._cursor}constructor(D){super(D),this.on("finalize",()=>{this.value||(this.value=D.defaultValue)})}};EN=RN(),CN=D2("\u276F",">"),MN=D2("\u25A0","x"),ZN=D2("\u25B2","x"),qN=D2("\u2714","\u221A"),qD=D2(""),k1=D2(""),l$=D2("\u25CF",">"),i$=D2("\u25CB"," "),NN=D2("\u25FB","[\u2022]"),sB=D2("\u25FC","[+]"),PN=D2("\u25FB","[ ]");`${k.gray(qD)} `;JH=Symbol.for("cancel")});import HH from"process";function SN(){if(globalThis.process?.env)for(let D of wN){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 p8(D){return D?D!=="false":!1}function lN(){let D=dN.find(($)=>$[0]);if(D)return{name:D[1]}}function nN({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 rN(D){if(typeof D!=="string")throw TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(sN,"")}function aN(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 oN(D){return D===12288||D>=65281&&D<=65376||D>=65504&&D<=65510}function tN(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 eN(D){if(!Number.isSafeInteger(D))throw TypeError(`Expected a code point, got \`${typeof D}\`.`)}function DP(D,{ambiguousAsWide:$=!1}={}){if(eN(D),oN(D)||tN(D)||$&&aN(D))return 2;return 1}function JP(D,$={}){if(typeof D!=="string"||D.length===0)return 0;let{ambiguousIsNarrow:F=!0,countAnsiEscapeCodes:X=!1}=$;if(!X)D=rN(D);if(D.length===0)return 0;let J=0,G={ambiguousAsWide:!F};for(let{segment:Y}of FP.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($P().test(Y)){J+=2;continue}J+=DP(B,G)}return J}function YP(){let{env:D}=HH,{TERM:$,TERM_PROGRAM:F}=D;if(HH.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 QH(D){if(typeof Intl!=="object"||!Intl.Segmenter)return Y8(D).length;return JP(D)}function U7(D){return D.replace(/`([^`]+)`/gm,($,F)=>R0.cyan(F)).replace(/\s+_([^_]+)_\s+/gm,($,F)=>` ${R0.underline(F)} `)}function WP(D="white"){return R0[D]||R0.white}function VP(D="bgWhite"){return R0[`bg${D[0].toUpperCase()}${D.slice(1)}`]||R0.bgWhite}function QP(D={}){let $=_P();if(process.env.CONSOLA_LEVEL)$=Number.parseInt(process.env.CONSOLA_LEVEL)??$;return jB({level:$,defaults:{level:$},stdout:process.stdout,stderr:process.stderr,prompt:(...X)=>Promise.resolve().then(() => (BH(),GH)).then((J)=>J.prompt(...X)),reporters:D.reporters||[D.fancy??!(a$||o$)?new AH:new G7],...D})}function _P(){if(fN)return F0.debug;if(o$)return F0.warn;return F0.info}var A7,J3=(D)=>globalThis.process?.env||import.meta.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(D?A7:globalThis),B8,TN,wN,_H,bN,a$,UH,fN,o$,kN,vN,hN,WH,xN,gN,yN,uN,mN,pN,cN,dN,iN,sN,$P=()=>{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},FP,XP,GP,BP,HP,j2=(D,$)=>HP?D:$,VH,AH,C;var JD=Z(()=>{y$();y$();IB();vB();A7=Object.create(null),B8=new Proxy(A7,{get(D,$){return J3()[$]??A7[$]},has(D,$){let F=J3();return $ in F||$ in A7},set(D,$,F){let X=J3(!0);return X[$]=F,!0},deleteProperty(D,$){if(!$)return!1;let F=J3(!0);return delete F[$],!0},ownKeys(){let D=J3(!0);return Object.keys(D)}}),TN=typeof process<"u"&&process.env&&"development"||"",wN=[["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}]];_H=SN();_H.name;bN=globalThis.process?.platform||"",a$=p8(B8.CI)||_H.ci!==!1,UH=p8(globalThis.process?.stdout&&globalThis.process?.stdout.isTTY),fN=p8(B8.DEBUG),o$=TN==="test"||p8(B8.TEST);p8(B8.MINIMAL);kN=/^win/i.test(bN);!p8(B8.NO_COLOR)&&(p8(B8.FORCE_COLOR)||(UH||kN)&&B8.TERM);vN=(globalThis.process?.versions?.node||"").replace(/^v/,"")||null;Number(vN?.split(".")[0]);hN=globalThis.process||Object.create(null),WH={versions:{}};new Proxy(hN,{get(D,$){if($==="env")return B8;if($ in D)return D[$];if($ in WH)return WH[$]}});xN=globalThis.process?.release?.name==="node",gN=!!globalThis.Bun||!!globalThis.process?.versions?.bun,yN=!!globalThis.Deno,uN=!!globalThis.fastly,mN=!!globalThis.Netlify,pN=!!globalThis.EdgeRuntime,cN=globalThis.navigator?.userAgent==="Cloudflare-Workers",dN=[[mN,"netlify"],[pN,"edge-light"],[cN,"workerd"],[uN,"fastly"],[yN,"deno"],[gN,"bun"],[xN,"node"]];iN=lN();iN?.name;sN=nN();FP=globalThis.Intl?.Segmenter?new Intl.Segmenter:{segment:(D)=>D.split("")},XP=/^\p{Default_Ignorable_Code_Point}$/u;GP={info:"cyan",fail:"red",success:"green",ready:"green",start:"magenta"},BP={0:"red",1:"yellow"},HP=YP(),VH={error:j2("\u2716","\xD7"),fatal:j2("\u2716","\xD7"),ready:j2("\u2714","\u221A"),warn:j2("\u26A0","\u203C"),info:j2("\u2139","i"),success:j2("\u2714","\u221A"),debug:j2("\u2699","D"),trace:j2("\u2192","\u2192"),fail:j2("\u2716","\xD7"),start:j2("\u25D0","o"),log:""};AH=class AH extends G7{formatStack(D,$,F){let X=" ".repeat((F?.errorLevel||0)+1);return`
64
64
  ${X}`+m$(D,$).map((J)=>" "+J.replace(/^at +/,(G)=>R0.gray(G)).replace(/\((.+)\)/,(G,Y)=>`(${R0.cyan(Y)})`)).join(`
65
- ${X}`)}formatType(D,$,F){let X=GP[D.type]||BP[D.level]||"gray";if($)return VP(X)(R0.black(` ${D.type.toUpperCase()} `));let J=typeof WH[D.type]==="string"?WH[D.type]:D.icon||D.type;return J?WP(X)(J):""}formatLogObj(D,$){let[F,...X]=this.formatArgs(D.args,$).split(`
66
- `);if(D.type==="box")return fB(U7(F+(X.length>0?`
65
+ ${X}`)}formatType(D,$,F){let X=GP[D.type]||BP[D.level]||"gray";if($)return VP(X)(R0.black(` ${D.type.toUpperCase()} `));let J=typeof VH[D.type]==="string"?VH[D.type]:D.icon||D.type;return J?WP(X)(J):""}formatLogObj(D,$){let[F,...X]=this.formatArgs(D.args,$).split(`
66
+ `);if(D.type==="box")return kB(U7(F+(X.length>0?`
67
67
  `+X.join(`
68
- `):"")),{title:D.title?U7(D.title):void 0,style:D.style});let J=this.formatDate(D.date,$),G=J&&R0.gray(J),Y=D.badge??D.level<2,B=this.formatType(D,Y,$),H=D.tag?R0.gray(D.tag):"",W,Q=this.filterAndJoin([B,U7(F)]),_=this.filterAndJoin($.columns?[H,G]:[H]),U=($.columns||0)-VH(Q)-VH(_)-2;if(W=U>0&&($.columns||0)>=80?Q+" ".repeat(U)+_:(_?`${R0.gray(`[${_}]`)} `:"")+Q,W+=U7(X.length>0?`
68
+ `):"")),{title:D.title?U7(D.title):void 0,style:D.style});let J=this.formatDate(D.date,$),G=J&&R0.gray(J),Y=D.badge??D.level<2,B=this.formatType(D,Y,$),H=D.tag?R0.gray(D.tag):"",W,Q=this.filterAndJoin([B,U7(F)]),_=this.filterAndJoin($.columns?[H,G]:[H]),U=($.columns||0)-QH(Q)-QH(_)-2;if(W=U>0&&($.columns||0)>=80?Q+" ".repeat(U)+_:(_?`${R0.gray(`[${_}]`)} `:"")+Q,W+=U7(X.length>0?`
69
69
  `+X.join(`
70
70
  `):""),D.type==="trace"){let A=Error("Trace: "+D.message);W+=this.formatStack(A.stack||"",A.message)}return Y?`
71
71
  `+W+`
72
- `:W}};C=QP()});var HD,t$,h,z2=(D)=>{switch(typeof D){case"undefined":return h.undefined;case"string":return h.string;case"number":return Number.isNaN(D)?h.nan:h.number;case"boolean":return h.boolean;case"function":return h.function;case"bigint":return h.bigint;case"symbol":return h.symbol;case"object":if(Array.isArray(D))return h.array;if(D===null)return h.null;if(D.then&&typeof D.then==="function"&&D.catch&&typeof D.catch==="function")return h.promise;if(typeof Map<"u"&&D instanceof Map)return h.map;if(typeof Set<"u"&&D instanceof Set)return h.set;if(typeof Date<"u"&&D instanceof Date)return h.date;return h.object;default:return h.unknown}};var Y3=Z(()=>{(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}}})(t$||(t$={}));h=HD.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"])});var w,AP=(D)=>{return JSON.stringify(D,null,2).replace(/"([^"]+)":/g,"$1:")},C0;var K7=Z(()=>{Y3();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"]);C0=class C0 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 C0))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()}};C0.create=(D)=>{return new C0(D)}});var KP=(D,$)=>{let F;switch(D.code){case w.invalid_type:if(D.received===h.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}},u2;var e$=Z(()=>{K7();Y3();u2=KP});function OP(D){KH=D}function v1(){return KH}var KH;var O7=Z(()=>{e$();KH=u2});function g(D,$){let F=v1(),X=G3({issueData:$,data:D.data,path:D.path,errorMaps:[D.common.contextualErrorMap,D.schemaErrorMap,F,F===u2?void 0:u2].filter((J)=>!!J)});D.common.issues.push(X)}class X0{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 l;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 X0.mergeObjectSync(D,F)}static mergeObjectSync(D,$){let F={};for(let X of $){let{key:J,value:G}=X;if(J.status==="aborted")return l;if(G.status==="aborted")return l;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 G3=(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}},RP,l,c8=(D)=>({status:"dirty",value:D}),W0=(D)=>({status:"valid",value:D}),R7=(D)=>D.status==="aborted",E7=(D)=>D.status==="dirty",H8=(D)=>D.status==="valid",h1=(D)=>typeof Promise<"u"&&D instanceof Promise;var DF=Z(()=>{O7();e$();RP=[];l=Object.freeze({status:"aborted"})});var OH=()=>{};var p;var RH=Z(()=>{(function(D){D.errToObj=($)=>typeof $==="string"?{message:$}:$||{},D.toString=($)=>typeof $==="string"?$:$?.message})(p||(p={}))});class J2{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 z2(D.data)}_getOrReturnCtx(D,$){return $||{common:D.parent.common,data:D.data,parsedType:z2(D.data),schemaErrorMap:this._def.errorMap,path:D.path,parent:D.parent}}_processInputParams(D){return{status:new X0,ctx:{common:D.parent.common,data:D.data,parsedType:z2(D.data),schemaErrorMap:this._def.errorMap,path:D.path,parent:D.parent}}}_parseSync(D){let $=this._parse(D);if(h1($))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:z2(D)},X=this._parseSync({data:D,path:F.path,parent:F});return EH(F,X)}"~validate"(D){let $={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:D,parsedType:z2(D)};if(!this["~standard"].async)try{let F=this._parseSync({data:D,path:[],parent:$});return H8(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)=>H8(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:z2(D)},X=this._parse({data:D,path:F.path,parent:F}),J=await(h1(X)?X:Promise.resolve(X));return EH(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 Y2({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 X2.create(this,this._def)}nullable(){return p2.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return F2.create(this)}promise(){return n8.create(this,this._def)}or(D){return p1.create([this,D],this._def)}and(D){return c1.create(this,D,this._def)}transform(D){return new Y2({...FD(this._def),schema:this,typeName:r.ZodEffects,effect:{type:"transform",transform:D}})}default(D){let $=typeof D==="function"?D:()=>D;return new n1({...FD(this._def),innerType:this,defaultValue:$,typeName:r.ZodDefault})}brand(){return new M7({typeName:r.ZodBranded,type:this,...FD(this._def)})}catch(D){let $=typeof D==="function"?D:()=>D;return new s1({...FD(this._def),innerType:this,catchValue:$,typeName:r.ZodCatch})}describe(D){return new this.constructor({...this._def,description:D})}pipe(D){return _3.create(this,D)}readonly(){return r1.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}function ZH(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 kP(D){return new RegExp(`^${ZH(D)}$`)}function qH(D){let $=`${MH}T${ZH(D)}`,F=[];if(F.push(D.local?"Z?":"Z"),D.offset)F.push("([+-]\\d{2}:?\\d{2})");return $=`${$}(${F.join("|")})`,new RegExp(`^${$}$`)}function vP(D,$){if(($==="v4"||!$)&&zP.test(D))return!0;if(($==="v6"||!$)&&TP.test(D))return!0;return!1}function hP(D,$){if(!NP.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 xP(D,$){if(($==="v4"||!$)&&IP.test(D))return!0;if(($==="v6"||!$)&&wP.test(D))return!0;return!1}function gP(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 x1(D){if(D instanceof SD){let $={};for(let F in D.shape){let X=D.shape[F];$[F]=X2.create(x1(X))}return new SD({...D._def,shape:()=>$})}else if(D instanceof F2)return new F2({...D._def,type:x1(D.element)});else if(D instanceof X2)return X2.create(x1(D.unwrap()));else if(D instanceof p2)return p2.create(x1(D.unwrap()));else if(D instanceof T2)return T2.create(D.items.map(($)=>x1($)));else return D}function FF(D,$){let F=z2(D),X=z2($);if(D===$)return{valid:!0,data:D};else if(F===h.object&&X===h.object){let J=HD.objectKeys($),G=HD.objectKeys(D).filter((B)=>J.indexOf(B)!==-1),Y={...D,...$};for(let B of G){let H=FF(D[B],$[B]);if(!H.valid)return{valid:!1};Y[B]=H.data}return{valid:!0,data:Y}}else if(F===h.array&&X===h.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=FF(Y,B);if(!H.valid)return{valid:!1};J.push(H.data)}return{valid:!0,data:J}}else if(F===h.date&&X===h.date&&+D===+$)return{valid:!0,data:D};else return{valid:!1}}function NH(D,$){return new _8({values:D,typeName:r.ZodEnum,...FD($)})}function CH(D,$){let F=typeof D==="function"?D($):typeof D==="string"?{message:D}:D;return typeof F==="string"?{message:F}:F}function PH(D,$={},F){if(D)return l8.create().superRefine((X,J)=>{let G=D(X);if(G instanceof Promise)return G.then((Y)=>{if(!Y){let B=CH($,X),H=B.fatal??F??!0;J.addIssue({code:"custom",...B,fatal:H})}});if(!G){let Y=CH($,X),B=Y.fatal??F??!0;J.addIssue({code:"custom",...Y,fatal:B})}return});return l8.create()}var EH=(D,$)=>{if(H8($))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 C0(D.common.issues);return this._error=F,this._error}}}},EP,CP,MP,ZP,qP,NP,PP,LP,jP="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",$F,zP,IP,TP,wP,SP,bP,MH="((\\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])))",fP,$2,V8,Q8,y1,d8,B3,u1,m1,l8,W8,I2,H3,F2,SD,p1,m2=(D)=>{if(D instanceof d1)return m2(D.schema);else if(D instanceof Y2)return m2(D.innerType());else if(D instanceof l1)return[D.value];else if(D instanceof _8)return D.options;else if(D instanceof i1)return HD.objectValues(D.enum);else if(D instanceof n1)return m2(D._def.innerType);else if(D instanceof u1)return[void 0];else if(D instanceof m1)return[null];else if(D instanceof X2)return[void 0,...m2(D.unwrap())];else if(D instanceof p2)return[null,...m2(D.unwrap())];else if(D instanceof M7)return m2(D.unwrap());else if(D instanceof r1)return m2(D.unwrap());else if(D instanceof s1)return m2(D._def.innerType);else return[]},C7,c1,T2,W3,V3,i8,g1,d1,l1,_8,i1,n8,Y2,X2,p2,n1,s1,Q3,yP,M7,_3,r1,uP,r,mP=(D,$={message:`Input not instance of ${D.name}`})=>PH((F)=>F instanceof D,$),LH,jH,pP,cP,zH,dP,lP,iP,nP,sP,rP,aP,oP,tP,eP,DL,$L,FL,XL,JL,YL,GL,BL,HL,WL,VL,QL,_L,UL,AL,KL,OL,RL,EL,CL=()=>LH().optional(),ML=()=>jH().optional(),ZL=()=>zH().optional(),qL,NL;var IH=Z(()=>{K7();O7();RH();DF();Y3();EP=/^c[^\s-]{8,}$/i,CP=/^[0-9a-z]+$/,MP=/^[0-9A-HJKMNP-TV-Z]{26}$/i,ZP=/^[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,qP=/^[a-z0-9_-]{21}$/i,NP=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,PP=/^[-+]?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)?)??$/,LP=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,zP=/^(?:(?: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])$/,IP=/^(?:(?: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])$/,TP=/^(([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]))$/,wP=/^(([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])$/,SP=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,bP=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,fP=new RegExp(`^${MH}$`);$2=class $2 extends YD{_parse(D){if(this._def.coerce)D.data=String(D.data);if(this._getType(D)!==h.string){let J=this._getOrReturnCtx(D);return g(J,{code:w.invalid_type,expected:h.string,received:J.parsedType}),l}let F=new X0,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),g(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),g(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)g(X,{code:w.too_big,maximum:J.value,type:"string",inclusive:!0,exact:!0,message:J.message});else if(Y)g(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(!LP.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"email",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="emoji"){if(!$F)$F=new RegExp(jP,"u");if(!$F.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"emoji",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="uuid"){if(!ZP.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"uuid",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="nanoid"){if(!qP.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"nanoid",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cuid"){if(!EP.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"cuid",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cuid2"){if(!CP.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"cuid2",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="ulid"){if(!MP.test(D.data))X=this._getOrReturnCtx(D,X),g(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),g(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),g(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),g(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),g(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),g(X,{code:w.invalid_string,validation:{endsWith:J.value},message:J.message}),F.dirty()}else if(J.kind==="datetime"){if(!qH(J).test(D.data))X=this._getOrReturnCtx(D,X),g(X,{code:w.invalid_string,validation:"datetime",message:J.message}),F.dirty()}else if(J.kind==="date"){if(!fP.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{code:w.invalid_string,validation:"date",message:J.message}),F.dirty()}else if(J.kind==="time"){if(!kP(J).test(D.data))X=this._getOrReturnCtx(D,X),g(X,{code:w.invalid_string,validation:"time",message:J.message}),F.dirty()}else if(J.kind==="duration"){if(!PP.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"duration",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="ip"){if(!vP(D.data,J.version))X=this._getOrReturnCtx(D,X),g(X,{validation:"ip",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="jwt"){if(!hP(D.data,J.alg))X=this._getOrReturnCtx(D,X),g(X,{validation:"jwt",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cidr"){if(!xP(D.data,J.version))X=this._getOrReturnCtx(D,X),g(X,{validation:"cidr",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="base64"){if(!SP.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"base64",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="base64url"){if(!bP.test(D.data))X=this._getOrReturnCtx(D,X),g(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,...p.errToObj(F)})}_addCheck(D){return new $2({...this._def,checks:[...this._def.checks,D]})}email(D){return this._addCheck({kind:"email",...p.errToObj(D)})}url(D){return this._addCheck({kind:"url",...p.errToObj(D)})}emoji(D){return this._addCheck({kind:"emoji",...p.errToObj(D)})}uuid(D){return this._addCheck({kind:"uuid",...p.errToObj(D)})}nanoid(D){return this._addCheck({kind:"nanoid",...p.errToObj(D)})}cuid(D){return this._addCheck({kind:"cuid",...p.errToObj(D)})}cuid2(D){return this._addCheck({kind:"cuid2",...p.errToObj(D)})}ulid(D){return this._addCheck({kind:"ulid",...p.errToObj(D)})}base64(D){return this._addCheck({kind:"base64",...p.errToObj(D)})}base64url(D){return this._addCheck({kind:"base64url",...p.errToObj(D)})}jwt(D){return this._addCheck({kind:"jwt",...p.errToObj(D)})}ip(D){return this._addCheck({kind:"ip",...p.errToObj(D)})}cidr(D){return this._addCheck({kind:"cidr",...p.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,...p.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,...p.errToObj(D?.message)})}duration(D){return this._addCheck({kind:"duration",...p.errToObj(D)})}regex(D,$){return this._addCheck({kind:"regex",regex:D,...p.errToObj($)})}includes(D,$){return this._addCheck({kind:"includes",value:D,position:$?.position,...p.errToObj($?.message)})}startsWith(D,$){return this._addCheck({kind:"startsWith",value:D,...p.errToObj($)})}endsWith(D,$){return this._addCheck({kind:"endsWith",value:D,...p.errToObj($)})}min(D,$){return this._addCheck({kind:"min",value:D,...p.errToObj($)})}max(D,$){return this._addCheck({kind:"max",value:D,...p.errToObj($)})}length(D,$){return this._addCheck({kind:"length",value:D,...p.errToObj($)})}nonempty(D){return this.min(1,p.errToObj(D))}trim(){return new $2({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new $2({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new $2({...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}};$2.create=(D)=>{return new $2({checks:[],typeName:r.ZodString,coerce:D?.coerce??!1,...FD(D)})};V8=class V8 extends YD{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(D){if(this._def.coerce)D.data=Number(D.data);if(this._getType(D)!==h.number){let J=this._getOrReturnCtx(D);return g(J,{code:w.invalid_type,expected:h.number,received:J.parsedType}),l}let F=void 0,X=new X0;for(let J of this._def.checks)if(J.kind==="int"){if(!HD.isInteger(D.data))F=this._getOrReturnCtx(D,F),g(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),g(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),g(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(gP(D.data,J.value)!==0)F=this._getOrReturnCtx(D,F),g(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),g(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,p.toString($))}gt(D,$){return this.setLimit("min",D,!1,p.toString($))}lte(D,$){return this.setLimit("max",D,!0,p.toString($))}lt(D,$){return this.setLimit("max",D,!1,p.toString($))}setLimit(D,$,F,X){return new V8({...this._def,checks:[...this._def.checks,{kind:D,value:$,inclusive:F,message:p.toString(X)}]})}_addCheck(D){return new V8({...this._def,checks:[...this._def.checks,D]})}int(D){return this._addCheck({kind:"int",message:p.toString(D)})}positive(D){return this._addCheck({kind:"min",value:0,inclusive:!1,message:p.toString(D)})}negative(D){return this._addCheck({kind:"max",value:0,inclusive:!1,message:p.toString(D)})}nonpositive(D){return this._addCheck({kind:"max",value:0,inclusive:!0,message:p.toString(D)})}nonnegative(D){return this._addCheck({kind:"min",value:0,inclusive:!0,message:p.toString(D)})}multipleOf(D,$){return this._addCheck({kind:"multipleOf",value:D,message:p.toString($)})}finite(D){return this._addCheck({kind:"finite",message:p.toString(D)})}safe(D){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:p.toString(D)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:p.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)}};V8.create=(D)=>{return new V8({checks:[],typeName:r.ZodNumber,coerce:D?.coerce||!1,...FD(D)})};Q8=class Q8 extends YD{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(D){if(this._def.coerce)try{D.data=BigInt(D.data)}catch{return this._getInvalidInput(D)}if(this._getType(D)!==h.bigint)return this._getInvalidInput(D);let F=void 0,X=new X0;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),g(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),g(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),g(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 g($,{code:w.invalid_type,expected:h.bigint,received:$.parsedType}),l}gte(D,$){return this.setLimit("min",D,!0,p.toString($))}gt(D,$){return this.setLimit("min",D,!1,p.toString($))}lte(D,$){return this.setLimit("max",D,!0,p.toString($))}lt(D,$){return this.setLimit("max",D,!1,p.toString($))}setLimit(D,$,F,X){return new Q8({...this._def,checks:[...this._def.checks,{kind:D,value:$,inclusive:F,message:p.toString(X)}]})}_addCheck(D){return new Q8({...this._def,checks:[...this._def.checks,D]})}positive(D){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:p.toString(D)})}negative(D){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:p.toString(D)})}nonpositive(D){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:p.toString(D)})}nonnegative(D){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:p.toString(D)})}multipleOf(D,$){return this._addCheck({kind:"multipleOf",value:D,message:p.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}};Q8.create=(D)=>{return new Q8({checks:[],typeName:r.ZodBigInt,coerce:D?.coerce??!1,...FD(D)})};y1=class y1 extends YD{_parse(D){if(this._def.coerce)D.data=Boolean(D.data);if(this._getType(D)!==h.boolean){let F=this._getOrReturnCtx(D);return g(F,{code:w.invalid_type,expected:h.boolean,received:F.parsedType}),l}return W0(D.data)}};y1.create=(D)=>{return new y1({typeName:r.ZodBoolean,coerce:D?.coerce||!1,...FD(D)})};d8=class d8 extends YD{_parse(D){if(this._def.coerce)D.data=new Date(D.data);if(this._getType(D)!==h.date){let J=this._getOrReturnCtx(D);return g(J,{code:w.invalid_type,expected:h.date,received:J.parsedType}),l}if(Number.isNaN(D.data.getTime())){let J=this._getOrReturnCtx(D);return g(J,{code:w.invalid_date}),l}let F=new X0,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),g(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),g(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 d8({...this._def,checks:[...this._def.checks,D]})}min(D,$){return this._addCheck({kind:"min",value:D.getTime(),message:p.toString($)})}max(D,$){return this._addCheck({kind:"max",value:D.getTime(),message:p.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}};d8.create=(D)=>{return new d8({checks:[],coerce:D?.coerce||!1,typeName:r.ZodDate,...FD(D)})};B3=class B3 extends YD{_parse(D){if(this._getType(D)!==h.symbol){let F=this._getOrReturnCtx(D);return g(F,{code:w.invalid_type,expected:h.symbol,received:F.parsedType}),l}return W0(D.data)}};B3.create=(D)=>{return new B3({typeName:r.ZodSymbol,...FD(D)})};u1=class u1 extends YD{_parse(D){if(this._getType(D)!==h.undefined){let F=this._getOrReturnCtx(D);return g(F,{code:w.invalid_type,expected:h.undefined,received:F.parsedType}),l}return W0(D.data)}};u1.create=(D)=>{return new u1({typeName:r.ZodUndefined,...FD(D)})};m1=class m1 extends YD{_parse(D){if(this._getType(D)!==h.null){let F=this._getOrReturnCtx(D);return g(F,{code:w.invalid_type,expected:h.null,received:F.parsedType}),l}return W0(D.data)}};m1.create=(D)=>{return new m1({typeName:r.ZodNull,...FD(D)})};l8=class l8 extends YD{constructor(){super(...arguments);this._any=!0}_parse(D){return W0(D.data)}};l8.create=(D)=>{return new l8({typeName:r.ZodAny,...FD(D)})};W8=class W8 extends YD{constructor(){super(...arguments);this._unknown=!0}_parse(D){return W0(D.data)}};W8.create=(D)=>{return new W8({typeName:r.ZodUnknown,...FD(D)})};I2=class I2 extends YD{_parse(D){let $=this._getOrReturnCtx(D);return g($,{code:w.invalid_type,expected:h.never,received:$.parsedType}),l}};I2.create=(D)=>{return new I2({typeName:r.ZodNever,...FD(D)})};H3=class H3 extends YD{_parse(D){if(this._getType(D)!==h.undefined){let F=this._getOrReturnCtx(D);return g(F,{code:w.invalid_type,expected:h.void,received:F.parsedType}),l}return W0(D.data)}};H3.create=(D)=>{return new H3({typeName:r.ZodVoid,...FD(D)})};F2=class F2 extends YD{_parse(D){let{ctx:$,status:F}=this._processInputParams(D),X=this._def;if($.parsedType!==h.array)return g($,{code:w.invalid_type,expected:h.array,received:$.parsedType}),l;if(X.exactLength!==null){let G=$.data.length>X.exactLength.value,Y=$.data.length<X.exactLength.value;if(G||Y)g($,{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)g($,{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)g($,{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 J2($,G,$.path,Y))})).then((G)=>{return X0.mergeArray(F,G)});let J=[...$.data].map((G,Y)=>{return X.type._parseSync(new J2($,G,$.path,Y))});return X0.mergeArray(F,J)}get element(){return this._def.type}min(D,$){return new F2({...this._def,minLength:{value:D,message:p.toString($)}})}max(D,$){return new F2({...this._def,maxLength:{value:D,message:p.toString($)}})}length(D,$){return new F2({...this._def,exactLength:{value:D,message:p.toString($)}})}nonempty(D){return this.min(1,D)}};F2.create=(D,$)=>{return new F2({type:D,minLength:null,maxLength:null,exactLength:null,typeName:r.ZodArray,...FD($)})};SD=class SD 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)!==h.object){let H=this._getOrReturnCtx(D);return g(H,{code:w.invalid_type,expected:h.object,received:H.parsedType}),l}let{status:F,ctx:X}=this._processInputParams(D),{shape:J,keys:G}=this._getCached(),Y=[];if(!(this._def.catchall instanceof I2&&this._def.unknownKeys==="strip")){for(let H in X.data)if(!G.includes(H))Y.push(H)}let B=[];for(let H of G){let W=J[H],Q=X.data[H];B.push({key:{status:"valid",value:H},value:W._parse(new J2(X,Q,X.path,H)),alwaysSet:H in X.data})}if(this._def.catchall instanceof I2){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)g(X,{code:w.unrecognized_keys,keys:Y}),F.dirty()}else if(H==="strip");else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let H=this._def.catchall;for(let W of Y){let Q=X.data[W];B.push({key:{status:"valid",value:W},value:H._parse(new J2(X,Q,X.path,W)),alwaysSet:W in X.data})}}if(X.common.async)return Promise.resolve().then(async()=>{let H=[];for(let W of B){let Q=await W.key,_=await W.value;H.push({key:Q,value:_,alwaysSet:W.alwaysSet})}return H}).then((H)=>{return X0.mergeObjectSync(F,H)});else return X0.mergeObjectSync(F,B)}get shape(){return this._def.shape()}strict(D){return p.errToObj,new SD({...this._def,unknownKeys:"strict",...D!==void 0?{errorMap:($,F)=>{let X=this._def.errorMap?.($,F).message??F.defaultError;if($.code==="unrecognized_keys")return{message:p.errToObj(D).message??X};return{message:X}}}:{}})}strip(){return new SD({...this._def,unknownKeys:"strip"})}passthrough(){return new SD({...this._def,unknownKeys:"passthrough"})}extend(D){return new SD({...this._def,shape:()=>({...this._def.shape(),...D})})}merge(D){return new SD({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 SD({...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 SD({...this._def,shape:()=>$})}omit(D){let $={};for(let F of HD.objectKeys(this.shape))if(!D[F])$[F]=this.shape[F];return new SD({...this._def,shape:()=>$})}deepPartial(){return x1(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 SD({...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 X2)J=J._def.innerType;$[F]=J}return new SD({...this._def,shape:()=>$})}keyof(){return NH(HD.objectKeys(this.shape))}};SD.create=(D,$)=>{return new SD({shape:()=>D,unknownKeys:"strip",catchall:I2.create(),typeName:r.ZodObject,...FD($)})};SD.strictCreate=(D,$)=>{return new SD({shape:()=>D,unknownKeys:"strict",catchall:I2.create(),typeName:r.ZodObject,...FD($)})};SD.lazycreate=(D,$)=>{return new SD({shape:D,unknownKeys:"strip",catchall:I2.create(),typeName:r.ZodObject,...FD($)})};p1=class p1 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 C0(Y.ctx.common.issues));return g($,{code:w.invalid_union,unionErrors:G}),l}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 C0(B));return g($,{code:w.invalid_union,unionErrors:Y}),l}}get options(){return this._def.options}};p1.create=(D,$)=>{return new p1({options:D,typeName:r.ZodUnion,...FD($)})};C7=class C7 extends YD{_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==h.object)return g($,{code:w.invalid_type,expected:h.object,received:$.parsedType}),l;let F=this.discriminator,X=$.data[F],J=this.optionsMap.get(X);if(!J)return g($,{code:w.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[F]}),l;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=m2(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 C7({typeName:r.ZodDiscriminatedUnion,discriminator:D,options:$,optionsMap:X,...FD(F)})}};c1=class c1 extends YD{_parse(D){let{status:$,ctx:F}=this._processInputParams(D),X=(J,G)=>{if(R7(J)||R7(G))return l;let Y=FF(J.value,G.value);if(!Y.valid)return g(F,{code:w.invalid_intersection_types}),l;if(E7(J)||E7(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}))}};c1.create=(D,$,F)=>{return new c1({left:D,right:$,typeName:r.ZodIntersection,...FD(F)})};T2=class T2 extends YD{_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==h.array)return g(F,{code:w.invalid_type,expected:h.array,received:F.parsedType}),l;if(F.data.length<this._def.items.length)return g(F,{code:w.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),l;if(!this._def.rest&&F.data.length>this._def.items.length)g(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 J2(F,G,F.path,Y))}).filter((G)=>!!G);if(F.common.async)return Promise.all(J).then((G)=>{return X0.mergeArray($,G)});else return X0.mergeArray($,J)}get items(){return this._def.items}rest(D){return new T2({...this._def,rest:D})}};T2.create=(D,$)=>{if(!Array.isArray(D))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new T2({items:D,typeName:r.ZodTuple,rest:null,...FD($)})};W3=class W3 extends YD{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==h.object)return g(F,{code:w.invalid_type,expected:h.object,received:F.parsedType}),l;let X=[],J=this._def.keyType,G=this._def.valueType;for(let Y in F.data)X.push({key:J._parse(new J2(F,Y,F.path,Y)),value:G._parse(new J2(F,F.data[Y],F.path,Y)),alwaysSet:Y in F.data});if(F.common.async)return X0.mergeObjectAsync($,X);else return X0.mergeObjectSync($,X)}get element(){return this._def.valueType}static create(D,$,F){if($ instanceof YD)return new W3({keyType:D,valueType:$,typeName:r.ZodRecord,...FD(F)});return new W3({keyType:$2.create(),valueType:D,typeName:r.ZodRecord,...FD($)})}};V3=class V3 extends YD{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==h.map)return g(F,{code:w.invalid_type,expected:h.map,received:F.parsedType}),l;let X=this._def.keyType,J=this._def.valueType,G=[...F.data.entries()].map(([Y,B],H)=>{return{key:X._parse(new J2(F,Y,F.path,[H,"key"])),value:J._parse(new J2(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 l;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 l;if(H.status==="dirty"||W.status==="dirty")$.dirty();Y.set(H.value,W.value)}return{status:$.value,value:Y}}}};V3.create=(D,$,F)=>{return new V3({valueType:$,keyType:D,typeName:r.ZodMap,...FD(F)})};i8=class i8 extends YD{_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==h.set)return g(F,{code:w.invalid_type,expected:h.set,received:F.parsedType}),l;let X=this._def;if(X.minSize!==null){if(F.data.size<X.minSize.value)g(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)g(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 l;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 J2(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 i8({...this._def,minSize:{value:D,message:p.toString($)}})}max(D,$){return new i8({...this._def,maxSize:{value:D,message:p.toString($)}})}size(D,$){return this.min(D,$).max(D,$)}nonempty(D){return this.min(1,D)}};i8.create=(D,$)=>{return new i8({valueType:D,minSize:null,maxSize:null,typeName:r.ZodSet,...FD($)})};g1=class g1 extends YD{constructor(){super(...arguments);this.validate=this.implement}_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==h.function)return g($,{code:w.invalid_type,expected:h.function,received:$.parsedType}),l;function F(Y,B){return G3({data:Y,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,v1(),u2].filter((H)=>!!H),issueData:{code:w.invalid_arguments,argumentsError:B}})}function X(Y,B){return G3({data:Y,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,v1(),u2].filter((H)=>!!H),issueData:{code:w.invalid_return_type,returnTypeError:B}})}let J={errorMap:$.common.contextualErrorMap},G=$.data;if(this._def.returns instanceof n8){let Y=this;return W0(async function(...B){let H=new C0([]),W=await Y._def.args.parseAsync(B,J).catch((U)=>{throw H.addIssue(F(B,U)),H}),Q=await Reflect.apply(G,this,W);return await Y._def.returns._def.type.parseAsync(Q,J).catch((U)=>{throw H.addIssue(X(Q,U)),H})})}else{let Y=this;return W0(function(...B){let H=Y._def.args.safeParse(B,J);if(!H.success)throw new C0([F(B,H.error)]);let W=Reflect.apply(G,this,H.data),Q=Y._def.returns.safeParse(W,J);if(!Q.success)throw new C0([X(W,Q.error)]);return Q.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...D){return new g1({...this._def,args:T2.create(D).rest(W8.create())})}returns(D){return new g1({...this._def,returns:D})}implement(D){return this.parse(D)}strictImplement(D){return this.parse(D)}static create(D,$,F){return new g1({args:D?D:T2.create([]).rest(W8.create()),returns:$||W8.create(),typeName:r.ZodFunction,...FD(F)})}};d1=class d1 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:$})}};d1.create=(D,$)=>{return new d1({getter:D,typeName:r.ZodLazy,...FD($)})};l1=class l1 extends YD{_parse(D){if(D.data!==this._def.value){let $=this._getOrReturnCtx(D);return g($,{received:$.data,code:w.invalid_literal,expected:this._def.value}),l}return{status:"valid",value:D.data}}get value(){return this._def.value}};l1.create=(D,$)=>{return new l1({value:D,typeName:r.ZodLiteral,...FD($)})};_8=class _8 extends YD{_parse(D){if(typeof D.data!=="string"){let $=this._getOrReturnCtx(D),F=this._def.values;return g($,{expected:HD.joinValues(F),received:$.parsedType,code:w.invalid_type}),l}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 g($,{received:$.data,code:w.invalid_enum_value,options:F}),l}return W0(D.data)}get options(){return this._def.values}get enum(){let D={};for(let $ of this._def.values)D[$]=$;return D}get Values(){let D={};for(let $ of this._def.values)D[$]=$;return D}get Enum(){let D={};for(let $ of this._def.values)D[$]=$;return D}extract(D,$=this._def){return _8.create(D,{...this._def,...$})}exclude(D,$=this._def){return _8.create(this.options.filter((F)=>!D.includes(F)),{...this._def,...$})}};_8.create=NH;i1=class i1 extends YD{_parse(D){let $=HD.getValidEnumValues(this._def.values),F=this._getOrReturnCtx(D);if(F.parsedType!==h.string&&F.parsedType!==h.number){let X=HD.objectValues($);return g(F,{expected:HD.joinValues(X),received:F.parsedType,code:w.invalid_type}),l}if(!this._cache)this._cache=new Set(HD.getValidEnumValues(this._def.values));if(!this._cache.has(D.data)){let X=HD.objectValues($);return g(F,{received:F.data,code:w.invalid_enum_value,options:X}),l}return W0(D.data)}get enum(){return this._def.values}};i1.create=(D,$)=>{return new i1({values:D,typeName:r.ZodNativeEnum,...FD($)})};n8=class n8 extends YD{unwrap(){return this._def.type}_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==h.promise&&$.common.async===!1)return g($,{code:w.invalid_type,expected:h.promise,received:$.parsedType}),l;let F=$.parsedType===h.promise?$.data:Promise.resolve($.data);return W0(F.then((X)=>{return this._def.type.parseAsync(X,{path:$.path,errorMap:$.common.contextualErrorMap})}))}};n8.create=(D,$)=>{return new n8({type:D,typeName:r.ZodPromise,...FD($)})};Y2=class Y2 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(g(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 l;let B=await this._def.schema._parseAsync({data:Y,path:F.path,parent:F});if(B.status==="aborted")return l;if(B.status==="dirty")return c8(B.value);if($.value==="dirty")return c8(B.value);return B});else{if($.value==="aborted")return l;let Y=this._def.schema._parseSync({data:G,path:F.path,parent:F});if(Y.status==="aborted")return l;if(Y.status==="dirty")return c8(Y.value);if($.value==="dirty")return c8(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 l;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 l;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(!H8(G))return l;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(!H8(G))return l;return Promise.resolve(X.transform(G.value,J)).then((Y)=>({status:$.value,value:Y}))});HD.assertNever(X)}};Y2.create=(D,$,F)=>{return new Y2({schema:D,typeName:r.ZodEffects,effect:$,...FD(F)})};Y2.createWithPreprocess=(D,$,F)=>{return new Y2({schema:$,effect:{type:"preprocess",transform:D},typeName:r.ZodEffects,...FD(F)})};X2=class X2 extends YD{_parse(D){if(this._getType(D)===h.undefined)return W0(void 0);return this._def.innerType._parse(D)}unwrap(){return this._def.innerType}};X2.create=(D,$)=>{return new X2({innerType:D,typeName:r.ZodOptional,...FD($)})};p2=class p2 extends YD{_parse(D){if(this._getType(D)===h.null)return W0(null);return this._def.innerType._parse(D)}unwrap(){return this._def.innerType}};p2.create=(D,$)=>{return new p2({innerType:D,typeName:r.ZodNullable,...FD($)})};n1=class n1 extends YD{_parse(D){let{ctx:$}=this._processInputParams(D),F=$.data;if($.parsedType===h.undefined)F=this._def.defaultValue();return this._def.innerType._parse({data:F,path:$.path,parent:$})}removeDefault(){return this._def.innerType}};n1.create=(D,$)=>{return new n1({innerType:D,typeName:r.ZodDefault,defaultValue:typeof $.default==="function"?$.default:()=>$.default,...FD($)})};s1=class s1 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(h1(X))return X.then((J)=>{return{status:"valid",value:J.status==="valid"?J.value:this._def.catchValue({get error(){return new C0(F.common.issues)},input:F.data})}});else return{status:"valid",value:X.status==="valid"?X.value:this._def.catchValue({get error(){return new C0(F.common.issues)},input:F.data})}}removeCatch(){return this._def.innerType}};s1.create=(D,$)=>{return new s1({innerType:D,typeName:r.ZodCatch,catchValue:typeof $.catch==="function"?$.catch:()=>$.catch,...FD($)})};Q3=class Q3 extends YD{_parse(D){if(this._getType(D)!==h.nan){let F=this._getOrReturnCtx(D);return g(F,{code:w.invalid_type,expected:h.nan,received:F.parsedType}),l}return{status:"valid",value:D.data}}};Q3.create=(D)=>{return new Q3({typeName:r.ZodNaN,...FD(D)})};yP=Symbol("zod_brand");M7=class M7 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}};_3=class _3 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 l;if(J.status==="dirty")return $.dirty(),c8(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 l;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 _3({in:D,out:$,typeName:r.ZodPipeline})}};r1=class r1 extends YD{_parse(D){let $=this._def.innerType._parse(D),F=(X)=>{if(H8(X))X.value=Object.freeze(X.value);return X};return h1($)?$.then((X)=>F(X)):F($)}unwrap(){return this._def.innerType}};r1.create=(D,$)=>{return new r1({innerType:D,typeName:r.ZodReadonly,...FD($)})};uP={object:SD.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=$2.create,jH=V8.create,pP=Q3.create,cP=Q8.create,zH=y1.create,dP=d8.create,lP=B3.create,iP=u1.create,nP=m1.create,sP=l8.create,rP=W8.create,aP=I2.create,oP=H3.create,tP=F2.create,eP=SD.create,DL=SD.strictCreate,$L=p1.create,FL=C7.create,XL=c1.create,JL=T2.create,YL=W3.create,GL=V3.create,BL=i8.create,HL=g1.create,WL=d1.create,VL=l1.create,QL=_8.create,_L=i1.create,UL=n8.create,AL=Y2.create,KL=X2.create,OL=p2.create,RL=Y2.createWithPreprocess,EL=_3.create,qL={string:(D)=>$2.create({...D,coerce:!0}),number:(D)=>V8.create({...D,coerce:!0}),boolean:(D)=>y1.create({...D,coerce:!0}),bigint:(D)=>Q8.create({...D,coerce:!0}),date:(D)=>d8.create({...D,coerce:!0})},NL=l});var V={};m8(V,{void:()=>oP,util:()=>HD,unknown:()=>rP,union:()=>$L,undefined:()=>iP,tuple:()=>JL,transformer:()=>AL,symbol:()=>lP,string:()=>LH,strictObject:()=>DL,setErrorMap:()=>OP,set:()=>BL,record:()=>YL,quotelessJson:()=>AP,promise:()=>UL,preprocess:()=>RL,pipeline:()=>EL,ostring:()=>CL,optional:()=>KL,onumber:()=>ML,oboolean:()=>ZL,objectUtil:()=>t$,object:()=>eP,number:()=>jH,nullable:()=>OL,null:()=>nP,never:()=>aP,nativeEnum:()=>_L,nan:()=>pP,map:()=>GL,makeIssue:()=>G3,literal:()=>VL,lazy:()=>WL,late:()=>uP,isValid:()=>H8,isDirty:()=>E7,isAsync:()=>h1,isAborted:()=>R7,intersection:()=>XL,instanceof:()=>mP,getParsedType:()=>z2,getErrorMap:()=>v1,function:()=>HL,enum:()=>QL,effect:()=>AL,discriminatedUnion:()=>FL,defaultErrorMap:()=>u2,datetimeRegex:()=>qH,date:()=>dP,custom:()=>PH,coerce:()=>qL,boolean:()=>zH,bigint:()=>cP,array:()=>tP,any:()=>sP,addIssueToContext:()=>g,ZodVoid:()=>H3,ZodUnknown:()=>W8,ZodUnion:()=>p1,ZodUndefined:()=>u1,ZodType:()=>YD,ZodTuple:()=>T2,ZodTransformer:()=>Y2,ZodSymbol:()=>B3,ZodString:()=>$2,ZodSet:()=>i8,ZodSchema:()=>YD,ZodRecord:()=>W3,ZodReadonly:()=>r1,ZodPromise:()=>n8,ZodPipeline:()=>_3,ZodParsedType:()=>h,ZodOptional:()=>X2,ZodObject:()=>SD,ZodNumber:()=>V8,ZodNullable:()=>p2,ZodNull:()=>m1,ZodNever:()=>I2,ZodNativeEnum:()=>i1,ZodNaN:()=>Q3,ZodMap:()=>V3,ZodLiteral:()=>l1,ZodLazy:()=>d1,ZodIssueCode:()=>w,ZodIntersection:()=>c1,ZodFunction:()=>g1,ZodFirstPartyTypeKind:()=>r,ZodError:()=>C0,ZodEnum:()=>_8,ZodEffects:()=>Y2,ZodDiscriminatedUnion:()=>C7,ZodDefault:()=>n1,ZodDate:()=>d8,ZodCatch:()=>s1,ZodBranded:()=>M7,ZodBoolean:()=>y1,ZodBigInt:()=>Q8,ZodArray:()=>F2,ZodAny:()=>l8,Schema:()=>YD,ParseStatus:()=>X0,OK:()=>W0,NEVER:()=>NL,INVALID:()=>l,EMPTY_PATH:()=>RP,DIRTY:()=>c8,BRAND:()=>yP});var XF=Z(()=>{O7();DF();OH();Y3();IH();K7()});var yD=Z(()=>{XF();XF()});function JF(D){return Object.prototype.hasOwnProperty.call(yH,D)}var e,b0,TH,wH,SH,bH,fH,kH,vH,hH,xH,Z7,q7,gH,yH;var uH=Z(()=>{yD();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"},b0=V.object({workerId:V.string().min(1)}),TH=b0.extend({displayName:V.string().optional(),deviceId:V.string().min(1),connectedAt:V.number().int()}),wH=b0.extend({deviceId:V.string().min(1),reason:V.enum(["disconnected","expired","kicked"]).optional(),disconnectedAt:V.number().int()}),SH=b0.extend({conversationId:V.string().min(1),role:V.enum(["user","assistant","system"]),content:V.string(),createdAt:V.number().int()}),bH=b0.extend({conversationId:V.string().min(1),taskId:V.string().min(1).optional(),chunk:V.string().optional()}),fH=b0.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()}),kH=b0.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()}),vH=b0.extend({version:V.number().int().nonnegative(),changedAt:V.number().int()}),hH=b0.extend({stream:V.enum(["stdout","stderr"]),line:V.string(),ts:V.number().int()}),xH=b0.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()}),Z7=b0.extend({otp:V.string().min(1),expiresAt:V.number().int()}),q7=b0.extend({deviceToken:V.string().min(1)}),gH=b0.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"])}),yH={[e.WORKER_ONLINE]:TH,[e.WORKER_OFFLINE]:wH,[e.CHAT_MESSAGE]:SH,[e.AGENT_THINKING]:bH,[e.AGENT_TOOL_CALL]:fH,[e.AGENT_DONE]:kH,[e.CONFIG_CHANGED]:vH,[e.LOGS_LINE]:hH,[e.APPROVAL_REQUESTED]:xH,[e.ENROLLMENT_OTP]:Z7,[e.ENROLLMENT_APPROVED]:q7,[e.ENROLLMENT_PENDING]:gH}});var jD;var mH=Z(()=>{jD=class jD extends Error{code;status;constructor(D,$,F){super(F);this.code=D;this.status=$;this.name="AppError"}static badRequest(D,$="BAD_REQUEST"){return new jD($,400,D)}static notFound(D,$="NOT_FOUND"){return new jD($,404,D)}static internal(D,$="INTERNAL_ERROR"){return new jD($,500,D)}toJSON(){return{error:{code:this.code,message:this.message}}}}});var N7=20;var a1,P7="0123456789abcdefghjkmnpqrstvwxyz";var pH=Z(()=>{a1=/^w_[0-9a-hjkmnp-tv-z]{12}$/});function U8(D){return typeof D==="string"&&c2.test(D)}var L7="wtk_",c2;var cH=Z(()=>{c2=/^wtk_[\w-]{32,}$/});var YF=Z(()=>{pH();cH()});function o1(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 U3(D){return D==="1"||D==="true"}function A3(D){if(!D.serveWeb)return;if(o1(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.
72
+ `:W}};C=QP()});var HD,t$,h,z2=(D)=>{switch(typeof D){case"undefined":return h.undefined;case"string":return h.string;case"number":return Number.isNaN(D)?h.nan:h.number;case"boolean":return h.boolean;case"function":return h.function;case"bigint":return h.bigint;case"symbol":return h.symbol;case"object":if(Array.isArray(D))return h.array;if(D===null)return h.null;if(D.then&&typeof D.then==="function"&&D.catch&&typeof D.catch==="function")return h.promise;if(typeof Map<"u"&&D instanceof Map)return h.map;if(typeof Set<"u"&&D instanceof Set)return h.set;if(typeof Date<"u"&&D instanceof Date)return h.date;return h.object;default:return h.unknown}};var Y3=Z(()=>{(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}}})(t$||(t$={}));h=HD.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"])});var w,AP=(D)=>{return JSON.stringify(D,null,2).replace(/"([^"]+)":/g,"$1:")},C0;var K7=Z(()=>{Y3();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"]);C0=class C0 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 C0))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()}};C0.create=(D)=>{return new C0(D)}});var KP=(D,$)=>{let F;switch(D.code){case w.invalid_type:if(D.received===h.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}},u2;var e$=Z(()=>{K7();Y3();u2=KP});function OP(D){OH=D}function v1(){return OH}var OH;var O7=Z(()=>{e$();OH=u2});function g(D,$){let F=v1(),X=G3({issueData:$,data:D.data,path:D.path,errorMaps:[D.common.contextualErrorMap,D.schemaErrorMap,F,F===u2?void 0:u2].filter((J)=>!!J)});D.common.issues.push(X)}class X0{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 i;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 X0.mergeObjectSync(D,F)}static mergeObjectSync(D,$){let F={};for(let X of $){let{key:J,value:G}=X;if(J.status==="aborted")return i;if(G.status==="aborted")return i;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 G3=(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}},RP,i,c8=(D)=>({status:"dirty",value:D}),W0=(D)=>({status:"valid",value:D}),R7=(D)=>D.status==="aborted",E7=(D)=>D.status==="dirty",H8=(D)=>D.status==="valid",h1=(D)=>typeof Promise<"u"&&D instanceof Promise;var DF=Z(()=>{O7();e$();RP=[];i=Object.freeze({status:"aborted"})});var RH=()=>{};var p;var EH=Z(()=>{(function(D){D.errToObj=($)=>typeof $==="string"?{message:$}:$||{},D.toString=($)=>typeof $==="string"?$:$?.message})(p||(p={}))});class J2{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 z2(D.data)}_getOrReturnCtx(D,$){return $||{common:D.parent.common,data:D.data,parsedType:z2(D.data),schemaErrorMap:this._def.errorMap,path:D.path,parent:D.parent}}_processInputParams(D){return{status:new X0,ctx:{common:D.parent.common,data:D.data,parsedType:z2(D.data),schemaErrorMap:this._def.errorMap,path:D.path,parent:D.parent}}}_parseSync(D){let $=this._parse(D);if(h1($))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:z2(D)},X=this._parseSync({data:D,path:F.path,parent:F});return CH(F,X)}"~validate"(D){let $={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:D,parsedType:z2(D)};if(!this["~standard"].async)try{let F=this._parseSync({data:D,path:[],parent:$});return H8(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)=>H8(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:z2(D)},X=this._parse({data:D,path:F.path,parent:F}),J=await(h1(X)?X:Promise.resolve(X));return CH(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 Y2({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 X2.create(this,this._def)}nullable(){return p2.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return F2.create(this)}promise(){return n8.create(this,this._def)}or(D){return p1.create([this,D],this._def)}and(D){return c1.create(this,D,this._def)}transform(D){return new Y2({...FD(this._def),schema:this,typeName:r.ZodEffects,effect:{type:"transform",transform:D}})}default(D){let $=typeof D==="function"?D:()=>D;return new n1({...FD(this._def),innerType:this,defaultValue:$,typeName:r.ZodDefault})}brand(){return new M7({typeName:r.ZodBranded,type:this,...FD(this._def)})}catch(D){let $=typeof D==="function"?D:()=>D;return new s1({...FD(this._def),innerType:this,catchValue:$,typeName:r.ZodCatch})}describe(D){return new this.constructor({...this._def,description:D})}pipe(D){return _3.create(this,D)}readonly(){return r1.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}function qH(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 kP(D){return new RegExp(`^${qH(D)}$`)}function NH(D){let $=`${ZH}T${qH(D)}`,F=[];if(F.push(D.local?"Z?":"Z"),D.offset)F.push("([+-]\\d{2}:?\\d{2})");return $=`${$}(${F.join("|")})`,new RegExp(`^${$}$`)}function vP(D,$){if(($==="v4"||!$)&&zP.test(D))return!0;if(($==="v6"||!$)&&TP.test(D))return!0;return!1}function hP(D,$){if(!NP.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 xP(D,$){if(($==="v4"||!$)&&IP.test(D))return!0;if(($==="v6"||!$)&&wP.test(D))return!0;return!1}function gP(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 x1(D){if(D instanceof SD){let $={};for(let F in D.shape){let X=D.shape[F];$[F]=X2.create(x1(X))}return new SD({...D._def,shape:()=>$})}else if(D instanceof F2)return new F2({...D._def,type:x1(D.element)});else if(D instanceof X2)return X2.create(x1(D.unwrap()));else if(D instanceof p2)return p2.create(x1(D.unwrap()));else if(D instanceof T2)return T2.create(D.items.map(($)=>x1($)));else return D}function FF(D,$){let F=z2(D),X=z2($);if(D===$)return{valid:!0,data:D};else if(F===h.object&&X===h.object){let J=HD.objectKeys($),G=HD.objectKeys(D).filter((B)=>J.indexOf(B)!==-1),Y={...D,...$};for(let B of G){let H=FF(D[B],$[B]);if(!H.valid)return{valid:!1};Y[B]=H.data}return{valid:!0,data:Y}}else if(F===h.array&&X===h.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=FF(Y,B);if(!H.valid)return{valid:!1};J.push(H.data)}return{valid:!0,data:J}}else if(F===h.date&&X===h.date&&+D===+$)return{valid:!0,data:D};else return{valid:!1}}function PH(D,$){return new _8({values:D,typeName:r.ZodEnum,...FD($)})}function MH(D,$){let F=typeof D==="function"?D($):typeof D==="string"?{message:D}:D;return typeof F==="string"?{message:F}:F}function LH(D,$={},F){if(D)return l8.create().superRefine((X,J)=>{let G=D(X);if(G instanceof Promise)return G.then((Y)=>{if(!Y){let B=MH($,X),H=B.fatal??F??!0;J.addIssue({code:"custom",...B,fatal:H})}});if(!G){let Y=MH($,X),B=Y.fatal??F??!0;J.addIssue({code:"custom",...Y,fatal:B})}return});return l8.create()}var CH=(D,$)=>{if(H8($))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 C0(D.common.issues);return this._error=F,this._error}}}},EP,CP,MP,ZP,qP,NP,PP,LP,jP="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",$F,zP,IP,TP,wP,SP,bP,ZH="((\\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])))",fP,$2,V8,Q8,y1,d8,B3,u1,m1,l8,W8,I2,H3,F2,SD,p1,m2=(D)=>{if(D instanceof d1)return m2(D.schema);else if(D instanceof Y2)return m2(D.innerType());else if(D instanceof l1)return[D.value];else if(D instanceof _8)return D.options;else if(D instanceof i1)return HD.objectValues(D.enum);else if(D instanceof n1)return m2(D._def.innerType);else if(D instanceof u1)return[void 0];else if(D instanceof m1)return[null];else if(D instanceof X2)return[void 0,...m2(D.unwrap())];else if(D instanceof p2)return[null,...m2(D.unwrap())];else if(D instanceof M7)return m2(D.unwrap());else if(D instanceof r1)return m2(D.unwrap());else if(D instanceof s1)return m2(D._def.innerType);else return[]},C7,c1,T2,W3,V3,i8,g1,d1,l1,_8,i1,n8,Y2,X2,p2,n1,s1,Q3,yP,M7,_3,r1,uP,r,mP=(D,$={message:`Input not instance of ${D.name}`})=>LH((F)=>F instanceof D,$),jH,zH,pP,cP,IH,dP,lP,iP,nP,sP,rP,aP,oP,tP,eP,DL,$L,FL,XL,JL,YL,GL,BL,HL,WL,VL,QL,_L,UL,AL,KL,OL,RL,EL,CL=()=>jH().optional(),ML=()=>zH().optional(),ZL=()=>IH().optional(),qL,NL;var TH=Z(()=>{K7();O7();EH();DF();Y3();EP=/^c[^\s-]{8,}$/i,CP=/^[0-9a-z]+$/,MP=/^[0-9A-HJKMNP-TV-Z]{26}$/i,ZP=/^[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,qP=/^[a-z0-9_-]{21}$/i,NP=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,PP=/^[-+]?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)?)??$/,LP=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,zP=/^(?:(?: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])$/,IP=/^(?:(?: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])$/,TP=/^(([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]))$/,wP=/^(([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])$/,SP=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,bP=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,fP=new RegExp(`^${ZH}$`);$2=class $2 extends YD{_parse(D){if(this._def.coerce)D.data=String(D.data);if(this._getType(D)!==h.string){let J=this._getOrReturnCtx(D);return g(J,{code:w.invalid_type,expected:h.string,received:J.parsedType}),i}let F=new X0,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),g(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),g(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)g(X,{code:w.too_big,maximum:J.value,type:"string",inclusive:!0,exact:!0,message:J.message});else if(Y)g(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(!LP.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"email",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="emoji"){if(!$F)$F=new RegExp(jP,"u");if(!$F.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"emoji",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="uuid"){if(!ZP.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"uuid",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="nanoid"){if(!qP.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"nanoid",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cuid"){if(!EP.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"cuid",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cuid2"){if(!CP.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"cuid2",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="ulid"){if(!MP.test(D.data))X=this._getOrReturnCtx(D,X),g(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),g(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),g(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),g(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),g(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),g(X,{code:w.invalid_string,validation:{endsWith:J.value},message:J.message}),F.dirty()}else if(J.kind==="datetime"){if(!NH(J).test(D.data))X=this._getOrReturnCtx(D,X),g(X,{code:w.invalid_string,validation:"datetime",message:J.message}),F.dirty()}else if(J.kind==="date"){if(!fP.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{code:w.invalid_string,validation:"date",message:J.message}),F.dirty()}else if(J.kind==="time"){if(!kP(J).test(D.data))X=this._getOrReturnCtx(D,X),g(X,{code:w.invalid_string,validation:"time",message:J.message}),F.dirty()}else if(J.kind==="duration"){if(!PP.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"duration",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="ip"){if(!vP(D.data,J.version))X=this._getOrReturnCtx(D,X),g(X,{validation:"ip",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="jwt"){if(!hP(D.data,J.alg))X=this._getOrReturnCtx(D,X),g(X,{validation:"jwt",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cidr"){if(!xP(D.data,J.version))X=this._getOrReturnCtx(D,X),g(X,{validation:"cidr",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="base64"){if(!SP.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"base64",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="base64url"){if(!bP.test(D.data))X=this._getOrReturnCtx(D,X),g(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,...p.errToObj(F)})}_addCheck(D){return new $2({...this._def,checks:[...this._def.checks,D]})}email(D){return this._addCheck({kind:"email",...p.errToObj(D)})}url(D){return this._addCheck({kind:"url",...p.errToObj(D)})}emoji(D){return this._addCheck({kind:"emoji",...p.errToObj(D)})}uuid(D){return this._addCheck({kind:"uuid",...p.errToObj(D)})}nanoid(D){return this._addCheck({kind:"nanoid",...p.errToObj(D)})}cuid(D){return this._addCheck({kind:"cuid",...p.errToObj(D)})}cuid2(D){return this._addCheck({kind:"cuid2",...p.errToObj(D)})}ulid(D){return this._addCheck({kind:"ulid",...p.errToObj(D)})}base64(D){return this._addCheck({kind:"base64",...p.errToObj(D)})}base64url(D){return this._addCheck({kind:"base64url",...p.errToObj(D)})}jwt(D){return this._addCheck({kind:"jwt",...p.errToObj(D)})}ip(D){return this._addCheck({kind:"ip",...p.errToObj(D)})}cidr(D){return this._addCheck({kind:"cidr",...p.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,...p.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,...p.errToObj(D?.message)})}duration(D){return this._addCheck({kind:"duration",...p.errToObj(D)})}regex(D,$){return this._addCheck({kind:"regex",regex:D,...p.errToObj($)})}includes(D,$){return this._addCheck({kind:"includes",value:D,position:$?.position,...p.errToObj($?.message)})}startsWith(D,$){return this._addCheck({kind:"startsWith",value:D,...p.errToObj($)})}endsWith(D,$){return this._addCheck({kind:"endsWith",value:D,...p.errToObj($)})}min(D,$){return this._addCheck({kind:"min",value:D,...p.errToObj($)})}max(D,$){return this._addCheck({kind:"max",value:D,...p.errToObj($)})}length(D,$){return this._addCheck({kind:"length",value:D,...p.errToObj($)})}nonempty(D){return this.min(1,p.errToObj(D))}trim(){return new $2({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new $2({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new $2({...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}};$2.create=(D)=>{return new $2({checks:[],typeName:r.ZodString,coerce:D?.coerce??!1,...FD(D)})};V8=class V8 extends YD{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(D){if(this._def.coerce)D.data=Number(D.data);if(this._getType(D)!==h.number){let J=this._getOrReturnCtx(D);return g(J,{code:w.invalid_type,expected:h.number,received:J.parsedType}),i}let F=void 0,X=new X0;for(let J of this._def.checks)if(J.kind==="int"){if(!HD.isInteger(D.data))F=this._getOrReturnCtx(D,F),g(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),g(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),g(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(gP(D.data,J.value)!==0)F=this._getOrReturnCtx(D,F),g(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),g(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,p.toString($))}gt(D,$){return this.setLimit("min",D,!1,p.toString($))}lte(D,$){return this.setLimit("max",D,!0,p.toString($))}lt(D,$){return this.setLimit("max",D,!1,p.toString($))}setLimit(D,$,F,X){return new V8({...this._def,checks:[...this._def.checks,{kind:D,value:$,inclusive:F,message:p.toString(X)}]})}_addCheck(D){return new V8({...this._def,checks:[...this._def.checks,D]})}int(D){return this._addCheck({kind:"int",message:p.toString(D)})}positive(D){return this._addCheck({kind:"min",value:0,inclusive:!1,message:p.toString(D)})}negative(D){return this._addCheck({kind:"max",value:0,inclusive:!1,message:p.toString(D)})}nonpositive(D){return this._addCheck({kind:"max",value:0,inclusive:!0,message:p.toString(D)})}nonnegative(D){return this._addCheck({kind:"min",value:0,inclusive:!0,message:p.toString(D)})}multipleOf(D,$){return this._addCheck({kind:"multipleOf",value:D,message:p.toString($)})}finite(D){return this._addCheck({kind:"finite",message:p.toString(D)})}safe(D){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:p.toString(D)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:p.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)}};V8.create=(D)=>{return new V8({checks:[],typeName:r.ZodNumber,coerce:D?.coerce||!1,...FD(D)})};Q8=class Q8 extends YD{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(D){if(this._def.coerce)try{D.data=BigInt(D.data)}catch{return this._getInvalidInput(D)}if(this._getType(D)!==h.bigint)return this._getInvalidInput(D);let F=void 0,X=new X0;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),g(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),g(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),g(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 g($,{code:w.invalid_type,expected:h.bigint,received:$.parsedType}),i}gte(D,$){return this.setLimit("min",D,!0,p.toString($))}gt(D,$){return this.setLimit("min",D,!1,p.toString($))}lte(D,$){return this.setLimit("max",D,!0,p.toString($))}lt(D,$){return this.setLimit("max",D,!1,p.toString($))}setLimit(D,$,F,X){return new Q8({...this._def,checks:[...this._def.checks,{kind:D,value:$,inclusive:F,message:p.toString(X)}]})}_addCheck(D){return new Q8({...this._def,checks:[...this._def.checks,D]})}positive(D){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:p.toString(D)})}negative(D){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:p.toString(D)})}nonpositive(D){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:p.toString(D)})}nonnegative(D){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:p.toString(D)})}multipleOf(D,$){return this._addCheck({kind:"multipleOf",value:D,message:p.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}};Q8.create=(D)=>{return new Q8({checks:[],typeName:r.ZodBigInt,coerce:D?.coerce??!1,...FD(D)})};y1=class y1 extends YD{_parse(D){if(this._def.coerce)D.data=Boolean(D.data);if(this._getType(D)!==h.boolean){let F=this._getOrReturnCtx(D);return g(F,{code:w.invalid_type,expected:h.boolean,received:F.parsedType}),i}return W0(D.data)}};y1.create=(D)=>{return new y1({typeName:r.ZodBoolean,coerce:D?.coerce||!1,...FD(D)})};d8=class d8 extends YD{_parse(D){if(this._def.coerce)D.data=new Date(D.data);if(this._getType(D)!==h.date){let J=this._getOrReturnCtx(D);return g(J,{code:w.invalid_type,expected:h.date,received:J.parsedType}),i}if(Number.isNaN(D.data.getTime())){let J=this._getOrReturnCtx(D);return g(J,{code:w.invalid_date}),i}let F=new X0,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),g(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),g(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 d8({...this._def,checks:[...this._def.checks,D]})}min(D,$){return this._addCheck({kind:"min",value:D.getTime(),message:p.toString($)})}max(D,$){return this._addCheck({kind:"max",value:D.getTime(),message:p.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}};d8.create=(D)=>{return new d8({checks:[],coerce:D?.coerce||!1,typeName:r.ZodDate,...FD(D)})};B3=class B3 extends YD{_parse(D){if(this._getType(D)!==h.symbol){let F=this._getOrReturnCtx(D);return g(F,{code:w.invalid_type,expected:h.symbol,received:F.parsedType}),i}return W0(D.data)}};B3.create=(D)=>{return new B3({typeName:r.ZodSymbol,...FD(D)})};u1=class u1 extends YD{_parse(D){if(this._getType(D)!==h.undefined){let F=this._getOrReturnCtx(D);return g(F,{code:w.invalid_type,expected:h.undefined,received:F.parsedType}),i}return W0(D.data)}};u1.create=(D)=>{return new u1({typeName:r.ZodUndefined,...FD(D)})};m1=class m1 extends YD{_parse(D){if(this._getType(D)!==h.null){let F=this._getOrReturnCtx(D);return g(F,{code:w.invalid_type,expected:h.null,received:F.parsedType}),i}return W0(D.data)}};m1.create=(D)=>{return new m1({typeName:r.ZodNull,...FD(D)})};l8=class l8 extends YD{constructor(){super(...arguments);this._any=!0}_parse(D){return W0(D.data)}};l8.create=(D)=>{return new l8({typeName:r.ZodAny,...FD(D)})};W8=class W8 extends YD{constructor(){super(...arguments);this._unknown=!0}_parse(D){return W0(D.data)}};W8.create=(D)=>{return new W8({typeName:r.ZodUnknown,...FD(D)})};I2=class I2 extends YD{_parse(D){let $=this._getOrReturnCtx(D);return g($,{code:w.invalid_type,expected:h.never,received:$.parsedType}),i}};I2.create=(D)=>{return new I2({typeName:r.ZodNever,...FD(D)})};H3=class H3 extends YD{_parse(D){if(this._getType(D)!==h.undefined){let F=this._getOrReturnCtx(D);return g(F,{code:w.invalid_type,expected:h.void,received:F.parsedType}),i}return W0(D.data)}};H3.create=(D)=>{return new H3({typeName:r.ZodVoid,...FD(D)})};F2=class F2 extends YD{_parse(D){let{ctx:$,status:F}=this._processInputParams(D),X=this._def;if($.parsedType!==h.array)return g($,{code:w.invalid_type,expected:h.array,received:$.parsedType}),i;if(X.exactLength!==null){let G=$.data.length>X.exactLength.value,Y=$.data.length<X.exactLength.value;if(G||Y)g($,{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)g($,{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)g($,{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 J2($,G,$.path,Y))})).then((G)=>{return X0.mergeArray(F,G)});let J=[...$.data].map((G,Y)=>{return X.type._parseSync(new J2($,G,$.path,Y))});return X0.mergeArray(F,J)}get element(){return this._def.type}min(D,$){return new F2({...this._def,minLength:{value:D,message:p.toString($)}})}max(D,$){return new F2({...this._def,maxLength:{value:D,message:p.toString($)}})}length(D,$){return new F2({...this._def,exactLength:{value:D,message:p.toString($)}})}nonempty(D){return this.min(1,D)}};F2.create=(D,$)=>{return new F2({type:D,minLength:null,maxLength:null,exactLength:null,typeName:r.ZodArray,...FD($)})};SD=class SD 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)!==h.object){let H=this._getOrReturnCtx(D);return g(H,{code:w.invalid_type,expected:h.object,received:H.parsedType}),i}let{status:F,ctx:X}=this._processInputParams(D),{shape:J,keys:G}=this._getCached(),Y=[];if(!(this._def.catchall instanceof I2&&this._def.unknownKeys==="strip")){for(let H in X.data)if(!G.includes(H))Y.push(H)}let B=[];for(let H of G){let W=J[H],Q=X.data[H];B.push({key:{status:"valid",value:H},value:W._parse(new J2(X,Q,X.path,H)),alwaysSet:H in X.data})}if(this._def.catchall instanceof I2){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)g(X,{code:w.unrecognized_keys,keys:Y}),F.dirty()}else if(H==="strip");else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let H=this._def.catchall;for(let W of Y){let Q=X.data[W];B.push({key:{status:"valid",value:W},value:H._parse(new J2(X,Q,X.path,W)),alwaysSet:W in X.data})}}if(X.common.async)return Promise.resolve().then(async()=>{let H=[];for(let W of B){let Q=await W.key,_=await W.value;H.push({key:Q,value:_,alwaysSet:W.alwaysSet})}return H}).then((H)=>{return X0.mergeObjectSync(F,H)});else return X0.mergeObjectSync(F,B)}get shape(){return this._def.shape()}strict(D){return p.errToObj,new SD({...this._def,unknownKeys:"strict",...D!==void 0?{errorMap:($,F)=>{let X=this._def.errorMap?.($,F).message??F.defaultError;if($.code==="unrecognized_keys")return{message:p.errToObj(D).message??X};return{message:X}}}:{}})}strip(){return new SD({...this._def,unknownKeys:"strip"})}passthrough(){return new SD({...this._def,unknownKeys:"passthrough"})}extend(D){return new SD({...this._def,shape:()=>({...this._def.shape(),...D})})}merge(D){return new SD({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 SD({...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 SD({...this._def,shape:()=>$})}omit(D){let $={};for(let F of HD.objectKeys(this.shape))if(!D[F])$[F]=this.shape[F];return new SD({...this._def,shape:()=>$})}deepPartial(){return x1(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 SD({...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 X2)J=J._def.innerType;$[F]=J}return new SD({...this._def,shape:()=>$})}keyof(){return PH(HD.objectKeys(this.shape))}};SD.create=(D,$)=>{return new SD({shape:()=>D,unknownKeys:"strip",catchall:I2.create(),typeName:r.ZodObject,...FD($)})};SD.strictCreate=(D,$)=>{return new SD({shape:()=>D,unknownKeys:"strict",catchall:I2.create(),typeName:r.ZodObject,...FD($)})};SD.lazycreate=(D,$)=>{return new SD({shape:D,unknownKeys:"strip",catchall:I2.create(),typeName:r.ZodObject,...FD($)})};p1=class p1 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 C0(Y.ctx.common.issues));return g($,{code:w.invalid_union,unionErrors:G}),i}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 C0(B));return g($,{code:w.invalid_union,unionErrors:Y}),i}}get options(){return this._def.options}};p1.create=(D,$)=>{return new p1({options:D,typeName:r.ZodUnion,...FD($)})};C7=class C7 extends YD{_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==h.object)return g($,{code:w.invalid_type,expected:h.object,received:$.parsedType}),i;let F=this.discriminator,X=$.data[F],J=this.optionsMap.get(X);if(!J)return g($,{code:w.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[F]}),i;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=m2(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 C7({typeName:r.ZodDiscriminatedUnion,discriminator:D,options:$,optionsMap:X,...FD(F)})}};c1=class c1 extends YD{_parse(D){let{status:$,ctx:F}=this._processInputParams(D),X=(J,G)=>{if(R7(J)||R7(G))return i;let Y=FF(J.value,G.value);if(!Y.valid)return g(F,{code:w.invalid_intersection_types}),i;if(E7(J)||E7(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}))}};c1.create=(D,$,F)=>{return new c1({left:D,right:$,typeName:r.ZodIntersection,...FD(F)})};T2=class T2 extends YD{_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==h.array)return g(F,{code:w.invalid_type,expected:h.array,received:F.parsedType}),i;if(F.data.length<this._def.items.length)return g(F,{code:w.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),i;if(!this._def.rest&&F.data.length>this._def.items.length)g(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 J2(F,G,F.path,Y))}).filter((G)=>!!G);if(F.common.async)return Promise.all(J).then((G)=>{return X0.mergeArray($,G)});else return X0.mergeArray($,J)}get items(){return this._def.items}rest(D){return new T2({...this._def,rest:D})}};T2.create=(D,$)=>{if(!Array.isArray(D))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new T2({items:D,typeName:r.ZodTuple,rest:null,...FD($)})};W3=class W3 extends YD{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==h.object)return g(F,{code:w.invalid_type,expected:h.object,received:F.parsedType}),i;let X=[],J=this._def.keyType,G=this._def.valueType;for(let Y in F.data)X.push({key:J._parse(new J2(F,Y,F.path,Y)),value:G._parse(new J2(F,F.data[Y],F.path,Y)),alwaysSet:Y in F.data});if(F.common.async)return X0.mergeObjectAsync($,X);else return X0.mergeObjectSync($,X)}get element(){return this._def.valueType}static create(D,$,F){if($ instanceof YD)return new W3({keyType:D,valueType:$,typeName:r.ZodRecord,...FD(F)});return new W3({keyType:$2.create(),valueType:D,typeName:r.ZodRecord,...FD($)})}};V3=class V3 extends YD{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==h.map)return g(F,{code:w.invalid_type,expected:h.map,received:F.parsedType}),i;let X=this._def.keyType,J=this._def.valueType,G=[...F.data.entries()].map(([Y,B],H)=>{return{key:X._parse(new J2(F,Y,F.path,[H,"key"])),value:J._parse(new J2(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 i;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 i;if(H.status==="dirty"||W.status==="dirty")$.dirty();Y.set(H.value,W.value)}return{status:$.value,value:Y}}}};V3.create=(D,$,F)=>{return new V3({valueType:$,keyType:D,typeName:r.ZodMap,...FD(F)})};i8=class i8 extends YD{_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==h.set)return g(F,{code:w.invalid_type,expected:h.set,received:F.parsedType}),i;let X=this._def;if(X.minSize!==null){if(F.data.size<X.minSize.value)g(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)g(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 i;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 J2(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 i8({...this._def,minSize:{value:D,message:p.toString($)}})}max(D,$){return new i8({...this._def,maxSize:{value:D,message:p.toString($)}})}size(D,$){return this.min(D,$).max(D,$)}nonempty(D){return this.min(1,D)}};i8.create=(D,$)=>{return new i8({valueType:D,minSize:null,maxSize:null,typeName:r.ZodSet,...FD($)})};g1=class g1 extends YD{constructor(){super(...arguments);this.validate=this.implement}_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==h.function)return g($,{code:w.invalid_type,expected:h.function,received:$.parsedType}),i;function F(Y,B){return G3({data:Y,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,v1(),u2].filter((H)=>!!H),issueData:{code:w.invalid_arguments,argumentsError:B}})}function X(Y,B){return G3({data:Y,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,v1(),u2].filter((H)=>!!H),issueData:{code:w.invalid_return_type,returnTypeError:B}})}let J={errorMap:$.common.contextualErrorMap},G=$.data;if(this._def.returns instanceof n8){let Y=this;return W0(async function(...B){let H=new C0([]),W=await Y._def.args.parseAsync(B,J).catch((U)=>{throw H.addIssue(F(B,U)),H}),Q=await Reflect.apply(G,this,W);return await Y._def.returns._def.type.parseAsync(Q,J).catch((U)=>{throw H.addIssue(X(Q,U)),H})})}else{let Y=this;return W0(function(...B){let H=Y._def.args.safeParse(B,J);if(!H.success)throw new C0([F(B,H.error)]);let W=Reflect.apply(G,this,H.data),Q=Y._def.returns.safeParse(W,J);if(!Q.success)throw new C0([X(W,Q.error)]);return Q.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...D){return new g1({...this._def,args:T2.create(D).rest(W8.create())})}returns(D){return new g1({...this._def,returns:D})}implement(D){return this.parse(D)}strictImplement(D){return this.parse(D)}static create(D,$,F){return new g1({args:D?D:T2.create([]).rest(W8.create()),returns:$||W8.create(),typeName:r.ZodFunction,...FD(F)})}};d1=class d1 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:$})}};d1.create=(D,$)=>{return new d1({getter:D,typeName:r.ZodLazy,...FD($)})};l1=class l1 extends YD{_parse(D){if(D.data!==this._def.value){let $=this._getOrReturnCtx(D);return g($,{received:$.data,code:w.invalid_literal,expected:this._def.value}),i}return{status:"valid",value:D.data}}get value(){return this._def.value}};l1.create=(D,$)=>{return new l1({value:D,typeName:r.ZodLiteral,...FD($)})};_8=class _8 extends YD{_parse(D){if(typeof D.data!=="string"){let $=this._getOrReturnCtx(D),F=this._def.values;return g($,{expected:HD.joinValues(F),received:$.parsedType,code:w.invalid_type}),i}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 g($,{received:$.data,code:w.invalid_enum_value,options:F}),i}return W0(D.data)}get options(){return this._def.values}get enum(){let D={};for(let $ of this._def.values)D[$]=$;return D}get Values(){let D={};for(let $ of this._def.values)D[$]=$;return D}get Enum(){let D={};for(let $ of this._def.values)D[$]=$;return D}extract(D,$=this._def){return _8.create(D,{...this._def,...$})}exclude(D,$=this._def){return _8.create(this.options.filter((F)=>!D.includes(F)),{...this._def,...$})}};_8.create=PH;i1=class i1 extends YD{_parse(D){let $=HD.getValidEnumValues(this._def.values),F=this._getOrReturnCtx(D);if(F.parsedType!==h.string&&F.parsedType!==h.number){let X=HD.objectValues($);return g(F,{expected:HD.joinValues(X),received:F.parsedType,code:w.invalid_type}),i}if(!this._cache)this._cache=new Set(HD.getValidEnumValues(this._def.values));if(!this._cache.has(D.data)){let X=HD.objectValues($);return g(F,{received:F.data,code:w.invalid_enum_value,options:X}),i}return W0(D.data)}get enum(){return this._def.values}};i1.create=(D,$)=>{return new i1({values:D,typeName:r.ZodNativeEnum,...FD($)})};n8=class n8 extends YD{unwrap(){return this._def.type}_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==h.promise&&$.common.async===!1)return g($,{code:w.invalid_type,expected:h.promise,received:$.parsedType}),i;let F=$.parsedType===h.promise?$.data:Promise.resolve($.data);return W0(F.then((X)=>{return this._def.type.parseAsync(X,{path:$.path,errorMap:$.common.contextualErrorMap})}))}};n8.create=(D,$)=>{return new n8({type:D,typeName:r.ZodPromise,...FD($)})};Y2=class Y2 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(g(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 i;let B=await this._def.schema._parseAsync({data:Y,path:F.path,parent:F});if(B.status==="aborted")return i;if(B.status==="dirty")return c8(B.value);if($.value==="dirty")return c8(B.value);return B});else{if($.value==="aborted")return i;let Y=this._def.schema._parseSync({data:G,path:F.path,parent:F});if(Y.status==="aborted")return i;if(Y.status==="dirty")return c8(Y.value);if($.value==="dirty")return c8(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 i;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 i;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(!H8(G))return i;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(!H8(G))return i;return Promise.resolve(X.transform(G.value,J)).then((Y)=>({status:$.value,value:Y}))});HD.assertNever(X)}};Y2.create=(D,$,F)=>{return new Y2({schema:D,typeName:r.ZodEffects,effect:$,...FD(F)})};Y2.createWithPreprocess=(D,$,F)=>{return new Y2({schema:$,effect:{type:"preprocess",transform:D},typeName:r.ZodEffects,...FD(F)})};X2=class X2 extends YD{_parse(D){if(this._getType(D)===h.undefined)return W0(void 0);return this._def.innerType._parse(D)}unwrap(){return this._def.innerType}};X2.create=(D,$)=>{return new X2({innerType:D,typeName:r.ZodOptional,...FD($)})};p2=class p2 extends YD{_parse(D){if(this._getType(D)===h.null)return W0(null);return this._def.innerType._parse(D)}unwrap(){return this._def.innerType}};p2.create=(D,$)=>{return new p2({innerType:D,typeName:r.ZodNullable,...FD($)})};n1=class n1 extends YD{_parse(D){let{ctx:$}=this._processInputParams(D),F=$.data;if($.parsedType===h.undefined)F=this._def.defaultValue();return this._def.innerType._parse({data:F,path:$.path,parent:$})}removeDefault(){return this._def.innerType}};n1.create=(D,$)=>{return new n1({innerType:D,typeName:r.ZodDefault,defaultValue:typeof $.default==="function"?$.default:()=>$.default,...FD($)})};s1=class s1 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(h1(X))return X.then((J)=>{return{status:"valid",value:J.status==="valid"?J.value:this._def.catchValue({get error(){return new C0(F.common.issues)},input:F.data})}});else return{status:"valid",value:X.status==="valid"?X.value:this._def.catchValue({get error(){return new C0(F.common.issues)},input:F.data})}}removeCatch(){return this._def.innerType}};s1.create=(D,$)=>{return new s1({innerType:D,typeName:r.ZodCatch,catchValue:typeof $.catch==="function"?$.catch:()=>$.catch,...FD($)})};Q3=class Q3 extends YD{_parse(D){if(this._getType(D)!==h.nan){let F=this._getOrReturnCtx(D);return g(F,{code:w.invalid_type,expected:h.nan,received:F.parsedType}),i}return{status:"valid",value:D.data}}};Q3.create=(D)=>{return new Q3({typeName:r.ZodNaN,...FD(D)})};yP=Symbol("zod_brand");M7=class M7 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}};_3=class _3 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 i;if(J.status==="dirty")return $.dirty(),c8(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 i;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 _3({in:D,out:$,typeName:r.ZodPipeline})}};r1=class r1 extends YD{_parse(D){let $=this._def.innerType._parse(D),F=(X)=>{if(H8(X))X.value=Object.freeze(X.value);return X};return h1($)?$.then((X)=>F(X)):F($)}unwrap(){return this._def.innerType}};r1.create=(D,$)=>{return new r1({innerType:D,typeName:r.ZodReadonly,...FD($)})};uP={object:SD.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={}));jH=$2.create,zH=V8.create,pP=Q3.create,cP=Q8.create,IH=y1.create,dP=d8.create,lP=B3.create,iP=u1.create,nP=m1.create,sP=l8.create,rP=W8.create,aP=I2.create,oP=H3.create,tP=F2.create,eP=SD.create,DL=SD.strictCreate,$L=p1.create,FL=C7.create,XL=c1.create,JL=T2.create,YL=W3.create,GL=V3.create,BL=i8.create,HL=g1.create,WL=d1.create,VL=l1.create,QL=_8.create,_L=i1.create,UL=n8.create,AL=Y2.create,KL=X2.create,OL=p2.create,RL=Y2.createWithPreprocess,EL=_3.create,qL={string:(D)=>$2.create({...D,coerce:!0}),number:(D)=>V8.create({...D,coerce:!0}),boolean:(D)=>y1.create({...D,coerce:!0}),bigint:(D)=>Q8.create({...D,coerce:!0}),date:(D)=>d8.create({...D,coerce:!0})},NL=i});var V={};m8(V,{void:()=>oP,util:()=>HD,unknown:()=>rP,union:()=>$L,undefined:()=>iP,tuple:()=>JL,transformer:()=>AL,symbol:()=>lP,string:()=>jH,strictObject:()=>DL,setErrorMap:()=>OP,set:()=>BL,record:()=>YL,quotelessJson:()=>AP,promise:()=>UL,preprocess:()=>RL,pipeline:()=>EL,ostring:()=>CL,optional:()=>KL,onumber:()=>ML,oboolean:()=>ZL,objectUtil:()=>t$,object:()=>eP,number:()=>zH,nullable:()=>OL,null:()=>nP,never:()=>aP,nativeEnum:()=>_L,nan:()=>pP,map:()=>GL,makeIssue:()=>G3,literal:()=>VL,lazy:()=>WL,late:()=>uP,isValid:()=>H8,isDirty:()=>E7,isAsync:()=>h1,isAborted:()=>R7,intersection:()=>XL,instanceof:()=>mP,getParsedType:()=>z2,getErrorMap:()=>v1,function:()=>HL,enum:()=>QL,effect:()=>AL,discriminatedUnion:()=>FL,defaultErrorMap:()=>u2,datetimeRegex:()=>NH,date:()=>dP,custom:()=>LH,coerce:()=>qL,boolean:()=>IH,bigint:()=>cP,array:()=>tP,any:()=>sP,addIssueToContext:()=>g,ZodVoid:()=>H3,ZodUnknown:()=>W8,ZodUnion:()=>p1,ZodUndefined:()=>u1,ZodType:()=>YD,ZodTuple:()=>T2,ZodTransformer:()=>Y2,ZodSymbol:()=>B3,ZodString:()=>$2,ZodSet:()=>i8,ZodSchema:()=>YD,ZodRecord:()=>W3,ZodReadonly:()=>r1,ZodPromise:()=>n8,ZodPipeline:()=>_3,ZodParsedType:()=>h,ZodOptional:()=>X2,ZodObject:()=>SD,ZodNumber:()=>V8,ZodNullable:()=>p2,ZodNull:()=>m1,ZodNever:()=>I2,ZodNativeEnum:()=>i1,ZodNaN:()=>Q3,ZodMap:()=>V3,ZodLiteral:()=>l1,ZodLazy:()=>d1,ZodIssueCode:()=>w,ZodIntersection:()=>c1,ZodFunction:()=>g1,ZodFirstPartyTypeKind:()=>r,ZodError:()=>C0,ZodEnum:()=>_8,ZodEffects:()=>Y2,ZodDiscriminatedUnion:()=>C7,ZodDefault:()=>n1,ZodDate:()=>d8,ZodCatch:()=>s1,ZodBranded:()=>M7,ZodBoolean:()=>y1,ZodBigInt:()=>Q8,ZodArray:()=>F2,ZodAny:()=>l8,Schema:()=>YD,ParseStatus:()=>X0,OK:()=>W0,NEVER:()=>NL,INVALID:()=>i,EMPTY_PATH:()=>RP,DIRTY:()=>c8,BRAND:()=>yP});var XF=Z(()=>{O7();DF();RH();Y3();TH();K7()});var yD=Z(()=>{XF();XF()});function JF(D){return Object.prototype.hasOwnProperty.call(uH,D)}var e,b0,wH,SH,bH,fH,kH,vH,hH,xH,gH,Z7,q7,yH,uH;var mH=Z(()=>{yD();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"},b0=V.object({workerId:V.string().min(1)}),wH=b0.extend({displayName:V.string().optional(),deviceId:V.string().min(1),connectedAt:V.number().int()}),SH=b0.extend({deviceId:V.string().min(1),reason:V.enum(["disconnected","expired","kicked"]).optional(),disconnectedAt:V.number().int()}),bH=b0.extend({conversationId:V.string().min(1),role:V.enum(["user","assistant","system"]),content:V.string(),createdAt:V.number().int()}),fH=b0.extend({conversationId:V.string().min(1),taskId:V.string().min(1).optional(),chunk:V.string().optional()}),kH=b0.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()}),vH=b0.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()}),hH=b0.extend({version:V.number().int().nonnegative(),changedAt:V.number().int()}),xH=b0.extend({stream:V.enum(["stdout","stderr"]),line:V.string(),ts:V.number().int()}),gH=b0.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()}),Z7=b0.extend({otp:V.string().min(1),expiresAt:V.number().int()}),q7=b0.extend({deviceToken:V.string().min(1)}),yH=b0.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"])}),uH={[e.WORKER_ONLINE]:wH,[e.WORKER_OFFLINE]:SH,[e.CHAT_MESSAGE]:bH,[e.AGENT_THINKING]:fH,[e.AGENT_TOOL_CALL]:kH,[e.AGENT_DONE]:vH,[e.CONFIG_CHANGED]:hH,[e.LOGS_LINE]:xH,[e.APPROVAL_REQUESTED]:gH,[e.ENROLLMENT_OTP]:Z7,[e.ENROLLMENT_APPROVED]:q7,[e.ENROLLMENT_PENDING]:yH}});var jD;var pH=Z(()=>{jD=class jD extends Error{code;status;constructor(D,$,F){super(F);this.code=D;this.status=$;this.name="AppError"}static badRequest(D,$="BAD_REQUEST"){return new jD($,400,D)}static notFound(D,$="NOT_FOUND"){return new jD($,404,D)}static internal(D,$="INTERNAL_ERROR"){return new jD($,500,D)}toJSON(){return{error:{code:this.code,message:this.message}}}}});var N7=20;var a1,P7="0123456789abcdefghjkmnpqrstvwxyz";var cH=Z(()=>{a1=/^w_[0-9a-hjkmnp-tv-z]{12}$/});function U8(D){return typeof D==="string"&&c2.test(D)}var L7="wtk_",c2;var dH=Z(()=>{c2=/^wtk_[\w-]{32,}$/});var YF=Z(()=>{cH();dH()});function o1(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 U3(D){return D==="1"||D==="true"}function A3(D){if(!D.serveWeb)return;if(o1(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
73
 
74
74
  Public admin UI must be protected before traffic reaches AIWorker.
75
75
 
76
76
  Fix one of these ways:
77
77
  1. Bind the service to 127.0.0.1 and put Caddy/Cloudflare Access/IP allowlist/basic-auth in front;
78
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 LL(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+=P7[X>>>F-5&31],F-=5}return J.padEnd($,"0")}function GF(){let D=new Uint8Array(10);return globalThis.crypto.getRandomValues(D),`w_${LL(D,12)}`}var dH=Z(()=>{YF()});var BF,HF,j7,jL,WF,lH;var iH=Z(()=>{yD();BF=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()})]),HF=V.enum(["pending","running","success","failed","pending_approval","denied"]),j7=V.object({inputTokens:V.number().int().nonnegative(),outputTokens:V.number().int().nonnegative()}),jL=V.record(V.unknown()),WF=V.enum(["stop","tool","length","error","cancelled"]),lH=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:BF,status:HF.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:j7}),V.object({type:V.literal("engine_binding"),engine:V.string().min(1),binding:jL.nullable()}),V.object({type:V.literal("finish"),reason:WF,usage:j7.optional()}),V.object({type:V.literal("error"),error:V.string()})])});var nH=Z(()=>{iH()});var J0=Z(()=>{mH();YF();dH();nH()});var s8,VF;var QF=Z(()=>{yD();s8={OPERATOR:"operator",NODE:"node"},VF=V.union([V.literal(s8.OPERATOR),V.literal(s8.NODE)])});function r8(D){let $;try{$=JSON.parse(D)}catch(X){return{ok:!1,error:`invalid_json:${X instanceof Error?X.message:String(X)}`}}let F=eH.safeParse($);if(!F.success)return{ok:!1,error:`schema:${F.error.message}`};return{ok:!0,frame:F.data}}function bD(D){return JSON.stringify(D)}var sH,rH,aH,zL,IL,oH,tH,eH;var DW=Z(()=>{J0();yD();QF();sH=V.object({type:V.literal("connect"),role:VF,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(c2,"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"})}),rH=V.object({type:V.literal("request"),id:V.string().min(1),method:V.string().min(1),params:V.unknown().optional()}),aH=V.object({code:V.string().min(1),message:V.string(),details:V.unknown().optional()}),zL=V.object({type:V.literal("response"),id:V.string().min(1),ok:V.literal(!0),result:V.unknown()}),IL=V.object({type:V.literal("response"),id:V.string().min(1),ok:V.literal(!1),error:aH}),oH=V.discriminatedUnion("ok",[zL,IL]),tH=V.object({type:V.literal("event"),name:V.string().min(1),payload:V.unknown(),ts:V.number().int()}),eH=V.union([sH,rH,oH,tH])});function vD(D){return D}function w7(D){return Object.prototype.hasOwnProperty.call(oD,D)}function K3(D){if(!w7(D))return;return oD[D]}var a8,TL,wL,$W,t1,SL,bL,fL,kL,z7,vL,hL,xL,I7,gL,yL,uL,mL,pL,cL,FW,XW,dL,lL,iL,_F,T7,JW,YW,nL,sL,rL,aL,oD;var GW=Z(()=>{yD();a8=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()}),TL=vD({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(a8)}),routing:"operator-to-gateway"}),wL=vD({method:"workers.info",description:"\u8BFB\u53D6\u67D0\u4E2A worker \u7684\u8FD0\u884C\u65F6\u5FEB\u7167\uFF08/worker/info \u7B49\u4EF7\u7269\uFF09\u3002",params:V.object({workerId:V.string().min(1)}),result:V.unknown(),routing:"operator-to-node"}),$W=V.object({workerBaseUrl:V.string().min(1),bootstrapToken:V.string().min(1),displayName:V.string().optional()}),t1=V.object({workerId:V.string().min(1),deviceToken:V.string().min(1)}),SL=vD({method:"workers.pair",description:"\u628A\u4E00\u4E2A\u5DF2\u542F\u52A8\u7684 worker \u901A\u8FC7 bootstrap token \u6CE8\u518C\u5230 fleet\u3002",params:$W,result:t1,routing:"operator-to-gateway"}),bL=vD({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:t1,routing:"operator-to-gateway"}),fL=vD({method:"workers.stop",description:"\u5411\u76EE\u6807 worker \u4E0B\u53D1\u505C\u6B62\u6307\u4EE4\uFF08\u4E0D\u4ECE fleet \u91CC\u5220\u9664\uFF09\u3002",params:V.object({workerId:V.string().min(1)}),result:V.object({stopped:V.boolean()}),routing:"operator-to-node"}),kL=vD({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"}),z7=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()}),vL=vD({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(z7)}),routing:"operator-to-gateway"}),hL=vD({method:"enroll.approve",description:"\u6279\u51C6\u67D0\u6761 pending OTP enrollment\uFF1Afleet.db \u843D row + \u63A8 enrollment.approved \u4E8B\u4EF6\u7ED9\u7B49\u5F85\u4E2D\u7684 worker\u3002",params:V.object({otp:V.string().min(1)}),result:V.object({workerId:V.string().min(1),deviceToken:V.string().min(1)}),routing:"operator-to-gateway"}),xL=vD({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"}),I7=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()}),gL=vD({method:"audit.list",description:"fleet.db audit_events \u6D4F\u89C8\uFF1A\u6309 id \u5012\u5E8F\u5206\u9875\uFF0C\u53EF\u6309 action \u524D\u7F00 / workerId \u8FC7\u6EE4\u3002",params: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(I7),hasMore:V.boolean()}),routing:"operator-to-gateway"}),yL=vD({method:"chat.send",description:"\u5411\u76EE\u6807 worker \u7684\u67D0\u4F1A\u8BDD\u8FFD\u52A0\u4E00\u6761\u7528\u6237\u6D88\u606F\u5E76\u89E6\u53D1\u4E00\u6B21 run\u3002",params: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"}),uL=vD({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"}),mL=vD({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"}),pL=vD({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"}),cL=vD({method:"logs.tail",description:"\u8BA2\u9605 worker \u7684\u65E5\u5FD7\u5C3E\u90E8\uFF08\u901A\u8FC7\u540E\u7EED logs.line \u4E8B\u4EF6\u63A8\u9001\uFF09\u3002",params: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"}),FW=V.enum(["allow","deny"]),XW=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()}),dL=vD({method:"approval.list",description:"\u5217\u51FA\u76EE\u6807 worker \u5F53\u524D\u6240\u6709\u6302\u8D77\u7684 per-tool \u5BA1\u6279\u8BF7\u6C42\u3002",params:V.object({workerId:V.string().min(1)}),result:V.object({approvals:V.array(XW)}),routing:"operator-to-node"}),lL=vD({method:"approval.grant",description:"\u89E3\u9501\u67D0\u6761\u6302\u8D77\u7684 tool \u5BA1\u6279\uFF1Aallow \u8BA9 orchestrator \u7EE7\u7EED\u6267\u884C\uFF0Cdeny \u7ACB\u5373\u77ED\u8DEF\u3002",params:V.object({workerId:V.string().min(1),taskId:V.string().min(1),toolCallId:V.string().min(1),decision:FW}),result:V.object({granted:V.boolean()}),routing:"operator-to-node"}),iL=vD({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(a8)}),routing:"operator-to-gateway"}),_F=V.enum(["web","line","telegram","lark","whatsapp"]),T7=V.object({id:V.string().min(1),expression:V.string().min(1),prompt:V.string().min(1),channel:_F,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()}),JW=V.object({expression:V.string().min(1),prompt:V.string().min(1),channel:_F,chatId:V.string().min(1),accountId:V.string().min(1).optional(),enabled:V.boolean().optional()}),YW=V.object({expression:V.string().min(1).optional(),prompt:V.string().min(1).optional(),channel:_F.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"}),nL=vD({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(T7)}),routing:"operator-to-node"}),sL=vD({method:"cron.add",description:"\u5728\u76EE\u6807 worker \u4E0A\u65B0\u589E\u4E00\u6761 cron \u4EFB\u52A1\uFF1B\u975E\u6CD5 expression \u76F4\u63A5\u5931\u8D25\u3002",params:V.object({workerId:V.string().min(1),job:JW}),result:V.object({job:T7}),routing:"operator-to-node"}),rL=vD({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"}),aL=vD({method:"cron.update",description:"\u5C40\u90E8\u66F4\u65B0\u76EE\u6807 worker \u4E0A\u67D0\u6761 cron \u4EFB\u52A1\uFF1B\u6539 expression \u6216 enabled \u4F1A\u91CD\u7B97 nextRunAt\u3002",params:V.object({workerId:V.string().min(1),jobId:V.string().min(1),patch:YW}),result:V.object({job:T7}),routing:"operator-to-node"}),oD={"workers.list":TL,"workers.info":wL,"workers.pair":SL,"workers.launch":bL,"workers.stop":fL,"workers.remove":kL,"enroll.list":vL,"enroll.approve":hL,"enroll.reject":xL,"audit.list":gL,"chat.send":yL,"config.get":uL,"config.put":mL,"token.rotate":pL,"logs.tail":cL,"system.presence":iL,"approval.list":dL,"approval.grant":lL,"cron.list":nL,"cron.add":sL,"cron.remove":rL,"cron.update":aL}});var Y0=Z(()=>{uH();DW();GW();QF()});import{statSync as oL}from"fs";import{access as tL,mkdir as eL,stat as Xs,writeFile as Dj}from"fs/promises";import{homedir as VW}from"os";import BD from"path";import QW from"process";function HW(D){return D.startsWith("~")?BD.join(VW(),D.slice(1)):D}function WW(D){try{return oL(D).isDirectory()}catch{return!1}}function AF(D){let $=BD.resolve(D??QW.cwd());if(!$)return null;while(!0){let F=BD.join($,e1);if(WW(F))return $;let X=BD.join($,".git");if(WW(X))return null;let J=BD.dirname($);if(J===$)return null;$=J}}function G2(D={}){if(D.explicitHome&&D.explicitHome.length>0)return{scope:"explicit",home:BD.resolve(HW(D.explicitHome)),source:"cli-flag"};let $=QW.env[$j];if($&&$.length>0)return{scope:"explicit",home:BD.resolve(HW($)),source:"env"};if(!D.disableProjectDetect){let F=AF(D.cwd);if(F)return{scope:"project",home:BD.join(F,e1,UF),projectRoot:F,source:"project-detect"}}return{scope:"user",home:BD.resolve(VW(),e1),source:"user-default"}}function B2(){return G2().home}function H2(D){let $=G2();if($.scope==="project"&&$.projectRoot)return BD.join($.projectRoot,e1);return BD.join($.home,"workers",D)}function D6(D){let $=G2();if($.scope==="project"&&$.projectRoot)return BD.join($.projectRoot,e1);return BD.join(H2(D),"brain")}function Fj(D){return BD.join(D6(D),"skills")}function Xj(D){return BD.join(D6(D),"memories")}function KF(D){return BD.join(D6(D),"MEMORY.md")}function S7(D){let $=G2();if($.scope==="project"&&$.projectRoot)return BD.join($.home,"workspaces");return BD.join(H2(D),"workspaces")}function _W(D){return BD.join(H2(D),"config.yaml")}function OF(D){return BD.join(H2(D),"AGENT.md")}function RF(D){return BD.join(H2(D),"SOUL.md")}function EF(D){return BD.join(H2(D),"USER.md")}function UW(D){return BD.join(H2(D),"ROLLUP.md")}function AW(D){return BD.join(H2(D),"mcp.json")}async function k0(D,$){await eL(D,{recursive:!0,...$===void 0?{}:{mode:$}})}async function f0(D,$){try{await tL(D)}catch{await Dj(D,$,{encoding:"utf8"})}}async function CF(D){let $=G2();if($.scope==="project"){await k0($.home,448),await k0(S7(D));return}let F=H2(D);await k0(F),await k0(D6(D)),await k0(Fj(D)),await k0(Xj(D)),await k0(S7(D)),await f0(OF(D),`# Agent ${D}
79
+ 3. Confirm an external auth layer protects /admin/*, /ws, and /api/*, then set AIWORKER_ADMIN_EXTERNAL_AUTH=1.`)}function LL(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+=P7[X>>>F-5&31],F-=5}return J.padEnd($,"0")}function GF(){let D=new Uint8Array(10);return globalThis.crypto.getRandomValues(D),`w_${LL(D,12)}`}var lH=Z(()=>{YF()});var BF,HF,j7,jL,WF,iH;var nH=Z(()=>{yD();BF=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()})]),HF=V.enum(["pending","running","success","failed","pending_approval","denied"]),j7=V.object({inputTokens:V.number().int().nonnegative(),outputTokens:V.number().int().nonnegative()}),jL=V.record(V.unknown()),WF=V.enum(["stop","tool","length","error","cancelled"]),iH=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:BF,status:HF.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:j7}),V.object({type:V.literal("engine_binding"),engine:V.string().min(1),binding:jL.nullable()}),V.object({type:V.literal("finish"),reason:WF,usage:j7.optional()}),V.object({type:V.literal("error"),error:V.string()})])});var sH=Z(()=>{nH()});var J0=Z(()=>{pH();YF();lH();sH()});var s8,VF;var QF=Z(()=>{yD();s8={OPERATOR:"operator",NODE:"node"},VF=V.union([V.literal(s8.OPERATOR),V.literal(s8.NODE)])});function r8(D){let $;try{$=JSON.parse(D)}catch(X){return{ok:!1,error:`invalid_json:${X instanceof Error?X.message:String(X)}`}}let F=DW.safeParse($);if(!F.success)return{ok:!1,error:`schema:${F.error.message}`};return{ok:!0,frame:F.data}}function bD(D){return JSON.stringify(D)}var rH,aH,oH,zL,IL,tH,eH,DW;var $W=Z(()=>{J0();yD();QF();rH=V.object({type:V.literal("connect"),role:VF,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(c2,"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"})}),aH=V.object({type:V.literal("request"),id:V.string().min(1),method:V.string().min(1),params:V.unknown().optional()}),oH=V.object({code:V.string().min(1),message:V.string(),details:V.unknown().optional()}),zL=V.object({type:V.literal("response"),id:V.string().min(1),ok:V.literal(!0),result:V.unknown()}),IL=V.object({type:V.literal("response"),id:V.string().min(1),ok:V.literal(!1),error:oH}),tH=V.discriminatedUnion("ok",[zL,IL]),eH=V.object({type:V.literal("event"),name:V.string().min(1),payload:V.unknown(),ts:V.number().int()}),DW=V.union([rH,aH,tH,eH])});function vD(D){return D}function w7(D){return Object.prototype.hasOwnProperty.call(oD,D)}function K3(D){if(!w7(D))return;return oD[D]}var a8,TL,wL,FW,t1,SL,bL,fL,kL,z7,vL,hL,xL,I7,gL,yL,uL,mL,pL,cL,XW,JW,dL,lL,iL,_F,T7,YW,GW,nL,sL,rL,aL,oD;var BW=Z(()=>{yD();a8=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()}),TL=vD({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(a8)}),routing:"operator-to-gateway"}),wL=vD({method:"workers.info",description:"\u8BFB\u53D6\u67D0\u4E2A worker \u7684\u8FD0\u884C\u65F6\u5FEB\u7167\uFF08/worker/info \u7B49\u4EF7\u7269\uFF09\u3002",params:V.object({workerId:V.string().min(1)}),result:V.unknown(),routing:"operator-to-node"}),FW=V.object({workerBaseUrl:V.string().min(1),bootstrapToken:V.string().min(1),displayName:V.string().optional()}),t1=V.object({workerId:V.string().min(1),deviceToken:V.string().min(1)}),SL=vD({method:"workers.pair",description:"\u628A\u4E00\u4E2A\u5DF2\u542F\u52A8\u7684 worker \u901A\u8FC7 bootstrap token \u6CE8\u518C\u5230 fleet\u3002",params:FW,result:t1,routing:"operator-to-gateway"}),bL=vD({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:t1,routing:"operator-to-gateway"}),fL=vD({method:"workers.stop",description:"\u5411\u76EE\u6807 worker \u4E0B\u53D1\u505C\u6B62\u6307\u4EE4\uFF08\u4E0D\u4ECE fleet \u91CC\u5220\u9664\uFF09\u3002",params:V.object({workerId:V.string().min(1)}),result:V.object({stopped:V.boolean()}),routing:"operator-to-node"}),kL=vD({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"}),z7=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()}),vL=vD({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(z7)}),routing:"operator-to-gateway"}),hL=vD({method:"enroll.approve",description:"\u6279\u51C6\u67D0\u6761 pending OTP enrollment\uFF1Afleet.db \u843D row + \u63A8 enrollment.approved \u4E8B\u4EF6\u7ED9\u7B49\u5F85\u4E2D\u7684 worker\u3002",params:V.object({otp:V.string().min(1)}),result:V.object({workerId:V.string().min(1),deviceToken:V.string().min(1)}),routing:"operator-to-gateway"}),xL=vD({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"}),I7=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()}),gL=vD({method:"audit.list",description:"fleet.db audit_events \u6D4F\u89C8\uFF1A\u6309 id \u5012\u5E8F\u5206\u9875\uFF0C\u53EF\u6309 action \u524D\u7F00 / workerId \u8FC7\u6EE4\u3002",params: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(I7),hasMore:V.boolean()}),routing:"operator-to-gateway"}),yL=vD({method:"chat.send",description:"\u5411\u76EE\u6807 worker \u7684\u67D0\u4F1A\u8BDD\u8FFD\u52A0\u4E00\u6761\u7528\u6237\u6D88\u606F\u5E76\u89E6\u53D1\u4E00\u6B21 run\u3002",params: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"}),uL=vD({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"}),mL=vD({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"}),pL=vD({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"}),cL=vD({method:"logs.tail",description:"\u8BA2\u9605 worker \u7684\u65E5\u5FD7\u5C3E\u90E8\uFF08\u901A\u8FC7\u540E\u7EED logs.line \u4E8B\u4EF6\u63A8\u9001\uFF09\u3002",params: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"}),XW=V.enum(["allow","deny"]),JW=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()}),dL=vD({method:"approval.list",description:"\u5217\u51FA\u76EE\u6807 worker \u5F53\u524D\u6240\u6709\u6302\u8D77\u7684 per-tool \u5BA1\u6279\u8BF7\u6C42\u3002",params:V.object({workerId:V.string().min(1)}),result:V.object({approvals:V.array(JW)}),routing:"operator-to-node"}),lL=vD({method:"approval.grant",description:"\u89E3\u9501\u67D0\u6761\u6302\u8D77\u7684 tool \u5BA1\u6279\uFF1Aallow \u8BA9 orchestrator \u7EE7\u7EED\u6267\u884C\uFF0Cdeny \u7ACB\u5373\u77ED\u8DEF\u3002",params:V.object({workerId:V.string().min(1),taskId:V.string().min(1),toolCallId:V.string().min(1),decision:XW}),result:V.object({granted:V.boolean()}),routing:"operator-to-node"}),iL=vD({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(a8)}),routing:"operator-to-gateway"}),_F=V.enum(["web","line","telegram","lark","whatsapp"]),T7=V.object({id:V.string().min(1),expression:V.string().min(1),prompt:V.string().min(1),channel:_F,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()}),YW=V.object({expression:V.string().min(1),prompt:V.string().min(1),channel:_F,chatId:V.string().min(1),accountId:V.string().min(1).optional(),enabled:V.boolean().optional()}),GW=V.object({expression:V.string().min(1).optional(),prompt:V.string().min(1).optional(),channel:_F.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"}),nL=vD({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(T7)}),routing:"operator-to-node"}),sL=vD({method:"cron.add",description:"\u5728\u76EE\u6807 worker \u4E0A\u65B0\u589E\u4E00\u6761 cron \u4EFB\u52A1\uFF1B\u975E\u6CD5 expression \u76F4\u63A5\u5931\u8D25\u3002",params:V.object({workerId:V.string().min(1),job:YW}),result:V.object({job:T7}),routing:"operator-to-node"}),rL=vD({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"}),aL=vD({method:"cron.update",description:"\u5C40\u90E8\u66F4\u65B0\u76EE\u6807 worker \u4E0A\u67D0\u6761 cron \u4EFB\u52A1\uFF1B\u6539 expression \u6216 enabled \u4F1A\u91CD\u7B97 nextRunAt\u3002",params:V.object({workerId:V.string().min(1),jobId:V.string().min(1),patch:GW}),result:V.object({job:T7}),routing:"operator-to-node"}),oD={"workers.list":TL,"workers.info":wL,"workers.pair":SL,"workers.launch":bL,"workers.stop":fL,"workers.remove":kL,"enroll.list":vL,"enroll.approve":hL,"enroll.reject":xL,"audit.list":gL,"chat.send":yL,"config.get":uL,"config.put":mL,"token.rotate":pL,"logs.tail":cL,"system.presence":iL,"approval.list":dL,"approval.grant":lL,"cron.list":nL,"cron.add":sL,"cron.remove":rL,"cron.update":aL}});var Y0=Z(()=>{mH();$W();BW();QF()});import{statSync as oL}from"fs";import{access as tL,mkdir as eL,stat as Js,writeFile as Dj}from"fs/promises";import{homedir as QW}from"os";import BD from"path";import _W from"process";function WW(D){return D.startsWith("~")?BD.join(QW(),D.slice(1)):D}function VW(D){try{return oL(D).isDirectory()}catch{return!1}}function AF(D){let $=BD.resolve(D??_W.cwd());if(!$)return null;while(!0){let F=BD.join($,e1);if(VW(F))return $;let X=BD.join($,".git");if(VW(X))return null;let J=BD.dirname($);if(J===$)return null;$=J}}function G2(D={}){if(D.explicitHome&&D.explicitHome.length>0)return{scope:"explicit",home:BD.resolve(WW(D.explicitHome)),source:"cli-flag"};let $=_W.env[$j];if($&&$.length>0)return{scope:"explicit",home:BD.resolve(WW($)),source:"env"};if(!D.disableProjectDetect){let F=AF(D.cwd);if(F)return{scope:"project",home:BD.join(F,e1,UF),projectRoot:F,source:"project-detect"}}return{scope:"user",home:BD.resolve(QW(),e1),source:"user-default"}}function B2(){return G2().home}function H2(D){let $=G2();if($.scope==="project"&&$.projectRoot)return BD.join($.projectRoot,e1);return BD.join($.home,"workers",D)}function D6(D){let $=G2();if($.scope==="project"&&$.projectRoot)return BD.join($.projectRoot,e1);return BD.join(H2(D),"brain")}function Fj(D){return BD.join(D6(D),"skills")}function Xj(D){return BD.join(D6(D),"memories")}function KF(D){return BD.join(D6(D),"MEMORY.md")}function S7(D){let $=G2();if($.scope==="project"&&$.projectRoot)return BD.join($.home,"workspaces");return BD.join(H2(D),"workspaces")}function UW(D){return BD.join(H2(D),"config.yaml")}function OF(D){return BD.join(H2(D),"AGENT.md")}function RF(D){return BD.join(H2(D),"SOUL.md")}function EF(D){return BD.join(H2(D),"USER.md")}function AW(D){return BD.join(H2(D),"ROLLUP.md")}function KW(D){return BD.join(H2(D),"mcp.json")}async function k0(D,$){await eL(D,{recursive:!0,...$===void 0?{}:{mode:$}})}async function f0(D,$){try{await tL(D)}catch{await Dj(D,$,{encoding:"utf8"})}}async function CF(D){let $=G2();if($.scope==="project"){await k0($.home,448),await k0(S7(D));return}let F=H2(D);await k0(F),await k0(D6(D)),await k0(Fj(D)),await k0(Xj(D)),await k0(S7(D)),await f0(OF(D),`# Agent ${D}
80
80
 
81
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
82
  `),await f0(RF(D),`# Voice of ${D}
@@ -107,29 +107,29 @@ Fix one of these ways:
107
107
  `),await f0(BD.join(F,".gitignore"),`${UF}/
108
108
  `),await f0(BD.join(X,".gitignore"),`*
109
109
  !.gitignore
110
- `)}var $j="AIWORKER_HOME",e1=".aiworker",UF="local";var W2=()=>{};var x7={};m8(x7,{saveAimState:()=>qF,resolveGatewayPidPath:()=>k7,resolveGatewayLogPath:()=>v7,resolveAimStatePath:()=>ZF,patchAimState:()=>R3,normalizeGatewayWsUrl:()=>O3,loadAimState:()=>h7,gatewayWsUrlForLocalPort:()=>f7,DEFAULT_GATEWAY_URL:()=>KW});import{chmod as Jj,mkdir as Yj,readFile as Gj,rename as Bj,writeFile as Hj}from"fs/promises";import b7 from"path";function f7(D){return`ws://localhost:${D}/ws`}function O3(D){try{let $=new URL(D);if(($.protocol==="ws:"||$.protocol==="wss:")&&($.pathname===""||$.pathname==="/"))return $.pathname="/ws",$.toString()}catch{}return D}function ZF(){return b7.join(B2(),"aim.json")}function k7(){return b7.join(B2(),"aim-gateway.pid")}function v7(){return b7.join(B2(),"aim-gateway.log")}function Wj(){return`op-${crypto.randomUUID()}`}function Vj(){return{gatewayUrl:KW,deviceId:Wj(),deviceToken:""}}function Qj(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 h7(){let D=ZF(),$;try{$=await Gj(D,"utf8")}catch(X){if(X.code==="ENOENT")return Vj();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(!Qj(F))throw Error(`aim.json \u7ED3\u6784\u4E0D\u7B26\u5408 AimState (${D})`);return{...F,gatewayUrl:O3(F.gatewayUrl)}}async function qF(D){let $=ZF();await Yj(b7.dirname($),{recursive:!0});let F=`${$}.tmp`;await Hj(F,`${JSON.stringify(D,null,2)}
111
- `,{encoding:"utf8",mode:384}),await Bj(F,$);try{await Jj($,384)}catch{}}async function R3(D){let F={...await h7()};for(let[X,J]of Object.entries(D)){if(J===void 0)continue;let G=X==="gatewayUrl"&&typeof J==="string"?O3(J):J;F[X]=G}return await qF(F),F}var KW="ws://localhost:9218/ws";var o8=Z(()=>{W2()});function z(D,$){if(!D||typeof D!=="object")return!1;if(D instanceof $)return!0;if(!Object.prototype.hasOwnProperty.call($,L))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(L in F&&F[L]===$[L])return!0;F=Object.getPrototypeOf(F)}return!1}var L;var o=Z(()=>{L=Symbol.for("drizzle:entityKind")});var LW,NF,PF;var g7=Z(()=>{o();LW=class LW{static[L]="ConsoleLogWriter";write(D){console.log(D)}};NF=class NF{static[L]="DefaultLogger";writer;constructor(D){this.writer=D?.writer??new LW}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}`)}};PF=class PF{static[L]="NoopLogger";logQuery(){}}});var z0;var E3=Z(()=>{z0=Symbol.for("drizzle:Name")});function A8(D){return D[z0]}function t8(D){return`${D[y7]??"public"}.${D[z0]}`}var y7,u7,jW,LF,jF,C3,zW,_j,x;var V0=Z(()=>{o();E3();y7=Symbol.for("drizzle:Schema"),u7=Symbol.for("drizzle:Columns"),jW=Symbol.for("drizzle:ExtraConfigColumns"),LF=Symbol.for("drizzle:OriginalName"),jF=Symbol.for("drizzle:BaseName"),C3=Symbol.for("drizzle:IsAlias"),zW=Symbol.for("drizzle:ExtraConfigBuilder"),_j=Symbol.for("drizzle:IsDrizzleTable");x=class x{static[L]="Table";static Symbol={Name:z0,Schema:y7,OriginalName:LF,Columns:u7,ExtraConfigColumns:jW,BaseName:jF,IsAlias:C3,ExtraConfigBuilder:zW};[z0];[LF];[y7];[u7];[jW];[jF];[C3]=!1;[_j]=!0;[zW]=void 0;constructor(D,$,F){this[z0]=this[LF]=D,this[y7]=$,this[jF]=F}}});var OD;var Q2=Z(()=>{o();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[L]="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 zF;var IF=Z(()=>{o();zF=class zF{static[L]="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 IW(D,...$){return D(...$)}var TW=()=>{};function wW(D,$){return`${D[z0]}_${$.join("_")}_unique`}var SW=Z(()=>{E3()});var M3,Uj;var bW=Z(()=>{Q2();o();SW();M3=class M3 extends OD{constructor(D,$){if(!$.uniqueName)$.uniqueName=wW(D,[$.name]);super(D,$);this.table=D}static[L]="PgColumn"};Uj=class Uj extends M3{static[L]="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 kW(D){return!!D&&typeof D==="function"&&fW in D&&D[fW]===!0}var Aj,fW,Kj;var vW=Z(()=>{o();bW();Aj=class Aj extends M3{static[L]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(D,$){super(D,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}};fW=Symbol.for("drizzle:isPgEnum");Kj=class Kj extends M3{static[L]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(D,$){super(D,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}}});var pD,Z3;var _2=Z(()=>{o();pD=class pD{static[L]="Subquery";constructor(D,$,F,X=!1,J=[]){this._={brand:"Subquery",sql:D,selectedFields:$,alias:F,isWith:X,usedTables:J}}};Z3=class Z3 extends pD{static[L]="WithSubquery"}});var hW="0.44.7";var xW=()=>{};var TF,wF,gW;var yW=Z(()=>{TW();xW();gW={startActiveSpan(D,$){if(!TF)return $();if(!wF)wF=TF.trace.getTracer("drizzle-orm",hW);return IW((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()}}),TF,wF)}}});var fD;var d2=Z(()=>{fD=Symbol.for("drizzle:ViewBaseConfig")});function SF(D){return D!==null&&D!==void 0&&typeof D.getSQL==="function"}function Oj(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 uW(D){return typeof D==="object"&&D!==null&&"mapToDriverValue"in D&&typeof D.mapToDriverValue==="function"}function M(D,...$){let F=[];if($.length>0||D.length>0&&D[0]!=="")F.push(new nD(D[0]));for(let[X,J]of $.entries())F.push(J,new nD(D[X+1]));return new m(F)}function q3(D,$){return D.map((F)=>{if(z(F,K8)){if(!(F.name in $))throw Error(`No value for placeholder "${F.name}" was provided`);return $[F.name]}if(z(F,I0)&&z(F.value,K8)){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 nD,m,m7,mW,pW,Vr,I0,K8,Rj,v0;var tD=Z(()=>{o();vW();_2();yW();d2();Q2();V0();nD=class nD{static[L]="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(z($,x)){let F=$[x.Symbol.Schema];this.usedTables.push(F===void 0?$[x.Symbol.Name]:F+"."+$[x.Symbol.Name])}}static[L]="SQL";decoder=mW;shouldInlineParams=!1;usedTables=[];append(D){return this.queryChunks.push(...D.queryChunks),this}toQuery(D){return gW.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 Oj(D.map((W)=>{if(z(W,nD))return{sql:W.value.join(""),params:[]};if(z(W,m7))return{sql:J(W.value),params:[]};if(W===void 0)return{sql:"",params:[]};if(Array.isArray(W)){let Q=[new nD("(")];for(let[_,U]of W.entries())if(Q.push(U),_<W.length-1)Q.push(new nD(", "));return Q.push(new nD(")")),this.buildQueryFromSourceParams(Q,F)}if(z(W,m))return this.buildQueryFromSourceParams(W.queryChunks,{...F,inlineParams:B||W.shouldInlineParams});if(z(W,x)){let Q=W[x.Symbol.Schema],_=W[x.Symbol.Name];return{sql:Q===void 0||W[C3]?J(_):J(Q)+"."+J(_),params:[]}}if(z(W,OD)){let Q=X.getColumnCasing(W);if($.invokeSource==="indexes")return{sql:J(Q),params:[]};let _=W.table[x.Symbol.Schema];return{sql:W.table[C3]||_===void 0?J(W.table[x.Symbol.Name])+"."+J(Q):J(_)+"."+J(W.table[x.Symbol.Name])+"."+J(Q),params:[]}}if(z(W,v0)){let Q=W[fD].schema,_=W[fD].name;return{sql:Q===void 0||W[fD].isAlias?J(_):J(Q)+"."+J(_),params:[]}}if(z(W,I0)){if(z(W.value,K8))return{sql:G(H.value++,W),params:[W],typings:["none"]};let Q=W.value===null?null:W.encoder.mapToDriverValue(W.value);if(z(Q,m))return this.buildQueryFromSourceParams([Q],F);if(B)return{sql:this.mapInlineParam(Q,F),params:[]};let _=["none"];if(Y)_=[Y(W.encoder)];return{sql:G(H.value++,Q),params:[Q],typings:_}}if(z(W,K8))return{sql:G(H.value++,W),params:[W],typings:["none"]};if(z(W,m.Aliased)&&W.fieldAlias!==void 0)return{sql:J(W.fieldAlias),params:[]};if(z(W,pD)){if(W._.isWith)return{sql:J(W._.alias),params:[]};return this.buildQueryFromSourceParams([new nD("("),W._.sql,new nD(") "),new m7(W._.alias)],F)}if(kW(W)){if(W.schema)return{sql:J(W.schema)+"."+J(W.enumName),params:[]};return{sql:J(W.enumName),params:[]}}if(SF(W)){if(W.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([W.getSQL()],F);return this.buildQueryFromSourceParams([new nD("("),W.getSQL(),new nD(")")],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}};m7=class m7{constructor(D){this.value=D}static[L]="Name";brand;getSQL(){return new m([this])}};mW={mapFromDriverValue:(D)=>D},pW={mapToDriverValue:(D)=>D},Vr={...mW,...pW};I0=class I0{constructor(D,$=pW){this.value=D,this.encoder=$}static[L]="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 nD(H)])}D.raw=X;function J(H,W){let Q=[];for(let[_,U]of H.entries()){if(_>0&&W!==void 0)Q.push(W);Q.push(U)}return new m(Q)}D.join=J;function G(H){return new m7(H)}D.identifier=G;function Y(H){return new K8(H)}D.placeholder=Y;function B(H,W){return new I0(H,W)}D.param=B})(M||(M={}));((D)=>{class ${constructor(F,X){this.sql=F,this.fieldAlias=X}static[L]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new $(this.sql,this.fieldAlias)}}D.Aliased=$})(m||(m={}));K8=class K8{constructor(D){this.name=D}static[L]="Placeholder";getSQL(){return new m([this])}};Rj=Symbol.for("drizzle:IsDrizzleView");v0=class v0{static[L]="View";[fD];[Rj]=!0;constructor({name:D,schema:$,selectedFields:F,query:X}){this[fD]={name:D,originalName:D,schema:$,selectedFields:F,query:X,isExisting:!X,isAlias:!1}}getSQL(){return new m([this])}};OD.prototype.getSQL=function(){return new m([this])};x.prototype.getSQL=function(){return new m([this])};pD.prototype.getSQL=function(){return new m([this])}});function bF(D,$,F){let X={},J=D.reduce((G,{path:Y,field:B},H)=>{let W;if(z(B,OD))W=B;else if(z(B,m))W=B.decoder;else W=B.sql.decoder;let Q=G;for(let[_,U]of Y.entries())if(_<Y.length-1){if(!(U in Q))Q[U]={};Q=Q[U]}else{let A=$[H],R=Q[U]=A===null?null:W.mapFromDriverValue(A);if(F&&z(B,OD)&&Y.length===2){let O=Y[0];if(!(O in X))X[O]=R===null?A8(B.table):!1;else if(typeof X[O]==="string"&&X[O]!==A8(B.table))X[O]=!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 h0(D,$){return Object.entries(D).reduce((F,[X,J])=>{if(typeof X!=="string")return F;let G=$?[...$,X]:[X];if(z(J,OD)||z(J,m)||z(J,m.Aliased))F.push({path:G,field:J});else if(z(J,x))F.push(...h0(J[x.Symbol.Columns],G));else F.push(...h0(J,G));return F},[])}function N3(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 p7(D,$){let F=Object.entries($).filter(([,X])=>X!==void 0).map(([X,J])=>{if(z(J,m)||z(J,OD))return[X,J];else return[X,new I0(J,D[x.Symbol.Columns][X])]});if(F.length===0)throw Error("No values to set");return Object.fromEntries(F)}function cW(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 dW(D){return D[x.Symbol.Columns]}function P3(D){return z(D,pD)?D._.alias:z(D,v0)?D[fD].name:z(D,m)?void 0:D[x.Symbol.IsAlias]?D[x.Symbol.Name]:D[x.Symbol.BaseName]}function w2(D,$){return{name:typeof D==="string"&&D.length>0?D:"",config:typeof D==="object"?D:$}}function lW(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 fF;var M0=Z(()=>{Q2();o();tD();_2();V0();d2();fF=typeof TextDecoder>"u"?null:new TextDecoder});var iW,nW,kF;var sW=Z(()=>{o();V0();iW=Symbol.for("drizzle:PgInlineForeignKeys"),nW=Symbol.for("drizzle:EnableRLS");kF=class kF extends x{static[L]="PgTable";static Symbol=Object.assign({},x.Symbol,{InlineForeignKeys:iW,EnableRLS:nW});[iW]=[];[nW]=!1;[x.Symbol.ExtraConfigBuilder]=void 0;[x.Symbol.ExtraConfigColumns]={}}});var vF,rW;var aW=Z(()=>{o();sW();vF=class vF{static[L]="PgPrimaryKeyBuilder";columns;name;constructor(D,$){this.columns=D,this.name=$}build(D){return new rW(D,this.columns,this.name)}};rW=class rW{constructor(D,$,F){this.table=D,this.columns=$,this.name=F}static[L]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[kF.Symbol.Name]}_${this.columns.map((D)=>D.name).join("_")}_pk`}}});function Z0(D,$){if(uW($)&&!SF(D)&&!z(D,I0)&&!z(D,K8)&&!z(D,OD)&&!z(D,x)&&!z(D,v0))return new I0(D,$);return D}function uD(...D){let $=D.filter((F)=>F!==void 0);if($.length===0)return;if($.length===1)return new m($);return new m([new nD("("),M.join($,new nD(" and ")),new nD(")")])}function tW(...D){let $=D.filter((F)=>F!==void 0);if($.length===0)return;if($.length===1)return new m($);return new m([new nD("("),M.join($,new nD(" or ")),new nD(")")])}function eW(D){return M`not ${D}`}function O8(D,$){if(Array.isArray($)){if($.length===0)return M`false`;return M`${D} in ${$.map((F)=>Z0(F,D))}`}return M`${D} in ${Z0($,D)}`}function $V(D,$){if(Array.isArray($)){if($.length===0)return M`true`;return M`${D} not in ${$.map((F)=>Z0(F,D))}`}return M`${D} not in ${Z0($,D)}`}function j3(D){return M`${D} is null`}function FV(D){return M`${D} is not null`}function XV(D){return M`exists ${D}`}function JV(D){return M`not exists ${D}`}function YV(D,$,F){return M`${D} between ${Z0($,D)} and ${Z0(F,D)}`}function GV(D,$,F){return M`${D} not between ${Z0($,D)} and ${Z0(F,D)}`}function BV(D,$){return M`${D} like ${$}`}function HV(D,$){return M`${D} not like ${$}`}function WV(D,$){return M`${D} ilike ${$}`}function VV(D,$){return M`${D} not ilike ${$}`}var v=(D,$)=>{return M`${D} = ${Z0($,D)}`},oW=(D,$)=>{return M`${D} <> ${Z0($,D)}`},L3=(D,$)=>{return M`${D} > ${Z0($,D)}`},DV=(D,$)=>{return M`${D} >= ${Z0($,D)}`},c7=(D,$)=>{return M`${D} < ${Z0($,D)}`},d7=(D,$)=>{return M`${D} <= ${Z0($,D)}`};var QV=Z(()=>{Q2();o();V0();tD()});function S2(D){return M`${D} asc`}function hD(D){return M`${D} desc`}var _V=Z(()=>{tD()});var hF=Z(()=>{QV();_V()});function AV(){return{and:uD,between:YV,eq:v,exists:XV,gt:L3,gte:DV,ilike:WV,inArray:O8,isNull:j3,isNotNull:FV,like:BV,lt:c7,lte:d7,ne:oW,not:eW,notBetween:GV,notExists:JV,notLike:HV,notIlike:VV,notInArray:$V,or:tW,sql:M}}function KV(){return{sql:M,asc:S2,desc:hD}}function OV(D,$){if(Object.keys(D).length===1&&"default"in D&&!z(D.default,x))D=D.default;let F={},X={},J={};for(let[G,Y]of Object.entries(D))if(z(Y,x)){let B=t8(Y),H=X[B];F[B]=G,J[G]={tsName:G,dbName:Y[x.Symbol.Name],schema:Y[x.Symbol.Schema],columns:Y[x.Symbol.Columns],relations:H?.relations??{},primaryKey:H?.primaryKey??[]};for(let Q of Object.values(Y[x.Symbol.Columns]))if(Q.primary)J[G].primaryKey.push(Q);let W=Y[x.Symbol.ExtraConfigBuilder]?.(Y[x.Symbol.ExtraConfigColumns]);if(W){for(let Q of Object.values(W))if(z(Q,vF))J[G].primaryKey.push(...Q.columns)}}else if(z(Y,UV)){let B=t8(Y.table),H=F[B],W=Y.config($(Y.table)),Q;for(let[_,U]of Object.entries(W))if(H){let A=J[H];if(A.relations[_]=U,Q)A.primaryKey.push(...Q)}else{if(!(B in X))X[B]={relations:{},primaryKey:Q};X[B].relations[_]=U}}return{tables:J,tableNamesMap:F}}function Ej(D){return function(F,X){return new R8(D,F,X,X?.fields.reduce((J,G)=>J&&G.notNull,!0)??!1)}}function Cj(D){return function(F,X){return new z3(D,F,X)}}function RV(D,$,F){if(z(F,R8)&&F.config)return{fields:F.config.fields,references:F.config.references};let X=$[t8(F.referencedTable)];if(!X)throw Error(`Table "${F.referencedTable[x.Symbol.Name]}" not found in schema`);let J=D[X];if(!J)throw Error(`Table "${X}" not found in schema`);let G=F.sourceTable,Y=$[t8(G)];if(!Y)throw Error(`Table "${G[x.Symbol.Name]}" not found in schema`);let B=[];for(let H of Object.values(J.relations))if(F.relationName&&F!==H&&H.relationName===F.relationName||!F.relationName&&H.referencedTable===F.sourceTable)B.push(H);if(B.length>1)throw F.relationName?Error(`There are multiple relations with name "${F.relationName}" in table "${X}"`):Error(`There are multiple relations between "${X}" and "${F.sourceTable[x.Symbol.Name]}". Please specify relation name`);if(B[0]&&z(B[0],R8)&&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 EV(D){return{one:Ej(D),many:Cj(D)}}function l7(D,$,F,X,J=(G)=>G){let G={};for(let[Y,B]of X.entries())if(B.isJson){let H=$.relations[B.tsKey],W=F[Y],Q=typeof W==="string"?JSON.parse(W):W;G[B.tsKey]=z(H,R8)?Q&&l7(D,D[B.relationTableTsKey],Q,B.selection,J):Q.map((_)=>l7(D,D[B.relationTableTsKey],_,B.selection,J))}else{let H=J(F[Y]),W=B.field,Q;if(z(W,OD))Q=W;else if(z(W,m))Q=W.decoder;else Q=W.sql.decoder;G[B.tsKey]=H===null?null:Q.mapFromDriverValue(H)}return G}var xF,UV,R8,z3;var I3=Z(()=>{V0();Q2();o();aW();hF();tD();xF=class xF{constructor(D,$,F){this.sourceTable=D,this.referencedTable=$,this.relationName=F,this.referencedTableName=$[x.Symbol.Name]}static[L]="Relation";referencedTableName;fieldName};UV=class UV{constructor(D,$){this.table=D,this.config=$}static[L]="Relations"};R8=class R8 extends xF{constructor(D,$,F,X){super(D,$,F?.relationName);this.config=F,this.isNullable=X}static[L]="One";withFieldName(D){let $=new R8(this.sourceTable,this.referencedTable,this.config,this.isNullable);return $.fieldName=D,$}};z3=class z3 extends xF{constructor(D,$,F){super(D,$,F?.relationName);this.config=F}static[L]="Many";withFieldName(D){let $=new z3(this.sourceTable,this.referencedTable,this.config);return $.fieldName=D,$}}});function i7(D,$){return new Proxy(D,new T3($,!1))}function b2(D,$){return new Proxy(D,new $6(new Proxy(D.table,new T3($,!1))))}function gF(D,$){return new m.Aliased(w3(D.sql,$),D.fieldAlias)}function w3(D,$){return M.join(D.queryChunks.map((F)=>{if(z(F,OD))return b2(F,$);if(z(F,m))return w3(F,$);if(z(F,m.Aliased))return gF(F,$);return F}))}var $6,T3;var n7=Z(()=>{Q2();o();tD();V0();d2();$6=class $6{constructor(D){this.table=D}static[L]="ColumnAliasProxyHandler";get(D,$){if($==="table")return this.table;return D[$]}};T3=class T3{constructor(D,$){this.alias=D,this.replaceOriginalName=$}static[L]="TableAliasProxyHandler";get(D,$){if($===x.Symbol.IsAlias)return!0;if($===x.Symbol.Name)return this.alias;if(this.replaceOriginalName&&$===x.Symbol.OriginalName)return this.alias;if($===fD)return{...D[fD],name:this.alias,isAlias:!0};if($===x.Symbol.Columns){let X=D[x.Symbol.Columns];if(!X)return X;let J={};return Object.keys(X).map((G)=>{J[G]=new Proxy(X[G],new $6(new Proxy(D,this)))}),J}let F=D[$];if(z(F,OD))return new Proxy(F,new $6(new Proxy(D,this)));return F}}});var cD;var F6=Z(()=>{n7();Q2();o();tD();_2();d2();cD=class cD{static[L]="SelectionProxyHandler";config;constructor(D){this.config={...D}}get(D,$){if($==="_")return{...D._,selectedFields:new Proxy(D._.selectedFields,this)};if($===fD)return{...D[fD],selectedFields:new Proxy(D[fD].selectedFields,this)};if(typeof $==="symbol")return D[$];let X=(z(D,pD)?D._.selectedFields:z(D,v0)?D[fD].selectedFields:D)[$];if(z(X,m.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!X.isSelectionField)return X.sql;let J=X.clone();return J.isSelectionField=!0,J}if(z(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(z(X,OD)){if(this.config.alias)return new Proxy(X,new $6(new Proxy(X.table,new T3(this.config.alias,this.config.replaceOriginalName??!1))));return X}if(typeof X!=="object"||X===null)return X;return new Proxy(X,new cD(this.config))}}});var E0;var l2=Z(()=>{o();E0=class E0{static[L]="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 yF,CV;var uF=Z(()=>{o();E3();yF=class yF{static[L]="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 CV(D,this)}};CV=class CV{constructor(D,$){this.table=D,this.reference=$.reference,this.onUpdate=$._onUpdate,this.onDelete=$._onDelete}static[L]="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[z0],...X,F[0].table[z0],...J];return D??`${G.join("_")}_fk`}}});function MV(D,$){return`${D[z0]}_${$.join("_")}_unique`}var mF=Z(()=>{E3()});var eD,xD;var E8=Z(()=>{IF();Q2();o();uF();mF();eD=class eD extends zF{static[L]="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 yF(()=>{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)})}};xD=class xD extends OD{constructor(D,$){if(!$.uniqueName)$.uniqueName=MV(D,[$.name]);super(D,$);this.table=D}static[L]="SQLiteColumn"}});function zV(D,$){let{name:F,config:X}=w2(D,$);if(X?.mode==="json")return new NV(F);if(X?.mode==="bigint")return new ZV(F);return new LV(F)}var ZV,qV,NV,PV,LV,jV;var pF=Z(()=>{o();M0();E8();ZV=class ZV extends eD{static[L]="SQLiteBigIntBuilder";constructor(D){super(D,"bigint","SQLiteBigInt")}build(D){return new qV(D,this.config)}};qV=class qV extends xD{static[L]="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(fF.decode(D))}mapToDriverValue(D){return Buffer.from(D.toString())}};NV=class NV extends eD{static[L]="SQLiteBlobJsonBuilder";constructor(D){super(D,"json","SQLiteBlobJson")}build(D){return new PV(D,this.config)}};PV=class PV extends xD{static[L]="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(fF.decode(D))}mapToDriverValue(D){return Buffer.from(JSON.stringify(D))}};LV=class LV extends eD{static[L]="SQLiteBlobBufferBuilder";constructor(D){super(D,"buffer","SQLiteBlobBuffer")}build(D){return new jV(D,this.config)}};jV=class jV extends xD{static[L]="SQLiteBlobBuffer";mapFromDriverValue(D){if(Buffer.isBuffer(D))return D;return Buffer.from(D)}getSQLType(){return"blob"}}});function wV(D){return($,F)=>{let{name:X,config:J}=w2($,F);return new IV(X,J,D)}}var IV,TV;var cF=Z(()=>{o();M0();E8();IV=class IV extends eD{static[L]="SQLiteCustomColumnBuilder";constructor(D,$,F){super(D,"custom","SQLiteCustomColumn");this.config.fieldConfig=$,this.config.customTypeParams=F}build(D){return new TV(D,this.config)}};TV=class TV extends xD{static[L]="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 ID(D,$){let{name:F,config:X}=w2(D,$);if(X?.mode==="timestamp"||X?.mode==="timestamp_ms")return new fV(F,X.mode);if(X?.mode==="boolean")return new vV(F,X.mode);return new SV(F)}var s7,r7,SV,bV,fV,kV,vV,hV;var dF=Z(()=>{o();tD();M0();E8();s7=class s7 extends eD{static[L]="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()}};r7=class r7 extends xD{static[L]="SQLiteBaseInteger";autoIncrement=this.config.autoIncrement;getSQLType(){return"integer"}};SV=class SV extends s7{static[L]="SQLiteIntegerBuilder";constructor(D){super(D,"number","SQLiteInteger")}build(D){return new bV(D,this.config)}};bV=class bV extends r7{static[L]="SQLiteInteger"};fV=class fV extends s7{static[L]="SQLiteTimestampBuilder";constructor(D,$){super(D,"date","SQLiteTimestamp");this.config.mode=$}defaultNow(){return this.default(M`(cast((julianday('now') - 2440587.5)*86400000 as integer))`)}build(D){return new kV(D,this.config)}};kV=class kV extends r7{static[L]="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 $}};vV=class vV extends s7{static[L]="SQLiteBooleanBuilder";constructor(D,$){super(D,"boolean","SQLiteBoolean");this.config.mode=$}build(D){return new hV(D,this.config)}};hV=class hV extends r7{static[L]="SQLiteBoolean";mode=this.config.mode;mapFromDriverValue(D){return Number(D)===1}mapToDriverValue(D){return D?1:0}}});function cV(D,$){let{name:F,config:X}=w2(D,$),J=X?.mode;return J==="number"?new yV(F):J==="bigint"?new mV(F):new xV(F)}var xV,gV,yV,uV,mV,pV;var lF=Z(()=>{o();M0();E8();xV=class xV extends eD{static[L]="SQLiteNumericBuilder";constructor(D){super(D,"string","SQLiteNumeric")}build(D){return new gV(D,this.config)}};gV=class gV extends xD{static[L]="SQLiteNumeric";mapFromDriverValue(D){if(typeof D==="string")return D;return String(D)}getSQLType(){return"numeric"}};yV=class yV extends eD{static[L]="SQLiteNumericNumberBuilder";constructor(D){super(D,"number","SQLiteNumericNumber")}build(D){return new uV(D,this.config)}};uV=class uV extends xD{static[L]="SQLiteNumericNumber";mapFromDriverValue(D){if(typeof D==="number")return D;return Number(D)}mapToDriverValue=String;getSQLType(){return"numeric"}};mV=class mV extends eD{static[L]="SQLiteNumericBigIntBuilder";constructor(D){super(D,"bigint","SQLiteNumericBigInt")}build(D){return new pV(D,this.config)}};pV=class pV extends xD{static[L]="SQLiteNumericBigInt";mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){return"numeric"}}});function iV(D){return new dV(D??"")}var dV,lV;var iF=Z(()=>{o();E8();dV=class dV extends eD{static[L]="SQLiteRealBuilder";constructor(D){super(D,"number","SQLiteReal")}build(D){return new lV(D,this.config)}};lV=class lV extends xD{static[L]="SQLiteReal";getSQLType(){return"real"}}});function I(D,$={}){let{name:F,config:X}=w2(D,$);if(X.mode==="json")return new rV(F);return new nV(F,X)}var nV,sV,rV,aV;var nF=Z(()=>{o();M0();E8();nV=class nV extends eD{static[L]="SQLiteTextBuilder";constructor(D,$){super(D,"string","SQLiteText");this.config.enumValues=$.enum,this.config.length=$.length}build(D){return new sV(D,this.config)}};sV=class sV extends xD{static[L]="SQLiteText";enumValues=this.config.enumValues;length=this.config.length;constructor(D,$){super(D,$)}getSQLType(){return`text${this.config.length?`(${this.config.length})`:""}`}};rV=class rV extends eD{static[L]="SQLiteTextJsonBuilder";constructor(D){super(D,"json","SQLiteTextJson")}build(D){return new aV(D,this.config)}};aV=class aV extends xD{static[L]="SQLiteTextJson";getSQLType(){return"text"}mapFromDriverValue(D){return JSON.parse(D)}mapToDriverValue(D){return JSON.stringify(D)}}});function oV(){return{blob:zV,customType:wV,integer:ID,numeric:cV,real:iV,text:I}}var tV=Z(()=>{pF();cF();dF();lF();iF();nF()});function Mj(D,$,F,X,J=D){let G=new D0(D,X,J),Y=typeof $==="function"?$(oV()):$,B=Object.fromEntries(Object.entries(Y).map(([W,Q])=>{let _=Q;_.setName(W);let U=_.build(G);return G[sF].push(..._.buildForeignKeys(U,G)),[W,U]})),H=Object.assign(G,B);if(H[x.Symbol.Columns]=B,H[x.Symbol.ExtraConfigColumns]=B,F)H[D0.Symbol.ExtraConfigBuilder]=F;return H}var sF,D0,Q0=(D,$,F)=>{return Mj(D,$,F)};var e8=Z(()=>{o();V0();tV();sF=Symbol.for("drizzle:SQLiteInlineForeignKeys");D0=class D0 extends x{static[L]="SQLiteTable";static Symbol=Object.assign({},x.Symbol,{InlineForeignKeys:sF});[x.Symbol.Columns];[sF]=[];[x.Symbol.ExtraConfigBuilder]=void 0}});var eV=()=>{};function x0(D){return new rF(D,!1)}function FQ(D){return new rF(D,!0)}var rF,DQ,$Q;var XQ=Z(()=>{o();rF=class rF{constructor(D,$){this.name=D,this.unique=$}static[L]="SQLiteIndexBuilderOn";on(...D){return new DQ(this.name,D,this.unique)}};DQ=class DQ{static[L]="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 $Q(this.config,D)}};$Q=class $Q{static[L]="SQLiteIndex";config;constructor(D,$){this.config={...D,table:$}}}});var JQ=()=>{};function U2(D){if(z(D,D0))return[`${D[x.Symbol.BaseName]}`];if(z(D,pD))return D._.usedTables??[];if(z(D,m))return D.usedTables??[];return[]}var X6=Z(()=>{o();tD();_2();V0();e8()});var a7;var YQ=Z(()=>{o();l2();F6();e8();V0();M0();X6();a7=class a7 extends E0{constructor(D,$,F,X){super();this.table=D,this.session=$,this.dialect=F,this.config={table:D,withList:X}}static[L]="SQLiteDelete";config;where(D){return this.config.where=D,this}orderBy(...D){if(typeof D[0]==="function"){let $=D[0](new Proxy(this.config.table[x.Symbol.Columns],new cD({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[D0.Symbol.Columns]){return this.config.returning=h0(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:U2(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 Zj(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 Nj(D){return D}var aF;var GQ=Z(()=>{o();V0();aF=class aF{static[L]="CasingCache";cache={};cachedTables={};convert;constructor(D){this.convert=D==="snake_case"?Zj:D==="camelCase"?qj:Nj}getColumnCasing(D){if(!D.keyAsName)return D.name;let $=D.table[x.Symbol.Schema]??"public",F=D.table[x.Symbol.OriginalName],X=`${$}.${F}.${D.name}`;if(!this.cache[X])this.cacheTable(D.table);return this.cache[X]}cacheTable(D){let $=D[x.Symbol.Schema]??"public",F=D[x.Symbol.OriginalName],X=`${$}.${F}`;if(!this.cachedTables[X]){for(let J of Object.values(D[x.Symbol.Columns])){let G=`${X}.${J.name}`;this.cache[G]=this.convert(J.name)}this.cachedTables[X]=!0}}clearCache(){this.cache={},this.cachedTables={}}}});var J6,i2,oF;var o7=Z(()=>{o();J6=class J6 extends Error{static[L]="DrizzleError";constructor({message:D,cause:$}){super(D);this.name="DrizzleError",this.cause=$}};i2=class i2 extends Error{constructor(D,$,F){super(`Failed query: ${D}
112
- params: ${$}`);if(this.query=D,this.params=$,this.cause=F,Error.captureStackTrace(this,i2),F)this.cause=F}};oF=class oF extends J6{static[L]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}});function t7(D){return M`count(${D||M.raw("*")})`.mapWith(Number)}var BQ=Z(()=>{tD()});var HQ=()=>{};var WQ=Z(()=>{BQ();HQ()});var tF=Z(()=>{hF();WQ();tD()});var eF=Z(()=>{pF();E8();cF();dF();lF();iF();nF()});var D1;var e7=Z(()=>{o();tD();D1=class D1 extends v0{static[L]="SQLiteViewBase"}});var S3,b3;var D4=Z(()=>{n7();GQ();Q2();o();o7();I3();tF();tD();eF();e8();_2();V0();M0();d2();e7();S3=class S3{static[L]="SQLiteDialect";casing;constructor(D){this.casing=new aF(D?.casing)}escapeName(D){return`"${D}"`}escapeParam(D){return"?"}escapeString(D){return`'${D.replace(/'/g,"''")}'`}buildWithCTE(D){if(!D?.length)return;let $=[M`with `];for(let[F,X]of D.entries())if($.push(M`${M.identifier(X._.alias)} as (${X._.sql})`),F<D.length-1)$.push(M`, `);return $.push(M` `),M.join($)}buildDeleteQuery({table:D,where:$,returning:F,withList:X,limit:J,orderBy:G}){let Y=this.buildWithCTE(X),B=F?M` returning ${this.buildSelection(F,{isSingleTable:!0})}`:void 0,H=$?M` where ${$}`:void 0,W=this.buildOrderBy(G),Q=this.buildLimit(J);return M`${Y}delete from ${D}${H}${B}${W}${Q}`}buildUpdateSet(D,$){let F=D[x.Symbol.Columns],X=Object.keys(F).filter((G)=>$[G]!==void 0||F[G]?.onUpdateFn!==void 0),J=X.length;return M.join(X.flatMap((G,Y)=>{let B=F[G],H=$[G]??M.param(B.onUpdateFn(),B),W=M`${M.identifier(this.casing.getColumnCasing(B))} = ${H}`;if(Y<J-1)return[W,M.raw(", ")];return[W]}))}buildUpdateQuery({table:D,set:$,where:F,returning:X,withList:J,joins:G,from:Y,limit:B,orderBy:H}){let W=this.buildWithCTE(J),Q=this.buildUpdateSet(D,$),_=Y&&M.join([M.raw(" from "),this.buildFromTable(Y)]),U=this.buildJoins(G),A=X?M` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,R=F?M` where ${F}`:void 0,O=this.buildOrderBy(H),K=this.buildLimit(B);return M`${W}update ${D} set ${Q}${_}${U}${R}${A}${O}${K}`}buildSelection(D,{isSingleTable:$=!1}={}){let F=D.length,X=D.flatMap(({field:J},G)=>{let Y=[];if(z(J,m.Aliased)&&J.isSelectionField)Y.push(M.identifier(J.fieldAlias));else if(z(J,m.Aliased)||z(J,m)){let B=z(J,m.Aliased)?J.sql:J;if($)Y.push(new m(B.queryChunks.map((H)=>{if(z(H,OD))return M.identifier(this.casing.getColumnCasing(H));return H})));else Y.push(B);if(z(J,m.Aliased))Y.push(M` as ${M.identifier(J.fieldAlias)}`)}else if(z(J,OD)){let B=J.table[x.Symbol.Name];if(J.columnType==="SQLiteNumericBigInt")if($)Y.push(M`cast(${M.identifier(this.casing.getColumnCasing(J))} as text)`);else Y.push(M`cast(${M.identifier(B)}.${M.identifier(this.casing.getColumnCasing(J))} as text)`);else if($)Y.push(M.identifier(this.casing.getColumnCasing(J)));else Y.push(M`${M.identifier(B)}.${M.identifier(this.casing.getColumnCasing(J))}`)}if(G<F-1)Y.push(M`, `);return Y});return M.join(X)}buildJoins(D){if(!D||D.length===0)return;let $=[];if(D)for(let[F,X]of D.entries()){if(F===0)$.push(M` `);let J=X.table,G=X.on?M` on ${X.on}`:void 0;if(z(J,D0)){let Y=J[D0.Symbol.Name],B=J[D0.Symbol.Schema],H=J[D0.Symbol.OriginalName],W=Y===H?void 0:X.alias;$.push(M`${M.raw(X.joinType)} join ${B?M`${M.identifier(B)}.`:void 0}${M.identifier(H)}${W&&M` ${M.identifier(W)}`}${G}`)}else $.push(M`${M.raw(X.joinType)} join ${J}${G}`);if(F<D.length-1)$.push(M` `)}return M.join($)}buildLimit(D){return typeof D==="object"||typeof D==="number"&&D>=0?M` limit ${D}`:void 0}buildOrderBy(D){let $=[];if(D){for(let[F,X]of D.entries())if($.push(X),F<D.length-1)$.push(M`, `)}return $.length>0?M` order by ${M.join($)}`:void 0}buildFromTable(D){if(z(D,x)&&D[x.Symbol.IsAlias])return M`${M`${M.identifier(D[x.Symbol.Schema]??"")}.`.if(D[x.Symbol.Schema])}${M.identifier(D[x.Symbol.OriginalName])} ${M.identifier(D[x.Symbol.Name])}`;return D}buildSelectQuery({withList:D,fields:$,fieldsFlat:F,where:X,having:J,table:G,joins:Y,orderBy:B,groupBy:H,limit:W,offset:Q,distinct:_,setOperators:U}){let A=F??h0($);for(let $D of A)if(z($D.field,OD)&&A8($D.field.table)!==(z(G,pD)?G._.alias:z(G,D1)?G[fD].name:z(G,m)?void 0:A8(G))&&!((rD)=>Y?.some(({alias:L2})=>L2===(rD[x.Symbol.IsAlias]?A8(rD):rD[x.Symbol.BaseName])))($D.field.table)){let rD=A8($D.field.table);throw Error(`Your "${$D.path.join("->")}" field references a column "${rD}"."${$D.field.name}", but the table "${rD}" is not part of the query! Did you forget to join it?`)}let R=!Y||Y.length===0,O=this.buildWithCTE(D),K=_?M` distinct`:void 0,E=this.buildSelection(A,{isSingleTable:R}),q=this.buildFromTable(G),N=this.buildJoins(Y),S=X?M` where ${X}`:void 0,b=J?M` having ${J}`:void 0,P=[];if(H){for(let[$D,rD]of H.entries())if(P.push(rD),$D<H.length-1)P.push(M`, `)}let T=P.length>0?M` group by ${M.join(P)}`:void 0,j=this.buildOrderBy(B),s=this.buildLimit(W),UD=Q?M` offset ${Q}`:void 0,VD=M`${O}select${K} ${E} from ${q}${N}${S}${T}${b}${j}${s}${UD}`;if(U.length>0)return this.buildSetOperations(VD,U);return VD}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=M`${D.getSQL()} `,H=M`${X.getSQL()}`,W;if(G&&G.length>0){let A=[];for(let R of G)if(z(R,xD))A.push(M.identifier(R.name));else if(z(R,m)){for(let O=0;O<R.queryChunks.length;O++){let K=R.queryChunks[O];if(z(K,xD))R.queryChunks[O]=M.identifier(this.casing.getColumnCasing(K))}A.push(M`${R}`)}else A.push(M`${R}`);W=M` order by ${M.join(A,M`, `)}`}let Q=typeof J==="object"||typeof J==="number"&&J>=0?M` limit ${J}`:void 0,_=M.raw(`${$} ${F?"all ":""}`),U=Y?M` offset ${Y}`:void 0;return M`${B}${_}${H}${W}${Q}${U}`}buildInsertQuery({table:D,values:$,onConflict:F,returning:X,withList:J,select:G}){let Y=[],B=D[x.Symbol.Columns],H=Object.entries(B).filter(([R,O])=>!O.shouldDisableInsert()),W=H.map(([,R])=>M.identifier(this.casing.getColumnCasing(R)));if(G){let R=$;if(z(R,m))Y.push(R);else Y.push(R.getSQL())}else{let R=$;Y.push(M.raw("values "));for(let[O,K]of R.entries()){let E=[];for(let[q,N]of H){let S=K[q];if(S===void 0||z(S,I0)&&S.value===void 0){let b;if(N.default!==null&&N.default!==void 0)b=z(N.default,m)?N.default:M.param(N.default,N);else if(N.defaultFn!==void 0){let P=N.defaultFn();b=z(P,m)?P:M.param(P,N)}else if(!N.default&&N.onUpdateFn!==void 0){let P=N.onUpdateFn();b=z(P,m)?P:M.param(P,N)}else b=M`null`;E.push(b)}else E.push(S)}if(Y.push(E),O<R.length-1)Y.push(M`, `)}}let Q=this.buildWithCTE(J),_=M.join(Y),U=X?M` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,A=F?.length?M.join(F):void 0;return M`${Q}insert into ${D} ${W} ${_}${A}${U}`}sqlToQuery(D,$){return D.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,invokeSource:$})}buildRelationalQuery({fullSchema:D,schema:$,tableNamesMap:F,table:X,tableConfig:J,queryConfig:G,tableAlias:Y,nestedQueryRelation:B,joinOn:H}){let W=[],Q,_,U=[],A,R=[];if(G===!0)W=Object.entries(J.columns).map(([E,q])=>({dbKey:q.name,tsKey:E,field:b2(q,Y),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let K=Object.fromEntries(Object.entries(J.columns).map(([P,T])=>[P,b2(T,Y)]));if(G.where){let P=typeof G.where==="function"?G.where(K,AV()):G.where;A=P&&w3(P,Y)}let E=[],q=[];if(G.columns){let P=!1;for(let[T,j]of Object.entries(G.columns)){if(j===void 0)continue;if(T in J.columns){if(!P&&j===!0)P=!0;q.push(T)}}if(q.length>0)q=P?q.filter((T)=>G.columns?.[T]===!0):Object.keys(J.columns).filter((T)=>!q.includes(T))}else q=Object.keys(J.columns);for(let P of q){let T=J.columns[P];E.push({tsKey:P,value:T})}let N=[];if(G.with)N=Object.entries(G.with).filter((P)=>!!P[1]).map(([P,T])=>({tsKey:P,queryConfig:T,relation:J.relations[P]}));let S;if(G.extras){S=typeof G.extras==="function"?G.extras(K,{sql:M}):G.extras;for(let[P,T]of Object.entries(S))E.push({tsKey:P,value:gF(T,Y)})}for(let{tsKey:P,value:T}of E)W.push({dbKey:z(T,m.Aliased)?T.fieldAlias:J.columns[P].name,tsKey:P,field:z(T,OD)?b2(T,Y):T,relationTableTsKey:void 0,isJson:!1,selection:[]});let b=typeof G.orderBy==="function"?G.orderBy(K,KV()):G.orderBy??[];if(!Array.isArray(b))b=[b];U=b.map((P)=>{if(z(P,OD))return b2(P,Y);return w3(P,Y)}),Q=G.limit,_=G.offset;for(let{tsKey:P,queryConfig:T,relation:j}of N){let s=RV($,F,j),UD=t8(j.referencedTable),VD=F[UD],$D=`${Y}_${P}`,rD=uD(...s.fields.map((oZ,tZ)=>v(b2(s.references[tZ],$D),b2(oZ,Y)))),L2=this.buildRelationalQuery({fullSchema:D,schema:$,tableNamesMap:F,table:D[VD],tableConfig:$[VD],queryConfig:z(j,R8)?T===!0?{limit:1}:{...T,limit:1}:T,tableAlias:$D,joinOn:rD,nestedQueryRelation:j}),aZ=M`(${L2.sql})`.as(P);W.push({dbKey:P,tsKey:P,field:aZ,relationTableTsKey:VD,isJson:!0,selection:L2.selection})}}if(W.length===0)throw new J6({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 O;if(A=uD(H,A),B){let K=M`json_array(${M.join(W.map(({field:N})=>z(N,xD)?M.identifier(this.casing.getColumnCasing(N)):z(N,m.Aliased)?N.sql:N),M`, `)})`;if(z(B,z3))K=M`coalesce(json_group_array(${K}), json_array())`;let E=[{dbKey:"data",tsKey:"data",field:K.as("data"),isJson:!0,relationTableTsKey:J.tsName,selection:W}];if(Q!==void 0||_!==void 0||U.length>0)O=this.buildSelectQuery({table:i7(X,Y),fields:{},fieldsFlat:[{path:[],field:M.raw("*")}],where:A,limit:Q,offset:_,orderBy:U,setOperators:[]}),A=void 0,Q=void 0,_=void 0,U=void 0;else O=i7(X,Y);O=this.buildSelectQuery({table:z(O,D0)?O:new pD(O,{},Y),fields:{},fieldsFlat:E.map(({field:N})=>({path:[],field:z(N,OD)?b2(N,Y):N})),joins:R,where:A,limit:Q,offset:_,orderBy:U,setOperators:[]})}else O=this.buildSelectQuery({table:i7(X,Y),fields:{},fieldsFlat:W.map(({field:K})=>({path:[],field:z(K,OD)?b2(K,Y):K})),joins:R,where:A,limit:Q,offset:_,orderBy:U,setOperators:[]});return{tableTsKey:J.tsName,sql:O,selection:W}}};b3=class b3 extends S3{static[L]="SQLiteSyncDialect";migrate(D,$,F){let X=F===void 0?"__drizzle_migrations":typeof F==="string"?"__drizzle_migrations":F.migrationsTable??"__drizzle_migrations",J=M`
110
+ `)}var $j="AIWORKER_HOME",e1=".aiworker",UF="local";var W2=()=>{};var x7={};m8(x7,{saveAimState:()=>qF,resolveGatewayPidPath:()=>k7,resolveGatewayLogPath:()=>v7,resolveAimStatePath:()=>ZF,patchAimState:()=>R3,normalizeGatewayWsUrl:()=>O3,loadAimState:()=>h7,gatewayWsUrlForLocalPort:()=>f7,DEFAULT_GATEWAY_URL:()=>OW});import{chmod as Jj,mkdir as Yj,readFile as Gj,rename as Bj,writeFile as Hj}from"fs/promises";import b7 from"path";function f7(D){return`ws://localhost:${D}/ws`}function O3(D){try{let $=new URL(D);if(($.protocol==="ws:"||$.protocol==="wss:")&&($.pathname===""||$.pathname==="/"))return $.pathname="/ws",$.toString()}catch{}return D}function ZF(){return b7.join(B2(),"aim.json")}function k7(){return b7.join(B2(),"aim-gateway.pid")}function v7(){return b7.join(B2(),"aim-gateway.log")}function Wj(){return`op-${crypto.randomUUID()}`}function Vj(){return{gatewayUrl:OW,deviceId:Wj(),deviceToken:""}}function Qj(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 h7(){let D=ZF(),$;try{$=await Gj(D,"utf8")}catch(X){if(X.code==="ENOENT")return Vj();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(!Qj(F))throw Error(`aim.json \u7ED3\u6784\u4E0D\u7B26\u5408 AimState (${D})`);return{...F,gatewayUrl:O3(F.gatewayUrl)}}async function qF(D){let $=ZF();await Yj(b7.dirname($),{recursive:!0});let F=`${$}.tmp`;await Hj(F,`${JSON.stringify(D,null,2)}
111
+ `,{encoding:"utf8",mode:384}),await Bj(F,$);try{await Jj($,384)}catch{}}async function R3(D){let F={...await h7()};for(let[X,J]of Object.entries(D)){if(J===void 0)continue;let G=X==="gatewayUrl"&&typeof J==="string"?O3(J):J;F[X]=G}return await qF(F),F}var OW="ws://localhost:9218/ws";var o8=Z(()=>{W2()});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 o=Z(()=>{P=Symbol.for("drizzle:entityKind")});var jW,NF,PF;var g7=Z(()=>{o();jW=class jW{static[P]="ConsoleLogWriter";write(D){console.log(D)}};NF=class NF{static[P]="DefaultLogger";writer;constructor(D){this.writer=D?.writer??new jW}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}`)}};PF=class PF{static[P]="NoopLogger";logQuery(){}}});var z0;var E3=Z(()=>{z0=Symbol.for("drizzle:Name")});function A8(D){return D[z0]}function t8(D){return`${D[y7]??"public"}.${D[z0]}`}var y7,u7,zW,LF,jF,C3,IW,_j,x;var V0=Z(()=>{o();E3();y7=Symbol.for("drizzle:Schema"),u7=Symbol.for("drizzle:Columns"),zW=Symbol.for("drizzle:ExtraConfigColumns"),LF=Symbol.for("drizzle:OriginalName"),jF=Symbol.for("drizzle:BaseName"),C3=Symbol.for("drizzle:IsAlias"),IW=Symbol.for("drizzle:ExtraConfigBuilder"),_j=Symbol.for("drizzle:IsDrizzleTable");x=class x{static[P]="Table";static Symbol={Name:z0,Schema:y7,OriginalName:LF,Columns:u7,ExtraConfigColumns:zW,BaseName:jF,IsAlias:C3,ExtraConfigBuilder:IW};[z0];[LF];[y7];[u7];[zW];[jF];[C3]=!1;[_j]=!0;[IW]=void 0;constructor(D,$,F){this[z0]=this[LF]=D,this[y7]=$,this[jF]=F}}});var OD;var Q2=Z(()=>{o();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 zF;var IF=Z(()=>{o();zF=class zF{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 TW(D,...$){return D(...$)}var wW=()=>{};function SW(D,$){return`${D[z0]}_${$.join("_")}_unique`}var bW=Z(()=>{E3()});var M3,Uj;var fW=Z(()=>{Q2();o();bW();M3=class M3 extends OD{constructor(D,$){if(!$.uniqueName)$.uniqueName=SW(D,[$.name]);super(D,$);this.table=D}static[P]="PgColumn"};Uj=class Uj extends M3{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 vW(D){return!!D&&typeof D==="function"&&kW in D&&D[kW]===!0}var Aj,kW,Kj;var hW=Z(()=>{o();fW();Aj=class Aj extends M3{static[P]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(D,$){super(D,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}};kW=Symbol.for("drizzle:isPgEnum");Kj=class Kj extends M3{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 pD,Z3;var _2=Z(()=>{o();pD=class pD{static[P]="Subquery";constructor(D,$,F,X=!1,J=[]){this._={brand:"Subquery",sql:D,selectedFields:$,alias:F,isWith:X,usedTables:J}}};Z3=class Z3 extends pD{static[P]="WithSubquery"}});var xW="0.44.7";var gW=()=>{};var TF,wF,yW;var uW=Z(()=>{wW();gW();yW={startActiveSpan(D,$){if(!TF)return $();if(!wF)wF=TF.trace.getTracer("drizzle-orm",xW);return TW((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()}}),TF,wF)}}});var fD;var d2=Z(()=>{fD=Symbol.for("drizzle:ViewBaseConfig")});function SF(D){return D!==null&&D!==void 0&&typeof D.getSQL==="function"}function Oj(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 mW(D){return typeof D==="object"&&D!==null&&"mapToDriverValue"in D&&typeof D.mapToDriverValue==="function"}function M(D,...$){let F=[];if($.length>0||D.length>0&&D[0]!=="")F.push(new nD(D[0]));for(let[X,J]of $.entries())F.push(J,new nD(D[X+1]));return new m(F)}function q3(D,$){return D.map((F)=>{if(I(F,K8)){if(!(F.name in $))throw Error(`No value for placeholder "${F.name}" was provided`);return $[F.name]}if(I(F,I0)&&I(F.value,K8)){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 nD,m,m7,pW,cW,Qr,I0,K8,Rj,v0;var tD=Z(()=>{o();hW();_2();uW();d2();Q2();V0();nD=class nD{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($,x)){let F=$[x.Symbol.Schema];this.usedTables.push(F===void 0?$[x.Symbol.Name]:F+"."+$[x.Symbol.Name])}}static[P]="SQL";decoder=pW;shouldInlineParams=!1;usedTables=[];append(D){return this.queryChunks.push(...D.queryChunks),this}toQuery(D){return yW.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 Oj(D.map((W)=>{if(I(W,nD))return{sql:W.value.join(""),params:[]};if(I(W,m7))return{sql:J(W.value),params:[]};if(W===void 0)return{sql:"",params:[]};if(Array.isArray(W)){let Q=[new nD("(")];for(let[_,U]of W.entries())if(Q.push(U),_<W.length-1)Q.push(new nD(", "));return Q.push(new nD(")")),this.buildQueryFromSourceParams(Q,F)}if(I(W,m))return this.buildQueryFromSourceParams(W.queryChunks,{...F,inlineParams:B||W.shouldInlineParams});if(I(W,x)){let Q=W[x.Symbol.Schema],_=W[x.Symbol.Name];return{sql:Q===void 0||W[C3]?J(_):J(Q)+"."+J(_),params:[]}}if(I(W,OD)){let Q=X.getColumnCasing(W);if($.invokeSource==="indexes")return{sql:J(Q),params:[]};let _=W.table[x.Symbol.Schema];return{sql:W.table[C3]||_===void 0?J(W.table[x.Symbol.Name])+"."+J(Q):J(_)+"."+J(W.table[x.Symbol.Name])+"."+J(Q),params:[]}}if(I(W,v0)){let Q=W[fD].schema,_=W[fD].name;return{sql:Q===void 0||W[fD].isAlias?J(_):J(Q)+"."+J(_),params:[]}}if(I(W,I0)){if(I(W.value,K8))return{sql:G(H.value++,W),params:[W],typings:["none"]};let Q=W.value===null?null:W.encoder.mapToDriverValue(W.value);if(I(Q,m))return this.buildQueryFromSourceParams([Q],F);if(B)return{sql:this.mapInlineParam(Q,F),params:[]};let _=["none"];if(Y)_=[Y(W.encoder)];return{sql:G(H.value++,Q),params:[Q],typings:_}}if(I(W,K8))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,pD)){if(W._.isWith)return{sql:J(W._.alias),params:[]};return this.buildQueryFromSourceParams([new nD("("),W._.sql,new nD(") "),new m7(W._.alias)],F)}if(vW(W)){if(W.schema)return{sql:J(W.schema)+"."+J(W.enumName),params:[]};return{sql:J(W.enumName),params:[]}}if(SF(W)){if(W.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([W.getSQL()],F);return this.buildQueryFromSourceParams([new nD("("),W.getSQL(),new nD(")")],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}};m7=class m7{constructor(D){this.value=D}static[P]="Name";brand;getSQL(){return new m([this])}};pW={mapFromDriverValue:(D)=>D},cW={mapToDriverValue:(D)=>D},Qr={...pW,...cW};I0=class I0{constructor(D,$=cW){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 nD(H)])}D.raw=X;function J(H,W){let Q=[];for(let[_,U]of H.entries()){if(_>0&&W!==void 0)Q.push(W);Q.push(U)}return new m(Q)}D.join=J;function G(H){return new m7(H)}D.identifier=G;function Y(H){return new K8(H)}D.placeholder=Y;function B(H,W){return new I0(H,W)}D.param=B})(M||(M={}));((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={}));K8=class K8{constructor(D){this.name=D}static[P]="Placeholder";getSQL(){return new m([this])}};Rj=Symbol.for("drizzle:IsDrizzleView");v0=class v0{static[P]="View";[fD];[Rj]=!0;constructor({name:D,schema:$,selectedFields:F,query:X}){this[fD]={name:D,originalName:D,schema:$,selectedFields:F,query:X,isExisting:!X,isAlias:!1}}getSQL(){return new m([this])}};OD.prototype.getSQL=function(){return new m([this])};x.prototype.getSQL=function(){return new m([this])};pD.prototype.getSQL=function(){return new m([this])}});function bF(D,$,F){let X={},J=D.reduce((G,{path:Y,field:B},H)=>{let W;if(I(B,OD))W=B;else if(I(B,m))W=B.decoder;else W=B.sql.decoder;let Q=G;for(let[_,U]of Y.entries())if(_<Y.length-1){if(!(U in Q))Q[U]={};Q=Q[U]}else{let A=$[H],R=Q[U]=A===null?null:W.mapFromDriverValue(A);if(F&&I(B,OD)&&Y.length===2){let O=Y[0];if(!(O in X))X[O]=R===null?A8(B.table):!1;else if(typeof X[O]==="string"&&X[O]!==A8(B.table))X[O]=!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 h0(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,x))F.push(...h0(J[x.Symbol.Columns],G));else F.push(...h0(J,G));return F},[])}function N3(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 p7(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 I0(J,D[x.Symbol.Columns][X])]});if(F.length===0)throw Error("No values to set");return Object.fromEntries(F)}function dW(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 lW(D){return D[x.Symbol.Columns]}function P3(D){return I(D,pD)?D._.alias:I(D,v0)?D[fD].name:I(D,m)?void 0:D[x.Symbol.IsAlias]?D[x.Symbol.Name]:D[x.Symbol.BaseName]}function w2(D,$){return{name:typeof D==="string"&&D.length>0?D:"",config:typeof D==="object"?D:$}}function iW(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 fF;var M0=Z(()=>{Q2();o();tD();_2();V0();d2();fF=typeof TextDecoder>"u"?null:new TextDecoder});var nW,sW,kF;var rW=Z(()=>{o();V0();nW=Symbol.for("drizzle:PgInlineForeignKeys"),sW=Symbol.for("drizzle:EnableRLS");kF=class kF extends x{static[P]="PgTable";static Symbol=Object.assign({},x.Symbol,{InlineForeignKeys:nW,EnableRLS:sW});[nW]=[];[sW]=!1;[x.Symbol.ExtraConfigBuilder]=void 0;[x.Symbol.ExtraConfigColumns]={}}});var vF,aW;var oW=Z(()=>{o();rW();vF=class vF{static[P]="PgPrimaryKeyBuilder";columns;name;constructor(D,$){this.columns=D,this.name=$}build(D){return new aW(D,this.columns,this.name)}};aW=class aW{constructor(D,$,F){this.table=D,this.columns=$,this.name=F}static[P]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[kF.Symbol.Name]}_${this.columns.map((D)=>D.name).join("_")}_pk`}}});function Z0(D,$){if(mW($)&&!SF(D)&&!I(D,I0)&&!I(D,K8)&&!I(D,OD)&&!I(D,x)&&!I(D,v0))return new I0(D,$);return D}function uD(...D){let $=D.filter((F)=>F!==void 0);if($.length===0)return;if($.length===1)return new m($);return new m([new nD("("),M.join($,new nD(" and ")),new nD(")")])}function eW(...D){let $=D.filter((F)=>F!==void 0);if($.length===0)return;if($.length===1)return new m($);return new m([new nD("("),M.join($,new nD(" or ")),new nD(")")])}function DV(D){return M`not ${D}`}function O8(D,$){if(Array.isArray($)){if($.length===0)return M`false`;return M`${D} in ${$.map((F)=>Z0(F,D))}`}return M`${D} in ${Z0($,D)}`}function FV(D,$){if(Array.isArray($)){if($.length===0)return M`true`;return M`${D} not in ${$.map((F)=>Z0(F,D))}`}return M`${D} not in ${Z0($,D)}`}function j3(D){return M`${D} is null`}function XV(D){return M`${D} is not null`}function JV(D){return M`exists ${D}`}function YV(D){return M`not exists ${D}`}function GV(D,$,F){return M`${D} between ${Z0($,D)} and ${Z0(F,D)}`}function BV(D,$,F){return M`${D} not between ${Z0($,D)} and ${Z0(F,D)}`}function HV(D,$){return M`${D} like ${$}`}function WV(D,$){return M`${D} not like ${$}`}function VV(D,$){return M`${D} ilike ${$}`}function QV(D,$){return M`${D} not ilike ${$}`}var v=(D,$)=>{return M`${D} = ${Z0($,D)}`},tW=(D,$)=>{return M`${D} <> ${Z0($,D)}`},L3=(D,$)=>{return M`${D} > ${Z0($,D)}`},$V=(D,$)=>{return M`${D} >= ${Z0($,D)}`},c7=(D,$)=>{return M`${D} < ${Z0($,D)}`},d7=(D,$)=>{return M`${D} <= ${Z0($,D)}`};var _V=Z(()=>{Q2();o();V0();tD()});function S2(D){return M`${D} asc`}function hD(D){return M`${D} desc`}var UV=Z(()=>{tD()});var hF=Z(()=>{_V();UV()});function KV(){return{and:uD,between:GV,eq:v,exists:JV,gt:L3,gte:$V,ilike:VV,inArray:O8,isNull:j3,isNotNull:XV,like:HV,lt:c7,lte:d7,ne:tW,not:DV,notBetween:BV,notExists:YV,notLike:WV,notIlike:QV,notInArray:FV,or:eW,sql:M}}function OV(){return{sql:M,asc:S2,desc:hD}}function RV(D,$){if(Object.keys(D).length===1&&"default"in D&&!I(D.default,x))D=D.default;let F={},X={},J={};for(let[G,Y]of Object.entries(D))if(I(Y,x)){let B=t8(Y),H=X[B];F[B]=G,J[G]={tsName:G,dbName:Y[x.Symbol.Name],schema:Y[x.Symbol.Schema],columns:Y[x.Symbol.Columns],relations:H?.relations??{},primaryKey:H?.primaryKey??[]};for(let Q of Object.values(Y[x.Symbol.Columns]))if(Q.primary)J[G].primaryKey.push(Q);let W=Y[x.Symbol.ExtraConfigBuilder]?.(Y[x.Symbol.ExtraConfigColumns]);if(W){for(let Q of Object.values(W))if(I(Q,vF))J[G].primaryKey.push(...Q.columns)}}else if(I(Y,AV)){let B=t8(Y.table),H=F[B],W=Y.config($(Y.table)),Q;for(let[_,U]of Object.entries(W))if(H){let A=J[H];if(A.relations[_]=U,Q)A.primaryKey.push(...Q)}else{if(!(B in X))X[B]={relations:{},primaryKey:Q};X[B].relations[_]=U}}return{tables:J,tableNamesMap:F}}function Ej(D){return function(F,X){return new R8(D,F,X,X?.fields.reduce((J,G)=>J&&G.notNull,!0)??!1)}}function Cj(D){return function(F,X){return new z3(D,F,X)}}function EV(D,$,F){if(I(F,R8)&&F.config)return{fields:F.config.fields,references:F.config.references};let X=$[t8(F.referencedTable)];if(!X)throw Error(`Table "${F.referencedTable[x.Symbol.Name]}" not found in schema`);let J=D[X];if(!J)throw Error(`Table "${X}" not found in schema`);let G=F.sourceTable,Y=$[t8(G)];if(!Y)throw Error(`Table "${G[x.Symbol.Name]}" not found in schema`);let B=[];for(let H of Object.values(J.relations))if(F.relationName&&F!==H&&H.relationName===F.relationName||!F.relationName&&H.referencedTable===F.sourceTable)B.push(H);if(B.length>1)throw F.relationName?Error(`There are multiple relations with name "${F.relationName}" in table "${X}"`):Error(`There are multiple relations between "${X}" and "${F.sourceTable[x.Symbol.Name]}". Please specify relation name`);if(B[0]&&I(B[0],R8)&&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 CV(D){return{one:Ej(D),many:Cj(D)}}function l7(D,$,F,X,J=(G)=>G){let G={};for(let[Y,B]of X.entries())if(B.isJson){let H=$.relations[B.tsKey],W=F[Y],Q=typeof W==="string"?JSON.parse(W):W;G[B.tsKey]=I(H,R8)?Q&&l7(D,D[B.relationTableTsKey],Q,B.selection,J):Q.map((_)=>l7(D,D[B.relationTableTsKey],_,B.selection,J))}else{let H=J(F[Y]),W=B.field,Q;if(I(W,OD))Q=W;else if(I(W,m))Q=W.decoder;else Q=W.sql.decoder;G[B.tsKey]=H===null?null:Q.mapFromDriverValue(H)}return G}var xF,AV,R8,z3;var I3=Z(()=>{V0();Q2();o();oW();hF();tD();xF=class xF{constructor(D,$,F){this.sourceTable=D,this.referencedTable=$,this.relationName=F,this.referencedTableName=$[x.Symbol.Name]}static[P]="Relation";referencedTableName;fieldName};AV=class AV{constructor(D,$){this.table=D,this.config=$}static[P]="Relations"};R8=class R8 extends xF{constructor(D,$,F,X){super(D,$,F?.relationName);this.config=F,this.isNullable=X}static[P]="One";withFieldName(D){let $=new R8(this.sourceTable,this.referencedTable,this.config,this.isNullable);return $.fieldName=D,$}};z3=class z3 extends xF{constructor(D,$,F){super(D,$,F?.relationName);this.config=F}static[P]="Many";withFieldName(D){let $=new z3(this.sourceTable,this.referencedTable,this.config);return $.fieldName=D,$}}});function i7(D,$){return new Proxy(D,new T3($,!1))}function b2(D,$){return new Proxy(D,new $6(new Proxy(D.table,new T3($,!1))))}function gF(D,$){return new m.Aliased(w3(D.sql,$),D.fieldAlias)}function w3(D,$){return M.join(D.queryChunks.map((F)=>{if(I(F,OD))return b2(F,$);if(I(F,m))return w3(F,$);if(I(F,m.Aliased))return gF(F,$);return F}))}var $6,T3;var n7=Z(()=>{Q2();o();tD();V0();d2();$6=class $6{constructor(D){this.table=D}static[P]="ColumnAliasProxyHandler";get(D,$){if($==="table")return this.table;return D[$]}};T3=class T3{constructor(D,$){this.alias=D,this.replaceOriginalName=$}static[P]="TableAliasProxyHandler";get(D,$){if($===x.Symbol.IsAlias)return!0;if($===x.Symbol.Name)return this.alias;if(this.replaceOriginalName&&$===x.Symbol.OriginalName)return this.alias;if($===fD)return{...D[fD],name:this.alias,isAlias:!0};if($===x.Symbol.Columns){let X=D[x.Symbol.Columns];if(!X)return X;let J={};return Object.keys(X).map((G)=>{J[G]=new Proxy(X[G],new $6(new Proxy(D,this)))}),J}let F=D[$];if(I(F,OD))return new Proxy(F,new $6(new Proxy(D,this)));return F}}});var cD;var F6=Z(()=>{n7();Q2();o();tD();_2();d2();cD=class cD{static[P]="SelectionProxyHandler";config;constructor(D){this.config={...D}}get(D,$){if($==="_")return{...D._,selectedFields:new Proxy(D._.selectedFields,this)};if($===fD)return{...D[fD],selectedFields:new Proxy(D[fD].selectedFields,this)};if(typeof $==="symbol")return D[$];let X=(I(D,pD)?D._.selectedFields:I(D,v0)?D[fD].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 $6(new Proxy(X.table,new T3(this.config.alias,this.config.replaceOriginalName??!1))));return X}if(typeof X!=="object"||X===null)return X;return new Proxy(X,new cD(this.config))}}});var E0;var l2=Z(()=>{o();E0=class E0{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 yF,MV;var uF=Z(()=>{o();E3();yF=class yF{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[z0],...X,F[0].table[z0],...J];return D??`${G.join("_")}_fk`}}});function ZV(D,$){return`${D[z0]}_${$.join("_")}_unique`}var mF=Z(()=>{E3()});var eD,xD;var E8=Z(()=>{IF();Q2();o();uF();mF();eD=class eD extends zF{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 yF(()=>{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)})}};xD=class xD extends OD{constructor(D,$){if(!$.uniqueName)$.uniqueName=ZV(D,[$.name]);super(D,$);this.table=D}static[P]="SQLiteColumn"}});function IV(D,$){let{name:F,config:X}=w2(D,$);if(X?.mode==="json")return new PV(F);if(X?.mode==="bigint")return new qV(F);return new jV(F)}var qV,NV,PV,LV,jV,zV;var pF=Z(()=>{o();M0();E8();qV=class qV extends eD{static[P]="SQLiteBigIntBuilder";constructor(D){super(D,"bigint","SQLiteBigInt")}build(D){return new NV(D,this.config)}};NV=class NV extends xD{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(fF.decode(D))}mapToDriverValue(D){return Buffer.from(D.toString())}};PV=class PV extends eD{static[P]="SQLiteBlobJsonBuilder";constructor(D){super(D,"json","SQLiteBlobJson")}build(D){return new LV(D,this.config)}};LV=class LV extends xD{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(fF.decode(D))}mapToDriverValue(D){return Buffer.from(JSON.stringify(D))}};jV=class jV extends eD{static[P]="SQLiteBlobBufferBuilder";constructor(D){super(D,"buffer","SQLiteBlobBuffer")}build(D){return new zV(D,this.config)}};zV=class zV extends xD{static[P]="SQLiteBlobBuffer";mapFromDriverValue(D){if(Buffer.isBuffer(D))return D;return Buffer.from(D)}getSQLType(){return"blob"}}});function SV(D){return($,F)=>{let{name:X,config:J}=w2($,F);return new TV(X,J,D)}}var TV,wV;var cF=Z(()=>{o();M0();E8();TV=class TV extends eD{static[P]="SQLiteCustomColumnBuilder";constructor(D,$,F){super(D,"custom","SQLiteCustomColumn");this.config.fieldConfig=$,this.config.customTypeParams=F}build(D){return new wV(D,this.config)}};wV=class wV extends xD{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 ID(D,$){let{name:F,config:X}=w2(D,$);if(X?.mode==="timestamp"||X?.mode==="timestamp_ms")return new kV(F,X.mode);if(X?.mode==="boolean")return new hV(F,X.mode);return new bV(F)}var s7,r7,bV,fV,kV,vV,hV,xV;var dF=Z(()=>{o();tD();M0();E8();s7=class s7 extends eD{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()}};r7=class r7 extends xD{static[P]="SQLiteBaseInteger";autoIncrement=this.config.autoIncrement;getSQLType(){return"integer"}};bV=class bV extends s7{static[P]="SQLiteIntegerBuilder";constructor(D){super(D,"number","SQLiteInteger")}build(D){return new fV(D,this.config)}};fV=class fV extends r7{static[P]="SQLiteInteger"};kV=class kV extends s7{static[P]="SQLiteTimestampBuilder";constructor(D,$){super(D,"date","SQLiteTimestamp");this.config.mode=$}defaultNow(){return this.default(M`(cast((julianday('now') - 2440587.5)*86400000 as integer))`)}build(D){return new vV(D,this.config)}};vV=class vV extends r7{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 $}};hV=class hV extends s7{static[P]="SQLiteBooleanBuilder";constructor(D,$){super(D,"boolean","SQLiteBoolean");this.config.mode=$}build(D){return new xV(D,this.config)}};xV=class xV extends r7{static[P]="SQLiteBoolean";mode=this.config.mode;mapFromDriverValue(D){return Number(D)===1}mapToDriverValue(D){return D?1:0}}});function dV(D,$){let{name:F,config:X}=w2(D,$),J=X?.mode;return J==="number"?new uV(F):J==="bigint"?new pV(F):new gV(F)}var gV,yV,uV,mV,pV,cV;var lF=Z(()=>{o();M0();E8();gV=class gV extends eD{static[P]="SQLiteNumericBuilder";constructor(D){super(D,"string","SQLiteNumeric")}build(D){return new yV(D,this.config)}};yV=class yV extends xD{static[P]="SQLiteNumeric";mapFromDriverValue(D){if(typeof D==="string")return D;return String(D)}getSQLType(){return"numeric"}};uV=class uV extends eD{static[P]="SQLiteNumericNumberBuilder";constructor(D){super(D,"number","SQLiteNumericNumber")}build(D){return new mV(D,this.config)}};mV=class mV extends xD{static[P]="SQLiteNumericNumber";mapFromDriverValue(D){if(typeof D==="number")return D;return Number(D)}mapToDriverValue=String;getSQLType(){return"numeric"}};pV=class pV extends eD{static[P]="SQLiteNumericBigIntBuilder";constructor(D){super(D,"bigint","SQLiteNumericBigInt")}build(D){return new cV(D,this.config)}};cV=class cV extends xD{static[P]="SQLiteNumericBigInt";mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){return"numeric"}}});function nV(D){return new lV(D??"")}var lV,iV;var iF=Z(()=>{o();E8();lV=class lV extends eD{static[P]="SQLiteRealBuilder";constructor(D){super(D,"number","SQLiteReal")}build(D){return new iV(D,this.config)}};iV=class iV extends xD{static[P]="SQLiteReal";getSQLType(){return"real"}}});function T(D,$={}){let{name:F,config:X}=w2(D,$);if(X.mode==="json")return new aV(F);return new sV(F,X)}var sV,rV,aV,oV;var nF=Z(()=>{o();M0();E8();sV=class sV extends eD{static[P]="SQLiteTextBuilder";constructor(D,$){super(D,"string","SQLiteText");this.config.enumValues=$.enum,this.config.length=$.length}build(D){return new rV(D,this.config)}};rV=class rV extends xD{static[P]="SQLiteText";enumValues=this.config.enumValues;length=this.config.length;constructor(D,$){super(D,$)}getSQLType(){return`text${this.config.length?`(${this.config.length})`:""}`}};aV=class aV extends eD{static[P]="SQLiteTextJsonBuilder";constructor(D){super(D,"json","SQLiteTextJson")}build(D){return new oV(D,this.config)}};oV=class oV extends xD{static[P]="SQLiteTextJson";getSQLType(){return"text"}mapFromDriverValue(D){return JSON.parse(D)}mapToDriverValue(D){return JSON.stringify(D)}}});function tV(){return{blob:IV,customType:SV,integer:ID,numeric:dV,real:nV,text:T}}var eV=Z(()=>{pF();cF();dF();lF();iF();nF()});function Mj(D,$,F,X,J=D){let G=new D0(D,X,J),Y=typeof $==="function"?$(tV()):$,B=Object.fromEntries(Object.entries(Y).map(([W,Q])=>{let _=Q;_.setName(W);let U=_.build(G);return G[sF].push(..._.buildForeignKeys(U,G)),[W,U]})),H=Object.assign(G,B);if(H[x.Symbol.Columns]=B,H[x.Symbol.ExtraConfigColumns]=B,F)H[D0.Symbol.ExtraConfigBuilder]=F;return H}var sF,D0,Q0=(D,$,F)=>{return Mj(D,$,F)};var e8=Z(()=>{o();V0();eV();sF=Symbol.for("drizzle:SQLiteInlineForeignKeys");D0=class D0 extends x{static[P]="SQLiteTable";static Symbol=Object.assign({},x.Symbol,{InlineForeignKeys:sF});[x.Symbol.Columns];[sF]=[];[x.Symbol.ExtraConfigBuilder]=void 0}});var DQ=()=>{};function x0(D){return new rF(D,!1)}function XQ(D){return new rF(D,!0)}var rF,$Q,FQ;var JQ=Z(()=>{o();rF=class rF{constructor(D,$){this.name=D,this.unique=$}static[P]="SQLiteIndexBuilderOn";on(...D){return new $Q(this.name,D,this.unique)}};$Q=class $Q{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 FQ(this.config,D)}};FQ=class FQ{static[P]="SQLiteIndex";config;constructor(D,$){this.config={...D,table:$}}}});var YQ=()=>{};function U2(D){if(I(D,D0))return[`${D[x.Symbol.BaseName]}`];if(I(D,pD))return D._.usedTables??[];if(I(D,m))return D.usedTables??[];return[]}var X6=Z(()=>{o();tD();_2();V0();e8()});var a7;var GQ=Z(()=>{o();l2();F6();e8();V0();M0();X6();a7=class a7 extends E0{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[x.Symbol.Columns],new cD({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[D0.Symbol.Columns]){return this.config.returning=h0(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:U2(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 Zj(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 Nj(D){return D}var aF;var BQ=Z(()=>{o();V0();aF=class aF{static[P]="CasingCache";cache={};cachedTables={};convert;constructor(D){this.convert=D==="snake_case"?Zj:D==="camelCase"?qj:Nj}getColumnCasing(D){if(!D.keyAsName)return D.name;let $=D.table[x.Symbol.Schema]??"public",F=D.table[x.Symbol.OriginalName],X=`${$}.${F}.${D.name}`;if(!this.cache[X])this.cacheTable(D.table);return this.cache[X]}cacheTable(D){let $=D[x.Symbol.Schema]??"public",F=D[x.Symbol.OriginalName],X=`${$}.${F}`;if(!this.cachedTables[X]){for(let J of Object.values(D[x.Symbol.Columns])){let G=`${X}.${J.name}`;this.cache[G]=this.convert(J.name)}this.cachedTables[X]=!0}}clearCache(){this.cache={},this.cachedTables={}}}});var J6,i2,oF;var o7=Z(()=>{o();J6=class J6 extends Error{static[P]="DrizzleError";constructor({message:D,cause:$}){super(D);this.name="DrizzleError",this.cause=$}};i2=class i2 extends Error{constructor(D,$,F){super(`Failed query: ${D}
112
+ params: ${$}`);if(this.query=D,this.params=$,this.cause=F,Error.captureStackTrace(this,i2),F)this.cause=F}};oF=class oF extends J6{static[P]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}});function t7(D){return M`count(${D||M.raw("*")})`.mapWith(Number)}var HQ=Z(()=>{tD()});var WQ=()=>{};var VQ=Z(()=>{HQ();WQ()});var tF=Z(()=>{hF();VQ();tD()});var eF=Z(()=>{pF();E8();cF();dF();lF();iF();nF()});var D1;var e7=Z(()=>{o();tD();D1=class D1 extends v0{static[P]="SQLiteViewBase"}});var S3,b3;var D4=Z(()=>{n7();BQ();Q2();o();o7();I3();tF();tD();eF();e8();_2();V0();M0();d2();e7();S3=class S3{static[P]="SQLiteDialect";casing;constructor(D){this.casing=new aF(D?.casing)}escapeName(D){return`"${D}"`}escapeParam(D){return"?"}escapeString(D){return`'${D.replace(/'/g,"''")}'`}buildWithCTE(D){if(!D?.length)return;let $=[M`with `];for(let[F,X]of D.entries())if($.push(M`${M.identifier(X._.alias)} as (${X._.sql})`),F<D.length-1)$.push(M`, `);return $.push(M` `),M.join($)}buildDeleteQuery({table:D,where:$,returning:F,withList:X,limit:J,orderBy:G}){let Y=this.buildWithCTE(X),B=F?M` returning ${this.buildSelection(F,{isSingleTable:!0})}`:void 0,H=$?M` where ${$}`:void 0,W=this.buildOrderBy(G),Q=this.buildLimit(J);return M`${Y}delete from ${D}${H}${B}${W}${Q}`}buildUpdateSet(D,$){let F=D[x.Symbol.Columns],X=Object.keys(F).filter((G)=>$[G]!==void 0||F[G]?.onUpdateFn!==void 0),J=X.length;return M.join(X.flatMap((G,Y)=>{let B=F[G],H=$[G]??M.param(B.onUpdateFn(),B),W=M`${M.identifier(this.casing.getColumnCasing(B))} = ${H}`;if(Y<J-1)return[W,M.raw(", ")];return[W]}))}buildUpdateQuery({table:D,set:$,where:F,returning:X,withList:J,joins:G,from:Y,limit:B,orderBy:H}){let W=this.buildWithCTE(J),Q=this.buildUpdateSet(D,$),_=Y&&M.join([M.raw(" from "),this.buildFromTable(Y)]),U=this.buildJoins(G),A=X?M` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,R=F?M` where ${F}`:void 0,O=this.buildOrderBy(H),K=this.buildLimit(B);return M`${W}update ${D} set ${Q}${_}${U}${R}${A}${O}${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(M.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 M.identifier(this.casing.getColumnCasing(H));return H})));else Y.push(B);if(I(J,m.Aliased))Y.push(M` as ${M.identifier(J.fieldAlias)}`)}else if(I(J,OD)){let B=J.table[x.Symbol.Name];if(J.columnType==="SQLiteNumericBigInt")if($)Y.push(M`cast(${M.identifier(this.casing.getColumnCasing(J))} as text)`);else Y.push(M`cast(${M.identifier(B)}.${M.identifier(this.casing.getColumnCasing(J))} as text)`);else if($)Y.push(M.identifier(this.casing.getColumnCasing(J)));else Y.push(M`${M.identifier(B)}.${M.identifier(this.casing.getColumnCasing(J))}`)}if(G<F-1)Y.push(M`, `);return Y});return M.join(X)}buildJoins(D){if(!D||D.length===0)return;let $=[];if(D)for(let[F,X]of D.entries()){if(F===0)$.push(M` `);let J=X.table,G=X.on?M` on ${X.on}`:void 0;if(I(J,D0)){let Y=J[D0.Symbol.Name],B=J[D0.Symbol.Schema],H=J[D0.Symbol.OriginalName],W=Y===H?void 0:X.alias;$.push(M`${M.raw(X.joinType)} join ${B?M`${M.identifier(B)}.`:void 0}${M.identifier(H)}${W&&M` ${M.identifier(W)}`}${G}`)}else $.push(M`${M.raw(X.joinType)} join ${J}${G}`);if(F<D.length-1)$.push(M` `)}return M.join($)}buildLimit(D){return typeof D==="object"||typeof D==="number"&&D>=0?M` limit ${D}`:void 0}buildOrderBy(D){let $=[];if(D){for(let[F,X]of D.entries())if($.push(X),F<D.length-1)$.push(M`, `)}return $.length>0?M` order by ${M.join($)}`:void 0}buildFromTable(D){if(I(D,x)&&D[x.Symbol.IsAlias])return M`${M`${M.identifier(D[x.Symbol.Schema]??"")}.`.if(D[x.Symbol.Schema])}${M.identifier(D[x.Symbol.OriginalName])} ${M.identifier(D[x.Symbol.Name])}`;return D}buildSelectQuery({withList:D,fields:$,fieldsFlat:F,where:X,having:J,table:G,joins:Y,orderBy:B,groupBy:H,limit:W,offset:Q,distinct:_,setOperators:U}){let A=F??h0($);for(let $D of A)if(I($D.field,OD)&&A8($D.field.table)!==(I(G,pD)?G._.alias:I(G,D1)?G[fD].name:I(G,m)?void 0:A8(G))&&!((rD)=>Y?.some(({alias:L2})=>L2===(rD[x.Symbol.IsAlias]?A8(rD):rD[x.Symbol.BaseName])))($D.field.table)){let rD=A8($D.field.table);throw Error(`Your "${$D.path.join("->")}" field references a column "${rD}"."${$D.field.name}", but the table "${rD}" is not part of the query! Did you forget to join it?`)}let R=!Y||Y.length===0,O=this.buildWithCTE(D),K=_?M` distinct`:void 0,E=this.buildSelection(A,{isSingleTable:R}),q=this.buildFromTable(G),N=this.buildJoins(Y),S=X?M` where ${X}`:void 0,b=J?M` having ${J}`:void 0,L=[];if(H){for(let[$D,rD]of H.entries())if(L.push(rD),$D<H.length-1)L.push(M`, `)}let z=L.length>0?M` group by ${M.join(L)}`:void 0,j=this.buildOrderBy(B),d=this.buildLimit(W),VD=Q?M` offset ${Q}`:void 0,QD=M`${O}select${K} ${E} from ${q}${N}${S}${z}${b}${j}${d}${VD}`;if(U.length>0)return this.buildSetOperations(QD,U);return QD}buildSetOperations(D,$){let[F,...X]=$;if(!F)throw Error("Cannot pass undefined values to any set operator");if(X.length===0)return this.buildSetOperationQuery({leftSelect:D,setOperator:F});return this.buildSetOperations(this.buildSetOperationQuery({leftSelect:D,setOperator:F}),X)}buildSetOperationQuery({leftSelect:D,setOperator:{type:$,isAll:F,rightSelect:X,limit:J,orderBy:G,offset:Y}}){let B=M`${D.getSQL()} `,H=M`${X.getSQL()}`,W;if(G&&G.length>0){let A=[];for(let R of G)if(I(R,xD))A.push(M.identifier(R.name));else if(I(R,m)){for(let O=0;O<R.queryChunks.length;O++){let K=R.queryChunks[O];if(I(K,xD))R.queryChunks[O]=M.identifier(this.casing.getColumnCasing(K))}A.push(M`${R}`)}else A.push(M`${R}`);W=M` order by ${M.join(A,M`, `)}`}let Q=typeof J==="object"||typeof J==="number"&&J>=0?M` limit ${J}`:void 0,_=M.raw(`${$} ${F?"all ":""}`),U=Y?M` offset ${Y}`:void 0;return M`${B}${_}${H}${W}${Q}${U}`}buildInsertQuery({table:D,values:$,onConflict:F,returning:X,withList:J,select:G}){let Y=[],B=D[x.Symbol.Columns],H=Object.entries(B).filter(([R,O])=>!O.shouldDisableInsert()),W=H.map(([,R])=>M.identifier(this.casing.getColumnCasing(R)));if(G){let R=$;if(I(R,m))Y.push(R);else Y.push(R.getSQL())}else{let R=$;Y.push(M.raw("values "));for(let[O,K]of R.entries()){let E=[];for(let[q,N]of H){let S=K[q];if(S===void 0||I(S,I0)&&S.value===void 0){let b;if(N.default!==null&&N.default!==void 0)b=I(N.default,m)?N.default:M.param(N.default,N);else if(N.defaultFn!==void 0){let L=N.defaultFn();b=I(L,m)?L:M.param(L,N)}else if(!N.default&&N.onUpdateFn!==void 0){let L=N.onUpdateFn();b=I(L,m)?L:M.param(L,N)}else b=M`null`;E.push(b)}else E.push(S)}if(Y.push(E),O<R.length-1)Y.push(M`, `)}}let Q=this.buildWithCTE(J),_=M.join(Y),U=X?M` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,A=F?.length?M.join(F):void 0;return M`${Q}insert into ${D} ${W} ${_}${A}${U}`}sqlToQuery(D,$){return D.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,invokeSource:$})}buildRelationalQuery({fullSchema:D,schema:$,tableNamesMap:F,table:X,tableConfig:J,queryConfig:G,tableAlias:Y,nestedQueryRelation:B,joinOn:H}){let W=[],Q,_,U=[],A,R=[];if(G===!0)W=Object.entries(J.columns).map(([E,q])=>({dbKey:q.name,tsKey:E,field:b2(q,Y),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let K=Object.fromEntries(Object.entries(J.columns).map(([L,z])=>[L,b2(z,Y)]));if(G.where){let L=typeof G.where==="function"?G.where(K,KV()):G.where;A=L&&w3(L,Y)}let E=[],q=[];if(G.columns){let L=!1;for(let[z,j]of Object.entries(G.columns)){if(j===void 0)continue;if(z in J.columns){if(!L&&j===!0)L=!0;q.push(z)}}if(q.length>0)q=L?q.filter((z)=>G.columns?.[z]===!0):Object.keys(J.columns).filter((z)=>!q.includes(z))}else q=Object.keys(J.columns);for(let L of q){let z=J.columns[L];E.push({tsKey:L,value:z})}let N=[];if(G.with)N=Object.entries(G.with).filter((L)=>!!L[1]).map(([L,z])=>({tsKey:L,queryConfig:z,relation:J.relations[L]}));let S;if(G.extras){S=typeof G.extras==="function"?G.extras(K,{sql:M}):G.extras;for(let[L,z]of Object.entries(S))E.push({tsKey:L,value:gF(z,Y)})}for(let{tsKey:L,value:z}of E)W.push({dbKey:I(z,m.Aliased)?z.fieldAlias:J.columns[L].name,tsKey:L,field:I(z,OD)?b2(z,Y):z,relationTableTsKey:void 0,isJson:!1,selection:[]});let b=typeof G.orderBy==="function"?G.orderBy(K,OV()):G.orderBy??[];if(!Array.isArray(b))b=[b];U=b.map((L)=>{if(I(L,OD))return b2(L,Y);return w3(L,Y)}),Q=G.limit,_=G.offset;for(let{tsKey:L,queryConfig:z,relation:j}of N){let d=EV($,F,j),VD=t8(j.referencedTable),QD=F[VD],$D=`${Y}_${L}`,rD=uD(...d.fields.map((oZ,tZ)=>v(b2(d.references[tZ],$D),b2(oZ,Y)))),L2=this.buildRelationalQuery({fullSchema:D,schema:$,tableNamesMap:F,table:D[QD],tableConfig:$[QD],queryConfig:I(j,R8)?z===!0?{limit:1}:{...z,limit:1}:z,tableAlias:$D,joinOn:rD,nestedQueryRelation:j}),aZ=M`(${L2.sql})`.as(L);W.push({dbKey:L,tsKey:L,field:aZ,relationTableTsKey:QD,isJson:!0,selection:L2.selection})}}if(W.length===0)throw new J6({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 O;if(A=uD(H,A),B){let K=M`json_array(${M.join(W.map(({field:N})=>I(N,xD)?M.identifier(this.casing.getColumnCasing(N)):I(N,m.Aliased)?N.sql:N),M`, `)})`;if(I(B,z3))K=M`coalesce(json_group_array(${K}), json_array())`;let E=[{dbKey:"data",tsKey:"data",field:K.as("data"),isJson:!0,relationTableTsKey:J.tsName,selection:W}];if(Q!==void 0||_!==void 0||U.length>0)O=this.buildSelectQuery({table:i7(X,Y),fields:{},fieldsFlat:[{path:[],field:M.raw("*")}],where:A,limit:Q,offset:_,orderBy:U,setOperators:[]}),A=void 0,Q=void 0,_=void 0,U=void 0;else O=i7(X,Y);O=this.buildSelectQuery({table:I(O,D0)?O:new pD(O,{},Y),fields:{},fieldsFlat:E.map(({field:N})=>({path:[],field:I(N,OD)?b2(N,Y):N})),joins:R,where:A,limit:Q,offset:_,orderBy:U,setOperators:[]})}else O=this.buildSelectQuery({table:i7(X,Y),fields:{},fieldsFlat:W.map(({field:K})=>({path:[],field:I(K,OD)?b2(K,Y):K})),joins:R,where:A,limit:Q,offset:_,orderBy:U,setOperators:[]});return{tableTsKey:J.tsName,sql:O,selection:W}}};b3=class b3 extends S3{static[P]="SQLiteSyncDialect";migrate(D,$,F){let X=F===void 0?"__drizzle_migrations":typeof F==="string"?"__drizzle_migrations":F.migrationsTable??"__drizzle_migrations",J=M`
113
113
  CREATE TABLE IF NOT EXISTS ${M.identifier(X)} (
114
114
  id SERIAL PRIMARY KEY,
115
115
  hash text NOT NULL,
116
116
  created_at numeric
117
117
  )
118
- `;$.run(J);let Y=$.values(M`SELECT id, hash, created_at FROM ${M.identifier(X)} ORDER BY created_at DESC LIMIT 1`)[0]??void 0;$.run(M`BEGIN`);try{for(let B of D)if(!Y||Number(Y[2])<B.folderMillis){for(let H of B.sql)$.run(M.raw(H));$.run(M`INSERT INTO ${M.identifier(X)} ("hash", "created_at") VALUES(${B.hash}, ${B.folderMillis})`)}$.run(M`COMMIT`)}catch(B){throw $.run(M`ROLLBACK`),B}}}});var DX;var VQ=Z(()=>{o();DX=class DX{static[L]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}});function $4(D,$){return(F,X,...J)=>{let G=[X,...J].map((Y)=>({type:D,isAll:$,rightSelect:Y}));for(let Y of G)if(!N3(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 A2,QQ,$X,Pj=()=>({union:Lj,unionAll:jj,intersect:zj,except:Ij}),Lj,jj,zj,Ij;var FX=Z(()=>{o();VQ();l2();F6();tD();_2();V0();M0();d2();X6();e7();A2=class A2{static[L]="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(z(D,pD))F=Object.fromEntries(Object.keys(D._.selectedFields).map((X)=>[X,D[X]]));else if(z(D,D1))F=D[fD].selectedFields;else if(z(D,m))F={};else F=dW(D);return new $X({table:D,fields:F,isPartialSelect:$,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct})}};QQ=class QQ extends DX{static[L]="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=P3(D),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{};for(let B of U2(D))this.usedTables.add(B)}getUsedTables(){return[...this.usedTables]}createJoin(D){return($,F)=>{let X=this.tableName,J=P3($);for(let G of U2($))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"&&!z($,m)){let G=z($,pD)?$._.selectedFields:z($,v0)?$[fD].selectedFields:$[x.Symbol.Columns];this.config.fields[J]=G}}if(typeof F==="function")F=F(new Proxy(this.config.fields,new cD({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(Pj()):F;if(!N3(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 cD({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=D,this}having(D){if(typeof D==="function")D=D(new Proxy(this.config.fields,new cD({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 cD({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 cD({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(...U2(this.config.table)),this.config.joins)for(let F of this.config.joins)$.push(...U2(F.table));return new Proxy(new pD(this.getSQL(),this.config.fields,D,!1,[...new Set($)]),new cD({alias:D,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new cD({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}};$X=class $X extends QQ{static[L]="SQLiteSelect";_prepare(D=!0){if(!this.session)throw Error("Cannot execute a query on a query builder. Please use a database instance instead.");let $=h0(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()}};cW($X,[E0]);Lj=$4("union",!1),jj=$4("union",!0),zj=$4("intersect",!1),Ij=$4("except",!1)});var f3;var XX=Z(()=>{o();F6();D4();_2();FX();f3=class f3{static[L]="SQLiteQueryBuilder";dialect;dialectConfig;constructor(D){this.dialect=z(D,S3)?D:void 0,this.dialectConfig=z(D,S3)?void 0:D}$with=(D,$)=>{let F=this;return{as:(J)=>{if(typeof J==="function")J=J(F);return new Proxy(new Z3(J.getSQL(),$??("getSelectedFields"in J?J.getSelectedFields()??{}:{}),D,!0),new cD({alias:D,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...D){let $=this;function F(J){return new A2({fields:J??void 0,session:void 0,dialect:$.getDialect(),withList:D})}function X(J){return new A2({fields:J??void 0,session:void 0,dialect:$.getDialect(),withList:D,distinct:!0})}return{select:F,selectDistinct:X}}select(D){return new A2({fields:D??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(D){return new A2({fields:D??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}getDialect(){if(!this.dialect)this.dialect=new b3(this.dialectConfig);return this.dialect}}});var F4,JX;var _Q=Z(()=>{o();l2();tD();e8();V0();M0();X6();XX();F4=class F4{constructor(D,$,F,X){this.table=D,this.session=$,this.dialect=F,this.withList=X}static[L]="SQLiteInsertBuilder";values(D){if(D=Array.isArray(D)?D:[D],D.length===0)throw Error("values() must be called with at least one value");let $=D.map((F)=>{let X={},J=this.table[x.Symbol.Columns];for(let G of Object.keys(F)){let Y=F[G];X[G]=z(Y,m)?Y:new I0(Y,J[G])}return X});return new JX(this.table,$,this.session,this.dialect,this.withList)}select(D){let $=typeof D==="function"?D(new f3):D;if(!z($,m)&&!N3(this.table[u7],$._.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 JX(this.table,$,this.session,this.dialect,this.withList,!0)}};JX=class JX extends E0{constructor(D,$,F,X,J,G){super();this.session=F,this.dialect=X,this.config={table:D,values:$,withList:J,select:G}}static[L]="SQLiteInsert";config;returning(D=this.config.table[D0.Symbol.Columns]){return this.config.returning=h0(D),this}onConflictDoNothing(D={}){if(!this.config.onConflict)this.config.onConflict=[];if(D.target===void 0)this.config.onConflict.push(M` on conflict do nothing`);else{let $=Array.isArray(D.target)?M`${D.target}`:M`${[D.target]}`,F=D.where?M` where ${D.where}`:M``;this.config.onConflict.push(M` 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?M` where ${D.where}`:void 0,F=D.targetWhere?M` where ${D.targetWhere}`:void 0,X=D.setWhere?M` where ${D.setWhere}`:void 0,J=Array.isArray(D.target)?M`${D.target}`:M`${[D.target]}`,G=this.dialect.buildUpdateSet(this.config.table,p7(this.config.table,D.set));return this.config.onConflict.push(M` 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:U2(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 X4,UQ;var AQ=Z(()=>{o();l2();F6();e8();_2();V0();M0();d2();X6();e7();X4=class X4{constructor(D,$,F,X){this.table=D,this.session=$,this.dialect=F,this.withList=X}static[L]="SQLiteUpdateBuilder";set(D){return new UQ(this.table,p7(this.table,D),this.session,this.dialect,this.withList)}};UQ=class UQ extends E0{constructor(D,$,F,X,J){super();this.session=F,this.dialect=X,this.config={set:$,table:D,withList:J,joins:[]}}static[L]="SQLiteUpdate";config;from(D){return this.config.from=D,this}createJoin(D){return($,F)=>{let X=P3($);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?z($,D0)?$[x.Symbol.Columns]:z($,pD)?$._.selectedFields:z($,D1)?$[fD].selectedFields:void 0:void 0;F=F(new Proxy(this.config.table[x.Symbol.Columns],new cD({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),J&&new Proxy(J,new cD({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}return this.config.joins.push({on:F,table:$,joinType:D,alias:X}),this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(D){return this.config.where=D,this}orderBy(...D){if(typeof D[0]==="function"){let $=D[0](new Proxy(this.config.table[x.Symbol.Columns],new cD({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[D0.Symbol.Columns]){return this.config.returning=h0(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:U2(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 YX=Z(()=>{YQ();_Q();XX();FX();AQ()});var k3;var KQ=Z(()=>{o();tD();k3=class k3 extends m{constructor(D){super(k3.buildEmbeddedCount(D.source,D.filters).queryChunks);this.params=D,this.session=D.session,this.sql=k3.buildCount(D.source,D.filters)}sql;static[L]="SQLiteCountBuilderAsync";[Symbol.toStringTag]="SQLiteCountBuilderAsync";session;static buildEmbeddedCount(D,$){return M`(select count(*) from ${D}${M.raw(" where ").if($)}${$})`}static buildCount(D,$){return M`select count(*) from ${D}${M.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 BX,J4,GX;var OQ=Z(()=>{o();l2();I3();BX=class BX{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[L]="SQLiteAsyncRelationalQueryBuilder";findMany(D){return this.mode==="sync"?new GX(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?D:{},"many"):new J4(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?D:{},"many")}findFirst(D){return this.mode==="sync"?new GX(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?{...D,limit:1}:{limit:1},"first"):new J4(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?{...D,limit:1}:{limit:1},"first")}};J4=class J4 extends E0{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[L]="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)=>l7(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()}};GX=class GX extends J4{static[L]="SQLiteSyncRelationalQuery";sync(){return this.executeRaw()}}});var Y6;var RQ=Z(()=>{o();l2();Y6=class Y6 extends E0{constructor(D,$,F,X,J){super();this.execute=D,this.getSQL=$,this.dialect=X,this.mapBatchResult=J,this.config={action:F}}static[L]="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 v3;var Y4=Z(()=>{o();F6();tD();YX();_2();KQ();OQ();RQ();v3=class v3{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 BX(D,X.fullSchema,this._.schema,this._.tableNamesMap,X.fullSchema[G],Y,$,F);this.$cache={invalidate:async(G)=>{}}}static[L]="BaseSQLiteDatabase";query;$with=(D,$)=>{let F=this;return{as:(J)=>{if(typeof J==="function")J=J(new f3(F.dialect));return new Proxy(new Z3(J.getSQL(),$??("getSelectedFields"in J?J.getSelectedFields()??{}:{}),D,!0),new cD({alias:D,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(D,$){return new k3({source:D,filters:$,session:this.session})}with(...D){let $=this;function F(B){return new A2({fields:B??void 0,session:$.session,dialect:$.dialect,withList:D})}function X(B){return new A2({fields:B??void 0,session:$.session,dialect:$.dialect,withList:D,distinct:!0})}function J(B){return new X4(B,$.session,$.dialect,D)}function G(B){return new F4(B,$.session,$.dialect,D)}function Y(B){return new a7(B,$.session,$.dialect,D)}return{select:F,selectDistinct:X,update:J,insert:G,delete:Y}}select(D){return new A2({fields:D??void 0,session:this.session,dialect:this.dialect})}selectDistinct(D){return new A2({fields:D??void 0,session:this.session,dialect:this.dialect,distinct:!0})}update(D){return new X4(D,this.session,this.dialect)}$cache;insert(D){return new F4(D,this.session,this.dialect)}delete(D){return new a7(D,this.session,this.dialect)}run(D){let $=typeof D==="string"?M.raw(D):D.getSQL();if(this.resultKind==="async")return new Y6(async()=>this.session.run($),()=>$,"run",this.dialect,this.session.extractRawRunValueFromBatchResult.bind(this.session));return this.session.run($)}all(D){let $=typeof D==="string"?M.raw(D):D.getSQL();if(this.resultKind==="async")return new Y6(async()=>this.session.all($),()=>$,"all",this.dialect,this.session.extractRawAllValueFromBatchResult.bind(this.session));return this.session.all($)}get(D){let $=typeof D==="string"?M.raw(D):D.getSQL();if(this.resultKind==="async")return new Y6(async()=>this.session.get($),()=>$,"get",this.dialect,this.session.extractRawGetValueFromBatchResult.bind(this.session));return this.session.get($)}values(D){let $=typeof D==="string"?M.raw(D):D.getSQL();if(this.resultKind==="async")return new Y6(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 EQ=()=>{};async function WX(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 CQ,HX;var MQ=Z(()=>{o();CQ=class CQ{static[L]="Cache"};HX=class HX extends CQ{strategy(){return"all"}static[L]="NoopCache";async get(D){return}async put(D,$,F,X){}async onMutate(D){}}});var ZQ,VX,QX,_X;var UX=Z(()=>{MQ();o();o7();l2();Y4();ZQ=class ZQ extends E0{constructor(D){super();this.resultCb=D}static[L]="ExecuteResultSync";async execute(){return this.resultCb()}sync(){return this.resultCb()}};VX=class VX{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[L]="PreparedQuery";joinsNotNullableMap;async queryWithCache(D,$,F){if(this.cache===void 0||z(this.cache,HX)||this.queryMetadata===void 0)try{return await F()}catch(X){throw new i2(D,$,X)}if(this.cacheConfig&&!this.cacheConfig.enable)try{return await F()}catch(X){throw new i2(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 i2(D,$,X)}if(!this.cacheConfig)try{return await F()}catch(X){throw new i2(D,$,X)}if(this.queryMetadata.type==="select"){let X=await this.cache.get(this.cacheConfig.tag??await WX(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 i2(D,$,G)}return await this.cache.put(this.cacheConfig.tag??await WX(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 i2(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 ZQ(()=>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,$)}}};QX=class QX{constructor(D){this.dialect=D}static[L]="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 J6({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")}};_X=class _X extends v3{constructor(D,$,F,X,J=0){super(D,$,F,X);this.schema=X,this.nestedIndex=J}static[L]="SQLiteTransaction";rollback(){throw new oF}}});var qQ=()=>{};var G4=Z(()=>{EQ();eV();eF();Y4();D4();uF();XQ();JQ();YX();UX();e8();mF();X6();qQ()});var AX,KX,NQ;var OX=Z(()=>{o();g7();tD();G4();UX();M0();AX=class AX extends QX{constructor(D,$,F,X={}){super($);this.client=D,this.schema=F,this.logger=X.logger??new PF}static[L]="SQLiteBunSession";logger;exec(D){this.client.exec(D)}prepareQuery(D,$,F,X,J){let G=this.client.prepare(D.sql);return new NQ(G,D,this.logger,$,F,X,J)}transaction(D,$={}){let F=new KX("sync",this.dialect,this,this.schema),X;return this.client.transaction(()=>{X=D(F)})[$.behavior??"deferred"](),X}};KX=class KX extends _X{static[L]="SQLiteBunTransaction";transaction(D){let $=`sp${this.nestedIndex}`,F=new KX("sync",this.dialect,this.session,this.schema,this.nestedIndex+1);this.session.run(M.raw(`savepoint ${$}`));try{let X=D(F);return this.session.run(M.raw(`release savepoint ${$}`)),X}catch(X){throw this.session.run(M.raw(`rollback to savepoint ${$}`)),X}}};NQ=class NQ extends VX{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[L]="SQLiteBunPreparedQuery";run(D){let $=q3(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=q3(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)=>bF($,H,J))}get(D){let $=q3(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 bF(X,F,J)}values(D){let $=q3(this.query.params,D??{});return this.logger.logQuery(this.query.sql,$),this.stmt.values(...$)}isResponseInArrayMode(){return this._isResponseInArrayMode}}});import{Database as B4}from"bun:sqlite";function G6(D,$={}){let F=new b3({casing:$.casing}),X;if($.logger===!0)X=new NF;else if($.logger!==!1)X=$.logger;let J;if($.schema){let B=OV($.schema,EV);J={fullSchema:$.schema,schema:B.tables,tableNamesMap:B.tableNamesMap}}let G=new AX(D,F,J,{logger:X}),Y=new PQ("sync",F,G,J);return Y.$client=D,Y}function B6(...D){if(D[0]===void 0||typeof D[0]==="string"){let $=D[0]===void 0?new B4:new B4(D[0]);return G6($,D[1])}if(lW(D[0])){let{connection:$,client:F,...X}=D[0];if(F)return G6(F,X);if(typeof $==="object"){let{source:G,...Y}=$,B=Object.values(Y).filter((W)=>W!==void 0).length?Y:void 0,H=new B4(G,B);return G6(H,X)}let J=new B4($);return G6(J,X)}return G6(D[0],D[1])}var PQ;var LQ=Z(()=>{o();g7();I3();Y4();D4();M0();OX();PQ=class PQ extends v3{static[L]="BunSQLiteDatabase"};((D)=>{function $(F){return G6({},F)}D.mock=$})(B6||(B6={}))});var RX=Z(()=>{LQ();OX()});import Tj from"crypto";import EX from"fs";function jQ(D){let $=D.migrationsFolder,F=[],X=`${$}/meta/_journal.json`;if(!EX.existsSync(X))throw Error("Can't find meta/_journal.json file");let J=EX.readFileSync(`${$}/meta/_journal.json`).toString(),G=JSON.parse(J);for(let Y of G.entries){let B=`${$}/${Y.tag}.sql`;try{let H=EX.readFileSync(`${$}/${Y.tag}.sql`).toString(),W=H.split("--> statement-breakpoint").map((Q)=>{return Q});F.push({sql:W,bps:Y.breakpoints,folderMillis:Y.when,hash:Tj.createHash("sha256").update(H).digest("hex")})}catch{throw Error(`No file ${B} found in ${$} folder`)}}return F}var zQ=()=>{};function H4(D,$){let F=jQ($);D.dialect.migrate(F,D.session,$)}var CX=Z(()=>{zQ()});var _0=Z(()=>{n7();IF();Q2();o();o7();g7();l2();I3();tF();_2();V0();M0();d2()});var q4={};m8(q4,{workerSecrets:()=>U0,workerIdentity:()=>g0,workerConfig:()=>O2,skillDrafts:()=>q0,skillBindings:()=>m3,sessionEntries:()=>WD,messages:()=>d,executionLogs:()=>a2,evolutionObservations:()=>K2,cronJobs:()=>ND,conversations:()=>c,agentTasks:()=>q8});var q8,c,WD,d,a2,m3,q0,K2,g0,O2,ND,U0;var bX=Z(()=>{G4();q8=Q0("agent_tasks",{id:I("id").primaryKey(),prompt:I("prompt").notNull(),status:I("status",{enum:["queued","running","succeeded","failed","cancelled"]}).notNull(),conversationId:I("conversation_id"),createdAt:I("created_at").notNull().$defaultFn(()=>new Date().toISOString()),finishedAt:I("finished_at"),result:I("result",{mode:"json"}).$type(),error:I("error")},(D)=>({createdAtIdx:x0("agent_tasks_created_at_idx").on(D.createdAt)})),c=Q0("conversations",{id:I("id").primaryKey(),taskId:I("task_id").references(()=>q8.id),channel:I("channel").$type().notNull(),chatId:I("chat_id").notNull(),threadId:I("thread_id"),status:I("status",{enum:["open","closed"]}).notNull().default("open"),summary:I("summary"),startedAt:I("started_at").notNull().$defaultFn(()=>new Date().toISOString()),lastActiveAt:I("last_active_at").notNull().$defaultFn(()=>new Date().toISOString()),closedAt:I("closed_at")},(D)=>({lookupIdx:x0("conversations_lookup_idx").on(D.channel,D.chatId,D.threadId,D.status),lastActiveAtIdx:x0("conversations_last_active_at_idx").on(D.lastActiveAt)})),WD=Q0("session_entries",{sessionKey:I("session_key").primaryKey(),currentConversationId:I("current_conversation_id").notNull().references(()=>c.id),channel:I("channel").$type().notNull(),chatId:I("chat_id").notNull(),threadId:I("thread_id"),accountId:I("account_id"),status:I("status",{enum:["active","closed"]}).notNull().default("active"),sessionStartedAt:I("session_started_at").notNull().$defaultFn(()=>new Date().toISOString()),lastInteractionAt:I("last_interaction_at").notNull().$defaultFn(()=>new Date().toISOString()),resetAt:I("reset_at"),resetReason:I("reset_reason"),contextTokens:ID("context_tokens").notNull().default(0),totalTokens:ID("total_tokens").notNull().default(0),totalTokensFresh:ID("total_tokens_fresh").notNull().default(0),compactionCount:ID("compaction_count").notNull().default(0),memoryFlushAt:I("memory_flush_at"),memoryFlushCompactionCount:ID("memory_flush_compaction_count").notNull().default(0),engineBindings:I("engine_bindings",{mode:"json"}).$type().notNull().$defaultFn(()=>({})),createdAt:I("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:I("updated_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({currentConversationIdIdx:x0("session_entries_current_conversation_id_idx").on(D.currentConversationId),lastInteractionAtIdx:x0("session_entries_last_interaction_at_idx").on(D.lastInteractionAt)})),d=Q0("messages",{id:ID("id").primaryKey({autoIncrement:!0}),conversationId:I("conversation_id").notNull().references(()=>c.id,{onDelete:"cascade"}),role:I("role",{enum:["system","user","assistant","tool"]}).notNull(),content:I("content").notNull(),toolCalls:I("tool_calls",{mode:"json"}).$type(),toolCallId:I("tool_call_id"),tokensIn:ID("tokens_in"),tokensOut:ID("tokens_out"),richMetadata:I("rich_metadata"),createdAt:I("created_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({conversationIdIdx:x0("messages_conversation_id_idx").on(D.conversationId)})),a2=Q0("execution_logs",{id:ID("id").primaryKey({autoIncrement:!0}),conversationId:I("conversation_id"),toolName:I("tool_name").notNull(),params:I("params",{mode:"json"}).$type(),result:I("result",{mode:"json"}).$type(),duration:ID("duration"),createdAt:I("created_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({conversationIdIdx:x0("execution_logs_conversation_id_idx").on(D.conversationId)})),m3=Q0("skill_bindings",{id:ID("id").primaryKey({autoIncrement:!0}),source:I("source").$type().notNull(),brainName:I("brain_name"),skillName:I("skill_name").notNull(),enabled:ID("enabled",{mode:"boolean"}).notNull().default(!0),priority:ID("priority").notNull().default(0),config:I("config",{mode:"json"}).$type(),createdAt:I("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:I("updated_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({uniqueBinding:FQ("skill_bindings_source_brain_name_idx").on(D.source,D.brainName,D.skillName)})),q0=Q0("skill_drafts",{id:ID("id").primaryKey({autoIncrement:!0}),proposedName:I("proposed_name").notNull(),source:I("source").$type().notNull(),bodyMarkdown:I("body_markdown").notNull(),rationale:I("rationale").notNull().default(""),status:I("status").$type().notNull().default("pending"),createdAt:I("created_at").notNull().$defaultFn(()=>new Date().toISOString()),decidedAt:I("decided_at"),decidedBy:I("decided_by")}),K2=Q0("evolution_observations",{id:ID("id").primaryKey({autoIncrement:!0}),conversationId:I("conversation_id"),kind:I("kind").notNull(),payload:I("payload",{mode:"json"}).$type().notNull(),noticedAt:I("noticed_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({noticedAtIdx:x0("evolution_observations_noticed_at_idx").on(D.noticedAt)})),g0=Q0("worker_identity",{pk:I("pk").primaryKey().default("default"),workerId:I("worker_id").notNull().unique(),apiTokenEnc:I("api_token_enc").notNull(),nonce:I("nonce").notNull(),authTag:I("auth_tag").notNull(),bootstrapShownAt:I("bootstrap_shown_at").notNull().$defaultFn(()=>new Date().toISOString()),createdAt:I("created_at").notNull().$defaultFn(()=>new Date().toISOString()),rotatedAt:I("rotated_at")}),O2=Q0("worker_config",{pk:I("pk").primaryKey().default("default"),configJson:I("config_json",{mode:"json"}).$type().notNull(),version:ID("version").notNull().default(1),updatedAt:I("updated_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedBy:I("updated_by",{enum:["bootstrap","api","cli"]})}),ND=Q0("cron_jobs",{id:I("id").primaryKey(),expression:I("expression").notNull(),prompt:I("prompt").notNull(),channel:I("channel").$type().notNull(),chatId:I("chat_id").notNull(),accountId:I("account_id").notNull(),enabled:ID("enabled",{mode:"boolean"}).notNull().default(!0),lastRunAt:I("last_run_at"),nextRunAt:I("next_run_at"),createdAt:I("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:I("updated_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({dueIdx:x0("cron_jobs_due_idx").on(D.enabled,D.nextRunAt)})),U0=Q0("worker_secrets",{id:ID("id").primaryKey({autoIncrement:!0}),key:I("key").notNull().unique(),valueEnc:I("value_enc").notNull(),nonce:I("nonce").notNull(),authTag:I("auth_tag").notNull(),createdAt:I("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:I("updated_at").notNull().$defaultFn(()=>new Date().toISOString())})});var gX={};m8(gX,{workerSecrets:()=>U0,workerSchema:()=>q4,workerIdentity:()=>g0,workerConfig:()=>O2,upsertSessionEntry:()=>kX,updateSessionEngineBinding:()=>xX,touchSessionEntry:()=>Q6,skillDrafts:()=>q0,skillBindings:()=>m3,sessionEntries:()=>WD,runWorkerMigrations:()=>d3,rotateSessionConversation:()=>vX,recordSessionCompaction:()=>hX,messages:()=>d,initWorkerDb:()=>c3,getWorkerDb:()=>u,getSessionEntry:()=>B0,executionLogs:()=>a2,evolutionObservations:()=>K2,defaultWorkerMigrationsFolder:()=>V6,cronJobs:()=>ND,conversations:()=>c,closeWorkerDb:()=>OI,agentTasks:()=>q8});import{existsSync as g_}from"fs";import fX from"path";import{fileURLToPath as _I}from"url";import{Database as UI}from"bun:sqlite";function AI(D){let $=fX.resolve(y_,"../../drizzle",D);if(g_($))return $;let F=fX.resolve(y_,"drizzle",D);if(g_(F))return F;return $}function KI(D){let $=new UI(D,{create:!0});return $.exec("PRAGMA journal_mode = WAL"),$.exec("PRAGMA foreign_keys = ON"),B6($,{schema:q4})}function c3(D){return p3=KI(D),p3}function u(){if(!p3)throw Error("Worker database not initialized. Call initWorkerDb() first.");return p3}function OI(){p3=null}function d3(D=V6){H4(u(),{migrationsFolder:D})}function B0(D){return u().select().from(WD).where(v(WD.sessionKey,D)).get()??null}function kX(D){let $=u(),F=D.at??new Date().toISOString(),X=B0(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(v(WD.sessionKey,D.sessionKey)).run();return B0(D.sessionKey)}function Q6(D,$={}){if(!B0(D))return null;let X=$.at??new Date().toISOString();return u().update(WD).set({lastInteractionAt:X,updatedAt:X,...$.contextTokens===void 0?{}:{contextTokens:$.contextTokens},...$.totalTokens===void 0?{}:{totalTokens:$.totalTokens},...$.totalTokensFresh===void 0?{}:{totalTokensFresh:$.totalTokensFresh}}).where(v(WD.sessionKey,D)).run(),B0(D)}function vX(D){if(!B0(D.sessionKey))return null;let F=D.at??new Date().toISOString();return u().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(v(WD.sessionKey,D.sessionKey)).run(),B0(D.sessionKey)}function hX(D,$={}){let F=B0(D);if(!F)return null;let X=$.at??new Date().toISOString(),J=F.compactionCount+1;return u().update(WD).set({compactionCount:J,...$.memoryFlushAt===void 0?{}:{memoryFlushAt:$.memoryFlushAt,memoryFlushCompactionCount:J},updatedAt:X}).where(v(WD.sessionKey,D)).run(),B0(D)}function xX(D,$,F,X){let J=B0(D);if(!J)return null;let G={...J.engineBindings};if(F===null)delete G[$];else G[$]=F;return u().update(WD).set({engineBindings:G,updatedAt:X??new Date().toISOString()}).where(v(WD.sessionKey,D)).run(),B0(D)}var y_,V6,p3=null;var TD=Z(()=>{_0();RX();CX();bX();bX();y_=fX.dirname(_I(import.meta.url));V6=AI("worker")});import u_ from"path";import m_ from"process";function EI(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 X1(){if(N4)return N4;let D=RI.parse(m_.env);return N4=Object.freeze({...D,perEngineLimits:Object.freeze({...EI(m_.env)})}),N4}var RI,N4=null,i;var P4=Z(()=>{W2();J0();TD();yD();RI=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(U3),WORKER_DB_PATH:V.string().default(()=>u_.join(B2(),"worker.db")),WORKER_MIGRATIONS_FOLDER:V.string().default(()=>V6),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(a1).optional(),AIWORKER_FORCE_TOKEN:V.string().regex(c2).optional(),AIWORKER_ADVERTISED_BASE_URL:V.string().optional(),WORKER_DATA_ROOT:V.string().default(()=>u_.join(B2(),"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 X1()[$]},has(D,$){return $ in X1()},ownKeys(D){return Reflect.ownKeys(X1())},getOwnPropertyDescriptor(D,$){return Reflect.getOwnPropertyDescriptor(X1(),$)}})});function o2(D){let $=CI[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 p_(D){if(!D||typeof D!=="object")return{...i3};let $=D;if(typeof $.engine==="string")return $;let F=$.type;if(typeof F!=="string")return{...i3};switch(F){case"http":return{engine:"http",variant:"default",overrides:l3({baseUrl:$.baseUrl,apiKey:$.apiKey,model:$.model,timeoutMs:$.timeoutMs})};case"mcp":return{engine:"mcp",variant:"default",overrides:l3({url:$.url,token:$.token,defaultModel:$.defaultModel,tools:$.tools,timeoutMs:$.timeoutMs})};case"cli":return{engine:"cli",variant:"default",overrides:l3({command:$.command,args:$.args,cwd:$.cwd,env:$.env,timeoutMs:$.timeoutMs,sandbox:$.sandbox})};case"claude-code":return{engine:"claude-code",variant:"default",overrides:l3({model:$.model,cliVersion:$.cliVersion,extraArgs:$.extraArgs,env:$.env,workspaceRoot:$.workspaceRoot,timeoutMs:$.timeoutMs})};case"acp":return{engine:"acp",variant:$.agent==="qwen"?"qwen":"gemini",overrides:l3({model:$.model,cliVersion:$.cliVersion,extraArgs:$.extraArgs,env:$.env,timeoutMs:$.timeoutMs})};default:return{...i3}}}function l3(D){let $={};for(let[F,X]of Object.entries(D))if(X!==void 0)$[F]=X;return $}var CI,i3;var J1=Z(()=>{CI={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}}}},i3={engine:"http",variant:"default",overrides:{baseUrl:"http://localhost:9999",model:"stub"}}});var _6;var yX=Z(()=>{J1();_6={brains:[],brainWriteTarget:"",brainRetrieval:"first-match",executor:{...i3},channels:[],evolution:{enabled:!1,observationRetentionDays:7}}});async function Y1(D){let $=await D.select().from(O2).where(v(O2.pk,"default")).get();if($)return{config:MI($.configJson),version:$.version};let F=new Date().toISOString();return await D.insert(O2).values({pk:"default",configJson:_6,version:1,updatedAt:F,updatedBy:"bootstrap"}).run(),{config:_6,version:1}}function MI(D){let $=D.executor;if($&&typeof $==="object"&&"engine"in $)return D;return{...D,executor:p_($)}}var c_=Z(()=>{TD();_0();J1();yX()});import{randomBytes as ZI}from"crypto";function U6(){let D=ZI(32),$=`${L7}${qI(D)}`;if(!U8($))throw Error("mintApiToken: generated token failed isWorkerApiToken check");return $}function qI(D){return D.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function G1(D,$,F={}){let X=await D.select().from(g0).where(v(g0.pk,"default")).get();if(X){let _=$.decryptString(X.apiTokenEnc,X.nonce,X.authTag);if(!U8(_))throw Error("loadOrMintIdentity: decrypted API token failed isWorkerApiToken check");return await CF(X.workerId),{workerId:X.workerId,token:_,justMinted:!1}}let J=F.forceId??L4();if(!a1.test(J))throw Error(`loadOrMintIdentity: forceId ${J} does not match WORKER_ID_PATTERN`);let G=F.forceToken??U6();if(!U8(G))throw Error("loadOrMintIdentity: forceToken does not match WORKER_API_TOKEN_PATTERN");let Y=G,{ciphertext:B,nonce:H,authTag:W}=$.encryptString(Y),Q=new Date().toISOString();return await D.insert(g0).values({pk:"default",workerId:J,apiTokenEnc:B,nonce:H,authTag:W,bootstrapShownAt:Q,createdAt:Q}).run(),await CF(J),{workerId:J,token:Y,justMinted:!0}}var L4;var uX=Z(()=>{W2();J0();TD();_0();L4=GF});import NI from"process";function B1(D,$,F,X,J=NI.stdout){if(!X)return;J.write(`[worker] id=${D}
118
+ `;$.run(J);let Y=$.values(M`SELECT id, hash, created_at FROM ${M.identifier(X)} ORDER BY created_at DESC LIMIT 1`)[0]??void 0;$.run(M`BEGIN`);try{for(let B of D)if(!Y||Number(Y[2])<B.folderMillis){for(let H of B.sql)$.run(M.raw(H));$.run(M`INSERT INTO ${M.identifier(X)} ("hash", "created_at") VALUES(${B.hash}, ${B.folderMillis})`)}$.run(M`COMMIT`)}catch(B){throw $.run(M`ROLLBACK`),B}}}});var DX;var QQ=Z(()=>{o();DX=class DX{static[P]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}});function $4(D,$){return(F,X,...J)=>{let G=[X,...J].map((Y)=>({type:D,isAll:$,rightSelect:Y}));for(let Y of G)if(!N3(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 A2,_Q,$X,Pj=()=>({union:Lj,unionAll:jj,intersect:zj,except:Ij}),Lj,jj,zj,Ij;var FX=Z(()=>{o();QQ();l2();F6();tD();_2();V0();M0();d2();X6();e7();A2=class A2{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,pD))F=Object.fromEntries(Object.keys(D._.selectedFields).map((X)=>[X,D[X]]));else if(I(D,D1))F=D[fD].selectedFields;else if(I(D,m))F={};else F=lW(D);return new $X({table:D,fields:F,isPartialSelect:$,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct})}};_Q=class _Q extends DX{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=P3(D),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{};for(let B of U2(D))this.usedTables.add(B)}getUsedTables(){return[...this.usedTables]}createJoin(D){return($,F)=>{let X=this.tableName,J=P3($);for(let G of U2($))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($,pD)?$._.selectedFields:I($,v0)?$[fD].selectedFields:$[x.Symbol.Columns];this.config.fields[J]=G}}if(typeof F==="function")F=F(new Proxy(this.config.fields,new cD({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(Pj()):F;if(!N3(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 cD({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=D,this}having(D){if(typeof D==="function")D=D(new Proxy(this.config.fields,new cD({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 cD({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 cD({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(...U2(this.config.table)),this.config.joins)for(let F of this.config.joins)$.push(...U2(F.table));return new Proxy(new pD(this.getSQL(),this.config.fields,D,!1,[...new Set($)]),new cD({alias:D,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new cD({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}};$X=class $X extends _Q{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 $=h0(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()}};dW($X,[E0]);Lj=$4("union",!1),jj=$4("union",!0),zj=$4("intersect",!1),Ij=$4("except",!1)});var f3;var XX=Z(()=>{o();F6();D4();_2();FX();f3=class f3{static[P]="SQLiteQueryBuilder";dialect;dialectConfig;constructor(D){this.dialect=I(D,S3)?D:void 0,this.dialectConfig=I(D,S3)?void 0:D}$with=(D,$)=>{let F=this;return{as:(J)=>{if(typeof J==="function")J=J(F);return new Proxy(new Z3(J.getSQL(),$??("getSelectedFields"in J?J.getSelectedFields()??{}:{}),D,!0),new cD({alias:D,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...D){let $=this;function F(J){return new A2({fields:J??void 0,session:void 0,dialect:$.getDialect(),withList:D})}function X(J){return new A2({fields:J??void 0,session:void 0,dialect:$.getDialect(),withList:D,distinct:!0})}return{select:F,selectDistinct:X}}select(D){return new A2({fields:D??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(D){return new A2({fields:D??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}getDialect(){if(!this.dialect)this.dialect=new b3(this.dialectConfig);return this.dialect}}});var F4,JX;var UQ=Z(()=>{o();l2();tD();e8();V0();M0();X6();XX();F4=class F4{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[x.Symbol.Columns];for(let G of Object.keys(F)){let Y=F[G];X[G]=I(Y,m)?Y:new I0(Y,J[G])}return X});return new JX(this.table,$,this.session,this.dialect,this.withList)}select(D){let $=typeof D==="function"?D(new f3):D;if(!I($,m)&&!N3(this.table[u7],$._.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 JX(this.table,$,this.session,this.dialect,this.withList,!0)}};JX=class JX extends E0{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[D0.Symbol.Columns]){return this.config.returning=h0(D),this}onConflictDoNothing(D={}){if(!this.config.onConflict)this.config.onConflict=[];if(D.target===void 0)this.config.onConflict.push(M` on conflict do nothing`);else{let $=Array.isArray(D.target)?M`${D.target}`:M`${[D.target]}`,F=D.where?M` where ${D.where}`:M``;this.config.onConflict.push(M` 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?M` where ${D.where}`:void 0,F=D.targetWhere?M` where ${D.targetWhere}`:void 0,X=D.setWhere?M` where ${D.setWhere}`:void 0,J=Array.isArray(D.target)?M`${D.target}`:M`${[D.target]}`,G=this.dialect.buildUpdateSet(this.config.table,p7(this.config.table,D.set));return this.config.onConflict.push(M` 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:U2(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 X4,AQ;var KQ=Z(()=>{o();l2();F6();e8();_2();V0();M0();d2();X6();e7();X4=class X4{constructor(D,$,F,X){this.table=D,this.session=$,this.dialect=F,this.withList=X}static[P]="SQLiteUpdateBuilder";set(D){return new AQ(this.table,p7(this.table,D),this.session,this.dialect,this.withList)}};AQ=class AQ extends E0{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=P3($);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($,D0)?$[x.Symbol.Columns]:I($,pD)?$._.selectedFields:I($,D1)?$[fD].selectedFields:void 0:void 0;F=F(new Proxy(this.config.table[x.Symbol.Columns],new cD({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),J&&new Proxy(J,new cD({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}return this.config.joins.push({on:F,table:$,joinType:D,alias:X}),this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(D){return this.config.where=D,this}orderBy(...D){if(typeof D[0]==="function"){let $=D[0](new Proxy(this.config.table[x.Symbol.Columns],new cD({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[D0.Symbol.Columns]){return this.config.returning=h0(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:U2(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 YX=Z(()=>{GQ();UQ();XX();FX();KQ()});var k3;var OQ=Z(()=>{o();tD();k3=class k3 extends m{constructor(D){super(k3.buildEmbeddedCount(D.source,D.filters).queryChunks);this.params=D,this.session=D.session,this.sql=k3.buildCount(D.source,D.filters)}sql;static[P]="SQLiteCountBuilderAsync";[Symbol.toStringTag]="SQLiteCountBuilderAsync";session;static buildEmbeddedCount(D,$){return M`(select count(*) from ${D}${M.raw(" where ").if($)}${$})`}static buildCount(D,$){return M`select count(*) from ${D}${M.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 BX,J4,GX;var RQ=Z(()=>{o();l2();I3();BX=class BX{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 GX(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?D:{},"many"):new J4(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?D:{},"many")}findFirst(D){return this.mode==="sync"?new GX(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?{...D,limit:1}:{limit:1},"first"):new J4(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?{...D,limit:1}:{limit:1},"first")}};J4=class J4 extends E0{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)=>l7(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()}};GX=class GX extends J4{static[P]="SQLiteSyncRelationalQuery";sync(){return this.executeRaw()}}});var Y6;var EQ=Z(()=>{o();l2();Y6=class Y6 extends E0{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 v3;var Y4=Z(()=>{o();F6();tD();YX();_2();OQ();RQ();EQ();v3=class v3{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 BX(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 f3(F.dialect));return new Proxy(new Z3(J.getSQL(),$??("getSelectedFields"in J?J.getSelectedFields()??{}:{}),D,!0),new cD({alias:D,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(D,$){return new k3({source:D,filters:$,session:this.session})}with(...D){let $=this;function F(B){return new A2({fields:B??void 0,session:$.session,dialect:$.dialect,withList:D})}function X(B){return new A2({fields:B??void 0,session:$.session,dialect:$.dialect,withList:D,distinct:!0})}function J(B){return new X4(B,$.session,$.dialect,D)}function G(B){return new F4(B,$.session,$.dialect,D)}function Y(B){return new a7(B,$.session,$.dialect,D)}return{select:F,selectDistinct:X,update:J,insert:G,delete:Y}}select(D){return new A2({fields:D??void 0,session:this.session,dialect:this.dialect})}selectDistinct(D){return new A2({fields:D??void 0,session:this.session,dialect:this.dialect,distinct:!0})}update(D){return new X4(D,this.session,this.dialect)}$cache;insert(D){return new F4(D,this.session,this.dialect)}delete(D){return new a7(D,this.session,this.dialect)}run(D){let $=typeof D==="string"?M.raw(D):D.getSQL();if(this.resultKind==="async")return new Y6(async()=>this.session.run($),()=>$,"run",this.dialect,this.session.extractRawRunValueFromBatchResult.bind(this.session));return this.session.run($)}all(D){let $=typeof D==="string"?M.raw(D):D.getSQL();if(this.resultKind==="async")return new Y6(async()=>this.session.all($),()=>$,"all",this.dialect,this.session.extractRawAllValueFromBatchResult.bind(this.session));return this.session.all($)}get(D){let $=typeof D==="string"?M.raw(D):D.getSQL();if(this.resultKind==="async")return new Y6(async()=>this.session.get($),()=>$,"get",this.dialect,this.session.extractRawGetValueFromBatchResult.bind(this.session));return this.session.get($)}values(D){let $=typeof D==="string"?M.raw(D):D.getSQL();if(this.resultKind==="async")return new Y6(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 CQ=()=>{};async function WX(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 MQ,HX;var ZQ=Z(()=>{o();MQ=class MQ{static[P]="Cache"};HX=class HX extends MQ{strategy(){return"all"}static[P]="NoopCache";async get(D){return}async put(D,$,F,X){}async onMutate(D){}}});var qQ,VX,QX,_X;var UX=Z(()=>{ZQ();o();o7();l2();Y4();qQ=class qQ extends E0{constructor(D){super();this.resultCb=D}static[P]="ExecuteResultSync";async execute(){return this.resultCb()}sync(){return this.resultCb()}};VX=class VX{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,HX)||this.queryMetadata===void 0)try{return await F()}catch(X){throw new i2(D,$,X)}if(this.cacheConfig&&!this.cacheConfig.enable)try{return await F()}catch(X){throw new i2(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 i2(D,$,X)}if(!this.cacheConfig)try{return await F()}catch(X){throw new i2(D,$,X)}if(this.queryMetadata.type==="select"){let X=await this.cache.get(this.cacheConfig.tag??await WX(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 i2(D,$,G)}return await this.cache.put(this.cacheConfig.tag??await WX(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 i2(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 qQ(()=>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,$)}}};QX=class QX{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 J6({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")}};_X=class _X extends v3{constructor(D,$,F,X,J=0){super(D,$,F,X);this.schema=X,this.nestedIndex=J}static[P]="SQLiteTransaction";rollback(){throw new oF}}});var NQ=()=>{};var G4=Z(()=>{CQ();DQ();eF();Y4();D4();uF();JQ();YQ();YX();UX();e8();mF();X6();NQ()});var AX,KX,PQ;var OX=Z(()=>{o();g7();tD();G4();UX();M0();AX=class AX extends QX{constructor(D,$,F,X={}){super($);this.client=D,this.schema=F,this.logger=X.logger??new PF}static[P]="SQLiteBunSession";logger;exec(D){this.client.exec(D)}prepareQuery(D,$,F,X,J){let G=this.client.prepare(D.sql);return new PQ(G,D,this.logger,$,F,X,J)}transaction(D,$={}){let F=new KX("sync",this.dialect,this,this.schema),X;return this.client.transaction(()=>{X=D(F)})[$.behavior??"deferred"](),X}};KX=class KX extends _X{static[P]="SQLiteBunTransaction";transaction(D){let $=`sp${this.nestedIndex}`,F=new KX("sync",this.dialect,this.session,this.schema,this.nestedIndex+1);this.session.run(M.raw(`savepoint ${$}`));try{let X=D(F);return this.session.run(M.raw(`release savepoint ${$}`)),X}catch(X){throw this.session.run(M.raw(`rollback to savepoint ${$}`)),X}}};PQ=class PQ extends VX{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 $=q3(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=q3(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)=>bF($,H,J))}get(D){let $=q3(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 bF(X,F,J)}values(D){let $=q3(this.query.params,D??{});return this.logger.logQuery(this.query.sql,$),this.stmt.values(...$)}isResponseInArrayMode(){return this._isResponseInArrayMode}}});import{Database as B4}from"bun:sqlite";function G6(D,$={}){let F=new b3({casing:$.casing}),X;if($.logger===!0)X=new NF;else if($.logger!==!1)X=$.logger;let J;if($.schema){let B=RV($.schema,CV);J={fullSchema:$.schema,schema:B.tables,tableNamesMap:B.tableNamesMap}}let G=new AX(D,F,J,{logger:X}),Y=new LQ("sync",F,G,J);return Y.$client=D,Y}function B6(...D){if(D[0]===void 0||typeof D[0]==="string"){let $=D[0]===void 0?new B4:new B4(D[0]);return G6($,D[1])}if(iW(D[0])){let{connection:$,client:F,...X}=D[0];if(F)return G6(F,X);if(typeof $==="object"){let{source:G,...Y}=$,B=Object.values(Y).filter((W)=>W!==void 0).length?Y:void 0,H=new B4(G,B);return G6(H,X)}let J=new B4($);return G6(J,X)}return G6(D[0],D[1])}var LQ;var jQ=Z(()=>{o();g7();I3();Y4();D4();M0();OX();LQ=class LQ extends v3{static[P]="BunSQLiteDatabase"};((D)=>{function $(F){return G6({},F)}D.mock=$})(B6||(B6={}))});var RX=Z(()=>{jQ();OX()});import Tj from"crypto";import EX from"fs";function zQ(D){let $=D.migrationsFolder,F=[],X=`${$}/meta/_journal.json`;if(!EX.existsSync(X))throw Error("Can't find meta/_journal.json file");let J=EX.readFileSync(`${$}/meta/_journal.json`).toString(),G=JSON.parse(J);for(let Y of G.entries){let B=`${$}/${Y.tag}.sql`;try{let H=EX.readFileSync(`${$}/${Y.tag}.sql`).toString(),W=H.split("--> statement-breakpoint").map((Q)=>{return Q});F.push({sql:W,bps:Y.breakpoints,folderMillis:Y.when,hash:Tj.createHash("sha256").update(H).digest("hex")})}catch{throw Error(`No file ${B} found in ${$} folder`)}}return F}var IQ=()=>{};function H4(D,$){let F=zQ($);D.dialect.migrate(F,D.session,$)}var CX=Z(()=>{IQ()});var _0=Z(()=>{n7();IF();Q2();o();o7();g7();l2();I3();tF();_2();V0();M0();d2()});var q4={};m8(q4,{workerSecrets:()=>U0,workerIdentity:()=>g0,workerConfig:()=>O2,skillDrafts:()=>q0,skillBindings:()=>m3,sessionEntries:()=>WD,messages:()=>l,executionLogs:()=>a2,evolutionObservations:()=>K2,cronJobs:()=>ND,conversations:()=>c,agentTasks:()=>q8});var q8,c,WD,l,a2,m3,q0,K2,g0,O2,ND,U0;var bX=Z(()=>{G4();q8=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:x0("agent_tasks_created_at_idx").on(D.createdAt)})),c=Q0("conversations",{id:T("id").primaryKey(),taskId:T("task_id").references(()=>q8.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:x0("conversations_lookup_idx").on(D.channel,D.chatId,D.threadId,D.status),lastActiveAtIdx:x0("conversations_last_active_at_idx").on(D.lastActiveAt)})),WD=Q0("session_entries",{sessionKey:T("session_key").primaryKey(),currentConversationId:T("current_conversation_id").notNull().references(()=>c.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:ID("context_tokens").notNull().default(0),totalTokens:ID("total_tokens").notNull().default(0),totalTokensFresh:ID("total_tokens_fresh").notNull().default(0),compactionCount:ID("compaction_count").notNull().default(0),memoryFlushAt:T("memory_flush_at"),memoryFlushCompactionCount:ID("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:x0("session_entries_current_conversation_id_idx").on(D.currentConversationId),lastInteractionAtIdx:x0("session_entries_last_interaction_at_idx").on(D.lastInteractionAt)})),l=Q0("messages",{id:ID("id").primaryKey({autoIncrement:!0}),conversationId:T("conversation_id").notNull().references(()=>c.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:ID("tokens_in"),tokensOut:ID("tokens_out"),richMetadata:T("rich_metadata"),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({conversationIdIdx:x0("messages_conversation_id_idx").on(D.conversationId)})),a2=Q0("execution_logs",{id:ID("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:ID("duration"),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({conversationIdIdx:x0("execution_logs_conversation_id_idx").on(D.conversationId)})),m3=Q0("skill_bindings",{id:ID("id").primaryKey({autoIncrement:!0}),source:T("source").$type().notNull(),brainName:T("brain_name"),skillName:T("skill_name").notNull(),enabled:ID("enabled",{mode:"boolean"}).notNull().default(!0),priority:ID("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:XQ("skill_bindings_source_brain_name_idx").on(D.source,D.brainName,D.skillName)})),q0=Q0("skill_drafts",{id:ID("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")}),K2=Q0("evolution_observations",{id:ID("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:x0("evolution_observations_noticed_at_idx").on(D.noticedAt)})),g0=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")}),O2=Q0("worker_config",{pk:T("pk").primaryKey().default("default"),configJson:T("config_json",{mode:"json"}).$type().notNull(),version:ID("version").notNull().default(1),updatedAt:T("updated_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedBy:T("updated_by",{enum:["bootstrap","api","cli"]})}),ND=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:ID("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:x0("cron_jobs_due_idx").on(D.enabled,D.nextRunAt)})),U0=Q0("worker_secrets",{id:ID("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 gX={};m8(gX,{workerSecrets:()=>U0,workerSchema:()=>q4,workerIdentity:()=>g0,workerConfig:()=>O2,upsertSessionEntry:()=>kX,updateSessionEngineBinding:()=>xX,touchSessionEntry:()=>Q6,skillDrafts:()=>q0,skillBindings:()=>m3,sessionEntries:()=>WD,runWorkerMigrations:()=>d3,rotateSessionConversation:()=>vX,recordSessionCompaction:()=>hX,messages:()=>l,initWorkerDb:()=>c3,getWorkerDb:()=>u,getSessionEntry:()=>B0,executionLogs:()=>a2,evolutionObservations:()=>K2,defaultWorkerMigrationsFolder:()=>V6,cronJobs:()=>ND,conversations:()=>c,closeWorkerDb:()=>OI,agentTasks:()=>q8});import{existsSync as y_}from"fs";import fX from"path";import{fileURLToPath as _I}from"url";import{Database as UI}from"bun:sqlite";function AI(D){let $=fX.resolve(u_,"../../drizzle",D);if(y_($))return $;let F=fX.resolve(u_,"drizzle",D);if(y_(F))return F;return $}function KI(D){let $=new UI(D,{create:!0});return $.exec("PRAGMA journal_mode = WAL"),$.exec("PRAGMA foreign_keys = ON"),B6($,{schema:q4})}function c3(D){return p3=KI(D),p3}function u(){if(!p3)throw Error("Worker database not initialized. Call initWorkerDb() first.");return p3}function OI(){p3=null}function d3(D=V6){H4(u(),{migrationsFolder:D})}function B0(D){return u().select().from(WD).where(v(WD.sessionKey,D)).get()??null}function kX(D){let $=u(),F=D.at??new Date().toISOString(),X=B0(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(v(WD.sessionKey,D.sessionKey)).run();return B0(D.sessionKey)}function Q6(D,$={}){if(!B0(D))return null;let X=$.at??new Date().toISOString();return u().update(WD).set({lastInteractionAt:X,updatedAt:X,...$.contextTokens===void 0?{}:{contextTokens:$.contextTokens},...$.totalTokens===void 0?{}:{totalTokens:$.totalTokens},...$.totalTokensFresh===void 0?{}:{totalTokensFresh:$.totalTokensFresh}}).where(v(WD.sessionKey,D)).run(),B0(D)}function vX(D){if(!B0(D.sessionKey))return null;let F=D.at??new Date().toISOString();return u().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(v(WD.sessionKey,D.sessionKey)).run(),B0(D.sessionKey)}function hX(D,$={}){let F=B0(D);if(!F)return null;let X=$.at??new Date().toISOString(),J=F.compactionCount+1;return u().update(WD).set({compactionCount:J,...$.memoryFlushAt===void 0?{}:{memoryFlushAt:$.memoryFlushAt,memoryFlushCompactionCount:J},updatedAt:X}).where(v(WD.sessionKey,D)).run(),B0(D)}function xX(D,$,F,X){let J=B0(D);if(!J)return null;let G={...J.engineBindings};if(F===null)delete G[$];else G[$]=F;return u().update(WD).set({engineBindings:G,updatedAt:X??new Date().toISOString()}).where(v(WD.sessionKey,D)).run(),B0(D)}var u_,V6,p3=null;var TD=Z(()=>{_0();RX();CX();bX();bX();u_=fX.dirname(_I(import.meta.url));V6=AI("worker")});import m_ from"path";import p_ from"process";function EI(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 X1(){if(N4)return N4;let D=RI.parse(p_.env);return N4=Object.freeze({...D,perEngineLimits:Object.freeze({...EI(p_.env)})}),N4}var RI,N4=null,n;var P4=Z(()=>{W2();J0();TD();yD();RI=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(U3),WORKER_DB_PATH:V.string().default(()=>m_.join(B2(),"worker.db")),WORKER_MIGRATIONS_FOLDER:V.string().default(()=>V6),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(a1).optional(),AIWORKER_FORCE_TOKEN:V.string().regex(c2).optional(),AIWORKER_ADVERTISED_BASE_URL:V.string().optional(),WORKER_DATA_ROOT:V.string().default(()=>m_.join(B2(),"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)});n=new Proxy({},{get(D,$){return X1()[$]},has(D,$){return $ in X1()},ownKeys(D){return Reflect.ownKeys(X1())},getOwnPropertyDescriptor(D,$){return Reflect.getOwnPropertyDescriptor(X1(),$)}})});function o2(D){let $=CI[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 c_(D){if(!D||typeof D!=="object")return{...i3};let $=D;if(typeof $.engine==="string")return $;let F=$.type;if(typeof F!=="string")return{...i3};switch(F){case"http":return{engine:"http",variant:"default",overrides:l3({baseUrl:$.baseUrl,apiKey:$.apiKey,model:$.model,timeoutMs:$.timeoutMs})};case"mcp":return{engine:"mcp",variant:"default",overrides:l3({url:$.url,token:$.token,defaultModel:$.defaultModel,tools:$.tools,timeoutMs:$.timeoutMs})};case"cli":return{engine:"cli",variant:"default",overrides:l3({command:$.command,args:$.args,cwd:$.cwd,env:$.env,timeoutMs:$.timeoutMs,sandbox:$.sandbox})};case"claude-code":return{engine:"claude-code",variant:"default",overrides:l3({model:$.model,cliVersion:$.cliVersion,extraArgs:$.extraArgs,env:$.env,workspaceRoot:$.workspaceRoot,timeoutMs:$.timeoutMs})};case"acp":return{engine:"acp",variant:$.agent==="qwen"?"qwen":"gemini",overrides:l3({model:$.model,cliVersion:$.cliVersion,extraArgs:$.extraArgs,env:$.env,timeoutMs:$.timeoutMs})};default:return{...i3}}}function l3(D){let $={};for(let[F,X]of Object.entries(D))if(X!==void 0)$[F]=X;return $}var CI,i3;var J1=Z(()=>{CI={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}}}},i3={engine:"http",variant:"default",overrides:{baseUrl:"http://localhost:9999",model:"stub"}}});var _6;var yX=Z(()=>{J1();_6={brains:[],brainWriteTarget:"",brainRetrieval:"first-match",executor:{...i3},channels:[],evolution:{enabled:!1,observationRetentionDays:7}}});async function Y1(D){let $=await D.select().from(O2).where(v(O2.pk,"default")).get();if($)return{config:MI($.configJson),version:$.version};let F=new Date().toISOString();return await D.insert(O2).values({pk:"default",configJson:_6,version:1,updatedAt:F,updatedBy:"bootstrap"}).run(),{config:_6,version:1}}function MI(D){let $=D.executor;if($&&typeof $==="object"&&"engine"in $)return D;return{...D,executor:c_($)}}var d_=Z(()=>{TD();_0();J1();yX()});import{randomBytes as ZI}from"crypto";function U6(){let D=ZI(32),$=`${L7}${qI(D)}`;if(!U8($))throw Error("mintApiToken: generated token failed isWorkerApiToken check");return $}function qI(D){return D.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function G1(D,$,F={}){let X=await D.select().from(g0).where(v(g0.pk,"default")).get();if(X){let _=$.decryptString(X.apiTokenEnc,X.nonce,X.authTag);if(!U8(_))throw Error("loadOrMintIdentity: decrypted API token failed isWorkerApiToken check");return await CF(X.workerId),{workerId:X.workerId,token:_,justMinted:!1}}let J=F.forceId??L4();if(!a1.test(J))throw Error(`loadOrMintIdentity: forceId ${J} does not match WORKER_ID_PATTERN`);let G=F.forceToken??U6();if(!U8(G))throw Error("loadOrMintIdentity: forceToken does not match WORKER_API_TOKEN_PATTERN");let Y=G,{ciphertext:B,nonce:H,authTag:W}=$.encryptString(Y),Q=new Date().toISOString();return await D.insert(g0).values({pk:"default",workerId:J,apiTokenEnc:B,nonce:H,authTag:W,bootstrapShownAt:Q,createdAt:Q}).run(),await CF(J),{workerId:J,token:Y,justMinted:!0}}var L4;var uX=Z(()=>{W2();J0();TD();_0();L4=GF});import NI from"process";function B1(D,$,F,X,J=NI.stdout){if(!X)return;J.write(`[worker] id=${D}
119
119
  `),J.write(`[worker] AIWORKER_BOOTSTRAP_TOKEN=${$}
120
120
  `),J.write(`[worker] save this token; it will not be printed again.
121
- `),F.update(g0).set({bootstrapShownAt:new Date().toISOString()}).where(v(g0.pk,"default")).run()}var d_=Z(()=>{TD();_0()});var l_=Z(()=>{c_();yX();uX();d_()});import{Buffer as i_}from"buffer";import{timingSafeEqual as PI}from"crypto";function f2(D,$){let F=i_.from(D,"utf8"),X=i_.from($,"utf8");if(F.length!==X.length)return!1;return PI(F,X)}var j4=()=>{};import{Buffer as n_}from"buffer";import{createDecipheriv as LI,createHash as jI}from"crypto";function II(D,$){let F=jI("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=LI("aes-256-cbc",F,J);return n_.concat([Y.update(G),Y.final()]).toString("utf8")}function s_(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(II(F.encrypt,$))}return F}function TI(D){return D.type==="url_verification"||D.header?.event_type==="url_verification"}function wI(D){if(typeof D.header?.token==="string")return D.header.token;if(typeof D.token==="string")return D.token;return}async function SI(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 bI(D,$){let F=mX.get(D);if(!F)F={},mX.set(D,F);if(F.current&&F.current.expiresAt-Date.now()>zI)return F.current.token;if(F.inflight)return(await F.inflight).token;let X=F;return X.inflight=SI(D,$).then((J)=>{return X.current=J,J}).finally(()=>{X.inflight=void 0}),(await X.inflight).token}function fI(D){let $=typeof D.parent_id==="string"&&D.parent_id.length>0?D.parent_id:void 0;if(!$)return;return{quote:$}}function a_(){mX.clear()}var zI=60000,mX,r_;var pX=Z(()=>{j4();mX=new Map;r_={channel:"lark",async verify(D,$,F){if(F.credentials.channel!=="lark")throw Error("lark adapter called with non-lark credentials");let X=s_(D,F.credentials.encryptKey),J=wI(X);if(J===void 0||!f2(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=s_(D,J);if(TI(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 R=JSON.parse(Y.content);B=typeof R.text==="string"?R.text:""}catch{return[]}if(!B)return[];let H=G.event?.sender,W=H?.sender_id?.open_id,Q=H?.sender_id?.name,_=Y.chat_type==="group"?`group:${Y.chat_id}`:`p2p:${W??""}`,U=fI(Y);return[{workerId:$,channel:"lark",accountId:X,chatId:_,...W===void 0?{}:{userId:W},...Q===void 0?{}:{userDisplayName:Q},text:B,...U===void 0?{}:{richMetadata:U},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 bI(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 A6(){return new Date().toISOString()}import{Buffer as o_}from"buffer";import{createHash as kI,createHmac as vI,timingSafeEqual as hI}from"crypto";function xI(D,$){return vI("sha256",D).update($,"utf8").digest("base64")}function gI(D){switch(D.type){case"user":return`user:${D.userId}`;case"group":return`group:${D.groupId}`;case"room":return`room:${D.roomId}`}}function yI(D){let $=D.message?.quotedMessageId;if(typeof $!=="string"||$.length===0)return;return{quote:$}}var t_;var e_=Z(()=>{t_={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=xI(F.credentials.channelSecret,D),G=o_.from(X,"base64"),Y=o_.from(J,"base64");if(G.length!==Y.length||!hI(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=kI("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=gI(Y.source),H=Y.source.type==="user"?Y.source.userId:("userId"in Y.source)?Y.source.userId:void 0,W=yI(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()||A6(),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 DU}from"buffer";import{createHash as uI,timingSafeEqual as mI}from"crypto";function lI(D,$){let F=DU.from(D,"utf8"),X=DU.from($,"utf8");if(F.length!==X.length)return!1;return mI(F,X)}function iI(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 nI(D,$){if(D.length<=$)return[D];let F=[],X=D;while(X.length>$){let J=-1;for(let G=$-1;G>0;G--)if(dI.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 sI(D){if(D.botUsername&&D.botUsername.length>0)return D.botUsername;return uI("sha256").update(D.botToken,"utf8").digest("hex").slice(0,16)}function rI(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 pI=4096,cI="x-telegram-bot-api-secret-token",dI,$U;var FU=Z(()=>{dI=/\s/;$U={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=$[cI];if(!J||!lI(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=iI(J.from),H=Number.isFinite(J.date)?new Date(J.date*1000).toISOString():A6(),W=sI(F.credentials),Q=rI(J);return[{workerId:$,channel:"telegram",accountId:W,chatId:G,...Y===void 0?{}:{userId:Y},...B===void 0?{}:{userDisplayName:B},text:J.text,...Q===void 0?{}:{richMetadata:Q},receivedAt:H,raw:X}]},async send(D,$){if(D.credentials.channel!=="telegram")throw Error("telegram adapter called with non-telegram credentials");let F=D.credentials.botToken,X=$.chatId.indexOf(":");if(X<=0||X===$.chatId.length-1)throw Error(`telegram send: malformed chatId ${$.chatId}`);let J=$.chatId.slice(X+1),G=Number(J);if(!Number.isFinite(G)||!Number.isInteger(G))throw Error(`telegram send: malformed chatId ${$.chatId}`);let Y=`https://api.telegram.org/bot${F}/sendMessage`,B=nI($.text,pI);for(let H of B){let W=await fetch(Y,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({chat_id:G,text:H})});if(!W.ok){let Q=await W.text();throw Error(`Telegram sendMessage failed: ${W.status} ${Q}`)}}}}});function oI(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 tI(D){let $=D.authorization;if(!$)return null;let F=/^bearer\s+(\S+)\s*$/i.exec($);return F?F[1]:null}var aI="default",XU;var JU=Z(()=>{j4();XU={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=tI($);if(!J||!f2(J,X))throw Error("invalid Authorization bearer token")},async toEnvelopes(D,$,F){let X=F?.id&&F.id.length>0?F.id:aI,J=JSON.parse(D),G=oI(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:A6(),raw:J}]},async send(){}}});import{Buffer as YU}from"buffer";import{createHmac as eI,timingSafeEqual as DT}from"crypto";function FT(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 XT(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 $T="v21.0",GU;var BU=Z(()=>{GU={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=eI("sha256",F.credentials.appSecret).update(D,"utf8").digest("hex"),B=YU.from(G,"hex"),H=YU.from(Y,"hex");if(B.length!==H.length||!DT(B,H))throw Error("invalid WhatsApp signature")},async toEnvelopes(D,$,F){if(!F||F.credentials.channel!=="whatsapp")throw Error("whatsapp adapter requires a whatsapp binding for accountId derivation");let X=F.credentials.phoneNumberId,J=JSON.parse(D),G=[];for(let Y of J.entry??[])for(let B of Y.changes??[]){let H=B.value;if(!H||!H.messages||H.messages.length===0)continue;let W=H.contacts??[];for(let Q of H.messages){let _=FT(Q);if(_===void 0)continue;let U=Q.from,R=W.find((K)=>K.wa_id===U)?.profile?.name,O=XT(Q);G.push({workerId:$,channel:"whatsapp",accountId:X,chatId:U,userId:U,...R?{userDisplayName:R}:{},text:_,...O===void 0?{}:{richMetadata:O},receivedAt:new Date(Number(Q.timestamp)*1000).toISOString(),raw:Q})}}return G},async send(D,$){if(D.credentials.channel!=="whatsapp")throw Error("whatsapp adapter called with non-whatsapp credentials");let{phoneNumberId:F,accessToken:X}=D.credentials,J=`https://graph.facebook.com/${$T}/${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 H1(D){return JT[D]}class n3{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 H1(D)}}var JT;var s3=Z(()=>{pX();e_();FU();JU();BU();JT={web:XU,line:t_,telegram:$U,lark:r_,whatsapp:GU}});function t2(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 z4(D){let $=structuredClone(D);return $.brains=$.brains.map((F)=>{if(F.type==="cloud-gateway")return{...F,config:{...F.config,token:""}};return F}),YT($),$.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 K6(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}),GT(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 YT(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 GT(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 WU=f((HU)=>{Object.defineProperty(HU,"__esModule",{value:!0})});var N8=f((VU)=>{Object.defineProperty(VU,"__esModule",{value:!0});VU.CronField=void 0;class cX{#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(cX.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))}}VU.CronField=cX});var KU=f((UU)=>{Object.defineProperty(UU,"__esModule",{value:!0});UU.CronDayOfMonth=void 0;var BT=N8(),HT=1,WT=31,VT=Object.freeze(["L"]);class _U extends BT.CronField{static get min(){return HT}static get max(){return WT}static get chars(){return VT}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}}UU.CronDayOfMonth=_U});var CU=f((RU)=>{Object.defineProperty(RU,"__esModule",{value:!0});RU.CronDayOfWeek=void 0;var QT=N8(),_T=0,UT=7,AT=Object.freeze(["L"]);class OU extends QT.CronField{static get min(){return _T}static get max(){return UT}static get chars(){return AT}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}}RU.CronDayOfWeek=OU});var NU=f((ZU)=>{Object.defineProperty(ZU,"__esModule",{value:!0});ZU.CronHour=void 0;var KT=N8(),OT=0,RT=23,ET=Object.freeze([]);class MU extends KT.CronField{static get min(){return OT}static get max(){return RT}static get chars(){return ET}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}ZU.CronHour=MU});var zU=f((LU)=>{Object.defineProperty(LU,"__esModule",{value:!0});LU.CronMinute=void 0;var CT=N8(),MT=0,ZT=59,qT=Object.freeze([]);class PU extends CT.CronField{static get min(){return MT}static get max(){return ZT}static get chars(){return qT}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}LU.CronMinute=PU});var VK=f((WK)=>{Object.defineProperty(WK,"__esModule",{value:!0});class z8 extends Error{}class JA extends z8{constructor(D){super(`Invalid DateTime: ${D.toMessage()}`)}}class YA extends z8{constructor(D){super(`Invalid Interval: ${D.toMessage()}`)}}class GA extends z8{constructor(D){super(`Invalid Duration: ${D.toMessage()}`)}}class Q1 extends z8{}class VJ extends z8{constructor(D){super(`Invalid unit ${D}`)}}class H0 extends z8{}class D8 extends z8{constructor(){super("Zone is an abstract class")}}var y="numeric",C2="short",w0="long",v4={year:y,month:y,day:y},BA={year:y,month:C2,day:y},NT={year:y,month:C2,day:y,weekday:C2},HA={year:y,month:w0,day:y},WA={year:y,month:w0,day:y,weekday:w0},VA={hour:y,minute:y},QA={hour:y,minute:y,second:y},_A={hour:y,minute:y,second:y,timeZoneName:C2},UA={hour:y,minute:y,second:y,timeZoneName:w0},AA={hour:y,minute:y,hourCycle:"h23"},KA={hour:y,minute:y,second:y,hourCycle:"h23"},OA={hour:y,minute:y,second:y,hourCycle:"h23",timeZoneName:C2},RA={hour:y,minute:y,second:y,hourCycle:"h23",timeZoneName:w0},EA={year:y,month:y,day:y,hour:y,minute:y},CA={year:y,month:y,day:y,hour:y,minute:y,second:y},MA={year:y,month:C2,day:y,hour:y,minute:y},ZA={year:y,month:C2,day:y,hour:y,minute:y,second:y},PT={year:y,month:C2,day:y,weekday:C2,hour:y,minute:y},qA={year:y,month:w0,day:y,hour:y,minute:y,timeZoneName:C2},NA={year:y,month:w0,day:y,hour:y,minute:y,second:y,timeZoneName:C2},PA={year:y,month:w0,day:y,weekday:w0,hour:y,minute:y,timeZoneName:w0},LA={year:y,month:w0,day:y,weekday:w0,hour:y,minute:y,second:y,timeZoneName:w0};class U1{get type(){throw new D8}get name(){throw new D8}get ianaName(){return this.name}get isUniversal(){throw new D8}offsetName(D,$){throw new D8}formatOffset(D,$){throw new D8}offset(D){throw new D8}equals(D){throw new D8}get isValid(){throw new D8}}var dX=null;class $9 extends U1{static get instance(){if(dX===null)dX=new $9;return dX}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(D,{format:$,locale:F}){return yA(D,$,F)}formatOffset(D,$){return e3(this.offset(D),$)}offset(D){return-new Date(D).getTimezoneOffset()}equals(D){return D.type==="system"}get isValid(){return!0}}var eX=new Map;function LT(D){let $=eX.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"}),eX.set(D,$);return $}var jT={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function zT(D,$){let F=D.format($).replace(/\u200E/g,""),X=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(F),[,J,G,Y,B,H,W,Q]=X;return[Y,J,G,B,H,W,Q]}function IT(D,$){let F=D.formatToParts($),X=[];for(let J=0;J<F.length;J++){let{type:G,value:Y}=F[J],B=jT[G];if(G==="era")X[B]=Y;else if(!t(B))X[B]=parseInt(Y,10)}return X}var lX=new Map;class k2 extends U1{static create(D){let $=lX.get(D);if($===void 0)lX.set(D,$=new k2(D));return $}static resetCache(){lX.clear(),eX.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=k2.isValidZone(D)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(D,{format:$,locale:F}){return yA(D,$,F,this.name)}formatOffset(D,$){return e3(this.offset(D),$)}offset(D){if(!this.valid)return NaN;let $=new Date(D);if(isNaN($))return NaN;let F=LT(this.name),[X,J,G,Y,B,H,W]=F.formatToParts?IT(F,$):zT(F,$);if(Y==="BC")X=-Math.abs(X)+1;let _=u4({year:X,month:J,day:G,hour:B===24?0:B,minute:H,second:W,millisecond:0}),U=+$,A=U%1000;return U-=A>=0?A:1000+A,(_-U)/60000}equals(D){return D.type==="iana"&&D.name===this.name}get isValid(){return this.valid}}var IU={};function TT(D,$={}){let F=JSON.stringify([D,$]),X=IU[F];if(!X)X=new Intl.ListFormat(D,$),IU[F]=X;return X}var DJ=new Map;function $J(D,$={}){let F=JSON.stringify([D,$]),X=DJ.get(F);if(X===void 0)X=new Intl.DateTimeFormat(D,$),DJ.set(F,X);return X}var FJ=new Map;function wT(D,$={}){let F=JSON.stringify([D,$]),X=FJ.get(F);if(X===void 0)X=new Intl.NumberFormat(D,$),FJ.set(F,X);return X}var XJ=new Map;function ST(D,$={}){let{base:F,...X}=$,J=JSON.stringify([D,X]),G=XJ.get(J);if(G===void 0)G=new Intl.RelativeTimeFormat(D,$),XJ.set(J,G);return G}var a3=null;function bT(){if(a3)return a3;else return a3=new Intl.DateTimeFormat().resolvedOptions().locale,a3}var JJ=new Map;function jA(D){let $=JJ.get(D);if($===void 0)$=new Intl.DateTimeFormat(D).resolvedOptions(),JJ.set(D,$);return $}var YJ=new Map;function fT(D){let $=YJ.get(D);if(!$){let F=new Intl.Locale(D);if($="getWeekInfo"in F?F.getWeekInfo():F.weekInfo,!("minimalDays"in $))$={...wA,...$};YJ.set(D,$)}return $}function kT(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=$J(D).resolvedOptions(),J=D}catch(B){let H=D.substring(0,F);X=$J(H).resolvedOptions(),J=H}let{numberingSystem:G,calendar:Y}=X;return[J,G,Y]}}function vT(D,$,F){if(F||$){if(!D.includes("-u-"))D+="-u";if(F)D+=`-ca-${F}`;if($)D+=`-nu-${$}`;return D}else return D}function hT(D){let $=[];for(let F=1;F<=12;F++){let X=DD.utc(2009,F,1);$.push(D(X))}return $}function xT(D){let $=[];for(let F=1;F<=7;F++){let X=DD.utc(2016,11,13+F);$.push(D(X))}return $}function I4(D,$,F,X){let J=D.listingMode();if(J==="error")return null;else if(J==="en")return F($);else return X($)}function gT(D){if(D.numberingSystem&&D.numberingSystem!=="latn")return!1;else return D.numberingSystem==="latn"||!D.locale||D.locale.startsWith("en")||jA(D.locale).numberingSystem==="latn"}class zA{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=wT(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):OJ(D,3);return dD($,this.padTo)}}}class IA{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&&k2.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=$J($,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 TA{constructor(D,$,F){if(this.opts={style:"long",...F},!$&&xA())this.rtf=ST(D,F)}format(D,$){if(this.rtf)return this.rtf.format(D,$);else return Yw($,D,this.opts.numeric,this.opts.style!=="long")}formatToParts(D,$){if(this.rtf)return this.rtf.formatToParts(D,$);else return[]}}var wA={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||wD.defaultLocale,Y=G||(J?"en-US":bT()),B=$||wD.defaultNumberingSystem,H=F||wD.defaultOutputCalendar,W=BJ(X)||wD.defaultWeekSettings;return new RD(Y,B,H,W,G)}static resetCache(){a3=null,DJ.clear(),FJ.clear(),XJ.clear(),JJ.clear(),YJ.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]=kT(D);this.locale=G,this.numberingSystem=$||Y||null,this.outputCalendar=F||B||null,this.weekSettings=X,this.intl=vT(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=gT(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,BJ(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 I4(this,D,pA,()=>{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]=hT(G)}return this.monthsCache[J][D]})}weekdays(D,$=!1){return I4(this,D,lA,()=>{let F=$?{weekday:D,year:"numeric",month:"long",day:"numeric"}:{weekday:D},X=$?"format":"standalone";if(!this.weekdaysCache[X][D])this.weekdaysCache[X][D]=xT((J)=>this.extract(J,F,"weekday"));return this.weekdaysCache[X][D]})}meridiems(){return I4(this,void 0,()=>iA,()=>{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 I4(this,D,nA,()=>{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 zA(this.intl,D.forceSimple||this.fastNumbers,D)}dtFormatter(D,$={}){return new IA(D,this.intl,$)}relFormatter(D={}){return new TA(this.intl,this.isEnglish(),D)}listFormatter(D={}){return TT(this.intl,D)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||jA(this.intl).locale.startsWith("en-us")}getWeekSettings(){if(this.weekSettings)return this.weekSettings;else if(!gA())return wA;else return fT(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 iX=null;class K0 extends U1{static get utcInstance(){if(iX===null)iX=new K0(0);return iX}static instance(D){return D===0?K0.utcInstance:new K0(D)}static parseSpecifier(D){if(D){let $=D.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if($)return new K0(m4($[1],$[2]))}return null}constructor(D){super();this.fixed=D}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${e3(this.fixed,"narrow")}`}get ianaName(){if(this.fixed===0)return"Etc/UTC";else return`Etc/GMT${e3(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(D,$){return e3(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 QJ extends U1{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 L8(D,$){if(t(D)||D===null)return $;else if(D instanceof U1)return D;else if(dT(D)){let F=D.toLowerCase();if(F==="default")return $;else if(F==="local"||F==="system")return $9.instance;else if(F==="utc"||F==="gmt")return K0.utcInstance;else return K0.parseSpecifier(F)||k2.create(D)}else if(j8(D))return K0.instance(D);else if(typeof D==="object"&&"offset"in D&&typeof D.offset==="function")return D;else return new QJ(D)}var _J={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"},TU={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]},yT=_J.hanidec.replace(/[\[|\]]/g,"").split("");function uT(D){let $=parseInt(D,10);if(isNaN($)){$="";for(let F=0;F<D.length;F++){let X=D.charCodeAt(F);if(D[F].search(_J.hanidec)!==-1)$+=yT.indexOf(D[F]);else for(let J in TU){let[G,Y]=TU[J];if(X>=G&&X<=Y)$+=X-G}}return parseInt($,10)}else return $}var GJ=new Map;function mT(){GJ.clear()}function R2({numberingSystem:D},$=""){let F=D||"latn",X=GJ.get(F);if(X===void 0)X=new Map,GJ.set(F,X);let J=X.get($);if(J===void 0)J=new RegExp(`${_J[F]}${$}`),X.set($,J);return J}var wU=()=>Date.now(),SU="system",bU=null,fU=null,kU=null,vU=60,hU,xU=null;class wD{static get now(){return wU}static set now(D){wU=D}static set defaultZone(D){SU=D}static get defaultZone(){return L8(SU,$9.instance)}static get defaultLocale(){return bU}static set defaultLocale(D){bU=D}static get defaultNumberingSystem(){return fU}static set defaultNumberingSystem(D){fU=D}static get defaultOutputCalendar(){return kU}static set defaultOutputCalendar(D){kU=D}static get defaultWeekSettings(){return xU}static set defaultWeekSettings(D){xU=BJ(D)}static get twoDigitCutoffYear(){return vU}static set twoDigitCutoffYear(D){vU=D%100}static get throwOnInvalid(){return hU}static set throwOnInvalid(D){hU=D}static resetCaches(){RD.resetCache(),k2.resetCache(),DD.resetCache(),mT()}}class u0{constructor(D,$){this.reason=D,this.explanation=$}toMessage(){if(this.explanation)return`${this.reason}: ${this.explanation}`;else return this.reason}}var SA=[0,31,59,90,120,151,181,212,243,273,304,334],bA=[0,31,60,91,121,152,182,213,244,274,305,335];function m0(D,$){return new u0("unit out of range",`you specified ${$} (of type ${typeof $}) as a ${D}, which is invalid`)}function UJ(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 fA(D,$,F){return F+(F9(D)?bA:SA)[$-1]}function kA(D,$){let F=F9(D)?bA:SA,X=F.findIndex((G)=>G<$),J=$-F[X];return{month:X+1,day:J}}function AJ(D,$){return(D-$+7)%7+1}function h4(D,$=4,F=1){let{year:X,month:J,day:G}=D,Y=fA(X,J,G),B=AJ(UJ(X,J,G),F),H=Math.floor((Y-B+14-$)/7),W;if(H<1)W=X-1,H=D9(W,$,F);else if(H>D9(X,$,F))W=X+1,H=1;else W=X;return{weekYear:W,weekNumber:H,weekday:B,...p4(D)}}function gU(D,$=4,F=1){let{weekYear:X,weekNumber:J,weekday:G}=D,Y=AJ(UJ(X,1,$),F),B=M6(X),H=J*7+G-Y-7+$,W;if(H<1)W=X-1,H+=M6(W);else if(H>B)W=X+1,H-=M6(X);else W=X;let{month:Q,day:_}=kA(W,H);return{year:W,month:Q,day:_,...p4(D)}}function nX(D){let{year:$,month:F,day:X}=D,J=fA($,F,X);return{year:$,ordinal:J,...p4(D)}}function yU(D){let{year:$,ordinal:F}=D,{month:X,day:J}=kA($,F);return{year:$,month:X,day:J,...p4(D)}}function uU(D,$){if(!t(D.localWeekday)||!t(D.localWeekNumber)||!t(D.localWeekYear)){if(!t(D.weekday)||!t(D.weekNumber)||!t(D.weekYear))throw new Q1("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 pT(D,$=4,F=1){let X=y4(D.weekYear),J=p0(D.weekNumber,1,D9(D.weekYear,$,F)),G=p0(D.weekday,1,7);if(!X)return m0("weekYear",D.weekYear);else if(!J)return m0("week",D.weekNumber);else if(!G)return m0("weekday",D.weekday);else return!1}function cT(D){let $=y4(D.year),F=p0(D.ordinal,1,M6(D.year));if(!$)return m0("year",D.year);else if(!F)return m0("ordinal",D.ordinal);else return!1}function vA(D){let $=y4(D.year),F=p0(D.month,1,12),X=p0(D.day,1,x4(D.year,D.month));if(!$)return m0("year",D.year);else if(!F)return m0("month",D.month);else if(!X)return m0("day",D.day);else return!1}function hA(D){let{hour:$,minute:F,second:X,millisecond:J}=D,G=p0($,0,23)||$===24&&F===0&&X===0&&J===0,Y=p0(F,0,59),B=p0(X,0,59),H=p0(J,0,999);if(!G)return m0("hour",$);else if(!Y)return m0("minute",F);else if(!B)return m0("second",X);else if(!H)return m0("millisecond",J);else return!1}function t(D){return typeof D>"u"}function j8(D){return typeof D==="number"}function y4(D){return typeof D==="number"&&D%1===0}function dT(D){return typeof D==="string"}function lT(D){return Object.prototype.toString.call(D)==="[object Date]"}function xA(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch(D){return!1}}function gA(){try{return typeof Intl<"u"&&!!Intl.Locale&&(("weekInfo"in Intl.Locale.prototype)||("getWeekInfo"in Intl.Locale.prototype))}catch(D){return!1}}function iT(D){return Array.isArray(D)?D:[D]}function mU(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 nT(D,$){return $.reduce((F,X)=>{return F[X]=D[X],F},{})}function q6(D,$){return Object.prototype.hasOwnProperty.call(D,$)}function BJ(D){if(D==null)return null;else if(typeof D!=="object")throw new H0("Week settings must be an object");else{if(!p0(D.firstDay,1,7)||!p0(D.minimalDays,1,7)||!Array.isArray(D.weekend)||D.weekend.some(($)=>!p0($,1,7)))throw new H0("Invalid week settings");return{firstDay:D.firstDay,minimalDays:D.minimalDays,weekend:Array.from(D.weekend)}}}function p0(D,$,F){return y4(D)&&D>=$&&D<=F}function sT(D,$){return D-$*Math.floor(D/$)}function dD(D,$=2){let F=D<0,X;if(F)X="-"+(""+-D).padStart($,"0");else X=(""+D).padStart($,"0");return X}function P8(D){if(t(D)||D===null||D==="")return;else return parseInt(D,10)}function W1(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 OJ(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 F9(D){return D%4===0&&(D%100!==0||D%400===0)}function M6(D){return F9(D)?366:365}function x4(D,$){let F=sT($-1,12)+1,X=D+($-F)/12;if(F===2)return F9(X)?29:28;else return[31,null,31,30,31,30,31,31,30,31,30,31][F-1]}function u4(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 pU(D,$,F){return-AJ(UJ(D,1,$),F)+$-1}function D9(D,$=4,F=1){let X=pU(D,$,F),J=pU(D+1,$,F);return(M6(D)-X+J)/7}function HJ(D){if(D>99)return D;else return D>wD.twoDigitCutoffYear?1900+D:2000+D}function yA(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 m4(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 uA(D){let $=Number(D);if(typeof D==="boolean"||D===""||!Number.isFinite($))throw new H0(`Invalid unit value ${D}`);return $}function g4(D,$){let F={};for(let X in D)if(q6(D,X)){let J=D[X];if(J===void 0||J===null)continue;F[$(X)]=uA(J)}return F}function e3(D,$){let F=Math.trunc(Math.abs(D/60)),X=Math.trunc(Math.abs(D%60)),J=D>=0?"+":"-";switch($){case"short":return`${J}${dD(F,2)}:${dD(X,2)}`;case"narrow":return`${J}${F}${X>0?`:${X}`:""}`;case"techie":return`${J}${dD(F,2)}${dD(X,2)}`;default:throw RangeError(`Value format ${$} is out of range for property format`)}}function p4(D){return nT(D,["hour","minute","second","millisecond"])}var rT=["January","February","March","April","May","June","July","August","September","October","November","December"],mA=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],aT=["J","F","M","A","M","J","J","A","S","O","N","D"];function pA(D){switch(D){case"narrow":return[...aT];case"short":return[...mA];case"long":return[...rT];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 cA=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],dA=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],oT=["M","T","W","T","F","S","S"];function lA(D){switch(D){case"narrow":return[...oT];case"short":return[...dA];case"long":return[...cA];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var iA=["AM","PM"],tT=["Before Christ","Anno Domini"],eT=["BC","AD"],Dw=["B","A"];function nA(D){switch(D){case"narrow":return[...Dw];case"short":return[...eT];case"long":return[...tT];default:return null}}function $w(D){return iA[D.hour<12?0:1]}function Fw(D,$){return lA($)[D.weekday-1]}function Xw(D,$){return pA($)[D.month-1]}function Jw(D,$){return nA($)[D.year<0?0:1]}function Yw(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 _=D==="days";switch($){case 1:return _?"tomorrow":`next ${J[D][0]}`;case-1:return _?"yesterday":`last ${J[D][0]}`;case 0:return _?"today":`this ${J[D][0]}`}}let Y=Object.is($,-0)||$<0,B=Math.abs($),H=B===1,W=J[D],Q=X?H?W[1]:W[2]||W[1]:H?J[D][0]:D;return Y?`${B} ${Q} ago`:`in ${B} ${Q}`}function cU(D,$){let F="";for(let X of D)if(X.literal)F+=X.val;else F+=$(X.val);return F}var Gw={D:v4,DD:BA,DDD:HA,DDDD:WA,t:VA,tt:QA,ttt:_A,tttt:UA,T:AA,TT:KA,TTT:OA,TTTT:RA,f:EA,ff:MA,fff:qA,ffff:PA,F:CA,FF:ZA,FFF:NA,FFFF:LA};class A0{static create(D,$={}){return new A0(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 Gw[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 dD(D,$);let X={...this.opts};if($>0)X.padTo=$;if(F)X.signDisplay=F;return this.loc.numberFormatter(X).format(D)}formatDateTimeFromString(D,$){let F=this.loc.listingMode()==="en",X=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",J=(U,A)=>this.loc.extract(D,U,A),G=(U)=>{if(D.isOffsetFixed&&D.offset===0&&U.allowZ)return"Z";return D.isValid?D.zone.formatOffset(D.ts,U.format):""},Y=()=>F?$w(D):J({hour:"numeric",hourCycle:"h12"},"dayperiod"),B=(U,A)=>F?Xw(D,U):J(A?{month:U}:{month:U,day:"numeric"},"month"),H=(U,A)=>F?Fw(D,U):J(A?{weekday:U}:{weekday:U,month:"long",day:"numeric"},"weekday"),W=(U)=>{let A=A0.macroTokenToFormatOpts(U);if(A)return this.formatWithSystemDefault(D,A);else return U},Q=(U)=>F?Jw(D,U):J({era:U},"era"),_=(U)=>{switch(U){case"S":return this.num(D.millisecond);case"u":case"SSS":return this.num(D.millisecond,3);case"s":return this.num(D.second);case"ss":return this.num(D.second,2);case"uu":return this.num(Math.floor(D.millisecond/10),2);case"uuu":return this.num(Math.floor(D.millisecond/100));case"m":return this.num(D.minute);case"mm":return this.num(D.minute,2);case"h":return this.num(D.hour%12===0?12:D.hour%12);case"hh":return this.num(D.hour%12===0?12:D.hour%12,2);case"H":return this.num(D.hour);case"HH":return this.num(D.hour,2);case"Z":return G({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return G({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return G({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return D.zone.offsetName(D.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return D.zone.offsetName(D.ts,{format:"long",locale:this.loc.locale});case"z":return D.zoneName;case"a":return Y();case"d":return X?J({day:"numeric"},"day"):this.num(D.day);case"dd":return X?J({day:"2-digit"},"day"):this.num(D.day,2);case"c":return this.num(D.weekday);case"ccc":return H("short",!0);case"cccc":return H("long",!0);case"ccccc":return H("narrow",!0);case"E":return this.num(D.weekday);case"EEE":return H("short",!1);case"EEEE":return H("long",!1);case"EEEEE":return H("narrow",!1);case"L":return X?J({month:"numeric",day:"numeric"},"month"):this.num(D.month);case"LL":return X?J({month:"2-digit",day:"numeric"},"month"):this.num(D.month,2);case"LLL":return B("short",!0);case"LLLL":return B("long",!0);case"LLLLL":return B("narrow",!0);case"M":return X?J({month:"numeric"},"month"):this.num(D.month);case"MM":return X?J({month:"2-digit"},"month"):this.num(D.month,2);case"MMM":return B("short",!1);case"MMMM":return B("long",!1);case"MMMMM":return B("narrow",!1);case"y":return X?J({year:"numeric"},"year"):this.num(D.year);case"yy":return X?J({year:"2-digit"},"year"):this.num(D.year.toString().slice(-2),2);case"yyyy":return X?J({year:"numeric"},"year"):this.num(D.year,4);case"yyyyyy":return X?J({year:"numeric"},"year"):this.num(D.year,6);case"G":return Q("short");case"GG":return Q("long");case"GGGGG":return Q("narrow");case"kk":return this.num(D.weekYear.toString().slice(-2),2);case"kkkk":return this.num(D.weekYear,4);case"W":return this.num(D.weekNumber);case"WW":return this.num(D.weekNumber,2);case"n":return this.num(D.localWeekNumber);case"nn":return this.num(D.localWeekNumber,2);case"ii":return this.num(D.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(D.localWeekYear,4);case"o":return this.num(D.ordinal);case"ooo":return this.num(D.ordinal,3);case"q":return this.num(D.quarter);case"qq":return this.num(D.quarter,2);case"X":return this.num(Math.floor(D.ts/1000));case"x":return this.num(D.ts);default:return W(U)}};return cU(A0.parseFormat($),_)}formatDurationFromString(D,$){let F=this.opts.signMode==="negativeLargestOnly"?-1:1,X=(W)=>{switch(W[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},J=(W,Q)=>(_)=>{let U=X(_);if(U){let A=Q.isNegativeDuration&&U!==Q.largestUnit?F:1,R;if(this.opts.signMode==="negativeLargestOnly"&&U!==Q.largestUnit)R="never";else if(this.opts.signMode==="all")R="always";else R="auto";return this.num(W.get(U)*A,_.length,R)}else return _},G=A0.parseFormat($),Y=G.reduce((W,{literal:Q,val:_})=>Q?W:W.concat(_),[]),B=D.shiftTo(...Y.map(X).filter((W)=>W)),H={isNegativeDuration:B<0,largestUnit:Object.keys(B.values)[0]};return cU(G,J(B,H))}}var sA=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function N6(...D){let $=D.reduce((F,X)=>F+X.source,"");return RegExp(`^${$}$`)}function P6(...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 L6(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 rA(...D){return($,F)=>{let X={},J;for(J=0;J<D.length;J++)X[D[J]]=P8($[F+J]);return[X,null,F+J]}}var aA=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,Bw=`(?:${aA.source}?(?:\\[(${sA.source})\\])?)?`,RJ=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,oA=RegExp(`${RJ.source}${Bw}`),EJ=RegExp(`(?:[Tt]${oA.source})?`),Hw=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Ww=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Vw=/(\d{4})-?(\d{3})/,Qw=rA("weekYear","weekNumber","weekDay"),_w=rA("year","ordinal"),Uw=/(\d{4})-(\d\d)-(\d\d)/,tA=RegExp(`${RJ.source} ?(?:${aA.source}|(${sA.source}))?`),Aw=RegExp(`(?: ${tA.source})?`);function Z6(D,$,F){let X=D[$];return t(X)?F:P8(X)}function Kw(D,$){return[{year:Z6(D,$),month:Z6(D,$+1,1),day:Z6(D,$+2,1)},null,$+3]}function j6(D,$){return[{hours:Z6(D,$,0),minutes:Z6(D,$+1,0),seconds:Z6(D,$+2,0),milliseconds:KJ(D[$+3])},null,$+4]}function X9(D,$){let F=!D[$]&&!D[$+1],X=m4(D[$+1],D[$+2]),J=F?null:K0.instance(X);return[{},J,$+3]}function J9(D,$){let F=D[$]?k2.create(D[$]):null;return[{},F,$+1]}var Ow=RegExp(`^T?${RJ.source}$`),Rw=/^-?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 Ew(D){let[$,F,X,J,G,Y,B,H,W]=D,Q=$[0]==="-",_=H&&H[0]==="-",U=(A,R=!1)=>A!==void 0&&(R||A&&Q)?-A:A;return[{years:U(W1(F)),months:U(W1(X)),weeks:U(W1(J)),days:U(W1(G)),hours:U(W1(Y)),minutes:U(W1(B)),seconds:U(W1(H),H==="-0"),milliseconds:U(KJ(W),_)}]}var Cw={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function CJ(D,$,F,X,J,G,Y){let B={year:$.length===2?HJ(P8($)):P8($),month:mA.indexOf(F)+1,day:P8(X),hour:P8(J),minute:P8(G)};if(Y)B.second=P8(Y);if(D)B.weekday=D.length>3?cA.indexOf(D)+1:dA.indexOf(D)+1;return B}var Mw=/^(?:(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 Zw(D){let[,$,F,X,J,G,Y,B,H,W,Q,_]=D,U=CJ($,J,X,F,G,Y,B),A;if(H)A=Cw[H];else if(W)A=0;else A=m4(Q,_);return[U,new K0(A)]}function qw(D){return D.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var Nw=/^(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$/,Pw=/^(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$/,Lw=/^(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 dU(D){let[,$,F,X,J,G,Y,B]=D;return[CJ($,J,X,F,G,Y,B),K0.utcInstance]}function jw(D){let[,$,F,X,J,G,Y,B]=D;return[CJ($,B,F,X,J,G,Y),K0.utcInstance]}var zw=N6(Hw,EJ),Iw=N6(Ww,EJ),Tw=N6(Vw,EJ),ww=N6(oA),eA=P6(Kw,j6,X9,J9),Sw=P6(Qw,j6,X9,J9),bw=P6(_w,j6,X9,J9),fw=P6(j6,X9,J9);function kw(D){return L6(D,[zw,eA],[Iw,Sw],[Tw,bw],[ww,fw])}function vw(D){return L6(qw(D),[Mw,Zw])}function hw(D){return L6(D,[Nw,dU],[Pw,dU],[Lw,jw])}function xw(D){return L6(D,[Rw,Ew])}var gw=P6(j6);function yw(D){return L6(D,[Ow,gw])}var uw=N6(Uw,Aw),mw=N6(tA),pw=P6(j6,X9,J9);function cw(D){return L6(D,[uw,eA],[mw,pw])}var lU="Invalid Duration",DK={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}},dw={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},...DK},y0=365.2425,O6=30.436875,lw={years:{quarters:4,months:12,weeks:y0/7,days:y0,hours:y0*24,minutes:y0*24*60,seconds:y0*24*60*60,milliseconds:y0*24*60*60*1000},quarters:{months:3,weeks:y0/28,days:y0/4,hours:y0*24/4,minutes:y0*24*60/4,seconds:y0*24*60*60/4,milliseconds:y0*24*60*60*1000/4},months:{weeks:O6/7,days:O6,hours:O6*24,minutes:O6*24*60,seconds:O6*24*60*60,milliseconds:O6*24*60*60*1000},...DK},_1=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],iw=_1.slice(0).reverse();function e2(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 $K(D,$){var F;let X=(F=$.milliseconds)!=null?F:0;for(let J of iw.slice(1))if($[J])X+=$[J]*D[J].milliseconds;return X}function iU(D,$){let F=$K(D,$)<0?-1:1;_1.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),_1.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 nU(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=$?lw:dw;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 H0(`Duration.fromObject: argument expected to be an object, got ${D===null?"null":typeof D}`);return new QD({values:g4(D,QD.normalizeUnit),loc:RD.fromObject($),conversionAccuracy:$.conversionAccuracy,matrix:$.matrix})}static fromDurationLike(D){if(j8(D))return QD.fromMillis(D);else if(QD.isDuration(D))return D;else if(typeof D==="object")return QD.fromObject(D);else throw new H0(`Unknown duration argument ${D} of type ${typeof D}`)}static fromISO(D,$){let[F]=xw(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]=yw(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 H0("need to specify a reason the Duration is invalid");let F=D instanceof u0?D:new u0(D,$);if(wD.throwOnInvalid)throw new GA(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 VJ(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?A0.create(this.loc,F).formatDurationFromString(this,D):lU}toHuman(D={}){if(!this.isValid)return lU;let $=D.showZeros!==!1,F=_1.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+=OJ(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 $K(this.matrix,this.values)}valueOf(){return this.toMillis()}plus(D){if(!this.isValid)return this;let $=QD.fromDurationLike(D),F={};for(let X of _1)if(q6($.values,X)||q6(this.values,X))F[X]=$.get(X)+this.get(X);return e2(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]=uA(D(this.values[F],F));return e2(this,{values:$},!0)}get(D){return this[QD.normalizeUnit(D)]}set(D){if(!this.isValid)return this;let $={...this.values,...g4(D,QD.normalizeUnit)};return e2(this,{values:$})}reconfigure({locale:D,numberingSystem:$,conversionAccuracy:F,matrix:X}={}){let G={loc:this.loc.clone({locale:D,numberingSystem:$}),matrix:X,conversionAccuracy:F};return e2(this,G)}as(D){return this.isValid?this.shiftTo(D).get(D):NaN}normalize(){if(!this.isValid)return this;let D=this.toObject();return iU(this.matrix,D),e2(this,{values:D},!0)}rescale(){if(!this.isValid)return this;let D=nU(this.normalize().shiftToAll().toObject());return e2(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 _1)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(j8(X[G]))Y+=X[G];let B=Math.trunc(Y);$[G]=B,F[G]=(Y*1000-B*1000)/1000}else if(j8(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 iU(this.matrix,$),e2(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 e2(this,{values:D},!0)}removeZeros(){if(!this.isValid)return this;let D=nU(this.values);return e2(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 _1)if(!$(this.values[F],D.values[F]))return!1;return!0}}var R6="Invalid Interval";function nw(D,$){if(!D||!D.isValid)return kD.invalid("missing or invalid start");else if(!$||!$.isValid)return kD.invalid("missing or invalid end");else if($<D)return kD.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 kD{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 H0("need to specify a reason the Interval is invalid");let F=D instanceof u0?D:new u0(D,$);if(wD.throwOnInvalid)throw new YA(F);else return new kD({invalid:F})}static fromDateTimes(D,$){let F=r3(D),X=r3($),J=nw(F,X);if(J==null)return new kD({start:F,end:X});else return J}static after(D,$){let F=QD.fromDurationLike($),X=r3(D);return kD.fromDateTimes(X,X.plus(F))}static before(D,$){let F=QD.fromDurationLike($),X=r3(D);return kD.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 kD.fromDateTimes(J,Y);if(G){let H=QD.fromISO(X,$);if(H.isValid)return kD.after(J,H)}else if(B){let H=QD.fromISO(F,$);if(H.isValid)return kD.before(Y,H)}}return kD.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 kD.fromDateTimes(D||this.s,$||this.e)}splitAt(...D){if(!this.isValid)return[];let $=D.map(r3).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(kD.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(kD.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 kD.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 kD.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(kD.fromDateTimes($,B.time));$=null}return kD.merge(X)}difference(...D){return kD.xor([this].concat(D)).map(($)=>this.intersection($)).filter(($)=>$&&!$.isEmpty())}toString(){if(!this.isValid)return R6;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=v4,$={}){return this.isValid?A0.create(this.s.loc.clone($),D).formatInterval(this):R6}toISO(D){if(!this.isValid)return R6;return`${this.s.toISO(D)}/${this.e.toISO(D)}`}toISODate(){if(!this.isValid)return R6;return`${this.s.toISODate()}/${this.e.toISODate()}`}toISOTime(D){if(!this.isValid)return R6;return`${this.s.toISOTime(D)}/${this.e.toISOTime(D)}`}toFormat(D,{separator:$=" \u2013 "}={}){if(!this.isValid)return R6;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 kD.fromDateTimes(D(this.s),D(this.e))}}class C6{static hasDST(D=wD.defaultZone){let $=DD.now().setZone(D).set({month:12});return!D.isUniversal&&$.offset!==$.set({month:6}).offset}static isValidIANAZone(D){return k2.isValidZone(D)}static normalizeZone(D){return L8(D,wD.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:xA(),localeWeek:gA()}}}function sU(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 sw(D,$,F){let X=[["years",(H,W)=>W.year-H.year],["quarters",(H,W)=>W.quarter-H.quarter+(W.year-H.year)*4],["months",(H,W)=>W.month-H.month+(W.year-H.year)*12],["weeks",(H,W)=>{let Q=sU(H,W);return(Q-Q%7)/7}],["days",sU]],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 rw(D,$,F,X){let[J,G,Y,B]=sw(D,$,F),H=$-J,W=F.filter((_)=>["hours","minutes","seconds","milliseconds"].indexOf(_)>=0);if(W.length===0){if(Y<$)Y=J.plus({[B]:1});if(Y!==J)G[B]=(G[B]||0)+H/(Y-J)}let Q=QD.fromObject(G,X);if(W.length>0)return QD.fromMillis(H,X).shiftTo(...W).plus(Q);else return Q}var aw="missing Intl.DateTimeFormat.formatToParts support";function AD(D,$=(F)=>F){return{regex:D,deser:([F])=>$(uT(F))}}var ow=String.fromCharCode(160),FK=`[ ${ow}]`,XK=new RegExp(FK,"g");function tw(D){return D.replace(/\./g,"\\.?").replace(XK,FK)}function rU(D){return D.replace(/\./g,"").replace(XK," ").toLowerCase()}function E2(D,$){if(D===null)return null;else return{regex:RegExp(D.map(tw).join("|")),deser:([F])=>D.findIndex((X)=>rU(F)===rU(X))+$}}function aU(D,$){return{regex:D,deser:([,F,X])=>m4(F,X),groups:$}}function T4(D){return{regex:D,deser:([$])=>$}}function ew(D){return D.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function DS(D,$){let F=R2($),X=R2($,"{2}"),J=R2($,"{3}"),G=R2($,"{4}"),Y=R2($,"{6}"),B=R2($,"{1,2}"),H=R2($,"{1,3}"),W=R2($,"{1,6}"),Q=R2($,"{1,9}"),_=R2($,"{2,4}"),U=R2($,"{4,6}"),A=(K)=>({regex:RegExp(ew(K.val)),deser:([E])=>E,literal:!0}),O=((K)=>{if(D.literal)return A(K);switch(K.val){case"G":return E2($.eras("short"),0);case"GG":return E2($.eras("long"),0);case"y":return AD(W);case"yy":return AD(_,HJ);case"yyyy":return AD(G);case"yyyyy":return AD(U);case"yyyyyy":return AD(Y);case"M":return AD(B);case"MM":return AD(X);case"MMM":return E2($.months("short",!0),1);case"MMMM":return E2($.months("long",!0),1);case"L":return AD(B);case"LL":return AD(X);case"LLL":return E2($.months("short",!1),1);case"LLLL":return E2($.months("long",!1),1);case"d":return AD(B);case"dd":return AD(X);case"o":return AD(H);case"ooo":return AD(J);case"HH":return AD(X);case"H":return AD(B);case"hh":return AD(X);case"h":return AD(B);case"mm":return AD(X);case"m":return AD(B);case"q":return AD(B);case"qq":return AD(X);case"s":return AD(B);case"ss":return AD(X);case"S":return AD(H);case"SSS":return AD(J);case"u":return T4(Q);case"uu":return T4(B);case"uuu":return AD(F);case"a":return E2($.meridiems(),0);case"kkkk":return AD(G);case"kk":return AD(_,HJ);case"W":return AD(B);case"WW":return AD(X);case"E":case"c":return AD(F);case"EEE":return E2($.weekdays("short",!1),1);case"EEEE":return E2($.weekdays("long",!1),1);case"ccc":return E2($.weekdays("short",!0),1);case"cccc":return E2($.weekdays("long",!0),1);case"Z":case"ZZ":return aU(new RegExp(`([+-]${B.source})(?::(${X.source}))?`),2);case"ZZZ":return aU(new RegExp(`([+-]${B.source})(${X.source})?`),2);case"z":return T4(/[a-z_+-/]{1,256}?/i);case" ":return T4(/[^\S\n\r]/);default:return A(K)}})(D)||{invalidReason:aw};return O.token=D,O}var $S={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 FS(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=$S[Y];if(typeof B==="object")B=B[G];if(B)return{literal:!1,val:B};return}function XS(D){return[`^${D.map((F)=>F.regex).reduce((F,X)=>`${F}(${X.source})`,"")}$`,D]}function JS(D,$,F){let X=D.match($);if(X){let J={},G=1;for(let Y in F)if(q6(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 YS(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=k2.create(D.z);if(!t(D.Z)){if(!F)F=new K0(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 sX=null;function GS(){if(!sX)sX=DD.fromMillis(1555555555555);return sX}function BS(D,$){if(D.literal)return D;let F=A0.macroTokenToFormatOpts(D.val),X=GK(F,$);if(X==null||X.includes(void 0))return D;return X}function JK(D,$){return Array.prototype.concat(...D.map((F)=>BS(F,$)))}class MJ{constructor(D,$){if(this.locale=D,this.format=$,this.tokens=JK(A0.parseFormat($),D),this.units=this.tokens.map((F)=>DS(F,D)),this.disqualifyingUnit=this.units.find((F)=>F.invalidReason),!this.disqualifyingUnit){let[F,X]=XS(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]=JS(D,this.regex,this.handlers),[X,J,G]=F?YS(F):[null,null,void 0];if(q6(F,"a")&&q6(F,"H"))throw new Q1("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 YK(D,$,F){return new MJ(D,F).explainFromTokens($)}function HS(D,$,F){let{result:X,zone:J,specificOffset:G,invalidReason:Y}=YK(D,$,F);return[X,J,G,Y]}function GK(D,$){if(!D)return null;let X=A0.create($,D).dtFormatter(GS()),J=X.formatToParts(),G=X.resolvedOptions();return J.map((Y)=>FS(Y,D,G))}var rX="Invalid DateTime",oU=8640000000000000;function o3(D){return new u0("unsupported zone",`the zone "${D.name}" is not supported`)}function aX(D){if(D.weekData===null)D.weekData=h4(D.c);return D.weekData}function oX(D){if(D.localWeekData===null)D.localWeekData=h4(D.c,D.loc.getMinDaysInFirstWeek(),D.loc.getStartOfWeek());return D.localWeekData}function V1(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 BK(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 w4(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 b4(D,$,F){return BK(u4(D),$,F)}function tU(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,x4(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=u4(G),[H,W]=BK(B,F,D.zone);if(Y!==0)H+=Y,W=D.zone.offset(H);return{ts:H,o:W}}function E6(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 u0("unparsable",`the input "${J}" can't be parsed as ${X}`))}function S4(D,$,F=!0){return D.isValid?A0.create(RD.create("en-US"),{allowZ:F,forceSimple:!0}).formatDateTimeFromString(D,$):null}function tX(D,$,F){let X=D.c.year>9999||D.c.year<0,J="";if(X&&D.c.year>=0)J+="+";if(J+=dD(D.c.year,X?6:4),F==="year")return J;if($){if(J+="-",J+=dD(D.c.month),F==="month")return J;J+="-"}else if(J+=dD(D.c.month),F==="month")return J;return J+=dD(D.c.day),J}function eU(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+=dD(D.c.hour),Y==="hour")break;if($){if(H+=":",H+=dD(D.c.minute),Y==="minute")break;if(B)H+=":",H+=dD(D.c.second)}else{if(H+=dD(D.c.minute),Y==="minute")break;if(B)H+=dD(D.c.second)}if(Y==="second")break;if(B&&(!X||D.c.millisecond!==0))H+=".",H+=dD(D.c.millisecond,3)}if(J)if(D.isOffsetFixed&&D.offset===0&&!G)H+="Z";else if(D.o<0)H+="-",H+=dD(Math.trunc(-D.o/60)),H+=":",H+=dD(Math.trunc(-D.o%60));else H+="+",H+=dD(Math.trunc(D.o/60)),H+=":",H+=dD(Math.trunc(D.o%60));if(G)H+="["+D.zone.ianaName+"]";return H}var HK={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},WS={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},VS={ordinal:1,hour:0,minute:0,second:0,millisecond:0},f4=["year","month","day","hour","minute","second","millisecond"],QS=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],_S=["year","ordinal","hour","minute","second","millisecond"];function k4(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 VJ(D);return $}function DA(D){switch(D.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return k4(D)}}function US(D){if(t3===void 0)t3=wD.now();if(D.type!=="iana")return D.offset(t3);let $=D.name,F=WJ.get($);if(F===void 0)F=D.offset(t3),WJ.set($,F);return F}function $A(D,$){let F=L8($.zone,wD.defaultZone);if(!F.isValid)return DD.invalid(o3(F));let X=RD.fromObject($),J,G;if(!t(D.year)){for(let H of f4)if(t(D[H]))D[H]=HK[H];let Y=vA(D)||hA(D);if(Y)return DD.invalid(Y);let B=US(F);[J,G]=b4(D,B,F)}else J=wD.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=OJ(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 XA(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 t3,WJ=new Map;class DD{constructor(D){let $=D.zone||wD.defaultZone,F=D.invalid||(Number.isNaN(D.ts)?new u0("invalid input"):null)||(!$.isValid?o3($):null);this.ts=t(D.ts)?wD.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=j8(D.o)&&!D.old?D.o:$.offset(this.ts);X=w4(this.ts,Y),F=Number.isNaN(X.year)?new u0("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,$]=XA(arguments),[F,X,J,G,Y,B,H]=$;return $A({year:F,month:X,day:J,hour:G,minute:Y,second:B,millisecond:H},D)}static utc(){let[D,$]=XA(arguments),[F,X,J,G,Y,B,H]=$;return D.zone=K0.utcInstance,$A({year:F,month:X,day:J,hour:G,minute:Y,second:B,millisecond:H},D)}static fromJSDate(D,$={}){let F=lT(D)?D.valueOf():NaN;if(Number.isNaN(F))return DD.invalid("invalid input");let X=L8($.zone,wD.defaultZone);if(!X.isValid)return DD.invalid(o3(X));return new DD({ts:F,zone:X,loc:RD.fromObject($)})}static fromMillis(D,$={}){if(!j8(D))throw new H0(`fromMillis requires a numerical input, but received a ${typeof D} with value ${D}`);else if(D<-oU||D>oU)return DD.invalid("Timestamp out of range");else return new DD({ts:D,zone:L8($.zone,wD.defaultZone),loc:RD.fromObject($)})}static fromSeconds(D,$={}){if(!j8(D))throw new H0("fromSeconds requires a numerical input");else return new DD({ts:D*1000,zone:L8($.zone,wD.defaultZone),loc:RD.fromObject($)})}static fromObject(D,$={}){D=D||{};let F=L8($.zone,wD.defaultZone);if(!F.isValid)return DD.invalid(o3(F));let X=RD.fromObject($),J=g4(D,DA),{minDaysInFirstWeek:G,startOfWeek:Y}=uU(J,X),B=wD.now(),H=!t($.specificOffset)?$.specificOffset:F.offset(B),W=!t(J.ordinal),Q=!t(J.year),_=!t(J.month)||!t(J.day),U=Q||_,A=J.weekYear||J.weekNumber;if((U||W)&&A)throw new Q1("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(_&&W)throw new Q1("Can't mix ordinal dates with month/day");let R=A||J.weekday&&!U,O,K,E=w4(B,H);if(R)O=QS,K=WS,E=h4(E,G,Y);else if(W)O=_S,K=VS,E=nX(E);else O=f4,K=HK;let q=!1;for(let s of O){let UD=J[s];if(!t(UD))q=!0;else if(q)J[s]=K[s];else J[s]=E[s]}let N=R?pT(J,G,Y):W?cT(J):vA(J),S=N||hA(J);if(S)return DD.invalid(S);let b=R?gU(J,G,Y):W?yU(J):J,[P,T]=b4(b,H,F),j=new DD({ts:P,zone:F,o:T,loc:X});if(J.weekday&&U&&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]=kw(D);return E6(F,X,$,"ISO 8601",D)}static fromRFC2822(D,$={}){let[F,X]=vw(D);return E6(F,X,$,"RFC 2822",D)}static fromHTTP(D,$={}){let[F,X]=hw(D);return E6(F,X,$,"HTTP",$)}static fromFormat(D,$,F={}){if(t(D)||t($))throw new H0("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]=HS(G,D,$);if(W)return DD.invalid(W);else return E6(Y,B,F,`format ${$}`,D,H)}static fromString(D,$,F={}){return DD.fromFormat(D,$,F)}static fromSQL(D,$={}){let[F,X]=cw(D);return E6(F,X,$,"SQL",D)}static invalid(D,$=null){if(!D)throw new H0("need to specify a reason the DateTime is invalid");let F=D instanceof u0?D:new u0(D,$);if(wD.throwOnInvalid)throw new JA(F);else return new DD({invalid:F})}static isDateTime(D){return D&&D.isLuxonDateTime||!1}static parseFormatForOpts(D,$={}){let F=GK(D,RD.fromObject($));return!F?null:F.map((X)=>X?X.val:null).join("")}static expandFormat(D,$={}){return JK(A0.parseFormat(D),RD.fromObject($)).map((X)=>X.val).join("")}static resetCache(){t3=void 0,WJ.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?aX(this).weekYear:NaN}get weekNumber(){return this.isValid?aX(this).weekNumber:NaN}get weekday(){return this.isValid?aX(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?oX(this).weekday:NaN}get localWeekNumber(){return this.isValid?oX(this).weekNumber:NaN}get localWeekYear(){return this.isValid?oX(this).weekYear:NaN}get ordinal(){return this.isValid?nX(this.c).ordinal:NaN}get monthShort(){return this.isValid?C6.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?C6.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?C6.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?C6.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=u4(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=w4(B,G),Q=w4(H,Y);if(W.hour===Q.hour&&W.minute===Q.minute&&W.second===Q.second&&W.millisecond===Q.millisecond)return[V1(this,{ts:B}),V1(this,{ts:H})];return[this]}get isInLeapYear(){return F9(this.year)}get daysInMonth(){return x4(this.year,this.month)}get daysInYear(){return this.isValid?M6(this.year):NaN}get weeksInWeekYear(){return this.isValid?D9(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?D9(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(D={}){let{locale:$,numberingSystem:F,calendar:X}=A0.create(this.loc.clone(D),D).resolvedOptions(this);return{locale:$,numberingSystem:F,outputCalendar:X}}toUTC(D=0,$={}){return this.setZone(K0.instance(D),$)}toLocal(){return this.setZone(wD.defaultZone)}setZone(D,{keepLocalTime:$=!1,keepCalendarTime:F=!1}={}){if(D=L8(D,wD.defaultZone),D.equals(this.zone))return this;else if(!D.isValid)return DD.invalid(o3(D));else{let X=this.ts;if($||F){let J=D.offset(this.ts),G=this.toObject();[X]=b4(G,J,D)}return V1(this,{ts:X,zone:D})}}reconfigure({locale:D,numberingSystem:$,outputCalendar:F}={}){let X=this.loc.clone({locale:D,numberingSystem:$,outputCalendar:F});return V1(this,{loc:X})}setLocale(D){return this.reconfigure({locale:D})}set(D){if(!this.isValid)return this;let $=g4(D,DA),{minDaysInFirstWeek:F,startOfWeek:X}=uU($,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 Q1("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(B&&G)throw new Q1("Can't mix ordinal dates with month/day");let Q;if(J)Q=gU({...h4(this.c,F,X),...$},F,X);else if(!t($.ordinal))Q=yU({...nX(this.c),...$});else if(Q={...this.toObject(),...$},t($.day))Q.day=Math.min(x4(Q.year,Q.month),Q.day);let[_,U]=b4(Q,this.o,this.zone);return V1(this,{ts:_,o:U})}plus(D){if(!this.isValid)return this;let $=QD.fromDurationLike(D);return V1(this,tU(this,$))}minus(D){if(!this.isValid)return this;let $=QD.fromDurationLike(D).negate();return V1(this,tU(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?A0.create(this.loc.redefaultToEN($)).formatDateTimeFromString(this,D):rX}toLocaleString(D=v4,$={}){return this.isValid?A0.create(this.loc.clone($),D).formatDateTime(this):rX}toLocaleParts(D={}){return this.isValid?A0.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=k4(G);let Y=D==="extended",B=tX(this,Y,G);if(f4.indexOf(G)>=3)B+="T";return B+=eU(this,Y,$,F,X,J,G),B}toISODate({format:D="extended",precision:$="day"}={}){if(!this.isValid)return null;return tX(this,D==="extended",k4($))}toISOWeekDate(){return S4(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=k4(Y),(X&&f4.indexOf(Y)>=3?"T":"")+eU(this,G==="extended",$,D,F,J,Y)}toRFC2822(){return S4(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return S4(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){if(!this.isValid)return null;return tX(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 S4(this,X,!0)}toSQL(D={}){if(!this.isValid)return null;return`${this.toSQLDate()} ${this.toSQLTime(D)}`}toString(){return this.isValid?this.toISO():rX}[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=iT($).map(QD.normalizeUnit),G=D.valueOf()>this.valueOf(),Y=G?this:D,B=G?D:this,H=rw(Y,B,J,X);return G?H.negate():H}diffNow(D="milliseconds",$={}){return this.diff(DD.now(),D,$)}until(D){return this.isValid?kD.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 H0("min requires all arguments be DateTimes");return mU(D,($)=>$.valueOf(),Math.min)}static max(...D){if(!D.every(DD.isDateTime))throw new H0("max requires all arguments be DateTimes");return mU(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 YK(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 MJ(J,D)}static fromFormatParser(D,$,F={}){if(t(D)||t($))throw new H0("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 H0(`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 E6(Y,B,F,`format ${$.format}`,D,H)}static get DATE_SHORT(){return v4}static get DATE_MED(){return BA}static get DATE_MED_WITH_WEEKDAY(){return NT}static get DATE_FULL(){return HA}static get DATE_HUGE(){return WA}static get TIME_SIMPLE(){return VA}static get TIME_WITH_SECONDS(){return QA}static get TIME_WITH_SHORT_OFFSET(){return _A}static get TIME_WITH_LONG_OFFSET(){return UA}static get TIME_24_SIMPLE(){return AA}static get TIME_24_WITH_SECONDS(){return KA}static get TIME_24_WITH_SHORT_OFFSET(){return OA}static get TIME_24_WITH_LONG_OFFSET(){return RA}static get DATETIME_SHORT(){return EA}static get DATETIME_SHORT_WITH_SECONDS(){return CA}static get DATETIME_MED(){return MA}static get DATETIME_MED_WITH_SECONDS(){return ZA}static get DATETIME_MED_WITH_WEEKDAY(){return PT}static get DATETIME_FULL(){return qA}static get DATETIME_FULL_WITH_SECONDS(){return NA}static get DATETIME_HUGE(){return PA}static get DATETIME_HUGE_WITH_SECONDS(){return LA}}function r3(D){if(DD.isDateTime(D))return D;else if(D&&D.valueOf&&j8(D.valueOf()))return DD.fromJSDate(D);else if(D&&typeof D==="object")return DD.fromObject(D);else throw new H0(`Unknown datetime argument: ${D}, of type ${typeof D}`)}var AS="3.7.2";WK.DateTime=DD;WK.Duration=QD;WK.FixedOffsetZone=K0;WK.IANAZone=k2;WK.Info=C6;WK.Interval=kD;WK.InvalidZone=QJ;WK.Settings=wD;WK.SystemZone=$9;WK.VERSION=AS;WK.Zone=U1});var d4=f((QK)=>{Object.defineProperty(QK,"__esModule",{value:!0});QK.CronDate=QK.DAYS_IN_MONTH=QK.DateMathOp=QK.TimeUnit=void 0;var A1=VK(),O0;(function(D){D.Second="Second",D.Minute="Minute",D.Hour="Hour",D.Day="Day",D.Month="Month",D.Year="Year"})(O0||(QK.TimeUnit=O0={}));var c4;(function(D){D.Add="Add",D.Subtract="Subtract"})(c4||(QK.DateMathOp=c4={}));QK.DAYS_IN_MONTH=Object.freeze([31,29,31,30,31,30,31,31,30,31,30,31]);class z6{#D;#$=null;#X=null;#Y={add:{[O0.Year]:this.addYear.bind(this),[O0.Month]:this.addMonth.bind(this),[O0.Day]:this.addDay.bind(this),[O0.Hour]:this.addHour.bind(this),[O0.Minute]:this.addMinute.bind(this),[O0.Second]:this.addSecond.bind(this)},subtract:{[O0.Year]:this.subtractYear.bind(this),[O0.Month]:this.subtractMonth.bind(this),[O0.Day]:this.subtractDay.bind(this),[O0.Hour]:this.subtractHour.bind(this),[O0.Minute]:this.subtractMinute.bind(this),[O0.Second]:this.subtractSecond.bind(this)}};constructor(D,$){let F={zone:$};if(!D)this.#D=A1.DateTime.local();else if(D instanceof z6)this.#D=D.#D,this.#$=D.#$,this.#X=D.#X;else if(D instanceof Date)this.#D=A1.DateTime.fromJSDate(D,F);else if(typeof D==="number")this.#D=A1.DateTime.fromMillis(D,F);else this.#D=A1.DateTime.fromISO(D,F),this.#D.isValid||(this.#D=A1.DateTime.fromRFC2822(D,F)),this.#D.isValid||(this.#D=A1.DateTime.fromSQL(D,F)),this.#D.isValid||(this.#D=A1.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===c4.Add){this.addUnit($);return}if(D===c4.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=z6.#J(this.#D.year);return D===QK.DAYS_IN_MONTH[$-1]-(F?0:1)}return D===QK.DAYS_IN_MONTH[$-1]}isLastWeekdayOfMonth(){let{day:D,month:$}=this.#D,F;if($===2)F=QK.DAYS_IN_MONTH[$-1]-(z6.#J(this.#D.year)?0:1);else F=QK.DAYS_IN_MONTH[$-1];return D>F-7}applyDateOperation(D,$,F){if($===O0.Month||$===O0.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()}}QK.CronDate=z6;QK.default=z6});var OK=f((AK)=>{Object.defineProperty(AK,"__esModule",{value:!0});AK.CronMonth=void 0;var TS=d4(),wS=N8(),SS=1,bS=12,fS=Object.freeze([]);class UK extends wS.CronField{static get min(){return SS}static get max(){return bS}static get chars(){return fS}static get daysInMonth(){return TS.DAYS_IN_MONTH}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}AK.CronMonth=UK});var MK=f((EK)=>{Object.defineProperty(EK,"__esModule",{value:!0});EK.CronSecond=void 0;var kS=N8(),vS=0,hS=59,xS=Object.freeze([]);class RK extends kS.CronField{static get min(){return vS}static get max(){return hS}static get chars(){return xS}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}EK.CronSecond=RK});var l4=f((N0)=>{var gS=N0&&N0.__createBinding||(Object.create?function(D,$,F,X){if(X===void 0)X=F;var J=Object.getOwnPropertyDescriptor($,F);if(!J||("get"in J?!$.__esModule:J.writable||J.configurable))J={enumerable:!0,get:function(){return $[F]}};Object.defineProperty(D,X,J)}:function(D,$,F,X){if(X===void 0)X=F;D[X]=$[F]}),I8=N0&&N0.__exportStar||function(D,$){for(var F in D)if(F!=="default"&&!Object.prototype.hasOwnProperty.call($,F))gS($,D,F)};Object.defineProperty(N0,"__esModule",{value:!0});I8(WU(),N0);I8(KU(),N0);I8(CU(),N0);I8(N8(),N0);I8(NU(),N0);I8(zU(),N0);I8(OK(),N0);I8(MK(),N0)});var ZJ=f((ZK)=>{Object.defineProperty(ZK,"__esModule",{value:!0});ZK.CronFieldCollection=void 0;var c0=l4();class I6{#D;#$;#X;#Y;#J;#F;static from(D,$){return new I6({second:this.resolveField(c0.CronSecond,D.second,$.second),minute:this.resolveField(c0.CronMinute,D.minute,$.minute),hour:this.resolveField(c0.CronHour,D.hour,$.hour),dayOfMonth:this.resolveField(c0.CronDayOfMonth,D.dayOfMonth,$.dayOfMonth),month:this.resolveField(c0.CronMonth,D.month,$.month),dayOfWeek:this.resolveField(c0.CronDayOfWeek,D.dayOfWeek,$.dayOfWeek)})}static resolveField(D,$,F){if(!F)return $;if(F instanceof c0.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)<=c0.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 c0.CronDayOfWeek){$=6;let J=this.#F.values;F=J[J.length-1]===7?J.slice(0,-1):J}if(D instanceof c0.CronDayOfMonth)$=this.#J.values.length===1?c0.CronMonth.daysInMonth[this.#J.values[0]-1]:D.max;let X=I6.compactField(F);if(X.length===1){let J=I6.#W(D,X[0],$);if(J)return J}return X.map((J)=>{let G=J.count===1?J.start.toString():I6.#H(J,$);if(D instanceof c0.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()}}}ZK.CronFieldCollection=I6});var NJ=f((PK)=>{Object.defineProperty(PK,"__esModule",{value:!0});PK.CronExpression=PK.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE=PK.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE=void 0;var gD=d4();PK.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE="Out of the time span range";PK.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE="Invalid expression, loop limit exceeded";var NK=1e4;class d0{#D;#$;#X;#Y;#J;#F;#W=null;#H=!1;constructor(D,$){this.#D=$,this.#$=$.tz,this.#Y=$.startDate?new gD.CronDate($.startDate,this.#$):null,this.#J=$.endDate?new gD.CronDate($.endDate,this.#$):null;let F=$.currentDate??$.startDate;if(F){let X=new gD.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 gD.CronDate(F,this.#$),this.#F=D}get fields(){return this.#F}static fieldsToExpression(D,$){return new d0(D,$||{})}static#B(D,$){return $.some((F)=>F===D)}#G(D,$){return D[$?D.length-1:0]}#Q(D){let $=`${D.getFullYear()}-${D.getMonth()+1}-${D.getDate()}`;if(this.#W===$)return this.#H;let F=new gD.CronDate(D);F.setStartOfDay();let X=new gD.CronDate(D);return X.setEndOfDay(),this.#W=$,this.#H=F.getUTCOffset()!==X.getUTCOffset(),this.#H}#_(D,$,F){let X=this.#F.second.values,J=D.getSeconds(),G=this.#F.second.findNearestValue(J,F);if(G!==null){D.setSeconds(G);return}D.applyDateOperation($,gD.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($,gD.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.#U()}prev(){return this.#U(!0)}hasNext(){let D=this.#X;try{return this.#U(),!0}catch{return!1}finally{this.#X=D}}hasPrev(){let D=this.#X;try{return this.#U(!0),!0}catch{return!1}finally{this.#X=D}}take(D){let $=[];if(D>=0)for(let F=0;F<D;F++)try{$.push(this.next())}catch{return $}else for(let F=0;F>D;F--)try{$.push(this.prev())}catch{return $}return $}reset(D){this.#X=new gD.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 gD.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=d0.#B(D.getDate(),this.#F.dayOfMonth.values)||this.#F.dayOfMonth.hasLastChar&&D.isLastDayOfMonth(),Y=d0.#B(D.getDay(),this.#F.dayOfWeek.values)||this.#F.dayOfWeek.hasLastChar&&d0.#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}#O(D,$,F){let X=this.#F.hour.values,J=X,G=D.getHours(),Y=d0.#B(G,X),B=D.dstStart===G,H=D.dstEnd===G;if(B){if(d0.#B(G-1,X))return!0;return D.invokeDateOperation($,gD.TimeUnit.Hour),!1}if(H&&!F)return D.dstEnd=null,D.applyDateOperation(gD.DateMathOp.Add,gD.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($,gD.TimeUnit.Day,J.length),!1;if(this.#Q(D)){let Q=F?G-W:W-G;for(let _=0;_<Q;_++)D.applyDateOperation($,gD.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}#R(D){if(!this.#Y&&!this.#J)return;let $=D.getTime();if(this.#Y&&$<this.#Y.getTime())throw Error(PK.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE);if(this.#J&&$>this.#J.getTime())throw Error(PK.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE)}#U(D=!1){let $=D?gD.DateMathOp.Subtract:gD.DateMathOp.Add,F=new gD.CronDate(this.#X),X=F.getTime(),J=0;while(++J<NK){if(this.#R(F),!this.#A(F)){F.applyDateOperation($,gD.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($,gD.TimeUnit.Day,this.#F.hour.values.length);continue}if(!d0.#B(F.getMonth()+1,this.#F.month.values)){F.applyDateOperation($,gD.TimeUnit.Month,this.#F.hour.values.length);continue}if(!this.#O(F,$,D))continue;if(!d0.#B(F.getMinutes(),this.#F.minute.values)){this.#V(F,$,D);continue}if(!d0.#B(F.getSeconds(),this.#F.second.values)){this.#_(F,$,D);continue}if(X===F.getTime()){if($==="Add"||F.getMilliseconds()===0)F.applyDateOperation($,gD.TimeUnit.Second,this.#F.hour.values.length);continue}break}if(J>NK)throw Error(PK.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE);if(F.getMilliseconds()!==0)F.setMilliseconds(0);return this.#X=F,F}[Symbol.iterator](){return{next:()=>{return{value:this.#U(),done:!this.hasNext()}}}}}PK.CronExpression=d0;PK.default=d0});var IK=f((zK)=>{Object.defineProperty(zK,"__esModule",{value:!0});zK.seededRandom=pS;function uS(D){let $=2166136261;for(let F=0;F<D.length;F++)$^=D.charCodeAt(F),$=Math.imul($,16777619);return()=>$>>>0}function mS(D){return()=>{let $=D+=1831565813;return $=Math.imul($^$>>>15,$|1),$^=$+Math.imul($^$>>>7,$|61),(($^$>>>14)>>>0)/4294967296}}function pS(D){let $=D?uS(D)():Math.floor(Math.random()*10000000000);return mS($)}});var i4=f((TK)=>{Object.defineProperty(TK,"__esModule",{value:!0});TK.CronExpressionParser=TK.DayOfWeek=TK.Months=TK.CronUnit=TK.PredefinedExpressions=void 0;var dS=ZJ(),lS=NJ(),iS=IK(),l0=l4(),PJ;(function(D){D["@yearly"]="0 0 0 1 1 *",D["@annually"]="0 0 0 1 1 *",D["@monthly"]="0 0 0 1 * *",D["@weekly"]="0 0 0 * * 0",D["@daily"]="0 0 0 * * *",D["@hourly"]="0 0 * * * *",D["@minutely"]="0 * * * * *",D["@secondly"]="* * * * * *",D["@weekdays"]="0 0 0 * * 1-5",D["@weekends"]="0 0 0 * * 0,6"})(PJ||(TK.PredefinedExpressions=PJ={}));var i0;(function(D){D.Second="Second",D.Minute="Minute",D.Hour="Hour",D.DayOfMonth="DayOfMonth",D.Month="Month",D.DayOfWeek="DayOfWeek"})(i0||(TK.CronUnit=i0={}));var LJ;(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"})(LJ||(TK.Months=LJ={}));var jJ;(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"})(jJ||(TK.DayOfWeek=jJ={}));class P0{static parse(D,$={}){let{strict:F=!1,hashSeed:X}=$,J=(0,iS.seededRandom)(X);D=PJ[D]||D;let G=P0.#D(D,F);if(!(G.dayOfMonth==="*"||G.dayOfWeek==="*"||!F))throw Error("Cannot use both dayOfMonth and dayOfWeek together in strict mode!");let Y=P0.#$(i0.Second,G.second,l0.CronSecond.constraints,J),B=P0.#$(i0.Minute,G.minute,l0.CronMinute.constraints,J),H=P0.#$(i0.Hour,G.hour,l0.CronHour.constraints,J),W=P0.#$(i0.Month,G.month,l0.CronMonth.constraints,J),Q=P0.#$(i0.DayOfMonth,G.dayOfMonth,l0.CronDayOfMonth.constraints,J),{dayOfWeek:_,nthDayOfWeek:U}=P0.#Q(G.dayOfWeek),A=P0.#$(i0.DayOfWeek,_,l0.CronDayOfWeek.constraints,J),R=new dS.CronFieldCollection({second:new l0.CronSecond(Y,{rawValue:G.second}),minute:new l0.CronMinute(B,{rawValue:G.minute}),hour:new l0.CronHour(H,{rawValue:G.hour}),dayOfMonth:new l0.CronDayOfMonth(Q,{rawValue:G.dayOfMonth}),month:new l0.CronMonth(W,{rawValue:G.month}),dayOfWeek:new l0.CronDayOfWeek(A,{rawValue:G.dayOfWeek,nthDayOfWeek:U})});return new lS.CronExpression(R,{...$,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===i0.Month||D===i0.DayOfWeek)$=$.replace(/[a-z]{3}/gi,(J)=>{J=J.toLowerCase();let G=LJ[J]||jJ[J];if(G===void 0)throw Error(`Validation error, cannot resolve alias "${J}"`);return G.toString()});if(!F.validChars.test($))throw Error(`Invalid characters, got value: ${$}`);return $=this.#X($,F),$=this.#Y($,F,X),this.#J(D,$,F)}static#X(D,$){return D.replace(/[*?]/g,$.min+"-"+$.max)}static#Y(D,$,F){let X=F();return D.replace(/H(?:\((\d+)-(\d+)\))?(?:\/(\d+))?/g,(J,G,Y,B)=>{if(G&&Y&&B){let H=parseInt(G,10),W=parseInt(Y,10),Q=parseInt(B,10);if(H>W)throw Error(`Invalid range: ${H}-${W}, min > max`);if(Q<=0)throw Error(`Invalid step: ${Q}, must be positive`);let _=Math.max(H,$.min),U=Math.floor(X*Q),A=[];for(let R=Math.floor(_/Q)*Q+U;R<=W;R+=Q)if(R>=_)A.push(R);return A.join(",")}else if(G&&Y){let H=parseInt(G,10),W=parseInt(Y,10);if(H>W)throw Error(`Invalid range: ${H}-${W}, min > max`);return String(Math.floor(X*(W-H+1))+H)}else if(B){let H=parseInt(B,10);if(H<=0)throw Error(`Invalid step: ${H}, must be positive`);let W=Math.floor(X*H),Q=[];for(let _=Math.floor($.min/H)*H+W;_<=$.max;_+=H)if(_>=$.min)Q.push(_);return Q.join(",")}else return String(Math.floor(X*($.max-$.min+1)+$.min))})}static#J(D,$,F){let X=[];function J(Y,B){if(Array.isArray(Y))X.push(...Y);else if(P0.#_(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===i0.DayOfWeek?H%7:Y)}}return $.split(",").forEach((Y)=>{if(!(Y.length>0))throw Error("Invalid list value format");J(P0.#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 P0.#G(D,X[0],parseInt(X[1],10),F)}return P0.#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===i0.DayOfWeek&&F%7===0)J.push(0);for(let G=$;G<=F;G+=X)if(J.indexOf(G)===-1)J.push(G);return J}static#G(D,$,F,X){let J=$.split("-");if(J.length<=1)return isNaN(+$)?$:+$;let[G,Y]=J.map((B)=>parseInt(B,10));return this.#W(G,Y,X),this.#H(F),this.#B(D,G,Y,F)}static#Q(D){let $=D.split("#");if($.length<=1)return{dayOfWeek:$[0]};let F=+$[$.length-1],X=D.match(/([,-/])/);if(X!==null)throw Error(`Constraint error, invalid dayOfWeek \`#\` and \`${X?.[0]}\` special characters are incompatible`);if(!($.length<=2&&!isNaN(F)&&F>=1&&F<=5))throw Error("Constraint error, invalid dayOfWeek occurrence number (#)");return{dayOfWeek:$[0],nthDayOfWeek:F}}static#_(D,$){return D.chars.some((F)=>$.toString().includes(F))}}TK.CronExpressionParser=P0});var SK=f((v2)=>{var oS=v2&&v2.__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]}),tS=v2&&v2.__setModuleDefault||(Object.create?function(D,$){Object.defineProperty(D,"default",{enumerable:!0,value:$})}:function(D,$){D.default=$}),eS=v2&&v2.__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")oS(F,$,X[J])}return tS(F,$),F}}();Object.defineProperty(v2,"__esModule",{value:!0});v2.CronFileParser=void 0;var Db=i4();class G9{static async parseFile(D){let{readFile:$}=await Promise.resolve().then(()=>eS(J8("fs/promises"))),F=await $(D,"utf8");return G9.#D(F)}static parseFileSync(D){let{readFileSync:$}=J8("fs"),F=$(D,"utf8");return G9.#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=G9.#$(J);F.expressions.push(Y.interval)}catch(Y){F.errors[J]=Y}}return F}static#$(D){let $=D.split(" ");return{interval:Db.CronExpressionParser.parse($.slice(0,5).join(" ")),command:$.slice(5,$.length)}}}v2.CronFileParser=G9});var bK=f(($0)=>{var $b=$0&&$0.__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=$0&&$0.__exportStar||function(D,$){for(var F in D)if(F!=="default"&&!Object.prototype.hasOwnProperty.call($,F))$b($,D,F)};Object.defineProperty($0,"__esModule",{value:!0});$0.CronFileParser=$0.CronExpressionParser=$0.CronExpression=$0.CronFieldCollection=$0.CronDate=void 0;var Xb=i4(),Jb=d4();Object.defineProperty($0,"CronDate",{enumerable:!0,get:function(){return Jb.CronDate}});var Yb=ZJ();Object.defineProperty($0,"CronFieldCollection",{enumerable:!0,get:function(){return Yb.CronFieldCollection}});var Gb=NJ();Object.defineProperty($0,"CronExpression",{enumerable:!0,get:function(){return Gb.CronExpression}});var Bb=i4();Object.defineProperty($0,"CronExpressionParser",{enumerable:!0,get:function(){return Bb.CronExpressionParser}});var Hb=SK();Object.defineProperty($0,"CronFileParser",{enumerable:!0,get:function(){return Hb.CronFileParser}});Fb(l4(),$0);$0.default=Xb.CronExpressionParser});class B9{deps;handle=null;ticking=!1;constructor(D){this.deps=D}start(D=Wb){if(this.handle!==null)return;this.handle=setInterval(()=>{this.tick().catch(($)=>C.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 $=n4(D.expression,new Date),F=crypto.randomUUID(),X=new Date().toISOString(),J=D.enabled??!0,G=D.accountId??Vb;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};u().insert(ND).values(Y).run();let B=u().select().from(ND).where(v(ND.id,F)).get();return s4(B)}async listJobs(){return u().select().from(ND).all().map(s4)}async getJob(D){let $=u().select().from(ND).where(v(ND.id,D)).get();return $?s4($):null}async removeJob(D){let $=u();if(!$.select({id:ND.id}).from(ND).where(v(ND.id,D)).get())return{removed:!1};return $.delete(ND).where(v(ND.id,D)).run(),{removed:!0}}async updateJob(D,$){let F=u().select().from(ND).where(v(ND.id,D)).get();if(!F)return null;let X={updatedAt:new Date().toISOString()},J=!1;if($.expression!==void 0)n4($.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?n4(B,new Date).toISOString():null}u().update(ND).set(X).where(v(ND.id,D)).run();let G=u().select().from(ND).where(v(ND.id,D)).get();return s4(G)}async tick(D=new Date){if(this.ticking)return;this.ticking=!0;try{let $=D.toISOString(),F=u().select().from(ND).where(uD(v(ND.enabled,!0),d7(ND.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=n4(D.expression,$).toISOString()}catch(G){C.warn(`[cron ${D.id}] expression "${D.expression}" \u5F02\u5E38\uFF0C\u505C\u6B62\u540E\u7EED\u89E6\u53D1: ${String(G)}`)}let J=$.toISOString();u().update(ND).set({lastRunAt:J,nextRunAt:X,updatedAt:J}).where(v(ND.id,D.id)).run();try{await this.deps.getOrchestrator().ingest(F)}catch(G){C.warn(`[cron ${D.id}] orchestrator.ingest \u5931\u8D25: ${String(G)}`)}}}function n4(D,$){return fK.CronExpressionParser.parse(D,{currentDate:$}).next().toDate()}function s4(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 fK,Wb=60000,Vb="sys:cron";var zJ=Z(()=>{TD();JD();_0();fK=Gq(bK(),1)});class H9{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){C.warn(`[bus] listener for ${F.type} threw:`,J)}}on(D){return this.listeners.add(D),()=>{this.listeners.delete(D)}}}var IJ=Z(()=>{JD()});import hK from"fs/promises";import Qb from"os";import n0 from"path";import r4 from"process";function gK(D=xK){let $=new Map;async function F(H){let W=new Date(D.now()).toISOString(),Q=await D.resolveBinary(H.binaryName),_={kind:H.kind,status:"not-found",checkedAt:W};if(H.agent)_.agent=H.agent;if(!Q)return{..._,authHint:"binary-not-on-path"};let U=D.homedir();for(let A of H.authPaths(U))if(await D.pathExists(A))return{..._,status:"ready",binaryPath:Q,authHint:"auth-file-present"};return{..._,status:"login-required",binaryPath:Q,authHint:"auth-file-missing"}}async function X(H,W){let Q=$.get(H.key);if(!W&&Q&&Q.expiresAt>D.now())return Q.value;let _=await F(H);return $.set(H.key,{value:_,expiresAt:D.now()+_b}),_}function J(H){return{kind:H,status:"ready",checkedAt:new Date(D.now()).toISOString(),authHint:"no-cli-required"}}async function G(H={}){let W=H.refresh??!1,Q=[];for(let _ of kK)Q.push(J(_));for(let _ of vK)Q.push(await X(_,W));return Q}async function Y(H,W={}){let Q=W.refresh??!1;if(kK.includes(H))return J(H);let _=vK.filter((A)=>A.kind===H);if(_.length===0)return{kind:H,status:"not-found",checkedAt:new Date(D.now()).toISOString(),authHint:"unknown-engine"};let U=W.agent?_.find((A)=>A.agent===W.agent)??_[0]:_[0];return X(U,Q)}function B(){$.clear()}return{probe:Y,probeAll:G,clearCache:B}}function a4(){if(!W9)W9=gK();return W9}function yK(D){return W9=gK(D),W9}function TJ(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 uK(D,$=xK){let F=$.homedir(),X=D==="gemini"?".gemini":".qwen",J=n0.join(F,X,"oauth_creds.json"),G=n0.join(F,X,"settings.json");if(await $.pathExists(J))return TJ("login","oauth_creds.json present");if(await $.pathExists(G))return TJ("install","settings.json present, login pending");return TJ("none",`~/${X} not present`)}function mK(){return uK("gemini")}function pK(){return uK("qwen")}async function Ub(D){let $=r4.env.PATH??"",F=r4.platform==="win32"?";":":",X=r4.platform==="win32"?(r4.env.PATHEXT??".EXE").split(";"):[""];for(let J of $.split(F)){if(!J)continue;for(let G of X){let Y=n0.join(J,`${D}${G.toLowerCase()}`);try{if((await hK.stat(Y)).isFile())return Y}catch{}}}return null}async function Ab(D){try{return await hK.stat(D),!0}catch{return!1}}var _b=600000,xK,kK,vK,W9=null;var o4=Z(()=>{xK={resolveBinary:Ub,pathExists:Ab,homedir:()=>Qb.homedir(),now:()=>Date.now()},kK=["http","mcp","cli"],vK=[{key:"claude-code",kind:"claude-code",binaryName:"claude",authPaths:(D)=>[n0.join(D,".claude.json"),n0.join(D,".claude","config.json")]},{key:"acp:gemini",kind:"acp",agent:"gemini",binaryName:"gemini",authPaths:(D)=>[n0.join(D,".gemini","oauth_creds.json")]},{key:"acp:qwen",kind:"acp",agent:"qwen",binaryName:"qwen",authPaths:(D)=>[n0.join(D,".qwen","oauth_creds.json"),n0.join(D,".qwen","settings.json")]},{key:"codex",kind:"codex",binaryName:"codex",authPaths:(D)=>[n0.join(D,".codex","auth.json")]},{key:"cursor",kind:"cursor",binaryName:"cursor-agent",authPaths:(D)=>[n0.join(D,".cursor","cli-config.json"),n0.join(D,".cursor-agent","auth.json"),n0.join(D,".cursor","auth.json")]}]});class wJ{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!==Kb){C.warn(`[gateway-client ${this.deps.options.workerId}] send dropped: socket not open`);return}try{$.send(bD(D))}catch(F){C.warn(`[gateway-client ${this.deps.options.workerId}] send failed: ${String(F)}`)}}openSocket(){let{url:D,workerId:$}=this.deps.options;C.info(`[gateway-client ${$}] connecting to ${D}`);let F;try{F=new this.WebSocketCtor(D)}catch(X){C.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:s8.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(bD(G))}catch(Y){C.warn(`[gateway-client ${$}] connect frame send failed: ${String(Y)}`);return}this.reconnectDelay=this.deps.options.initialReconnectDelayMs,C.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=r8(J);if(!G.ok){C.warn(`[gateway-client ${$}] drop malformed frame: ${G.error}`);return}let Y=G.frame;if(Y.type==="event"&&Y.name===e.ENROLLMENT_OTP){let B=Z7.safeParse(Y.payload);if(!B.success){C.warn(`[gateway-client ${$}] enrollment.otp payload invalid: ${B.error.message}`);return}try{this.deps.onEnrollmentOtp?.(B.data)}catch(H){C.error(`[gateway-client ${$}] onEnrollmentOtp threw: ${String(H)}`)}return}if(Y.type==="event"&&Y.name===e.ENROLLMENT_APPROVED){let B=q7.safeParse(Y.payload);if(!B.success){C.warn(`[gateway-client ${$}] enrollment.approved payload invalid: ${B.error.message}`);return}this.enrolledViaOtp=!0;try{this.deps.onEnrollmentApproved?.(B.data)}catch(H){C.error(`[gateway-client ${$}] onEnrollmentApproved threw: ${String(H)}`)}return}try{this.deps.onFrame(Y)}catch(B){C.error(`[gateway-client ${$}] onFrame threw: ${String(B)}`)}},F.onerror=(X)=>{C.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){C.info(`[gateway-client ${this.deps.options.workerId}] reconnect disabled, giving up`);return}let D=Math.min(this.reconnectDelay,this.deps.options.maxReconnectDelayMs);C.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 Kb=1;var cK=Z(()=>{Y0();JD()});function dK(D){if(!D.url||D.url.length===0)throw Error("gateway-client: url is required");if(!D.workerId||D.workerId.length===0)throw Error("gateway-client: workerId is required");return{url:D.url,token:D.token,workerId:D.workerId,deviceId:D.deviceId??D.workerId,displayName:D.displayName,reconnect:D.reconnect??!0,initialReconnectDelayMs:D.initialReconnectDelayMs??1000,maxReconnectDelayMs:D.maxReconnectDelayMs??16000,enroll:D.enroll}}var _D=f((Nb)=>{var SJ=Symbol.for("yaml.alias"),lK=Symbol.for("yaml.document"),t4=Symbol.for("yaml.map"),iK=Symbol.for("yaml.pair"),bJ=Symbol.for("yaml.scalar"),e4=Symbol.for("yaml.seq"),$8=Symbol.for("yaml.node.type"),Ob=(D)=>!!D&&typeof D==="object"&&D[$8]===SJ,Rb=(D)=>!!D&&typeof D==="object"&&D[$8]===lK,Eb=(D)=>!!D&&typeof D==="object"&&D[$8]===t4,Cb=(D)=>!!D&&typeof D==="object"&&D[$8]===iK,nK=(D)=>!!D&&typeof D==="object"&&D[$8]===bJ,Mb=(D)=>!!D&&typeof D==="object"&&D[$8]===e4;function sK(D){if(D&&typeof D==="object")switch(D[$8]){case t4:case e4:return!0}return!1}function Zb(D){if(D&&typeof D==="object")switch(D[$8]){case SJ:case t4:case bJ:case e4:return!0}return!1}var qb=(D)=>(nK(D)||sK(D))&&!!D.anchor;Nb.ALIAS=SJ;Nb.DOC=lK;Nb.MAP=t4;Nb.NODE_TYPE=$8;Nb.PAIR=iK;Nb.SCALAR=bJ;Nb.SEQ=e4;Nb.hasAnchor=qb;Nb.isAlias=Ob;Nb.isCollection=sK;Nb.isDocument=Rb;Nb.isMap=Eb;Nb.isNode=Zb;Nb.isPair=Cb;Nb.isScalar=nK;Nb.isSeq=Mb});var V9=f((ub)=>{var sD=_D(),L0=Symbol("break visit"),rK=Symbol("skip children"),h2=Symbol("remove node");function D5(D,$){let F=aK($);if(sD.isDocument(D)){if(T6(null,D.contents,F,Object.freeze([D]))===h2)D.contents=null}else T6(null,D,F,Object.freeze([]))}D5.BREAK=L0;D5.SKIP=rK;D5.REMOVE=h2;function T6(D,$,F,X){let J=oK(D,$,F,X);if(sD.isNode(J)||sD.isPair(J))return tK(D,X,J),T6(D,J,F,X);if(typeof J!=="symbol"){if(sD.isCollection($)){X=Object.freeze(X.concat($));for(let G=0;G<$.items.length;++G){let Y=T6(G,$.items[G],F,X);if(typeof Y==="number")G=Y-1;else if(Y===L0)return L0;else if(Y===h2)$.items.splice(G,1),G-=1}}else if(sD.isPair($)){X=Object.freeze(X.concat($));let G=T6("key",$.key,F,X);if(G===L0)return L0;else if(G===h2)$.key=null;let Y=T6("value",$.value,F,X);if(Y===L0)return L0;else if(Y===h2)$.value=null}}return J}async function $5(D,$){let F=aK($);if(sD.isDocument(D)){if(await w6(null,D.contents,F,Object.freeze([D]))===h2)D.contents=null}else await w6(null,D,F,Object.freeze([]))}$5.BREAK=L0;$5.SKIP=rK;$5.REMOVE=h2;async function w6(D,$,F,X){let J=await oK(D,$,F,X);if(sD.isNode(J)||sD.isPair(J))return tK(D,X,J),w6(D,J,F,X);if(typeof J!=="symbol"){if(sD.isCollection($)){X=Object.freeze(X.concat($));for(let G=0;G<$.items.length;++G){let Y=await w6(G,$.items[G],F,X);if(typeof Y==="number")G=Y-1;else if(Y===L0)return L0;else if(Y===h2)$.items.splice(G,1),G-=1}}else if(sD.isPair($)){X=Object.freeze(X.concat($));let G=await w6("key",$.key,F,X);if(G===L0)return L0;else if(G===h2)$.key=null;let Y=await w6("value",$.value,F,X);if(Y===L0)return L0;else if(Y===h2)$.value=null}}return J}function aK(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 oK(D,$,F,X){if(typeof F==="function")return F(D,$,X);if(sD.isMap($))return F.Map?.(D,$,X);if(sD.isSeq($))return F.Seq?.(D,$,X);if(sD.isPair($))return F.Pair?.(D,$,X);if(sD.isScalar($))return F.Scalar?.(D,$,X);if(sD.isAlias($))return F.Alias?.(D,$,X);return}function tK(D,$,F){let X=$[$.length-1];if(sD.isCollection(X))X.items[D]=F;else if(sD.isPair(X))if(D==="key")X.key=F;else X.value=F;else if(sD.isDocument(X))X.contents=F;else{let J=sD.isAlias(X)?"alias":"scalar";throw Error(`Cannot replace node with ${J} parent`)}}ub.visit=D5;ub.visitAsync=$5});var fJ=f((ib)=>{var eK=_D(),cb=V9(),db={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},lb=(D)=>D.replace(/[!,[\]{}]/g,($)=>db[$]);class s0{constructor(D,$){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},s0.defaultYaml,D),this.tags=Object.assign({},s0.defaultTags,$)}clone(){let D=new s0(this.yaml,this.tags);return D.docStart=this.docStart,D}atDocument(){let D=new s0(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:s0.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},s0.defaultTags);break}return D}add(D,$){if(this.atNextDocument)this.yaml={explicit:s0.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},s0.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 $+lb(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&&eK.isNode(D.contents)){let J={};cb.visit(D.contents,(G,Y)=>{if(eK.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
- `)}}s0.defaultYaml={explicit:!1,version:"1.2"};s0.defaultTags={"!!":"tag:yaml.org,2002:"};ib.Directives=s0});var F5=f((ob)=>{var DO=_D(),sb=V9();function rb(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 $O(D){let $=new Set;return sb.visit(D,{Value(F,X){if(X.anchor)$.add(X.anchor)}}),$}function FO(D,$){for(let F=1;;++F){let X=`${D}${F}`;if(!$.has(X))return X}}function ab(D,$){let F=[],X=new Map,J=null;return{onAnchor:(G)=>{F.push(G),J??(J=$O(D));let Y=FO($,J);return J.add(Y),Y},setAnchors:()=>{for(let G of F){let Y=X.get(G);if(typeof Y==="object"&&Y.anchor&&(DO.isScalar(Y.node)||DO.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}}ob.anchorIsValid=rb;ob.anchorNames=$O;ob.createNodeAnchors=ab;ob.findNewAnchor=FO});var kJ=f((Ff)=>{function Q9(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=Q9(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=Q9(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=Q9(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=Q9(D,X,J,G);if(Y===void 0)delete X[J];else if(Y!==G)X[J]=Y}return D.call($,F,X)}Ff.applyReviver=Q9});var T8=f((Yf)=>{var Jf=_D();function XO(D,$,F){if(Array.isArray(D))return D.map((X,J)=>XO(X,String(J),F));if(D&&typeof D.toJSON==="function"){if(!F||!Jf.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}Yf.toJS=XO});var X5=f((Wf)=>{var Bf=kJ(),JO=_D(),Hf=T8();class YO{constructor(D){Object.defineProperty(this,JO.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(!JO.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=Hf.toJS(this,"",G);if(typeof X==="function")for(let{count:B,res:H}of G.anchors.values())X(H,B);return typeof J==="function"?Bf.applyReviver(J,{"":Y},"",Y):Y}}Wf.NodeBase=YO});var _9=f((Kf)=>{var Qf=F5(),_f=V9(),S6=_D(),Uf=X5(),Af=T8();class GO extends Uf.NodeBase{constructor(D){super(S6.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=[],_f.visit(D,{Node:(J,G)=>{if(S6.isAlias(G)||S6.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)Af.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=J5(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(Qf.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 J5(D,$,F){if(S6.isAlias($)){let X=$.resolve(D),J=F&&X&&F.get(X);return J?J.count*J.aliasCount:0}else if(S6.isCollection($)){let X=0;for(let J of $.items){let G=J5(D,J,F);if(G>X)X=G}return X}else if(S6.isPair($)){let X=J5(D,$.key,F),J=J5(D,$.value,F);return Math.max(X,J)}return 1}Kf.Alias=GO});var lD=f((Zf)=>{var Rf=_D(),Ef=X5(),Cf=T8(),Mf=(D)=>!D||typeof D!=="function"&&typeof D!=="object";class K1 extends Ef.NodeBase{constructor(D){super(Rf.SCALAR);this.value=D}toJSON(D,$){return $?.keep?this.value:Cf.toJS(this.value,D,$)}toString(){return String(this.value)}}K1.BLOCK_FOLDED="BLOCK_FOLDED";K1.BLOCK_LITERAL="BLOCK_LITERAL";K1.PLAIN="PLAIN";K1.QUOTE_DOUBLE="QUOTE_DOUBLE";K1.QUOTE_SINGLE="QUOTE_SINGLE";Zf.Scalar=K1;Zf.isScalarValue=Mf});var U9=f((If)=>{var Pf=_9(),O1=_D(),BO=lD(),Lf="tag:yaml.org,2002:";function jf(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 zf(D,$,F){if(O1.isDocument(D))D=D.contents;if(O1.isNode(D))return D;if(O1.isPair(D)){let _=F.schema[O1.MAP].createNode?.(F.schema,null,F);return _.items.push(D),_}if(D instanceof String||D instanceof Number||D instanceof Boolean||typeof BigInt<"u"&&D instanceof BigInt)D=D.valueOf();let{aliasDuplicateObjects:X,onAnchor:J,onTagObj: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 Pf.Alias(H.anchor);else H={anchor:null,node:null},B.set(D,H);if($?.startsWith("!!"))$=Lf+$.slice(2);let W=jf(D,$,Y.tags);if(!W){if(D&&typeof D.toJSON==="function")D=D.toJSON();if(!D||typeof D!=="object"){let _=new BO.Scalar(D);if(H)H.node=_;return _}W=D instanceof Map?Y[O1.MAP]:(Symbol.iterator in Object(D))?Y[O1.SEQ]:Y[O1.MAP]}if(G)G(W),delete F.onTagObj;let Q=W?.createNode?W.createNode(F.schema,D,F):typeof W?.nodeClass?.from==="function"?W.nodeClass.from(F.schema,D,F):new BO.Scalar(D);if($)Q.tag=$;else if(!W.default)Q.tag=W.tag;if(H)H.node=Q;return Q}If.createNode=zf});var Y5=f((bf)=>{var wf=U9(),x2=_D(),Sf=X5();function vJ(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 wf.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 HO=(D)=>D==null||typeof D==="object"&&!!D[Symbol.iterator]().next().done;class WO extends Sf.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)=>x2.isNode(F)||x2.isPair(F)?F.clone(D):F),this.range)$.range=this.range.slice();return $}addIn(D,$){if(HO(D))this.add($);else{let[F,...X]=D,J=this.get(F,!0);if(x2.isCollection(J))J.addIn(X,$);else if(J===void 0&&this.schema)this.set(F,vJ(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(x2.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!$&&x2.isScalar(J)?J.value:J;else return x2.isCollection(J)?J.getIn(X,$):void 0}hasAllNullValues(D){return this.items.every(($)=>{if(!x2.isPair($))return!1;let F=$.value;return F==null||D&&x2.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 x2.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(x2.isCollection(J))J.setIn(X,$);else if(J===void 0&&this.schema)this.set(F,vJ(this.schema,X,$));else throw Error(`Expected YAML collection at ${F}. Remaining path: ${X}`)}}}bf.Collection=WO;bf.collectionFromPath=vJ;bf.isEmptyPath=HO});var A9=f((gf)=>{var hf=(D)=>D.replace(/^(?!$)(?: $)?/gm,"#");function hJ(D,$){if(/^\n+$/.test(D))return D.substring(1);return $?D.replace(/^(?! *$)/gm,$):D}var xf=(D,$,F)=>D.endsWith(`
121
+ `),F.update(g0).set({bootstrapShownAt:new Date().toISOString()}).where(v(g0.pk,"default")).run()}var l_=Z(()=>{TD();_0()});var i_=Z(()=>{d_();yX();uX();l_()});import{Buffer as n_}from"buffer";import{timingSafeEqual as PI}from"crypto";function f2(D,$){let F=n_.from(D,"utf8"),X=n_.from($,"utf8");if(F.length!==X.length)return!1;return PI(F,X)}var j4=()=>{};import{Buffer as s_}from"buffer";import{createDecipheriv as LI,createHash as jI}from"crypto";function II(D,$){let F=jI("sha256").update($,"utf8").digest(),X=s_.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=LI("aes-256-cbc",F,J);return s_.concat([Y.update(G),Y.final()]).toString("utf8")}function r_(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(II(F.encrypt,$))}return F}function TI(D){return D.type==="url_verification"||D.header?.event_type==="url_verification"}function wI(D){if(typeof D.header?.token==="string")return D.header.token;if(typeof D.token==="string")return D.token;return}async function SI(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 bI(D,$){let F=mX.get(D);if(!F)F={},mX.set(D,F);if(F.current&&F.current.expiresAt-Date.now()>zI)return F.current.token;if(F.inflight)return(await F.inflight).token;let X=F;return X.inflight=SI(D,$).then((J)=>{return X.current=J,J}).finally(()=>{X.inflight=void 0}),(await X.inflight).token}function fI(D){let $=typeof D.parent_id==="string"&&D.parent_id.length>0?D.parent_id:void 0;if(!$)return;return{quote:$}}function o_(){mX.clear()}var zI=60000,mX,a_;var pX=Z(()=>{j4();mX=new Map;a_={channel:"lark",async verify(D,$,F){if(F.credentials.channel!=="lark")throw Error("lark adapter called with non-lark credentials");let X=r_(D,F.credentials.encryptKey),J=wI(X);if(J===void 0||!f2(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=r_(D,J);if(TI(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 R=JSON.parse(Y.content);B=typeof R.text==="string"?R.text:""}catch{return[]}if(!B)return[];let H=G.event?.sender,W=H?.sender_id?.open_id,Q=H?.sender_id?.name,_=Y.chat_type==="group"?`group:${Y.chat_id}`:`p2p:${W??""}`,U=fI(Y);return[{workerId:$,channel:"lark",accountId:X,chatId:_,...W===void 0?{}:{userId:W},...Q===void 0?{}:{userDisplayName:Q},text:B,...U===void 0?{}:{richMetadata:U},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 bI(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 A6(){return new Date().toISOString()}import{Buffer as t_}from"buffer";import{createHash as kI,createHmac as vI,timingSafeEqual as hI}from"crypto";function xI(D,$){return vI("sha256",D).update($,"utf8").digest("base64")}function gI(D){switch(D.type){case"user":return`user:${D.userId}`;case"group":return`group:${D.groupId}`;case"room":return`room:${D.roomId}`}}function yI(D){let $=D.message?.quotedMessageId;if(typeof $!=="string"||$.length===0)return;return{quote:$}}var e_;var DU=Z(()=>{e_={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=xI(F.credentials.channelSecret,D),G=t_.from(X,"base64"),Y=t_.from(J,"base64");if(G.length!==Y.length||!hI(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=kI("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=gI(Y.source),H=Y.source.type==="user"?Y.source.userId:("userId"in Y.source)?Y.source.userId:void 0,W=yI(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()||A6(),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 $U}from"buffer";import{createHash as uI,timingSafeEqual as mI}from"crypto";function lI(D,$){let F=$U.from(D,"utf8"),X=$U.from($,"utf8");if(F.length!==X.length)return!1;return mI(F,X)}function iI(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 nI(D,$){if(D.length<=$)return[D];let F=[],X=D;while(X.length>$){let J=-1;for(let G=$-1;G>0;G--)if(dI.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 sI(D){if(D.botUsername&&D.botUsername.length>0)return D.botUsername;return uI("sha256").update(D.botToken,"utf8").digest("hex").slice(0,16)}function rI(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 pI=4096,cI="x-telegram-bot-api-secret-token",dI,FU;var XU=Z(()=>{dI=/\s/;FU={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=$[cI];if(!J||!lI(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=iI(J.from),H=Number.isFinite(J.date)?new Date(J.date*1000).toISOString():A6(),W=sI(F.credentials),Q=rI(J);return[{workerId:$,channel:"telegram",accountId:W,chatId:G,...Y===void 0?{}:{userId:Y},...B===void 0?{}:{userDisplayName:B},text:J.text,...Q===void 0?{}:{richMetadata:Q},receivedAt:H,raw:X}]},async send(D,$){if(D.credentials.channel!=="telegram")throw Error("telegram adapter called with non-telegram credentials");let F=D.credentials.botToken,X=$.chatId.indexOf(":");if(X<=0||X===$.chatId.length-1)throw Error(`telegram send: malformed chatId ${$.chatId}`);let J=$.chatId.slice(X+1),G=Number(J);if(!Number.isFinite(G)||!Number.isInteger(G))throw Error(`telegram send: malformed chatId ${$.chatId}`);let Y=`https://api.telegram.org/bot${F}/sendMessage`,B=nI($.text,pI);for(let H of B){let W=await fetch(Y,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({chat_id:G,text:H})});if(!W.ok){let Q=await W.text();throw Error(`Telegram sendMessage failed: ${W.status} ${Q}`)}}}}});function oI(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 tI(D){let $=D.authorization;if(!$)return null;let F=/^bearer\s+(\S+)\s*$/i.exec($);return F?F[1]:null}var aI="default",JU;var YU=Z(()=>{j4();JU={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=tI($);if(!J||!f2(J,X))throw Error("invalid Authorization bearer token")},async toEnvelopes(D,$,F){let X=F?.id&&F.id.length>0?F.id:aI,J=JSON.parse(D),G=oI(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:A6(),raw:J}]},async send(){}}});import{Buffer as GU}from"buffer";import{createHmac as eI,timingSafeEqual as DT}from"crypto";function FT(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 XT(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 $T="v21.0",BU;var HU=Z(()=>{BU={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=eI("sha256",F.credentials.appSecret).update(D,"utf8").digest("hex"),B=GU.from(G,"hex"),H=GU.from(Y,"hex");if(B.length!==H.length||!DT(B,H))throw Error("invalid WhatsApp signature")},async toEnvelopes(D,$,F){if(!F||F.credentials.channel!=="whatsapp")throw Error("whatsapp adapter requires a whatsapp binding for accountId derivation");let X=F.credentials.phoneNumberId,J=JSON.parse(D),G=[];for(let Y of J.entry??[])for(let B of Y.changes??[]){let H=B.value;if(!H||!H.messages||H.messages.length===0)continue;let W=H.contacts??[];for(let Q of H.messages){let _=FT(Q);if(_===void 0)continue;let U=Q.from,R=W.find((K)=>K.wa_id===U)?.profile?.name,O=XT(Q);G.push({workerId:$,channel:"whatsapp",accountId:X,chatId:U,userId:U,...R?{userDisplayName:R}:{},text:_,...O===void 0?{}:{richMetadata:O},receivedAt:new Date(Number(Q.timestamp)*1000).toISOString(),raw:Q})}}return G},async send(D,$){if(D.credentials.channel!=="whatsapp")throw Error("whatsapp adapter called with non-whatsapp credentials");let{phoneNumberId:F,accessToken:X}=D.credentials,J=`https://graph.facebook.com/${$T}/${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 H1(D){return JT[D]}class n3{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 H1(D)}}var JT;var s3=Z(()=>{pX();DU();XU();YU();HU();JT={web:JU,line:e_,telegram:FU,lark:a_,whatsapp:BU}});function t2(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 z4(D){let $=structuredClone(D);return $.brains=$.brains.map((F)=>{if(F.type==="cloud-gateway")return{...F,config:{...F.config,token:""}};return F}),YT($),$.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 K6(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}),GT(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 YT(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 GT(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 VU=f((WU)=>{Object.defineProperty(WU,"__esModule",{value:!0})});var N8=f((QU)=>{Object.defineProperty(QU,"__esModule",{value:!0});QU.CronField=void 0;class cX{#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(cX.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))}}QU.CronField=cX});var OU=f((AU)=>{Object.defineProperty(AU,"__esModule",{value:!0});AU.CronDayOfMonth=void 0;var BT=N8(),HT=1,WT=31,VT=Object.freeze(["L"]);class UU extends BT.CronField{static get min(){return HT}static get max(){return WT}static get chars(){return VT}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}}AU.CronDayOfMonth=UU});var MU=f((EU)=>{Object.defineProperty(EU,"__esModule",{value:!0});EU.CronDayOfWeek=void 0;var QT=N8(),_T=0,UT=7,AT=Object.freeze(["L"]);class RU extends QT.CronField{static get min(){return _T}static get max(){return UT}static get chars(){return AT}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}}EU.CronDayOfWeek=RU});var PU=f((qU)=>{Object.defineProperty(qU,"__esModule",{value:!0});qU.CronHour=void 0;var KT=N8(),OT=0,RT=23,ET=Object.freeze([]);class ZU extends KT.CronField{static get min(){return OT}static get max(){return RT}static get chars(){return ET}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}qU.CronHour=ZU});var IU=f((jU)=>{Object.defineProperty(jU,"__esModule",{value:!0});jU.CronMinute=void 0;var CT=N8(),MT=0,ZT=59,qT=Object.freeze([]);class LU extends CT.CronField{static get min(){return MT}static get max(){return ZT}static get chars(){return qT}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}jU.CronMinute=LU});var QK=f((VK)=>{Object.defineProperty(VK,"__esModule",{value:!0});class z8 extends Error{}class YA extends z8{constructor(D){super(`Invalid DateTime: ${D.toMessage()}`)}}class GA extends z8{constructor(D){super(`Invalid Interval: ${D.toMessage()}`)}}class BA extends z8{constructor(D){super(`Invalid Duration: ${D.toMessage()}`)}}class Q1 extends z8{}class VJ extends z8{constructor(D){super(`Invalid unit ${D}`)}}class H0 extends z8{}class D8 extends z8{constructor(){super("Zone is an abstract class")}}var y="numeric",C2="short",w0="long",v4={year:y,month:y,day:y},HA={year:y,month:C2,day:y},NT={year:y,month:C2,day:y,weekday:C2},WA={year:y,month:w0,day:y},VA={year:y,month:w0,day:y,weekday:w0},QA={hour:y,minute:y},_A={hour:y,minute:y,second:y},UA={hour:y,minute:y,second:y,timeZoneName:C2},AA={hour:y,minute:y,second:y,timeZoneName:w0},KA={hour:y,minute:y,hourCycle:"h23"},OA={hour:y,minute:y,second:y,hourCycle:"h23"},RA={hour:y,minute:y,second:y,hourCycle:"h23",timeZoneName:C2},EA={hour:y,minute:y,second:y,hourCycle:"h23",timeZoneName:w0},CA={year:y,month:y,day:y,hour:y,minute:y},MA={year:y,month:y,day:y,hour:y,minute:y,second:y},ZA={year:y,month:C2,day:y,hour:y,minute:y},qA={year:y,month:C2,day:y,hour:y,minute:y,second:y},PT={year:y,month:C2,day:y,weekday:C2,hour:y,minute:y},NA={year:y,month:w0,day:y,hour:y,minute:y,timeZoneName:C2},PA={year:y,month:w0,day:y,hour:y,minute:y,second:y,timeZoneName:C2},LA={year:y,month:w0,day:y,weekday:w0,hour:y,minute:y,timeZoneName:w0},jA={year:y,month:w0,day:y,weekday:w0,hour:y,minute:y,second:y,timeZoneName:w0};class U1{get type(){throw new D8}get name(){throw new D8}get ianaName(){return this.name}get isUniversal(){throw new D8}offsetName(D,$){throw new D8}formatOffset(D,$){throw new D8}offset(D){throw new D8}equals(D){throw new D8}get isValid(){throw new D8}}var dX=null;class $9 extends U1{static get instance(){if(dX===null)dX=new $9;return dX}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(D,{format:$,locale:F}){return uA(D,$,F)}formatOffset(D,$){return e3(this.offset(D),$)}offset(D){return-new Date(D).getTimezoneOffset()}equals(D){return D.type==="system"}get isValid(){return!0}}var eX=new Map;function LT(D){let $=eX.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"}),eX.set(D,$);return $}var jT={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function zT(D,$){let F=D.format($).replace(/\u200E/g,""),X=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(F),[,J,G,Y,B,H,W,Q]=X;return[Y,J,G,B,H,W,Q]}function IT(D,$){let F=D.formatToParts($),X=[];for(let J=0;J<F.length;J++){let{type:G,value:Y}=F[J],B=jT[G];if(G==="era")X[B]=Y;else if(!t(B))X[B]=parseInt(Y,10)}return X}var lX=new Map;class k2 extends U1{static create(D){let $=lX.get(D);if($===void 0)lX.set(D,$=new k2(D));return $}static resetCache(){lX.clear(),eX.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=k2.isValidZone(D)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(D,{format:$,locale:F}){return uA(D,$,F,this.name)}formatOffset(D,$){return e3(this.offset(D),$)}offset(D){if(!this.valid)return NaN;let $=new Date(D);if(isNaN($))return NaN;let F=LT(this.name),[X,J,G,Y,B,H,W]=F.formatToParts?IT(F,$):zT(F,$);if(Y==="BC")X=-Math.abs(X)+1;let _=u4({year:X,month:J,day:G,hour:B===24?0:B,minute:H,second:W,millisecond:0}),U=+$,A=U%1000;return U-=A>=0?A:1000+A,(_-U)/60000}equals(D){return D.type==="iana"&&D.name===this.name}get isValid(){return this.valid}}var TU={};function TT(D,$={}){let F=JSON.stringify([D,$]),X=TU[F];if(!X)X=new Intl.ListFormat(D,$),TU[F]=X;return X}var DJ=new Map;function $J(D,$={}){let F=JSON.stringify([D,$]),X=DJ.get(F);if(X===void 0)X=new Intl.DateTimeFormat(D,$),DJ.set(F,X);return X}var FJ=new Map;function wT(D,$={}){let F=JSON.stringify([D,$]),X=FJ.get(F);if(X===void 0)X=new Intl.NumberFormat(D,$),FJ.set(F,X);return X}var XJ=new Map;function ST(D,$={}){let{base:F,...X}=$,J=JSON.stringify([D,X]),G=XJ.get(J);if(G===void 0)G=new Intl.RelativeTimeFormat(D,$),XJ.set(J,G);return G}var a3=null;function bT(){if(a3)return a3;else return a3=new Intl.DateTimeFormat().resolvedOptions().locale,a3}var JJ=new Map;function zA(D){let $=JJ.get(D);if($===void 0)$=new Intl.DateTimeFormat(D).resolvedOptions(),JJ.set(D,$);return $}var YJ=new Map;function fT(D){let $=YJ.get(D);if(!$){let F=new Intl.Locale(D);if($="getWeekInfo"in F?F.getWeekInfo():F.weekInfo,!("minimalDays"in $))$={...SA,...$};YJ.set(D,$)}return $}function kT(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=$J(D).resolvedOptions(),J=D}catch(B){let H=D.substring(0,F);X=$J(H).resolvedOptions(),J=H}let{numberingSystem:G,calendar:Y}=X;return[J,G,Y]}}function vT(D,$,F){if(F||$){if(!D.includes("-u-"))D+="-u";if(F)D+=`-ca-${F}`;if($)D+=`-nu-${$}`;return D}else return D}function hT(D){let $=[];for(let F=1;F<=12;F++){let X=DD.utc(2009,F,1);$.push(D(X))}return $}function xT(D){let $=[];for(let F=1;F<=7;F++){let X=DD.utc(2016,11,13+F);$.push(D(X))}return $}function I4(D,$,F,X){let J=D.listingMode();if(J==="error")return null;else if(J==="en")return F($);else return X($)}function gT(D){if(D.numberingSystem&&D.numberingSystem!=="latn")return!1;else return D.numberingSystem==="latn"||!D.locale||D.locale.startsWith("en")||zA(D.locale).numberingSystem==="latn"}class IA{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=wT(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):OJ(D,3);return dD($,this.padTo)}}}class TA{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&&k2.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=$J($,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 wA{constructor(D,$,F){if(this.opts={style:"long",...F},!$&&gA())this.rtf=ST(D,F)}format(D,$){if(this.rtf)return this.rtf.format(D,$);else return Yw($,D,this.opts.numeric,this.opts.style!=="long")}formatToParts(D,$){if(this.rtf)return this.rtf.formatToParts(D,$);else return[]}}var SA={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||wD.defaultLocale,Y=G||(J?"en-US":bT()),B=$||wD.defaultNumberingSystem,H=F||wD.defaultOutputCalendar,W=BJ(X)||wD.defaultWeekSettings;return new RD(Y,B,H,W,G)}static resetCache(){a3=null,DJ.clear(),FJ.clear(),XJ.clear(),JJ.clear(),YJ.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]=kT(D);this.locale=G,this.numberingSystem=$||Y||null,this.outputCalendar=F||B||null,this.weekSettings=X,this.intl=vT(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=gT(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,BJ(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 I4(this,D,cA,()=>{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]=hT(G)}return this.monthsCache[J][D]})}weekdays(D,$=!1){return I4(this,D,iA,()=>{let F=$?{weekday:D,year:"numeric",month:"long",day:"numeric"}:{weekday:D},X=$?"format":"standalone";if(!this.weekdaysCache[X][D])this.weekdaysCache[X][D]=xT((J)=>this.extract(J,F,"weekday"));return this.weekdaysCache[X][D]})}meridiems(){return I4(this,void 0,()=>nA,()=>{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 I4(this,D,sA,()=>{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 IA(this.intl,D.forceSimple||this.fastNumbers,D)}dtFormatter(D,$={}){return new TA(D,this.intl,$)}relFormatter(D={}){return new wA(this.intl,this.isEnglish(),D)}listFormatter(D={}){return TT(this.intl,D)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||zA(this.intl).locale.startsWith("en-us")}getWeekSettings(){if(this.weekSettings)return this.weekSettings;else if(!yA())return SA;else return fT(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 iX=null;class K0 extends U1{static get utcInstance(){if(iX===null)iX=new K0(0);return iX}static instance(D){return D===0?K0.utcInstance:new K0(D)}static parseSpecifier(D){if(D){let $=D.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if($)return new K0(m4($[1],$[2]))}return null}constructor(D){super();this.fixed=D}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${e3(this.fixed,"narrow")}`}get ianaName(){if(this.fixed===0)return"Etc/UTC";else return`Etc/GMT${e3(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(D,$){return e3(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 QJ extends U1{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 L8(D,$){if(t(D)||D===null)return $;else if(D instanceof U1)return D;else if(dT(D)){let F=D.toLowerCase();if(F==="default")return $;else if(F==="local"||F==="system")return $9.instance;else if(F==="utc"||F==="gmt")return K0.utcInstance;else return K0.parseSpecifier(F)||k2.create(D)}else if(j8(D))return K0.instance(D);else if(typeof D==="object"&&"offset"in D&&typeof D.offset==="function")return D;else return new QJ(D)}var _J={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"},wU={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]},yT=_J.hanidec.replace(/[\[|\]]/g,"").split("");function uT(D){let $=parseInt(D,10);if(isNaN($)){$="";for(let F=0;F<D.length;F++){let X=D.charCodeAt(F);if(D[F].search(_J.hanidec)!==-1)$+=yT.indexOf(D[F]);else for(let J in wU){let[G,Y]=wU[J];if(X>=G&&X<=Y)$+=X-G}}return parseInt($,10)}else return $}var GJ=new Map;function mT(){GJ.clear()}function R2({numberingSystem:D},$=""){let F=D||"latn",X=GJ.get(F);if(X===void 0)X=new Map,GJ.set(F,X);let J=X.get($);if(J===void 0)J=new RegExp(`${_J[F]}${$}`),X.set($,J);return J}var SU=()=>Date.now(),bU="system",fU=null,kU=null,vU=null,hU=60,xU,gU=null;class wD{static get now(){return SU}static set now(D){SU=D}static set defaultZone(D){bU=D}static get defaultZone(){return L8(bU,$9.instance)}static get defaultLocale(){return fU}static set defaultLocale(D){fU=D}static get defaultNumberingSystem(){return kU}static set defaultNumberingSystem(D){kU=D}static get defaultOutputCalendar(){return vU}static set defaultOutputCalendar(D){vU=D}static get defaultWeekSettings(){return gU}static set defaultWeekSettings(D){gU=BJ(D)}static get twoDigitCutoffYear(){return hU}static set twoDigitCutoffYear(D){hU=D%100}static get throwOnInvalid(){return xU}static set throwOnInvalid(D){xU=D}static resetCaches(){RD.resetCache(),k2.resetCache(),DD.resetCache(),mT()}}class u0{constructor(D,$){this.reason=D,this.explanation=$}toMessage(){if(this.explanation)return`${this.reason}: ${this.explanation}`;else return this.reason}}var bA=[0,31,59,90,120,151,181,212,243,273,304,334],fA=[0,31,60,91,121,152,182,213,244,274,305,335];function m0(D,$){return new u0("unit out of range",`you specified ${$} (of type ${typeof $}) as a ${D}, which is invalid`)}function UJ(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 kA(D,$,F){return F+(F9(D)?fA:bA)[$-1]}function vA(D,$){let F=F9(D)?fA:bA,X=F.findIndex((G)=>G<$),J=$-F[X];return{month:X+1,day:J}}function AJ(D,$){return(D-$+7)%7+1}function h4(D,$=4,F=1){let{year:X,month:J,day:G}=D,Y=kA(X,J,G),B=AJ(UJ(X,J,G),F),H=Math.floor((Y-B+14-$)/7),W;if(H<1)W=X-1,H=D9(W,$,F);else if(H>D9(X,$,F))W=X+1,H=1;else W=X;return{weekYear:W,weekNumber:H,weekday:B,...p4(D)}}function yU(D,$=4,F=1){let{weekYear:X,weekNumber:J,weekday:G}=D,Y=AJ(UJ(X,1,$),F),B=M6(X),H=J*7+G-Y-7+$,W;if(H<1)W=X-1,H+=M6(W);else if(H>B)W=X+1,H-=M6(X);else W=X;let{month:Q,day:_}=vA(W,H);return{year:W,month:Q,day:_,...p4(D)}}function nX(D){let{year:$,month:F,day:X}=D,J=kA($,F,X);return{year:$,ordinal:J,...p4(D)}}function uU(D){let{year:$,ordinal:F}=D,{month:X,day:J}=vA($,F);return{year:$,month:X,day:J,...p4(D)}}function mU(D,$){if(!t(D.localWeekday)||!t(D.localWeekNumber)||!t(D.localWeekYear)){if(!t(D.weekday)||!t(D.weekNumber)||!t(D.weekYear))throw new Q1("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 pT(D,$=4,F=1){let X=y4(D.weekYear),J=p0(D.weekNumber,1,D9(D.weekYear,$,F)),G=p0(D.weekday,1,7);if(!X)return m0("weekYear",D.weekYear);else if(!J)return m0("week",D.weekNumber);else if(!G)return m0("weekday",D.weekday);else return!1}function cT(D){let $=y4(D.year),F=p0(D.ordinal,1,M6(D.year));if(!$)return m0("year",D.year);else if(!F)return m0("ordinal",D.ordinal);else return!1}function hA(D){let $=y4(D.year),F=p0(D.month,1,12),X=p0(D.day,1,x4(D.year,D.month));if(!$)return m0("year",D.year);else if(!F)return m0("month",D.month);else if(!X)return m0("day",D.day);else return!1}function xA(D){let{hour:$,minute:F,second:X,millisecond:J}=D,G=p0($,0,23)||$===24&&F===0&&X===0&&J===0,Y=p0(F,0,59),B=p0(X,0,59),H=p0(J,0,999);if(!G)return m0("hour",$);else if(!Y)return m0("minute",F);else if(!B)return m0("second",X);else if(!H)return m0("millisecond",J);else return!1}function t(D){return typeof D>"u"}function j8(D){return typeof D==="number"}function y4(D){return typeof D==="number"&&D%1===0}function dT(D){return typeof D==="string"}function lT(D){return Object.prototype.toString.call(D)==="[object Date]"}function gA(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch(D){return!1}}function yA(){try{return typeof Intl<"u"&&!!Intl.Locale&&(("weekInfo"in Intl.Locale.prototype)||("getWeekInfo"in Intl.Locale.prototype))}catch(D){return!1}}function iT(D){return Array.isArray(D)?D:[D]}function pU(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 nT(D,$){return $.reduce((F,X)=>{return F[X]=D[X],F},{})}function q6(D,$){return Object.prototype.hasOwnProperty.call(D,$)}function BJ(D){if(D==null)return null;else if(typeof D!=="object")throw new H0("Week settings must be an object");else{if(!p0(D.firstDay,1,7)||!p0(D.minimalDays,1,7)||!Array.isArray(D.weekend)||D.weekend.some(($)=>!p0($,1,7)))throw new H0("Invalid week settings");return{firstDay:D.firstDay,minimalDays:D.minimalDays,weekend:Array.from(D.weekend)}}}function p0(D,$,F){return y4(D)&&D>=$&&D<=F}function sT(D,$){return D-$*Math.floor(D/$)}function dD(D,$=2){let F=D<0,X;if(F)X="-"+(""+-D).padStart($,"0");else X=(""+D).padStart($,"0");return X}function P8(D){if(t(D)||D===null||D==="")return;else return parseInt(D,10)}function W1(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 OJ(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 F9(D){return D%4===0&&(D%100!==0||D%400===0)}function M6(D){return F9(D)?366:365}function x4(D,$){let F=sT($-1,12)+1,X=D+($-F)/12;if(F===2)return F9(X)?29:28;else return[31,null,31,30,31,30,31,31,30,31,30,31][F-1]}function u4(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 cU(D,$,F){return-AJ(UJ(D,1,$),F)+$-1}function D9(D,$=4,F=1){let X=cU(D,$,F),J=cU(D+1,$,F);return(M6(D)-X+J)/7}function HJ(D){if(D>99)return D;else return D>wD.twoDigitCutoffYear?1900+D:2000+D}function uA(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 m4(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 mA(D){let $=Number(D);if(typeof D==="boolean"||D===""||!Number.isFinite($))throw new H0(`Invalid unit value ${D}`);return $}function g4(D,$){let F={};for(let X in D)if(q6(D,X)){let J=D[X];if(J===void 0||J===null)continue;F[$(X)]=mA(J)}return F}function e3(D,$){let F=Math.trunc(Math.abs(D/60)),X=Math.trunc(Math.abs(D%60)),J=D>=0?"+":"-";switch($){case"short":return`${J}${dD(F,2)}:${dD(X,2)}`;case"narrow":return`${J}${F}${X>0?`:${X}`:""}`;case"techie":return`${J}${dD(F,2)}${dD(X,2)}`;default:throw RangeError(`Value format ${$} is out of range for property format`)}}function p4(D){return nT(D,["hour","minute","second","millisecond"])}var rT=["January","February","March","April","May","June","July","August","September","October","November","December"],pA=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],aT=["J","F","M","A","M","J","J","A","S","O","N","D"];function cA(D){switch(D){case"narrow":return[...aT];case"short":return[...pA];case"long":return[...rT];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 dA=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],lA=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],oT=["M","T","W","T","F","S","S"];function iA(D){switch(D){case"narrow":return[...oT];case"short":return[...lA];case"long":return[...dA];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var nA=["AM","PM"],tT=["Before Christ","Anno Domini"],eT=["BC","AD"],Dw=["B","A"];function sA(D){switch(D){case"narrow":return[...Dw];case"short":return[...eT];case"long":return[...tT];default:return null}}function $w(D){return nA[D.hour<12?0:1]}function Fw(D,$){return iA($)[D.weekday-1]}function Xw(D,$){return cA($)[D.month-1]}function Jw(D,$){return sA($)[D.year<0?0:1]}function Yw(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 _=D==="days";switch($){case 1:return _?"tomorrow":`next ${J[D][0]}`;case-1:return _?"yesterday":`last ${J[D][0]}`;case 0:return _?"today":`this ${J[D][0]}`}}let Y=Object.is($,-0)||$<0,B=Math.abs($),H=B===1,W=J[D],Q=X?H?W[1]:W[2]||W[1]:H?J[D][0]:D;return Y?`${B} ${Q} ago`:`in ${B} ${Q}`}function dU(D,$){let F="";for(let X of D)if(X.literal)F+=X.val;else F+=$(X.val);return F}var Gw={D:v4,DD:HA,DDD:WA,DDDD:VA,t:QA,tt:_A,ttt:UA,tttt:AA,T:KA,TT:OA,TTT:RA,TTTT:EA,f:CA,ff:ZA,fff:NA,ffff:LA,F:MA,FF:qA,FFF:PA,FFFF:jA};class A0{static create(D,$={}){return new A0(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 Gw[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 dD(D,$);let X={...this.opts};if($>0)X.padTo=$;if(F)X.signDisplay=F;return this.loc.numberFormatter(X).format(D)}formatDateTimeFromString(D,$){let F=this.loc.listingMode()==="en",X=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",J=(U,A)=>this.loc.extract(D,U,A),G=(U)=>{if(D.isOffsetFixed&&D.offset===0&&U.allowZ)return"Z";return D.isValid?D.zone.formatOffset(D.ts,U.format):""},Y=()=>F?$w(D):J({hour:"numeric",hourCycle:"h12"},"dayperiod"),B=(U,A)=>F?Xw(D,U):J(A?{month:U}:{month:U,day:"numeric"},"month"),H=(U,A)=>F?Fw(D,U):J(A?{weekday:U}:{weekday:U,month:"long",day:"numeric"},"weekday"),W=(U)=>{let A=A0.macroTokenToFormatOpts(U);if(A)return this.formatWithSystemDefault(D,A);else return U},Q=(U)=>F?Jw(D,U):J({era:U},"era"),_=(U)=>{switch(U){case"S":return this.num(D.millisecond);case"u":case"SSS":return this.num(D.millisecond,3);case"s":return this.num(D.second);case"ss":return this.num(D.second,2);case"uu":return this.num(Math.floor(D.millisecond/10),2);case"uuu":return this.num(Math.floor(D.millisecond/100));case"m":return this.num(D.minute);case"mm":return this.num(D.minute,2);case"h":return this.num(D.hour%12===0?12:D.hour%12);case"hh":return this.num(D.hour%12===0?12:D.hour%12,2);case"H":return this.num(D.hour);case"HH":return this.num(D.hour,2);case"Z":return G({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return G({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return G({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return D.zone.offsetName(D.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return D.zone.offsetName(D.ts,{format:"long",locale:this.loc.locale});case"z":return D.zoneName;case"a":return Y();case"d":return X?J({day:"numeric"},"day"):this.num(D.day);case"dd":return X?J({day:"2-digit"},"day"):this.num(D.day,2);case"c":return this.num(D.weekday);case"ccc":return H("short",!0);case"cccc":return H("long",!0);case"ccccc":return H("narrow",!0);case"E":return this.num(D.weekday);case"EEE":return H("short",!1);case"EEEE":return H("long",!1);case"EEEEE":return H("narrow",!1);case"L":return X?J({month:"numeric",day:"numeric"},"month"):this.num(D.month);case"LL":return X?J({month:"2-digit",day:"numeric"},"month"):this.num(D.month,2);case"LLL":return B("short",!0);case"LLLL":return B("long",!0);case"LLLLL":return B("narrow",!0);case"M":return X?J({month:"numeric"},"month"):this.num(D.month);case"MM":return X?J({month:"2-digit"},"month"):this.num(D.month,2);case"MMM":return B("short",!1);case"MMMM":return B("long",!1);case"MMMMM":return B("narrow",!1);case"y":return X?J({year:"numeric"},"year"):this.num(D.year);case"yy":return X?J({year:"2-digit"},"year"):this.num(D.year.toString().slice(-2),2);case"yyyy":return X?J({year:"numeric"},"year"):this.num(D.year,4);case"yyyyyy":return X?J({year:"numeric"},"year"):this.num(D.year,6);case"G":return Q("short");case"GG":return Q("long");case"GGGGG":return Q("narrow");case"kk":return this.num(D.weekYear.toString().slice(-2),2);case"kkkk":return this.num(D.weekYear,4);case"W":return this.num(D.weekNumber);case"WW":return this.num(D.weekNumber,2);case"n":return this.num(D.localWeekNumber);case"nn":return this.num(D.localWeekNumber,2);case"ii":return this.num(D.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(D.localWeekYear,4);case"o":return this.num(D.ordinal);case"ooo":return this.num(D.ordinal,3);case"q":return this.num(D.quarter);case"qq":return this.num(D.quarter,2);case"X":return this.num(Math.floor(D.ts/1000));case"x":return this.num(D.ts);default:return W(U)}};return dU(A0.parseFormat($),_)}formatDurationFromString(D,$){let F=this.opts.signMode==="negativeLargestOnly"?-1:1,X=(W)=>{switch(W[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},J=(W,Q)=>(_)=>{let U=X(_);if(U){let A=Q.isNegativeDuration&&U!==Q.largestUnit?F:1,R;if(this.opts.signMode==="negativeLargestOnly"&&U!==Q.largestUnit)R="never";else if(this.opts.signMode==="all")R="always";else R="auto";return this.num(W.get(U)*A,_.length,R)}else return _},G=A0.parseFormat($),Y=G.reduce((W,{literal:Q,val:_})=>Q?W:W.concat(_),[]),B=D.shiftTo(...Y.map(X).filter((W)=>W)),H={isNegativeDuration:B<0,largestUnit:Object.keys(B.values)[0]};return dU(G,J(B,H))}}var rA=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function N6(...D){let $=D.reduce((F,X)=>F+X.source,"");return RegExp(`^${$}$`)}function P6(...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 L6(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 aA(...D){return($,F)=>{let X={},J;for(J=0;J<D.length;J++)X[D[J]]=P8($[F+J]);return[X,null,F+J]}}var oA=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,Bw=`(?:${oA.source}?(?:\\[(${rA.source})\\])?)?`,RJ=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,tA=RegExp(`${RJ.source}${Bw}`),EJ=RegExp(`(?:[Tt]${tA.source})?`),Hw=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Ww=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Vw=/(\d{4})-?(\d{3})/,Qw=aA("weekYear","weekNumber","weekDay"),_w=aA("year","ordinal"),Uw=/(\d{4})-(\d\d)-(\d\d)/,eA=RegExp(`${RJ.source} ?(?:${oA.source}|(${rA.source}))?`),Aw=RegExp(`(?: ${eA.source})?`);function Z6(D,$,F){let X=D[$];return t(X)?F:P8(X)}function Kw(D,$){return[{year:Z6(D,$),month:Z6(D,$+1,1),day:Z6(D,$+2,1)},null,$+3]}function j6(D,$){return[{hours:Z6(D,$,0),minutes:Z6(D,$+1,0),seconds:Z6(D,$+2,0),milliseconds:KJ(D[$+3])},null,$+4]}function X9(D,$){let F=!D[$]&&!D[$+1],X=m4(D[$+1],D[$+2]),J=F?null:K0.instance(X);return[{},J,$+3]}function J9(D,$){let F=D[$]?k2.create(D[$]):null;return[{},F,$+1]}var Ow=RegExp(`^T?${RJ.source}$`),Rw=/^-?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 Ew(D){let[$,F,X,J,G,Y,B,H,W]=D,Q=$[0]==="-",_=H&&H[0]==="-",U=(A,R=!1)=>A!==void 0&&(R||A&&Q)?-A:A;return[{years:U(W1(F)),months:U(W1(X)),weeks:U(W1(J)),days:U(W1(G)),hours:U(W1(Y)),minutes:U(W1(B)),seconds:U(W1(H),H==="-0"),milliseconds:U(KJ(W),_)}]}var Cw={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function CJ(D,$,F,X,J,G,Y){let B={year:$.length===2?HJ(P8($)):P8($),month:pA.indexOf(F)+1,day:P8(X),hour:P8(J),minute:P8(G)};if(Y)B.second=P8(Y);if(D)B.weekday=D.length>3?dA.indexOf(D)+1:lA.indexOf(D)+1;return B}var Mw=/^(?:(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 Zw(D){let[,$,F,X,J,G,Y,B,H,W,Q,_]=D,U=CJ($,J,X,F,G,Y,B),A;if(H)A=Cw[H];else if(W)A=0;else A=m4(Q,_);return[U,new K0(A)]}function qw(D){return D.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var Nw=/^(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$/,Pw=/^(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$/,Lw=/^(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 lU(D){let[,$,F,X,J,G,Y,B]=D;return[CJ($,J,X,F,G,Y,B),K0.utcInstance]}function jw(D){let[,$,F,X,J,G,Y,B]=D;return[CJ($,B,F,X,J,G,Y),K0.utcInstance]}var zw=N6(Hw,EJ),Iw=N6(Ww,EJ),Tw=N6(Vw,EJ),ww=N6(tA),DK=P6(Kw,j6,X9,J9),Sw=P6(Qw,j6,X9,J9),bw=P6(_w,j6,X9,J9),fw=P6(j6,X9,J9);function kw(D){return L6(D,[zw,DK],[Iw,Sw],[Tw,bw],[ww,fw])}function vw(D){return L6(qw(D),[Mw,Zw])}function hw(D){return L6(D,[Nw,lU],[Pw,lU],[Lw,jw])}function xw(D){return L6(D,[Rw,Ew])}var gw=P6(j6);function yw(D){return L6(D,[Ow,gw])}var uw=N6(Uw,Aw),mw=N6(eA),pw=P6(j6,X9,J9);function cw(D){return L6(D,[uw,DK],[mw,pw])}var iU="Invalid Duration",$K={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}},dw={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},...$K},y0=365.2425,O6=30.436875,lw={years:{quarters:4,months:12,weeks:y0/7,days:y0,hours:y0*24,minutes:y0*24*60,seconds:y0*24*60*60,milliseconds:y0*24*60*60*1000},quarters:{months:3,weeks:y0/28,days:y0/4,hours:y0*24/4,minutes:y0*24*60/4,seconds:y0*24*60*60/4,milliseconds:y0*24*60*60*1000/4},months:{weeks:O6/7,days:O6,hours:O6*24,minutes:O6*24*60,seconds:O6*24*60*60,milliseconds:O6*24*60*60*1000},...$K},_1=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],iw=_1.slice(0).reverse();function e2(D,$,F=!1){let X={values:F?$.values:{...D.values,...$.values||{}},loc:D.loc.clone($.loc),conversionAccuracy:$.conversionAccuracy||D.conversionAccuracy,matrix:$.matrix||D.matrix};return new _D(X)}function FK(D,$){var F;let X=(F=$.milliseconds)!=null?F:0;for(let J of iw.slice(1))if($[J])X+=$[J]*D[J].milliseconds;return X}function nU(D,$){let F=FK(D,$)<0?-1:1;_1.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),_1.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 sU(D){let $={};for(let[F,X]of Object.entries(D))if(X!==0)$[F]=X;return $}class _D{constructor(D){let $=D.conversionAccuracy==="longterm"||!1,F=$?lw:dw;if(D.matrix)F=D.matrix;this.values=D.values,this.loc=D.loc||RD.create(),this.conversionAccuracy=$?"longterm":"casual",this.invalid=D.invalid||null,this.matrix=F,this.isLuxonDuration=!0}static fromMillis(D,$){return _D.fromObject({milliseconds:D},$)}static fromObject(D,$={}){if(D==null||typeof D!=="object")throw new H0(`Duration.fromObject: argument expected to be an object, got ${D===null?"null":typeof D}`);return new _D({values:g4(D,_D.normalizeUnit),loc:RD.fromObject($),conversionAccuracy:$.conversionAccuracy,matrix:$.matrix})}static fromDurationLike(D){if(j8(D))return _D.fromMillis(D);else if(_D.isDuration(D))return D;else if(typeof D==="object")return _D.fromObject(D);else throw new H0(`Unknown duration argument ${D} of type ${typeof D}`)}static fromISO(D,$){let[F]=xw(D);if(F)return _D.fromObject(F,$);else return _D.invalid("unparsable",`the input "${D}" can't be parsed as ISO 8601`)}static fromISOTime(D,$){let[F]=yw(D);if(F)return _D.fromObject(F,$);else return _D.invalid("unparsable",`the input "${D}" can't be parsed as ISO 8601`)}static invalid(D,$=null){if(!D)throw new H0("need to specify a reason the Duration is invalid");let F=D instanceof u0?D:new u0(D,$);if(wD.throwOnInvalid)throw new BA(F);else return new _D({invalid:F})}static normalizeUnit(D){let $={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[D?D.toLowerCase():D];if(!$)throw new VJ(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?A0.create(this.loc,F).formatDurationFromString(this,D):iU}toHuman(D={}){if(!this.isValid)return iU;let $=D.showZeros!==!1,F=_1.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+=OJ(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 FK(this.matrix,this.values)}valueOf(){return this.toMillis()}plus(D){if(!this.isValid)return this;let $=_D.fromDurationLike(D),F={};for(let X of _1)if(q6($.values,X)||q6(this.values,X))F[X]=$.get(X)+this.get(X);return e2(this,{values:F},!0)}minus(D){if(!this.isValid)return this;let $=_D.fromDurationLike(D);return this.plus($.negate())}mapUnits(D){if(!this.isValid)return this;let $={};for(let F of Object.keys(this.values))$[F]=mA(D(this.values[F],F));return e2(this,{values:$},!0)}get(D){return this[_D.normalizeUnit(D)]}set(D){if(!this.isValid)return this;let $={...this.values,...g4(D,_D.normalizeUnit)};return e2(this,{values:$})}reconfigure({locale:D,numberingSystem:$,conversionAccuracy:F,matrix:X}={}){let G={loc:this.loc.clone({locale:D,numberingSystem:$}),matrix:X,conversionAccuracy:F};return e2(this,G)}as(D){return this.isValid?this.shiftTo(D).get(D):NaN}normalize(){if(!this.isValid)return this;let D=this.toObject();return nU(this.matrix,D),e2(this,{values:D},!0)}rescale(){if(!this.isValid)return this;let D=sU(this.normalize().shiftToAll().toObject());return e2(this,{values:D},!0)}shiftTo(...D){if(!this.isValid)return this;if(D.length===0)return this;D=D.map((G)=>_D.normalizeUnit(G));let $={},F={},X=this.toObject(),J;for(let G of _1)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(j8(X[G]))Y+=X[G];let B=Math.trunc(Y);$[G]=B,F[G]=(Y*1000-B*1000)/1000}else if(j8(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 nU(this.matrix,$),e2(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 e2(this,{values:D},!0)}removeZeros(){if(!this.isValid)return this;let D=sU(this.values);return e2(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 _1)if(!$(this.values[F],D.values[F]))return!1;return!0}}var R6="Invalid Interval";function nw(D,$){if(!D||!D.isValid)return kD.invalid("missing or invalid start");else if(!$||!$.isValid)return kD.invalid("missing or invalid end");else if($<D)return kD.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 kD{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 H0("need to specify a reason the Interval is invalid");let F=D instanceof u0?D:new u0(D,$);if(wD.throwOnInvalid)throw new GA(F);else return new kD({invalid:F})}static fromDateTimes(D,$){let F=r3(D),X=r3($),J=nw(F,X);if(J==null)return new kD({start:F,end:X});else return J}static after(D,$){let F=_D.fromDurationLike($),X=r3(D);return kD.fromDateTimes(X,X.plus(F))}static before(D,$){let F=_D.fromDurationLike($),X=r3(D);return kD.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 kD.fromDateTimes(J,Y);if(G){let H=_D.fromISO(X,$);if(H.isValid)return kD.after(J,H)}else if(B){let H=_D.fromISO(F,$);if(H.isValid)return kD.before(Y,H)}}return kD.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 kD.fromDateTimes(D||this.s,$||this.e)}splitAt(...D){if(!this.isValid)return[];let $=D.map(r3).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(kD.fromDateTimes(X,Y)),X=Y,J+=1}return F}splitBy(D){let $=_D.fromDurationLike(D);if(!this.isValid||!$.isValid||$.as("milliseconds")===0)return[];let{s:F}=this,X=1,J,G=[];while(F<this.e){let Y=this.start.plus($.mapUnits((B)=>B*X));J=+Y>+this.e?this.e:Y,G.push(kD.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 kD.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 kD.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(kD.fromDateTimes($,B.time));$=null}return kD.merge(X)}difference(...D){return kD.xor([this].concat(D)).map(($)=>this.intersection($)).filter(($)=>$&&!$.isEmpty())}toString(){if(!this.isValid)return R6;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=v4,$={}){return this.isValid?A0.create(this.s.loc.clone($),D).formatInterval(this):R6}toISO(D){if(!this.isValid)return R6;return`${this.s.toISO(D)}/${this.e.toISO(D)}`}toISODate(){if(!this.isValid)return R6;return`${this.s.toISODate()}/${this.e.toISODate()}`}toISOTime(D){if(!this.isValid)return R6;return`${this.s.toISOTime(D)}/${this.e.toISOTime(D)}`}toFormat(D,{separator:$=" \u2013 "}={}){if(!this.isValid)return R6;return`${this.s.toFormat(D)}${$}${this.e.toFormat(D)}`}toDuration(D,$){if(!this.isValid)return _D.invalid(this.invalidReason);return this.e.diff(this.s,D,$)}mapEndpoints(D){return kD.fromDateTimes(D(this.s),D(this.e))}}class C6{static hasDST(D=wD.defaultZone){let $=DD.now().setZone(D).set({month:12});return!D.isUniversal&&$.offset!==$.set({month:6}).offset}static isValidIANAZone(D){return k2.isValidZone(D)}static normalizeZone(D){return L8(D,wD.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:gA(),localeWeek:yA()}}}function rU(D,$){let F=(J)=>J.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),X=F($)-F(D);return Math.floor(_D.fromMillis(X).as("days"))}function sw(D,$,F){let X=[["years",(H,W)=>W.year-H.year],["quarters",(H,W)=>W.quarter-H.quarter+(W.year-H.year)*4],["months",(H,W)=>W.month-H.month+(W.year-H.year)*12],["weeks",(H,W)=>{let Q=rU(H,W);return(Q-Q%7)/7}],["days",rU]],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 rw(D,$,F,X){let[J,G,Y,B]=sw(D,$,F),H=$-J,W=F.filter((_)=>["hours","minutes","seconds","milliseconds"].indexOf(_)>=0);if(W.length===0){if(Y<$)Y=J.plus({[B]:1});if(Y!==J)G[B]=(G[B]||0)+H/(Y-J)}let Q=_D.fromObject(G,X);if(W.length>0)return _D.fromMillis(H,X).shiftTo(...W).plus(Q);else return Q}var aw="missing Intl.DateTimeFormat.formatToParts support";function AD(D,$=(F)=>F){return{regex:D,deser:([F])=>$(uT(F))}}var ow=String.fromCharCode(160),XK=`[ ${ow}]`,JK=new RegExp(XK,"g");function tw(D){return D.replace(/\./g,"\\.?").replace(JK,XK)}function aU(D){return D.replace(/\./g,"").replace(JK," ").toLowerCase()}function E2(D,$){if(D===null)return null;else return{regex:RegExp(D.map(tw).join("|")),deser:([F])=>D.findIndex((X)=>aU(F)===aU(X))+$}}function oU(D,$){return{regex:D,deser:([,F,X])=>m4(F,X),groups:$}}function T4(D){return{regex:D,deser:([$])=>$}}function ew(D){return D.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function DS(D,$){let F=R2($),X=R2($,"{2}"),J=R2($,"{3}"),G=R2($,"{4}"),Y=R2($,"{6}"),B=R2($,"{1,2}"),H=R2($,"{1,3}"),W=R2($,"{1,6}"),Q=R2($,"{1,9}"),_=R2($,"{2,4}"),U=R2($,"{4,6}"),A=(K)=>({regex:RegExp(ew(K.val)),deser:([E])=>E,literal:!0}),O=((K)=>{if(D.literal)return A(K);switch(K.val){case"G":return E2($.eras("short"),0);case"GG":return E2($.eras("long"),0);case"y":return AD(W);case"yy":return AD(_,HJ);case"yyyy":return AD(G);case"yyyyy":return AD(U);case"yyyyyy":return AD(Y);case"M":return AD(B);case"MM":return AD(X);case"MMM":return E2($.months("short",!0),1);case"MMMM":return E2($.months("long",!0),1);case"L":return AD(B);case"LL":return AD(X);case"LLL":return E2($.months("short",!1),1);case"LLLL":return E2($.months("long",!1),1);case"d":return AD(B);case"dd":return AD(X);case"o":return AD(H);case"ooo":return AD(J);case"HH":return AD(X);case"H":return AD(B);case"hh":return AD(X);case"h":return AD(B);case"mm":return AD(X);case"m":return AD(B);case"q":return AD(B);case"qq":return AD(X);case"s":return AD(B);case"ss":return AD(X);case"S":return AD(H);case"SSS":return AD(J);case"u":return T4(Q);case"uu":return T4(B);case"uuu":return AD(F);case"a":return E2($.meridiems(),0);case"kkkk":return AD(G);case"kk":return AD(_,HJ);case"W":return AD(B);case"WW":return AD(X);case"E":case"c":return AD(F);case"EEE":return E2($.weekdays("short",!1),1);case"EEEE":return E2($.weekdays("long",!1),1);case"ccc":return E2($.weekdays("short",!0),1);case"cccc":return E2($.weekdays("long",!0),1);case"Z":case"ZZ":return oU(new RegExp(`([+-]${B.source})(?::(${X.source}))?`),2);case"ZZZ":return oU(new RegExp(`([+-]${B.source})(${X.source})?`),2);case"z":return T4(/[a-z_+-/]{1,256}?/i);case" ":return T4(/[^\S\n\r]/);default:return A(K)}})(D)||{invalidReason:aw};return O.token=D,O}var $S={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 FS(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=$S[Y];if(typeof B==="object")B=B[G];if(B)return{literal:!1,val:B};return}function XS(D){return[`^${D.map((F)=>F.regex).reduce((F,X)=>`${F}(${X.source})`,"")}$`,D]}function JS(D,$,F){let X=D.match($);if(X){let J={},G=1;for(let Y in F)if(q6(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 YS(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=k2.create(D.z);if(!t(D.Z)){if(!F)F=new K0(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 sX=null;function GS(){if(!sX)sX=DD.fromMillis(1555555555555);return sX}function BS(D,$){if(D.literal)return D;let F=A0.macroTokenToFormatOpts(D.val),X=BK(F,$);if(X==null||X.includes(void 0))return D;return X}function YK(D,$){return Array.prototype.concat(...D.map((F)=>BS(F,$)))}class MJ{constructor(D,$){if(this.locale=D,this.format=$,this.tokens=YK(A0.parseFormat($),D),this.units=this.tokens.map((F)=>DS(F,D)),this.disqualifyingUnit=this.units.find((F)=>F.invalidReason),!this.disqualifyingUnit){let[F,X]=XS(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]=JS(D,this.regex,this.handlers),[X,J,G]=F?YS(F):[null,null,void 0];if(q6(F,"a")&&q6(F,"H"))throw new Q1("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 GK(D,$,F){return new MJ(D,F).explainFromTokens($)}function HS(D,$,F){let{result:X,zone:J,specificOffset:G,invalidReason:Y}=GK(D,$,F);return[X,J,G,Y]}function BK(D,$){if(!D)return null;let X=A0.create($,D).dtFormatter(GS()),J=X.formatToParts(),G=X.resolvedOptions();return J.map((Y)=>FS(Y,D,G))}var rX="Invalid DateTime",tU=8640000000000000;function o3(D){return new u0("unsupported zone",`the zone "${D.name}" is not supported`)}function aX(D){if(D.weekData===null)D.weekData=h4(D.c);return D.weekData}function oX(D){if(D.localWeekData===null)D.localWeekData=h4(D.c,D.loc.getMinDaysInFirstWeek(),D.loc.getStartOfWeek());return D.localWeekData}function V1(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 w4(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 b4(D,$,F){return HK(u4(D),$,F)}function eU(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,x4(X,J))+Math.trunc($.days)+Math.trunc($.weeks)*7},Y=_D.fromObject({years:$.years-Math.trunc($.years),quarters:$.quarters-Math.trunc($.quarters),months:$.months-Math.trunc($.months),weeks:$.weeks-Math.trunc($.weeks),days:$.days-Math.trunc($.days),hours:$.hours,minutes:$.minutes,seconds:$.seconds,milliseconds:$.milliseconds}).as("milliseconds"),B=u4(G),[H,W]=HK(B,F,D.zone);if(Y!==0)H+=Y,W=D.zone.offset(H);return{ts:H,o:W}}function E6(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 u0("unparsable",`the input "${J}" can't be parsed as ${X}`))}function S4(D,$,F=!0){return D.isValid?A0.create(RD.create("en-US"),{allowZ:F,forceSimple:!0}).formatDateTimeFromString(D,$):null}function tX(D,$,F){let X=D.c.year>9999||D.c.year<0,J="";if(X&&D.c.year>=0)J+="+";if(J+=dD(D.c.year,X?6:4),F==="year")return J;if($){if(J+="-",J+=dD(D.c.month),F==="month")return J;J+="-"}else if(J+=dD(D.c.month),F==="month")return J;return J+=dD(D.c.day),J}function DA(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+=dD(D.c.hour),Y==="hour")break;if($){if(H+=":",H+=dD(D.c.minute),Y==="minute")break;if(B)H+=":",H+=dD(D.c.second)}else{if(H+=dD(D.c.minute),Y==="minute")break;if(B)H+=dD(D.c.second)}if(Y==="second")break;if(B&&(!X||D.c.millisecond!==0))H+=".",H+=dD(D.c.millisecond,3)}if(J)if(D.isOffsetFixed&&D.offset===0&&!G)H+="Z";else if(D.o<0)H+="-",H+=dD(Math.trunc(-D.o/60)),H+=":",H+=dD(Math.trunc(-D.o%60));else H+="+",H+=dD(Math.trunc(D.o/60)),H+=":",H+=dD(Math.trunc(D.o%60));if(G)H+="["+D.zone.ianaName+"]";return H}var WK={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},WS={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},VS={ordinal:1,hour:0,minute:0,second:0,millisecond:0},f4=["year","month","day","hour","minute","second","millisecond"],QS=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],_S=["year","ordinal","hour","minute","second","millisecond"];function k4(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 VJ(D);return $}function $A(D){switch(D.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return k4(D)}}function US(D){if(t3===void 0)t3=wD.now();if(D.type!=="iana")return D.offset(t3);let $=D.name,F=WJ.get($);if(F===void 0)F=D.offset(t3),WJ.set($,F);return F}function FA(D,$){let F=L8($.zone,wD.defaultZone);if(!F.isValid)return DD.invalid(o3(F));let X=RD.fromObject($),J,G;if(!t(D.year)){for(let H of f4)if(t(D[H]))D[H]=WK[H];let Y=hA(D)||xA(D);if(Y)return DD.invalid(Y);let B=US(F);[J,G]=b4(D,B,F)}else J=wD.now();return new DD({ts:J,zone:F,loc:X,o:G})}function XA(D,$,F){let X=t(F.round)?!0:F.round,J=t(F.rounding)?"trunc":F.rounding,G=(B,H)=>{return B=OJ(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 JA(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 t3,WJ=new Map;class DD{constructor(D){let $=D.zone||wD.defaultZone,F=D.invalid||(Number.isNaN(D.ts)?new u0("invalid input"):null)||(!$.isValid?o3($):null);this.ts=t(D.ts)?wD.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=j8(D.o)&&!D.old?D.o:$.offset(this.ts);X=w4(this.ts,Y),F=Number.isNaN(X.year)?new u0("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,$]=JA(arguments),[F,X,J,G,Y,B,H]=$;return FA({year:F,month:X,day:J,hour:G,minute:Y,second:B,millisecond:H},D)}static utc(){let[D,$]=JA(arguments),[F,X,J,G,Y,B,H]=$;return D.zone=K0.utcInstance,FA({year:F,month:X,day:J,hour:G,minute:Y,second:B,millisecond:H},D)}static fromJSDate(D,$={}){let F=lT(D)?D.valueOf():NaN;if(Number.isNaN(F))return DD.invalid("invalid input");let X=L8($.zone,wD.defaultZone);if(!X.isValid)return DD.invalid(o3(X));return new DD({ts:F,zone:X,loc:RD.fromObject($)})}static fromMillis(D,$={}){if(!j8(D))throw new H0(`fromMillis requires a numerical input, but received a ${typeof D} with value ${D}`);else if(D<-tU||D>tU)return DD.invalid("Timestamp out of range");else return new DD({ts:D,zone:L8($.zone,wD.defaultZone),loc:RD.fromObject($)})}static fromSeconds(D,$={}){if(!j8(D))throw new H0("fromSeconds requires a numerical input");else return new DD({ts:D*1000,zone:L8($.zone,wD.defaultZone),loc:RD.fromObject($)})}static fromObject(D,$={}){D=D||{};let F=L8($.zone,wD.defaultZone);if(!F.isValid)return DD.invalid(o3(F));let X=RD.fromObject($),J=g4(D,$A),{minDaysInFirstWeek:G,startOfWeek:Y}=mU(J,X),B=wD.now(),H=!t($.specificOffset)?$.specificOffset:F.offset(B),W=!t(J.ordinal),Q=!t(J.year),_=!t(J.month)||!t(J.day),U=Q||_,A=J.weekYear||J.weekNumber;if((U||W)&&A)throw new Q1("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(_&&W)throw new Q1("Can't mix ordinal dates with month/day");let R=A||J.weekday&&!U,O,K,E=w4(B,H);if(R)O=QS,K=WS,E=h4(E,G,Y);else if(W)O=_S,K=VS,E=nX(E);else O=f4,K=WK;let q=!1;for(let d of O){let VD=J[d];if(!t(VD))q=!0;else if(q)J[d]=K[d];else J[d]=E[d]}let N=R?pT(J,G,Y):W?cT(J):hA(J),S=N||xA(J);if(S)return DD.invalid(S);let b=R?yU(J,G,Y):W?uU(J):J,[L,z]=b4(b,H,F),j=new DD({ts:L,zone:F,o:z,loc:X});if(J.weekday&&U&&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]=kw(D);return E6(F,X,$,"ISO 8601",D)}static fromRFC2822(D,$={}){let[F,X]=vw(D);return E6(F,X,$,"RFC 2822",D)}static fromHTTP(D,$={}){let[F,X]=hw(D);return E6(F,X,$,"HTTP",$)}static fromFormat(D,$,F={}){if(t(D)||t($))throw new H0("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]=HS(G,D,$);if(W)return DD.invalid(W);else return E6(Y,B,F,`format ${$}`,D,H)}static fromString(D,$,F={}){return DD.fromFormat(D,$,F)}static fromSQL(D,$={}){let[F,X]=cw(D);return E6(F,X,$,"SQL",D)}static invalid(D,$=null){if(!D)throw new H0("need to specify a reason the DateTime is invalid");let F=D instanceof u0?D:new u0(D,$);if(wD.throwOnInvalid)throw new YA(F);else return new DD({invalid:F})}static isDateTime(D){return D&&D.isLuxonDateTime||!1}static parseFormatForOpts(D,$={}){let F=BK(D,RD.fromObject($));return!F?null:F.map((X)=>X?X.val:null).join("")}static expandFormat(D,$={}){return YK(A0.parseFormat(D),RD.fromObject($)).map((X)=>X.val).join("")}static resetCache(){t3=void 0,WJ.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?aX(this).weekYear:NaN}get weekNumber(){return this.isValid?aX(this).weekNumber:NaN}get weekday(){return this.isValid?aX(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?oX(this).weekday:NaN}get localWeekNumber(){return this.isValid?oX(this).weekNumber:NaN}get localWeekYear(){return this.isValid?oX(this).weekYear:NaN}get ordinal(){return this.isValid?nX(this.c).ordinal:NaN}get monthShort(){return this.isValid?C6.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?C6.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?C6.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?C6.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=u4(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=w4(B,G),Q=w4(H,Y);if(W.hour===Q.hour&&W.minute===Q.minute&&W.second===Q.second&&W.millisecond===Q.millisecond)return[V1(this,{ts:B}),V1(this,{ts:H})];return[this]}get isInLeapYear(){return F9(this.year)}get daysInMonth(){return x4(this.year,this.month)}get daysInYear(){return this.isValid?M6(this.year):NaN}get weeksInWeekYear(){return this.isValid?D9(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?D9(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(D={}){let{locale:$,numberingSystem:F,calendar:X}=A0.create(this.loc.clone(D),D).resolvedOptions(this);return{locale:$,numberingSystem:F,outputCalendar:X}}toUTC(D=0,$={}){return this.setZone(K0.instance(D),$)}toLocal(){return this.setZone(wD.defaultZone)}setZone(D,{keepLocalTime:$=!1,keepCalendarTime:F=!1}={}){if(D=L8(D,wD.defaultZone),D.equals(this.zone))return this;else if(!D.isValid)return DD.invalid(o3(D));else{let X=this.ts;if($||F){let J=D.offset(this.ts),G=this.toObject();[X]=b4(G,J,D)}return V1(this,{ts:X,zone:D})}}reconfigure({locale:D,numberingSystem:$,outputCalendar:F}={}){let X=this.loc.clone({locale:D,numberingSystem:$,outputCalendar:F});return V1(this,{loc:X})}setLocale(D){return this.reconfigure({locale:D})}set(D){if(!this.isValid)return this;let $=g4(D,$A),{minDaysInFirstWeek:F,startOfWeek:X}=mU($,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 Q1("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(B&&G)throw new Q1("Can't mix ordinal dates with month/day");let Q;if(J)Q=yU({...h4(this.c,F,X),...$},F,X);else if(!t($.ordinal))Q=uU({...nX(this.c),...$});else if(Q={...this.toObject(),...$},t($.day))Q.day=Math.min(x4(Q.year,Q.month),Q.day);let[_,U]=b4(Q,this.o,this.zone);return V1(this,{ts:_,o:U})}plus(D){if(!this.isValid)return this;let $=_D.fromDurationLike(D);return V1(this,eU(this,$))}minus(D){if(!this.isValid)return this;let $=_D.fromDurationLike(D).negate();return V1(this,eU(this,$))}startOf(D,{useLocaleWeeks:$=!1}={}){if(!this.isValid)return this;let F={},X=_D.normalizeUnit(D);switch(X){case"years":F.month=1;case"quarters":case"months":F.day=1;case"weeks":case"days":F.hour=0;case"hours":F.minute=0;case"minutes":F.second=0;case"seconds":F.millisecond=0;break}if(X==="weeks")if($){let J=this.loc.getStartOfWeek(),{weekday: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?A0.create(this.loc.redefaultToEN($)).formatDateTimeFromString(this,D):rX}toLocaleString(D=v4,$={}){return this.isValid?A0.create(this.loc.clone($),D).formatDateTime(this):rX}toLocaleParts(D={}){return this.isValid?A0.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=k4(G);let Y=D==="extended",B=tX(this,Y,G);if(f4.indexOf(G)>=3)B+="T";return B+=DA(this,Y,$,F,X,J,G),B}toISODate({format:D="extended",precision:$="day"}={}){if(!this.isValid)return null;return tX(this,D==="extended",k4($))}toISOWeekDate(){return S4(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=k4(Y),(X&&f4.indexOf(Y)>=3?"T":"")+DA(this,G==="extended",$,D,F,J,Y)}toRFC2822(){return S4(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return S4(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){if(!this.isValid)return null;return tX(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 S4(this,X,!0)}toSQL(D={}){if(!this.isValid)return null;return`${this.toSQLDate()} ${this.toSQLTime(D)}`}toString(){return this.isValid?this.toISO():rX}[Symbol.for("nodejs.util.inspect.custom")](){if(this.isValid)return`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`;else return`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1000:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1000):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(D={}){if(!this.isValid)return{};let $={...this.c};if(D.includeConfig)$.outputCalendar=this.outputCalendar,$.numberingSystem=this.loc.numberingSystem,$.locale=this.loc.locale;return $}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(D,$="milliseconds",F={}){if(!this.isValid||!D.isValid)return _D.invalid("created by diffing an invalid DateTime");let X={locale:this.locale,numberingSystem:this.numberingSystem,...F},J=iT($).map(_D.normalizeUnit),G=D.valueOf()>this.valueOf(),Y=G?this:D,B=G?D:this,H=rw(Y,B,J,X);return G?H.negate():H}diffNow(D="milliseconds",$={}){return this.diff(DD.now(),D,$)}until(D){return this.isValid?kD.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 XA($,this.plus(F),{...D,numeric:"always",units:X,unit:J})}toRelativeCalendar(D={}){if(!this.isValid)return null;return XA(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 H0("min requires all arguments be DateTimes");return pU(D,($)=>$.valueOf(),Math.min)}static max(...D){if(!D.every(DD.isDateTime))throw new H0("max requires all arguments be DateTimes");return pU(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 GK(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 MJ(J,D)}static fromFormatParser(D,$,F={}){if(t(D)||t($))throw new H0("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 H0(`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 E6(Y,B,F,`format ${$.format}`,D,H)}static get DATE_SHORT(){return v4}static get DATE_MED(){return HA}static get DATE_MED_WITH_WEEKDAY(){return NT}static get DATE_FULL(){return WA}static get DATE_HUGE(){return VA}static get TIME_SIMPLE(){return QA}static get TIME_WITH_SECONDS(){return _A}static get TIME_WITH_SHORT_OFFSET(){return UA}static get TIME_WITH_LONG_OFFSET(){return AA}static get TIME_24_SIMPLE(){return KA}static get TIME_24_WITH_SECONDS(){return OA}static get TIME_24_WITH_SHORT_OFFSET(){return RA}static get TIME_24_WITH_LONG_OFFSET(){return EA}static get DATETIME_SHORT(){return CA}static get DATETIME_SHORT_WITH_SECONDS(){return MA}static get DATETIME_MED(){return ZA}static get DATETIME_MED_WITH_SECONDS(){return qA}static get DATETIME_MED_WITH_WEEKDAY(){return PT}static get DATETIME_FULL(){return NA}static get DATETIME_FULL_WITH_SECONDS(){return PA}static get DATETIME_HUGE(){return LA}static get DATETIME_HUGE_WITH_SECONDS(){return jA}}function r3(D){if(DD.isDateTime(D))return D;else if(D&&D.valueOf&&j8(D.valueOf()))return DD.fromJSDate(D);else if(D&&typeof D==="object")return DD.fromObject(D);else throw new H0(`Unknown datetime argument: ${D}, of type ${typeof D}`)}var AS="3.7.2";VK.DateTime=DD;VK.Duration=_D;VK.FixedOffsetZone=K0;VK.IANAZone=k2;VK.Info=C6;VK.Interval=kD;VK.InvalidZone=QJ;VK.Settings=wD;VK.SystemZone=$9;VK.VERSION=AS;VK.Zone=U1});var d4=f((_K)=>{Object.defineProperty(_K,"__esModule",{value:!0});_K.CronDate=_K.DAYS_IN_MONTH=_K.DateMathOp=_K.TimeUnit=void 0;var A1=QK(),O0;(function(D){D.Second="Second",D.Minute="Minute",D.Hour="Hour",D.Day="Day",D.Month="Month",D.Year="Year"})(O0||(_K.TimeUnit=O0={}));var c4;(function(D){D.Add="Add",D.Subtract="Subtract"})(c4||(_K.DateMathOp=c4={}));_K.DAYS_IN_MONTH=Object.freeze([31,29,31,30,31,30,31,31,30,31,30,31]);class z6{#D;#$=null;#X=null;#Y={add:{[O0.Year]:this.addYear.bind(this),[O0.Month]:this.addMonth.bind(this),[O0.Day]:this.addDay.bind(this),[O0.Hour]:this.addHour.bind(this),[O0.Minute]:this.addMinute.bind(this),[O0.Second]:this.addSecond.bind(this)},subtract:{[O0.Year]:this.subtractYear.bind(this),[O0.Month]:this.subtractMonth.bind(this),[O0.Day]:this.subtractDay.bind(this),[O0.Hour]:this.subtractHour.bind(this),[O0.Minute]:this.subtractMinute.bind(this),[O0.Second]:this.subtractSecond.bind(this)}};constructor(D,$){let F={zone:$};if(!D)this.#D=A1.DateTime.local();else if(D instanceof z6)this.#D=D.#D,this.#$=D.#$,this.#X=D.#X;else if(D instanceof Date)this.#D=A1.DateTime.fromJSDate(D,F);else if(typeof D==="number")this.#D=A1.DateTime.fromMillis(D,F);else this.#D=A1.DateTime.fromISO(D,F),this.#D.isValid||(this.#D=A1.DateTime.fromRFC2822(D,F)),this.#D.isValid||(this.#D=A1.DateTime.fromSQL(D,F)),this.#D.isValid||(this.#D=A1.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===c4.Add){this.addUnit($);return}if(D===c4.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=z6.#J(this.#D.year);return D===_K.DAYS_IN_MONTH[$-1]-(F?0:1)}return D===_K.DAYS_IN_MONTH[$-1]}isLastWeekdayOfMonth(){let{day:D,month:$}=this.#D,F;if($===2)F=_K.DAYS_IN_MONTH[$-1]-(z6.#J(this.#D.year)?0:1);else F=_K.DAYS_IN_MONTH[$-1];return D>F-7}applyDateOperation(D,$,F){if($===O0.Month||$===O0.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()}}_K.CronDate=z6;_K.default=z6});var RK=f((KK)=>{Object.defineProperty(KK,"__esModule",{value:!0});KK.CronMonth=void 0;var TS=d4(),wS=N8(),SS=1,bS=12,fS=Object.freeze([]);class AK extends wS.CronField{static get min(){return SS}static get max(){return bS}static get chars(){return fS}static get daysInMonth(){return TS.DAYS_IN_MONTH}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}KK.CronMonth=AK});var ZK=f((CK)=>{Object.defineProperty(CK,"__esModule",{value:!0});CK.CronSecond=void 0;var kS=N8(),vS=0,hS=59,xS=Object.freeze([]);class EK extends kS.CronField{static get min(){return vS}static get max(){return hS}static get chars(){return xS}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}CK.CronSecond=EK});var l4=f((N0)=>{var gS=N0&&N0.__createBinding||(Object.create?function(D,$,F,X){if(X===void 0)X=F;var J=Object.getOwnPropertyDescriptor($,F);if(!J||("get"in J?!$.__esModule:J.writable||J.configurable))J={enumerable:!0,get:function(){return $[F]}};Object.defineProperty(D,X,J)}:function(D,$,F,X){if(X===void 0)X=F;D[X]=$[F]}),I8=N0&&N0.__exportStar||function(D,$){for(var F in D)if(F!=="default"&&!Object.prototype.hasOwnProperty.call($,F))gS($,D,F)};Object.defineProperty(N0,"__esModule",{value:!0});I8(VU(),N0);I8(OU(),N0);I8(MU(),N0);I8(N8(),N0);I8(PU(),N0);I8(IU(),N0);I8(RK(),N0);I8(ZK(),N0)});var ZJ=f((qK)=>{Object.defineProperty(qK,"__esModule",{value:!0});qK.CronFieldCollection=void 0;var c0=l4();class I6{#D;#$;#X;#Y;#J;#F;static from(D,$){return new I6({second:this.resolveField(c0.CronSecond,D.second,$.second),minute:this.resolveField(c0.CronMinute,D.minute,$.minute),hour:this.resolveField(c0.CronHour,D.hour,$.hour),dayOfMonth:this.resolveField(c0.CronDayOfMonth,D.dayOfMonth,$.dayOfMonth),month:this.resolveField(c0.CronMonth,D.month,$.month),dayOfWeek:this.resolveField(c0.CronDayOfWeek,D.dayOfWeek,$.dayOfWeek)})}static resolveField(D,$,F){if(!F)return $;if(F instanceof c0.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)<=c0.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 c0.CronDayOfWeek){$=6;let J=this.#F.values;F=J[J.length-1]===7?J.slice(0,-1):J}if(D instanceof c0.CronDayOfMonth)$=this.#J.values.length===1?c0.CronMonth.daysInMonth[this.#J.values[0]-1]:D.max;let X=I6.compactField(F);if(X.length===1){let J=I6.#W(D,X[0],$);if(J)return J}return X.map((J)=>{let G=J.count===1?J.start.toString():I6.#H(J,$);if(D instanceof c0.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()}}}qK.CronFieldCollection=I6});var NJ=f((LK)=>{Object.defineProperty(LK,"__esModule",{value:!0});LK.CronExpression=LK.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE=LK.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE=void 0;var gD=d4();LK.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE="Out of the time span range";LK.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE="Invalid expression, loop limit exceeded";var PK=1e4;class d0{#D;#$;#X;#Y;#J;#F;#W=null;#H=!1;constructor(D,$){this.#D=$,this.#$=$.tz,this.#Y=$.startDate?new gD.CronDate($.startDate,this.#$):null,this.#J=$.endDate?new gD.CronDate($.endDate,this.#$):null;let F=$.currentDate??$.startDate;if(F){let X=new gD.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 gD.CronDate(F,this.#$),this.#F=D}get fields(){return this.#F}static fieldsToExpression(D,$){return new d0(D,$||{})}static#B(D,$){return $.some((F)=>F===D)}#G(D,$){return D[$?D.length-1:0]}#Q(D){let $=`${D.getFullYear()}-${D.getMonth()+1}-${D.getDate()}`;if(this.#W===$)return this.#H;let F=new gD.CronDate(D);F.setStartOfDay();let X=new gD.CronDate(D);return X.setEndOfDay(),this.#W=$,this.#H=F.getUTCOffset()!==X.getUTCOffset(),this.#H}#_(D,$,F){let X=this.#F.second.values,J=D.getSeconds(),G=this.#F.second.findNearestValue(J,F);if(G!==null){D.setSeconds(G);return}D.applyDateOperation($,gD.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($,gD.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.#U()}prev(){return this.#U(!0)}hasNext(){let D=this.#X;try{return this.#U(),!0}catch{return!1}finally{this.#X=D}}hasPrev(){let D=this.#X;try{return this.#U(!0),!0}catch{return!1}finally{this.#X=D}}take(D){let $=[];if(D>=0)for(let F=0;F<D;F++)try{$.push(this.next())}catch{return $}else for(let F=0;F>D;F--)try{$.push(this.prev())}catch{return $}return $}reset(D){this.#X=new gD.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 gD.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=d0.#B(D.getDate(),this.#F.dayOfMonth.values)||this.#F.dayOfMonth.hasLastChar&&D.isLastDayOfMonth(),Y=d0.#B(D.getDay(),this.#F.dayOfWeek.values)||this.#F.dayOfWeek.hasLastChar&&d0.#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}#O(D,$,F){let X=this.#F.hour.values,J=X,G=D.getHours(),Y=d0.#B(G,X),B=D.dstStart===G,H=D.dstEnd===G;if(B){if(d0.#B(G-1,X))return!0;return D.invokeDateOperation($,gD.TimeUnit.Hour),!1}if(H&&!F)return D.dstEnd=null,D.applyDateOperation(gD.DateMathOp.Add,gD.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($,gD.TimeUnit.Day,J.length),!1;if(this.#Q(D)){let Q=F?G-W:W-G;for(let _=0;_<Q;_++)D.applyDateOperation($,gD.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}#R(D){if(!this.#Y&&!this.#J)return;let $=D.getTime();if(this.#Y&&$<this.#Y.getTime())throw Error(LK.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE);if(this.#J&&$>this.#J.getTime())throw Error(LK.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE)}#U(D=!1){let $=D?gD.DateMathOp.Subtract:gD.DateMathOp.Add,F=new gD.CronDate(this.#X),X=F.getTime(),J=0;while(++J<PK){if(this.#R(F),!this.#A(F)){F.applyDateOperation($,gD.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($,gD.TimeUnit.Day,this.#F.hour.values.length);continue}if(!d0.#B(F.getMonth()+1,this.#F.month.values)){F.applyDateOperation($,gD.TimeUnit.Month,this.#F.hour.values.length);continue}if(!this.#O(F,$,D))continue;if(!d0.#B(F.getMinutes(),this.#F.minute.values)){this.#V(F,$,D);continue}if(!d0.#B(F.getSeconds(),this.#F.second.values)){this.#_(F,$,D);continue}if(X===F.getTime()){if($==="Add"||F.getMilliseconds()===0)F.applyDateOperation($,gD.TimeUnit.Second,this.#F.hour.values.length);continue}break}if(J>PK)throw Error(LK.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE);if(F.getMilliseconds()!==0)F.setMilliseconds(0);return this.#X=F,F}[Symbol.iterator](){return{next:()=>{return{value:this.#U(),done:!this.hasNext()}}}}}LK.CronExpression=d0;LK.default=d0});var TK=f((IK)=>{Object.defineProperty(IK,"__esModule",{value:!0});IK.seededRandom=pS;function uS(D){let $=2166136261;for(let F=0;F<D.length;F++)$^=D.charCodeAt(F),$=Math.imul($,16777619);return()=>$>>>0}function mS(D){return()=>{let $=D+=1831565813;return $=Math.imul($^$>>>15,$|1),$^=$+Math.imul($^$>>>7,$|61),(($^$>>>14)>>>0)/4294967296}}function pS(D){let $=D?uS(D)():Math.floor(Math.random()*10000000000);return mS($)}});var i4=f((wK)=>{Object.defineProperty(wK,"__esModule",{value:!0});wK.CronExpressionParser=wK.DayOfWeek=wK.Months=wK.CronUnit=wK.PredefinedExpressions=void 0;var dS=ZJ(),lS=NJ(),iS=TK(),l0=l4(),PJ;(function(D){D["@yearly"]="0 0 0 1 1 *",D["@annually"]="0 0 0 1 1 *",D["@monthly"]="0 0 0 1 * *",D["@weekly"]="0 0 0 * * 0",D["@daily"]="0 0 0 * * *",D["@hourly"]="0 0 * * * *",D["@minutely"]="0 * * * * *",D["@secondly"]="* * * * * *",D["@weekdays"]="0 0 0 * * 1-5",D["@weekends"]="0 0 0 * * 0,6"})(PJ||(wK.PredefinedExpressions=PJ={}));var i0;(function(D){D.Second="Second",D.Minute="Minute",D.Hour="Hour",D.DayOfMonth="DayOfMonth",D.Month="Month",D.DayOfWeek="DayOfWeek"})(i0||(wK.CronUnit=i0={}));var LJ;(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"})(LJ||(wK.Months=LJ={}));var jJ;(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"})(jJ||(wK.DayOfWeek=jJ={}));class P0{static parse(D,$={}){let{strict:F=!1,hashSeed:X}=$,J=(0,iS.seededRandom)(X);D=PJ[D]||D;let G=P0.#D(D,F);if(!(G.dayOfMonth==="*"||G.dayOfWeek==="*"||!F))throw Error("Cannot use both dayOfMonth and dayOfWeek together in strict mode!");let Y=P0.#$(i0.Second,G.second,l0.CronSecond.constraints,J),B=P0.#$(i0.Minute,G.minute,l0.CronMinute.constraints,J),H=P0.#$(i0.Hour,G.hour,l0.CronHour.constraints,J),W=P0.#$(i0.Month,G.month,l0.CronMonth.constraints,J),Q=P0.#$(i0.DayOfMonth,G.dayOfMonth,l0.CronDayOfMonth.constraints,J),{dayOfWeek:_,nthDayOfWeek:U}=P0.#Q(G.dayOfWeek),A=P0.#$(i0.DayOfWeek,_,l0.CronDayOfWeek.constraints,J),R=new dS.CronFieldCollection({second:new l0.CronSecond(Y,{rawValue:G.second}),minute:new l0.CronMinute(B,{rawValue:G.minute}),hour:new l0.CronHour(H,{rawValue:G.hour}),dayOfMonth:new l0.CronDayOfMonth(Q,{rawValue:G.dayOfMonth}),month:new l0.CronMonth(W,{rawValue:G.month}),dayOfWeek:new l0.CronDayOfWeek(A,{rawValue:G.dayOfWeek,nthDayOfWeek:U})});return new lS.CronExpression(R,{...$,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===i0.Month||D===i0.DayOfWeek)$=$.replace(/[a-z]{3}/gi,(J)=>{J=J.toLowerCase();let G=LJ[J]||jJ[J];if(G===void 0)throw Error(`Validation error, cannot resolve alias "${J}"`);return G.toString()});if(!F.validChars.test($))throw Error(`Invalid characters, got value: ${$}`);return $=this.#X($,F),$=this.#Y($,F,X),this.#J(D,$,F)}static#X(D,$){return D.replace(/[*?]/g,$.min+"-"+$.max)}static#Y(D,$,F){let X=F();return D.replace(/H(?:\((\d+)-(\d+)\))?(?:\/(\d+))?/g,(J,G,Y,B)=>{if(G&&Y&&B){let H=parseInt(G,10),W=parseInt(Y,10),Q=parseInt(B,10);if(H>W)throw Error(`Invalid range: ${H}-${W}, min > max`);if(Q<=0)throw Error(`Invalid step: ${Q}, must be positive`);let _=Math.max(H,$.min),U=Math.floor(X*Q),A=[];for(let R=Math.floor(_/Q)*Q+U;R<=W;R+=Q)if(R>=_)A.push(R);return A.join(",")}else if(G&&Y){let H=parseInt(G,10),W=parseInt(Y,10);if(H>W)throw Error(`Invalid range: ${H}-${W}, min > max`);return String(Math.floor(X*(W-H+1))+H)}else if(B){let H=parseInt(B,10);if(H<=0)throw Error(`Invalid step: ${H}, must be positive`);let W=Math.floor(X*H),Q=[];for(let _=Math.floor($.min/H)*H+W;_<=$.max;_+=H)if(_>=$.min)Q.push(_);return Q.join(",")}else return String(Math.floor(X*($.max-$.min+1)+$.min))})}static#J(D,$,F){let X=[];function J(Y,B){if(Array.isArray(Y))X.push(...Y);else if(P0.#_(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===i0.DayOfWeek?H%7:Y)}}return $.split(",").forEach((Y)=>{if(!(Y.length>0))throw Error("Invalid list value format");J(P0.#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 P0.#G(D,X[0],parseInt(X[1],10),F)}return P0.#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===i0.DayOfWeek&&F%7===0)J.push(0);for(let G=$;G<=F;G+=X)if(J.indexOf(G)===-1)J.push(G);return J}static#G(D,$,F,X){let J=$.split("-");if(J.length<=1)return isNaN(+$)?$:+$;let[G,Y]=J.map((B)=>parseInt(B,10));return this.#W(G,Y,X),this.#H(F),this.#B(D,G,Y,F)}static#Q(D){let $=D.split("#");if($.length<=1)return{dayOfWeek:$[0]};let F=+$[$.length-1],X=D.match(/([,-/])/);if(X!==null)throw Error(`Constraint error, invalid dayOfWeek \`#\` and \`${X?.[0]}\` special characters are incompatible`);if(!($.length<=2&&!isNaN(F)&&F>=1&&F<=5))throw Error("Constraint error, invalid dayOfWeek occurrence number (#)");return{dayOfWeek:$[0],nthDayOfWeek:F}}static#_(D,$){return D.chars.some((F)=>$.toString().includes(F))}}wK.CronExpressionParser=P0});var bK=f((v2)=>{var oS=v2&&v2.__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]}),tS=v2&&v2.__setModuleDefault||(Object.create?function(D,$){Object.defineProperty(D,"default",{enumerable:!0,value:$})}:function(D,$){D.default=$}),eS=v2&&v2.__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")oS(F,$,X[J])}return tS(F,$),F}}();Object.defineProperty(v2,"__esModule",{value:!0});v2.CronFileParser=void 0;var Db=i4();class G9{static async parseFile(D){let{readFile:$}=await Promise.resolve().then(()=>eS(J8("fs/promises"))),F=await $(D,"utf8");return G9.#D(F)}static parseFileSync(D){let{readFileSync:$}=J8("fs"),F=$(D,"utf8");return G9.#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=G9.#$(J);F.expressions.push(Y.interval)}catch(Y){F.errors[J]=Y}}return F}static#$(D){let $=D.split(" ");return{interval:Db.CronExpressionParser.parse($.slice(0,5).join(" ")),command:$.slice(5,$.length)}}}v2.CronFileParser=G9});var fK=f(($0)=>{var $b=$0&&$0.__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=$0&&$0.__exportStar||function(D,$){for(var F in D)if(F!=="default"&&!Object.prototype.hasOwnProperty.call($,F))$b($,D,F)};Object.defineProperty($0,"__esModule",{value:!0});$0.CronFileParser=$0.CronExpressionParser=$0.CronExpression=$0.CronFieldCollection=$0.CronDate=void 0;var Xb=i4(),Jb=d4();Object.defineProperty($0,"CronDate",{enumerable:!0,get:function(){return Jb.CronDate}});var Yb=ZJ();Object.defineProperty($0,"CronFieldCollection",{enumerable:!0,get:function(){return Yb.CronFieldCollection}});var Gb=NJ();Object.defineProperty($0,"CronExpression",{enumerable:!0,get:function(){return Gb.CronExpression}});var Bb=i4();Object.defineProperty($0,"CronExpressionParser",{enumerable:!0,get:function(){return Bb.CronExpressionParser}});var Hb=bK();Object.defineProperty($0,"CronFileParser",{enumerable:!0,get:function(){return Hb.CronFileParser}});Fb(l4(),$0);$0.default=Xb.CronExpressionParser});class B9{deps;handle=null;ticking=!1;constructor(D){this.deps=D}start(D=Wb){if(this.handle!==null)return;this.handle=setInterval(()=>{this.tick().catch(($)=>C.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 $=n4(D.expression,new Date),F=crypto.randomUUID(),X=new Date().toISOString(),J=D.enabled??!0,G=D.accountId??Vb;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};u().insert(ND).values(Y).run();let B=u().select().from(ND).where(v(ND.id,F)).get();return s4(B)}async listJobs(){return u().select().from(ND).all().map(s4)}async getJob(D){let $=u().select().from(ND).where(v(ND.id,D)).get();return $?s4($):null}async removeJob(D){let $=u();if(!$.select({id:ND.id}).from(ND).where(v(ND.id,D)).get())return{removed:!1};return $.delete(ND).where(v(ND.id,D)).run(),{removed:!0}}async updateJob(D,$){let F=u().select().from(ND).where(v(ND.id,D)).get();if(!F)return null;let X={updatedAt:new Date().toISOString()},J=!1;if($.expression!==void 0)n4($.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?n4(B,new Date).toISOString():null}u().update(ND).set(X).where(v(ND.id,D)).run();let G=u().select().from(ND).where(v(ND.id,D)).get();return s4(G)}async tick(D=new Date){if(this.ticking)return;this.ticking=!0;try{let $=D.toISOString(),F=u().select().from(ND).where(uD(v(ND.enabled,!0),d7(ND.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=n4(D.expression,$).toISOString()}catch(G){C.warn(`[cron ${D.id}] expression "${D.expression}" \u5F02\u5E38\uFF0C\u505C\u6B62\u540E\u7EED\u89E6\u53D1: ${String(G)}`)}let J=$.toISOString();u().update(ND).set({lastRunAt:J,nextRunAt:X,updatedAt:J}).where(v(ND.id,D.id)).run();try{await this.deps.getOrchestrator().ingest(F)}catch(G){C.warn(`[cron ${D.id}] orchestrator.ingest \u5931\u8D25: ${String(G)}`)}}}function n4(D,$){return kK.CronExpressionParser.parse(D,{currentDate:$}).next().toDate()}function s4(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 kK,Wb=60000,Vb="sys:cron";var zJ=Z(()=>{TD();JD();_0();kK=Gq(fK(),1)});class H9{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){C.warn(`[bus] listener for ${F.type} threw:`,J)}}on(D){return this.listeners.add(D),()=>{this.listeners.delete(D)}}}var IJ=Z(()=>{JD()});import xK from"fs/promises";import Qb from"os";import n0 from"path";import r4 from"process";function yK(D=gK){let $=new Map;async function F(H){let W=new Date(D.now()).toISOString(),Q=await D.resolveBinary(H.binaryName),_={kind:H.kind,status:"not-found",checkedAt:W};if(H.agent)_.agent=H.agent;if(!Q)return{..._,authHint:"binary-not-on-path"};let U=D.homedir();for(let A of H.authPaths(U))if(await D.pathExists(A))return{..._,status:"ready",binaryPath:Q,authHint:"auth-file-present"};return{..._,status:"login-required",binaryPath:Q,authHint:"auth-file-missing"}}async function X(H,W){let Q=$.get(H.key);if(!W&&Q&&Q.expiresAt>D.now())return Q.value;let _=await F(H);return $.set(H.key,{value:_,expiresAt:D.now()+_b}),_}function J(H){return{kind:H,status:"ready",checkedAt:new Date(D.now()).toISOString(),authHint:"no-cli-required"}}async function G(H={}){let W=H.refresh??!1,Q=[];for(let _ of vK)Q.push(J(_));for(let _ of hK)Q.push(await X(_,W));return Q}async function Y(H,W={}){let Q=W.refresh??!1;if(vK.includes(H))return J(H);let _=hK.filter((A)=>A.kind===H);if(_.length===0)return{kind:H,status:"not-found",checkedAt:new Date(D.now()).toISOString(),authHint:"unknown-engine"};let U=W.agent?_.find((A)=>A.agent===W.agent)??_[0]:_[0];return X(U,Q)}function B(){$.clear()}return{probe:Y,probeAll:G,clearCache:B}}function a4(){if(!W9)W9=yK();return W9}function uK(D){return W9=yK(D),W9}function TJ(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 mK(D,$=gK){let F=$.homedir(),X=D==="gemini"?".gemini":".qwen",J=n0.join(F,X,"oauth_creds.json"),G=n0.join(F,X,"settings.json");if(await $.pathExists(J))return TJ("login","oauth_creds.json present");if(await $.pathExists(G))return TJ("install","settings.json present, login pending");return TJ("none",`~/${X} not present`)}function pK(){return mK("gemini")}function cK(){return mK("qwen")}async function Ub(D){let $=r4.env.PATH??"",F=r4.platform==="win32"?";":":",X=r4.platform==="win32"?(r4.env.PATHEXT??".EXE").split(";"):[""];for(let J of $.split(F)){if(!J)continue;for(let G of X){let Y=n0.join(J,`${D}${G.toLowerCase()}`);try{if((await xK.stat(Y)).isFile())return Y}catch{}}}return null}async function Ab(D){try{return await xK.stat(D),!0}catch{return!1}}var _b=600000,gK,vK,hK,W9=null;var o4=Z(()=>{gK={resolveBinary:Ub,pathExists:Ab,homedir:()=>Qb.homedir(),now:()=>Date.now()},vK=["http","mcp","cli"],hK=[{key:"claude-code",kind:"claude-code",binaryName:"claude",authPaths:(D)=>[n0.join(D,".claude.json"),n0.join(D,".claude","config.json")]},{key:"acp:gemini",kind:"acp",agent:"gemini",binaryName:"gemini",authPaths:(D)=>[n0.join(D,".gemini","oauth_creds.json")]},{key:"acp:qwen",kind:"acp",agent:"qwen",binaryName:"qwen",authPaths:(D)=>[n0.join(D,".qwen","oauth_creds.json"),n0.join(D,".qwen","settings.json")]},{key:"codex",kind:"codex",binaryName:"codex",authPaths:(D)=>[n0.join(D,".codex","auth.json")]},{key:"cursor",kind:"cursor",binaryName:"cursor-agent",authPaths:(D)=>[n0.join(D,".cursor","cli-config.json"),n0.join(D,".cursor-agent","auth.json"),n0.join(D,".cursor","auth.json")]}]});class wJ{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!==Kb){C.warn(`[gateway-client ${this.deps.options.workerId}] send dropped: socket not open`);return}try{$.send(bD(D))}catch(F){C.warn(`[gateway-client ${this.deps.options.workerId}] send failed: ${String(F)}`)}}openSocket(){let{url:D,workerId:$}=this.deps.options;C.info(`[gateway-client ${$}] connecting to ${D}`);let F;try{F=new this.WebSocketCtor(D)}catch(X){C.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:s8.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(bD(G))}catch(Y){C.warn(`[gateway-client ${$}] connect frame send failed: ${String(Y)}`);return}this.reconnectDelay=this.deps.options.initialReconnectDelayMs,C.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=r8(J);if(!G.ok){C.warn(`[gateway-client ${$}] drop malformed frame: ${G.error}`);return}let Y=G.frame;if(Y.type==="event"&&Y.name===e.ENROLLMENT_OTP){let B=Z7.safeParse(Y.payload);if(!B.success){C.warn(`[gateway-client ${$}] enrollment.otp payload invalid: ${B.error.message}`);return}try{this.deps.onEnrollmentOtp?.(B.data)}catch(H){C.error(`[gateway-client ${$}] onEnrollmentOtp threw: ${String(H)}`)}return}if(Y.type==="event"&&Y.name===e.ENROLLMENT_APPROVED){let B=q7.safeParse(Y.payload);if(!B.success){C.warn(`[gateway-client ${$}] enrollment.approved payload invalid: ${B.error.message}`);return}this.enrolledViaOtp=!0;try{this.deps.onEnrollmentApproved?.(B.data)}catch(H){C.error(`[gateway-client ${$}] onEnrollmentApproved threw: ${String(H)}`)}return}try{this.deps.onFrame(Y)}catch(B){C.error(`[gateway-client ${$}] onFrame threw: ${String(B)}`)}},F.onerror=(X)=>{C.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){C.info(`[gateway-client ${this.deps.options.workerId}] reconnect disabled, giving up`);return}let D=Math.min(this.reconnectDelay,this.deps.options.maxReconnectDelayMs);C.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 Kb=1;var dK=Z(()=>{Y0();JD()});function lK(D){if(!D.url||D.url.length===0)throw Error("gateway-client: url is required");if(!D.workerId||D.workerId.length===0)throw Error("gateway-client: workerId is required");return{url:D.url,token:D.token,workerId:D.workerId,deviceId:D.deviceId??D.workerId,displayName:D.displayName,reconnect:D.reconnect??!0,initialReconnectDelayMs:D.initialReconnectDelayMs??1000,maxReconnectDelayMs:D.maxReconnectDelayMs??16000,enroll:D.enroll}}var UD=f((Nb)=>{var SJ=Symbol.for("yaml.alias"),iK=Symbol.for("yaml.document"),t4=Symbol.for("yaml.map"),nK=Symbol.for("yaml.pair"),bJ=Symbol.for("yaml.scalar"),e4=Symbol.for("yaml.seq"),$8=Symbol.for("yaml.node.type"),Ob=(D)=>!!D&&typeof D==="object"&&D[$8]===SJ,Rb=(D)=>!!D&&typeof D==="object"&&D[$8]===iK,Eb=(D)=>!!D&&typeof D==="object"&&D[$8]===t4,Cb=(D)=>!!D&&typeof D==="object"&&D[$8]===nK,sK=(D)=>!!D&&typeof D==="object"&&D[$8]===bJ,Mb=(D)=>!!D&&typeof D==="object"&&D[$8]===e4;function rK(D){if(D&&typeof D==="object")switch(D[$8]){case t4:case e4:return!0}return!1}function Zb(D){if(D&&typeof D==="object")switch(D[$8]){case SJ:case t4:case bJ:case e4:return!0}return!1}var qb=(D)=>(sK(D)||rK(D))&&!!D.anchor;Nb.ALIAS=SJ;Nb.DOC=iK;Nb.MAP=t4;Nb.NODE_TYPE=$8;Nb.PAIR=nK;Nb.SCALAR=bJ;Nb.SEQ=e4;Nb.hasAnchor=qb;Nb.isAlias=Ob;Nb.isCollection=rK;Nb.isDocument=Rb;Nb.isMap=Eb;Nb.isNode=Zb;Nb.isPair=Cb;Nb.isScalar=sK;Nb.isSeq=Mb});var V9=f((ub)=>{var sD=UD(),L0=Symbol("break visit"),aK=Symbol("skip children"),h2=Symbol("remove node");function D5(D,$){let F=oK($);if(sD.isDocument(D)){if(T6(null,D.contents,F,Object.freeze([D]))===h2)D.contents=null}else T6(null,D,F,Object.freeze([]))}D5.BREAK=L0;D5.SKIP=aK;D5.REMOVE=h2;function T6(D,$,F,X){let J=tK(D,$,F,X);if(sD.isNode(J)||sD.isPair(J))return eK(D,X,J),T6(D,J,F,X);if(typeof J!=="symbol"){if(sD.isCollection($)){X=Object.freeze(X.concat($));for(let G=0;G<$.items.length;++G){let Y=T6(G,$.items[G],F,X);if(typeof Y==="number")G=Y-1;else if(Y===L0)return L0;else if(Y===h2)$.items.splice(G,1),G-=1}}else if(sD.isPair($)){X=Object.freeze(X.concat($));let G=T6("key",$.key,F,X);if(G===L0)return L0;else if(G===h2)$.key=null;let Y=T6("value",$.value,F,X);if(Y===L0)return L0;else if(Y===h2)$.value=null}}return J}async function $5(D,$){let F=oK($);if(sD.isDocument(D)){if(await w6(null,D.contents,F,Object.freeze([D]))===h2)D.contents=null}else await w6(null,D,F,Object.freeze([]))}$5.BREAK=L0;$5.SKIP=aK;$5.REMOVE=h2;async function w6(D,$,F,X){let J=await tK(D,$,F,X);if(sD.isNode(J)||sD.isPair(J))return eK(D,X,J),w6(D,J,F,X);if(typeof J!=="symbol"){if(sD.isCollection($)){X=Object.freeze(X.concat($));for(let G=0;G<$.items.length;++G){let Y=await w6(G,$.items[G],F,X);if(typeof Y==="number")G=Y-1;else if(Y===L0)return L0;else if(Y===h2)$.items.splice(G,1),G-=1}}else if(sD.isPair($)){X=Object.freeze(X.concat($));let G=await w6("key",$.key,F,X);if(G===L0)return L0;else if(G===h2)$.key=null;let Y=await w6("value",$.value,F,X);if(Y===L0)return L0;else if(Y===h2)$.value=null}}return J}function oK(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 tK(D,$,F,X){if(typeof F==="function")return F(D,$,X);if(sD.isMap($))return F.Map?.(D,$,X);if(sD.isSeq($))return F.Seq?.(D,$,X);if(sD.isPair($))return F.Pair?.(D,$,X);if(sD.isScalar($))return F.Scalar?.(D,$,X);if(sD.isAlias($))return F.Alias?.(D,$,X);return}function eK(D,$,F){let X=$[$.length-1];if(sD.isCollection(X))X.items[D]=F;else if(sD.isPair(X))if(D==="key")X.key=F;else X.value=F;else if(sD.isDocument(X))X.contents=F;else{let J=sD.isAlias(X)?"alias":"scalar";throw Error(`Cannot replace node with ${J} parent`)}}ub.visit=D5;ub.visitAsync=$5});var fJ=f((ib)=>{var DO=UD(),cb=V9(),db={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},lb=(D)=>D.replace(/[!,[\]{}]/g,($)=>db[$]);class s0{constructor(D,$){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},s0.defaultYaml,D),this.tags=Object.assign({},s0.defaultTags,$)}clone(){let D=new s0(this.yaml,this.tags);return D.docStart=this.docStart,D}atDocument(){let D=new s0(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:s0.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},s0.defaultTags);break}return D}add(D,$){if(this.atNextDocument)this.yaml={explicit:s0.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},s0.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 $+lb(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&&DO.isNode(D.contents)){let J={};cb.visit(D.contents,(G,Y)=>{if(DO.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
+ `)}}s0.defaultYaml={explicit:!1,version:"1.2"};s0.defaultTags={"!!":"tag:yaml.org,2002:"};ib.Directives=s0});var F5=f((ob)=>{var $O=UD(),sb=V9();function rb(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 FO(D){let $=new Set;return sb.visit(D,{Value(F,X){if(X.anchor)$.add(X.anchor)}}),$}function XO(D,$){for(let F=1;;++F){let X=`${D}${F}`;if(!$.has(X))return X}}function ab(D,$){let F=[],X=new Map,J=null;return{onAnchor:(G)=>{F.push(G),J??(J=FO(D));let Y=XO($,J);return J.add(Y),Y},setAnchors:()=>{for(let G of F){let Y=X.get(G);if(typeof Y==="object"&&Y.anchor&&($O.isScalar(Y.node)||$O.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}}ob.anchorIsValid=rb;ob.anchorNames=FO;ob.createNodeAnchors=ab;ob.findNewAnchor=XO});var kJ=f((Ff)=>{function Q9(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=Q9(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=Q9(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=Q9(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=Q9(D,X,J,G);if(Y===void 0)delete X[J];else if(Y!==G)X[J]=Y}return D.call($,F,X)}Ff.applyReviver=Q9});var T8=f((Yf)=>{var Jf=UD();function JO(D,$,F){if(Array.isArray(D))return D.map((X,J)=>JO(X,String(J),F));if(D&&typeof D.toJSON==="function"){if(!F||!Jf.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}Yf.toJS=JO});var X5=f((Wf)=>{var Bf=kJ(),YO=UD(),Hf=T8();class GO{constructor(D){Object.defineProperty(this,YO.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(!YO.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=Hf.toJS(this,"",G);if(typeof X==="function")for(let{count:B,res:H}of G.anchors.values())X(H,B);return typeof J==="function"?Bf.applyReviver(J,{"":Y},"",Y):Y}}Wf.NodeBase=GO});var _9=f((Kf)=>{var Qf=F5(),_f=V9(),S6=UD(),Uf=X5(),Af=T8();class BO extends Uf.NodeBase{constructor(D){super(S6.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=[],_f.visit(D,{Node:(J,G)=>{if(S6.isAlias(G)||S6.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)Af.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=J5(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(Qf.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 J5(D,$,F){if(S6.isAlias($)){let X=$.resolve(D),J=F&&X&&F.get(X);return J?J.count*J.aliasCount:0}else if(S6.isCollection($)){let X=0;for(let J of $.items){let G=J5(D,J,F);if(G>X)X=G}return X}else if(S6.isPair($)){let X=J5(D,$.key,F),J=J5(D,$.value,F);return Math.max(X,J)}return 1}Kf.Alias=BO});var lD=f((Zf)=>{var Rf=UD(),Ef=X5(),Cf=T8(),Mf=(D)=>!D||typeof D!=="function"&&typeof D!=="object";class K1 extends Ef.NodeBase{constructor(D){super(Rf.SCALAR);this.value=D}toJSON(D,$){return $?.keep?this.value:Cf.toJS(this.value,D,$)}toString(){return String(this.value)}}K1.BLOCK_FOLDED="BLOCK_FOLDED";K1.BLOCK_LITERAL="BLOCK_LITERAL";K1.PLAIN="PLAIN";K1.QUOTE_DOUBLE="QUOTE_DOUBLE";K1.QUOTE_SINGLE="QUOTE_SINGLE";Zf.Scalar=K1;Zf.isScalarValue=Mf});var U9=f((If)=>{var Pf=_9(),O1=UD(),HO=lD(),Lf="tag:yaml.org,2002:";function jf(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 zf(D,$,F){if(O1.isDocument(D))D=D.contents;if(O1.isNode(D))return D;if(O1.isPair(D)){let _=F.schema[O1.MAP].createNode?.(F.schema,null,F);return _.items.push(D),_}if(D instanceof String||D instanceof Number||D instanceof Boolean||typeof BigInt<"u"&&D instanceof BigInt)D=D.valueOf();let{aliasDuplicateObjects:X,onAnchor:J,onTagObj: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 Pf.Alias(H.anchor);else H={anchor:null,node:null},B.set(D,H);if($?.startsWith("!!"))$=Lf+$.slice(2);let W=jf(D,$,Y.tags);if(!W){if(D&&typeof D.toJSON==="function")D=D.toJSON();if(!D||typeof D!=="object"){let _=new HO.Scalar(D);if(H)H.node=_;return _}W=D instanceof Map?Y[O1.MAP]:(Symbol.iterator in Object(D))?Y[O1.SEQ]:Y[O1.MAP]}if(G)G(W),delete F.onTagObj;let Q=W?.createNode?W.createNode(F.schema,D,F):typeof W?.nodeClass?.from==="function"?W.nodeClass.from(F.schema,D,F):new HO.Scalar(D);if($)Q.tag=$;else if(!W.default)Q.tag=W.tag;if(H)H.node=Q;return Q}If.createNode=zf});var Y5=f((bf)=>{var wf=U9(),x2=UD(),Sf=X5();function vJ(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 wf.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 WO=(D)=>D==null||typeof D==="object"&&!!D[Symbol.iterator]().next().done;class VO extends Sf.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)=>x2.isNode(F)||x2.isPair(F)?F.clone(D):F),this.range)$.range=this.range.slice();return $}addIn(D,$){if(WO(D))this.add($);else{let[F,...X]=D,J=this.get(F,!0);if(x2.isCollection(J))J.addIn(X,$);else if(J===void 0&&this.schema)this.set(F,vJ(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(x2.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!$&&x2.isScalar(J)?J.value:J;else return x2.isCollection(J)?J.getIn(X,$):void 0}hasAllNullValues(D){return this.items.every(($)=>{if(!x2.isPair($))return!1;let F=$.value;return F==null||D&&x2.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 x2.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(x2.isCollection(J))J.setIn(X,$);else if(J===void 0&&this.schema)this.set(F,vJ(this.schema,X,$));else throw Error(`Expected YAML collection at ${F}. Remaining path: ${X}`)}}}bf.Collection=VO;bf.collectionFromPath=vJ;bf.isEmptyPath=WO});var A9=f((gf)=>{var hf=(D)=>D.replace(/^(?!$)(?: $)?/gm,"#");function hJ(D,$){if(/^\n+$/.test(D))return D.substring(1);return $?D.replace(/^(?! *$)/gm,$):D}var xf=(D,$,F)=>D.endsWith(`
124
124
  `)?hJ(F,$):F.includes(`
125
125
  `)?`
126
- `+hJ(F,$):(D.endsWith(" ")?"":" ")+F;gf.indentComment=hJ;gf.lineComment=xf;gf.stringifyComment=hf});var QO=f((cf)=>{function pf(D,$,F="flow",{indentAtStart:X,lineWidth:J=80,minContentWidth:G=20,onFold:Y,onOverflow:B}={}){if(!J||J<0)return D;if(J<G)G=0;let H=Math.max(1+G,1+J-$.length);if(D.length<=H)return D;let W=[],Q={},_=J-$.length;if(typeof X==="number")if(X>J-Math.max(2,G))W.push(0);else _=J-X;let U=void 0,A=void 0,R=!1,O=-1,K=-1,E=-1;if(F==="block"){if(O=VO(D,O,$.length),O!==-1)_=O+H}for(let N;N=D[O+=1];){if(F==="quoted"&&N==="\\"){switch(K=O,D[O+1]){case"x":O+=3;break;case"u":O+=5;break;case"U":O+=9;break;default:O+=1}E=O}if(N===`
127
- `){if(F==="block")O=VO(D,O,$.length);_=O+$.length+H,U=void 0}else{if(N===" "&&A&&A!==" "&&A!==`
126
+ `+hJ(F,$):(D.endsWith(" ")?"":" ")+F;gf.indentComment=hJ;gf.lineComment=xf;gf.stringifyComment=hf});var _O=f((cf)=>{function pf(D,$,F="flow",{indentAtStart:X,lineWidth:J=80,minContentWidth:G=20,onFold:Y,onOverflow:B}={}){if(!J||J<0)return D;if(J<G)G=0;let H=Math.max(1+G,1+J-$.length);if(D.length<=H)return D;let W=[],Q={},_=J-$.length;if(typeof X==="number")if(X>J-Math.max(2,G))W.push(0);else _=J-X;let U=void 0,A=void 0,R=!1,O=-1,K=-1,E=-1;if(F==="block"){if(O=QO(D,O,$.length),O!==-1)_=O+H}for(let N;N=D[O+=1];){if(F==="quoted"&&N==="\\"){switch(K=O,D[O+1]){case"x":O+=3;break;case"u":O+=5;break;case"U":O+=9;break;default:O+=1}E=O}if(N===`
127
+ `){if(F==="block")O=QO(D,O,$.length);_=O+$.length+H,U=void 0}else{if(N===" "&&A&&A!==" "&&A!==`
128
128
  `&&A!=="\t"){let S=D[O+1];if(S&&S!==" "&&S!==`
129
129
  `&&S!=="\t")U=O}if(O>=_)if(U)W.push(U),_=U+H,U=void 0;else if(F==="quoted"){while(A===" "||A==="\t")A=N,N=D[O+=1],R=!0;let S=O>E+1?O-2:K-1;if(Q[S])return D;W.push(S),Q[S]=!0,_=S+H,U=void 0}else R=!0}A=N}if(R&&B)B();if(W.length===0)return D;if(Y)Y();let q=D.slice(0,W[0]);for(let N=0;N<W.length;++N){let S=W[N],b=W[N+1]||D.length;if(S===0)q=`
130
130
  ${$}${D.slice(0,b)}`;else{if(F==="quoted"&&Q[S])q+=`${D[S]}\\`;q+=`
131
- ${$}${D.slice(S+1,b)}`}}return q}function VO(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}cf.FOLD_BLOCK="block";cf.FOLD_FLOW="flow";cf.FOLD_QUOTED="quoted";cf.foldFlowLines=pf});var O9=f((tf)=>{var M2=lD(),w8=QO(),B5=(D,$)=>({indentAtStart:$?D.indent.length:D.indentAtStart,lineWidth:D.options.lineWidth,minContentWidth:D.options.minContentWidth}),H5=(D)=>/^(%|---|\.\.\.)/m.test(D);function rf(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]===`
131
+ ${$}${D.slice(S+1,b)}`}}return q}function QO(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}cf.FOLD_BLOCK="block";cf.FOLD_FLOW="flow";cf.FOLD_QUOTED="quoted";cf.foldFlowLines=pf});var O9=f((tf)=>{var M2=lD(),w8=_O(),B5=(D,$)=>({indentAtStart:$?D.indent.length:D.indentAtStart,lineWidth:D.options.lineWidth,minContentWidth:D.options.minContentWidth}),H5=(D)=>/^(%|---|\.\.\.)/m.test(D);function rf(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
133
  `){if(G-Y>X)return!0;if(Y=G+1,J-Y<=X)return!1}return!0}function K9(D,$){let F=JSON.stringify(D);if($.options.doubleQuotedAsJSON)return F;let{implicitKey:X}=$,J=$.options.doubleQuotedMinMultiLineLength,G=$.indent||(H5(D)?" ":""),Y="",B=0;for(let H=0,W=F[H];W;W=F[++H]){if(W===" "&&F[H+1]==="\\"&&F[H+2]==="n")Y+=F.slice(B,H)+"\\ ",H+=1,B=H,W="\\";if(W==="\\")switch(F[H+1]){case"u":{Y+=F.slice(B,H);let Q=F.substr(H+2,4);switch(Q){case"0000":Y+="\\0";break;case"0007":Y+="\\a";break;case"000b":Y+="\\v";break;case"001b":Y+="\\e";break;case"0085":Y+="\\N";break;case"00a0":Y+="\\_";break;case"2028":Y+="\\L";break;case"2029":Y+="\\P";break;default:if(Q.substr(0,2)==="00")Y+="\\x"+Q.substr(2);else Y+=F.substr(H,6)}H+=5,B=H+1}break;case"n":if(X||F[H+2]==='"'||F.length<J)H+=1;else{Y+=F.slice(B,H)+`
134
134
 
135
135
  `;while(F[H+2]==="\\"&&F[H+3]==="n"&&F[H+4]!=='"')Y+=`
@@ -145,49 +145,49 @@ ${F}`)+"'";return $.implicitKey?X:w8.foldFlowLines(X,F,w8.FOLD_FLOW,B5($,!1))}fu
145
145
  `);if(R===-1)_="-";else if(F===A||R!==A.length-1){if(_="+",G)G()}else _="";if(A){if(F=F.slice(0,-A.length),A[A.length-1]===`
146
146
  `)A=A.slice(0,-1);A=A.replace(gJ,`$&${W}`)}let O=!1,K,E=-1;for(K=0;K<F.length;++K){let b=F[K];if(b===" ")O=!0;else if(b===`
147
147
  `)E=K;else break}let q=F.substring(0,E<K?E+1:K);if(q)F=F.substring(q.length),q=q.replace(/\n+/g,`$&${W}`);let S=(O?W?"2":"1":"")+_;if(D){if(S+=" "+B(D.replace(/ ?[\r\n]+/g," ")),J)J()}if(!Q){let b=F.replace(/\n+/g,`
148
- $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${W}`),P=!1,T=B5(X,!0);if(Y!=="folded"&&$!==M2.Scalar.BLOCK_FOLDED)T.onOverflow=()=>{P=!0};let j=w8.foldFlowLines(`${q}${b}${A}`,W,w8.FOLD_BLOCK,T);if(!P)return`>${S}
148
+ $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${W}`),L=!1,z=B5(X,!0);if(Y!=="folded"&&$!==M2.Scalar.BLOCK_FOLDED)z.onOverflow=()=>{L=!0};let j=w8.foldFlowLines(`${q}${b}${A}`,W,w8.FOLD_BLOCK,z);if(!L)return`>${S}
149
149
  ${W}${j}`}return F=F.replace(/\n+/g,`$&${W}`),`|${S}
150
150
  ${W}${q}${F}${A}`}function af(D,$,F,X){let{type:J,value:G}=D,{actualString:Y,implicitKey:B,indent:H,indentStep:W,inFlow:Q}=$;if(B&&G.includes(`
151
151
  `)||Q&&/[[\]{},]/.test(G))return b6(G,$);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(G))return B||Q||!G.includes(`
152
152
  `)?b6(G,$):G5(D,$,F,X);if(!B&&!Q&&J!==M2.Scalar.PLAIN&&G.includes(`
153
153
  `))return G5(D,$,F,X);if(H5(G)){if(H==="")return $.forceBlockIndent=!0,G5(D,$,F,X);else if(B&&H===W)return b6(G,$)}let _=G.replace(/\n+/g,`$&
154
- ${H}`);if(Y){let U=(O)=>O.default&&O.tag!=="tag:yaml.org,2002:str"&&O.test?.test(_),{compat:A,tags:R}=$.doc.schema;if(R.some(U)||A?.some(U))return b6(G,$)}return B?_:w8.foldFlowLines(_,H,w8.FOLD_FLOW,B5($,!1))}function of(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!==M2.Scalar.QUOTE_DOUBLE){if(/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(Y.value))B=M2.Scalar.QUOTE_DOUBLE}let H=(Q)=>{switch(Q){case M2.Scalar.BLOCK_FOLDED:case M2.Scalar.BLOCK_LITERAL:return J||G?b6(Y.value,$):G5(Y,$,F,X);case M2.Scalar.QUOTE_DOUBLE:return K9(Y.value,$);case M2.Scalar.QUOTE_SINGLE:return xJ(Y.value,$);case M2.Scalar.PLAIN:return af(Y,$,F,X);default:return null}},W=H(B);if(W===null){let{defaultKeyType:Q,defaultStringType:_}=$.options,U=J&&Q||_;if(W=H(U),W===null)throw Error(`Unsupported default string type ${U}`)}return W}tf.stringifyString=of});var R9=f((Bk)=>{var Dk=F5(),S8=_D(),$k=A9(),Fk=O9();function Xk(D,$){let F=Object.assign({blockQuote:!0,commentString:$k.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 Jk(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(S8.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 Yk(D,$,{anchors:F,doc:X}){if(!X.directives)return"";let J=[],G=(S8.isScalar(D)||S8.isCollection(D))&&D.anchor;if(G&&Dk.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 Gk(D,$,F,X){if(S8.isPair(D))return D.toString($,F,X);if(S8.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=S8.isNode(D)?D:$.doc.createNode(D,{onTagObj:(H)=>J=H});J??(J=Jk($.doc.schema.tags,G));let Y=Yk(G,J,$);if(Y.length>0)$.indentAtStart=($.indentAtStart??0)+Y.length+1;let B=typeof J.stringify==="function"?J.stringify(G,$,F,X):S8.isScalar(G)?Fk.stringifyString(G,$,F,X):G.toString($,F,X);if(!Y)return B;return S8.isScalar(G)||B[0]==="{"||B[0]==="["?`${Y} ${B}`:`${Y}
155
- ${$.indent}${B}`}Bk.createStringifyContext=Xk;Bk.stringify=Gk});var AO=f((Qk)=>{var F8=_D(),_O=lD(),UO=R9(),E9=A9();function Vk({key:D,value:$},F,X,J){let{allNullValues:G,doc:Y,indent:B,indentStep:H,options:{commentString:W,indentSeq:Q,simpleKeys:_}}=F,U=F8.isNode(D)&&D.comment||null;if(_){if(U)throw Error("With simple keys, key nodes cannot have comments");if(F8.isCollection(D)||!F8.isNode(D)&&typeof D==="object")throw Error("With simple keys, collection cannot be used as a key value")}let A=!_&&(!D||U&&$==null&&!F.inFlow||F8.isCollection(D)||(F8.isScalar(D)?D.type===_O.Scalar.BLOCK_FOLDED||D.type===_O.Scalar.BLOCK_LITERAL:typeof D==="object"));F=Object.assign({},F,{allNullValues:!1,implicitKey:!A&&(_||!G),indent:B+H});let R=!1,O=!1,K=UO.stringify(D,F,()=>R=!0,()=>O=!0);if(!A&&!F.inFlow&&K.length>1024){if(_)throw Error("With simple keys, single line scalar must not span more than 1024 characters");A=!0}if(F.inFlow){if(G||$==null){if(R&&X)X();return K===""?"?":A?`? ${K}`:K}}else if(G&&!_||$==null&&A){if(K=`? ${K}`,U&&!R)K+=E9.lineComment(K,F.indent,W(U));else if(O&&J)J();return K}if(R)U=null;if(A){if(U)K+=E9.lineComment(K,F.indent,W(U));K=`? ${K}
156
- ${B}:`}else if(K=`${K}:`,U)K+=E9.lineComment(K,F.indent,W(U));let E,q,N;if(F8.isNode($))E=!!$.spaceBefore,q=$.commentBefore,N=$.comment;else if(E=!1,q=null,N=null,$&&typeof $==="object")$=Y.createNode($);if(F.implicitKey=!1,!A&&!U&&F8.isScalar($))F.indentAtStart=K.length+1;if(O=!1,!Q&&H.length>=2&&!F.inFlow&&!A&&F8.isSeq($)&&!$.flow&&!$.tag&&!$.anchor)F.indent=F.indent.substring(2);let S=!1,b=UO.stringify($,F,()=>S=!0,()=>O=!0),P=" ";if(U||E||q){if(P=E?`
157
- `:"",q){let T=W(q);P+=`
158
- ${E9.indentComment(T,F.indent)}`}if(b===""&&!F.inFlow){if(P===`
159
- `&&N)P=`
160
-
161
- `}else P+=`
162
- ${F.indent}`}else if(!A&&F8.isCollection($)){let T=b[0],j=b.indexOf(`
163
- `),s=j!==-1,UD=F.inFlow??$.flow??$.items.length===0;if(s||!UD){let VD=!1;if(s&&(T==="&"||T==="!")){let $D=b.indexOf(" ");if(T==="&"&&$D!==-1&&$D<j&&b[$D+1]==="!")$D=b.indexOf(" ",$D+1);if($D===-1||j<$D)VD=!0}if(!VD)P=`
154
+ ${H}`);if(Y){let U=(O)=>O.default&&O.tag!=="tag:yaml.org,2002:str"&&O.test?.test(_),{compat:A,tags:R}=$.doc.schema;if(R.some(U)||A?.some(U))return b6(G,$)}return B?_:w8.foldFlowLines(_,H,w8.FOLD_FLOW,B5($,!1))}function of(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!==M2.Scalar.QUOTE_DOUBLE){if(/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(Y.value))B=M2.Scalar.QUOTE_DOUBLE}let H=(Q)=>{switch(Q){case M2.Scalar.BLOCK_FOLDED:case M2.Scalar.BLOCK_LITERAL:return J||G?b6(Y.value,$):G5(Y,$,F,X);case M2.Scalar.QUOTE_DOUBLE:return K9(Y.value,$);case M2.Scalar.QUOTE_SINGLE:return xJ(Y.value,$);case M2.Scalar.PLAIN:return af(Y,$,F,X);default:return null}},W=H(B);if(W===null){let{defaultKeyType:Q,defaultStringType:_}=$.options,U=J&&Q||_;if(W=H(U),W===null)throw Error(`Unsupported default string type ${U}`)}return W}tf.stringifyString=of});var R9=f((Bk)=>{var Dk=F5(),S8=UD(),$k=A9(),Fk=O9();function Xk(D,$){let F=Object.assign({blockQuote:!0,commentString:$k.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 Jk(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(S8.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 Yk(D,$,{anchors:F,doc:X}){if(!X.directives)return"";let J=[],G=(S8.isScalar(D)||S8.isCollection(D))&&D.anchor;if(G&&Dk.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 Gk(D,$,F,X){if(S8.isPair(D))return D.toString($,F,X);if(S8.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=S8.isNode(D)?D:$.doc.createNode(D,{onTagObj:(H)=>J=H});J??(J=Jk($.doc.schema.tags,G));let Y=Yk(G,J,$);if(Y.length>0)$.indentAtStart=($.indentAtStart??0)+Y.length+1;let B=typeof J.stringify==="function"?J.stringify(G,$,F,X):S8.isScalar(G)?Fk.stringifyString(G,$,F,X):G.toString($,F,X);if(!Y)return B;return S8.isScalar(G)||B[0]==="{"||B[0]==="["?`${Y} ${B}`:`${Y}
155
+ ${$.indent}${B}`}Bk.createStringifyContext=Xk;Bk.stringify=Gk});var KO=f((Qk)=>{var F8=UD(),UO=lD(),AO=R9(),E9=A9();function Vk({key:D,value:$},F,X,J){let{allNullValues:G,doc:Y,indent:B,indentStep:H,options:{commentString:W,indentSeq:Q,simpleKeys:_}}=F,U=F8.isNode(D)&&D.comment||null;if(_){if(U)throw Error("With simple keys, key nodes cannot have comments");if(F8.isCollection(D)||!F8.isNode(D)&&typeof D==="object")throw Error("With simple keys, collection cannot be used as a key value")}let A=!_&&(!D||U&&$==null&&!F.inFlow||F8.isCollection(D)||(F8.isScalar(D)?D.type===UO.Scalar.BLOCK_FOLDED||D.type===UO.Scalar.BLOCK_LITERAL:typeof D==="object"));F=Object.assign({},F,{allNullValues:!1,implicitKey:!A&&(_||!G),indent:B+H});let R=!1,O=!1,K=AO.stringify(D,F,()=>R=!0,()=>O=!0);if(!A&&!F.inFlow&&K.length>1024){if(_)throw Error("With simple keys, single line scalar must not span more than 1024 characters");A=!0}if(F.inFlow){if(G||$==null){if(R&&X)X();return K===""?"?":A?`? ${K}`:K}}else if(G&&!_||$==null&&A){if(K=`? ${K}`,U&&!R)K+=E9.lineComment(K,F.indent,W(U));else if(O&&J)J();return K}if(R)U=null;if(A){if(U)K+=E9.lineComment(K,F.indent,W(U));K=`? ${K}
156
+ ${B}:`}else if(K=`${K}:`,U)K+=E9.lineComment(K,F.indent,W(U));let E,q,N;if(F8.isNode($))E=!!$.spaceBefore,q=$.commentBefore,N=$.comment;else if(E=!1,q=null,N=null,$&&typeof $==="object")$=Y.createNode($);if(F.implicitKey=!1,!A&&!U&&F8.isScalar($))F.indentAtStart=K.length+1;if(O=!1,!Q&&H.length>=2&&!F.inFlow&&!A&&F8.isSeq($)&&!$.flow&&!$.tag&&!$.anchor)F.indent=F.indent.substring(2);let S=!1,b=AO.stringify($,F,()=>S=!0,()=>O=!0),L=" ";if(U||E||q){if(L=E?`
157
+ `:"",q){let z=W(q);L+=`
158
+ ${E9.indentComment(z,F.indent)}`}if(b===""&&!F.inFlow){if(L===`
159
+ `&&N)L=`
160
+
161
+ `}else L+=`
162
+ ${F.indent}`}else if(!A&&F8.isCollection($)){let z=b[0],j=b.indexOf(`
163
+ `),d=j!==-1,VD=F.inFlow??$.flow??$.items.length===0;if(d||!VD){let QD=!1;if(d&&(z==="&"||z==="!")){let $D=b.indexOf(" ");if(z==="&"&&$D!==-1&&$D<j&&b[$D+1]==="!")$D=b.indexOf(" ",$D+1);if($D===-1||j<$D)QD=!0}if(!QD)L=`
164
164
  ${F.indent}`}}else if(b===""||b[0]===`
165
- `)P="";if(K+=P+b,F.inFlow){if(S&&X)X()}else if(N&&!S)K+=E9.lineComment(K,F.indent,W(N));else if(O&&J)J();return K}Qk.stringifyPair=Vk});var yJ=f((Kk)=>{var KO=J8("process");function Uk(D,...$){if(D==="debug")console.log(...$)}function Ak(D,$){if(D==="debug"||D==="warn")if(typeof KO.emitWarning==="function")KO.emitWarning($);else console.warn($)}Kk.debug=Uk;Kk.warn=Ak});var Q5=f((Ck)=>{var C9=_D(),OO=lD(),W5="<<",V5={identify:(D)=>D===W5||typeof D==="symbol"&&D.description===W5,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new OO.Scalar(Symbol(W5)),{addToJSMap:RO}),stringify:()=>W5},Ek=(D,$)=>(V5.identify($)||C9.isScalar($)&&(!$.type||$.type===OO.Scalar.PLAIN)&&V5.identify($.value))&&D?.doc.schema.tags.some((F)=>F.tag===V5.tag&&F.default);function RO(D,$,F){if(F=D&&C9.isAlias(F)?F.resolve(D.doc):F,C9.isSeq(F))for(let X of F.items)uJ(D,$,X);else if(Array.isArray(F))for(let X of F)uJ(D,$,X);else uJ(D,$,F)}function uJ(D,$,F){let X=D&&C9.isAlias(F)?F.resolve(D.doc):F;if(!C9.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 $}Ck.addMergeToJSMap=RO;Ck.isMergeKey=Ek;Ck.merge=V5});var pJ=f((zk)=>{var Nk=yJ(),EO=Q5(),Pk=R9(),CO=_D(),mJ=T8();function Lk(D,$,{key:F,value:X}){if(CO.isNode(F)&&F.addToJSMap)F.addToJSMap(D,$,X);else if(EO.isMergeKey(D,F))EO.addMergeToJSMap(D,$,X);else{let J=mJ.toJS(F,"",D);if($ instanceof Map)$.set(J,mJ.toJS(X,J,D));else if($ instanceof Set)$.add(J);else{let G=jk(F,J,D),Y=mJ.toJS(X,G,D);if(G in $)Object.defineProperty($,G,{value:Y,writable:!0,enumerable:!0,configurable:!0});else $[G]=Y}}return $}function jk(D,$,F){if($===null)return"";if(typeof $!=="object")return String($);if(CO.isNode(D)&&F?.doc){let X=Pk.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)+'..."';Nk.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($)}zk.addPairToJSMap=Lk});var b8=f((bk)=>{var MO=U9(),Tk=AO(),wk=pJ(),_5=_D();function Sk(D,$,F){let X=MO.createNode(D,void 0,F),J=MO.createNode($,void 0,F);return new U5(X,J)}class U5{constructor(D,$=null){Object.defineProperty(this,_5.NODE_TYPE,{value:_5.PAIR}),this.key=D,this.value=$}clone(D){let{key:$,value:F}=this;if(_5.isNode($))$=$.clone(D);if(_5.isNode(F))F=F.clone(D);return new U5($,F)}toJSON(D,$){let F=$?.mapAsMap?new Map:{};return wk.addPairToJSMap($,F,this)}toString(D,$,F){return D?.doc?Tk.stringifyPair(this,D,$,F):JSON.stringify(this)}}bk.Pair=U5;bk.createPair=Sk});var cJ=f((gk)=>{var R1=_D(),ZO=R9(),A5=A9();function vk(D,$,F){return($.inFlow??D.flow?xk:hk)(D,$,F)}function hk({comment:D,items:$},F,{blockItemPrefix:X,flowChars:J,itemIndent:G,onChompKeep:Y,onComment:B}){let{indent:H,options:{commentString:W}}=F,Q=Object.assign({},F,{indent:G,type:null}),_=!1,U=[];for(let R=0;R<$.length;++R){let O=$[R],K=null;if(R1.isNode(O)){if(!_&&O.spaceBefore)U.push("");if(K5(F,U,O.commentBefore,_),O.comment)K=O.comment}else if(R1.isPair(O)){let q=R1.isNode(O.key)?O.key:null;if(q){if(!_&&q.spaceBefore)U.push("");K5(F,U,q.commentBefore,_)}}_=!1;let E=ZO.stringify(O,Q,()=>K=null,()=>_=!0);if(K)E+=A5.lineComment(E,G,W(K));if(_&&K)_=!1;U.push(X+E)}let A;if(U.length===0)A=J.start+J.end;else{A=U[0];for(let R=1;R<U.length;++R){let O=U[R];A+=O?`
165
+ `)L="";if(K+=L+b,F.inFlow){if(S&&X)X()}else if(N&&!S)K+=E9.lineComment(K,F.indent,W(N));else if(O&&J)J();return K}Qk.stringifyPair=Vk});var yJ=f((Kk)=>{var OO=J8("process");function Uk(D,...$){if(D==="debug")console.log(...$)}function Ak(D,$){if(D==="debug"||D==="warn")if(typeof OO.emitWarning==="function")OO.emitWarning($);else console.warn($)}Kk.debug=Uk;Kk.warn=Ak});var Q5=f((Ck)=>{var C9=UD(),RO=lD(),W5="<<",V5={identify:(D)=>D===W5||typeof D==="symbol"&&D.description===W5,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new RO.Scalar(Symbol(W5)),{addToJSMap:EO}),stringify:()=>W5},Ek=(D,$)=>(V5.identify($)||C9.isScalar($)&&(!$.type||$.type===RO.Scalar.PLAIN)&&V5.identify($.value))&&D?.doc.schema.tags.some((F)=>F.tag===V5.tag&&F.default);function EO(D,$,F){if(F=D&&C9.isAlias(F)?F.resolve(D.doc):F,C9.isSeq(F))for(let X of F.items)uJ(D,$,X);else if(Array.isArray(F))for(let X of F)uJ(D,$,X);else uJ(D,$,F)}function uJ(D,$,F){let X=D&&C9.isAlias(F)?F.resolve(D.doc):F;if(!C9.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 $}Ck.addMergeToJSMap=EO;Ck.isMergeKey=Ek;Ck.merge=V5});var pJ=f((zk)=>{var Nk=yJ(),CO=Q5(),Pk=R9(),MO=UD(),mJ=T8();function Lk(D,$,{key:F,value:X}){if(MO.isNode(F)&&F.addToJSMap)F.addToJSMap(D,$,X);else if(CO.isMergeKey(D,F))CO.addMergeToJSMap(D,$,X);else{let J=mJ.toJS(F,"",D);if($ instanceof Map)$.set(J,mJ.toJS(X,J,D));else if($ instanceof Set)$.add(J);else{let G=jk(F,J,D),Y=mJ.toJS(X,G,D);if(G in $)Object.defineProperty($,G,{value:Y,writable:!0,enumerable:!0,configurable:!0});else $[G]=Y}}return $}function jk(D,$,F){if($===null)return"";if(typeof $!=="object")return String($);if(MO.isNode(D)&&F?.doc){let X=Pk.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)+'..."';Nk.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($)}zk.addPairToJSMap=Lk});var b8=f((bk)=>{var ZO=U9(),Tk=KO(),wk=pJ(),_5=UD();function Sk(D,$,F){let X=ZO.createNode(D,void 0,F),J=ZO.createNode($,void 0,F);return new U5(X,J)}class U5{constructor(D,$=null){Object.defineProperty(this,_5.NODE_TYPE,{value:_5.PAIR}),this.key=D,this.value=$}clone(D){let{key:$,value:F}=this;if(_5.isNode($))$=$.clone(D);if(_5.isNode(F))F=F.clone(D);return new U5($,F)}toJSON(D,$){let F=$?.mapAsMap?new Map:{};return wk.addPairToJSMap($,F,this)}toString(D,$,F){return D?.doc?Tk.stringifyPair(this,D,$,F):JSON.stringify(this)}}bk.Pair=U5;bk.createPair=Sk});var cJ=f((gk)=>{var R1=UD(),qO=R9(),A5=A9();function vk(D,$,F){return($.inFlow??D.flow?xk:hk)(D,$,F)}function hk({comment:D,items:$},F,{blockItemPrefix:X,flowChars:J,itemIndent:G,onChompKeep:Y,onComment:B}){let{indent:H,options:{commentString:W}}=F,Q=Object.assign({},F,{indent:G,type:null}),_=!1,U=[];for(let R=0;R<$.length;++R){let O=$[R],K=null;if(R1.isNode(O)){if(!_&&O.spaceBefore)U.push("");if(K5(F,U,O.commentBefore,_),O.comment)K=O.comment}else if(R1.isPair(O)){let q=R1.isNode(O.key)?O.key:null;if(q){if(!_&&q.spaceBefore)U.push("");K5(F,U,q.commentBefore,_)}}_=!1;let E=qO.stringify(O,Q,()=>K=null,()=>_=!0);if(K)E+=A5.lineComment(E,G,W(K));if(_&&K)_=!1;U.push(X+E)}let A;if(U.length===0)A=J.start+J.end;else{A=U[0];for(let R=1;R<U.length;++R){let O=U[R];A+=O?`
166
166
  ${H}${O}`:`
167
167
  `}}if(D){if(A+=`
168
- `+A5.indentComment(W(D),H),B)B()}else if(_&&Y)Y();return A}function xk({items:D},$,{flowChars:F,itemIndent:X}){let{indent:J,indentStep:G,flowCollectionPadding:Y,options:{commentString:B}}=$;X+=G;let H=Object.assign({},$,{indent:X,inFlow:!0,type:null}),W=!1,Q=0,_=[];for(let R=0;R<D.length;++R){let O=D[R],K=null;if(R1.isNode(O)){if(O.spaceBefore)_.push("");if(K5($,_,O.commentBefore,!1),O.comment)K=O.comment}else if(R1.isPair(O)){let q=R1.isNode(O.key)?O.key:null;if(q){if(q.spaceBefore)_.push("");if(K5($,_,q.commentBefore,!1),q.comment)W=!0}let N=R1.isNode(O.value)?O.value:null;if(N){if(N.comment)K=N.comment;if(N.commentBefore)W=!0}else if(O.value==null&&q?.comment)K=q.comment}if(K)W=!0;let E=ZO.stringify(O,H,()=>K=null);if(W||(W=_.length>Q||E.includes(`
168
+ `+A5.indentComment(W(D),H),B)B()}else if(_&&Y)Y();return A}function xk({items:D},$,{flowChars:F,itemIndent:X}){let{indent:J,indentStep:G,flowCollectionPadding:Y,options:{commentString:B}}=$;X+=G;let H=Object.assign({},$,{indent:X,inFlow:!0,type:null}),W=!1,Q=0,_=[];for(let R=0;R<D.length;++R){let O=D[R],K=null;if(R1.isNode(O)){if(O.spaceBefore)_.push("");if(K5($,_,O.commentBefore,!1),O.comment)K=O.comment}else if(R1.isPair(O)){let q=R1.isNode(O.key)?O.key:null;if(q){if(q.spaceBefore)_.push("");if(K5($,_,q.commentBefore,!1),q.comment)W=!0}let N=R1.isNode(O.value)?O.value:null;if(N){if(N.comment)K=N.comment;if(N.commentBefore)W=!0}else if(O.value==null&&q?.comment)K=q.comment}if(K)W=!0;let E=qO.stringify(O,H,()=>K=null);if(W||(W=_.length>Q||E.includes(`
169
169
  `)),R<D.length-1)E+=",";else if($.options.trailingComma){if($.options.lineWidth>0)W||(W=_.reduce((q,N)=>q+N.length+2,2)+(E.length+2)>$.options.lineWidth);if(W)E+=","}if(K)E+=A5.lineComment(E,X,B(K));_.push(E),Q=_.length}let{start:U,end:A}=F;if(_.length===0)return U+A;else{if(!W){let R=_.reduce((O,K)=>O+K.length+2,2);W=$.options.lineWidth>0&&R>$.options.lineWidth}if(W){let R=U;for(let O of _)R+=O?`
170
170
  ${G}${J}${O}`:`
171
171
  `;return`${R}
172
- ${J}${A}`}else return`${U}${Y}${_.join(" ")}${Y}${A}`}}function K5({indent:D,options:{commentString:$}},F,X,J){if(X&&J)X=X.replace(/^\n+/,"");if(X){let G=A5.indentComment($(X),D);F.push(G.trimStart())}}gk.stringifyCollection=vk});var k8=f((dk)=>{var uk=cJ(),mk=pJ(),pk=Y5(),f8=_D(),O5=b8(),ck=lD();function M9(D,$){let F=f8.isScalar($)?$.value:$;for(let X of D)if(f8.isPair(X)){if(X.key===$||X.key===F)return X;if(f8.isScalar(X.key)&&X.key.value===F)return X}return}class qO extends pk.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(D){super(f8.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(O5.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(f8.isPair(D))F=D;else if(!D||typeof D!=="object"||!("key"in D))F=new O5.Pair(D,D?.value);else F=new O5.Pair(D.key,D.value);let X=M9(this.items,F.key),J=this.schema?.sortMapEntries;if(X){if(!$)throw Error(`Key ${F.key} already set`);if(f8.isScalar(X.value)&&ck.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 $=M9(this.items,D);if(!$)return!1;return this.items.splice(this.items.indexOf($),1).length>0}get(D,$){let X=M9(this.items,D)?.value;return(!$&&f8.isScalar(X)?X.value:X)??void 0}has(D){return!!M9(this.items,D)}set(D,$){this.add(new O5.Pair(D,$),!0)}toJSON(D,$,F){let X=F?new F:$?.mapAsMap?new Map:{};if($?.onCreate)$.onCreate(X);for(let J of this.items)mk.addPairToJSMap($,X,J);return X}toString(D,$,F){if(!D)return JSON.stringify(this);for(let X of this.items)if(!f8.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 uk.stringifyCollection(this,D,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:D.indent||"",onChompKeep:F,onComment:$})}}dk.YAMLMap=qO;dk.findPair=M9});var f6=f((rk)=>{var nk=_D(),NO=k8(),sk={collection:"map",default:!0,nodeClass:NO.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(D,$){if(!nk.isMap(D))$("Expected a mapping for this tag");return D},createNode:(D,$,F)=>NO.YAMLMap.from(D,$,F)};rk.map=sk});var v8=f((Fv)=>{var ok=U9(),tk=cJ(),ek=Y5(),E5=_D(),Dv=lD(),$v=T8();class PO extends ek.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(D){super(E5.SEQ,D);this.items=[]}add(D){this.items.push(D)}delete(D){let $=R5(D);if(typeof $!=="number")return!1;return this.items.splice($,1).length>0}get(D,$){let F=R5(D);if(typeof F!=="number")return;let X=this.items[F];return!$&&E5.isScalar(X)?X.value:X}has(D){let $=R5(D);return typeof $==="number"&&$<this.items.length}set(D,$){let F=R5(D);if(typeof F!=="number")throw Error(`Expected a valid index, not ${D}.`);let X=this.items[F];if(E5.isScalar(X)&&Dv.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($v.toJS(J,String(X++),$));return F}toString(D,$,F){if(!D)return JSON.stringify(this);return tk.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(ok.createNode(Y,void 0,F))}}return J}}function R5(D){let $=E5.isScalar(D)?D.value:D;if($&&typeof $==="string")$=Number($);return typeof $==="number"&&Number.isInteger($)&&$>=0?$:null}Fv.YAMLSeq=PO});var k6=f((Gv)=>{var Jv=_D(),LO=v8(),Yv={collection:"seq",default:!0,nodeClass:LO.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(D,$){if(!Jv.isSeq(D))$("Expected a sequence for this tag");return D},createNode:(D,$,F)=>LO.YAMLSeq.from(D,$,F)};Gv.seq=Yv});var Z9=f((Vv)=>{var Hv=O9(),Wv={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},$),Hv.stringifyString(D,$,F,X)}};Vv.string=Wv});var C5=f((_v)=>{var jO=lD(),zO={identify:(D)=>D==null,createNode:()=>new jO.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new jO.Scalar(null),stringify:({source:D},$)=>typeof D==="string"&&zO.test.test(D)?D:$.options.nullStr};_v.nullTag=zO});var dJ=f((Kv)=>{var Av=lD(),IO={identify:(D)=>typeof D==="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:(D)=>new Av.Scalar(D[0]==="t"||D[0]==="T"),stringify({source:D,value:$},F){if(D&&IO.test.test(D)){let X=D[0]==="t"||D[0]==="T";if($===X)return D}return $?F.options.trueStr:F.options.falseStr}};Kv.boolTag=IO});var v6=f((Ev)=>{function Rv({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}Ev.stringifyNumber=Rv});var iJ=f((Pv)=>{var Mv=lD(),lJ=v6(),Zv={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:lJ.stringifyNumber},qv={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():lJ.stringifyNumber(D)}},Nv={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(D){let $=new Mv.Scalar(parseFloat(D)),F=D.indexOf(".");if(F!==-1&&D[D.length-1]==="0")$.minFractionDigits=D.length-F-1;return $},stringify:lJ.stringifyNumber};Pv.float=Nv;Pv.floatExp=qv;Pv.floatNaN=Zv});var sJ=f((Sv)=>{var TO=v6(),M5=(D)=>typeof D==="bigint"||Number.isInteger(D),nJ=(D,$,F,{intAsBigInt:X})=>X?BigInt(D):parseInt(D.substring($),F);function wO(D,$,F){let{value:X}=D;if(M5(X)&&X>=0)return F+X.toString($);return TO.stringifyNumber(D)}var Iv={identify:(D)=>M5(D)&&D>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(D,$,F)=>nJ(D,2,8,F),stringify:(D)=>wO(D,8,"0o")},Tv={identify:M5,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(D,$,F)=>nJ(D,0,10,F),stringify:TO.stringifyNumber},wv={identify:(D)=>M5(D)&&D>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(D,$,F)=>nJ(D,2,16,F),stringify:(D)=>wO(D,16,"0x")};Sv.int=Tv;Sv.intHex=wv;Sv.intOct=Iv});var SO=f((mv)=>{var vv=f6(),hv=C5(),xv=k6(),gv=Z9(),yv=dJ(),rJ=iJ(),aJ=sJ(),uv=[vv.map,xv.seq,gv.string,hv.nullTag,yv.boolTag,aJ.intOct,aJ.int,aJ.intHex,rJ.floatNaN,rJ.floatExp,rJ.float];mv.schema=uv});var fO=f((rv)=>{var cv=lD(),dv=f6(),lv=k6();function bO(D){return typeof D==="bigint"||Number.isInteger(D)}var Z5=({value:D})=>JSON.stringify(D),iv=[{identify:(D)=>typeof D==="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:(D)=>D,stringify:Z5},{identify:(D)=>D==null,createNode:()=>new cv.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:Z5},{identify:(D)=>typeof D==="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:(D)=>D==="true",stringify:Z5},{identify:bO,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(D,$,{intAsBigInt:F})=>F?BigInt(D):parseInt(D,10),stringify:({value:D})=>bO(D)?D.toString():JSON.stringify(D)},{identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:(D)=>parseFloat(D),stringify:Z5}],nv={default:!0,tag:"",test:/^/,resolve(D,$){return $(`Unresolved plain scalar ${JSON.stringify(D)}`),D}},sv=[dv.map,lv.seq].concat(iv,nv);rv.schema=sv});var tJ=f((ev)=>{var q9=J8("buffer"),oJ=lD(),ov=O9(),tv={identify:(D)=>D instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(D,$){if(typeof q9.Buffer==="function")return q9.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 q9.Buffer==="function")B=Y instanceof q9.Buffer?Y.toString("base64"):q9.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($??($=oJ.Scalar.BLOCK_LITERAL),$!==oJ.Scalar.QUOTE_DOUBLE){let H=Math.max(X.options.lineWidth-X.indent.length,X.options.minContentWidth),W=Math.ceil(B.length/H),Q=Array(W);for(let _=0,U=0;_<W;++_,U+=H)Q[_]=B.substr(U,H);B=Q.join($===oJ.Scalar.BLOCK_LITERAL?`
173
- `:" ")}return ov.stringifyString({comment:D,type:$,value:B},X,J,G)}};ev.binary=tv});var N5=f((Jh)=>{var q5=_D(),eJ=b8(),$h=lD(),Fh=v8();function kO(D,$){if(q5.isSeq(D))for(let F=0;F<D.items.length;++F){let X=D.items[F];if(q5.isPair(X))continue;else if(q5.isMap(X)){if(X.items.length>1)$("Each pair must have its own sequence indicator");let J=X.items[0]||new eJ.Pair(new $h.Scalar(null));if(X.commentBefore)J.key.commentBefore=J.key.commentBefore?`${X.commentBefore}
172
+ ${J}${A}`}else return`${U}${Y}${_.join(" ")}${Y}${A}`}}function K5({indent:D,options:{commentString:$}},F,X,J){if(X&&J)X=X.replace(/^\n+/,"");if(X){let G=A5.indentComment($(X),D);F.push(G.trimStart())}}gk.stringifyCollection=vk});var k8=f((dk)=>{var uk=cJ(),mk=pJ(),pk=Y5(),f8=UD(),O5=b8(),ck=lD();function M9(D,$){let F=f8.isScalar($)?$.value:$;for(let X of D)if(f8.isPair(X)){if(X.key===$||X.key===F)return X;if(f8.isScalar(X.key)&&X.key.value===F)return X}return}class NO extends pk.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(D){super(f8.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(O5.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(f8.isPair(D))F=D;else if(!D||typeof D!=="object"||!("key"in D))F=new O5.Pair(D,D?.value);else F=new O5.Pair(D.key,D.value);let X=M9(this.items,F.key),J=this.schema?.sortMapEntries;if(X){if(!$)throw Error(`Key ${F.key} already set`);if(f8.isScalar(X.value)&&ck.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 $=M9(this.items,D);if(!$)return!1;return this.items.splice(this.items.indexOf($),1).length>0}get(D,$){let X=M9(this.items,D)?.value;return(!$&&f8.isScalar(X)?X.value:X)??void 0}has(D){return!!M9(this.items,D)}set(D,$){this.add(new O5.Pair(D,$),!0)}toJSON(D,$,F){let X=F?new F:$?.mapAsMap?new Map:{};if($?.onCreate)$.onCreate(X);for(let J of this.items)mk.addPairToJSMap($,X,J);return X}toString(D,$,F){if(!D)return JSON.stringify(this);for(let X of this.items)if(!f8.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 uk.stringifyCollection(this,D,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:D.indent||"",onChompKeep:F,onComment:$})}}dk.YAMLMap=NO;dk.findPair=M9});var f6=f((rk)=>{var nk=UD(),PO=k8(),sk={collection:"map",default:!0,nodeClass:PO.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(D,$){if(!nk.isMap(D))$("Expected a mapping for this tag");return D},createNode:(D,$,F)=>PO.YAMLMap.from(D,$,F)};rk.map=sk});var v8=f((Fv)=>{var ok=U9(),tk=cJ(),ek=Y5(),E5=UD(),Dv=lD(),$v=T8();class LO extends ek.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(D){super(E5.SEQ,D);this.items=[]}add(D){this.items.push(D)}delete(D){let $=R5(D);if(typeof $!=="number")return!1;return this.items.splice($,1).length>0}get(D,$){let F=R5(D);if(typeof F!=="number")return;let X=this.items[F];return!$&&E5.isScalar(X)?X.value:X}has(D){let $=R5(D);return typeof $==="number"&&$<this.items.length}set(D,$){let F=R5(D);if(typeof F!=="number")throw Error(`Expected a valid index, not ${D}.`);let X=this.items[F];if(E5.isScalar(X)&&Dv.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($v.toJS(J,String(X++),$));return F}toString(D,$,F){if(!D)return JSON.stringify(this);return tk.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(ok.createNode(Y,void 0,F))}}return J}}function R5(D){let $=E5.isScalar(D)?D.value:D;if($&&typeof $==="string")$=Number($);return typeof $==="number"&&Number.isInteger($)&&$>=0?$:null}Fv.YAMLSeq=LO});var k6=f((Gv)=>{var Jv=UD(),jO=v8(),Yv={collection:"seq",default:!0,nodeClass:jO.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(D,$){if(!Jv.isSeq(D))$("Expected a sequence for this tag");return D},createNode:(D,$,F)=>jO.YAMLSeq.from(D,$,F)};Gv.seq=Yv});var Z9=f((Vv)=>{var Hv=O9(),Wv={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},$),Hv.stringifyString(D,$,F,X)}};Vv.string=Wv});var C5=f((_v)=>{var zO=lD(),IO={identify:(D)=>D==null,createNode:()=>new zO.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new zO.Scalar(null),stringify:({source:D},$)=>typeof D==="string"&&IO.test.test(D)?D:$.options.nullStr};_v.nullTag=IO});var dJ=f((Kv)=>{var Av=lD(),TO={identify:(D)=>typeof D==="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:(D)=>new Av.Scalar(D[0]==="t"||D[0]==="T"),stringify({source:D,value:$},F){if(D&&TO.test.test(D)){let X=D[0]==="t"||D[0]==="T";if($===X)return D}return $?F.options.trueStr:F.options.falseStr}};Kv.boolTag=TO});var v6=f((Ev)=>{function Rv({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}Ev.stringifyNumber=Rv});var iJ=f((Pv)=>{var Mv=lD(),lJ=v6(),Zv={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:lJ.stringifyNumber},qv={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():lJ.stringifyNumber(D)}},Nv={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(D){let $=new Mv.Scalar(parseFloat(D)),F=D.indexOf(".");if(F!==-1&&D[D.length-1]==="0")$.minFractionDigits=D.length-F-1;return $},stringify:lJ.stringifyNumber};Pv.float=Nv;Pv.floatExp=qv;Pv.floatNaN=Zv});var sJ=f((Sv)=>{var wO=v6(),M5=(D)=>typeof D==="bigint"||Number.isInteger(D),nJ=(D,$,F,{intAsBigInt:X})=>X?BigInt(D):parseInt(D.substring($),F);function SO(D,$,F){let{value:X}=D;if(M5(X)&&X>=0)return F+X.toString($);return wO.stringifyNumber(D)}var Iv={identify:(D)=>M5(D)&&D>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(D,$,F)=>nJ(D,2,8,F),stringify:(D)=>SO(D,8,"0o")},Tv={identify:M5,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(D,$,F)=>nJ(D,0,10,F),stringify:wO.stringifyNumber},wv={identify:(D)=>M5(D)&&D>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(D,$,F)=>nJ(D,2,16,F),stringify:(D)=>SO(D,16,"0x")};Sv.int=Tv;Sv.intHex=wv;Sv.intOct=Iv});var bO=f((mv)=>{var vv=f6(),hv=C5(),xv=k6(),gv=Z9(),yv=dJ(),rJ=iJ(),aJ=sJ(),uv=[vv.map,xv.seq,gv.string,hv.nullTag,yv.boolTag,aJ.intOct,aJ.int,aJ.intHex,rJ.floatNaN,rJ.floatExp,rJ.float];mv.schema=uv});var kO=f((rv)=>{var cv=lD(),dv=f6(),lv=k6();function fO(D){return typeof D==="bigint"||Number.isInteger(D)}var Z5=({value:D})=>JSON.stringify(D),iv=[{identify:(D)=>typeof D==="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:(D)=>D,stringify:Z5},{identify:(D)=>D==null,createNode:()=>new cv.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:Z5},{identify:(D)=>typeof D==="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:(D)=>D==="true",stringify:Z5},{identify:fO,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})=>fO(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:Z5}],nv={default:!0,tag:"",test:/^/,resolve(D,$){return $(`Unresolved plain scalar ${JSON.stringify(D)}`),D}},sv=[dv.map,lv.seq].concat(iv,nv);rv.schema=sv});var tJ=f((ev)=>{var q9=J8("buffer"),oJ=lD(),ov=O9(),tv={identify:(D)=>D instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(D,$){if(typeof q9.Buffer==="function")return q9.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 q9.Buffer==="function")B=Y instanceof q9.Buffer?Y.toString("base64"):q9.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($??($=oJ.Scalar.BLOCK_LITERAL),$!==oJ.Scalar.QUOTE_DOUBLE){let H=Math.max(X.options.lineWidth-X.indent.length,X.options.minContentWidth),W=Math.ceil(B.length/H),Q=Array(W);for(let _=0,U=0;_<W;++_,U+=H)Q[_]=B.substr(U,H);B=Q.join($===oJ.Scalar.BLOCK_LITERAL?`
173
+ `:" ")}return ov.stringifyString({comment:D,type:$,value:B},X,J,G)}};ev.binary=tv});var N5=f((Jh)=>{var q5=UD(),eJ=b8(),$h=lD(),Fh=v8();function vO(D,$){if(q5.isSeq(D))for(let F=0;F<D.items.length;++F){let X=D.items[F];if(q5.isPair(X))continue;else if(q5.isMap(X)){if(X.items.length>1)$("Each pair must have its own sequence indicator");let J=X.items[0]||new eJ.Pair(new $h.Scalar(null));if(X.commentBefore)J.key.commentBefore=J.key.commentBefore?`${X.commentBefore}
174
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]=q5.isPair(X)?X:new eJ.Pair(X)}else $("Expected a sequence for this tag");return D}function vO(D,$,F){let{replacer:X}=F,J=new Fh.YAMLSeq(D);J.tag="tag:yaml.org,2002:pairs";let G=0;if($&&Symbol.iterator in Object($))for(let Y of $){if(typeof X==="function")Y=X.call($,String(G++),Y);let B,H;if(Array.isArray(Y))if(Y.length===2)B=Y[0],H=Y[1];else throw TypeError(`Expected [key, value] tuple: ${Y}`);else if(Y&&Y instanceof Object){let W=Object.keys(Y);if(W.length===1)B=W[0],H=Y[B];else throw TypeError(`Expected tuple with one key, not ${W.length} keys`)}else B=Y;J.items.push(eJ.createPair(B,H,F))}return J}var Xh={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:kO,createNode:vO};Jh.createPairs=vO;Jh.pairs=Xh;Jh.resolvePairs=kO});var $Y=f((Vh)=>{var hO=_D(),DY=T8(),N9=k8(),Hh=v8(),xO=N5();class E1 extends Hh.YAMLSeq{constructor(){super();this.add=N9.YAMLMap.prototype.add.bind(this),this.delete=N9.YAMLMap.prototype.delete.bind(this),this.get=N9.YAMLMap.prototype.get.bind(this),this.has=N9.YAMLMap.prototype.has.bind(this),this.set=N9.YAMLMap.prototype.set.bind(this),this.tag=E1.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(hO.isPair(X))J=DY.toJS(X.key,"",$),G=DY.toJS(X.value,J,$);else J=DY.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=xO.createPairs(D,$,F),J=new this;return J.items=X.items,J}}E1.tag="tag:yaml.org,2002:omap";var Wh={collection:"seq",identify:(D)=>D instanceof Map,nodeClass:E1,default:!1,tag:"tag:yaml.org,2002:omap",resolve(D,$){let F=xO.resolvePairs(D,$),X=[];for(let{key:J}of F.items)if(hO.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 E1,F)},createNode:(D,$,F)=>E1.from(D,$,F)};Vh.YAMLOMap=E1;Vh.omap=Wh});var pO=f((Uh)=>{var gO=lD();function yO({value:D,source:$},F){if($&&(D?uO:mO).test.test($))return $;return D?F.options.trueStr:F.options.falseStr}var uO={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 gO.Scalar(!0),stringify:yO},mO={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 gO.Scalar(!1),stringify:yO};Uh.falseTag=mO;Uh.trueTag=uO});var cO=f((Mh)=>{var Oh=lD(),FY=v6(),Rh={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:FY.stringifyNumber},Eh={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():FY.stringifyNumber(D)}},Ch={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(D){let $=new Oh.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:FY.stringifyNumber};Mh.float=Ch;Mh.floatExp=Eh;Mh.floatNaN=Rh});var lO=f((Ih)=>{var dO=v6(),P9=(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 XY(D,$,F){let{value:X}=D;if(P9(X)){let J=X.toString($);return X<0?"-"+F+J.substr(1):F+J}return dO.stringifyNumber(D)}var Ph={identify:P9,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(D,$,F)=>P5(D,2,2,F),stringify:(D)=>XY(D,2,"0b")},Lh={identify:P9,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(D,$,F)=>P5(D,1,8,F),stringify:(D)=>XY(D,8,"0")},jh={identify:P9,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(D,$,F)=>P5(D,0,10,F),stringify:dO.stringifyNumber},zh={identify:P9,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)=>XY(D,16,"0x")};Ih.int=jh;Ih.intBin=Ph;Ih.intHex=zh;Ih.intOct=Lh});var JY=f((kh)=>{var z5=_D(),L5=b8(),j5=k8();class C1 extends j5.YAMLMap{constructor(D){super(D);this.tag=C1.tag}add(D){let $;if(z5.isPair(D))$=D;else if(D&&typeof D==="object"&&"key"in D&&"value"in D&&D.value===null)$=new L5.Pair(D.key,null);else $=new L5.Pair(D,null);if(!j5.findPair(this.items,$.key))this.items.push($)}get(D,$){let F=j5.findPair(this.items,D);return!$&&z5.isPair(F)?z5.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=j5.findPair(this.items,D);if(F&&!$)this.items.splice(this.items.indexOf(F),1);else if(!F&&$)this.items.push(new L5.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(L5.createPair(G,null,F))}return J}}C1.tag="tag:yaml.org,2002:set";var fh={collection:"map",identify:(D)=>D instanceof Set,nodeClass:C1,default:!1,tag:"tag:yaml.org,2002:set",createNode:(D,$,F)=>C1.from(D,$,F),resolve(D,$){if(z5.isMap(D))if(D.hasAllNullValues(!0))return Object.assign(new C1,D);else $("Set items must all have null values");else $("Expected a mapping for this tag");return D}};kh.YAMLSet=C1;kh.set=fh});var GY=f((uh)=>{var xh=v6();function YY(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 iO(D){let{value:$}=D,F=(Y)=>Y;if(typeof $==="bigint")F=(Y)=>BigInt(Y);else if(isNaN($)||!isFinite($))return xh.stringifyNumber(D);let X="";if($<0)X="-",$*=F(-1);let J=F(60),G=[$%J];if($<60)G.unshift(0);else if($=($-G[0])/J,G.unshift($%J),$>=60)$=($-G[0])/J,G.unshift($);return X+G.map((Y)=>String(Y).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var gh={identify:(D)=>typeof D==="bigint"||Number.isInteger(D),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(D,$,{intAsBigInt:F})=>YY(D,F),stringify:iO},yh={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:(D)=>YY(D,!1),stringify:iO},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),Q=$[8];if(Q&&Q!=="Z"){let _=YY(Q,!1);if(Math.abs(_)<30)_*=60;W-=60000*_}return new Date(W)},stringify:({value:D})=>D?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};uh.floatTime=yh;uh.intTime=gh;uh.timestamp=nO});var rO=f((Dx)=>{var dh=f6(),lh=C5(),ih=k6(),nh=Z9(),sh=tJ(),sO=pO(),BY=cO(),I5=lO(),rh=Q5(),ah=$Y(),oh=N5(),th=JY(),HY=GY(),eh=[dh.map,ih.seq,nh.string,lh.nullTag,sO.trueTag,sO.falseTag,I5.intBin,I5.intOct,I5.int,I5.intHex,BY.floatNaN,BY.floatExp,BY.float,sh.binary,rh.merge,ah.omap,oh.pairs,th.set,HY.intTime,HY.floatTime,HY.timestamp];Dx.schema=eh});var YR=f((Wx)=>{var eO=f6(),Fx=C5(),DR=k6(),Xx=Z9(),Jx=dJ(),WY=iJ(),VY=sJ(),Yx=SO(),Gx=fO(),$R=tJ(),L9=Q5(),FR=$Y(),XR=N5(),aO=rO(),JR=JY(),T5=GY(),oO=new Map([["core",Yx.schema],["failsafe",[eO.map,DR.seq,Xx.string]],["json",Gx.schema],["yaml11",aO.schema],["yaml-1.1",aO.schema]]),tO={binary:$R.binary,bool:Jx.boolTag,float:WY.float,floatExp:WY.floatExp,floatNaN:WY.floatNaN,floatTime:T5.floatTime,int:VY.int,intHex:VY.intHex,intOct:VY.intOct,intTime:T5.intTime,map:eO.map,merge:L9.merge,null:Fx.nullTag,omap:FR.omap,pairs:XR.pairs,seq:DR.seq,set:JR.set,timestamp:T5.timestamp},Bx={"tag:yaml.org,2002:binary":$R.binary,"tag:yaml.org,2002:merge":L9.merge,"tag:yaml.org,2002:omap":FR.omap,"tag:yaml.org,2002:pairs":XR.pairs,"tag:yaml.org,2002:set":JR.set,"tag:yaml.org,2002:timestamp":T5.timestamp};function Hx(D,$,F){let X=oO.get($);if(X&&!D)return F&&!X.includes(L9.merge)?X.concat(L9.merge):X.slice();let J=X;if(!J)if(Array.isArray(D))J=[];else{let G=Array.from(oO.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(L9.merge);return J.reduce((G,Y)=>{let B=typeof Y==="string"?tO[Y]:Y;if(!B){let H=JSON.stringify(Y),W=Object.keys(tO).map((Q)=>JSON.stringify(Q)).join(", ");throw Error(`Unknown custom tag ${H}; use one of ${W}`)}if(!G.includes(B))G.push(B);return G},[])}Wx.coreKnownTags=Bx;Wx.getTags=Hx});var UY=f((Ox)=>{var QY=_D(),_x=f6(),Ux=k6(),Ax=Z9(),w5=YR(),Kx=(D,$)=>D.key<$.key?-1:D.key>$.key?1:0;class _Y{constructor({compat:D,customTags:$,merge:F,resolveKnownTags:X,schema:J,sortMapEntries:G,toStringDefaults:Y}){this.compat=Array.isArray(D)?w5.getTags(D,"compat"):D?w5.getTags(null,D):null,this.name=typeof J==="string"&&J||"core",this.knownTags=X?w5.coreKnownTags:{},this.tags=w5.getTags($,this.name,F),this.toStringOptions=Y??null,Object.defineProperty(this,QY.MAP,{value:_x.map}),Object.defineProperty(this,QY.SCALAR,{value:Ax.string}),Object.defineProperty(this,QY.SEQ,{value:Ux.seq}),this.sortMapEntries=typeof G==="function"?G:G===!0?Kx:null}clone(){let D=Object.create(_Y.prototype,Object.getOwnPropertyDescriptors(this));return D.tags=this.tags.slice(),D}}Ox.Schema=_Y});var GR=f((Mx)=>{var Ex=_D(),AY=R9(),j9=A9();function Cx(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=AY.createStringifyContext(D,$),{commentString:G}=J.options;if(D.commentBefore){if(F.length!==1)F.unshift("");let H=G(D.commentBefore);F.unshift(j9.indentComment(H,""))}let Y=!1,B=null;if(D.contents){if(Ex.isNode(D.contents)){if(D.contents.spaceBefore&&X)F.push("");if(D.contents.commentBefore){let Q=G(D.contents.commentBefore);F.push(j9.indentComment(Q,""))}J.forceBlockIndent=!!D.comment,B=D.contents.comment}let H=B?void 0:()=>Y=!0,W=AY.stringify(D.contents,J,()=>B=null,H);if(B)W+=j9.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(AY.stringify(D.contents,J));if(D.directives?.docEnd)if(D.comment){let H=G(D.comment);if(H.includes(`
175
+ ${G.comment}`:X.comment}X=J}D.items[F]=q5.isPair(X)?X:new eJ.Pair(X)}else $("Expected a sequence for this tag");return D}function hO(D,$,F){let{replacer:X}=F,J=new Fh.YAMLSeq(D);J.tag="tag:yaml.org,2002:pairs";let G=0;if($&&Symbol.iterator in Object($))for(let Y of $){if(typeof X==="function")Y=X.call($,String(G++),Y);let B,H;if(Array.isArray(Y))if(Y.length===2)B=Y[0],H=Y[1];else throw TypeError(`Expected [key, value] tuple: ${Y}`);else if(Y&&Y instanceof Object){let W=Object.keys(Y);if(W.length===1)B=W[0],H=Y[B];else throw TypeError(`Expected tuple with one key, not ${W.length} keys`)}else B=Y;J.items.push(eJ.createPair(B,H,F))}return J}var Xh={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:vO,createNode:hO};Jh.createPairs=hO;Jh.pairs=Xh;Jh.resolvePairs=vO});var $Y=f((Vh)=>{var xO=UD(),DY=T8(),N9=k8(),Hh=v8(),gO=N5();class E1 extends Hh.YAMLSeq{constructor(){super();this.add=N9.YAMLMap.prototype.add.bind(this),this.delete=N9.YAMLMap.prototype.delete.bind(this),this.get=N9.YAMLMap.prototype.get.bind(this),this.has=N9.YAMLMap.prototype.has.bind(this),this.set=N9.YAMLMap.prototype.set.bind(this),this.tag=E1.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(xO.isPair(X))J=DY.toJS(X.key,"",$),G=DY.toJS(X.value,J,$);else J=DY.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=gO.createPairs(D,$,F),J=new this;return J.items=X.items,J}}E1.tag="tag:yaml.org,2002:omap";var Wh={collection:"seq",identify:(D)=>D instanceof Map,nodeClass:E1,default:!1,tag:"tag:yaml.org,2002:omap",resolve(D,$){let F=gO.resolvePairs(D,$),X=[];for(let{key:J}of F.items)if(xO.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 E1,F)},createNode:(D,$,F)=>E1.from(D,$,F)};Vh.YAMLOMap=E1;Vh.omap=Wh});var cO=f((Uh)=>{var yO=lD();function uO({value:D,source:$},F){if($&&(D?mO:pO).test.test($))return $;return D?F.options.trueStr:F.options.falseStr}var mO={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 yO.Scalar(!0),stringify:uO},pO={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 yO.Scalar(!1),stringify:uO};Uh.falseTag=pO;Uh.trueTag=mO});var dO=f((Mh)=>{var Oh=lD(),FY=v6(),Rh={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:FY.stringifyNumber},Eh={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():FY.stringifyNumber(D)}},Ch={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(D){let $=new Oh.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:FY.stringifyNumber};Mh.float=Ch;Mh.floatExp=Eh;Mh.floatNaN=Rh});var iO=f((Ih)=>{var lO=v6(),P9=(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 XY(D,$,F){let{value:X}=D;if(P9(X)){let J=X.toString($);return X<0?"-"+F+J.substr(1):F+J}return lO.stringifyNumber(D)}var Ph={identify:P9,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(D,$,F)=>P5(D,2,2,F),stringify:(D)=>XY(D,2,"0b")},Lh={identify:P9,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(D,$,F)=>P5(D,1,8,F),stringify:(D)=>XY(D,8,"0")},jh={identify:P9,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(D,$,F)=>P5(D,0,10,F),stringify:lO.stringifyNumber},zh={identify:P9,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)=>XY(D,16,"0x")};Ih.int=jh;Ih.intBin=Ph;Ih.intHex=zh;Ih.intOct=Lh});var JY=f((kh)=>{var z5=UD(),L5=b8(),j5=k8();class C1 extends j5.YAMLMap{constructor(D){super(D);this.tag=C1.tag}add(D){let $;if(z5.isPair(D))$=D;else if(D&&typeof D==="object"&&"key"in D&&"value"in D&&D.value===null)$=new L5.Pair(D.key,null);else $=new L5.Pair(D,null);if(!j5.findPair(this.items,$.key))this.items.push($)}get(D,$){let F=j5.findPair(this.items,D);return!$&&z5.isPair(F)?z5.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=j5.findPair(this.items,D);if(F&&!$)this.items.splice(this.items.indexOf(F),1);else if(!F&&$)this.items.push(new L5.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(L5.createPair(G,null,F))}return J}}C1.tag="tag:yaml.org,2002:set";var fh={collection:"map",identify:(D)=>D instanceof Set,nodeClass:C1,default:!1,tag:"tag:yaml.org,2002:set",createNode:(D,$,F)=>C1.from(D,$,F),resolve(D,$){if(z5.isMap(D))if(D.hasAllNullValues(!0))return Object.assign(new C1,D);else $("Set items must all have null values");else $("Expected a mapping for this tag");return D}};kh.YAMLSet=C1;kh.set=fh});var GY=f((uh)=>{var xh=v6();function YY(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 nO(D){let{value:$}=D,F=(Y)=>Y;if(typeof $==="bigint")F=(Y)=>BigInt(Y);else if(isNaN($)||!isFinite($))return xh.stringifyNumber(D);let X="";if($<0)X="-",$*=F(-1);let J=F(60),G=[$%J];if($<60)G.unshift(0);else if($=($-G[0])/J,G.unshift($%J),$>=60)$=($-G[0])/J,G.unshift($);return X+G.map((Y)=>String(Y).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var gh={identify:(D)=>typeof D==="bigint"||Number.isInteger(D),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(D,$,{intAsBigInt:F})=>YY(D,F),stringify:nO},yh={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:(D)=>YY(D,!1),stringify:nO},sO={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(sO.test);if(!$)throw Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,F,X,J,G,Y,B]=$.map(Number),H=$[7]?Number(($[7]+"00").substr(1,3)):0,W=Date.UTC(F,X-1,J,G||0,Y||0,B||0,H),Q=$[8];if(Q&&Q!=="Z"){let _=YY(Q,!1);if(Math.abs(_)<30)_*=60;W-=60000*_}return new Date(W)},stringify:({value:D})=>D?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};uh.floatTime=yh;uh.intTime=gh;uh.timestamp=sO});var aO=f((Dx)=>{var dh=f6(),lh=C5(),ih=k6(),nh=Z9(),sh=tJ(),rO=cO(),BY=dO(),I5=iO(),rh=Q5(),ah=$Y(),oh=N5(),th=JY(),HY=GY(),eh=[dh.map,ih.seq,nh.string,lh.nullTag,rO.trueTag,rO.falseTag,I5.intBin,I5.intOct,I5.int,I5.intHex,BY.floatNaN,BY.floatExp,BY.float,sh.binary,rh.merge,ah.omap,oh.pairs,th.set,HY.intTime,HY.floatTime,HY.timestamp];Dx.schema=eh});var GR=f((Wx)=>{var DR=f6(),Fx=C5(),$R=k6(),Xx=Z9(),Jx=dJ(),WY=iJ(),VY=sJ(),Yx=bO(),Gx=kO(),FR=tJ(),L9=Q5(),XR=$Y(),JR=N5(),oO=aO(),YR=JY(),T5=GY(),tO=new Map([["core",Yx.schema],["failsafe",[DR.map,$R.seq,Xx.string]],["json",Gx.schema],["yaml11",oO.schema],["yaml-1.1",oO.schema]]),eO={binary:FR.binary,bool:Jx.boolTag,float:WY.float,floatExp:WY.floatExp,floatNaN:WY.floatNaN,floatTime:T5.floatTime,int:VY.int,intHex:VY.intHex,intOct:VY.intOct,intTime:T5.intTime,map:DR.map,merge:L9.merge,null:Fx.nullTag,omap:XR.omap,pairs:JR.pairs,seq:$R.seq,set:YR.set,timestamp:T5.timestamp},Bx={"tag:yaml.org,2002:binary":FR.binary,"tag:yaml.org,2002:merge":L9.merge,"tag:yaml.org,2002:omap":XR.omap,"tag:yaml.org,2002:pairs":JR.pairs,"tag:yaml.org,2002:set":YR.set,"tag:yaml.org,2002:timestamp":T5.timestamp};function Hx(D,$,F){let X=tO.get($);if(X&&!D)return F&&!X.includes(L9.merge)?X.concat(L9.merge):X.slice();let J=X;if(!J)if(Array.isArray(D))J=[];else{let G=Array.from(tO.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(L9.merge);return J.reduce((G,Y)=>{let B=typeof Y==="string"?eO[Y]:Y;if(!B){let H=JSON.stringify(Y),W=Object.keys(eO).map((Q)=>JSON.stringify(Q)).join(", ");throw Error(`Unknown custom tag ${H}; use one of ${W}`)}if(!G.includes(B))G.push(B);return G},[])}Wx.coreKnownTags=Bx;Wx.getTags=Hx});var UY=f((Ox)=>{var QY=UD(),_x=f6(),Ux=k6(),Ax=Z9(),w5=GR(),Kx=(D,$)=>D.key<$.key?-1:D.key>$.key?1:0;class _Y{constructor({compat:D,customTags:$,merge:F,resolveKnownTags:X,schema:J,sortMapEntries:G,toStringDefaults:Y}){this.compat=Array.isArray(D)?w5.getTags(D,"compat"):D?w5.getTags(null,D):null,this.name=typeof J==="string"&&J||"core",this.knownTags=X?w5.coreKnownTags:{},this.tags=w5.getTags($,this.name,F),this.toStringOptions=Y??null,Object.defineProperty(this,QY.MAP,{value:_x.map}),Object.defineProperty(this,QY.SCALAR,{value:Ax.string}),Object.defineProperty(this,QY.SEQ,{value:Ux.seq}),this.sortMapEntries=typeof G==="function"?G:G===!0?Kx:null}clone(){let D=Object.create(_Y.prototype,Object.getOwnPropertyDescriptors(this));return D.tags=this.tags.slice(),D}}Ox.Schema=_Y});var BR=f((Mx)=>{var Ex=UD(),AY=R9(),j9=A9();function Cx(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=AY.createStringifyContext(D,$),{commentString:G}=J.options;if(D.commentBefore){if(F.length!==1)F.unshift("");let H=G(D.commentBefore);F.unshift(j9.indentComment(H,""))}let Y=!1,B=null;if(D.contents){if(Ex.isNode(D.contents)){if(D.contents.spaceBefore&&X)F.push("");if(D.contents.commentBefore){let Q=G(D.contents.commentBefore);F.push(j9.indentComment(Q,""))}J.forceBlockIndent=!!D.comment,B=D.contents.comment}let H=B?void 0:()=>Y=!0,W=AY.stringify(D.contents,J,()=>B=null,H);if(B)W+=j9.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(AY.stringify(D.contents,J));if(D.directives?.docEnd)if(D.comment){let H=G(D.comment);if(H.includes(`
176
176
  `))F.push("..."),F.push(j9.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(j9.indentComment(G(H),""))}}return F.join(`
177
177
  `)+`
178
- `}Mx.stringifyDocument=Cx});var z9=f((Tx)=>{var qx=_9(),h6=Y5(),r0=_D(),Nx=b8(),Px=T8(),Lx=UY(),jx=GR(),KY=F5(),zx=kJ(),Ix=U9(),OY=fJ();class RY{constructor(D,$,F){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,r0.NODE_TYPE,{value:r0.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 OY.Directives({version:G});this.setSchema(G,F),this.contents=D===void 0?null:this.createNode(D,X,F)}clone(){let D=Object.create(RY.prototype,{[r0.NODE_TYPE]:{value:r0.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=r0.isNode(this.contents)?this.contents.clone(D.schema):this.contents,this.range)D.range=this.range.slice();return D}add(D){if(x6(this.contents))this.contents.add(D)}addIn(D,$){if(x6(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 qx.Alias(D.anchor)}createNode(D,$,F){let X=void 0;if(typeof $==="function")D=$.call({"":D},"",D),X=$;else if(Array.isArray($)){let O=(E)=>typeof E==="number"||E instanceof String||E instanceof Number,K=$.filter(O).map(String);if(K.length>0)$=$.concat(K);X=$}else if(F===void 0&&$)F=$,$=void 0;let{aliasDuplicateObjects:J,anchorPrefix:G,flow:Y,keepUndefined:B,onTagObj:H,tag:W}=F??{},{onAnchor:Q,setAnchors:_,sourceObjects:U}=KY.createNodeAnchors(this,G||"a"),A={aliasDuplicateObjects:J??!0,keepUndefined:B??!1,onAnchor:Q,onTagObj:H,replacer:X,schema:this.schema,sourceObjects:U},R=Ix.createNode(D,W,A);if(Y&&r0.isCollection(R))R.flow=!0;return _(),R}createPair(D,$,F={}){let X=this.createNode(D,null,F),J=this.createNode($,null,F);return new Nx.Pair(X,J)}delete(D){return x6(this.contents)?this.contents.delete(D):!1}deleteIn(D){if(h6.isEmptyPath(D)){if(this.contents==null)return!1;return this.contents=null,!0}return x6(this.contents)?this.contents.deleteIn(D):!1}get(D,$){return r0.isCollection(this.contents)?this.contents.get(D,$):void 0}getIn(D,$){if(h6.isEmptyPath(D))return!$&&r0.isScalar(this.contents)?this.contents.value:this.contents;return r0.isCollection(this.contents)?this.contents.getIn(D,$):void 0}has(D){return r0.isCollection(this.contents)?this.contents.has(D):!1}hasIn(D){if(h6.isEmptyPath(D))return this.contents!==void 0;return r0.isCollection(this.contents)?this.contents.hasIn(D):!1}set(D,$){if(this.contents==null)this.contents=h6.collectionFromPath(this.schema,[D],$);else if(x6(this.contents))this.contents.set(D,$)}setIn(D,$){if(h6.isEmptyPath(D))this.contents=$;else if(this.contents==null)this.contents=h6.collectionFromPath(this.schema,Array.from(D),$);else if(x6(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 OY.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 OY.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 Lx.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=Px.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"?zx.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 jx.stringifyDocument(this,D)}}function x6(D){if(r0.isCollection(D))return!0;throw Error("Expected a YAML collection as document contents")}Tx.Document=RY});var I9=f((bx)=>{class S5 extends Error{constructor(D,$,F,X){super();this.name=D,this.code=F,this.message=X,this.pos=$}}class BR extends S5{constructor(D,$,F){super("YAMLParseError",D,$,F)}}class HR extends S5{constructor(D,$,F){super("YAMLWarning",D,$,F)}}var Sx=(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
178
+ `}Mx.stringifyDocument=Cx});var z9=f((Tx)=>{var qx=_9(),h6=Y5(),r0=UD(),Nx=b8(),Px=T8(),Lx=UY(),jx=BR(),KY=F5(),zx=kJ(),Ix=U9(),OY=fJ();class RY{constructor(D,$,F){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,r0.NODE_TYPE,{value:r0.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 OY.Directives({version:G});this.setSchema(G,F),this.contents=D===void 0?null:this.createNode(D,X,F)}clone(){let D=Object.create(RY.prototype,{[r0.NODE_TYPE]:{value:r0.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=r0.isNode(this.contents)?this.contents.clone(D.schema):this.contents,this.range)D.range=this.range.slice();return D}add(D){if(x6(this.contents))this.contents.add(D)}addIn(D,$){if(x6(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 qx.Alias(D.anchor)}createNode(D,$,F){let X=void 0;if(typeof $==="function")D=$.call({"":D},"",D),X=$;else if(Array.isArray($)){let O=(E)=>typeof E==="number"||E instanceof String||E instanceof Number,K=$.filter(O).map(String);if(K.length>0)$=$.concat(K);X=$}else if(F===void 0&&$)F=$,$=void 0;let{aliasDuplicateObjects:J,anchorPrefix:G,flow:Y,keepUndefined:B,onTagObj:H,tag:W}=F??{},{onAnchor:Q,setAnchors:_,sourceObjects:U}=KY.createNodeAnchors(this,G||"a"),A={aliasDuplicateObjects:J??!0,keepUndefined:B??!1,onAnchor:Q,onTagObj:H,replacer:X,schema:this.schema,sourceObjects:U},R=Ix.createNode(D,W,A);if(Y&&r0.isCollection(R))R.flow=!0;return _(),R}createPair(D,$,F={}){let X=this.createNode(D,null,F),J=this.createNode($,null,F);return new Nx.Pair(X,J)}delete(D){return x6(this.contents)?this.contents.delete(D):!1}deleteIn(D){if(h6.isEmptyPath(D)){if(this.contents==null)return!1;return this.contents=null,!0}return x6(this.contents)?this.contents.deleteIn(D):!1}get(D,$){return r0.isCollection(this.contents)?this.contents.get(D,$):void 0}getIn(D,$){if(h6.isEmptyPath(D))return!$&&r0.isScalar(this.contents)?this.contents.value:this.contents;return r0.isCollection(this.contents)?this.contents.getIn(D,$):void 0}has(D){return r0.isCollection(this.contents)?this.contents.has(D):!1}hasIn(D){if(h6.isEmptyPath(D))return this.contents!==void 0;return r0.isCollection(this.contents)?this.contents.hasIn(D):!1}set(D,$){if(this.contents==null)this.contents=h6.collectionFromPath(this.schema,[D],$);else if(x6(this.contents))this.contents.set(D,$)}setIn(D,$){if(h6.isEmptyPath(D))this.contents=$;else if(this.contents==null)this.contents=h6.collectionFromPath(this.schema,Array.from(D),$);else if(x6(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 OY.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 OY.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 Lx.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=Px.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"?zx.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 jx.stringifyDocument(this,D)}}function x6(D){if(r0.isCollection(D))return!0;throw Error("Expected a YAML collection as document contents")}Tx.Document=RY});var I9=f((bx)=>{class S5 extends Error{constructor(D,$,F,X){super();this.name=D,this.code=F,this.message=X,this.pos=$}}class HR extends S5{constructor(D,$,F){super("YAMLParseError",D,$,F)}}class WR extends S5{constructor(D,$,F){super("YAMLWarning",D,$,F)}}var Sx=(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
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
180
 
181
181
  ${Y}
182
182
  ${W}
183
- `}};bx.YAMLError=S5;bx.YAMLParseError=BR;bx.YAMLWarning=HR;bx.prettifyError=Sx});var T9=f((gx)=>{function xx(D,{flow:$,indicator:F,next:X,offset:J,onError:G,parentIndent:Y,startOnNewline:B}){let H=!1,W=B,Q=B,_="",U="",A=!1,R=!1,O=null,K=null,E=null,q=null,N=null,S=null,b=null;for(let j of D){if(R){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");R=!1}if(O){if(W&&j.type!=="comment"&&j.type!=="newline")G(O,"TAB_AS_INDENT","Tabs are not allowed as indentation");O=null}switch(j.type){case"space":if(!$&&(F!=="doc-start"||X?.type!=="flow-collection")&&j.source.includes("\t"))O=j;Q=!0;break;case"comment":{if(!Q)G(j,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let s=j.source.substring(1)||" ";if(!_)_=s;else _+=U+s;U="",W=!1;break}case"newline":if(W){if(_)_+=j.source;else if(!S||F!=="seq-item-ind")H=!0}else U+=j.source;if(W=!0,A=!0,K||E)q=j;Q=!0;break;case"anchor":if(K)G(j,"MULTIPLE_ANCHORS","A node can have at most one anchor");if(j.source.endsWith(":"))G(j.offset+j.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0);K=j,b??(b=j.offset),W=!1,Q=!1,R=!0;break;case"tag":{if(E)G(j,"MULTIPLE_TAGS","A node can have at most one tag");E=j,b??(b=j.offset),W=!1,Q=!1,R=!0;break}case F:if(K||E)G(j,"BAD_PROP_ORDER",`Anchors and tags must be after the ${j.source} indicator`);if(S)G(j,"UNEXPECTED_TOKEN",`Unexpected ${j.source} in ${$??"collection"}`);S=j,W=F==="seq-item-ind"||F==="explicit-key-ind",Q=!1;break;case"comma":if($){if(N)G(j,"UNEXPECTED_TOKEN",`Unexpected , in ${$}`);N=j,W=!1,Q=!1;break}default:G(j,"UNEXPECTED_TOKEN",`Unexpected ${j.type} token`),W=!1,Q=!1}}let P=D[D.length-1],T=P?P.offset+P.source.length:J;if(R&&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(O&&(W&&O.indent<=Y||X?.type==="block-map"||X?.type==="block-seq"))G(O,"TAB_AS_INDENT","Tabs are not allowed as indentation");return{comma:N,found:S,spaceBefore:H,comment:_,hasNewline:A,anchor:K,tag:E,newlineAfterProp:q,end:T,start:b??T}}gx.resolveProps=xx});var b5=f((ux)=>{function EY(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(EY($.key)||EY($.value))return!0}return!1;default:return!0}}ux.containsNewline=EY});var CY=f((dx)=>{var px=b5();function cx(D,$,F){if($?.type==="flow-collection"){let X=$.end[0];if(X.indent===D&&(X.source==="]"||X.source==="}")&&px.containsNewline($))F(X,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}dx.flowIndentCheck=cx});var MY=f((nx)=>{var WR=_D();function ix(D,$,F){let{uniqueKeys:X}=D.options;if(X===!1)return!1;let J=typeof X==="function"?X:(G,Y)=>G===Y||WR.isScalar(G)&&WR.isScalar(Y)&&G.value===Y.value;return $.some((G)=>J(G.key,F))}nx.mapIncludes=ix});var AR=f((ex)=>{var VR=b8(),rx=k8(),QR=T9(),ax=b5(),_R=CY(),ox=MY(),UR="All mapping items must start at the same column";function tx({composeNode:D,composeEmptyNode:$},F,X,J,G){let B=new(G?.nodeClass??rx.YAMLMap)(F.schema);if(F.atRoot)F.atRoot=!1;let H=X.offset,W=null;for(let Q of X.items){let{start:_,key:U,sep:A,value:R}=Q,O=QR.resolveProps(_,{indicator:"explicit-key-ind",next:U??A?.[0],offset:H,onError:J,parentIndent:X.indent,startOnNewline:!0}),K=!O.found;if(K){if(U){if(U.type==="block-seq")J(H,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key");else if("indent"in U&&U.indent!==X.indent)J(H,"BAD_INDENT",UR)}if(!O.anchor&&!O.tag&&!A){if(W=O.end,O.comment)if(B.comment)B.comment+=`
185
- `+O.comment;else B.comment=O.comment;continue}if(O.newlineAfterProp||ax.containsNewline(U))J(U??_[_.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else if(O.found?.indent!==X.indent)J(H,"BAD_INDENT",UR);F.atKey=!0;let E=O.end,q=U?D(F,U,O,J):$(F,E,_,null,O,J);if(F.schema.compat)_R.flowIndentCheck(X.indent,U,J);if(F.atKey=!1,ox.mapIncludes(F,B.items,q))J(E,"DUPLICATE_KEY","Map keys must be unique");let N=QR.resolveProps(A??[],{indicator:"map-value-ind",next:R,offset:q.range[2],onError:J,parentIndent:X.indent,startOnNewline:!U||U.type==="block-scalar"});if(H=N.end,N.found){if(K){if(R?.type==="block-map"&&!N.hasNewline)J(H,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings");if(F.options.strict&&O.start<N.found.offset-1024)J(q.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key")}let S=R?D(F,R,N,J):$(F,H,A,null,N,J);if(F.schema.compat)_R.flowIndentCheck(X.indent,R,J);H=S.range[2];let b=new VR.Pair(q,S);if(F.options.keepSourceTokens)b.srcToken=Q;B.items.push(b)}else{if(K)J(q.range,"MISSING_CHAR","Implicit map keys need to be followed by map values");if(N.comment)if(q.comment)q.comment+=`
186
- `+N.comment;else q.comment=N.comment;let S=new VR.Pair(q);if(F.options.keepSourceTokens)S.srcToken=Q;B.items.push(S)}}if(W&&W<H)J(W,"IMPOSSIBLE","Map comment with trailing content");return B.range=[X.offset,H,W??H],B}ex.resolveBlockMap=tx});var KR=f((Yg)=>{var $g=v8(),Fg=T9(),Xg=CY();function Jg({composeNode:D,composeEmptyNode:$},F,X,J,G){let B=new(G?.nodeClass??$g.YAMLSeq)(F.schema);if(F.atRoot)F.atRoot=!1;if(F.atKey)F.atKey=!1;let H=X.offset,W=null;for(let{start:Q,value:_}of X.items){let U=Fg.resolveProps(Q,{indicator:"seq-item-ind",next:_,offset:H,onError:J,parentIndent:X.indent,startOnNewline:!0});if(!U.found)if(U.anchor||U.tag||_)if(_?.type==="block-seq")J(U.end,"BAD_INDENT","All sequence items must start at the same column");else J(H,"MISSING_CHAR","Sequence item without - indicator");else{if(W=U.end,U.comment)B.comment=U.comment;continue}let A=_?D(F,_,U,J):$(F,U.end,Q,null,U,J);if(F.schema.compat)Xg.flowIndentCheck(X.indent,_,J);H=A.range[2],B.items.push(A)}return B.range=[X.offset,H,W??H],B}Yg.resolveBlockSeq=Jg});var g6=f((Hg)=>{function Bg(D,$,F,X){let J="";if(D){let G=!1,Y="";for(let B of D){let{source:H,type:W}=B;switch(W){case"space":G=!0;break;case"comment":{if(F&&!G)X(B,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let Q=H.substring(1)||" ";if(!J)J=Q;else J+=Y+Q;Y="";break}case"newline":if(J)Y+=H;G=!0;break;default:X(B,"UNEXPECTED_TOKEN",`Unexpected ${W} at node end`)}$+=H.length}}return{comment:J,offset:$}}Hg.resolveEnd=Bg});var ER=f((Rg)=>{var Vg=_D(),Qg=b8(),OR=k8(),_g=v8(),Ug=g6(),RR=T9(),Ag=b5(),Kg=MY(),ZY="Block collections are not allowed within flow collections",qY=(D)=>D&&(D.type==="block-map"||D.type==="block-seq");function Og({composeNode:D,composeEmptyNode:$},F,X,J,G){let Y=X.start.source==="{",B=Y?"flow map":"flow sequence",W=new(G?.nodeClass??(Y?OR.YAMLMap:_g.YAMLSeq))(F.schema);W.flow=!0;let Q=F.atRoot;if(Q)F.atRoot=!1;if(F.atKey)F.atKey=!1;let _=X.offset+X.start.source.length;for(let K=0;K<X.items.length;++K){let E=X.items[K],{start:q,key:N,sep:S,value:b}=E,P=RR.resolveProps(q,{flow:B,indicator:"explicit-key-ind",next:N??S?.[0],offset:_,onError:J,parentIndent:X.indent,startOnNewline:!1});if(!P.found){if(!P.anchor&&!P.tag&&!S&&!b){if(K===0&&P.comma)J(P.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${B}`);else if(K<X.items.length-1)J(P.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${B}`);if(P.comment)if(W.comment)W.comment+=`
187
- `+P.comment;else W.comment=P.comment;_=P.end;continue}if(!Y&&F.options.strict&&Ag.containsNewline(N))J(N,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(K===0){if(P.comma)J(P.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${B}`)}else{if(!P.comma)J(P.start,"MISSING_CHAR",`Missing , between ${B} items`);if(P.comment){let T="";D:for(let j of q)switch(j.type){case"comma":case"space":break;case"comment":T=j.source.substring(1);break D;default:break D}if(T){let j=W.items[W.items.length-1];if(Vg.isPair(j))j=j.value??j.key;if(j.comment)j.comment+=`
188
- `+T;else j.comment=T;P.comment=P.comment.substring(T.length+1)}}}if(!Y&&!S&&!P.found){let T=b?D(F,b,P,J):$(F,P.end,S,null,P,J);if(W.items.push(T),_=T.range[2],qY(b))J(T.range,"BLOCK_IN_FLOW",ZY)}else{F.atKey=!0;let T=P.end,j=N?D(F,N,P,J):$(F,T,q,null,P,J);if(qY(N))J(j.range,"BLOCK_IN_FLOW",ZY);F.atKey=!1;let s=RR.resolveProps(S??[],{flow:B,indicator:"map-value-ind",next:b,offset:j.range[2],onError:J,parentIndent:X.indent,startOnNewline:!1});if(s.found){if(!Y&&!P.found&&F.options.strict){if(S)for(let $D of S){if($D===s.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(P.start<s.found.offset-1024)J(s.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else if(b)if("source"in b&&b.source?.[0]===":")J(b,"MISSING_CHAR",`Missing space after : in ${B}`);else J(s.start,"MISSING_CHAR",`Missing , or : between ${B} items`);let UD=b?D(F,b,s,J):s.found?$(F,s.end,S,null,s,J):null;if(UD){if(qY(b))J(UD.range,"BLOCK_IN_FLOW",ZY)}else if(s.comment)if(j.comment)j.comment+=`
189
- `+s.comment;else j.comment=s.comment;let VD=new Qg.Pair(j,UD);if(F.options.keepSourceTokens)VD.srcToken=E;if(Y){let $D=W;if(Kg.mapIncludes(F,$D.items,j))J(T,"DUPLICATE_KEY","Map keys must be unique");$D.items.push(VD)}else{let $D=new OR.YAMLMap(F.schema);$D.flow=!0,$D.items.push(VD);let rD=(UD??j).range;$D.range=[j.range[0],rD[1],rD[2]],W.items.push($D)}_=UD?UD.range[2]:s.end}}let U=Y?"}":"]",[A,...R]=X.end,O=_;if(A?.source===U)O=A.offset+A.source.length;else{let K=B[0].toUpperCase()+B.substring(1),E=Q?`${K} must end with a ${U}`:`${K} in block collection must be sufficiently indented and end with a ${U}`;if(J(_,Q?"MISSING_CHAR":"BAD_INDENT",E),A&&A.source.length!==1)R.unshift(A)}if(R.length>0){let K=Ug.resolveEnd(R,O,F.options.strict,J);if(K.comment)if(W.comment)W.comment+=`
190
- `+K.comment;else W.comment=K.comment;W.range=[X.offset,O,K.offset]}else W.range=[X.offset,O,O];return W}Rg.resolveFlowCollection=Og});var CR=f((zg)=>{var Cg=_D(),Mg=lD(),Zg=k8(),qg=v8(),Ng=AR(),Pg=KR(),Lg=ER();function NY(D,$,F,X,J,G){let Y=F.type==="block-map"?Ng.resolveBlockMap(D,$,F,X,G):F.type==="block-seq"?Pg.resolveBlockSeq(D,$,F,X,G):Lg.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 jg(D,$,F,X,J){let G=X.tag,Y=!G?null:$.directives.tagName(G.source,(U)=>J(G,"TAG_RESOLVE_FAILED",U));if(F.type==="block-seq"){let{anchor:U,newlineAfterProp:A}=X,R=U&&G?U.offset>G.offset?U:G:U??G;if(R&&(!A||A.offset<R.offset))J(R,"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===Zg.YAMLMap.tagName&&B==="map"||Y===qg.YAMLSeq.tagName&&B==="seq")return NY(D,$,F,J,Y);let H=$.schema.tags.find((U)=>U.tag===Y&&U.collection===B);if(!H){let U=$.schema.knownTags[Y];if(U?.collection===B)$.schema.tags.push(Object.assign({},U,{default:!1})),H=U;else{if(U)J(G,"BAD_COLLECTION_TYPE",`${U.tag} used for ${B} collection, but expects ${U.collection??"scalar"}`,!0);else J(G,"TAG_RESOLVE_FAILED",`Unresolved tag: ${Y}`,!0);return NY(D,$,F,J,Y)}}let W=NY(D,$,F,J,Y,H),Q=H.resolve?.(W,(U)=>J(G,"TAG_RESOLVE_FAILED",U),$.options)??W,_=Cg.isNode(Q)?Q:new Mg.Scalar(Q);if(_.range=W.range,_.tag=Y,H?.format)_.format=H.format;return _}zg.composeCollection=jg});var LY=f((bg)=>{var PY=lD();function Tg(D,$,F){let X=$.offset,J=wg($,D.options.strict,F);if(!J)return{value:"",type:null,comment:"",range:[X,X,X]};let G=J.mode===">"?PY.Scalar.BLOCK_FOLDED:PY.Scalar.BLOCK_LITERAL,Y=$.source?Sg($.source):[],B=Y.length;for(let O=Y.length-1;O>=0;--O){let K=Y[O][1];if(K===""||K==="\r")B=O;else break}if(B===0){let O=J.chomp==="+"&&Y.length>0?`
183
+ `}};bx.YAMLError=S5;bx.YAMLParseError=HR;bx.YAMLWarning=WR;bx.prettifyError=Sx});var T9=f((gx)=>{function xx(D,{flow:$,indicator:F,next:X,offset:J,onError:G,parentIndent:Y,startOnNewline:B}){let H=!1,W=B,Q=B,_="",U="",A=!1,R=!1,O=null,K=null,E=null,q=null,N=null,S=null,b=null;for(let j of D){if(R){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");R=!1}if(O){if(W&&j.type!=="comment"&&j.type!=="newline")G(O,"TAB_AS_INDENT","Tabs are not allowed as indentation");O=null}switch(j.type){case"space":if(!$&&(F!=="doc-start"||X?.type!=="flow-collection")&&j.source.includes("\t"))O=j;Q=!0;break;case"comment":{if(!Q)G(j,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let d=j.source.substring(1)||" ";if(!_)_=d;else _+=U+d;U="",W=!1;break}case"newline":if(W){if(_)_+=j.source;else if(!S||F!=="seq-item-ind")H=!0}else U+=j.source;if(W=!0,A=!0,K||E)q=j;Q=!0;break;case"anchor":if(K)G(j,"MULTIPLE_ANCHORS","A node can have at most one anchor");if(j.source.endsWith(":"))G(j.offset+j.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0);K=j,b??(b=j.offset),W=!1,Q=!1,R=!0;break;case"tag":{if(E)G(j,"MULTIPLE_TAGS","A node can have at most one tag");E=j,b??(b=j.offset),W=!1,Q=!1,R=!0;break}case F:if(K||E)G(j,"BAD_PROP_ORDER",`Anchors and tags must be after the ${j.source} indicator`);if(S)G(j,"UNEXPECTED_TOKEN",`Unexpected ${j.source} in ${$??"collection"}`);S=j,W=F==="seq-item-ind"||F==="explicit-key-ind",Q=!1;break;case"comma":if($){if(N)G(j,"UNEXPECTED_TOKEN",`Unexpected , in ${$}`);N=j,W=!1,Q=!1;break}default:G(j,"UNEXPECTED_TOKEN",`Unexpected ${j.type} token`),W=!1,Q=!1}}let L=D[D.length-1],z=L?L.offset+L.source.length:J;if(R&&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(O&&(W&&O.indent<=Y||X?.type==="block-map"||X?.type==="block-seq"))G(O,"TAB_AS_INDENT","Tabs are not allowed as indentation");return{comma:N,found:S,spaceBefore:H,comment:_,hasNewline:A,anchor:K,tag:E,newlineAfterProp:q,end:z,start:b??z}}gx.resolveProps=xx});var b5=f((ux)=>{function EY(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(EY($.key)||EY($.value))return!0}return!1;default:return!0}}ux.containsNewline=EY});var CY=f((dx)=>{var px=b5();function cx(D,$,F){if($?.type==="flow-collection"){let X=$.end[0];if(X.indent===D&&(X.source==="]"||X.source==="}")&&px.containsNewline($))F(X,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}dx.flowIndentCheck=cx});var MY=f((nx)=>{var VR=UD();function ix(D,$,F){let{uniqueKeys:X}=D.options;if(X===!1)return!1;let J=typeof X==="function"?X:(G,Y)=>G===Y||VR.isScalar(G)&&VR.isScalar(Y)&&G.value===Y.value;return $.some((G)=>J(G.key,F))}nx.mapIncludes=ix});var KR=f((ex)=>{var QR=b8(),rx=k8(),_R=T9(),ax=b5(),UR=CY(),ox=MY(),AR="All mapping items must start at the same column";function tx({composeNode:D,composeEmptyNode:$},F,X,J,G){let B=new(G?.nodeClass??rx.YAMLMap)(F.schema);if(F.atRoot)F.atRoot=!1;let H=X.offset,W=null;for(let Q of X.items){let{start:_,key:U,sep:A,value:R}=Q,O=_R.resolveProps(_,{indicator:"explicit-key-ind",next:U??A?.[0],offset:H,onError:J,parentIndent:X.indent,startOnNewline:!0}),K=!O.found;if(K){if(U){if(U.type==="block-seq")J(H,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key");else if("indent"in U&&U.indent!==X.indent)J(H,"BAD_INDENT",AR)}if(!O.anchor&&!O.tag&&!A){if(W=O.end,O.comment)if(B.comment)B.comment+=`
185
+ `+O.comment;else B.comment=O.comment;continue}if(O.newlineAfterProp||ax.containsNewline(U))J(U??_[_.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else if(O.found?.indent!==X.indent)J(H,"BAD_INDENT",AR);F.atKey=!0;let E=O.end,q=U?D(F,U,O,J):$(F,E,_,null,O,J);if(F.schema.compat)UR.flowIndentCheck(X.indent,U,J);if(F.atKey=!1,ox.mapIncludes(F,B.items,q))J(E,"DUPLICATE_KEY","Map keys must be unique");let N=_R.resolveProps(A??[],{indicator:"map-value-ind",next:R,offset:q.range[2],onError:J,parentIndent:X.indent,startOnNewline:!U||U.type==="block-scalar"});if(H=N.end,N.found){if(K){if(R?.type==="block-map"&&!N.hasNewline)J(H,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings");if(F.options.strict&&O.start<N.found.offset-1024)J(q.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key")}let S=R?D(F,R,N,J):$(F,H,A,null,N,J);if(F.schema.compat)UR.flowIndentCheck(X.indent,R,J);H=S.range[2];let b=new QR.Pair(q,S);if(F.options.keepSourceTokens)b.srcToken=Q;B.items.push(b)}else{if(K)J(q.range,"MISSING_CHAR","Implicit map keys need to be followed by map values");if(N.comment)if(q.comment)q.comment+=`
186
+ `+N.comment;else q.comment=N.comment;let S=new QR.Pair(q);if(F.options.keepSourceTokens)S.srcToken=Q;B.items.push(S)}}if(W&&W<H)J(W,"IMPOSSIBLE","Map comment with trailing content");return B.range=[X.offset,H,W??H],B}ex.resolveBlockMap=tx});var OR=f((Yg)=>{var $g=v8(),Fg=T9(),Xg=CY();function Jg({composeNode:D,composeEmptyNode:$},F,X,J,G){let B=new(G?.nodeClass??$g.YAMLSeq)(F.schema);if(F.atRoot)F.atRoot=!1;if(F.atKey)F.atKey=!1;let H=X.offset,W=null;for(let{start:Q,value:_}of X.items){let U=Fg.resolveProps(Q,{indicator:"seq-item-ind",next:_,offset:H,onError:J,parentIndent:X.indent,startOnNewline:!0});if(!U.found)if(U.anchor||U.tag||_)if(_?.type==="block-seq")J(U.end,"BAD_INDENT","All sequence items must start at the same column");else J(H,"MISSING_CHAR","Sequence item without - indicator");else{if(W=U.end,U.comment)B.comment=U.comment;continue}let A=_?D(F,_,U,J):$(F,U.end,Q,null,U,J);if(F.schema.compat)Xg.flowIndentCheck(X.indent,_,J);H=A.range[2],B.items.push(A)}return B.range=[X.offset,H,W??H],B}Yg.resolveBlockSeq=Jg});var g6=f((Hg)=>{function Bg(D,$,F,X){let J="";if(D){let G=!1,Y="";for(let B of D){let{source:H,type:W}=B;switch(W){case"space":G=!0;break;case"comment":{if(F&&!G)X(B,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let Q=H.substring(1)||" ";if(!J)J=Q;else J+=Y+Q;Y="";break}case"newline":if(J)Y+=H;G=!0;break;default:X(B,"UNEXPECTED_TOKEN",`Unexpected ${W} at node end`)}$+=H.length}}return{comment:J,offset:$}}Hg.resolveEnd=Bg});var CR=f((Rg)=>{var Vg=UD(),Qg=b8(),RR=k8(),_g=v8(),Ug=g6(),ER=T9(),Ag=b5(),Kg=MY(),ZY="Block collections are not allowed within flow collections",qY=(D)=>D&&(D.type==="block-map"||D.type==="block-seq");function Og({composeNode:D,composeEmptyNode:$},F,X,J,G){let Y=X.start.source==="{",B=Y?"flow map":"flow sequence",W=new(G?.nodeClass??(Y?RR.YAMLMap:_g.YAMLSeq))(F.schema);W.flow=!0;let Q=F.atRoot;if(Q)F.atRoot=!1;if(F.atKey)F.atKey=!1;let _=X.offset+X.start.source.length;for(let K=0;K<X.items.length;++K){let E=X.items[K],{start:q,key:N,sep:S,value:b}=E,L=ER.resolveProps(q,{flow:B,indicator:"explicit-key-ind",next:N??S?.[0],offset:_,onError:J,parentIndent:X.indent,startOnNewline:!1});if(!L.found){if(!L.anchor&&!L.tag&&!S&&!b){if(K===0&&L.comma)J(L.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${B}`);else if(K<X.items.length-1)J(L.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${B}`);if(L.comment)if(W.comment)W.comment+=`
187
+ `+L.comment;else W.comment=L.comment;_=L.end;continue}if(!Y&&F.options.strict&&Ag.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 z="";D:for(let j of q)switch(j.type){case"comma":case"space":break;case"comment":z=j.source.substring(1);break D;default:break D}if(z){let j=W.items[W.items.length-1];if(Vg.isPair(j))j=j.value??j.key;if(j.comment)j.comment+=`
188
+ `+z;else j.comment=z;L.comment=L.comment.substring(z.length+1)}}}if(!Y&&!S&&!L.found){let z=b?D(F,b,L,J):$(F,L.end,S,null,L,J);if(W.items.push(z),_=z.range[2],qY(b))J(z.range,"BLOCK_IN_FLOW",ZY)}else{F.atKey=!0;let z=L.end,j=N?D(F,N,L,J):$(F,z,q,null,L,J);if(qY(N))J(j.range,"BLOCK_IN_FLOW",ZY);F.atKey=!1;let d=ER.resolveProps(S??[],{flow:B,indicator:"map-value-ind",next:b,offset:j.range[2],onError:J,parentIndent:X.indent,startOnNewline:!1});if(d.found){if(!Y&&!L.found&&F.options.strict){if(S)for(let $D of S){if($D===d.found)break;if($D.type==="newline"){J($D,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}if(L.start<d.found.offset-1024)J(d.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else if(b)if("source"in b&&b.source?.[0]===":")J(b,"MISSING_CHAR",`Missing space after : in ${B}`);else J(d.start,"MISSING_CHAR",`Missing , or : between ${B} items`);let VD=b?D(F,b,d,J):d.found?$(F,d.end,S,null,d,J):null;if(VD){if(qY(b))J(VD.range,"BLOCK_IN_FLOW",ZY)}else if(d.comment)if(j.comment)j.comment+=`
189
+ `+d.comment;else j.comment=d.comment;let QD=new Qg.Pair(j,VD);if(F.options.keepSourceTokens)QD.srcToken=E;if(Y){let $D=W;if(Kg.mapIncludes(F,$D.items,j))J(z,"DUPLICATE_KEY","Map keys must be unique");$D.items.push(QD)}else{let $D=new RR.YAMLMap(F.schema);$D.flow=!0,$D.items.push(QD);let rD=(VD??j).range;$D.range=[j.range[0],rD[1],rD[2]],W.items.push($D)}_=VD?VD.range[2]:d.end}}let U=Y?"}":"]",[A,...R]=X.end,O=_;if(A?.source===U)O=A.offset+A.source.length;else{let K=B[0].toUpperCase()+B.substring(1),E=Q?`${K} must end with a ${U}`:`${K} in block collection must be sufficiently indented and end with a ${U}`;if(J(_,Q?"MISSING_CHAR":"BAD_INDENT",E),A&&A.source.length!==1)R.unshift(A)}if(R.length>0){let K=Ug.resolveEnd(R,O,F.options.strict,J);if(K.comment)if(W.comment)W.comment+=`
190
+ `+K.comment;else W.comment=K.comment;W.range=[X.offset,O,K.offset]}else W.range=[X.offset,O,O];return W}Rg.resolveFlowCollection=Og});var MR=f((zg)=>{var Cg=UD(),Mg=lD(),Zg=k8(),qg=v8(),Ng=KR(),Pg=OR(),Lg=CR();function NY(D,$,F,X,J,G){let Y=F.type==="block-map"?Ng.resolveBlockMap(D,$,F,X,G):F.type==="block-seq"?Pg.resolveBlockSeq(D,$,F,X,G):Lg.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 jg(D,$,F,X,J){let G=X.tag,Y=!G?null:$.directives.tagName(G.source,(U)=>J(G,"TAG_RESOLVE_FAILED",U));if(F.type==="block-seq"){let{anchor:U,newlineAfterProp:A}=X,R=U&&G?U.offset>G.offset?U:G:U??G;if(R&&(!A||A.offset<R.offset))J(R,"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===Zg.YAMLMap.tagName&&B==="map"||Y===qg.YAMLSeq.tagName&&B==="seq")return NY(D,$,F,J,Y);let H=$.schema.tags.find((U)=>U.tag===Y&&U.collection===B);if(!H){let U=$.schema.knownTags[Y];if(U?.collection===B)$.schema.tags.push(Object.assign({},U,{default:!1})),H=U;else{if(U)J(G,"BAD_COLLECTION_TYPE",`${U.tag} used for ${B} collection, but expects ${U.collection??"scalar"}`,!0);else J(G,"TAG_RESOLVE_FAILED",`Unresolved tag: ${Y}`,!0);return NY(D,$,F,J,Y)}}let W=NY(D,$,F,J,Y,H),Q=H.resolve?.(W,(U)=>J(G,"TAG_RESOLVE_FAILED",U),$.options)??W,_=Cg.isNode(Q)?Q:new Mg.Scalar(Q);if(_.range=W.range,_.tag=Y,H?.format)_.format=H.format;return _}zg.composeCollection=jg});var LY=f((bg)=>{var PY=lD();function Tg(D,$,F){let X=$.offset,J=wg($,D.options.strict,F);if(!J)return{value:"",type:null,comment:"",range:[X,X,X]};let G=J.mode===">"?PY.Scalar.BLOCK_FOLDED:PY.Scalar.BLOCK_LITERAL,Y=$.source?Sg($.source):[],B=Y.length;for(let O=Y.length-1;O>=0;--O){let K=Y[O][1];if(K===""||K==="\r")B=O;else break}if(B===0){let O=J.chomp==="+"&&Y.length>0?`
191
191
  `.repeat(Math.max(1,Y.length-1)):"",K=X+J.length;if($.source)K+=$.source.length;return{value:O,type:G,comment:J.comment,range:[X,K,K]}}let H=$.indent+J.indent,W=$.offset+J.length,Q=0;for(let O=0;O<B;++O){let[K,E]=Y[O];if(E===""||E==="\r"){if(J.indent===0&&K.length>H)H=K.length}else{if(K.length<H)F(W+K.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator");if(J.indent===0)H=K.length;if(Q=O,H===0&&!D.atRoot)F(W,"BAD_INDENT","Block scalar values in collections must be indented");break}W+=K.length+E.length+1}for(let O=Y.length-1;O>=B;--O)if(Y[O][0].length>H)B=O+1;let _="",U="",A=!1;for(let O=0;O<Q;++O)_+=Y[O][0].slice(H)+`
192
192
  `;for(let O=Q;O<B;++O){let[K,E]=Y[O];W+=K.length+E.length+1;let q=E[E.length-1]==="\r";if(q)E=E.slice(0,-1);if(E&&K.length<H){let S=`Block scalar lines must not be less indented than their ${J.indent?"explicit indentation indicator":"first line"}`;F(W-E.length-(q?2:1),"BAD_INDENT",S),K=""}if(G===PY.Scalar.BLOCK_LITERAL)_+=U+K.slice(H)+E,U=`
193
193
  `;else if(K.length>H||E[0]==="\t"){if(U===" ")U=`
@@ -202,7 +202,7 @@ ${W}
202
202
  `+Y[O][0].slice(H);if(_[_.length-1]!==`
203
203
  `)_+=`
204
204
  `;break;default:_+=`
205
- `}let R=X+J.length+$.source.length;return{value:_,type:G,comment:J.comment,range:[X,R,R]}}function wg({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 U=1;U<J.length;++U){let A=J[U];if(!B&&(A==="-"||A==="+"))B=A;else{let R=Number(A);if(!Y&&R)Y=R;else if(H===-1)H=D+U}}if(H!==-1)X(H,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${J}`);let W=!1,Q="",_=J.length;for(let U=1;U<$.length;++U){let A=$[U];switch(A.type){case"space":W=!0;case"newline":_+=A.source.length;break;case"comment":if(F&&!W)X(A,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");_+=A.source.length,Q=A.source.substring(1);break;case"error":X(A,"UNEXPECTED_TOKEN",A.message),_+=A.source.length;break;default:{let R=`Unexpected token in block scalar header: ${A.type}`;X(A,"UNEXPECTED_TOKEN",R);let O=A.source;if(O&&typeof O==="string")_+=O.length}}}return{mode:G,indent:Y,chomp:B,comment:Q,length:_}}function Sg(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}bg.resolveBlockScalar=Tg});var zY=f((pg)=>{var jY=lD(),kg=g6();function vg(D,$,F){let{offset:X,type:J,source:G,end:Y}=D,B,H,W=(U,A,R)=>F(X+U,A,R);switch(J){case"scalar":B=jY.Scalar.PLAIN,H=hg(G,W);break;case"single-quoted-scalar":B=jY.Scalar.QUOTE_SINGLE,H=xg(G,W);break;case"double-quoted-scalar":B=jY.Scalar.QUOTE_DOUBLE,H=gg(G,W);break;default:return F(D,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${J}`),{value:"",type:null,comment:"",range:[X,X+G.length,X+G.length]}}let Q=X+G.length,_=kg.resolveEnd(Y,Q,$,F);return{value:H,type:B,comment:_.comment,range:[X,Q,_.offset]}}function hg(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 MR(D)}function xg(D,$){if(D[D.length-1]!=="'"||D.length===1)$(D.length,"MISSING_CHAR","Missing closing 'quote");return MR(D.slice(1,-1)).replace(/''/g,"'")}function MR(D){let $,F;try{$=new RegExp(`(.*?)(?<![ ])[ ]*\r?
205
+ `}let R=X+J.length+$.source.length;return{value:_,type:G,comment:J.comment,range:[X,R,R]}}function wg({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 U=1;U<J.length;++U){let A=J[U];if(!B&&(A==="-"||A==="+"))B=A;else{let R=Number(A);if(!Y&&R)Y=R;else if(H===-1)H=D+U}}if(H!==-1)X(H,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${J}`);let W=!1,Q="",_=J.length;for(let U=1;U<$.length;++U){let A=$[U];switch(A.type){case"space":W=!0;case"newline":_+=A.source.length;break;case"comment":if(F&&!W)X(A,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");_+=A.source.length,Q=A.source.substring(1);break;case"error":X(A,"UNEXPECTED_TOKEN",A.message),_+=A.source.length;break;default:{let R=`Unexpected token in block scalar header: ${A.type}`;X(A,"UNEXPECTED_TOKEN",R);let O=A.source;if(O&&typeof O==="string")_+=O.length}}}return{mode:G,indent:Y,chomp:B,comment:Q,length:_}}function Sg(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}bg.resolveBlockScalar=Tg});var zY=f((pg)=>{var jY=lD(),kg=g6();function vg(D,$,F){let{offset:X,type:J,source:G,end:Y}=D,B,H,W=(U,A,R)=>F(X+U,A,R);switch(J){case"scalar":B=jY.Scalar.PLAIN,H=hg(G,W);break;case"single-quoted-scalar":B=jY.Scalar.QUOTE_SINGLE,H=xg(G,W);break;case"double-quoted-scalar":B=jY.Scalar.QUOTE_DOUBLE,H=gg(G,W);break;default:return F(D,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${J}`),{value:"",type:null,comment:"",range:[X,X+G.length,X+G.length]}}let Q=X+G.length,_=kg.resolveEnd(Y,Q,$,F);return{value:H,type:B,comment:_.comment,range:[X,Q,_.offset]}}function hg(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 ZR(D)}function xg(D,$){if(D[D.length-1]!=="'"||D.length===1)$(D.length,"MISSING_CHAR","Missing closing 'quote");return ZR(D.slice(1,-1)).replace(/''/g,"'")}function ZR(D){let $,F;try{$=new RegExp(`(.*?)(?<![ ])[ ]*\r?
206
206
  `,"sy"),F=new RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
207
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
208
  `)J+=G;else G=`
@@ -217,26 +217,26 @@ ${W}
217
217
  `)break;if(X===`
218
218
  `)F+=`
219
219
  `;$+=1,X=D[$+1]}if(!F)F=" ";return{fold:F,offset:$}}var ug={"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 mg(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)}pg.resolveFlowScalar=vg});var qR=f((rg)=>{var M1=_D(),ZR=lD(),dg=LY(),lg=zY();function ig(D,$,F,X){let{value:J,type:G,comment:Y,range:B}=$.type==="block-scalar"?dg.resolveBlockScalar(D,$,X):lg.resolveFlowScalar($,D.options.strict,X),H=F?D.directives.tagName(F.source,(_)=>X(F,"TAG_RESOLVE_FAILED",_)):null,W;if(D.options.stringKeys&&D.atKey)W=D.schema[M1.SCALAR];else if(H)W=ng(D.schema,J,H,F,X);else if($.type==="scalar")W=sg(D,J,$,X);else W=D.schema[M1.SCALAR];let Q;try{let _=W.resolve(J,(U)=>X(F??$,"TAG_RESOLVE_FAILED",U),D.options);Q=M1.isScalar(_)?_:new ZR.Scalar(_)}catch(_){let U=_ instanceof Error?_.message:String(_);X(F??$,"TAG_RESOLVE_FAILED",U),Q=new ZR.Scalar(J)}if(Q.range=B,Q.source=J,G)Q.type=G;if(H)Q.tag=H;if(W.format)Q.format=W.format;if(Y)Q.comment=Y;return Q}function ng(D,$,F,X,J){if(F==="!")return D[M1.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[M1.SCALAR]}function sg({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[M1.SCALAR];if(F.compat){let B=F.compat.find((H)=>H.default&&H.test?.test(X))??F[M1.SCALAR];if(Y.tag!==B.tag){let H=$.tagString(Y.tag),W=$.tagString(B.tag),Q=`Value may be parsed as either ${H} or ${W}`;G(J,"TAG_RESOLVE_FAILED",Q,!0)}}return Y}rg.composeScalar=ig});var NR=f((tg)=>{function og(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}tg.emptyScalarPosition=og});var jR=f((By)=>{var Dy=_9(),$y=_D(),Fy=CR(),PR=qR(),Xy=g6(),Jy=NR(),Yy={composeNode:LR,composeEmptyNode:IY};function LR(D,$,F,X){let J=D.atKey,{spaceBefore:G,comment:Y,anchor:B,tag:H}=F,W,Q=!0;switch($.type){case"alias":if(W=Gy(D,$,X),B||H)X($,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":if(W=PR.composeScalar(D,$,H,X),B)W.anchor=B.source.substring(1);break;case"block-map":case"block-seq":case"flow-collection":try{if(W=Fy.composeCollection(Yy,D,$,F,X),B)W.anchor=B.source.substring(1)}catch(_){let U=_ instanceof Error?_.message:String(_);X($,"RESOURCE_EXHAUSTION",U)}break;default:{let _=$.type==="error"?$.message:`Unsupported token (type: ${$.type})`;X($,"UNEXPECTED_TOKEN",_),Q=!1}}if(W??(W=IY(D,$.offset,void 0,null,F,X)),B&&W.anchor==="")X(B,"BAD_ALIAS","Anchor cannot be an empty string");if(J&&D.options.stringKeys&&(!$y.isScalar(W)||typeof W.value!=="string"||W.tag&&W.tag!=="tag:yaml.org,2002:str"))X(H??$,"NON_STRING_KEY","With stringKeys, all keys must be strings");if(G)W.spaceBefore=!0;if(Y)if($.type==="scalar"&&$.source==="")W.comment=Y;else W.commentBefore=Y;if(D.options.keepSourceTokens&&Q)W.srcToken=$;return W}function IY(D,$,F,X,{spaceBefore:J,comment:G,anchor:Y,tag:B,end:H},W){let Q={type:"scalar",offset:Jy.emptyScalarPosition($,F,X),indent:-1,source:""},_=PR.composeScalar(D,Q,B,W);if(Y){if(_.anchor=Y.source.substring(1),_.anchor==="")W(Y,"BAD_ALIAS","Anchor cannot be an empty string")}if(J)_.spaceBefore=!0;if(G)_.comment=G,_.range[2]=H;return _}function Gy({options:D},{offset:$,source:F,end:X},J){let G=new Dy.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=Xy.resolveEnd(X,Y,D.strict,J);if(G.range=[$,Y,B.offset],B.comment)G.comment=B.comment;return G}By.composeEmptyNode=IY;By.composeNode=LR});var IR=f((Ay)=>{var Vy=z9(),zR=jR(),Qy=g6(),_y=T9();function Uy(D,$,{offset:F,start:X,value:J,end:G},Y){let B=Object.assign({_directives:$},D),H=new Vy.Document(void 0,B),W={atKey:!1,atRoot:!0,directives:H.directives,options:H.options,schema:H.schema},Q=_y.resolveProps(X,{indicator:"doc-start",next:J??G?.[0],offset:F,onError:Y,parentIndent:0,startOnNewline:!0});if(Q.found){if(H.directives.docStart=!0,J&&(J.type==="block-map"||J.type==="block-seq")&&!Q.hasNewline)Y(Q.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")}H.contents=J?zR.composeNode(W,J,Q,Y):zR.composeEmptyNode(W,Q.end,X,null,Q,Y);let _=H.contents.range[2],U=Qy.resolveEnd(G,_,!1,Y);if(U.comment)H.comment=U.comment;return H.range=[F,_,U.offset],H}Ay.composeDoc=Uy});var TY=f((Zy)=>{var Oy=J8("process"),Ry=fJ(),Ey=z9(),w9=I9(),TR=_D(),Cy=IR(),My=g6();function S9(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 wR(D){let $="",F=!1,X=!1;for(let J=0;J<D.length;++J){let G=D[J];switch(G[0]){case"#":$+=($===""?"":X?`
220
+ `,r:"\r",t:"\t",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\","\t":"\t"};function mg(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)}pg.resolveFlowScalar=vg});var NR=f((rg)=>{var M1=UD(),qR=lD(),dg=LY(),lg=zY();function ig(D,$,F,X){let{value:J,type:G,comment:Y,range:B}=$.type==="block-scalar"?dg.resolveBlockScalar(D,$,X):lg.resolveFlowScalar($,D.options.strict,X),H=F?D.directives.tagName(F.source,(_)=>X(F,"TAG_RESOLVE_FAILED",_)):null,W;if(D.options.stringKeys&&D.atKey)W=D.schema[M1.SCALAR];else if(H)W=ng(D.schema,J,H,F,X);else if($.type==="scalar")W=sg(D,J,$,X);else W=D.schema[M1.SCALAR];let Q;try{let _=W.resolve(J,(U)=>X(F??$,"TAG_RESOLVE_FAILED",U),D.options);Q=M1.isScalar(_)?_:new qR.Scalar(_)}catch(_){let U=_ instanceof Error?_.message:String(_);X(F??$,"TAG_RESOLVE_FAILED",U),Q=new qR.Scalar(J)}if(Q.range=B,Q.source=J,G)Q.type=G;if(H)Q.tag=H;if(W.format)Q.format=W.format;if(Y)Q.comment=Y;return Q}function ng(D,$,F,X,J){if(F==="!")return D[M1.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[M1.SCALAR]}function sg({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[M1.SCALAR];if(F.compat){let B=F.compat.find((H)=>H.default&&H.test?.test(X))??F[M1.SCALAR];if(Y.tag!==B.tag){let H=$.tagString(Y.tag),W=$.tagString(B.tag),Q=`Value may be parsed as either ${H} or ${W}`;G(J,"TAG_RESOLVE_FAILED",Q,!0)}}return Y}rg.composeScalar=ig});var PR=f((tg)=>{function og(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}tg.emptyScalarPosition=og});var zR=f((By)=>{var Dy=_9(),$y=UD(),Fy=MR(),LR=NR(),Xy=g6(),Jy=PR(),Yy={composeNode:jR,composeEmptyNode:IY};function jR(D,$,F,X){let J=D.atKey,{spaceBefore:G,comment:Y,anchor:B,tag:H}=F,W,Q=!0;switch($.type){case"alias":if(W=Gy(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=LR.composeScalar(D,$,H,X),B)W.anchor=B.source.substring(1);break;case"block-map":case"block-seq":case"flow-collection":try{if(W=Fy.composeCollection(Yy,D,$,F,X),B)W.anchor=B.source.substring(1)}catch(_){let U=_ instanceof Error?_.message:String(_);X($,"RESOURCE_EXHAUSTION",U)}break;default:{let _=$.type==="error"?$.message:`Unsupported token (type: ${$.type})`;X($,"UNEXPECTED_TOKEN",_),Q=!1}}if(W??(W=IY(D,$.offset,void 0,null,F,X)),B&&W.anchor==="")X(B,"BAD_ALIAS","Anchor cannot be an empty string");if(J&&D.options.stringKeys&&(!$y.isScalar(W)||typeof W.value!=="string"||W.tag&&W.tag!=="tag:yaml.org,2002:str"))X(H??$,"NON_STRING_KEY","With stringKeys, all keys must be strings");if(G)W.spaceBefore=!0;if(Y)if($.type==="scalar"&&$.source==="")W.comment=Y;else W.commentBefore=Y;if(D.options.keepSourceTokens&&Q)W.srcToken=$;return W}function IY(D,$,F,X,{spaceBefore:J,comment:G,anchor:Y,tag:B,end:H},W){let Q={type:"scalar",offset:Jy.emptyScalarPosition($,F,X),indent:-1,source:""},_=LR.composeScalar(D,Q,B,W);if(Y){if(_.anchor=Y.source.substring(1),_.anchor==="")W(Y,"BAD_ALIAS","Anchor cannot be an empty string")}if(J)_.spaceBefore=!0;if(G)_.comment=G,_.range[2]=H;return _}function Gy({options:D},{offset:$,source:F,end:X},J){let G=new Dy.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=Xy.resolveEnd(X,Y,D.strict,J);if(G.range=[$,Y,B.offset],B.comment)G.comment=B.comment;return G}By.composeEmptyNode=IY;By.composeNode=jR});var TR=f((Ay)=>{var Vy=z9(),IR=zR(),Qy=g6(),_y=T9();function Uy(D,$,{offset:F,start:X,value:J,end:G},Y){let B=Object.assign({_directives:$},D),H=new Vy.Document(void 0,B),W={atKey:!1,atRoot:!0,directives:H.directives,options:H.options,schema:H.schema},Q=_y.resolveProps(X,{indicator:"doc-start",next:J??G?.[0],offset:F,onError:Y,parentIndent:0,startOnNewline:!0});if(Q.found){if(H.directives.docStart=!0,J&&(J.type==="block-map"||J.type==="block-seq")&&!Q.hasNewline)Y(Q.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")}H.contents=J?IR.composeNode(W,J,Q,Y):IR.composeEmptyNode(W,Q.end,X,null,Q,Y);let _=H.contents.range[2],U=Qy.resolveEnd(G,_,!1,Y);if(U.comment)H.comment=U.comment;return H.range=[F,_,U.offset],H}Ay.composeDoc=Uy});var TY=f((Zy)=>{var Oy=J8("process"),Ry=fJ(),Ey=z9(),w9=I9(),wR=UD(),Cy=TR(),My=g6();function S9(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 SR(D){let $="",F=!1,X=!1;for(let J=0;J<D.length;++J){let G=D[J];switch(G[0]){case"#":$+=($===""?"":X?`
221
221
 
222
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 SR{constructor(D={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=($,F,X,J)=>{let G=S9($);if(J)this.warnings.push(new w9.YAMLWarning(G,F,X));else this.errors.push(new w9.YAMLParseError(G,F,X))},this.directives=new Ry.Directives({version:D.version||"1.2"}),this.options=D}decorate(D,$){let{comment:F,afterEmptyLine:X}=wR(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(TR.isCollection(J)&&!J.flow&&J.items.length>0){let G=J.items[0];if(TR.isPair(G))G=G.key;let Y=G.commentBefore;G.commentBefore=Y?`${F}
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=S9($);if(J)this.warnings.push(new w9.YAMLWarning(G,F,X));else this.errors.push(new w9.YAMLParseError(G,F,X))},this.directives=new Ry.Directives({version:D.version||"1.2"}),this.options=D}decorate(D,$){let{comment:F,afterEmptyLine:X}=SR(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(wR.isCollection(J)&&!J.flow&&J.items.length>0){let G=J.items[0];if(wR.isPair(G))G=G.key;let Y=G.commentBefore;G.commentBefore=Y?`${F}
225
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:wR(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(Oy.env.LOG_STREAM)console.dir(D,{depth:null});switch(D.type){case"directive":this.directives.add(D.source,($,F,X)=>{let J=S9(D);J[0]+=$,this.onError(J,"BAD_DIRECTIVE",F,X)}),this.prelude.push(D.source),this.atDirectives=!0;break;case"document":{let $=Cy.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 w9.YAMLParseError(S9(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 w9.YAMLParseError(S9(D),"UNEXPECTED_TOKEN","Unexpected doc-end without preceding document"));break}this.doc.directives.docEnd=!0;let $=My.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 w9.YAMLParseError(S9(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 Ey.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}}}Zy.Composer=SR});var kR=f((wy)=>{var Ny=LY(),Py=zY(),Ly=I9(),bR=O9();function jy(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 Ly.YAMLParseError([B,B+1],G,Y)};switch(D.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return Py.resolveFlowScalar(D,$,X);case"block-scalar":return Ny.resolveBlockScalar({options:{strict:$}},D,X)}}return null}function zy(D,$){let{implicitKey:F=!1,indent:X,inFlow:J=!1,offset:G=-1,type:Y="PLAIN"}=$,B=bR.stringifyString({type:Y,value:D},{implicitKey:F,indent:X>0?" ".repeat(X):"",inFlow:J,options:{blockQuote:!0,lineWidth:-1}}),H=$.end??[{type:"newline",offset:-1,indent:X,source:`
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:SR(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(Oy.env.LOG_STREAM)console.dir(D,{depth:null});switch(D.type){case"directive":this.directives.add(D.source,($,F,X)=>{let J=S9(D);J[0]+=$,this.onError(J,"BAD_DIRECTIVE",F,X)}),this.prelude.push(D.source),this.atDirectives=!0;break;case"document":{let $=Cy.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 w9.YAMLParseError(S9(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 w9.YAMLParseError(S9(D),"UNEXPECTED_TOKEN","Unexpected doc-end without preceding document"));break}this.doc.directives.docEnd=!0;let $=My.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 w9.YAMLParseError(S9(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 Ey.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}}}Zy.Composer=bR});var vR=f((wy)=>{var Ny=LY(),Py=zY(),Ly=I9(),fR=O9();function jy(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 Ly.YAMLParseError([B,B+1],G,Y)};switch(D.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return Py.resolveFlowScalar(D,$,X);case"block-scalar":return Ny.resolveBlockScalar({options:{strict:$}},D,X)}}return null}function zy(D,$){let{implicitKey:F=!1,indent:X,inFlow:J=!1,offset:G=-1,type:Y="PLAIN"}=$,B=fR.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
228
  `}];switch(B[0]){case"|":case">":{let W=B.indexOf(`
229
229
  `),Q=B.substring(0,W),_=B.substring(W+1)+`
230
- `,U=[{type:"block-scalar-header",offset:G,indent:X,source:Q}];if(!fR(U,H))U.push({type:"newline",offset:-1,indent:X,source:`
231
- `});return{type:"block-scalar",offset:G,indent:X,props:U,source:_}}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 Iy(D,$,F={}){let{afterKey:X=!1,implicitKey:J=!1,inFlow:G=!1,type:Y}=F,B="indent"in D?D.indent:null;if(X&&typeof B==="number")B+=2;if(!Y)switch(D.type){case"single-quoted-scalar":Y="QUOTE_SINGLE";break;case"double-quoted-scalar":Y="QUOTE_DOUBLE";break;case"block-scalar":{let W=D.props[0];if(W.type!=="block-scalar-header")throw Error("Invalid block scalar header");Y=W.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:Y="PLAIN"}let H=bR.stringifyString({type:Y,value:$},{implicitKey:J||B===null,indent:B!==null&&B>0?" ".repeat(B):"",inFlow:G,options:{blockQuote:!0,lineWidth:-1}});switch(H[0]){case"|":case">":Ty(D,H);break;case'"':wY(D,H,"double-quoted-scalar");break;case"'":wY(D,H,"single-quoted-scalar");break;default:wY(D,H,"scalar")}}function Ty(D,$){let F=$.indexOf(`
230
+ `,U=[{type:"block-scalar-header",offset:G,indent:X,source:Q}];if(!kR(U,H))U.push({type:"newline",offset:-1,indent:X,source:`
231
+ `});return{type:"block-scalar",offset:G,indent:X,props:U,source:_}}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 Iy(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=fR.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">":Ty(D,H);break;case'"':wY(D,H,"double-quoted-scalar");break;case"'":wY(D,H,"single-quoted-scalar");break;default:wY(D,H,"scalar")}}function Ty(D,$){let F=$.indexOf(`
232
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(!fR(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 fR(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 wY(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})}}}wy.createScalarToken=zy;wy.resolveAsScalar=jy;wy.setScalarValue=Iy});var vR=f((vy)=>{var ky=(D)=>("type"in D)?k5(D):f5(D);function k5(D){switch(D.type){case"block-scalar":{let $="";for(let F of D.props)$+=k5(F);return $+D.source}case"block-map":case"block-seq":{let $="";for(let F of D.items)$+=f5(F);return $}case"flow-collection":{let $=D.start.source;for(let F of D.items)$+=f5(F);for(let F of D.end)$+=F.source;return $}case"document":{let $=f5(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 f5({start:D,key:$,sep:F,value:X}){let J="";for(let G of D)J+=G.source;if($)J+=k5($);if(F)for(let G of F)J+=G.source;if(X)J+=k5(X);return J}vy.stringify=ky});var gR=f((gy)=>{var SY=Symbol("break visit"),xy=Symbol("skip children"),hR=Symbol("remove item");function Z1(D,$){if("type"in D&&D.type==="document")D={start:D.start,value:D.value};xR(Object.freeze([]),D,$)}Z1.BREAK=SY;Z1.SKIP=xy;Z1.REMOVE=hR;Z1.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};Z1.parentCollection=(D,$)=>{let F=Z1.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 xR(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=xR(Object.freeze(D.concat([[J,Y]])),G.items[Y],F);if(typeof B==="number")Y=B-1;else if(B===SY)return SY;else if(B===hR)G.items.splice(Y,1),Y-=1}if(typeof X==="function"&&J==="key")X=X($,D)}}return typeof X==="function"?X($,D):X}gy.visit=Z1});var v5=f((iy)=>{var bY=kR(),uy=vR(),my=gR(),fY="\uFEFF",kY="\x02",vY="\x18",hY="\x1F",py=(D)=>!!D&&("items"in D),cy=(D)=>!!D&&(D.type==="scalar"||D.type==="single-quoted-scalar"||D.type==="double-quoted-scalar"||D.type==="block-scalar");function dy(D){switch(D){case fY:return"<BOM>";case kY:return"<DOC>";case vY:return"<FLOW_END>";case hY:return"<SCALAR>";default:return JSON.stringify(D)}}function ly(D){switch(D){case fY:return"byte-order-mark";case kY:return"doc-mode";case vY:return"flow-error-end";case hY:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
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(!kR(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 kR(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 wY(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})}}}wy.createScalarToken=zy;wy.resolveAsScalar=jy;wy.setScalarValue=Iy});var hR=f((vy)=>{var ky=(D)=>("type"in D)?k5(D):f5(D);function k5(D){switch(D.type){case"block-scalar":{let $="";for(let F of D.props)$+=k5(F);return $+D.source}case"block-map":case"block-seq":{let $="";for(let F of D.items)$+=f5(F);return $}case"flow-collection":{let $=D.start.source;for(let F of D.items)$+=f5(F);for(let F of D.end)$+=F.source;return $}case"document":{let $=f5(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 f5({start:D,key:$,sep:F,value:X}){let J="";for(let G of D)J+=G.source;if($)J+=k5($);if(F)for(let G of F)J+=G.source;if(X)J+=k5(X);return J}vy.stringify=ky});var yR=f((gy)=>{var SY=Symbol("break visit"),xy=Symbol("skip children"),xR=Symbol("remove item");function Z1(D,$){if("type"in D&&D.type==="document")D={start:D.start,value:D.value};gR(Object.freeze([]),D,$)}Z1.BREAK=SY;Z1.SKIP=xy;Z1.REMOVE=xR;Z1.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};Z1.parentCollection=(D,$)=>{let F=Z1.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 gR(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=gR(Object.freeze(D.concat([[J,Y]])),G.items[Y],F);if(typeof B==="number")Y=B-1;else if(B===SY)return SY;else if(B===xR)G.items.splice(Y,1),Y-=1}if(typeof X==="function"&&J==="key")X=X($,D)}}return typeof X==="function"?X($,D):X}gy.visit=Z1});var v5=f((iy)=>{var bY=vR(),uy=hR(),my=yR(),fY="\uFEFF",kY="\x02",vY="\x18",hY="\x1F",py=(D)=>!!D&&("items"in D),cy=(D)=>!!D&&(D.type==="scalar"||D.type==="single-quoted-scalar"||D.type==="double-quoted-scalar"||D.type==="block-scalar");function dy(D){switch(D){case fY:return"<BOM>";case kY:return"<DOC>";case vY:return"<FLOW_END>";case hY:return"<SCALAR>";default:return JSON.stringify(D)}}function ly(D){switch(D){case fY:return"byte-order-mark";case kY:return"doc-mode";case vY:return"flow-error-end";case hY:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
236
236
  `:case`\r
237
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}iy.createScalarToken=bY.createScalarToken;iy.resolveAsScalar=bY.resolveAsScalar;iy.setScalarValue=bY.setScalarValue;iy.stringify=uy.stringify;iy.visit=my.visit;iy.BOM=fY;iy.DOCUMENT=kY;iy.FLOW_END=vY;iy.SCALAR=hY;iy.isCollection=py;iy.isScalar=cy;iy.prettyToken=dy;iy.tokenType=ly});var gY=f((Hu)=>{var b9=v5();function Z2(D){switch(D){case void 0:case" ":case`
238
- `:case"\r":case"\t":return!0;default:return!1}}var yR=new Set("0123456789ABCDEFabcdef"),Gu=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),h5=new Set(",[]{}"),Bu=new Set(` ,[]{}
239
- \r `),xY=(D)=>!D||Bu.has(D);class uR{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(!$||$==="#"||$===`
238
+ `:case"\r":case"\t":return!0;default:return!1}}var uR=new Set("0123456789ABCDEFabcdef"),Gu=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),h5=new Set(",[]{}"),Bu=new Set(` ,[]{}
239
+ \r `),xY=(D)=>!D||Bu.has(D);class mR{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
240
  `)return!0;if($==="\r")return this.buffer[D+1]===`
241
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
242
  `||!X&&!this.atEnd)return D+F+1}return $===`
@@ -251,103 +251,103 @@ ${$.comment}`:$.comment}this.doc.range[2]=$.offset;break}default:this.errors.pus
251
251
  `&&J>=this.pos&&J+1+$>Y)D=J;else break}while(!0);return yield b9.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(Z2(J)||D&&h5.has(J))break;$=F}else if(Z2(X)){let J=this.buffer[F+1];if(X==="\r")if(J===`
252
252
  `)F+=1,X=`
253
253
  `,J=this.buffer[F+1];else $=F;if(J==="#"||D&&h5.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&&h5.has(X))break;$=F}if(!X&&!this.atEnd)return this.setNext("plain-scalar");return yield b9.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(xY))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let D=this.flowLevel>0,$=this.charAt(1);if(Z2($)||D&&h5.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(!Z2($)&&$!==">")$=this.buffer[++D];return yield*this.pushToIndex($===">"?D+1:D,!1)}else{let D=this.pos+1,$=this.buffer[D];while($)if(Gu.has($))$=this.buffer[++D];else if($==="%"&&yR.has(this.buffer[D+1])&&yR.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===`
254
+ `){let G=this.continueScalar(F+1);if(G===-1)break;F=Math.max(F,G-2)}}else{if(D&&h5.has(X))break;$=F}if(!X&&!this.atEnd)return this.setNext("plain-scalar");return yield b9.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(xY))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let D=this.flowLevel>0,$=this.charAt(1);if(Z2($)||D&&h5.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(!Z2($)&&$!==">")$=this.buffer[++D];return yield*this.pushToIndex($===">"?D+1:D,!1)}else{let D=this.pos+1,$=this.buffer[D];while($)if(Gu.has($))$=this.buffer[++D];else if($==="%"&&uR.has(this.buffer[D+1])&&uR.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
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)}}Hu.Lexer=uR});var yY=f((Vu)=>{class mR{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}}}}Vu.LineCounter=mR});var uY=f((Au)=>{var _u=J8("process"),pR=v5(),Uu=gY();function h8(D,$){for(let F=0;F<D.length;++F)if(D[F].type===$)return!0;return!1}function cR(D){for(let $=0;$<D.length;++$)switch(D[$].type){case"space":case"comment":case"newline":break;default:return $}return-1}function lR(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 x5(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 y6(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 dR(D){if(D.start.type==="flow-seq-start"){for(let $ of D.items)if($.sep&&!$.value&&!h8($.start,"explicit-key-ind")&&!h8($.sep,"map-value-ind")){if($.key)$.value=$.key;if(delete $.key,lR($.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 iR{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 Uu.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,_u.env.LOG_TOKENS)console.log("|",pR.prettyToken(D));if(this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=D.length;return}let $=pR.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")dR($);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&&cR(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(cR(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 $=x5(this.peek(2)),F=y6($),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(`
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)}}Hu.Lexer=mR});var yY=f((Vu)=>{class pR{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}}}}Vu.LineCounter=pR});var uY=f((Au)=>{var _u=J8("process"),cR=v5(),Uu=gY();function h8(D,$){for(let F=0;F<D.length;++F)if(D[F].type===$)return!0;return!1}function dR(D){for(let $=0;$<D.length;++$)switch(D[$].type){case"space":case"comment":case"newline":break;default:return $}return-1}function iR(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 x5(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 y6(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 lR(D){if(D.start.type==="flow-seq-start"){for(let $ of D.items)if($.sep&&!$.value&&!h8($.start,"explicit-key-ind")&&!h8($.sep,"map-value-ind")){if($.key)$.value=$.key;if(delete $.key,iR($.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 nR{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 Uu.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,_u.env.LOG_TOKENS)console.log("|",cR.prettyToken(D));if(this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=D.length;return}let $=cR.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")lR($);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&&dR(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(dR(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 $=x5(this.peek(2)),F=y6($),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
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(h8($.start,"newline"))Object.assign($,{key:null,sep:[this.sourceToken]});else{let G=y6($.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(h8($.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(lR($.key)&&!h8($.sep,"newline")){let G=y6($.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(h8($.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&&!h8($.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||h8($.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=x5(F),J=y6(X);dR(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(`
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(h8($.start,"newline"))Object.assign($,{key:null,sep:[this.sourceToken]});else{let G=y6($.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(h8($.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(iR($.key)&&!h8($.sep,"newline")){let G=y6($.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(h8($.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&&!h8($.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||h8($.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=x5(F),J=y6(X);lR(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
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 $=x5(D),F=y6($);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 $=x5(D),F=y6($);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()}}}Au.Parser=iR});var oR=f((Nu)=>{var nR=TY(),Ou=z9(),f9=I9(),Ru=yJ(),Eu=_D(),Cu=yY(),sR=uY();function rR(D){let $=D.prettyErrors!==!1;return{lineCounter:D.lineCounter||$&&new Cu.LineCounter||null,prettyErrors:$}}function Mu(D,$={}){let{lineCounter:F,prettyErrors:X}=rR($),J=new sR.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(f9.prettifyError(D,F)),B.warnings.forEach(f9.prettifyError(D,F));if(Y.length>0)return Y;return Object.assign([],{empty:!0},G.streamInfo())}function aR(D,$={}){let{lineCounter:F,prettyErrors:X}=rR($),J=new sR.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 f9.YAMLParseError(B.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}if(X&&F)Y.errors.forEach(f9.prettifyError(D,F)),Y.warnings.forEach(f9.prettifyError(D,F));return Y}function Zu(D,$,F){let X=void 0;if(typeof $==="function")X=$;else if(F===void 0&&$&&typeof $==="object")F=$;let J=aR(D,F);if(!J)return null;if(J.warnings.forEach((G)=>Ru.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 qu(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(Eu.isDocument(D)&&!X)return D.toString(F);return new Ou.Document(D,X,F).toString(F)}Nu.parse=Zu;Nu.parseAllDocuments=Mu;Nu.parseDocument=aR;Nu.stringify=qu});var Iu,Tu,wu,mY,Su,x8,bu,fu,ku,vu,T3D,hu,xu,gu,g5,tR,yu,uu,mu,pu,cu,du,lu,iu,nu,su,ru,au,ou,tu,eu,Dm,$m,Fm,Xm,Jm,Ym,Gm,y5,Bm,Hm,pY,Wm,Vm;var cY=Z(()=>{Iu=TY(),Tu=z9(),wu=UY(),mY=I9(),Su=_9(),x8=_D(),bu=b8(),fu=lD(),ku=k8(),vu=v8(),T3D=v5(),hu=gY(),xu=yY(),gu=uY(),g5=oR(),tR=V9();yu=Iu.Composer,uu=Tu.Document,mu=wu.Schema,pu=mY.YAMLError,cu=mY.YAMLParseError,du=mY.YAMLWarning,lu=Su.Alias,iu=x8.isAlias,nu=x8.isCollection,su=x8.isDocument,ru=x8.isMap,au=x8.isNode,ou=x8.isPair,tu=x8.isScalar,eu=x8.isSeq,Dm=bu.Pair,$m=fu.Scalar,Fm=ku.YAMLMap,Xm=vu.YAMLSeq,Jm=hu.Lexer,Ym=xu.LineCounter,Gm=gu.Parser,y5=g5.parse,Bm=g5.parseAllDocuments,Hm=g5.parseDocument,pY=g5.stringify,Wm=tR.visit,Vm=tR.visitAsync});var Qm,_m,Um,Am,Km,Om,DE,Rm,Em,eR,Cm,Mm,Zm,$E;var FE=Z(()=>{yD();Qm=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()})}),_m=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()})}),Um=V.discriminatedUnion("type",[Qm,_m]),Am=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(),Km=V.record(V.unknown()).and(V.object({cmd:Am.optional()}).partial()),Om=V.enum(["rate-limit","timeout","auth","network","server-5xx","unknown"]),DE=V.lazy(()=>V.object({engine:V.enum(["http","mcp","cli","claude-code","acp","codex","cursor"]),variant:V.string().min(1),overrides:Km.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:DE,onErrorKinds:V.array(Om).min(1),maxRetries:V.number().int().min(1).optional()})).optional()})),Rm=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()})]),Em=V.object({channel:V.enum(["web","line","telegram","lark","whatsapp"]),enabled:V.boolean(),credentials:Rm,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"]}),eR=V.enum(["auto","ask","deny"]),Cm=V.object({default:eR,rules:V.array(V.object({pattern:V.string().min(1),action:eR}))}),Mm=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()}),Zm=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:Mm.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"})}),$E=V.object({brains:V.array(Um),brainWriteTarget:V.string(),brainRetrieval:V.enum(["merge-by-priority","first-match"]),executor:DE,channels:V.array(Em),evolution:V.object({enabled:V.boolean(),observationRetentionDays:V.number().int().nonnegative()}),toolPolicy:Cm.optional(),orchestrator:Zm.optional()})});import{writeFile as qm}from"fs/promises";async function S0(D){let $=await D.select().from(O2).where(v(O2.pk,"default")).get();if(!$)throw Error("worker_config row missing \u2014 bootstrap did not run");return{config:$.configJson,version:$.version}}async function k9(D,$,F,X={}){let J=$E.safeParse(F);if(!J.success)throw new g2(J.error.issues);let G=await S0(D);if(X.ifMatchVersion!==void 0&&X.ifMatchVersion!==G.version)throw new y2(X.ifMatchVersion,G.version);let Y=J.data,B=new Set(t2(G.config).map((A)=>A.path)),H=t2(Y),W=new Set(H.map((A)=>A.path));for(let{path:A,value:R}of H)if(R.length>0)await $.put(A,R);for(let A of B)if(!W.has(A))await $.remove(A);let Q=z4(Y),_=G.version+1,U=new Date().toISOString();return await D.update(O2).set({configJson:Q,version:_,updatedAt:U,updatedBy:"api"}).where(v(O2.pk,"default")).run(),{config:Q,version:_}}async function v9(D,$,F){let X=_W(D),J=pY({version:F,config:$});try{await qm(X,J,{encoding:"utf8"})}catch(G){C.warn(`[mirror-config] failed to write ${X}: ${String(G)}`)}}async function u6(D){let $=await k9(D.db,D.vault,D.raw,D.ifMatchVersion===void 0?{}:{ifMatchVersion:D.ifMatchVersion});await v9(D.workerId,$.config,$.version);let F="ok";try{await D.reloadRuntime($.config,$.version)}catch(X){F="failed",C.error("[applyConfigUpdate] runtime reload failed",X)}return{...$,runtimeReload:F}}var g2,y2;var dY=Z(()=>{W2();TD();JD();_0();cY();FE();g2=class g2 extends Error{issues;constructor(D,$="invalid worker config"){super($);this.issues=D;this.name="InvalidConfigError"}};y2=class y2 extends Error{expected;actual;constructor(D,$){super(`config version ${D} does not match current version ${$}`);this.expected=D;this.actual=$;this.name="ConfigVersionConflictError"}}});function u5(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 m5($.jobId);return{job:F}}}}var m5;var lY=Z(()=>{m5=class m5 extends Error{jobId;constructor(D){super(`cron job ${D} \u4E0D\u5B58\u5728`);this.jobId=D;this.name="CronJobNotFoundError"}}});class iY{deps;constructor(D){this.deps=D}async handleRequest(D){let{id:$,method:F,params:X}=D;try{let J=K3(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 oD["chat.send"].method:await this.handleChatSend($,Y);break;case oD["config.get"].method:await this.handleConfigGet($);break;case oD["config.put"].method:await this.handleConfigPut($,Y);break;case oD["token.rotate"].method:await this.handleTokenRotate($);break;case oD["logs.tail"].method:await this.handleLogsTail($,Y);break;case oD["approval.list"].method:this.handleApprovalList($);break;case oD["approval.grant"].method:this.handleApprovalGrant($,Y);break;case oD["cron.list"].method:await this.handleCronList($,Y);break;case oD["cron.add"].method:await this.handleCronAdd($,Y);break;case oD["cron.remove"].method:await this.handleCronRemove($,Y);break;case oD["cron.update"].method:await this.handleCronUpdate($,Y);break;case oD["workers.info"].method:this.replyError($,"method_not_implemented",`${F} is not yet implemented on node side`);break;case oD["workers.stop"].method:this.replyError($,"method_not_implemented",`${F} is not yet implemented on node side`);break;default:this.replyError($,"method_not_implemented",`${F} not routed`)}}catch(J){C.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=Nm(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=Pm(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)=>{C.warn(`[gateway-dispatcher ${this.deps.workerId}] orchestrator.ingest failed: ${String(H)}`)}),this.replyOk(D,{conversationId:Y,accepted:!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 g2){this.replyError(D,"invalid_config",J.message,{issues:J.issues});return}if(J instanceof y2){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 m5){this.replyError(D,"not_found",F.message,{jobId:F.jobId});return}this.replyError(D,"invalid_cron",F instanceof Error?F.message:String(F))}}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}})}}function Nm(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 Pm(D,$){if($===void 0)return`gw:${D}:${crypto.randomUUID()}`;if($.startsWith("gw:"))return $;return`gw:conv:${$}`}var XE=Z(()=>{Y0();JD();dY();lY()});class nY{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=h9($);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=h9($),X=$.call??{},J=g8(X.id),G=g8(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=h9($);if(!F)return null;return{name:e.AGENT_DONE,payload:{conversationId:F,finishReason:"stop"}}}case"orchestrator.error":{let F=h9($);if(!F)return null;return{name:e.AGENT_DONE,payload:{conversationId:F,finishReason:"error"}}}case"conversation.message":{let F=h9($),X=g8($.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=g8($.taskId),X=g8($.toolCallId),J=g8($.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 g8(D){return typeof D==="string"&&D.length>0?D:null}function h9(D){return g8(D.gatewayConversationId)??g8(D.conversationId)}var JE=Z(()=>{Y0()});function p5(D){let $=dK(D),F=!1,X=null,J=new nY({workerId:$.workerId,getBus:()=>D.getRuntime().bus,sendEvent:(Y)=>X?.send(Y)}),G=new iY({workerId:$.workerId,getRuntime:D.getRuntime,...D.handlers?{handlers:D.handlers}:{},sendResponse:(Y)=>X?.send(Y)});return X=new wJ({options:$,onConnected:()=>{F=!0,J.start()},onDisconnected:(Y)=>{F=!1,J.stop(),C.info(`[gateway-client ${$.workerId}] disconnected: ${Y}`)},onFrame:(Y)=>{if(Y.type==="request"){G.handleRequest(Y);return}C.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 YE(D){await D.stop()}var GE=Z(()=>{JD();cK();XE();JE()});function Lm(D){if(D instanceof Error)return D.message;return String(D)}async function c5(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:Lm(X)}]}}}function zm(D){return jm.has(D)}function Im(D){if(D instanceof Error)return D.message;return String(D)}async function d5(D,$,F={}){if(!zm($))throw jD.notFound(`unknown channel '${$}'`);let X=D.runtime.channels.get($);if(!X)throw jD.notFound(`channel '${$}' is not bound or not enabled`);let J=H1($);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:Im(Y)}}}var jm;var BE=Z(()=>{J0();s3();jm=new Set(["web","line","telegram","lark","whatsapp"])});function Tm(D){if(D instanceof Error)return D.message;return String(D)}async function wm(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:Tm(J)}}finally{clearTimeout(X)}}async function l5(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 wm(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 bm(D){if(!D)return"unknown";return D.status}async function HE(D){try{let $=await D();return bm($??null)}catch{return"unknown"}}function fm(D){let $=km(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 km(D){try{return o2(D)}catch{return null}}function vm(D,$){if(!D)return;return`${D.replace(/\/+$/,"")}/${$}/webhook`}async function i5(D,$,F){let{runtime:X}=D,J=await HE(()=>X.executor.health()),G=await HE(()=>X.brain.health()),Y=$.brains.map((Q)=>({id:Q.id,type:Q.type,status:G})),B=fm($.executor),H={type:$.executor.engine,...B===void 0?{}:{model:B},status:J},W=$.channels.map((Q)=>{let _=vm(F.advertisedBaseUrl,Q.channel);return{channel:Q.channel,enabled:Q.enabled,..._?{webhookUrl:_}:{}}});return{workerId:D.workerId,runtimeVersion:Sm,configVersion:D.configVersion,brains:Y,executor:H,channels:W,evolutionEnabled:$.evolution.enabled,startedAt:D.startedAt,...F.advertisedBaseUrl?{advertisedBaseUrl:F.advertisedBaseUrl}:{}}}var Sm="0.2.0";var WE=Z(()=>{J1()});async function y8(D,$,F){let X=U6(),{ciphertext:J,nonce:G,authTag:Y}=$.encryptString(X),B=new Date().toISOString();return await D.update(g0).set({apiTokenEnc:J,nonce:G,authTag:Y,rotatedAt:B}).where(v(g0.pk,"default")).run(),F.tokenPlaintext=X,{newToken:X}}var VE=Z(()=>{TD();_0();uX()});async function n5(D){return D.list()}async function s5(D,$,F){if(!$||!$.trim())throw jD.badRequest("secret key is required");if(F.length===0)throw jD.badRequest("secret value must be a non-empty string");await D.put($,F)}async function r5(D,$){if(!$||!$.trim())throw jD.badRequest("secret key is required");if(await D.get($)===null)throw jD.notFound(`secret '${$}' not found`);await D.remove($)}var QE=Z(()=>{J0()});class q1{pending=new Map;disposed=!1;wait(D){if(this.disposed)return Promise.reject(new _E);let $=D.timeoutMs??sY,F=Date.now()+$,X=q1.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=q1.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 _E,sY=60000;var a5=Z(()=>{_E=class _E extends Error{name="ApprovalDisposedError";constructor(){super("approval store disposed")}}});class AE{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 o5(){return Date.now()}function N1(){return new Date().toISOString()}function rY(D){if(D===null||typeof D!=="object"||!("unref"in D))return;try{D.unref()}catch{}}class P1{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:N1(),lastActivityAt:N1(),cancel:async()=>this.cancelHandle(X)};this.handles.set(X,J);let G={handle:J,req:D,enqueuedAt:o5(),enqueueSeq:++this.enqueueSeq,resolve:$,reject:F,cancelledBeforeStart:!1},Y=this.groups.get(D.group);if(!Y)Y=new AE,this.groups.set(D.group,Y);if(Y.enqueue(G),D.signal)if(D.signal.aborted)this.cancelHandle(X).catch(()=>{return});else{let B=()=>{D.signal?.removeEventListener("abort",B),this.cancelHandle(X).catch(()=>{return})};D.signal.addEventListener("abort",B,{once:!0})}this.kick()})}async cancelGroup(D){let $=this.groups.get(D);if($)for(let X of $.drain())this.markCancelledBeforeStart(X);let F=[];for(let[,X]of this.running.entries())if(X.handle.group===D)F.push(this.cancelRunning(X));await Promise.allSettled(F),this.kick()}async cancelAll(){for(let $ of this.groups.values())for(let F of $.drain())this.markCancelledBeforeStart(F);let D=[];for(let $ of this.running.values())D.push(this.cancelRunning($));await Promise.allSettled(D),this.kick()}snapshot(){let D={queued:0,spawning:0,running:0,completed:0,failed:0,cancelled:0};for(let Y of this.handles.values())D[Y.state]+=1;let $=new Map,F=0;for(let Y of this.groups.values())for(let B of Y.values())F+=1,$.set(B.handle.engine,($.get(B.handle.engine)??0)+1);let X=new Set([...Object.keys(this.opts.perEngineLimits),...this.runningByEngine.keys(),...$.keys()]),J={};for(let Y of X){let B=this.opts.perEngineLimits[Y]??this.opts.maxConcurrentTotal,H=this.runningByEngine.get(Y)??0,W=$.get(Y)??0,Q=Math.max(0,B-H),_=Math.max(0,this.opts.maxConcurrentTotal-this.totalActive());J[Y]={limit:B,active:H,queued:W,available:Math.min(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),rY(this.gcTimer)}gcTerminal(){let D=o5()-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=N1(),this.terminalLog.push({handle:D.handle,recordedAt:o5()}),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($){C.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),rY(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(($)=>C.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=hm[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=N1(),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=N1(),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=N1(),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:o5()}),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),rY(D.stallTimer)}onActivity(D){if(UE.has(D.handle.state))return;D.handle.lastActivityAt=N1(),this.armStallTimer(D)}onStall(D){if(UE.has(D.handle.state))return;if(D.cancelRequested)return;C.warn(`[process-manager] stall detected for ${D.handle.id} (engine=${D.handle.engine}, group=${D.handle.group})`),this.cancelRunning(D)}}var UE,hm;var KE=Z(()=>{JD();UE=new Set(["completed","failed","cancelled"]),hm={interactive:3,default:2,background:1}});class m6{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??xm}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 C.warn(`[mcp] tool '${D}' text is not JSON, returning raw string`),X.text}}}var xm=30000;var OE=Z(()=>{JD()});var aY=Z(()=>{OE()});function RE(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 oY(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:RE(D.tags)},createdAt:$,updatedAt:F};if(typeof G==="number")B.score=G;return B}function gm(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 tY{name="cloud-gateway";client;defaultCategory;defaultTypeId;constructor(D){this.client=new m6({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(gm)}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(oY)}async searchMemories(D){let $=await this.client.callToolJson("knowledge_search",{query:D,limit:20});if(!Array.isArray($))return[];return $.map(oY)}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??RE($.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 oY(H)}}var EE=Z(()=>{aY()});import{join as t5}from"path";async function CE(D){let $=new Bun.CryptoHasher("sha256");return $.update(D),$.digest("hex")}function ME(D){let $=D.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);if(!$)return{metadata:{},content:D};try{return{metadata:y5($[1]??"")??{},content:$[2]??""}}catch{return{metadata:{},content:D}}}function ym(D,$){let F=$.split(".").pop()?.toLowerCase();if(F==="yaml"||F==="yml")try{let X=y5(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}=ME(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 ZE(D){let $=t5(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=t5($,G);try{let H=await Bun.file(Y).text(),W=ym(H,Y);if(W){let Q=await CE(H);J.push({...W,hash:Q})}}catch{}}return J}catch{return[]}}async function eY(D){let $=t5(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=t5($,G);try{let H=await Bun.file(Y).text(),W=await CE(H),{metadata:Q,content:_}=ME(H),U=G.replace(/\.md$/,"");J.push({id:String(Q.id??U),title:String(Q.title??U),content:_,metadata:Q,filePath:Y,hash:W,createdAt:Q.createdAt?String(Q.createdAt):void 0,updatedAt:Q.updatedAt?String(Q.updatedAt):void 0})}catch{}}return J}catch{return[]}}var qE=Z(()=>{cY()});import{watch as um}from"fs";import{join as DG}from"path";function mm(D){return D.includes("/skills/")||D.includes("\\skills\\")?"skill":"memory"}class $G{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 um(D,{recursive:!0},(F,X)=>{if(!X)return;let J=DG(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:mm(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=DG(this.home,"skills"),$=DG(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 NE=()=>{};import{existsSync as pm,mkdirSync as cm}from"fs";import{access as dm,stat as lm}from"fs/promises";import{join as FG}from"path";function im(D){return{id:D.filePath,name:D.name,description:D.description,version:D.version,tags:D.capabilities}}async function PE(D,$){let{createdAt:F,updatedAt:X}=D;if(!F||!X)try{let Y=await lm(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 nm(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 sm(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 rm(D){if(D==="feedback"||D==="project"||D==="reference"||D==="user")return D;return"user"}function am(D){return D.toLowerCase().replace(/[^a-z0-9_\- ]/g,"").replace(/\s+/g,"_").replace(/_+/g,"_").replace(/^_|_$/g,"").slice(0,64)}async function om(D,$,F,X){let J=FG(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}
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 $=x5(D),F=y6($);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 $=x5(D),F=y6($);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()}}}Au.Parser=nR});var tR=f((Nu)=>{var sR=TY(),Ou=z9(),f9=I9(),Ru=yJ(),Eu=UD(),Cu=yY(),rR=uY();function aR(D){let $=D.prettyErrors!==!1;return{lineCounter:D.lineCounter||$&&new Cu.LineCounter||null,prettyErrors:$}}function Mu(D,$={}){let{lineCounter:F,prettyErrors:X}=aR($),J=new rR.Parser(F?.addNewLine),G=new sR.Composer($),Y=Array.from(G.compose(J.parse(D)));if(X&&F)for(let B of Y)B.errors.forEach(f9.prettifyError(D,F)),B.warnings.forEach(f9.prettifyError(D,F));if(Y.length>0)return Y;return Object.assign([],{empty:!0},G.streamInfo())}function oR(D,$={}){let{lineCounter:F,prettyErrors:X}=aR($),J=new rR.Parser(F?.addNewLine),G=new sR.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 f9.YAMLParseError(B.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}if(X&&F)Y.errors.forEach(f9.prettifyError(D,F)),Y.warnings.forEach(f9.prettifyError(D,F));return Y}function Zu(D,$,F){let X=void 0;if(typeof $==="function")X=$;else if(F===void 0&&$&&typeof $==="object")F=$;let J=oR(D,F);if(!J)return null;if(J.warnings.forEach((G)=>Ru.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 qu(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(Eu.isDocument(D)&&!X)return D.toString(F);return new Ou.Document(D,X,F).toString(F)}Nu.parse=Zu;Nu.parseAllDocuments=Mu;Nu.parseDocument=oR;Nu.stringify=qu});var Iu,Tu,wu,mY,Su,x8,bu,fu,ku,vu,w3D,hu,xu,gu,g5,eR,yu,uu,mu,pu,cu,du,lu,iu,nu,su,ru,au,ou,tu,eu,Dm,$m,Fm,Xm,Jm,Ym,Gm,y5,Bm,Hm,pY,Wm,Vm;var cY=Z(()=>{Iu=TY(),Tu=z9(),wu=UY(),mY=I9(),Su=_9(),x8=UD(),bu=b8(),fu=lD(),ku=k8(),vu=v8(),w3D=v5(),hu=gY(),xu=yY(),gu=uY(),g5=tR(),eR=V9();yu=Iu.Composer,uu=Tu.Document,mu=wu.Schema,pu=mY.YAMLError,cu=mY.YAMLParseError,du=mY.YAMLWarning,lu=Su.Alias,iu=x8.isAlias,nu=x8.isCollection,su=x8.isDocument,ru=x8.isMap,au=x8.isNode,ou=x8.isPair,tu=x8.isScalar,eu=x8.isSeq,Dm=bu.Pair,$m=fu.Scalar,Fm=ku.YAMLMap,Xm=vu.YAMLSeq,Jm=hu.Lexer,Ym=xu.LineCounter,Gm=gu.Parser,y5=g5.parse,Bm=g5.parseAllDocuments,Hm=g5.parseDocument,pY=g5.stringify,Wm=eR.visit,Vm=eR.visitAsync});var Qm,_m,Um,Am,Km,Om,$E,Rm,Em,DE,Cm,Mm,Zm,FE;var XE=Z(()=>{yD();Qm=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()})}),_m=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()})}),Um=V.discriminatedUnion("type",[Qm,_m]),Am=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(),Km=V.record(V.unknown()).and(V.object({cmd:Am.optional()}).partial()),Om=V.enum(["rate-limit","timeout","auth","network","server-5xx","unknown"]),$E=V.lazy(()=>V.object({engine:V.enum(["http","mcp","cli","claude-code","acp","codex","cursor"]),variant:V.string().min(1),overrides:Km.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:$E,onErrorKinds:V.array(Om).min(1),maxRetries:V.number().int().min(1).optional()})).optional()})),Rm=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()})]),Em=V.object({channel:V.enum(["web","line","telegram","lark","whatsapp"]),enabled:V.boolean(),credentials:Rm,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"]}),DE=V.enum(["auto","ask","deny"]),Cm=V.object({default:DE,rules:V.array(V.object({pattern:V.string().min(1),action:DE}))}),Mm=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()}),Zm=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:Mm.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"})}),FE=V.object({brains:V.array(Um),brainWriteTarget:V.string(),brainRetrieval:V.enum(["merge-by-priority","first-match"]),executor:$E,channels:V.array(Em),evolution:V.object({enabled:V.boolean(),observationRetentionDays:V.number().int().nonnegative()}),toolPolicy:Cm.optional(),orchestrator:Zm.optional()})});import{writeFile as qm}from"fs/promises";async function S0(D){let $=await D.select().from(O2).where(v(O2.pk,"default")).get();if(!$)throw Error("worker_config row missing \u2014 bootstrap did not run");return{config:$.configJson,version:$.version}}async function k9(D,$,F,X={}){let J=FE.safeParse(F);if(!J.success)throw new g2(J.error.issues);let G=await S0(D);if(X.ifMatchVersion!==void 0&&X.ifMatchVersion!==G.version)throw new y2(X.ifMatchVersion,G.version);let Y=J.data,B=new Set(t2(G.config).map((A)=>A.path)),H=t2(Y),W=new Set(H.map((A)=>A.path));for(let{path:A,value:R}of H)if(R.length>0)await $.put(A,R);for(let A of B)if(!W.has(A))await $.remove(A);let Q=z4(Y),_=G.version+1,U=new Date().toISOString();return await D.update(O2).set({configJson:Q,version:_,updatedAt:U,updatedBy:"api"}).where(v(O2.pk,"default")).run(),{config:Q,version:_}}async function v9(D,$,F){let X=UW(D),J=pY({version:F,config:$});try{await qm(X,J,{encoding:"utf8"})}catch(G){C.warn(`[mirror-config] failed to write ${X}: ${String(G)}`)}}async function u6(D){let $=await k9(D.db,D.vault,D.raw,D.ifMatchVersion===void 0?{}:{ifMatchVersion:D.ifMatchVersion});await v9(D.workerId,$.config,$.version);let F="ok";try{await D.reloadRuntime($.config,$.version)}catch(X){F="failed",C.error("[applyConfigUpdate] runtime reload failed",X)}return{...$,runtimeReload:F}}var g2,y2;var dY=Z(()=>{W2();TD();JD();_0();cY();XE();g2=class g2 extends Error{issues;constructor(D,$="invalid worker config"){super($);this.issues=D;this.name="InvalidConfigError"}};y2=class y2 extends Error{expected;actual;constructor(D,$){super(`config version ${D} does not match current version ${$}`);this.expected=D;this.actual=$;this.name="ConfigVersionConflictError"}}});function u5(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 m5($.jobId);return{job:F}}}}var m5;var lY=Z(()=>{m5=class m5 extends Error{jobId;constructor(D){super(`cron job ${D} \u4E0D\u5B58\u5728`);this.jobId=D;this.name="CronJobNotFoundError"}}});class iY{deps;constructor(D){this.deps=D}async handleRequest(D){let{id:$,method:F,params:X}=D;try{let J=K3(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 oD["chat.send"].method:await this.handleChatSend($,Y);break;case oD["config.get"].method:await this.handleConfigGet($);break;case oD["config.put"].method:await this.handleConfigPut($,Y);break;case oD["token.rotate"].method:await this.handleTokenRotate($);break;case oD["logs.tail"].method:await this.handleLogsTail($,Y);break;case oD["approval.list"].method:this.handleApprovalList($);break;case oD["approval.grant"].method:this.handleApprovalGrant($,Y);break;case oD["cron.list"].method:await this.handleCronList($,Y);break;case oD["cron.add"].method:await this.handleCronAdd($,Y);break;case oD["cron.remove"].method:await this.handleCronRemove($,Y);break;case oD["cron.update"].method:await this.handleCronUpdate($,Y);break;case oD["workers.info"].method:this.replyError($,"method_not_implemented",`${F} is not yet implemented on node side`);break;case oD["workers.stop"].method:this.replyError($,"method_not_implemented",`${F} is not yet implemented on node side`);break;default:this.replyError($,"method_not_implemented",`${F} not routed`)}}catch(J){C.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=Nm(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=Pm(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)=>{C.warn(`[gateway-dispatcher ${this.deps.workerId}] orchestrator.ingest failed: ${String(H)}`)}),this.replyOk(D,{conversationId:Y,accepted:!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 g2){this.replyError(D,"invalid_config",J.message,{issues:J.issues});return}if(J instanceof y2){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 m5){this.replyError(D,"not_found",F.message,{jobId:F.jobId});return}this.replyError(D,"invalid_cron",F instanceof Error?F.message:String(F))}}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}})}}function Nm(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 Pm(D,$){if($===void 0)return`gw:${D}:${crypto.randomUUID()}`;if($.startsWith("gw:"))return $;return`gw:conv:${$}`}var JE=Z(()=>{Y0();JD();dY();lY()});class nY{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=h9($);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=h9($),X=$.call??{},J=g8(X.id),G=g8(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=h9($);if(!F)return null;return{name:e.AGENT_DONE,payload:{conversationId:F,finishReason:"stop"}}}case"orchestrator.error":{let F=h9($);if(!F)return null;return{name:e.AGENT_DONE,payload:{conversationId:F,finishReason:"error"}}}case"conversation.message":{let F=h9($),X=g8($.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=g8($.taskId),X=g8($.toolCallId),J=g8($.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 g8(D){return typeof D==="string"&&D.length>0?D:null}function h9(D){return g8(D.gatewayConversationId)??g8(D.conversationId)}var YE=Z(()=>{Y0()});function p5(D){let $=lK(D),F=!1,X=null,J=new nY({workerId:$.workerId,getBus:()=>D.getRuntime().bus,sendEvent:(Y)=>X?.send(Y)}),G=new iY({workerId:$.workerId,getRuntime:D.getRuntime,...D.handlers?{handlers:D.handlers}:{},sendResponse:(Y)=>X?.send(Y)});return X=new wJ({options:$,onConnected:()=>{F=!0,J.start()},onDisconnected:(Y)=>{F=!1,J.stop(),C.info(`[gateway-client ${$.workerId}] disconnected: ${Y}`)},onFrame:(Y)=>{if(Y.type==="request"){G.handleRequest(Y);return}C.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 GE(D){await D.stop()}var BE=Z(()=>{JD();dK();JE();YE()});function Lm(D){if(D instanceof Error)return D.message;return String(D)}async function c5(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:Lm(X)}]}}}function zm(D){return jm.has(D)}function Im(D){if(D instanceof Error)return D.message;return String(D)}async function d5(D,$,F={}){if(!zm($))throw jD.notFound(`unknown channel '${$}'`);let X=D.runtime.channels.get($);if(!X)throw jD.notFound(`channel '${$}' is not bound or not enabled`);let J=H1($);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:Im(Y)}}}var jm;var HE=Z(()=>{J0();s3();jm=new Set(["web","line","telegram","lark","whatsapp"])});function Tm(D){if(D instanceof Error)return D.message;return String(D)}async function wm(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:Tm(J)}}finally{clearTimeout(X)}}async function l5(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 wm(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 bm(D){if(!D)return"unknown";return D.status}async function WE(D){try{let $=await D();return bm($??null)}catch{return"unknown"}}function fm(D){let $=km(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 km(D){try{return o2(D)}catch{return null}}function vm(D,$){if(!D)return;return`${D.replace(/\/+$/,"")}/${$}/webhook`}async function i5(D,$,F){let{runtime:X}=D,J=await WE(()=>X.executor.health()),G=await WE(()=>X.brain.health()),Y=$.brains.map((Q)=>({id:Q.id,type:Q.type,status:G})),B=fm($.executor),H={type:$.executor.engine,...B===void 0?{}:{model:B},status:J},W=$.channels.map((Q)=>{let _=vm(F.advertisedBaseUrl,Q.channel);return{channel:Q.channel,enabled:Q.enabled,..._?{webhookUrl:_}:{}}});return{workerId:D.workerId,runtimeVersion:Sm,configVersion:D.configVersion,brains:Y,executor:H,channels:W,evolutionEnabled:$.evolution.enabled,startedAt:D.startedAt,...F.advertisedBaseUrl?{advertisedBaseUrl:F.advertisedBaseUrl}:{}}}var Sm="0.2.0";var VE=Z(()=>{J1()});async function y8(D,$,F){let X=U6(),{ciphertext:J,nonce:G,authTag:Y}=$.encryptString(X),B=new Date().toISOString();return await D.update(g0).set({apiTokenEnc:J,nonce:G,authTag:Y,rotatedAt:B}).where(v(g0.pk,"default")).run(),F.tokenPlaintext=X,{newToken:X}}var QE=Z(()=>{TD();_0();uX()});async function n5(D){return D.list()}async function s5(D,$,F){if(!$||!$.trim())throw jD.badRequest("secret key is required");if(F.length===0)throw jD.badRequest("secret value must be a non-empty string");await D.put($,F)}async function r5(D,$){if(!$||!$.trim())throw jD.badRequest("secret key is required");if(await D.get($)===null)throw jD.notFound(`secret '${$}' not found`);await D.remove($)}var _E=Z(()=>{J0()});class q1{pending=new Map;disposed=!1;wait(D){if(this.disposed)return Promise.reject(new UE);let $=D.timeoutMs??sY,F=Date.now()+$,X=q1.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=q1.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 UE,sY=60000;var a5=Z(()=>{UE=class UE extends Error{name="ApprovalDisposedError";constructor(){super("approval store disposed")}}});class KE{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 o5(){return Date.now()}function N1(){return new Date().toISOString()}function rY(D){if(D===null||typeof D!=="object"||!("unref"in D))return;try{D.unref()}catch{}}class P1{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:N1(),lastActivityAt:N1(),cancel:async()=>this.cancelHandle(X)};this.handles.set(X,J);let G={handle:J,req:D,enqueuedAt:o5(),enqueueSeq:++this.enqueueSeq,resolve:$,reject:F,cancelledBeforeStart:!1},Y=this.groups.get(D.group);if(!Y)Y=new KE,this.groups.set(D.group,Y);if(Y.enqueue(G),D.signal)if(D.signal.aborted)this.cancelHandle(X).catch(()=>{return});else{let B=()=>{D.signal?.removeEventListener("abort",B),this.cancelHandle(X).catch(()=>{return})};D.signal.addEventListener("abort",B,{once:!0})}this.kick()})}async cancelGroup(D){let $=this.groups.get(D);if($)for(let X of $.drain())this.markCancelledBeforeStart(X);let F=[];for(let[,X]of this.running.entries())if(X.handle.group===D)F.push(this.cancelRunning(X));await Promise.allSettled(F),this.kick()}async cancelAll(){for(let $ of this.groups.values())for(let F of $.drain())this.markCancelledBeforeStart(F);let D=[];for(let $ of this.running.values())D.push(this.cancelRunning($));await Promise.allSettled(D),this.kick()}snapshot(){let D={queued:0,spawning:0,running:0,completed:0,failed:0,cancelled:0};for(let Y of this.handles.values())D[Y.state]+=1;let $=new Map,F=0;for(let Y of this.groups.values())for(let B of Y.values())F+=1,$.set(B.handle.engine,($.get(B.handle.engine)??0)+1);let X=new Set([...Object.keys(this.opts.perEngineLimits),...this.runningByEngine.keys(),...$.keys()]),J={};for(let Y of X){let B=this.opts.perEngineLimits[Y]??this.opts.maxConcurrentTotal,H=this.runningByEngine.get(Y)??0,W=$.get(Y)??0,Q=Math.max(0,B-H),_=Math.max(0,this.opts.maxConcurrentTotal-this.totalActive());J[Y]={limit:B,active:H,queued:W,available:Math.min(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),rY(this.gcTimer)}gcTerminal(){let D=o5()-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=N1(),this.terminalLog.push({handle:D.handle,recordedAt:o5()}),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($){C.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),rY(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(($)=>C.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=hm[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=N1(),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=N1(),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=N1(),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:o5()}),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),rY(D.stallTimer)}onActivity(D){if(AE.has(D.handle.state))return;D.handle.lastActivityAt=N1(),this.armStallTimer(D)}onStall(D){if(AE.has(D.handle.state))return;if(D.cancelRequested)return;C.warn(`[process-manager] stall detected for ${D.handle.id} (engine=${D.handle.engine}, group=${D.handle.group})`),this.cancelRunning(D)}}var AE,hm;var OE=Z(()=>{JD();AE=new Set(["completed","failed","cancelled"]),hm={interactive:3,default:2,background:1}});class m6{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??xm}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 C.warn(`[mcp] tool '${D}' text is not JSON, returning raw string`),X.text}}}var xm=30000;var RE=Z(()=>{JD()});var aY=Z(()=>{RE()});function EE(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 oY(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:EE(D.tags)},createdAt:$,updatedAt:F};if(typeof G==="number")B.score=G;return B}function gm(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 tY{name="cloud-gateway";client;defaultCategory;defaultTypeId;constructor(D){this.client=new m6({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(gm)}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(oY)}async searchMemories(D){let $=await this.client.callToolJson("knowledge_search",{query:D,limit:20});if(!Array.isArray($))return[];return $.map(oY)}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??EE($.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 oY(H)}}var CE=Z(()=>{aY()});import{join as t5}from"path";async function ME(D){let $=new Bun.CryptoHasher("sha256");return $.update(D),$.digest("hex")}function ZE(D){let $=D.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);if(!$)return{metadata:{},content:D};try{return{metadata:y5($[1]??"")??{},content:$[2]??""}}catch{return{metadata:{},content:D}}}function ym(D,$){let F=$.split(".").pop()?.toLowerCase();if(F==="yaml"||F==="yml")try{let X=y5(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}=ZE(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 qE(D){let $=t5(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=t5($,G);try{let H=await Bun.file(Y).text(),W=ym(H,Y);if(W){let Q=await ME(H);J.push({...W,hash:Q})}}catch{}}return J}catch{return[]}}async function eY(D){let $=t5(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=t5($,G);try{let H=await Bun.file(Y).text(),W=await ME(H),{metadata:Q,content:_}=ZE(H),U=G.replace(/\.md$/,"");J.push({id:String(Q.id??U),title:String(Q.title??U),content:_,metadata:Q,filePath:Y,hash:W,createdAt:Q.createdAt?String(Q.createdAt):void 0,updatedAt:Q.updatedAt?String(Q.updatedAt):void 0})}catch{}}return J}catch{return[]}}var NE=Z(()=>{cY()});import{watch as um}from"fs";import{join as DG}from"path";function mm(D){return D.includes("/skills/")||D.includes("\\skills\\")?"skill":"memory"}class $G{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 um(D,{recursive:!0},(F,X)=>{if(!X)return;let J=DG(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:mm(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=DG(this.home,"skills"),$=DG(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 PE=()=>{};import{existsSync as pm,mkdirSync as cm}from"fs";import{access as dm,stat as lm}from"fs/promises";import{join as FG}from"path";function im(D){return{id:D.filePath,name:D.name,description:D.description,version:D.version,tags:D.capabilities}}async function LE(D,$){let{createdAt:F,updatedAt:X}=D;if(!F||!X)try{let Y=await lm(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 nm(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 sm(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 rm(D){if(D==="feedback"||D==="project"||D==="reference"||D==="user")return D;return"user"}function am(D){return D.toLowerCase().replace(/[^a-z0-9_\- ]/g,"").replace(/\s+/g,"_").replace(/_+/g,"_").replace(/^_|_$/g,"").slice(0,64)}async function om(D,$,F,X){let J=FG(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
262
  ${G}
263
263
  `:`${G}
264
264
  `;await Bun.write(J,W)}else await Bun.write(J,`# Memory index
265
265
 
266
266
  ${G}
267
- `)}class XG{name="filesystem";home;watcher;watcherStarted=!1;constructor(D){this.home=D.home,this.watcher=new $G({home:D.home})}async health(){let D=new Date().toISOString();try{return await dm(this.home),{name:this.name,status:"healthy",lastChecked:D}}catch{return{name:this.name,status:"down",lastChecked:D}}}async listSkills(){return(await ZE(this.home)).map(im)}async listMemories(D){let $=await eY(this.home),F=await Promise.all($.map((X)=>PE(X)));return sm(F,D)}async searchMemories(D){let $=await eY(this.home),F=D.toLowerCase(),X=$.filter((J)=>J.content.toLowerCase().includes(F)||J.title.toLowerCase().includes(F)||J.metadata.name!==void 0&&String(J.metadata.name).toLowerCase().includes(F)||J.metadata.description!==void 0&&String(J.metadata.description).toLowerCase().includes(F));return Promise.all(X.map((J)=>PE(J,1)))}async writeMemory(D){let $=D.metadata??{},F=typeof $.name==="string"&&$.name.length>0?$.name:`memory-${Date.now()}`,X=typeof $.description==="string"?$.description:"",J=rm($.type),G=FG(this.home,"memories");if(!pm(G))cm(G,{recursive:!0});let Y=am(F),B=`${Y}.md`,H=FG(G,B),W=`---
267
+ `)}class XG{name="filesystem";home;watcher;watcherStarted=!1;constructor(D){this.home=D.home,this.watcher=new $G({home:D.home})}async health(){let D=new Date().toISOString();try{return await dm(this.home),{name:this.name,status:"healthy",lastChecked:D}}catch{return{name:this.name,status:"down",lastChecked:D}}}async listSkills(){return(await qE(this.home)).map(im)}async listMemories(D){let $=await eY(this.home),F=await Promise.all($.map((X)=>LE(X)));return sm(F,D)}async searchMemories(D){let $=await eY(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)=>LE(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=rm($.type),G=FG(this.home,"memories");if(!pm(G))cm(G,{recursive:!0});let Y=am(F),B=`${Y}.md`,H=FG(G,B),W=`---
268
268
  name: ${F}
269
269
  description: ${X}
270
270
  type: ${J}
271
271
  ---
272
272
  `;await Bun.write(H,`${W}${D.content}
273
- `),await om(G,F,B,X);let Q=new Date().toISOString();return{id:Y,content:D.content,metadata:{...$,name:F,description:X,type:J,filePath:H,...D.tags?{tags:D.tags}:{}},createdAt:Q,updatedAt:Q}}watch(D){if(!this.watcherStarted)this.watcherStarted=!0,this.watcher.start();return this.watcher.on(($)=>{let F=nm($);if(F)D(F)})}}var LE=Z(()=>{qE();NE()});class JG{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 tm(D,$){let F;if($.type==="filesystem"){let X=$.config.home??D6(D);F=new XG({home:X})}else F=new tY({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 jE(D,$){let F=$.brains.map((X)=>tm(D,X));return new JG({sources:F,writeTargetId:$.brainWriteTarget,retrieval:$.brainRetrieval})}var zE=Z(()=>{W2();EE();LE()});function IE(D){return D.on((F)=>{try{em(F)}catch(X){C.warn(`[evolution] observer failed to persist: ${String(X)}`)}})}function em(D){if(!(D.type==="orchestrator.tool_call"||D.type==="orchestrator.finished"))return;u().insert(K2).values({conversationId:typeof D.payload.conversationId==="string"?D.payload.conversationId:null,kind:D.type,payload:D.payload}).run()}var TE=Z(()=>{TD();JD()});function SE(D,$=YG){let F=Math.max(1,$.nGramMin),X=Math.max(F,$.nGramMax),J=new Map;for(let[B,H]of D){if(!B||H.length===0)continue;for(let W=F;W<=X;W++){if(H.length<W)break;for(let Q=0;Q+W<=H.length;Q++){let _=H.slice(Q,Q+W),U=Fp(_),A=J.get(U);if(A)A.occurrences+=1,A.conversations.add(B);else J.set(U,{toolSequence:_,occurrences:1,conversations:new Set([B])})}}}let 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=Xp(B.occurrences/G);Y.push({toolSequence:B.toolSequence,occurrences:B.occurrences,uniqueConversations:B.conversations.size,confidence:H,rationale:$p(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}),Dp(Y)}function Dp(D){let $=[];for(let F of D){if($.find((G)=>wE(F.toolSequence,G.toolSequence)))continue;let J=$.findIndex((G)=>wE(G.toolSequence,F.toolSequence));if(J>=0)$.splice(J,1);$.push(F)}return $}function wE(D,$){if(D.length>=$.length)return!1;for(let F=0;F<D.length;F++)if(D[F]!==$[F])return!1;return!0}function $p(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 Fp(D){return D.join("|")}function Xp(D){if(!Number.isFinite(D))return 0;if(D<0)return 0;if(D>1)return 1;return D}var YG;var bE=Z(()=>{YG={nGramMin:2,nGramMax:4,minOccurrences:3,minConversations:2,windowSize:500}});import{createHash as Jp}from"crypto";import Yp from"process";function Hp(D){return{windowSize:D?.windowSize??e5("EVOLUTION_PROPOSER_WINDOW",Gp),maxDraftsPerRun:D?.maxDraftsPerRun??e5("EVOLUTION_PROPOSER_MAX_DRAFTS_PER_RUN",Bp),intervalMs:D?.intervalMs??e5("EVOLUTION_PROPOSER_INTERVAL_MS",kE)}}async function Wp(D){let $=Hp(D),F=u(),X=F.select({conversationId:K2.conversationId}).from(K2).orderBy(hD(K2.noticedAt)).limit($.windowSize).all(),J=Array.from(new Set(X.map((Q)=>Q.conversationId).filter((Q)=>typeof Q==="string"&&Q.length>0)));if(J.length===0)return C.info("[evolution/proposer] no conversations in window; skipping"),{drafts:0};let G=F.select({conversationId:a2.conversationId,toolName:a2.toolName}).from(a2).where(O8(a2.conversationId,J)).orderBy(S2(a2.conversationId),S2(a2.id)).all(),Y=new Map;for(let Q of G){if(!Q.conversationId)continue;let _=Y.get(Q.conversationId);if(_)_.push(Q.toolName);else Y.set(Q.conversationId,[Q.toolName])}let B=SE(Y,{...YG,windowSize:$.windowSize}),H=Qp(F),W=0;for(let Q of B){if(W>=$.maxDraftsPerRun)break;let _=Q.toolSequence.join("|");if(H.has(_))continue;let U=_p(Q);F.insert(q0).values(U).run(),H.add(_),W+=1,C.info(`[evolution/proposer] wrote draft ${U.proposedName} (occurrences=${Q.occurrences}, convs=${Q.uniqueConversations})`)}return C.info(`[evolution/proposer] ${W}/${B.length} candidate(s) written; window=${$.windowSize}, conversations=${J.length}`),{drafts:W}}function vE(D){let $=D??e5("EVOLUTION_PROPOSER_INTERVAL_MS",kE),F=setInterval(()=>{Wp().catch((X)=>C.warn(`[evolution/proposer] loop run failed: ${String(X)}`))},$);return()=>clearInterval(F)}function Vp(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 Qp(D){let $=new Set,F=D.select({bodyMarkdown:q0.bodyMarkdown}).from(q0).all();for(let J of F){let G=Vp(J.bodyMarkdown);if(G)$.add(G.allowedTools.join("|"))}let X=D.select({config:m3.config}).from(m3).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 _p(D){let $=D.toolSequence.join("|"),F=Jp("sha256").update($).digest("hex").slice(0,6),X=fE(D.toolSequence[0]??"tool"),J=fE(D.toolSequence[D.toolSequence.length-1]??"tool"),G=`auto-${X}-${J}-${F}`,Y=D.toolSequence.join(" \u2192 "),B=D.toolSequence.map((_)=>`\`${_}\``).join(", "),H={allowedTools:D.toolSequence,confidence:D.confidence,sequenceKey:$},W=`When the agent runs \`${Y}\` (seen ${D.occurrences}\xD7 across ${D.uniqueConversations} conversation(s))`,Q=[`<!-- evolution-meta: ${JSON.stringify(H)} -->`,"",`# ${G}`,"","## Trigger","",W,"","## Allowed tools","",B,"","## Prompt template","","```",`You are extending the skill \`${G}\`. Invoke the following tools in order: ${B}.`,"```",""].join(`
274
- `);return{proposedName:G,source:"evolution",bodyMarkdown:Q,rationale:D.rationale,status:"pending"}}function fE(D){return D.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"tool"}function e5(D,$){let F=Yp.env[D];if(F===void 0||F==="")return $;let X=Number(F);return Number.isFinite(X)&&X>0?X:$}var kE=21600000,Gp=500,Bp=5;var hE=Z(()=>{TD();JD();_0();bE()});var GG;var BG=Z(()=>{o4();GG={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:()=>mK()}});var HG;var WG=Z(()=>{o4();HG={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:()=>pK()}});function VG(D){let $=Up[D];if(!$)throw Error(`unknown ACP agent: ${D}`);return $}var Up;var xE=Z(()=>{BG();WG();Up={gemini:GG,qwen:HG}});import gE from"process";function Mp(D,$,F){if($.has(D))return!0;return F.some((X)=>D.startsWith(X))}function Zp(D){if(Ep.some(($)=>D.startsWith($)))return!0;if(Cp.some(($)=>D.endsWith($)))return!0;return!1}function yE(D,$,F){let X={};for(let[J,G]of Object.entries(D)){if(G===void 0)continue;if(Zp(J))continue;if(!Mp(J,$,F))continue;X[J]=G}return X}function q2(D,$=gE.env){let F=yE($,Ap,Kp);if(D)for(let[X,J]of Object.entries(D))F[X]=J;return F}function uE(D=gE.env){return yE(D,Op,Rp)}var Ap,Kp,Op,Rp,Ep,Cp;var L1=Z(()=>{Ap=new Set(["PATH","HOME","USER","LOGNAME","SHELL","PWD","LANG","TZ","TERM","TMPDIR","TMP","TEMP"]),Kp=["LC_","NODE_","NPM_CONFIG_","XDG_","CLAUDE_","CODEX_","CURSOR_","GEMINI_","QWEN_"],Op=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"]),Rp=["LC_","XDG_","GIT_AUTHOR_","GIT_COMMITTER_"],Ep=["AIWORKER_","INTERNAL_","WORKER_"],Cp=["_TOKEN","_SECRET","_API_KEY","_PRIVATE_KEY","_PASSWORD"]});function _G(D){let $=D.sessionUpdate,F=D;switch($){case"agent_message_chunk":{let X=QG(F.content);if(!X)return[];return[{type:"assistant_message_delta",delta:X}]}case"agent_thinking_chunk":{let X=QG(F.content);if(!X)return[];return[{type:"thinking_delta",delta:X}]}case"user_message_chunk":return[];case"tool_call":return qp(F);case"tool_call_update":return Np(F);case"plan":return Pp(F.entries);case"available_commands_update":case"current_mode_update":return[];default:return[]}}function mE(D,$,F){let X=F??{};switch(D){case"read":return{kind:"file_read",path:x9(X,["file_path","path","absolute_path","filePath"])};case"edit":case"delete":case"move":{let J=x9(X,["file_path","path","absolute_path","filePath"]),G=jp(X);return{kind:"file_edit",path:J,...G?{diff:G}:{}}}case"execute":return{kind:"command_run",command:x9(X,["command","cmd","shell_command","script"])};case"search":return{kind:"search",query:x9(X,["query","pattern","q","search"])};case"fetch":return{kind:"web_fetch",url:x9(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 UG(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 qp(D){let $=[],F=D.toolCallId;if(!F)return $;let X=D.rawInput??{},J=mE(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:Lp(D.status)}:{}}),cE(D.status)){let Y=pE(D.content);$.push({type:"tool_result",id:F,name:G,content:Y,...D.status==="failed"||D.status==="cancelled"?{isError:!0}:{}})}return $}function Np(D){let $=D.toolCallId;if(!$||!cE(D.status))return[];let F=pE(D.content),X=D.title??D.kind??"";return[{type:"tool_result",id:$,name:X,content:F,...D.status==="failed"||D.status==="cancelled"?{isError:!0}:{}}]}function Pp(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-${zp($)}`,name:"plan",arguments:{entries:D},action:{kind:"task_plan",summary:$}}]}function QG(D){if(!D)return"";if(D.type==="text"&&typeof D.text==="string")return D.text;return""}function pE(D){if(!D||D.length===0)return"";let $=[];for(let F of D){if(!F||typeof F!=="object")continue;if(F.type==="content"){let X=F.content,J=QG(X);if(J)$.push(J)}else if(F.type==="diff"){let X=F,J=X.oldText??"",G=X.newText??"";$.push(`--- ${X.path??""}
273
+ `),await om(G,F,B,X);let Q=new Date().toISOString();return{id:Y,content:D.content,metadata:{...$,name:F,description:X,type:J,filePath:H,...D.tags?{tags:D.tags}:{}},createdAt:Q,updatedAt:Q}}watch(D){if(!this.watcherStarted)this.watcherStarted=!0,this.watcher.start();return this.watcher.on(($)=>{let F=nm($);if(F)D(F)})}}var jE=Z(()=>{NE();PE()});class JG{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 tm(D,$){let F;if($.type==="filesystem"){let X=$.config.home??D6(D);F=new XG({home:X})}else F=new tY({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 zE(D,$){let F=$.brains.map((X)=>tm(D,X));return new JG({sources:F,writeTargetId:$.brainWriteTarget,retrieval:$.brainRetrieval})}var IE=Z(()=>{W2();CE();jE()});function TE(D){return D.on((F)=>{try{em(F)}catch(X){C.warn(`[evolution] observer failed to persist: ${String(X)}`)}})}function em(D){if(!(D.type==="orchestrator.tool_call"||D.type==="orchestrator.finished"))return;u().insert(K2).values({conversationId:typeof D.payload.conversationId==="string"?D.payload.conversationId:null,kind:D.type,payload:D.payload}).run()}var wE=Z(()=>{TD();JD()});function bE(D,$=YG){let F=Math.max(1,$.nGramMin),X=Math.max(F,$.nGramMax),J=new Map;for(let[B,H]of D){if(!B||H.length===0)continue;for(let W=F;W<=X;W++){if(H.length<W)break;for(let Q=0;Q+W<=H.length;Q++){let _=H.slice(Q,Q+W),U=Fp(_),A=J.get(U);if(A)A.occurrences+=1,A.conversations.add(B);else J.set(U,{toolSequence:_,occurrences:1,conversations:new Set([B])})}}}let 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=Xp(B.occurrences/G);Y.push({toolSequence:B.toolSequence,occurrences:B.occurrences,uniqueConversations:B.conversations.size,confidence:H,rationale:$p(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}),Dp(Y)}function Dp(D){let $=[];for(let F of D){if($.find((G)=>SE(F.toolSequence,G.toolSequence)))continue;let J=$.findIndex((G)=>SE(G.toolSequence,F.toolSequence));if(J>=0)$.splice(J,1);$.push(F)}return $}function SE(D,$){if(D.length>=$.length)return!1;for(let F=0;F<D.length;F++)if(D[F]!==$[F])return!1;return!0}function $p(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 Fp(D){return D.join("|")}function Xp(D){if(!Number.isFinite(D))return 0;if(D<0)return 0;if(D>1)return 1;return D}var YG;var fE=Z(()=>{YG={nGramMin:2,nGramMax:4,minOccurrences:3,minConversations:2,windowSize:500}});import{createHash as Jp}from"crypto";import Yp from"process";function Hp(D){return{windowSize:D?.windowSize??e5("EVOLUTION_PROPOSER_WINDOW",Gp),maxDraftsPerRun:D?.maxDraftsPerRun??e5("EVOLUTION_PROPOSER_MAX_DRAFTS_PER_RUN",Bp),intervalMs:D?.intervalMs??e5("EVOLUTION_PROPOSER_INTERVAL_MS",vE)}}async function Wp(D){let $=Hp(D),F=u(),X=F.select({conversationId:K2.conversationId}).from(K2).orderBy(hD(K2.noticedAt)).limit($.windowSize).all(),J=Array.from(new Set(X.map((Q)=>Q.conversationId).filter((Q)=>typeof Q==="string"&&Q.length>0)));if(J.length===0)return C.info("[evolution/proposer] no conversations in window; skipping"),{drafts:0};let G=F.select({conversationId:a2.conversationId,toolName:a2.toolName}).from(a2).where(O8(a2.conversationId,J)).orderBy(S2(a2.conversationId),S2(a2.id)).all(),Y=new Map;for(let Q of G){if(!Q.conversationId)continue;let _=Y.get(Q.conversationId);if(_)_.push(Q.toolName);else Y.set(Q.conversationId,[Q.toolName])}let B=bE(Y,{...YG,windowSize:$.windowSize}),H=Qp(F),W=0;for(let Q of B){if(W>=$.maxDraftsPerRun)break;let _=Q.toolSequence.join("|");if(H.has(_))continue;let U=_p(Q);F.insert(q0).values(U).run(),H.add(_),W+=1,C.info(`[evolution/proposer] wrote draft ${U.proposedName} (occurrences=${Q.occurrences}, convs=${Q.uniqueConversations})`)}return C.info(`[evolution/proposer] ${W}/${B.length} candidate(s) written; window=${$.windowSize}, conversations=${J.length}`),{drafts:W}}function hE(D){let $=D??e5("EVOLUTION_PROPOSER_INTERVAL_MS",vE),F=setInterval(()=>{Wp().catch((X)=>C.warn(`[evolution/proposer] loop run failed: ${String(X)}`))},$);return()=>clearInterval(F)}function Vp(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 Qp(D){let $=new Set,F=D.select({bodyMarkdown:q0.bodyMarkdown}).from(q0).all();for(let J of F){let G=Vp(J.bodyMarkdown);if(G)$.add(G.allowedTools.join("|"))}let X=D.select({config:m3.config}).from(m3).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 _p(D){let $=D.toolSequence.join("|"),F=Jp("sha256").update($).digest("hex").slice(0,6),X=kE(D.toolSequence[0]??"tool"),J=kE(D.toolSequence[D.toolSequence.length-1]??"tool"),G=`auto-${X}-${J}-${F}`,Y=D.toolSequence.join(" \u2192 "),B=D.toolSequence.map((_)=>`\`${_}\``).join(", "),H={allowedTools:D.toolSequence,confidence:D.confidence,sequenceKey:$},W=`When the agent runs \`${Y}\` (seen ${D.occurrences}\xD7 across ${D.uniqueConversations} conversation(s))`,Q=[`<!-- evolution-meta: ${JSON.stringify(H)} -->`,"",`# ${G}`,"","## Trigger","",W,"","## Allowed tools","",B,"","## Prompt template","","```",`You are extending the skill \`${G}\`. Invoke the following tools in order: ${B}.`,"```",""].join(`
274
+ `);return{proposedName:G,source:"evolution",bodyMarkdown:Q,rationale:D.rationale,status:"pending"}}function kE(D){return D.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"tool"}function e5(D,$){let F=Yp.env[D];if(F===void 0||F==="")return $;let X=Number(F);return Number.isFinite(X)&&X>0?X:$}var vE=21600000,Gp=500,Bp=5;var xE=Z(()=>{TD();JD();_0();fE()});var GG;var BG=Z(()=>{o4();GG={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:()=>pK()}});var HG;var WG=Z(()=>{o4();HG={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:()=>cK()}});function VG(D){let $=Up[D];if(!$)throw Error(`unknown ACP agent: ${D}`);return $}var Up;var gE=Z(()=>{BG();WG();Up={gemini:GG,qwen:HG}});import yE from"process";function Mp(D,$,F){if($.has(D))return!0;return F.some((X)=>D.startsWith(X))}function Zp(D){if(Ep.some(($)=>D.startsWith($)))return!0;if(Cp.some(($)=>D.endsWith($)))return!0;return!1}function uE(D,$,F){let X={};for(let[J,G]of Object.entries(D)){if(G===void 0)continue;if(Zp(J))continue;if(!Mp(J,$,F))continue;X[J]=G}return X}function q2(D,$=yE.env){let F=uE($,Ap,Kp);if(D)for(let[X,J]of Object.entries(D))F[X]=J;return F}function mE(D=yE.env){return uE(D,Op,Rp)}var Ap,Kp,Op,Rp,Ep,Cp;var L1=Z(()=>{Ap=new Set(["PATH","HOME","USER","LOGNAME","SHELL","PWD","LANG","TZ","TERM","TMPDIR","TMP","TEMP"]),Kp=["LC_","NODE_","NPM_CONFIG_","XDG_","CLAUDE_","CODEX_","CURSOR_","GEMINI_","QWEN_"],Op=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"]),Rp=["LC_","XDG_","GIT_AUTHOR_","GIT_COMMITTER_"],Ep=["AIWORKER_","INTERNAL_","WORKER_"],Cp=["_TOKEN","_SECRET","_API_KEY","_PRIVATE_KEY","_PASSWORD"]});function _G(D){let $=D.sessionUpdate,F=D;switch($){case"agent_message_chunk":{let X=QG(F.content);if(!X)return[];return[{type:"assistant_message_delta",delta:X}]}case"agent_thinking_chunk":{let X=QG(F.content);if(!X)return[];return[{type:"thinking_delta",delta:X}]}case"user_message_chunk":return[];case"tool_call":return qp(F);case"tool_call_update":return Np(F);case"plan":return Pp(F.entries);case"available_commands_update":case"current_mode_update":return[];default:return[]}}function pE(D,$,F){let X=F??{};switch(D){case"read":return{kind:"file_read",path:x9(X,["file_path","path","absolute_path","filePath"])};case"edit":case"delete":case"move":{let J=x9(X,["file_path","path","absolute_path","filePath"]),G=jp(X);return{kind:"file_edit",path:J,...G?{diff:G}:{}}}case"execute":return{kind:"command_run",command:x9(X,["command","cmd","shell_command","script"])};case"search":return{kind:"search",query:x9(X,["query","pattern","q","search"])};case"fetch":return{kind:"web_fetch",url:x9(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 UG(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 qp(D){let $=[],F=D.toolCallId;if(!F)return $;let X=D.rawInput??{},J=pE(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:Lp(D.status)}:{}}),dE(D.status)){let Y=cE(D.content);$.push({type:"tool_result",id:F,name:G,content:Y,...D.status==="failed"||D.status==="cancelled"?{isError:!0}:{}})}return $}function Np(D){let $=D.toolCallId;if(!$||!dE(D.status))return[];let F=cE(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 Pp(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-${zp($)}`,name:"plan",arguments:{entries:D},action:{kind:"task_plan",summary:$}}]}function QG(D){if(!D)return"";if(D.type==="text"&&typeof D.text==="string")return D.text;return""}function cE(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=QG(X);if(J)$.push(J)}else if(F.type==="diff"){let X=F,J=X.oldText??"",G=X.newText??"";$.push(`--- ${X.path??""}
276
276
  - ${J}
277
277
  + ${G}`)}else if(F.type==="terminal"){let X=F;$.push(`[terminal:${X.terminalId??""}]`)}}return $.join(`
278
- `)}function Lp(D){switch(D){case"pending":return"pending";case"in_progress":return"running";case"completed":return"success";case"failed":return"failed";case"cancelled":return"denied";default:return"pending"}}function cE(D){return D==="completed"||D==="failed"||D==="cancelled"}function x9(D,$){for(let F of $){let X=D[F];if(typeof X==="string"&&X.length>0)return X}return""}function jp(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`- ${$}
278
+ `)}function Lp(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 dE(D){return D==="completed"||D==="failed"||D==="cancelled"}function x9(D,$){for(let F of $){let X=D[F];if(typeof X==="string"&&X.length>0)return X}return""}function jp(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
279
  + ${F}`;if(F!==void 0)return F;return}function zp(D){let $=5381;for(let F=0;F<D.length;F++)$=($<<5)+$+D.charCodeAt(F)>>>0;return $.toString(36)}class u8{options;nextId=1;pending=new Map;disposed=!1;constructor(D){this.options=D}async request(D,$,F){if(this.disposed)throw Error("json-rpc peer disposed");if(F?.aborted)throw Error(`json-rpc request ${D} aborted before send`);let X=this.nextId++,J=$===void 0?{jsonrpc:"2.0",id:X,method:D}:{jsonrpc:"2.0",id:X,method:D,params:$};return new Promise((G,Y)=>{let B=this.options.requestTimeoutMs,H=B&&B>0?setTimeout(()=>{this.rejectPending(X,Error(`json-rpc request ${D} timed out after ${B}ms`))},B):null,W=F?()=>this.rejectPending(X,Error(`json-rpc request ${D} aborted`)):null;if(this.pending.set(X,{resolve:(Q)=>G(Q),reject:Y,timer:H,abortHandler:W,signal:F??null}),W&&F)F.addEventListener("abort",W,{once:!0});try{this.options.writeLine(`${JSON.stringify(J)}
280
280
  `)}catch(Q){this.rejectPending(X,Q instanceof Error?Q:Error(String(Q)))}})}notify(D,$){if(this.disposed)return;let F=$===void 0?{jsonrpc:"2.0",method:D}:{jsonrpc:"2.0",method:D,params:$};try{this.options.writeLine(`${JSON.stringify(F)}
281
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 j1(D,$){let X=(D+$).split(/\r?\n/),J=X.pop()??"";return{lines:X.filter((G)=>G.trim().length>0),remainder:J}}import{spawn as Ip}from"child_process";import{once as Tp}from"events";import wp from"fs/promises";import Sp from"path";import p6 from"process";function iE(D,$){let F=$?.trim();if(F&&F.length>0)return F;let X=p6.env[D.versionEnvVar]?.trim();if(X&&X.length>0)return X;return D.defaultVersion}class D${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()+fp,info:F},F}async*runIterable(D){let $=hp(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??p6.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??Ip)(X.cmd,X.args,{cwd:F,env:q2(this.options.env)}),Y=new nE,B=new u8({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??dE}),H="",W=(K)=>{let{lines:E,remainder:q}=j1(H,K.toString("utf8"));H=q;for(let N of E)B.handleLine(N)};G.stdout.on("data",W);let Q=null;G.on("error",(K)=>{Q=K.message});let _=Tp(G,"exit").then((K)=>K[0]??null).catch((K)=>{return Q=K instanceof Error?K.message:String(K),null});_.then((K)=>{if(K===0)return;let E=Q??(K===null?"acp child exited unexpectedly":`acp child exited with code ${K}`);Y.close({kind:"error",message:E}),B.dispose(E)});let U=setTimeout(()=>lE(G,"SIGKILL"),this.options.timeoutMs??dE),A="",R=!1,O=()=>{if(R=!0,A)B.notify("session/cancel",{sessionId:A});setTimeout(()=>lE(G,"SIGTERM"),200)};D.signal?.addEventListener("abort",O,{once:!0});try{if(await B.request("initialize",{protocolVersion:bp,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 q=Y.terminal;if(q?.kind==="finish")yield{type:"finish",reason:UG(q.stopReason)};else if(q?.kind==="error")yield{type:"error",error:q.message},yield{type:"finish",reason:R?"cancelled":"error"};else yield{type:"finish",reason:R?"cancelled":"stop"}}catch(K){yield{type:"error",error:K instanceof Error?K.message:String(K)},yield{type:"finish",reason:R?"cancelled":"error"}}finally{clearTimeout(U),D.signal?.removeEventListener("abort",O),B.dispose("run ended"),G.stdout.off("data",W),vp(G),await _.catch(()=>null)}}handleNotification(D,$){if(D.method!=="session/update")return;let F=D.params;if(!F||!F.update)return;for(let X of _G(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??kp)($.commandName);if(G)return{cmd:G,args:X};let Y=iE($,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 kp(D){let $=p6.env.PATH??"",F=p6.platform==="win32"?";":":",X=p6.platform==="win32"?(p6.env.PATHEXT??".EXE").split(";"):[""];for(let J of $.split(F)){if(!J)continue;for(let G of X){let Y=Sp.join(J,`${D}${G.toLowerCase()}`);try{if((await wp.stat(Y)).isFile())return Y}catch{}}}return null}function lE(D,$){try{D.kill($)}catch{}}function vp(D){try{D.stdin.end()}catch{}}function hp(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 dE=120000,bp=1,fp=600000;var sE=Z(()=>{L1()});var rE=Z(()=>{BG();xE();WG();sE()});function AG(D){switch(D.type){case"assistant":return xp(D);case"user":return gp(D);case"result":return yp(D);case"stream_event":return up(D);default:return[]}}function xp(D){let $=[],F=D.message??{};for(let X of F.content??[]){let J=mp(X);if(J)$.push(J)}return cp($,F),$}function gp(D){let $=[],F=D.message??{};for(let X of F.content??[])if(X.type==="tool_result")$.push(aE(X));return $}function yp(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=lp(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 up(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 mp(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:oE(F,X)}}case"tool_result":return aE(D);default:return null}}function aE(D){let $=typeof D.tool_use_id==="string"?D.tool_use_id:"",F=D.is_error===!0,X=pp(D.content);return{type:"tool_result",id:$,name:"",content:X,...F?{isError:!0}:{}}}function pp(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 cp(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 oE(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=dp($);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 dp(D){if(typeof D.old_string==="string"&&typeof D.new_string==="string")return`- ${D.old_string}
282
+ `)}catch(J){this.options.onError?.(J instanceof Error?J:Error(String(J)))}}}function j1(D,$){let X=(D+$).split(/\r?\n/),J=X.pop()??"";return{lines:X.filter((G)=>G.trim().length>0),remainder:J}}import{spawn as Ip}from"child_process";import{once as Tp}from"events";import wp from"fs/promises";import Sp from"path";import p6 from"process";function nE(D,$){let F=$?.trim();if(F&&F.length>0)return F;let X=p6.env[D.versionEnvVar]?.trim();if(X&&X.length>0)return X;return D.defaultVersion}class D${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()+fp,info:F},F}async*runIterable(D){let $=hp(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??p6.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??Ip)(X.cmd,X.args,{cwd:F,env:q2(this.options.env)}),Y=new sE,B=new u8({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??lE}),H="",W=(K)=>{let{lines:E,remainder:q}=j1(H,K.toString("utf8"));H=q;for(let N of E)B.handleLine(N)};G.stdout.on("data",W);let Q=null;G.on("error",(K)=>{Q=K.message});let _=Tp(G,"exit").then((K)=>K[0]??null).catch((K)=>{return Q=K instanceof Error?K.message:String(K),null});_.then((K)=>{if(K===0)return;let E=Q??(K===null?"acp child exited unexpectedly":`acp child exited with code ${K}`);Y.close({kind:"error",message:E}),B.dispose(E)});let U=setTimeout(()=>iE(G,"SIGKILL"),this.options.timeoutMs??lE),A="",R=!1,O=()=>{if(R=!0,A)B.notify("session/cancel",{sessionId:A});setTimeout(()=>iE(G,"SIGTERM"),200)};D.signal?.addEventListener("abort",O,{once:!0});try{if(await B.request("initialize",{protocolVersion:bp,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 q=Y.terminal;if(q?.kind==="finish")yield{type:"finish",reason:UG(q.stopReason)};else if(q?.kind==="error")yield{type:"error",error:q.message},yield{type:"finish",reason:R?"cancelled":"error"};else yield{type:"finish",reason:R?"cancelled":"stop"}}catch(K){yield{type:"error",error:K instanceof Error?K.message:String(K)},yield{type:"finish",reason:R?"cancelled":"error"}}finally{clearTimeout(U),D.signal?.removeEventListener("abort",O),B.dispose("run ended"),G.stdout.off("data",W),vp(G),await _.catch(()=>null)}}handleNotification(D,$){if(D.method!=="session/update")return;let F=D.params;if(!F||!F.update)return;for(let X of _G(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??kp)($.commandName);if(G)return{cmd:G,args:X};let Y=nE($,this.options.cliVersion);return{cmd:"npx",args:["-y",`${$.npxPackage}@${Y}`,...X]}}}class sE{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 kp(D){let $=p6.env.PATH??"",F=p6.platform==="win32"?";":":",X=p6.platform==="win32"?(p6.env.PATHEXT??".EXE").split(";"):[""];for(let J of $.split(F)){if(!J)continue;for(let G of X){let Y=Sp.join(J,`${D}${G.toLowerCase()}`);try{if((await wp.stat(Y)).isFile())return Y}catch{}}}return null}function iE(D,$){try{D.kill($)}catch{}}function vp(D){try{D.stdin.end()}catch{}}function hp(D){for(let $=D.length-1;$>=0;$--){let F=D[$];if(F&&F.role==="user"&&typeof F.content==="string"&&F.content.length>0)return F.content}return null}var lE=120000,bp=1,fp=600000;var rE=Z(()=>{L1()});var aE=Z(()=>{BG();gE();WG();rE()});function AG(D){switch(D.type){case"assistant":return xp(D);case"user":return gp(D);case"result":return yp(D);case"stream_event":return up(D);default:return[]}}function xp(D){let $=[],F=D.message??{};for(let X of F.content??[]){let J=mp(X);if(J)$.push(J)}return cp($,F),$}function gp(D){let $=[],F=D.message??{};for(let X of F.content??[])if(X.type==="tool_result")$.push(oE(X));return $}function yp(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=lp(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 up(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 mp(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:tE(F,X)}}case"tool_result":return oE(D);default:return null}}function oE(D){let $=typeof D.tool_use_id==="string"?D.tool_use_id:"",F=D.is_error===!0,X=pp(D.content);return{type:"tool_result",id:$,name:"",content:X,...F?{isError:!0}:{}}}function pp(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 cp(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 tE(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=dp($);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 dp(D){if(typeof D.old_string==="string"&&typeof D.new_string==="string")return`- ${D.old_string}
284
284
  + ${D.new_string}`;if(typeof D.content==="string")return D.content;return}function lp(D){switch(D){case"success":case"completion":return"stop";case"error":return"error";default:return"stop"}}function z1(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 F${policy;writeLine;constructor(D){this.policy=D.policy??$$,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=ip($,F);if(this.writeLine(`${JSON.stringify(X)}
285
285
  `),F.decision==="ask"){let J=np($);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 ip(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 np(D){let $=D.request;if(typeof $.tool_use_id==="string")return $.tool_use_id;if(typeof $.toolUseId==="string")return $.toolUseId;return}var $$;var OG=Z(()=>{$$={decide:async(D)=>({decision:"allow"})}});import{spawn as sp}from"child_process";import{once as rp}from"events";import ap from"fs/promises";import op from"path";import X$ from"process";class G${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 $=$c(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??sp,J=Fc(D.engineBinding);if(D.engineBinding!==void 0&&J===void 0)yield{type:"engine_binding",engine:J$,binding:null};let G,Y;try{({cmd:G,args:Y}=await this.resolveCommand(D.model,J))}catch(q){yield{type:"error",error:q instanceof Error?q.message:String(q)},yield{type:"finish",reason:"error"};return}let B=X(G,Y,{cwd:F,env:q2(this.options.env)}),H=new F$({policy:this.options.policy??$$,writeLine:(q)=>{try{B.stdin.write(q)}catch{}}});H.sendUserMessage($);let W=this.options.timeoutMs??tp,Q=setTimeout(()=>tE(B,"SIGKILL"),W),_="",U=null,A="",R=!1,O=rp(B,"exit").then((q)=>q[0]??null).catch((q)=>{return U=q instanceof Error?q.message:String(q),null});B.on("error",(q)=>{U=q.message});let K=()=>tE(B,"SIGTERM");D.signal?.addEventListener("abort",K,{once:!0});try{for await(let q of B.stdout){let{lines:N,remainder:S}=z1(_,q.toString("utf8"));_=S;for(let b of N){let P=KG(b);if(!P)continue;let T=Xc(P);if(T&&T!==A)A=T,yield{type:"engine_binding",engine:J$,binding:{sessionId:T}};if(P.type==="control_request"){let j=await H.handleLine(P);for(let s of j)yield s;continue}for(let j of AG(P)){if(j.type==="error"&&J!==void 0)yield{type:"engine_binding",engine:J$,binding:null};if(yield j,j.type==="finish")R=!0}if(R)break}if(R)break}}catch(q){yield{type:"error",error:q instanceof Error?q.message:String(q)}}finally{clearTimeout(Q),D.signal?.removeEventListener("abort",K),Dc(B)}let E=await O;if(!R){if(J!==void 0)yield{type:"engine_binding",engine:J$,binding:null};if(U)yield{type:"error",error:U};else if(E!==0&&E!==null)yield{type:"error",error:`Claude Code exited with code ${E}`};yield{type:"finish",reason:E===0?"stop":"error"}}}async resolveCommand(D,$){let F=eE(D??this.options.model,this.options.extraArgs,$),J=await(this.options.resolveClaudeBinary??ep)();if(J)return{cmd:J,args:F};return{cmd:"npx",args:["-y",`@anthropic-ai/claude-code@${this.options.cliVersion?.trim()||Y$}`,...F]}}}function eE(D,$,F){let X=["-p","--verbose","--output-format=stream-json","--input-format=stream-json","--include-partial-messages","--replay-user-messages","--dangerously-skip-permissions"];if(F&&F.length>0)X.push("--resume",F);if(D&&D.length>0)X.push("--model",D);if($&&$.length>0)X.push(...$);return X}async function ep(){let D=X$.env.PATH??"",$=X$.platform==="win32"?";":":",F=X$.platform==="win32"?(X$.env.PATHEXT??".EXE").split(";"):[""];for(let X of D.split($)){if(!X)continue;for(let J of F){let G=op.join(X,`claude${J.toLowerCase()}`);try{if((await ap.stat(G)).isFile())return G}catch{}}}return null}function tE(D,$){try{D.kill($)}catch{}}function Dc(D){try{D.stdin.end()}catch{}}function $c(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 Fc(D){if(!D||typeof D.sessionId!=="string"||D.sessionId.length===0)return;return D.sessionId}function Xc(D){if(!D||typeof D!=="object"||Array.isArray(D))return"";let $=D.session_id;return typeof $==="string"&&$.length>0?$:""}var Y$="2.1.112",tp=120000,J$="claude-code";var DC=Z(()=>{L1();OG()});var $C=Z(()=>{DC();OG()});function RG(D){let $=D.params??{};switch(D.method){case"codex/event/assistant_message":return FC($);case"codex/event/thinking":return XC($);case"codex/event/token_usage":return Jc($);case"codex/event/tool_call":return Yc($);case"codex/event/tool_result":return Gc($);case"codex/event/stop":return Bc($);case"codex/event/error":return[{type:"error",error:typeof $.message==="string"?$.message:"codex error"}];case"item/agentMessage/delta":return FC($);case"item/reasoning/textDelta":case"item/reasoning/summaryTextDelta":return XC($);case"thread/tokenUsage/updated":return Hc($);case"turn/completed":return Wc($);case"error":return Vc($);default:return[]}}function FC(D){let $=GC(D.delta,D.text);if(!$)return[];return[{type:"assistant_message_delta",delta:$}]}function XC(D){let $=GC(D.delta,D.text);if(!$)return[];return[{type:"thinking_delta",delta:$}]}function Jc(D){let $=D.usage??{};return[{type:"token_usage",usage:{inputTokens:$.input_tokens??0,outputTokens:$.output_tokens??0}}]}function Yc(D){if(!D.id||!D.name)return[];let $=D.arguments??{};return[{type:"tool_use",id:D.id,name:D.name,arguments:$,action:JC(D.name,$),...D.status?{status:Qc(D.status)}:{}}]}function Gc(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 Bc(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:YC(D.reason)}),$}function Hc(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 Wc(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:BC(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 Vc(D){return[{type:"error",error:BC(D.error)??"codex error"}]}function JC(D,$){let F=D.toLowerCase();if(F==="read"||F==="view"||F==="open_file")return{kind:"file_read",path:g9($,["path","file_path","filePath"])};if(F==="edit"||F==="write"||F==="apply_patch"||F==="patch"){let X=g9($,["path","file_path","filePath"]),J=_c($);return{kind:"file_edit",path:X,...J?{diff:J}:{}}}if(F==="bash"||F==="run_shell"||F==="shell"||F==="exec")return{kind:"command_run",command:g9($,["command","cmd","script"])};if(F==="grep"||F==="search"||F==="find")return{kind:"search",query:g9($,["query","pattern"])};if(F==="web_fetch"||F==="fetch"||F==="http_get")return{kind:"web_fetch",url:g9($,["url","uri"])};return{kind:"tool",toolName:D,...Object.keys($).length>0?{arguments:$}:{}}}function YC(D){switch(D){case"max_tokens":return"length";case"cancelled":return"cancelled";case"error":return"error";case"stop":default:return"stop"}}function Qc(D){switch(D){case"pending":return"pending";case"in_progress":return"running";case"completed":return"success";case"failed":return"failed";case"cancelled":return"denied";default:return"pending"}}function GC(...D){for(let $ of D)if(typeof $==="string"&&$.length>0)return $;return""}function g9(D,$){for(let F of $){let X=D[F];if(typeof X==="string"&&X.length>0)return X}return""}function BC(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 _c(D){if(typeof D.old_string==="string"&&typeof D.new_string==="string")return`- ${D.old_string}
286
+ `)}}function ip(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 np(D){let $=D.request;if(typeof $.tool_use_id==="string")return $.tool_use_id;if(typeof $.toolUseId==="string")return $.toolUseId;return}var $$;var OG=Z(()=>{$$={decide:async(D)=>({decision:"allow"})}});import{spawn as sp}from"child_process";import{once as rp}from"events";import ap from"fs/promises";import op from"path";import X$ from"process";class G${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 $=$c(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??sp,J=Fc(D.engineBinding);if(D.engineBinding!==void 0&&J===void 0)yield{type:"engine_binding",engine:J$,binding:null};let G,Y;try{({cmd:G,args:Y}=await this.resolveCommand(D.model,J))}catch(q){yield{type:"error",error:q instanceof Error?q.message:String(q)},yield{type:"finish",reason:"error"};return}let B=X(G,Y,{cwd:F,env:q2(this.options.env)}),H=new F$({policy:this.options.policy??$$,writeLine:(q)=>{try{B.stdin.write(q)}catch{}}});H.sendUserMessage($);let W=this.options.timeoutMs??tp,Q=setTimeout(()=>eE(B,"SIGKILL"),W),_="",U=null,A="",R=!1,O=rp(B,"exit").then((q)=>q[0]??null).catch((q)=>{return U=q instanceof Error?q.message:String(q),null});B.on("error",(q)=>{U=q.message});let K=()=>eE(B,"SIGTERM");D.signal?.addEventListener("abort",K,{once:!0});try{for await(let q of B.stdout){let{lines:N,remainder:S}=z1(_,q.toString("utf8"));_=S;for(let b of N){let L=KG(b);if(!L)continue;let z=Xc(L);if(z&&z!==A)A=z,yield{type:"engine_binding",engine:J$,binding:{sessionId:z}};if(L.type==="control_request"){let j=await H.handleLine(L);for(let d of j)yield d;continue}for(let j of AG(L)){if(j.type==="error"&&J!==void 0)yield{type:"engine_binding",engine:J$,binding:null};if(yield j,j.type==="finish")R=!0}if(R)break}if(R)break}}catch(q){yield{type:"error",error:q instanceof Error?q.message:String(q)}}finally{clearTimeout(Q),D.signal?.removeEventListener("abort",K),Dc(B)}let E=await O;if(!R){if(J!==void 0)yield{type:"engine_binding",engine:J$,binding:null};if(U)yield{type:"error",error:U};else if(E!==0&&E!==null)yield{type:"error",error:`Claude Code exited with code ${E}`};yield{type:"finish",reason:E===0?"stop":"error"}}}async resolveCommand(D,$){let F=DC(D??this.options.model,this.options.extraArgs,$),J=await(this.options.resolveClaudeBinary??ep)();if(J)return{cmd:J,args:F};return{cmd:"npx",args:["-y",`@anthropic-ai/claude-code@${this.options.cliVersion?.trim()||Y$}`,...F]}}}function DC(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 ep(){let D=X$.env.PATH??"",$=X$.platform==="win32"?";":":",F=X$.platform==="win32"?(X$.env.PATHEXT??".EXE").split(";"):[""];for(let X of D.split($)){if(!X)continue;for(let J of F){let G=op.join(X,`claude${J.toLowerCase()}`);try{if((await ap.stat(G)).isFile())return G}catch{}}}return null}function eE(D,$){try{D.kill($)}catch{}}function Dc(D){try{D.stdin.end()}catch{}}function $c(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 Fc(D){if(!D||typeof D.sessionId!=="string"||D.sessionId.length===0)return;return D.sessionId}function Xc(D){if(!D||typeof D!=="object"||Array.isArray(D))return"";let $=D.session_id;return typeof $==="string"&&$.length>0?$:""}var Y$="2.1.112",tp=120000,J$="claude-code";var $C=Z(()=>{L1();OG()});var FC=Z(()=>{$C();OG()});function EG(D){let $=D.params??{};switch(D.method){case"codex/event/assistant_message":return XC($);case"codex/event/thinking":return JC($);case"codex/event/token_usage":return Jc($);case"codex/event/tool_call":return Yc($);case"codex/event/tool_result":return Gc($);case"codex/event/stop":return Bc($);case"codex/event/error":return[{type:"error",error:typeof $.message==="string"?$.message:"codex error"}];case"item/agentMessage/delta":return XC($);case"item/reasoning/textDelta":case"item/reasoning/summaryTextDelta":return JC($);case"thread/tokenUsage/updated":return Hc($);case"turn/completed":return Wc($);case"error":return Vc($);default:return[]}}function XC(D){let $=BC(D.delta,D.text);if(!$)return[];return[{type:"assistant_message_delta",delta:$}]}function JC(D){let $=BC(D.delta,D.text);if(!$)return[];return[{type:"thinking_delta",delta:$}]}function Jc(D){let $=D.usage??{};return[{type:"token_usage",usage:{inputTokens:$.input_tokens??0,outputTokens:$.output_tokens??0}}]}function Yc(D){if(!D.id||!D.name)return[];let $=D.arguments??{};return[{type:"tool_use",id:D.id,name:D.name,arguments:$,action:YC(D.name,$),...D.status?{status:Qc(D.status)}:{}}]}function Gc(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 Bc(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:GC(D.reason)}),$}function Hc(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 Wc(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:RG(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 Vc(D){let $=RG(D.error)??RG(D);if(_c($))return[];return[{type:"error",error:$??"codex error"}]}function YC(D,$){let F=D.toLowerCase();if(F==="read"||F==="view"||F==="open_file")return{kind:"file_read",path:g9($,["path","file_path","filePath"])};if(F==="edit"||F==="write"||F==="apply_patch"||F==="patch"){let X=g9($,["path","file_path","filePath"]),J=Uc($);return{kind:"file_edit",path:X,...J?{diff:J}:{}}}if(F==="bash"||F==="run_shell"||F==="shell"||F==="exec")return{kind:"command_run",command:g9($,["command","cmd","script"])};if(F==="grep"||F==="search"||F==="find")return{kind:"search",query:g9($,["query","pattern"])};if(F==="web_fetch"||F==="fetch"||F==="http_get")return{kind:"web_fetch",url:g9($,["url","uri"])};return{kind:"tool",toolName:D,...Object.keys($).length>0?{arguments:$}:{}}}function GC(D){switch(D){case"max_tokens":return"length";case"cancelled":return"cancelled";case"error":return"error";case"stop":default:return"stop"}}function Qc(D){switch(D){case"pending":return"pending";case"in_progress":return"running";case"completed":return"success";case"failed":return"failed";case"cancelled":return"denied";default:return"pending"}}function BC(...D){for(let $ of D)if(typeof $==="string"&&$.length>0)return $;return""}function g9(D,$){for(let F of $){let X=D[F];if(typeof X==="string"&&X.length>0)return X}return""}function RG(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 _c(D){return/^Reconnecting\.\.\. \d+\/\d+$/.test(D?.trim()??"")}function Uc(D){if(typeof D.old_string==="string"&&typeof D.new_string==="string")return`- ${D.old_string}
287
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 EG=()=>{};import{spawn as Uc}from"child_process";import{once as Ac}from"events";import Kc from"fs/promises";import Oc from"path";import c6 from"process";class W${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 $=Nc(D.messages);if($===null){yield{type:"error",error:"Codex executor requires a user message"},yield{type:"finish",reason:"error"};return}let F=Pc(D.messages),X=D.workspacePath??this.options.fallbackWorkspacePath??c6.cwd(),J;try{J=await this.resolveCommand()}catch(E){yield{type:"error",error:E instanceof Error?E.message:String(E)},yield{type:"finish",reason:"error"};return}let Y=(this.options.spawn??Uc)(J.cmd,J.args,{cwd:X,env:q2(this.options.env)}),B=new VC,H=new u8({writeLine:(E)=>{try{Y.stdin.write(E)}catch{}},onNotification:(E)=>this.handleNotification(E,B),onRequest:(E)=>this.handleInboundRequest(E),onError:(E)=>B.push({type:"error",error:E.message}),requestTimeoutMs:this.options.timeoutMs??HC}),W="",Q=(E)=>{let{lines:q,remainder:N}=j1(W,E.toString("utf8"));W=N;for(let S of q)H.handleLine(S)};Y.stdout.on("data",Q);let _=null;Y.on("error",(E)=>{_=E.message});let U=Ac(Y,"exit").then((E)=>E[0]??null).catch((E)=>{return _=E instanceof Error?E.message:String(E),null});U.then((E)=>{if(E===0)return;let q=_??(E===null?"codex child exited unexpectedly":`codex child exited with code ${E}`);B.close({kind:"error",message:q}),H.dispose(q)});let A=this.options.timeoutMs??HC,R=setTimeout(()=>WC(Y,"SIGKILL"),A),O=!1,K=()=>{O=!0,WC(Y,"SIGTERM")};D.signal?.addEventListener("abort",K,{once:!0});try{await H.request("initialize",{protocolVersion:Rc,clientInfo:{name:"aiworker",version:"0.2.0"},capabilities:{experimentalApi:!0}});let E=D.model??this.options.model,q=Cc(D.engineBinding);if(D.engineBinding!==void 0&&q===null)yield{type:"engine_binding",engine:B$,binding:null};let N;if(q?.protocol==="current")try{N=await this.resumeCurrentThread(H,q,E,X)}catch{yield{type:"engine_binding",engine:B$,binding:null},N=await this.startThread(H,E,X)}else N=await this.startThread(H,E,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(T){if(!N.resumed)throw T;yield{type:"engine_binding",engine:B$,binding:null},N=await this.startThread(H,E,X),S=F,await this.startCurrentTurn(H,N.threadId,S)}yield{type:"engine_binding",engine:B$,binding:{...Mc(N)}}}let b=!1;for await(let T of B.iter())if(yield T,T.type==="finish")b=!0;let P=B.terminal;if(P?.kind==="error")yield{type:"error",error:P.message},yield{type:"finish",reason:O?"cancelled":"error"};else if(!b)yield{type:"finish",reason:O?"cancelled":"stop"}}catch(E){yield{type:"error",error:E instanceof Error?E.message:String(E)},yield{type:"finish",reason:O?"cancelled":"error"}}finally{clearTimeout(R),D.signal?.removeEventListener("abort",K),H.dispose("run ended"),Y.stdout.off("data",Q),qc(Y),await U.catch(()=>null)}}handleNotification(D,$){for(let F of RG(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(!Ec(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??Zc)();if(F)return{cmd:F,args:D};return{cmd:"npx",args:["-y",`@openai/codex@${this.options.cliVersion?.trim()||c6.env.CODEX_CLI_VERSION?.trim()||H$}`,...D]}}}function Ec(D){if(!(D instanceof Error))return!1;return D.message.includes("thread_start")||D.message.includes("unknown variant")||D.message.includes("Invalid request")}function Cc(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 Mc(D){return{protocol:"current",threadId:D.threadId,...D.path===void 0?{}:{path:D.path}}}class VC{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 Zc(){let D=c6.env.PATH??"",$=c6.platform==="win32"?";":":",F=c6.platform==="win32"?(c6.env.PATHEXT??".EXE").split(";"):[""];for(let X of D.split($)){if(!X)continue;for(let J of F){let G=Oc.join(X,`codex${J.toLowerCase()}`);try{if((await Kc.stat(G)).isFile())return G}catch{}}}return null}function WC(D,$){try{D.kill($)}catch{}}function qc(D){try{D.stdin.end()}catch{}}function Nc(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 Pc(D){return D.filter(($)=>$.content.trim().length>0).map(($)=>{let F=$.role==="system"?"System":$.role==="assistant"?"Assistant":$.role==="tool"?"Tool":"User";return`<${F}>
288
+ + ${D.newText}`;if(typeof D.diff==="string")return D.diff;if(typeof D.content==="string")return D.content;return}var CG=()=>{};import{spawn as Ac}from"child_process";import{once as Kc}from"events";import Oc from"fs/promises";import Rc from"path";import c6 from"process";class W${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 $=Pc(D.messages);if($===null){yield{type:"error",error:"Codex executor requires a user message"},yield{type:"finish",reason:"error"};return}let F=Lc(D.messages),X=D.workspacePath??this.options.fallbackWorkspacePath??c6.cwd(),J;try{J=await this.resolveCommand()}catch(E){yield{type:"error",error:E instanceof Error?E.message:String(E)},yield{type:"finish",reason:"error"};return}let Y=(this.options.spawn??Ac)(J.cmd,J.args,{cwd:X,env:q2(this.options.env)}),B=new VC,H=new u8({writeLine:(E)=>{try{Y.stdin.write(E)}catch{}},onNotification:(E)=>this.handleNotification(E,B),onRequest:(E)=>this.handleInboundRequest(E),onError:(E)=>B.push({type:"error",error:E.message}),requestTimeoutMs:this.options.timeoutMs??HC}),W="",Q=(E)=>{let{lines:q,remainder:N}=j1(W,E.toString("utf8"));W=N;for(let S of q)H.handleLine(S)};Y.stdout.on("data",Q);let _=null;Y.on("error",(E)=>{_=E.message});let U=Kc(Y,"exit").then((E)=>E[0]??null).catch((E)=>{return _=E instanceof Error?E.message:String(E),null});U.then((E)=>{if(E===0)return;let q=_??(E===null?"codex child exited unexpectedly":`codex child exited with code ${E}`);B.close({kind:"error",message:q}),H.dispose(q)});let A=this.options.timeoutMs??HC,R=setTimeout(()=>WC(Y,"SIGKILL"),A),O=!1,K=()=>{O=!0,WC(Y,"SIGTERM")};D.signal?.addEventListener("abort",K,{once:!0});try{await H.request("initialize",{protocolVersion:Ec,clientInfo:{name:"aiworker",version:"0.2.0"},capabilities:{experimentalApi:!0}});let E=D.model??this.options.model,q=Mc(D.engineBinding);if(D.engineBinding!==void 0&&q===null)yield{type:"engine_binding",engine:B$,binding:null};let N;if(q?.protocol==="current")try{N=await this.resumeCurrentThread(H,q,E,X)}catch{yield{type:"engine_binding",engine:B$,binding:null},N=await this.startThread(H,E,X)}else N=await this.startThread(H,E,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(z){if(!N.resumed)throw z;yield{type:"engine_binding",engine:B$,binding:null},N=await this.startThread(H,E,X),S=F,await this.startCurrentTurn(H,N.threadId,S)}yield{type:"engine_binding",engine:B$,binding:{...Zc(N)}}}let b=!1;for await(let z of B.iter())if(yield z,z.type==="finish")b=!0;let L=B.terminal;if(L?.kind==="error")yield{type:"error",error:L.message},yield{type:"finish",reason:O?"cancelled":"error"};else if(!b)yield{type:"finish",reason:O?"cancelled":"stop"}}catch(E){yield{type:"error",error:E instanceof Error?E.message:String(E)},yield{type:"finish",reason:O?"cancelled":"error"}}finally{clearTimeout(R),D.signal?.removeEventListener("abort",K),H.dispose("run ended"),Y.stdout.off("data",Q),Nc(Y),await U.catch(()=>null)}}handleNotification(D,$){for(let F of EG(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(!Cc(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??qc)();if(F)return{cmd:F,args:D};return{cmd:"npx",args:["-y",`@openai/codex@${this.options.cliVersion?.trim()||c6.env.CODEX_CLI_VERSION?.trim()||H$}`,...D]}}}function Cc(D){if(!(D instanceof Error))return!1;return D.message.includes("thread_start")||D.message.includes("unknown variant")||D.message.includes("Invalid request")}function Mc(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 Zc(D){return{protocol:"current",threadId:D.threadId,...D.path===void 0?{}:{path:D.path}}}class VC{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 qc(){let D=c6.env.PATH??"",$=c6.platform==="win32"?";":":",F=c6.platform==="win32"?(c6.env.PATHEXT??".EXE").split(";"):[""];for(let X of D.split($)){if(!X)continue;for(let J of F){let G=Rc.join(X,`codex${J.toLowerCase()}`);try{if((await Oc.stat(G)).isFile())return G}catch{}}}return null}function WC(D,$){try{D.kill($)}catch{}}function Nc(D){try{D.stdin.end()}catch{}}function Pc(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 Lc(D){return D.filter(($)=>$.content.trim().length>0).map(($)=>{let F=$.role==="system"?"System":$.role==="assistant"?"Assistant":$.role==="tool"?"Tool":"User";return`<${F}>
289
289
  ${$.content}
290
290
  </${F}>`}).join(`
291
291
 
292
- `)}var H$="0.121.0",HC=120000,Rc=1,B$="codex";var QC=Z(()=>{L1();EG()});var _C=Z(()=>{QC();EG()});function CG(D){try{let $=JSON.parse(D);if($&&typeof $==="object"&&"type"in $&&typeof $.type==="string")return $;return null}catch{return null}}function MG(D){switch(D.type){case"system":return[];case"assistant_message":return Lc(D);case"thinking":return jc(D);case"tool_use":return zc(D);case"tool_result":return Ic(D);case"token_usage":return Tc(D);case"stop":case"end":return wc(D);case"error":return[{type:"error",error:typeof D.message==="string"?D.message:"cursor error"}];default:return[]}}function ZG(D){let $=D.session_id;if(typeof $==="string"&&$.length>0)return $;return""}function Lc(D){let $=KC(D.delta,D.text);if(!$)return[];return[{type:"assistant_message_delta",delta:$}]}function jc(D){let $=KC(D.delta,D.text);if(!$)return[];return[{type:"thinking_delta",delta:$}]}function zc(D){if(!D.id||!D.name)return[];let $=D.input??{};return[{type:"tool_use",id:D.id,name:D.name,arguments:$,action:AC(D.name,$),...D.status?{status:Sc(D.status)}:{}}]}function Ic(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 Tc(D){let $=D.usage??{};return[{type:"token_usage",usage:{inputTokens:$.input_tokens??0,outputTokens:$.output_tokens??0}}]}function wc(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:UC(D.reason)}),$}function UC(D){switch(D){case"length":return"length";case"cancelled":return"cancelled";case"error":return"error";case"stop":case"end_turn":default:return"stop"}}function Sc(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 AC(D,$){let F=D.toLowerCase();if(F==="read_file"||F==="read"||F==="view"||F==="open")return{kind:"file_read",path:y9($,["path","file_path","filePath"])};if(F==="edit_file"||F==="edit"||F==="write"||F==="write_file"||F==="apply_patch"){let X=y9($,["path","file_path","filePath"]),J=bc($);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:y9($,["command","cmd","script"])};if(F==="grep"||F==="grep_search"||F==="codebase_search"||F==="search"||F==="find")return{kind:"search",query:y9($,["query","pattern"])};if(F==="web_fetch"||F==="fetch"||F==="web_search")return{kind:"web_fetch",url:y9($,["url","uri"])};return{kind:"tool",toolName:D,...Object.keys($).length>0?{arguments:$}:{}}}function KC(...D){for(let $ of D)if(typeof $==="string"&&$.length>0)return $;return""}function y9(D,$){for(let F of $){let X=D[F];if(typeof X==="string"&&X.length>0)return X}return""}function bc(D){if(typeof D.old_string==="string"&&typeof D.new_string==="string")return`- ${D.old_string}
292
+ `)}var H$="0.121.0",HC=120000,Ec=1,B$="codex";var QC=Z(()=>{L1();CG()});var _C=Z(()=>{QC();CG()});function MG(D){try{let $=JSON.parse(D);if($&&typeof $==="object"&&"type"in $&&typeof $.type==="string")return $;return null}catch{return null}}function ZG(D){switch(D.type){case"system":return[];case"assistant_message":return jc(D);case"thinking":return zc(D);case"tool_use":return Ic(D);case"tool_result":return Tc(D);case"token_usage":return wc(D);case"stop":case"end":return Sc(D);case"error":return[{type:"error",error:typeof D.message==="string"?D.message:"cursor error"}];default:return[]}}function qG(D){let $=D.session_id;if(typeof $==="string"&&$.length>0)return $;return""}function jc(D){let $=KC(D.delta,D.text);if(!$)return[];return[{type:"assistant_message_delta",delta:$}]}function zc(D){let $=KC(D.delta,D.text);if(!$)return[];return[{type:"thinking_delta",delta:$}]}function Ic(D){if(!D.id||!D.name)return[];let $=D.input??{};return[{type:"tool_use",id:D.id,name:D.name,arguments:$,action:AC(D.name,$),...D.status?{status:bc(D.status)}:{}}]}function Tc(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 wc(D){let $=D.usage??{};return[{type:"token_usage",usage:{inputTokens:$.input_tokens??0,outputTokens:$.output_tokens??0}}]}function Sc(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:UC(D.reason)}),$}function UC(D){switch(D){case"length":return"length";case"cancelled":return"cancelled";case"error":return"error";case"stop":case"end_turn":default:return"stop"}}function bc(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 AC(D,$){let F=D.toLowerCase();if(F==="read_file"||F==="read"||F==="view"||F==="open")return{kind:"file_read",path:y9($,["path","file_path","filePath"])};if(F==="edit_file"||F==="edit"||F==="write"||F==="write_file"||F==="apply_patch"){let X=y9($,["path","file_path","filePath"]),J=fc($);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:y9($,["command","cmd","script"])};if(F==="grep"||F==="grep_search"||F==="codebase_search"||F==="search"||F==="find")return{kind:"search",query:y9($,["query","pattern"])};if(F==="web_fetch"||F==="fetch"||F==="web_search")return{kind:"web_fetch",url:y9($,["url","uri"])};return{kind:"tool",toolName:D,...Object.keys($).length>0?{arguments:$}:{}}}function KC(...D){for(let $ of D)if(typeof $==="string"&&$.length>0)return $;return""}function y9(D,$){for(let F of $){let X=D[F];if(typeof X==="string"&&X.length>0)return X}return""}function fc(D){if(typeof D.old_string==="string"&&typeof D.new_string==="string")return`- ${D.old_string}
293
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 qG=()=>{};import{spawn as fc}from"child_process";import{once as kc}from"events";import vc from"fs/promises";import hc from"path";import u9 from"process";class Q${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 $=uc(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??u9.cwd(),X=mc(D.engineBinding);if(D.engineBinding!==void 0&&X===void 0)yield{type:"engine_binding",engine:V$,binding:null};let J;try{J=await this.resolveCommand(D.model,X)}catch(E){yield{type:"error",error:E instanceof Error?E.message:String(E)},yield{type:"finish",reason:"error"};return}let Y=(this.options.spawn??fc)(J.cmd,J.args,{cwd:F,env:q2(this.options.env)});try{Y.stdin.write($),Y.stdin.end()}catch{}let B=this.options.timeoutMs??xc,H=setTimeout(()=>OC(Y,"SIGKILL"),B),W="",Q=null,_="",U=!1,A=kc(Y,"exit").then((E)=>E[0]??null).catch((E)=>{return Q=E instanceof Error?E.message:String(E),null});Y.on("error",(E)=>{Q=E.message});let R=!1,O=()=>{R=!0,OC(Y,"SIGTERM")};D.signal?.addEventListener("abort",O,{once:!0});try{for await(let E of Y.stdout){let{lines:q,remainder:N}=z1(W,E.toString("utf8"));W=N;for(let S of q){let b=CG(S);if(!b)continue;let P=ZG(b);if(P){if(this.lastSessionId=P,P!==_)_=P,yield{type:"engine_binding",engine:V$,binding:{sessionId:P}}}for(let T of MG(b)){if(T.type==="error"&&X!==void 0)yield{type:"engine_binding",engine:V$,binding:null};if(yield T,T.type==="finish")U=!0}if(U)break}if(U)break}}catch(E){yield{type:"error",error:E instanceof Error?E.message:String(E)}}finally{clearTimeout(H),D.signal?.removeEventListener("abort",O),yc(Y)}let K=await A;if(!U){if(X!==void 0)yield{type:"engine_binding",engine:V$,binding:null};if(Q)yield{type:"error",error:Q};else if(K!==0&&K!==null)yield{type:"error",error:`cursor-agent exited with code ${K}`};yield{type:"finish",reason:R?"cancelled":K===0?"stop":"error"}}}async resolveCommand(D,$){let X=await(this.options.resolveBinary??gc)();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=RC({model:J,...G===void 0?{}:{resumeSessionId:G},...this.options.extraArgs===void 0?{}:{extraArgs:this.options.extraArgs}});return{cmd:X,args:Y}}}function RC(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 gc(){let D=u9.env.PATH??"",$=u9.platform==="win32"?";":":",F=u9.platform==="win32"?(u9.env.PATHEXT??".EXE").split(";"):[""];for(let X of D.split($)){if(!X)continue;for(let J of F){let G=hc.join(X,`cursor-agent${J.toLowerCase()}`);try{if((await vc.stat(G)).isFile())return G}catch{}}}return null}function OC(D,$){try{D.kill($)}catch{}}function yc(D){try{D.stdin.end()}catch{}}function uc(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 mc(D){if(!D||typeof D.sessionId!=="string"||D.sessionId.length===0)return;return D.sessionId}var xc=120000,V$="cursor";var EC=Z(()=>{L1();qG()});var CC=Z(()=>{EC();qG()});class PG{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*MC(this.primary,D);if($.kind==="ok")return;if($.yielded)throw $.error;let F=pc($.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*MC(J.executor,D);if(B.kind==="ok")return;if(B.yielded)throw B.error;X=B.error}}throw X}}async function*MC(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 pc(D){if(D===null||D===void 0)return"unknown";let $=ZC(D,"status")??ZC(D,"statusCode"),F=NG(D,"code"),X=NG(D,"name"),G=(NG(D,"message")??cc(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 ZC(D,$){if(typeof D!=="object"||D===null)return;let F=D[$];return typeof F==="number"?F:void 0}function NG(D,$){if(typeof D!=="object"||D===null)return;let F=D[$];return typeof F==="string"?F:void 0}function cc(D){if(typeof D==="string")return D;if(D instanceof Error)return D.message;try{return String(D)}catch{return""}}import{Buffer as qC}from"buffer";import{spawn as NC}from"child_process";import{once as PC}from"events";class LG{opts;name="cli";constructor(D){this.opts=D}async health(){let D=new Date().toISOString();try{let $=NC(this.opts.command,["--version"],{cwd:this.opts.cwd,env:q2(this.opts.env),stdio:["ignore","pipe","pipe"]}),F=await Promise.race([PC($,"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=NC(this.opts.command,this.opts.args,{cwd:this.opts.cwd,env:q2(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 PC(F,"exit");if(clearTimeout(G),Y!==0){let B=qC.concat(J).toString("utf8");throw Error(`CLI executor exited with ${Y??"null"}: ${B||"(no stderr)"}`)}return qC.concat(X).toString("utf8")}}var LC=Z(()=>{L1()});var dc,lc,ic,_$;var jG=Z(()=>{yD();dc=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()}),lc=V.object({role:V.enum(["system","user","assistant","tool"]).optional(),content:V.string().nullable().optional(),tool_calls:V.array(dc).optional()}),ic=V.object({prompt_tokens:V.number(),completion_tokens:V.number(),total_tokens:V.number()}),_$=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:lc,finish_reason:V.enum(["stop","length","tool_calls","content_filter","function_call"]).nullable()})),usage:ic.nullish()})});async function zG(D){let $=D.baseUrl.replace(/\/+$/,""),F=D.timeoutMs??nc,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 m9(Y.status,Y.statusText,B)}if(!Y.body)throw clearTimeout(J),D.signal?.removeEventListener("abort",G),Error("OpenAI response has no body");return sc(Y.body,()=>{clearTimeout(J),D.signal?.removeEventListener("abort",G)})}async function*sc(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=rc(J);if(B===-1)break;let H=J.slice(0,B);J=J.slice(B).replace(/^\r?\n\r?\n/,"");let W=jC(H);if(!W)continue;if(W==="[DONE]"){yield{type:"done"};return}let Q;try{Q=JSON.parse(W)}catch{continue}let _=_$.safeParse(Q);if(!_.success)continue;yield{type:"chunk",chunk:_.data}}}if(J.trim().length>0){let G=jC(J);if(G&&G!=="[DONE]")try{let Y=JSON.parse(G),B=_$.safeParse(Y);if(B.success)yield{type:"chunk",chunk:B.data}}catch{}}}finally{$();try{F.releaseLock()}catch{}}}function rc(D){let $=D.indexOf(`
294
+ + ${D.newText}`;if(typeof D.diff==="string")return D.diff;if(typeof D.content==="string")return D.content;return}var NG=()=>{};import{spawn as kc}from"child_process";import{once as vc}from"events";import hc from"fs/promises";import xc from"path";import u9 from"process";class Q${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 $=mc(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??u9.cwd(),X=pc(D.engineBinding);if(D.engineBinding!==void 0&&X===void 0)yield{type:"engine_binding",engine:V$,binding:null};let J;try{J=await this.resolveCommand(D.model,X)}catch(E){yield{type:"error",error:E instanceof Error?E.message:String(E)},yield{type:"finish",reason:"error"};return}let Y=(this.options.spawn??kc)(J.cmd,J.args,{cwd:F,env:q2(this.options.env)});try{Y.stdin.write($),Y.stdin.end()}catch{}let B=this.options.timeoutMs??gc,H=setTimeout(()=>OC(Y,"SIGKILL"),B),W="",Q=null,_="",U=!1,A=vc(Y,"exit").then((E)=>E[0]??null).catch((E)=>{return Q=E instanceof Error?E.message:String(E),null});Y.on("error",(E)=>{Q=E.message});let R=!1,O=()=>{R=!0,OC(Y,"SIGTERM")};D.signal?.addEventListener("abort",O,{once:!0});try{for await(let E of Y.stdout){let{lines:q,remainder:N}=z1(W,E.toString("utf8"));W=N;for(let S of q){let b=MG(S);if(!b)continue;let L=qG(b);if(L){if(this.lastSessionId=L,L!==_)_=L,yield{type:"engine_binding",engine:V$,binding:{sessionId:L}}}for(let z of ZG(b)){if(z.type==="error"&&X!==void 0)yield{type:"engine_binding",engine:V$,binding:null};if(yield z,z.type==="finish")U=!0}if(U)break}if(U)break}}catch(E){yield{type:"error",error:E instanceof Error?E.message:String(E)}}finally{clearTimeout(H),D.signal?.removeEventListener("abort",O),uc(Y)}let K=await A;if(!U){if(X!==void 0)yield{type:"engine_binding",engine:V$,binding:null};if(Q)yield{type:"error",error:Q};else if(K!==0&&K!==null)yield{type:"error",error:`cursor-agent exited with code ${K}`};yield{type:"finish",reason:R?"cancelled":K===0?"stop":"error"}}}async resolveCommand(D,$){let X=await(this.options.resolveBinary??yc)();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=RC({model:J,...G===void 0?{}:{resumeSessionId:G},...this.options.extraArgs===void 0?{}:{extraArgs:this.options.extraArgs}});return{cmd:X,args:Y}}}function RC(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 yc(){let D=u9.env.PATH??"",$=u9.platform==="win32"?";":":",F=u9.platform==="win32"?(u9.env.PATHEXT??".EXE").split(";"):[""];for(let X of D.split($)){if(!X)continue;for(let J of F){let G=xc.join(X,`cursor-agent${J.toLowerCase()}`);try{if((await hc.stat(G)).isFile())return G}catch{}}}return null}function OC(D,$){try{D.kill($)}catch{}}function uc(D){try{D.stdin.end()}catch{}}function mc(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 pc(D){if(!D||typeof D.sessionId!=="string"||D.sessionId.length===0)return;return D.sessionId}var gc=120000,V$="cursor";var EC=Z(()=>{L1();NG()});var CC=Z(()=>{EC();NG()});class LG{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*MC(this.primary,D);if($.kind==="ok")return;if($.yielded)throw $.error;let F=cc($.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*MC(J.executor,D);if(B.kind==="ok")return;if(B.yielded)throw B.error;X=B.error}}throw X}}async function*MC(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 cc(D){if(D===null||D===void 0)return"unknown";let $=ZC(D,"status")??ZC(D,"statusCode"),F=PG(D,"code"),X=PG(D,"name"),G=(PG(D,"message")??dc(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 ZC(D,$){if(typeof D!=="object"||D===null)return;let F=D[$];return typeof F==="number"?F:void 0}function PG(D,$){if(typeof D!=="object"||D===null)return;let F=D[$];return typeof F==="string"?F:void 0}function dc(D){if(typeof D==="string")return D;if(D instanceof Error)return D.message;try{return String(D)}catch{return""}}import{Buffer as qC}from"buffer";import{spawn as NC}from"child_process";import{once as PC}from"events";class jG{opts;name="cli";constructor(D){this.opts=D}async health(){let D=new Date().toISOString();try{let $=NC(this.opts.command,["--version"],{cwd:this.opts.cwd,env:q2(this.opts.env),stdio:["ignore","pipe","pipe"]}),F=await Promise.race([PC($,"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=NC(this.opts.command,this.opts.args,{cwd:this.opts.cwd,env:q2(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 PC(F,"exit");if(clearTimeout(G),Y!==0){let B=qC.concat(J).toString("utf8");throw Error(`CLI executor exited with ${Y??"null"}: ${B||"(no stderr)"}`)}return qC.concat(X).toString("utf8")}}var LC=Z(()=>{L1()});var lc,ic,nc,_$;var zG=Z(()=>{yD();lc=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()}),ic=V.object({role:V.enum(["system","user","assistant","tool"]).optional(),content:V.string().nullable().optional(),tool_calls:V.array(lc).optional()}),nc=V.object({prompt_tokens:V.number(),completion_tokens:V.number(),total_tokens:V.number()}),_$=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:ic,finish_reason:V.enum(["stop","length","tool_calls","content_filter","function_call"]).nullable()})),usage:nc.nullish()})});async function IG(D){let $=D.baseUrl.replace(/\/+$/,""),F=D.timeoutMs??sc,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 m9(Y.status,Y.statusText,B)}if(!Y.body)throw clearTimeout(J),D.signal?.removeEventListener("abort",G),Error("OpenAI response has no body");return rc(Y.body,()=>{clearTimeout(J),D.signal?.removeEventListener("abort",G)})}async function*rc(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=ac(J);if(B===-1)break;let H=J.slice(0,B);J=J.slice(B).replace(/^\r?\n\r?\n/,"");let W=jC(H);if(!W)continue;if(W==="[DONE]"){yield{type:"done"};return}let Q;try{Q=JSON.parse(W)}catch{continue}let _=_$.safeParse(Q);if(!_.success)continue;yield{type:"chunk",chunk:_.data}}}if(J.trim().length>0){let G=jC(J);if(G&&G!=="[DONE]")try{let Y=JSON.parse(G),B=_$.safeParse(Y);if(B.success)yield{type:"chunk",chunk:B.data}}catch{}}}finally{$();try{F.releaseLock()}catch{}}}function ac(D){let $=D.indexOf(`
296
296
 
297
297
  `),F=D.indexOf(`\r
298
298
  \r
299
299
  `);if($===-1)return F;if(F===-1)return $;return Math.min($,F)}function jC(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 nc=60000,m9;var zC=Z(()=>{jG();m9=class m9 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 IC=Z(()=>{zC();jG()});class IG{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(oc),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(ac),$.tool_choice="auto";let F;try{F=await zG({baseUrl:this.baseUrl,apiKey:this.apiKey,timeoutMs:this.timeoutMs,body:$,signal:D.signal})}catch(Y){yield{type:"error",error:TC(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)tc(X,W);if(B.finish_reason)J=Dd(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:TC(Y)};return}for(let[,Y]of Array.from(X.entries()).sort(([B],[H])=>B-H)){let B=ec(Y);if(B)yield B}if(G)yield{type:"token_usage",usage:G};yield{type:"finish",reason:J??"stop",...G?{usage:G}:{}}}}function ac(D){return{type:"function",function:{name:D.name,description:D.description,parameters:D.inputSchema}}}function oc(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 tc(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 ec(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 Dd(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 TC(D){if(D instanceof m9)return D.message;if(D instanceof Error)return D.message;return"Unknown executor error"}var wC=Z(()=>{IC()});class TG{name="mcp";client;constructor(D){this.client=new m6({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 SC=Z(()=>{aY()});import bC from"process";function SG(D){let $=$d(D);if(!D.fallbacks||D.fallbacks.length===0)return $;let F=D.fallbacks.map((X)=>({executor:SG(X.executor),onErrorKinds:X.onErrorKinds,maxRetries:X.maxRetries??1}));return new PG($,F)}function $d(D){let $=o2(D);switch($.engine){case"http":{let F=$.body;return new IG({baseUrl:F.baseUrl,apiKey:F.apiKey,model:$.modelId??F.model,timeoutMs:F.timeoutMs})}case"mcp":{let F=$.body;return new TG({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=wG(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??bC.env.CLAUDE_CLI_VERSION??Y$,G=$.modelId??F.model,Y=fC(F.extraArgs,X?.extraArgs),B=wG(F.env,X?.env);return new G$({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=fC(F.extraArgs,X?.extraArgs),B=wG(F.env,X?.env),H=VG(F.agent);return new D$({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??bC.env.CODEX_CLI_VERSION??H$,G=$.modelId??F.model,Y=X?.extraArgs,B=X?.env;return new W$({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 Q$({...J===void 0?{}:{model:J},...G===void 0?{}:{extraArgs:G},...Y===void 0?{}:{env:Y},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}}}function fC(D,$){if(!D&&!$)return;return[...D??[],...$??[]]}function wG(D,$){if(!D&&!$)return;return{...D??{},...$??{}}}var kC=Z(()=>{J1();rE();$C();_C();CC();LC();wC();SC()});import{Buffer as vC}from"buffer";import{spawn as Fd}from"child_process";import{once as Xd}from"events";import d6 from"fs/promises";import X8 from"path";function hC(D,$,F){if(!yC.test(F))throw new A$(`invalid conversation id: ${F}`);let X=X8.resolve(D),J=X8.resolve(X,$);if(!xC(X,J))throw new A$(`workspace subdir "${$}" escapes root`);let G=X8.resolve(J,F);if(!xC(J,G))throw new A$(`workspace "${F}" escapes parent`);return G}function xC(D,$){let F=X8.relative(D,$);return F===""||!F.startsWith("..")&&!X8.isAbsolute(F)}class bG{root;subdir;gitOrigin;inflight=new Map;constructor(D){this.root=X8.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 $=hC(this.root,this.subdir,D);if(await U$($)){let F=await U$(X8.join($,".git"));return{conversationId:D,path:$,isGitWorktree:F}}if(await d6.mkdir(X8.dirname($),{recursive:!0}),this.gitOrigin)return await this.addGitWorktree(this.gitOrigin,$),{conversationId:D,path:$,isGitWorktree:!0};return await d6.mkdir($,{recursive:!0}),{conversationId:D,path:$,isGitWorktree:!1}}async disposeWorkspace(D){let $=hC(this.root,this.subdir,D);if(!await U$($))return;if(this.gitOrigin){if(await this.removeGitWorktree(this.gitOrigin,$))return}await d6.rm($,{recursive:!0,force:!0})}async purgeAll(){let D=X8.resolve(this.root,this.subdir);if(!await U$(D))return;let $=await d6.readdir(D);await Promise.all($.map(async(F)=>{if(!yC.test(F))return;await this.disposeWorkspace(F).catch(()=>{return})}))}async addGitWorktree(D,$){let F=await gC(["worktree","add","--detach",$],D);if(F.code!==0)throw await d6.mkdir($,{recursive:!0}),Error(`git worktree add failed (code=${F.code}): ${F.stderr.trim()}`)}async removeGitWorktree(D,$){return(await gC(["worktree","remove","--force",$],D)).code===0}}async function U$(D){try{return await d6.stat(D),!0}catch{return!1}}async function gC(D,$){let F=Fd("git",D,{cwd:$,env:uE(),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 Xd(F,"exit");return{code:G,stdout:vC.concat(X).toString("utf8"),stderr:vC.concat(J).toString("utf8")}}var yC,A$;var uC=Z(()=>{L1();yC=/^[\w-]{1,128}$/;A$=class A$ extends Error{constructor(D){super(D);this.name="WorkspaceEscapeError"}}});function mC(D){let $=[D.channel,D.accountId,D.chatId];if(D.threadId!==void 0)$.push(D.threadId);return $.map(encodeURIComponent).join(":")}async function pC(D){let $=B0(D);if(!$||$.status!=="active")return null;return u().select().from(c).where(uD(v(c.id,$.currentConversationId),v(c.status,"open"))).get()??null}async function cC(D){let $=u(),F=D.threadId?uD(v(WD.channel,D.channel),v(WD.chatId,D.chatId),v(WD.threadId,D.threadId)):uD(v(WD.channel,D.channel),v(WD.chatId,D.chatId),j3(WD.threadId));return $.select({sessionKey:WD.sessionKey}).from(WD).where(F).limit(1).get()!==void 0}async function dC(D){let $=u(),F=D.threadId?uD(v(c.channel,D.channel),v(c.chatId,D.chatId),v(c.threadId,D.threadId),v(c.status,"open")):uD(v(c.channel,D.channel),v(c.chatId,D.chatId),j3(c.threadId),v(c.status,"open"));return $.select().from(c).where(F).orderBy(hD(c.lastActiveAt)).get()??null}function Yd(){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 Gd(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:Yd()},{role:"user",content:X.join(`
302
- `)}]}async function lC(D,$,F,X,J,G){let Y={messages:Gd(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 C.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 fG(D,$=Jd){return u().select({role:d.role,content:d.content,richMetadata:d.richMetadata}).from(d).where(v(d.conversationId,D)).orderBy(hD(d.id)).limit($*3).all().filter((J)=>!Bd(J)).slice(0,$).reverse().map((J)=>({role:J.role,content:J.content}))}function Bd(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 Jd=4;var iC=Z(()=>{TD();JD();_0()});function Qd(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 I1(D){return Vd+Qd(D.content)}function kG(D){return D.reduce(($,F)=>$+I1(F),0)}function _d(D){return D?.contextWindowTokens!==void 0||D?.reserveTokens!==void 0||D?.keepRecentTokens!==void 0||D?.compaction?.enabled===!0||D?.compaction?.triggerTokens!==void 0}function vG(D,$){if(!_d(D))return null;let F=D?.contextWindowTokens??Ud($)??Hd,X=Od(D?.reserveTokens??Kd(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 sC(D){let $=I1(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=I1(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 p9(D){try{let $=o2(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 Ud(D){try{let F=o2(D).body,X=Rd(F.contextWindowTokens);if(X!==null)return X;let J=p9(D);return J===void 0?null:Ad(J)}catch{return null}}function Ad(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 Kd(D){return Math.min(Wd,Math.floor(D/4))}function Od(D,$){return Math.max(0,Math.min(D,Math.max(0,$-1)))}function Rd(D){return typeof D==="number"&&Number.isInteger(D)&&D>0?D:null}var Hd=8192,Wd=1024,nC=2000,Vd=6;var rC=Z(()=>{J1()});function aC(D,$){if(!$)return"auto";for(let F of $.rules)if(Ed(F.pattern,D))return F.action;return $.default}function Ed(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 yG{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=DM(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=u(),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);Q6(G,{contextTokens:kG(W)});let Q=p9(this.deps.config.executor),_=tC($),U=DM($),A=this.deps.config.executor.engine,R=this.buildAgentRunInput({messages:W,model:Q,workspace:F,signal:X,sessionKey:G,engine:A}),O=await this.collectAssistantText(R,B.id,_,J,G,U);if(!O.ok&&O.staleBindingCleared===!0&&R.engineBinding!==void 0&&O.text.length===0)R=this.buildAgentRunInput({messages:W,model:Q,workspace:F,signal:X,sessionKey:G,engine:A}),O=await this.collectAssistantText(R,B.id,_,J,G,U);if(!O.ok&&this.isContextOverflowError(O.error)){let q=await this.maybeCompactConversation({conversation:B,sessionKey:G,workspace:F,signal:X,notifyActivity:J,force:!0});if(q.compacted){if(B=q.conversation,H=await this.buildSystemPrompt(B.summary??null),W=await this.buildRunContext(B.id,H),Q6(G,{contextTokens:kG(W)}),R=this.buildAgentRunInput({messages:W,model:Q,workspace:F,signal:X,sessionKey:G,engine:A}),O=await this.collectAssistantText(R,B.id,_,J,G,U),!O.ok&&O.staleBindingCleared===!0&&R.engineBinding!==void 0&&O.text.length===0)R=this.buildAgentRunInput({messages:W,model:Q,workspace:F,signal:X,sessionKey:G,engine:A}),O=await this.collectAssistantText(R,B.id,_,J,G,U)}}if(!O.ok){let q=O.error??"executor error";C.warn(`[orchestrator] executor error: ${q}`),this.deps.bus.emit("orchestrator.error",{conversationId:B.id,...U===void 0?{}:{gatewayConversationId:U},..._===void 0?{}:{taskId:_},error:q});return}let K=O.text,E=new Date().toISOString();Y.insert(d).values({conversationId:B.id,role:"assistant",content:K,createdAt:E}).run(),Y.update(c).set({lastActiveAt:E}).where(v(c.id,B.id)).run(),Q6(G,{at:E}),this.deps.bus.emit("orchestrator.finished",{conversationId:B.id,...U===void 0?{}:{gatewayConversationId:U},..._===void 0?{}:{taskId:_}}),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(xX(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 C.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=B0(D)?.engineBindings[$];return jd(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=H1(D);try{await J.send(X,{channel:D,chatId:$.chatId,...$.threadId===void 0?{}:{threadId:$.threadId},text:F})}catch(G){C.warn(`[orchestrator] deliver to ${D} failed: ${String(G)}`)}}async resolveConversation(D){let $=mC(D),F=await pC($),J=(F?!0:await cC(D))?null:await dC(D),G=F??J;if(!G){let _=this.createConversation(D);return this.upsertSession($,D,_.id),{conversation:_,sessionKey:$}}if(J)this.upsertSession($,D,G.id);if(zd(D)){this.closeConversation(G);let _=this.createConversation(D);return this.rotateSession($,D,_.id,Id(D)),{conversation:_,sessionKey:$}}let Y=await this.provisionWorkspace(G.id),B=await fG(G.id),H=p9(this.deps.config.executor),W=await lC(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:xG(G),sessionKey:$};this.closeConversation(G);let Q=this.createConversation(D);return this.rotateSession($,D,Q.id,"classifier:new-topic"),{conversation:Q,sessionKey:$}}closeConversation(D){let $=u(),F=new Date().toISOString();$.update(c).set({status:"closed",closedAt:F}).where(v(c.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)=>C.warn(`[orchestrator] dispose workspace job failed: ${String(J)}`))}async provisionWorkspace(D){try{return await this.deps.workspaces.createWorkspace(D)}catch($){return C.warn(`[orchestrator] workspace create failed for ${D}: ${String($)}`),null}}async disposeWorkspace(D){try{await this.deps.workspaces.disposeWorkspace(D)}catch($){C.warn(`[orchestrator] workspace dispose failed for ${D}: ${String($)}`)}}createConversation(D){let $=u(),F=crypto.randomUUID(),X=new Date().toISOString();$.insert(c).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(c).where(v(c.id,F)).get(),G=tC(D);return this.deps.bus.emit("conversation.created",{conversationId:F,channel:D.channel,chatId:D.chatId,...G===void 0?{}:{taskId:G}}),xG(J)}upsertSession(D,$,F){kX({sessionKey:D,currentConversationId:F,channel:$.channel,chatId:$.chatId,...$.threadId===void 0?{}:{threadId:$.threadId},accountId:$.accountId})}rotateSession(D,$,F,X){if(!vX({sessionKey:D,currentConversationId:F,resetReason:X}))this.upsertSession(D,$,F)}persistUserMessage(D,$,F){let X=u(),J=new Date().toISOString(),G=$.richMetadata?JSON.stringify($.richMetadata):null,Y=X.insert(d).values({conversationId:D,role:"user",content:$.text,...G===null?{}:{richMetadata:G},createdAt:J}).returning({id:d.id}).all();return X.update(c).set({lastActiveAt:J}).where(v(c.id,D)).run(),Q6(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=vG(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=I1({role:"system",content:G}),B=Y+J.reduce((q,N)=>q+I1(K$(N)),0),H=$.triggerTokens??Math.max(0,F.contextWindowTokens-F.reserveTokens);if(!D.force&&B<=H)return{conversation:D.conversation,compacted:!1};let W=Math.min(F.keepRecentTokens,Math.max(0,H-Y)),{candidateRows:Q}=Cd(J,W);if(Q.length===0)return{conversation:D.conversation,compacted:!1};let _=Q[0].id,U=Q[Q.length-1].id,A=await this.runPreCompactionMemoryFlush({conversationId:D.conversation.id,previousSummary:D.conversation.summary??null,rows:Q,compaction:$,workspace:D.workspace,signal:D.signal,notifyActivity:D.notifyActivity,fromId:_,throughId:U}),R;try{R=await this.generateCompactionSummary({previousSummary:D.conversation.summary??null,rows:Q,compaction:$,workspace:D.workspace,signal:D.signal,notifyActivity:D.notifyActivity})}catch(q){return C.warn(`[orchestrator] compaction summary failed: ${String(q)}`),{conversation:D.conversation,compacted:!1}}let O=new Date().toISOString(),K=u();K.insert(d).values({conversationId:D.conversation.id,role:"system",content:R,richMetadata:JSON.stringify({kind:"compaction",version:oC,compactedFromMessageId:_,compactedThroughMessageId:U,sourceMessageCount:Q.length,previousCompactionMessageId:X?.messageId??null,memoryFlush:A.attempted?{status:A.status,at:A.at,...A.error===void 0?{}:{error:A.error}}:{status:"disabled"}}),createdAt:O}).run(),K.update(c).set({summary:R,lastActiveAt:O}).where(v(c.id,D.conversation.id)).run(),hX(D.sessionKey,{at:O,...A.attempted&&A.at!==void 0?{memoryFlushAt:A.at}:{}});let E=K.select().from(c).where(v(c.id,D.conversation.id)).get();return{conversation:E?xG(E):{...D.conversation,summary:R,lastActiveAt:O},compacted:!0}}async runPreCompactionMemoryFlush(D){if(D.compaction.memoryFlush?.enabled!==!0)return{attempted:!1};let $=new Date().toISOString(),F={kind:"memory-flush",version:oC,compactedFromMessageId:D.fromId,compactedThroughMessageId:D.throughId};try{let J=(await this.runSuppressedExecutor({messages:Nd(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 C.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:qd(D.previousSummary,D.rows,D.compaction),workspace:D.workspace,signal:D.signal,notifyActivity:D.notifyActivity})).trim();if(F.length>0)return F;return Pd(D.previousSummary,D.rows)}async runSuppressedExecutor(D){let $=p9(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){u().insert(d).values({conversationId:D,role:"system",content:$,richMetadata:JSON.stringify(F),createdAt:X}).run()}loadLatestCompactionCheckpoint(D){let F=u().select({id:d.id,role:d.role,richMetadata:d.richMetadata}).from(d).where(uD(v(d.conversationId,D),v(d.role,"system"))).orderBy(hD(d.id)).all();for(let X of F){let J=$M(X);if(J?.kind!=="compaction")continue;let G=Ld(J.compactedThroughMessageId);if(G!==null)return{messageId:X.id,compactedThroughMessageId:G}}return null}loadPromptTranscriptRows(D,$){let F=$===void 0?v(d.conversationId,D):uD(v(d.conversationId,D),L3(d.id,$));return u().select({id:d.id,role:d.role,content:d.content,toolCalls:d.toolCalls,toolCallId:d.toolCallId,richMetadata:d.richMetadata}).from(d).where(F).orderBy(S2(d.id)).all().filter((J)=>!eC(J))}loadPromptTranscriptRowsNewestFirst(D,$,F){let X=$===void 0?v(d.conversationId,D):uD(v(d.conversationId,D),L3(d.id,$));return u().select({id:d.id,role:d.role,content:d.content,toolCalls:d.toolCalls,toolCallId:d.toolCallId,richMetadata:d.richMetadata}).from(d).where(X).orderBy(hD(d.id)).limit(F*3).all().filter((G)=>!eC(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=vG(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 sC({systemMessage:F,historyNewestFirst:J,budget:X}).messages}async loadHistoryWindow(D){let $=this.deps.config.orchestrator?.maxHistoryMessages??N7,F=this.loadLatestCompactionCheckpoint(D);if(!F)return(await fG(D,$)).map((J)=>({role:J.role,content:J.content}));return this.loadPromptTranscriptRowsNewestFirst(D,F.compactedThroughMessageId,$).reverse().map(K$)}async loadBudgetHistory(D,$){let F=this.loadLatestCompactionCheckpoint(D);return this.loadPromptTranscriptRowsNewestFirst(D,F?.compactedThroughMessageId,$??nC).map(K$)}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 $=aC(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??sY,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=u(),X=new Date().toISOString();F.insert(d).values({conversationId:D,role:"assistant",content:$,createdAt:X}).run(),F.update(c).set({lastActiveAt:X}).where(v(c.id,D)).run()}async submitTask(D){let $=u(),F=crypto.randomUUID(),X=new Date().toISOString();$.insert(q8).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)=>C.error(`[orchestrator] submitTask ingest failed: ${String(G)}`)),{id:F}}}function tC(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 K$(D){return{role:D.role,content:D.content,...D.toolCalls===null?{}:{toolCalls:D.toolCalls},...D.toolCallId===null?{}:{toolCallId:D.toolCallId}}}function Cd(D,$){let F=[],X=0;for(let Y=D.length-1;Y>=0;Y-=1){let B=D[Y],H=I1(K$(B));if(F.length>0&&X+H>$)break;F.push(B),X+=H}let J=Md(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 Md(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=Zd(D,X);if(J===null||J>=X)break;X=J}return D.slice(X)}function Zd(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 qd(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:",uG($,F.maxSummaryMessages??gG)].join(`
305
- `)}]}function Nd(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:",uG($,F.maxSummaryMessages??gG)].join(`
307
- `)}]}function uG(D,$){if(D.length<=$)return D.map(hG).join(`
308
- `);let F=Math.ceil($/2),X=Math.floor($/2),J=D.length-F-X;return[...D.slice(0,F).map(hG),`... ${J} transcript rows omitted from summarizer prompt ...`,...D.slice(D.length-X).map(hG)].join(`
309
- `)}function hG(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 Pd(D,$){let F=$.length===0?"no rows":`rows #${$[0].id}-#${$[$.length-1].id}`;return[D?.trim()||"",`Compacted ${F}.`,uG($,Math.min(12,gG))].filter((X)=>X.length>0).join(`
310
-
311
- `)}function eC(D){if(D.role!=="system")return!1;let $=$M(D);return $?.kind==="compaction"||$?.kind==="memory-flush"}function $M(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 Ld(D){return typeof D==="number"&&Number.isInteger(D)&&D>0?D:null}function jd(D){return D!==null&&typeof D==="object"&&!Array.isArray(D)}function zd(D){if(!D.raw||typeof D.raw!=="object"||Array.isArray(D.raw))return!1;let $=D.raw;return $.source==="gateway"&&$.sessionReset===!0}function DM(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 Id(D){if(!D.raw||typeof D.raw!=="object"||Array.isArray(D.raw))return"manual";let $=D.raw.resetCommand;return $==="/new"||$==="/reset"?`manual:${$}`:"manual"}function xG(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 gG=120,oC=1;var FM=Z(()=>{J0();TD();JD();_0();s3();iC();a5();rC()});function T1(D,$,F){let X=jE(D,$),J=SG($.executor),G=new n3($.channels),Y=new H9,B=Td($),H=new q1,W=new yG({config:$,brain:X,executor:J,bus:Y,workerId:D,workspaces:B,processes:F.processes,approvals:H}),Q=IE(Y),_=$.evolution.enabled?vE():()=>{return},U=new B9({workerId:D,getOrchestrator:()=>W});return U.start(),{workerId:D,config:$,brain:X,executor:J,channels:G,bus:Y,orchestrator:W,cron:U,workspaces:B,processes:F.processes,approvals:H,dispose(){Q(),_(),H.dispose(),U.stop(),a_()}}}function Td(D){let $=(()=>{if(D.executor.engine!=="claude-code")return;try{let X=o2(D.executor).body.workspaceRoot;return typeof X==="string"&&X.length>0?X:void 0}catch{return}})();return new bG({root:i.WORKER_DATA_ROOT,...$?{subdir:$}:{},...i.WORKER_WORKSPACE_GIT_ORIGIN?{gitOrigin:i.WORKER_WORKSPACE_GIT_ORIGIN}:{}})}var XM=Z(()=>{P4();zE();pX();s3();zJ();IJ();TE();hE();J1();kC();uC();a5();FM()});var JM=Z(()=>{P4()});import{Buffer as l6}from"buffer";import{createCipheriv as wd,createDecipheriv as Sd,randomBytes as bd}from"crypto";class i6{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=l6.from(D,"hex"),this.key.length!==kd)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:U0.id}).from(U0).where(v(U0.key,D)).get(),Y=new Date().toISOString();if(G)await this.db.update(U0).set({valueEnc:F,nonce:X,authTag:J,updatedAt:Y}).where(v(U0.id,G.id)).run();else await this.db.insert(U0).values({key:D,valueEnc:F,nonce:X,authTag:J,createdAt:Y,updatedAt:Y}).run()}async get(D){let $=await this.db.select().from(U0).where(v(U0.key,D)).get();if(!$)return null;return this.decrypt($.valueEnc,$.nonce,$.authTag)}async list(){return(await this.db.select({key:U0.key}).from(U0).all()).map(($)=>$.key)}async remove(D){await this.db.delete(U0).where(v(U0.key,D)).run()}async removeAll(){await this.db.delete(U0).run()}encryptString(D){return this.encrypt(D)}decryptString(D,$,F){return this.decrypt(D,$,F)}encrypt(D){let $=bd(fd),F=wd(YM,this.key,$),X=l6.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=Sd(YM,this.key,l6.from($,"base64"));return X.setAuthTag(l6.from(F,"base64")),l6.concat([X.update(l6.from(D,"base64")),X.final()]).toString("utf8")}}var YM="aes-256-gcm",fd=12,kd=32;var mG=Z(()=>{TD();_0()});function mD(){if(!O$)O$=new i6(i.AIWORKER_MASTER_KEY,u());return O$}function GM(){O$=null}var O$=null;var BM=Z(()=>{TD();JM();mG();mG()});function n6(D={}){let $=R$(D.limit,vd,1,hd),F=R$(D.offset,0,0,Number.MAX_SAFE_INTEGER),X=u(),J=D.status===void 0?X.select().from(WD).orderBy(hD(WD.lastInteractionAt)).limit($+1).offset(F).all():X.select().from(WD).where(v(WD.status,D.status)).orderBy(hD(WD.lastInteractionAt)).limit($+1).offset(F).all();return{sessions:J.slice(0,$).map((Y)=>WM(Y,D.config)),page:{limit:$,offset:F,hasMore:J.length>$}}}function s6(D,$){let F=B0(D);return F===null?null:WM(F,$)}function r6(D={}){let $=D.apply===!0,F=pG(D);if(!$||F.planned.transcripts.length===0)return{...F,mode:$?"apply":"dry-run",applied:{conversationsDeleted:0,messagesDeleted:0}};let X=u(),J=F.planned.transcripts.map((H)=>H.conversationId);X.delete(c).where(uD(O8(c.id,J),M`${c.status} = 'closed'
300
+ `);if(X==="[DONE]")return"[DONE]";return X}var sc=60000,m9;var zC=Z(()=>{zG();m9=class m9 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 IC=Z(()=>{zC();zG()});class TG{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(tc),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(oc),$.tool_choice="auto";let F;try{F=await IG({baseUrl:this.baseUrl,apiKey:this.apiKey,timeoutMs:this.timeoutMs,body:$,signal:D.signal})}catch(Y){yield{type:"error",error:TC(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)ec(X,W);if(B.finish_reason)J=$d(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:TC(Y)};return}for(let[,Y]of Array.from(X.entries()).sort(([B],[H])=>B-H)){let B=Dd(Y);if(B)yield B}if(G)yield{type:"token_usage",usage:G};yield{type:"finish",reason:J??"stop",...G?{usage:G}:{}}}}function oc(D){return{type:"function",function:{name:D.name,description:D.description,parameters:D.inputSchema}}}function tc(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 ec(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 Dd(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 $d(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 TC(D){if(D instanceof m9)return D.message;if(D instanceof Error)return D.message;return"Unknown executor error"}var wC=Z(()=>{IC()});class wG{name="mcp";client;constructor(D){this.client=new m6({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 SC=Z(()=>{aY()});import bC from"process";function bG(D){let $=Fd(D);if(!D.fallbacks||D.fallbacks.length===0)return $;let F=D.fallbacks.map((X)=>({executor:bG(X.executor),onErrorKinds:X.onErrorKinds,maxRetries:X.maxRetries??1}));return new LG($,F)}function Fd(D){let $=o2(D);switch($.engine){case"http":{let F=$.body;return new TG({baseUrl:F.baseUrl,apiKey:F.apiKey,model:$.modelId??F.model,timeoutMs:F.timeoutMs})}case"mcp":{let F=$.body;return new wG({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=SG(F.env,X?.env);return new jG({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??bC.env.CLAUDE_CLI_VERSION??Y$,G=$.modelId??F.model,Y=fC(F.extraArgs,X?.extraArgs),B=SG(F.env,X?.env);return new G$({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=fC(F.extraArgs,X?.extraArgs),B=SG(F.env,X?.env),H=VG(F.agent);return new D$({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??bC.env.CODEX_CLI_VERSION??H$,G=$.modelId??F.model,Y=X?.extraArgs,B=X?.env;return new W$({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 Q$({...J===void 0?{}:{model:J},...G===void 0?{}:{extraArgs:G},...Y===void 0?{}:{env:Y},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}}}function fC(D,$){if(!D&&!$)return;return[...D??[],...$??[]]}function SG(D,$){if(!D&&!$)return;return{...D??{},...$??{}}}var kC=Z(()=>{J1();aE();FC();_C();CC();LC();wC();SC()});import{Buffer as vC}from"buffer";import{spawn as Xd}from"child_process";import{once as Jd}from"events";import d6 from"fs/promises";import X8 from"path";function hC(D,$,F){if(!yC.test(F))throw new A$(`invalid conversation id: ${F}`);let X=X8.resolve(D),J=X8.resolve(X,$);if(!xC(X,J))throw new A$(`workspace subdir "${$}" escapes root`);let G=X8.resolve(J,F);if(!xC(J,G))throw new A$(`workspace "${F}" escapes parent`);return G}function xC(D,$){let F=X8.relative(D,$);return F===""||!F.startsWith("..")&&!X8.isAbsolute(F)}class fG{root;subdir;gitOrigin;inflight=new Map;constructor(D){this.root=X8.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 $=hC(this.root,this.subdir,D);if(await U$($)){let F=await U$(X8.join($,".git"));return{conversationId:D,path:$,isGitWorktree:F}}if(await d6.mkdir(X8.dirname($),{recursive:!0}),this.gitOrigin)return await this.addGitWorktree(this.gitOrigin,$),{conversationId:D,path:$,isGitWorktree:!0};return await d6.mkdir($,{recursive:!0}),{conversationId:D,path:$,isGitWorktree:!1}}async disposeWorkspace(D){let $=hC(this.root,this.subdir,D);if(!await U$($))return;if(this.gitOrigin){if(await this.removeGitWorktree(this.gitOrigin,$))return}await d6.rm($,{recursive:!0,force:!0})}async purgeAll(){let D=X8.resolve(this.root,this.subdir);if(!await U$(D))return;let $=await d6.readdir(D);await Promise.all($.map(async(F)=>{if(!yC.test(F))return;await this.disposeWorkspace(F).catch(()=>{return})}))}async addGitWorktree(D,$){let F=await gC(["worktree","add","--detach",$],D);if(F.code!==0)throw await d6.mkdir($,{recursive:!0}),Error(`git worktree add failed (code=${F.code}): ${F.stderr.trim()}`)}async removeGitWorktree(D,$){return(await gC(["worktree","remove","--force",$],D)).code===0}}async function U$(D){try{return await d6.stat(D),!0}catch{return!1}}async function gC(D,$){let F=Xd("git",D,{cwd:$,env:mE(),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 Jd(F,"exit");return{code:G,stdout:vC.concat(X).toString("utf8"),stderr:vC.concat(J).toString("utf8")}}var yC,A$;var uC=Z(()=>{L1();yC=/^[\w-]{1,128}$/;A$=class A$ extends Error{constructor(D){super(D);this.name="WorkspaceEscapeError"}}});function mC(D){let $=[D.channel,D.accountId,D.chatId];if(D.threadId!==void 0)$.push(D.threadId);return $.map(encodeURIComponent).join(":")}async function pC(D){let $=B0(D);if(!$||$.status!=="active")return null;return u().select().from(c).where(uD(v(c.id,$.currentConversationId),v(c.status,"open"))).get()??null}async function cC(D){let $=u(),F=D.threadId?uD(v(WD.channel,D.channel),v(WD.chatId,D.chatId),v(WD.threadId,D.threadId)):uD(v(WD.channel,D.channel),v(WD.chatId,D.chatId),j3(WD.threadId));return $.select({sessionKey:WD.sessionKey}).from(WD).where(F).limit(1).get()!==void 0}async function dC(D){let $=u(),F=D.threadId?uD(v(c.channel,D.channel),v(c.chatId,D.chatId),v(c.threadId,D.threadId),v(c.status,"open")):uD(v(c.channel,D.channel),v(c.chatId,D.chatId),j3(c.threadId),v(c.status,"open"));return $.select().from(c).where(F).orderBy(hD(c.lastActiveAt)).get()??null}function Gd(){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 Bd(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:Gd()},{role:"user",content:X.join(`
302
+ `)}]}async function lC(D,$,F,X,J,G){let Y={messages:Bd(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 C.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 kG(D,$=Yd){return u().select({role:l.role,content:l.content,richMetadata:l.richMetadata}).from(l).where(v(l.conversationId,D)).orderBy(hD(l.id)).limit($*3).all().filter((J)=>!Hd(J)).slice(0,$).reverse().map((J)=>({role:J.role,content:J.content}))}function Hd(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 Yd=4;var iC=Z(()=>{TD();JD();_0()});function _d(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 I1(D){return Qd+_d(D.content)}function vG(D){return D.reduce(($,F)=>$+I1(F),0)}function Ud(D){return D?.contextWindowTokens!==void 0||D?.reserveTokens!==void 0||D?.keepRecentTokens!==void 0||D?.compaction?.enabled===!0||D?.compaction?.triggerTokens!==void 0}function hG(D,$){if(!Ud(D))return null;let F=D?.contextWindowTokens??Ad($)??Wd,X=Rd(D?.reserveTokens??Od(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 sC(D){let $=I1(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=I1(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 p9(D){try{let $=o2(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 Ad(D){try{let F=o2(D).body,X=Ed(F.contextWindowTokens);if(X!==null)return X;let J=p9(D);return J===void 0?null:Kd(J)}catch{return null}}function Kd(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 Od(D){return Math.min(Vd,Math.floor(D/4))}function Rd(D,$){return Math.max(0,Math.min(D,Math.max(0,$-1)))}function Ed(D){return typeof D==="number"&&Number.isInteger(D)&&D>0?D:null}var Wd=8192,Vd=1024,nC=2000,Qd=6;var rC=Z(()=>{J1()});function aC(D,$){if(!$)return"auto";for(let F of $.rules)if(Cd(F.pattern,D))return F.action;return $.default}function Cd(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 uG{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=DM(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=u(),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);Q6(G,{contextTokens:vG(W)});let Q=p9(this.deps.config.executor),_=tC($),U=DM($),A=this.deps.config.executor.engine,R=this.buildAgentRunInput({messages:W,model:Q,workspace:F,signal:X,sessionKey:G,engine:A}),O=await this.collectAssistantText(R,B.id,_,J,G,U);if(!O.ok&&O.staleBindingCleared===!0&&R.engineBinding!==void 0&&O.text.length===0)R=this.buildAgentRunInput({messages:W,model:Q,workspace:F,signal:X,sessionKey:G,engine:A}),O=await this.collectAssistantText(R,B.id,_,J,G,U);if(!O.ok&&this.isContextOverflowError(O.error)){let q=await this.maybeCompactConversation({conversation:B,sessionKey:G,workspace:F,signal:X,notifyActivity:J,force:!0});if(q.compacted){if(B=q.conversation,H=await this.buildSystemPrompt(B.summary??null),W=await this.buildRunContext(B.id,H),Q6(G,{contextTokens:vG(W)}),R=this.buildAgentRunInput({messages:W,model:Q,workspace:F,signal:X,sessionKey:G,engine:A}),O=await this.collectAssistantText(R,B.id,_,J,G,U),!O.ok&&O.staleBindingCleared===!0&&R.engineBinding!==void 0&&O.text.length===0)R=this.buildAgentRunInput({messages:W,model:Q,workspace:F,signal:X,sessionKey:G,engine:A}),O=await this.collectAssistantText(R,B.id,_,J,G,U)}}if(!O.ok){let q=O.error??"executor error";C.warn(`[orchestrator] executor error: ${q}`),this.deps.bus.emit("orchestrator.error",{conversationId:B.id,...U===void 0?{}:{gatewayConversationId:U},..._===void 0?{}:{taskId:_},error:q});return}let K=O.text,E=new Date().toISOString();Y.insert(l).values({conversationId:B.id,role:"assistant",content:K,createdAt:E}).run(),Y.update(c).set({lastActiveAt:E}).where(v(c.id,B.id)).run(),Q6(G,{at:E}),this.deps.bus.emit("orchestrator.finished",{conversationId:B.id,...U===void 0?{}:{gatewayConversationId:U},..._===void 0?{}:{taskId:_}}),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(xX(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 C.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=B0(D)?.engineBindings[$];return zd(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=H1(D);try{await J.send(X,{channel:D,chatId:$.chatId,...$.threadId===void 0?{}:{threadId:$.threadId},text:F})}catch(G){C.warn(`[orchestrator] deliver to ${D} failed: ${String(G)}`)}}async resolveConversation(D){let $=mC(D),F=await pC($),J=(F?!0:await cC(D))?null:await dC(D),G=F??J;if(!G){let _=this.createConversation(D);return this.upsertSession($,D,_.id),{conversation:_,sessionKey:$}}if(J)this.upsertSession($,D,G.id);if(Id(D)){this.closeConversation(G);let _=this.createConversation(D);return this.rotateSession($,D,_.id,Td(D)),{conversation:_,sessionKey:$}}let Y=await this.provisionWorkspace(G.id),B=await kG(G.id),H=p9(this.deps.config.executor),W=await lC(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:gG(G),sessionKey:$};this.closeConversation(G);let Q=this.createConversation(D);return this.rotateSession($,D,Q.id,"classifier:new-topic"),{conversation:Q,sessionKey:$}}closeConversation(D){let $=u(),F=new Date().toISOString();$.update(c).set({status:"closed",closedAt:F}).where(v(c.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)=>C.warn(`[orchestrator] dispose workspace job failed: ${String(J)}`))}async provisionWorkspace(D){try{return await this.deps.workspaces.createWorkspace(D)}catch($){return C.warn(`[orchestrator] workspace create failed for ${D}: ${String($)}`),null}}async disposeWorkspace(D){try{await this.deps.workspaces.disposeWorkspace(D)}catch($){C.warn(`[orchestrator] workspace dispose failed for ${D}: ${String($)}`)}}createConversation(D){let $=u(),F=crypto.randomUUID(),X=new Date().toISOString();$.insert(c).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(c).where(v(c.id,F)).get(),G=tC(D);return this.deps.bus.emit("conversation.created",{conversationId:F,channel:D.channel,chatId:D.chatId,...G===void 0?{}:{taskId:G}}),gG(J)}upsertSession(D,$,F){kX({sessionKey:D,currentConversationId:F,channel:$.channel,chatId:$.chatId,...$.threadId===void 0?{}:{threadId:$.threadId},accountId:$.accountId})}rotateSession(D,$,F,X){if(!vX({sessionKey:D,currentConversationId:F,resetReason:X}))this.upsertSession(D,$,F)}persistUserMessage(D,$,F){let X=u(),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(c).set({lastActiveAt:J}).where(v(c.id,D)).run(),Q6(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=hG(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=I1({role:"system",content:G}),B=Y+J.reduce((q,N)=>q+I1(K$(N)),0),H=$.triggerTokens??Math.max(0,F.contextWindowTokens-F.reserveTokens);if(!D.force&&B<=H)return{conversation:D.conversation,compacted:!1};let W=Math.min(F.keepRecentTokens,Math.max(0,H-Y)),{candidateRows:Q}=Md(J,W);if(Q.length===0)return{conversation:D.conversation,compacted:!1};let _=Q[0].id,U=Q[Q.length-1].id,A=await this.runPreCompactionMemoryFlush({conversationId:D.conversation.id,previousSummary:D.conversation.summary??null,rows:Q,compaction:$,workspace:D.workspace,signal:D.signal,notifyActivity:D.notifyActivity,fromId:_,throughId:U}),R;try{R=await this.generateCompactionSummary({previousSummary:D.conversation.summary??null,rows:Q,compaction:$,workspace:D.workspace,signal:D.signal,notifyActivity:D.notifyActivity})}catch(q){return C.warn(`[orchestrator] compaction summary failed: ${String(q)}`),{conversation:D.conversation,compacted:!1}}let O=new Date().toISOString(),K=u();K.insert(l).values({conversationId:D.conversation.id,role:"system",content:R,richMetadata:JSON.stringify({kind:"compaction",version:oC,compactedFromMessageId:_,compactedThroughMessageId:U,sourceMessageCount:Q.length,previousCompactionMessageId:X?.messageId??null,memoryFlush:A.attempted?{status:A.status,at:A.at,...A.error===void 0?{}:{error:A.error}}:{status:"disabled"}}),createdAt:O}).run(),K.update(c).set({summary:R,lastActiveAt:O}).where(v(c.id,D.conversation.id)).run(),hX(D.sessionKey,{at:O,...A.attempted&&A.at!==void 0?{memoryFlushAt:A.at}:{}});let E=K.select().from(c).where(v(c.id,D.conversation.id)).get();return{conversation:E?gG(E):{...D.conversation,summary:R,lastActiveAt:O},compacted:!0}}async runPreCompactionMemoryFlush(D){if(D.compaction.memoryFlush?.enabled!==!0)return{attempted:!1};let $=new Date().toISOString(),F={kind:"memory-flush",version:oC,compactedFromMessageId:D.fromId,compactedThroughMessageId:D.throughId};try{let J=(await this.runSuppressedExecutor({messages:Pd(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 C.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:Nd(D.previousSummary,D.rows,D.compaction),workspace:D.workspace,signal:D.signal,notifyActivity:D.notifyActivity})).trim();if(F.length>0)return F;return Ld(D.previousSummary,D.rows)}async runSuppressedExecutor(D){let $=p9(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){u().insert(l).values({conversationId:D,role:"system",content:$,richMetadata:JSON.stringify(F),createdAt:X}).run()}loadLatestCompactionCheckpoint(D){let F=u().select({id:l.id,role:l.role,richMetadata:l.richMetadata}).from(l).where(uD(v(l.conversationId,D),v(l.role,"system"))).orderBy(hD(l.id)).all();for(let X of F){let J=$M(X);if(J?.kind!=="compaction")continue;let G=jd(J.compactedThroughMessageId);if(G!==null)return{messageId:X.id,compactedThroughMessageId:G}}return null}loadPromptTranscriptRows(D,$){let F=$===void 0?v(l.conversationId,D):uD(v(l.conversationId,D),L3(l.id,$));return u().select({id:l.id,role:l.role,content:l.content,toolCalls:l.toolCalls,toolCallId:l.toolCallId,richMetadata:l.richMetadata}).from(l).where(F).orderBy(S2(l.id)).all().filter((J)=>!eC(J))}loadPromptTranscriptRowsNewestFirst(D,$,F){let X=$===void 0?v(l.conversationId,D):uD(v(l.conversationId,D),L3(l.id,$));return u().select({id:l.id,role:l.role,content:l.content,toolCalls:l.toolCalls,toolCallId:l.toolCallId,richMetadata:l.richMetadata}).from(l).where(X).orderBy(hD(l.id)).limit(F*3).all().filter((G)=>!eC(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=hG(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 sC({systemMessage:F,historyNewestFirst:J,budget:X}).messages}async loadHistoryWindow(D){let $=this.deps.config.orchestrator?.maxHistoryMessages??N7,F=this.loadLatestCompactionCheckpoint(D);if(!F)return(await kG(D,$)).map((J)=>({role:J.role,content:J.content}));return this.loadPromptTranscriptRowsNewestFirst(D,F.compactedThroughMessageId,$).reverse().map(K$)}async loadBudgetHistory(D,$){let F=this.loadLatestCompactionCheckpoint(D);return this.loadPromptTranscriptRowsNewestFirst(D,F?.compactedThroughMessageId,$??nC).map(K$)}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 $=aC(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??sY,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=u(),X=new Date().toISOString();F.insert(l).values({conversationId:D,role:"assistant",content:$,createdAt:X}).run(),F.update(c).set({lastActiveAt:X}).where(v(c.id,D)).run()}async submitTask(D){let $=u(),F=crypto.randomUUID(),X=new Date().toISOString();$.insert(q8).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)=>C.error(`[orchestrator] submitTask ingest failed: ${String(G)}`)),{id:F}}}function tC(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 K$(D){return{role:D.role,content:D.content,...D.toolCalls===null?{}:{toolCalls:D.toolCalls},...D.toolCallId===null?{}:{toolCallId:D.toolCallId}}}function Md(D,$){let F=[],X=0;for(let Y=D.length-1;Y>=0;Y-=1){let B=D[Y],H=I1(K$(B));if(F.length>0&&X+H>$)break;F.push(B),X+=H}let J=Zd(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 Zd(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=qd(D,X);if(J===null||J>=X)break;X=J}return D.slice(X)}function qd(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 Nd(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:",mG($,F.maxSummaryMessages??yG)].join(`
305
+ `)}]}function Pd(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:",mG($,F.maxSummaryMessages??yG)].join(`
307
+ `)}]}function mG(D,$){if(D.length<=$)return D.map(xG).join(`
308
+ `);let F=Math.ceil($/2),X=Math.floor($/2),J=D.length-F-X;return[...D.slice(0,F).map(xG),`... ${J} transcript rows omitted from summarizer prompt ...`,...D.slice(D.length-X).map(xG)].join(`
309
+ `)}function xG(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 Ld(D,$){let F=$.length===0?"no rows":`rows #${$[0].id}-#${$[$.length-1].id}`;return[D?.trim()||"",`Compacted ${F}.`,mG($,Math.min(12,yG))].filter((X)=>X.length>0).join(`
310
+
311
+ `)}function eC(D){if(D.role!=="system")return!1;let $=$M(D);return $?.kind==="compaction"||$?.kind==="memory-flush"}function $M(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 jd(D){return typeof D==="number"&&Number.isInteger(D)&&D>0?D:null}function zd(D){return D!==null&&typeof D==="object"&&!Array.isArray(D)}function Id(D){if(!D.raw||typeof D.raw!=="object"||Array.isArray(D.raw))return!1;let $=D.raw;return $.source==="gateway"&&$.sessionReset===!0}function DM(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 Td(D){if(!D.raw||typeof D.raw!=="object"||Array.isArray(D.raw))return"manual";let $=D.raw.resetCommand;return $==="/new"||$==="/reset"?`manual:${$}`:"manual"}function gG(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 yG=120,oC=1;var FM=Z(()=>{J0();TD();JD();_0();s3();iC();a5();rC()});function T1(D,$,F){let X=zE(D,$),J=bG($.executor),G=new n3($.channels),Y=new H9,B=wd($),H=new q1,W=new uG({config:$,brain:X,executor:J,bus:Y,workerId:D,workspaces:B,processes:F.processes,approvals:H}),Q=TE(Y),_=$.evolution.enabled?hE():()=>{return},U=new B9({workerId:D,getOrchestrator:()=>W});return U.start(),{workerId:D,config:$,brain:X,executor:J,channels:G,bus:Y,orchestrator:W,cron:U,workspaces:B,processes:F.processes,approvals:H,dispose(){Q(),_(),H.dispose(),U.stop(),o_()}}}function wd(D){let $=(()=>{if(D.executor.engine!=="claude-code")return;try{let X=o2(D.executor).body.workspaceRoot;return typeof X==="string"&&X.length>0?X:void 0}catch{return}})();return new fG({root:n.WORKER_DATA_ROOT,...$?{subdir:$}:{},...n.WORKER_WORKSPACE_GIT_ORIGIN?{gitOrigin:n.WORKER_WORKSPACE_GIT_ORIGIN}:{}})}var XM=Z(()=>{P4();IE();pX();s3();zJ();IJ();wE();xE();J1();kC();uC();a5();FM()});var JM=Z(()=>{P4()});import{Buffer as l6}from"buffer";import{createCipheriv as Sd,createDecipheriv as bd,randomBytes as fd}from"crypto";class i6{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=l6.from(D,"hex"),this.key.length!==vd)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:U0.id}).from(U0).where(v(U0.key,D)).get(),Y=new Date().toISOString();if(G)await this.db.update(U0).set({valueEnc:F,nonce:X,authTag:J,updatedAt:Y}).where(v(U0.id,G.id)).run();else await this.db.insert(U0).values({key:D,valueEnc:F,nonce:X,authTag:J,createdAt:Y,updatedAt:Y}).run()}async get(D){let $=await this.db.select().from(U0).where(v(U0.key,D)).get();if(!$)return null;return this.decrypt($.valueEnc,$.nonce,$.authTag)}async list(){return(await this.db.select({key:U0.key}).from(U0).all()).map(($)=>$.key)}async remove(D){await this.db.delete(U0).where(v(U0.key,D)).run()}async removeAll(){await this.db.delete(U0).run()}encryptString(D){return this.encrypt(D)}decryptString(D,$,F){return this.decrypt(D,$,F)}encrypt(D){let $=fd(kd),F=Sd(YM,this.key,$),X=l6.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=bd(YM,this.key,l6.from($,"base64"));return X.setAuthTag(l6.from(F,"base64")),l6.concat([X.update(l6.from(D,"base64")),X.final()]).toString("utf8")}}var YM="aes-256-gcm",kd=12,vd=32;var pG=Z(()=>{TD();_0()});function mD(){if(!O$)O$=new i6(n.AIWORKER_MASTER_KEY,u());return O$}function GM(){O$=null}var O$=null;var BM=Z(()=>{TD();JM();pG();pG()});function n6(D={}){let $=R$(D.limit,hd,1,xd),F=R$(D.offset,0,0,Number.MAX_SAFE_INTEGER),X=u(),J=D.status===void 0?X.select().from(WD).orderBy(hD(WD.lastInteractionAt)).limit($+1).offset(F).all():X.select().from(WD).where(v(WD.status,D.status)).orderBy(hD(WD.lastInteractionAt)).limit($+1).offset(F).all();return{sessions:J.slice(0,$).map((Y)=>WM(Y,D.config)),page:{limit:$,offset:F,hasMore:J.length>$}}}function s6(D,$){let F=B0(D);return F===null?null:WM(F,$)}function r6(D={}){let $=D.apply===!0,F=cG(D);if(!$||F.planned.transcripts.length===0)return{...F,mode:$?"apply":"dry-run",applied:{conversationsDeleted:0,messagesDeleted:0}};let X=u(),J=F.planned.transcripts.map((H)=>H.conversationId);X.delete(c).where(uD(O8(c.id,J),M`${c.status} = 'closed'
312
312
  AND ${c.closedAt} IS NOT NULL
313
313
  AND ${c.closedAt} <= ${F.cutoff}
314
- AND ${c.id} NOT IN (SELECT ${WD.currentConversationId} FROM ${WD})`)).run();let G=X.select({id:c.id}).from(c).where(O8(c.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 pG(D={}){let $=R$(D.olderThanDays,yd,0,3650),F=R$(D.limit,xd,1,gd),X=dd(D.now,$),G=u().select({id:c.id,channel:c.channel,chatId:c.chatId,threadId:c.threadId,closedAt:c.closedAt,lastActiveAt:c.lastActiveAt}).from(c).where(M`${c.status} = 'closed'
314
+ AND ${c.id} NOT IN (SELECT ${WD.currentConversationId} FROM ${WD})`)).run();let G=X.select({id:c.id}).from(c).where(O8(c.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 cG(D={}){let $=R$(D.olderThanDays,ud,0,3650),F=R$(D.limit,gd,1,yd),X=ld(D.now,$),G=u().select({id:c.id,channel:c.channel,chatId:c.chatId,threadId:c.threadId,closedAt:c.closedAt,lastActiveAt:c.lastActiveAt}).from(c).where(M`${c.status} = 'closed'
315
315
  AND ${c.closedAt} IS NOT NULL
316
316
  AND ${c.closedAt} <= ${X}
317
- AND ${c.id} NOT IN (SELECT ${WD.currentConversationId} FROM ${WD})`).orderBy(S2(c.closedAt),S2(c.id)).limit(F).all(),Y=cd(G.map((W)=>W.id)),B=G.map((W)=>({conversationId:W.id,channel:W.channel,chatId:W.chatId,threadId:W.threadId,closedAt:W.closedAt??"",lastActiveAt:W.lastActiveAt,messageCount:Y.get(W.id)??0})),H=B.reduce((W,Q)=>W+Q.messageCount,0);return{action:"prune-closed-transcripts",mode:"dry-run",cutoff:X,olderThanDays:$,limit:F,planned:{conversations:B.length,messages:H,transcripts:B},applied:{conversationsDeleted:0,messagesDeleted:0}}}function WM(D,$){let F=pd($),X=VM(D.engineBindings)?D.engineBindings:{},J=HM(F,X[F],id(X,F)),G=Object.keys(X).sort().map((Y)=>HM(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:md(D),at:D.memoryFlushAt,compactionCount:D.compactionCount,memoryFlushCompactionCount:D.memoryFlushCompactionCount},engineBindings:{configuredEngine:F,configured:J,all:G}}}function HM(D,$,F){let X=VM($)?Object.keys($).sort():[];return{engine:D,present:F,valueType:F?ld($):"unknown",fieldCount:X.length,fields:X,redacted:!0}}function md(D){if(D.compactionCount===0)return"not-needed";if(D.memoryFlushAt===null)return"never";return D.memoryFlushCompactionCount>=D.compactionCount?"current":"stale"}function pd(D){let F=D?.executor?.engine;return typeof F==="string"&&F.length>0?F:"unknown"}function cd(D){if(D.length===0)return new Map;let $=u().select({conversationId:d.conversationId,value:t7()}).from(d).where(O8(d.conversationId,D)).groupBy(d.conversationId).all();return new Map($.map((F)=>[F.conversationId,F.value]))}function dd(D,$){let F=D===void 0?new Date:new Date(D);return new Date(F.getTime()-$*ud).toISOString()}function ld(D){if(D===null)return"null";if(Array.isArray(D))return"array";let $=typeof D;if($==="boolean"||$==="number"||$==="object"||$==="string")return $;return"unknown"}function VM(D){return D!==null&&typeof D==="object"&&!Array.isArray(D)}function id(D,$){return Object.prototype.hasOwnProperty.call(D,$)}function R$(D,$,F,X){if(D===void 0||!Number.isInteger(D))return $;return Math.max(F,Math.min(X,D))}var vd=50,hd=200,xd=50,gd=200,yd=30,ud=86400000;var QM=Z(()=>{TD();_0()});var _M={};m8(_M,{workerEnv:()=>i,timingSafeEqualStrings:()=>f2,stopGatewayNode:()=>YE,startGatewayNode:()=>p5,runClosedTranscriptMaintenance:()=>r6,resetSecretsVaultForTests:()=>GM,resetAvailabilityProbeForTests:()=>yK,redactSecrets:()=>z4,readConfig:()=>S0,putSecret:()=>s5,putConfig:()=>k9,printBootstrapIfJustMinted:()=>B1,planClosedTranscriptMaintenance:()=>pG,mirrorConfigToYaml:()=>v9,mintWorkerId:()=>L4,mintApiToken:()=>U6,loadOrSeedConfig:()=>Y1,loadOrMintIdentity:()=>G1,listSessionStatuses:()=>n6,listSecrets:()=>n5,hydrateSecrets:()=>K6,handleTokenRotate:()=>y8,handleExecutorTest:()=>l5,handleChannelTest:()=>d5,handleBrainTest:()=>c5,getWorkerEnv:()=>X1,getSessionStatus:()=>s6,getSecretsVault:()=>mD,getChannelAdapter:()=>H1,getAvailabilityProbe:()=>a4,enumerateSecretPaths:()=>t2,deleteSecret:()=>r5,buildWorkerRuntime:()=>T1,buildInfo:()=>i5,buildCronHandlers:()=>u5,applyConfigUpdate:()=>u6,WorkerEventBus:()=>H9,SecretsVault:()=>i6,ProcessManager:()=>P1,InvalidConfigError:()=>g2,DEFAULT_EMPTY_CONFIG:()=>_6,CronService:()=>B9,ConfigVersionConflictError:()=>y2,ChannelRegistry:()=>n3,ApprovalStore:()=>q1});var a0=Z(()=>{P4();l_();s3();zJ();IJ();o4();GE();lY();BE();dY();WE();VE();QE();a5();KE();XM();BM();j4();QM()});import a from"process";import{EventEmitter as Wq}from"events";function S$(D){return D==null?[]:Array.isArray(D)?D:[D]}function Vq(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 Qq(D,$){D=D||[],$=$||{};var F,X,J,G,Y,B={_:[]},H=0,W=0,Q=0,_=D.length;let U=$.alias!==void 0,A=$.unknown!==void 0,R=$.default!==void 0;if($.alias=$.alias||{},$.string=S$($.string),$.boolean=S$($.boolean),U)for(F in $.alias){X=$.alias[F]=S$($.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(R){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 O=A?Object.keys($.alias):[];for(H=0;H<_;H++){if(J=D[H],J==="--"){B._=B._.concat(D.slice(++H));break}for(W=0;W<J.length;W++)if(J.charCodeAt(W)!==45)break;if(W===0)B._.push(J);else if(J.substring(W,W+3)==="no-"){if(G=J.substring(W+3),A&&!~O.indexOf(G))return $.unknown(J);B[G]=!1}else{for(Q=W+1;Q<J.length;Q++)if(J.charCodeAt(Q)===61)break;G=J.substring(W,Q),Y=J.substring(++Q)||(H+1===_||(""+D[H+1]).charCodeAt(0)===45||D[++H]),X=W===2?[G]:G;for(Q=0;Q<X.length;Q++){if(G=X[Q],A&&!~O.indexOf(G))return $.unknown("-".repeat(W)+G);Vq(B,G,Q+1<X.length||Y,$)}}}if(R){for(F in $.default)if(B[F]===void 0)B[F]=$.default[F]}if(U)for(F in B){X=$.alias[F]||[];while(X.length>0)B[X.shift()]=B[F]}return B}var CB=(D)=>D.replace(/[<[].+/,"").trim(),_q=(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},Uq=(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 $},RB=(D)=>{return D.sort(($,F)=>{return $.length>F.length?-1:1})[0]},EB=(D,$)=>{return D.length>=$?D:`${D}${" ".repeat($-D.length)}`},Aq=(D)=>{return D.replace(/([a-z])-([a-z])/g,($,F,X)=>{return F+X.toUpperCase()})},Kq=(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)?{}:[]},Oq=(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)}}},Rq=(D)=>{let $=/([^\\\/]+)$/.exec(D);return $?$[1]:""},MB=(D)=>{return D.split(".").map(($,F)=>{return F===0?Aq($):$}).join(".")};class Y7 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 ZB{constructor(D,$,F){if(this.rawName=D,this.description=$,this.config=Object.assign({},F),D=D.replace(/\.\*/g,""),this.negated=!1,this.names=CB(D).split(",").map((X)=>{let J=X.trim().replace(/^-{1,2}/,"");if(J.startsWith("no-"))this.negated=!0,J=J.replace(/^no-/,"");return MB(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 Eq=process.argv,Cq=`${process.platform}-${process.arch} node-${process.version}`;class b${constructor(D,$,F={},X){this.rawName=D,this.description=$,this.config=F,this.cli=X,this.options=[],this.aliasNames=[],this.name=CB(D),this.args=_q(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 ZB(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 f$}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=RB($.map((W)=>W.rawName));G.push({title:"Commands",body:$.map((W)=>{return` ${EB(W.rawName,H.length)} ${W.description}`}).join(`
317
+ AND ${c.id} NOT IN (SELECT ${WD.currentConversationId} FROM ${WD})`).orderBy(S2(c.closedAt),S2(c.id)).limit(F).all(),Y=dd(G.map((W)=>W.id)),B=G.map((W)=>({conversationId:W.id,channel:W.channel,chatId:W.chatId,threadId:W.threadId,closedAt:W.closedAt??"",lastActiveAt:W.lastActiveAt,messageCount:Y.get(W.id)??0})),H=B.reduce((W,Q)=>W+Q.messageCount,0);return{action:"prune-closed-transcripts",mode:"dry-run",cutoff:X,olderThanDays:$,limit:F,planned:{conversations:B.length,messages:H,transcripts:B},applied:{conversationsDeleted:0,messagesDeleted:0}}}function WM(D,$){let F=cd($),X=VM(D.engineBindings)?D.engineBindings:{},J=HM(F,X[F],nd(X,F)),G=Object.keys(X).sort().map((Y)=>HM(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:pd(D),at:D.memoryFlushAt,compactionCount:D.compactionCount,memoryFlushCompactionCount:D.memoryFlushCompactionCount},engineBindings:{configuredEngine:F,configured:J,all:G}}}function HM(D,$,F){let X=VM($)?Object.keys($).sort():[];return{engine:D,present:F,valueType:F?id($):"unknown",fieldCount:X.length,fields:X,redacted:!0}}function pd(D){if(D.compactionCount===0)return"not-needed";if(D.memoryFlushAt===null)return"never";return D.memoryFlushCompactionCount>=D.compactionCount?"current":"stale"}function cd(D){let F=D?.executor?.engine;return typeof F==="string"&&F.length>0?F:"unknown"}function dd(D){if(D.length===0)return new Map;let $=u().select({conversationId:l.conversationId,value:t7()}).from(l).where(O8(l.conversationId,D)).groupBy(l.conversationId).all();return new Map($.map((F)=>[F.conversationId,F.value]))}function ld(D,$){let F=D===void 0?new Date:new Date(D);return new Date(F.getTime()-$*md).toISOString()}function id(D){if(D===null)return"null";if(Array.isArray(D))return"array";let $=typeof D;if($==="boolean"||$==="number"||$==="object"||$==="string")return $;return"unknown"}function VM(D){return D!==null&&typeof D==="object"&&!Array.isArray(D)}function nd(D,$){return Object.prototype.hasOwnProperty.call(D,$)}function R$(D,$,F,X){if(D===void 0||!Number.isInteger(D))return $;return Math.max(F,Math.min(X,D))}var hd=50,xd=200,gd=50,yd=200,ud=30,md=86400000;var QM=Z(()=>{TD();_0()});var _M={};m8(_M,{workerEnv:()=>n,timingSafeEqualStrings:()=>f2,stopGatewayNode:()=>GE,startGatewayNode:()=>p5,runClosedTranscriptMaintenance:()=>r6,resetSecretsVaultForTests:()=>GM,resetAvailabilityProbeForTests:()=>uK,redactSecrets:()=>z4,readConfig:()=>S0,putSecret:()=>s5,putConfig:()=>k9,printBootstrapIfJustMinted:()=>B1,planClosedTranscriptMaintenance:()=>cG,mirrorConfigToYaml:()=>v9,mintWorkerId:()=>L4,mintApiToken:()=>U6,loadOrSeedConfig:()=>Y1,loadOrMintIdentity:()=>G1,listSessionStatuses:()=>n6,listSecrets:()=>n5,hydrateSecrets:()=>K6,handleTokenRotate:()=>y8,handleExecutorTest:()=>l5,handleChannelTest:()=>d5,handleBrainTest:()=>c5,getWorkerEnv:()=>X1,getSessionStatus:()=>s6,getSecretsVault:()=>mD,getChannelAdapter:()=>H1,getAvailabilityProbe:()=>a4,enumerateSecretPaths:()=>t2,deleteSecret:()=>r5,buildWorkerRuntime:()=>T1,buildInfo:()=>i5,buildCronHandlers:()=>u5,applyConfigUpdate:()=>u6,WorkerEventBus:()=>H9,SecretsVault:()=>i6,ProcessManager:()=>P1,InvalidConfigError:()=>g2,DEFAULT_EMPTY_CONFIG:()=>_6,CronService:()=>B9,ConfigVersionConflictError:()=>y2,ChannelRegistry:()=>n3,ApprovalStore:()=>q1});var a0=Z(()=>{P4();i_();s3();zJ();IJ();o4();BE();lY();HE();dY();VE();QE();_E();a5();OE();XM();BM();j4();QM()});import a from"process";import{EventEmitter as Wq}from"events";function S$(D){return D==null?[]:Array.isArray(D)?D:[D]}function Vq(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 Qq(D,$){D=D||[],$=$||{};var F,X,J,G,Y,B={_:[]},H=0,W=0,Q=0,_=D.length;let U=$.alias!==void 0,A=$.unknown!==void 0,R=$.default!==void 0;if($.alias=$.alias||{},$.string=S$($.string),$.boolean=S$($.boolean),U)for(F in $.alias){X=$.alias[F]=S$($.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(R){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 O=A?Object.keys($.alias):[];for(H=0;H<_;H++){if(J=D[H],J==="--"){B._=B._.concat(D.slice(++H));break}for(W=0;W<J.length;W++)if(J.charCodeAt(W)!==45)break;if(W===0)B._.push(J);else if(J.substring(W,W+3)==="no-"){if(G=J.substring(W+3),A&&!~O.indexOf(G))return $.unknown(J);B[G]=!1}else{for(Q=W+1;Q<J.length;Q++)if(J.charCodeAt(Q)===61)break;G=J.substring(W,Q),Y=J.substring(++Q)||(H+1===_||(""+D[H+1]).charCodeAt(0)===45||D[++H]),X=W===2?[G]:G;for(Q=0;Q<X.length;Q++){if(G=X[Q],A&&!~O.indexOf(G))return $.unknown("-".repeat(W)+G);Vq(B,G,Q+1<X.length||Y,$)}}}if(R){for(F in $.default)if(B[F]===void 0)B[F]=$.default[F]}if(U)for(F in B){X=$.alias[F]||[];while(X.length>0)B[X.shift()]=B[F]}return B}var MB=(D)=>D.replace(/[<[].+/,"").trim(),_q=(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},Uq=(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 $},EB=(D)=>{return D.sort(($,F)=>{return $.length>F.length?-1:1})[0]},CB=(D,$)=>{return D.length>=$?D:`${D}${" ".repeat($-D.length)}`},Aq=(D)=>{return D.replace(/([a-z])-([a-z])/g,($,F,X)=>{return F+X.toUpperCase()})},Kq=(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)?{}:[]},Oq=(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)}}},Rq=(D)=>{let $=/([^\\\/]+)$/.exec(D);return $?$[1]:""},ZB=(D)=>{return D.split(".").map(($,F)=>{return F===0?Aq($):$}).join(".")};class Y7 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 qB{constructor(D,$,F){if(this.rawName=D,this.description=$,this.config=Object.assign({},F),D=D.replace(/\.\*/g,""),this.negated=!1,this.names=MB(D).split(",").map((X)=>{let J=X.trim().replace(/^-{1,2}/,"");if(J.startsWith("no-"))this.negated=!0,J=J.replace(/^no-/,"");return ZB(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 Eq=process.argv,Cq=`${process.platform}-${process.arch} node-${process.version}`;class b${constructor(D,$,F={},X){this.rawName=D,this.description=$,this.config=F,this.cli=X,this.options=[],this.aliasNames=[],this.name=MB(D),this.args=_q(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 qB(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 f$}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=EB($.map((W)=>W.rawName));G.push({title:"Commands",body:$.map((W)=>{return` ${CB(W.rawName,H.length)} ${W.description}`}).join(`
318
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=RB(B.map((W)=>W.rawName));G.push({title:"Options",body:B.map((W)=>{return` ${EB(W.rawName,H.length)} ${W.description} ${W.config.default===void 0?"":`(default: ${W.config.default})`}`}).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=EB(B.map((W)=>W.rawName));G.push({title:"Options",body:B.map((W)=>{return` ${CB(W.rawName,H.length)} ${W.description} ${W.config.default===void 0?"":`(default: ${W.config.default})`}`}).join(`
320
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
321
  `)});if(J)G=J(G)||G;console.log(G.map((H)=>{return H.title?`${H.title}:
322
322
  ${H.body}`:H.body}).join(`
323
323
 
324
- `))}outputVersion(){let{name:D}=this.cli,{versionNumber:$}=this.cli.globalCommand;if($)console.log(`${D}/${$} ${Cq}`)}checkRequiredArgs(){let D=this.args.filter(($)=>$.required).length;if(this.cli.args.length<D)throw new Y7(`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 Y7(`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 Y7(`option \`${X.rawName}\` value is missing`)}}}}class f$ extends b${constructor(D){super("@@global@@","",{},D)}}var J7=Object.assign;class qB extends Wq{constructor(D=""){super();this.name=D,this.commands=[],this.rawArgs=[],this.args=[],this.options={},this.globalCommand=new f$(this),this.globalCommand.usage("<command> [options]")}usage(D){return this.globalCommand.usage(D),this}command(D,$,F){let X=new b$(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=Eq,{run:$=!0}={}){if(this.rawArgs=D,!this.name)this.name=D[1]?Rq(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=J7(J7({},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=Uq(F),J=[],G=D.indexOf("--");if(G>-1)J=D.slice(G+1),D=D.slice(0,G);let Y=Qq(D,X);Y=Object.keys(Y).reduce((_,U)=>{return J7(J7({},_),{[MB(U)]:Y[U]})},{_:[]});let B=Y._,H={"--":J},W=$&&$.config.ignoreOptionDefaultValue?$.config.ignoreOptionDefaultValue:this.globalCommand.config.ignoreOptionDefaultValue,Q=Object.create(null);for(let _ of F){if(!W&&_.config.default!==void 0)for(let U of _.names)H[U]=_.config.default;if(Array.isArray(_.config.type)){if(Q[_.name]===void 0)Q[_.name]=Object.create(null),Q[_.name].shouldTransform=!0,Q[_.name].transformFunction=_.config.type[0]}}for(let _ of Object.keys(Y))if(_!=="_"){let U=_.split(".");Kq(H,U,Y[_]),Oq(H,Q)}return{args:B,options:H}}runMatchedCommand(){let{args:D,options:$,matchedCommand:F}=this;if(!F||!F.commandAction)return;F.checkUnknownOptions(),F.checkOptionValue(),F.checkRequiredArgs();let X=[];return F.args.forEach((J,G)=>{if(J.variadic)X.push(D.slice(G));else X.push(D[G])}),X.push($),F.commandAction.apply(this,X)}}var Mq=(D="")=>new qB(D),NB=Mq;JD();var AH={name:"@zonease/aiworker-cli",type:"module",version:"0.4.5",description:"AIWorker fleet CLI \u2014 gateway / worker / operator \u5355\u4E00\u4E8C\u8FDB\u5236",license:"MIT",homepage:"https://github.com/ZonEaseTech/aiworker#readme",repository:{type:"git",url:"git+https://github.com/ZonEaseTech/aiworker.git"},publishConfig:{access:"public"},bin:{aiworker:"./dist/aiworker.js"},files:["README.md","dist/"],engines:{bun:">=1.1"},scripts:{typecheck:"tsc --noEmit",test:"bun test --timeout=15000","test:stress":"bun test --timeout=15000 --rerun-each=3 src/commands/init.integration.test.ts src/commands/sessions.test.ts",build:"bun run --filter '@zonease/aiworker-web' build && bun run build:bundle","build:bundle":"bun build --target=bun --minify --outdir=dist src/aiworker.ts && bun scripts/build-publish-manifest.ts",prepublishOnly:"bun run build","smoke:aiworker-run":"bun scripts/smoke-aiworker-run.ts","smoke:aiworker-fleet":"bun scripts/smoke-aiworker-fleet.ts"},devDependencies:{"@types/bun":"^1.2.13","@zonease/aiworker-api":"workspace:*","@zonease/aiworker-core":"workspace:*","@zonease/aiworker-fs-layout":"workspace:*","@zonease/aiworker-gateway":"workspace:*","@zonease/aiworker-gateway-proto":"workspace:*","@zonease/aiworker-shared":"workspace:*","@zonease/aiworker-storage-sqlite":"workspace:*",cac:"^6.7.14",consola:"^3.4.2",typescript:"^5.8.3"}};JD();import OW from"process";Y0();class G0 extends Error{code;constructor(D,$="aim_ws_error"){super(D);this.code=$;this.name="AimWsError"}}function BW(){let D=null,$=!1,F=!1,X=new Map,J=new Map;function G(K){for(let[,E]of X){if(E.timer)clearTimeout(E.timer);E.signalCleanup?.(),E.reject(K)}X.clear()}function Y(K){let E=X.get(K.id);if(!E)return;if(X.delete(K.id),E.timer)clearTimeout(E.timer);if(E.signalCleanup?.(),K.ok)E.resolve(K.result);else{let q=K.error;E.reject(new G0(`${q.code}: ${q.message}`,q.code))}}function B(K){let E=J.get(K.name);if(!E||E.size===0)return;for(let q of E)try{q(K.payload)}catch{}}function H(K){let E=r8(K);if(!E.ok)return;let q=E.frame;if(q.type==="response")Y(q);else if(q.type==="event")B(q)}async function W(K){if($)throw new G0("aim client \u5DF2\u7ECF\u8FDE\u63A5","already_connected");let E=K.timeoutMs??1e4;await new Promise((q,N)=>{let S=!1,b;try{b=new WebSocket(K.url)}catch(T){N(new G0(`WebSocket \u6784\u9020\u5931\u8D25 (${K.url}): ${T instanceof Error?T.message:String(T)}`,"ws_construct_failed"));return}D=b;let P=setTimeout(()=>{if(S)return;S=!0;try{b.close()}catch{}N(new G0(`\u8FDE\u63A5 gateway \u8D85\u65F6 (>${E}ms): ${K.url}`,"connect_timeout"))},E);b.onopen=()=>{let T={type:"connect",role:s8.OPERATOR,agentId:K.deviceId,deviceId:K.deviceId,auth:{token:K.token},...K.meta?{meta:K.meta}:{}};try{b.send(bD(T))}catch(j){if(S)return;S=!0,clearTimeout(P),N(new G0(`\u53D1\u9001 connect \u5E27\u5931\u8D25: ${j instanceof Error?j.message:String(j)}`,"connect_send_failed"));return}if(!S)S=!0,clearTimeout(P),$=!0,q()},b.onmessage=(T)=>{let j=typeof T.data==="string"?T.data:T.data instanceof ArrayBuffer?new TextDecoder().decode(T.data):String(T.data);H(j)},b.onerror=(T)=>{if(S)return;S=!0,clearTimeout(P);let j=T.message??"unknown";N(new G0(`WS \u8FDE\u63A5\u9519\u8BEF: ${j}`,"ws_error"))},b.onclose=(T)=>{if(F=!0,$=!1,G(new G0(`WS \u5DF2\u5173\u95ED (code=${T.code}, reason=${T.reason||"n/a"})`,"ws_closed")),!S)S=!0,clearTimeout(P),N(new G0(`WS \u5728\u63E1\u624B\u9636\u6BB5\u88AB\u5173\u95ED (code=${T.code})`,"ws_closed_early"))}})}function Q(){if(!$||F||D===null||D.readyState!==WebSocket.OPEN)throw new G0("aim client \u672A\u8FDE\u63A5\u6216\u5DF2\u5173\u95ED","not_connected")}async function _(K,E,q){Q();let N=crypto.randomUUID(),S={type:"request",id:N,method:K,...E===void 0?{}:{params:E}};return await new Promise((b,P)=>{let T=q?.timeoutMs??30000,j=null,s=null,UD={resolve:b,reject:P,timer:null,signalCleanup:null};if(j=setTimeout(()=>{X.delete(N),s?.(),P(new G0(`request ${K} \u8D85\u65F6 (>${T}ms)`,"request_timeout"))},T),UD.timer=j,q?.signal){let VD=q.signal;if(VD.aborted){X.delete(N),clearTimeout(j),P(VD.reason??new G0(`request ${K} \u88AB abort`,"aborted"));return}let $D=()=>{if(X.delete(N),j)clearTimeout(j);P(VD.reason??new G0(`request ${K} \u88AB abort`,"aborted"))};VD.addEventListener("abort",$D,{once:!0}),s=()=>VD.removeEventListener("abort",$D),UD.signalCleanup=s}X.set(N,UD);try{D?.send(bD(S))}catch(VD){if(X.delete(N),j)clearTimeout(j);s?.(),P(new G0(`request ${K} \u53D1\u9001\u5931\u8D25: ${VD instanceof Error?VD.message:String(VD)}`,"send_failed"))}})}async function U(K,E,q){if(!w7(K))throw new G0(`method ${K} \u672A\u5728 @zonease/aiworker-gateway-proto \u6CE8\u518C`,"unknown_method");return await _(K,E,q)}function A(K,E){if(!JF(K));let q=J.get(K);if(!q)q=new Set,J.set(K,q);return q.add(E),()=>{let N=J.get(K);if(!N)return;if(N.delete(E),N.size===0)J.delete(K)}}async function R(K,E){if(!D||F)return;await new Promise((q)=>{let N=D;if(!N){q();return}if(N.readyState===WebSocket.CLOSED){F=!0,$=!1,q();return}let S=N.onclose;N.onclose=(b)=>{if(typeof S==="function")S.call(N,b);q()};try{N.close(K,E)}catch{}})}function O(){return $&&!F&&D!==null&&D.readyState===WebSocket.OPEN}return{connect:W,request:U,requestRaw:_,onEvent:A,close:R,isOpen:O}}o8();async function ED(D,$={}){let F=await h7(),X=BW();try{await X.connect({url:O3($.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 zD(D){let $=JSON.stringify(D,null,2);OW.stdout.write(`${$}
325
- `)}function V2(D){OW.stdout.write(`${JSON.stringify(D)}
326
- `)}function KD(D){if(!(D instanceof G0))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 RW(D={}){try{let $=await ED(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){C.warn(`approval.list ${Y} \u5931\u8D25: ${B instanceof Error?B.message:String(B)}`)}return{approvals:G}});return zD($),0}catch($){return C.error(`approvals list \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}async function EW(D){try{let $=await ED(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 zD($),0}catch($){return C.error(`approvals grant \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}Y0();JD();async function CW(D){let $=D.timeoutMs??120000;try{return await ED(async({client:F})=>{return await new Promise((X)=>{let J=!1,G=(Q)=>{if(J)return;J=!0,X(Q)},Y=setTimeout(()=>{V2({kind:"error",payload:{code:"timeout",message:`chat \u7B49\u5F85 agent.done \u8D85\u65F6 (>${$}ms)`}}),G(3)},$),B=D.workerId,H=(Q)=>{if(Q===null||typeof Q!=="object")return!1;let _=Q.workerId;return typeof _==="string"&&_===B},W=[];W.push(F.onEvent(e.CHAT_MESSAGE,(Q)=>{if(!H(Q))return;V2({kind:e.CHAT_MESSAGE,payload:Q})})),W.push(F.onEvent(e.AGENT_THINKING,(Q)=>{if(!H(Q))return;V2({kind:e.AGENT_THINKING,payload:Q})})),W.push(F.onEvent(e.AGENT_TOOL_CALL,(Q)=>{if(!H(Q))return;V2({kind:e.AGENT_TOOL_CALL,payload:Q})})),W.push(F.onEvent(e.AGENT_DONE,(Q)=>{if(!H(Q))return;V2({kind:"done",payload:Q}),clearTimeout(Y);for(let _ of W)_();G(0)})),F.request("chat.send",{workerId:D.workerId,content:D.content,...D.conversationId===void 0?{}:{conversationId:D.conversationId}},{timeoutMs:Math.min($,30000)}).then((Q)=>{V2({kind:"accepted",payload:Q})}).catch((Q)=>{V2({kind:"error",payload:{code:"request_failed",message:Q instanceof Error?Q.message:String(Q)}}),clearTimeout(Y);for(let _ of W)_();G(KD(Q))})})})}catch(F){return C.error(`chat \u5931\u8D25: ${F instanceof Error?F.message:String(F)}`),KD(F)}}JD();async function MW(D){try{let $=await ED(async({client:F})=>{return await F.request("config.get",{workerId:D})});return zD($),0}catch($){return C.error(`config get \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}async function ZW(D){let $;try{$=JSON.parse(D.configJson)}catch(F){return C.error(`config-set \u53C2\u6570\u4E0D\u662F\u5408\u6CD5 JSON: ${F instanceof Error?F.message:String(F)}`),2}try{let F=await ED(async({client:X})=>{return await X.request("config.put",{workerId:D.workerId,ifMatch:D.ifMatch,config:$})});return zD(F),0}catch(F){return C.error(`config set \u5931\u8D25: ${F instanceof Error?F.message:String(F)}`),KD(F)}}JD();async function qW(){try{let D=await ED(async({client:$})=>{return await $.request("enroll.list",{})});return zD(D),0}catch(D){return C.error(`enroll list \u5931\u8D25: ${D instanceof Error?D.message:String(D)}`),KD(D)}}async function NW(D){try{let $=await ED(async({client:F})=>{return await F.request("enroll.approve",{otp:D})});return C.success(`\u5DF2\u6279\u51C6 OTP ${D}\uFF0CworkerId=${$.workerId}`),zD({workerId:$.workerId,deviceToken:$.deviceToken}),0}catch($){return C.error(`enroll approve \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}async function PW(D){try{let $=await ED(async({client:F})=>{return await F.request("enroll.reject",{otp:D})});if($.rejected)C.info(`\u5DF2\u62D2\u7EDD OTP ${D}`);else C.warn(`OTP ${D} \u4E0D\u5B58\u5728\u6216\u5DF2\u8FC7\u671F`);return zD($),0}catch($){return C.error(`enroll reject \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}import C4 from"process";import{createHash as fz}from"crypto";Y0();RX();CX();import{existsSync as IQ,mkdirSync as wj}from"fs";import h3 from"path";import{fileURLToPath as Sj}from"url";import{Database as bj}from"bun:sqlite";G4();var MX={};m8(MX,{registeredWorkers:()=>MD,auditEvents:()=>n2});var MD=Q0("registered_workers",{id:I("id").primaryKey(),baseUrl:I("base_url").notNull(),displayName:I("display_name").notNull(),apiTokenEnc:I("api_token_enc").notNull(),nonce:I("nonce").notNull(),authTag:I("auth_tag").notNull(),addedAt:I("added_at").notNull().$defaultFn(()=>new Date().toISOString()),addedBy:I("added_by").$type().notNull(),lastSeenAt:I("last_seen_at"),lastSeenState:I("last_seen_state").$type(),lastConfigVersion:ID("last_config_version")}),n2=Q0("audit_events",{id:ID("id").primaryKey({autoIncrement:!0}),at:I("at").notNull().$defaultFn(()=>new Date().toISOString()),actor:I("actor").notNull(),action:I("action").notNull(),workerId:I("worker_id"),detail:I("detail",{mode:"json"}).$type()},(D)=>({workerIdIdx:x0("audit_events_worker_id_idx").on(D.workerId)}));var TQ=h3.dirname(Sj(import.meta.url));function fj(D){let $=h3.resolve(TQ,"../../drizzle",D);if(IQ($))return $;let F=h3.resolve(TQ,"drizzle",D);if(IQ(F))return F;return $}var ZX=fj("fleet"),x3=null;function kj(D){let $=D===":memory:"?D:h3.resolve(D);try{if($!==":memory:")wj(h3.dirname($),{recursive:!0,mode:448});let F=new bj($,{create:!0});return F.exec("PRAGMA journal_mode = WAL"),F.exec("PRAGMA foreign_keys = ON"),B6(F,{schema:MX})}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 wQ(D){return x3=kj(D),x3}function qX(){if(!x3)throw Error("Fleet database not initialized. Call initFleetDb() first.");return x3}function NX(){x3=null}function SQ(D=ZX){H4(qX(),{migrationsFolder:D})}JD();W2();J0();yD();import bQ from"path";import vj from"process";var hj=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(U3),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 fQ(){let D=hj.parse(vj.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:xj(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 xj(D){if(D===":memory:")return D;let $=D&&D.length>0?D:bQ.join(B2(),"fleet.db");return bQ.resolve($)}Y0();function T0(D,$){let F=bD($);D.forEach((X)=>{try{X.ws.send(F)}catch{}})}class W4{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 V4{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 Q4{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 _4{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 gj}from"crypto";var PX="ABCDEFGHJKMNPQRSTVWXYZ23456789",kQ=4,yj=5;class U4{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??uj}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<yj;D++){let $=this.generator();if(!this.entries.has($))return $}throw Error("PendingEnrollmentRegistry: failed to allocate unique OTP after retries")}}function uj(){return`${vQ(kQ)}-${vQ(kQ)}`}function vQ(D){let $=gj(D),F="";for(let X=0;X<D;X++)F+=PX[$[X]%PX.length];return F}_0();import{Buffer as hQ}from"buffer";import{createCipheriv as mj,createDecipheriv as aDD,randomBytes as pj,timingSafeEqual as oDD}from"crypto";var cj="aes-256-gcm",dj=12,lj=32,ij=/^[0-9a-f]{64}$/;function nj(D){if(!ij.test(D))throw Error("Gateway AIWORKER_MASTER_KEY must be 32-byte hex");let $=hQ.from(D,"hex");if($.length!==lj)throw Error("Gateway AIWORKER_MASTER_KEY must be 32-byte hex");return $}function A4(D,$){let F=nj($),X=pj(dj),J=mj(cj,F,X),G=hQ.concat([J.update(D,"utf8"),J.final()]),Y=J.getAuthTag();return{ciphertext:G.toString("base64"),nonce:X.toString("base64"),authTag:Y.toString("base64")}}function sj(D){return D.replace(/[\\%_]/g,($)=>`\\${$}`)}class K4{db;constructor(D){this.db=D}listRegisteredWorkers(){return this.db.select().from(MD).orderBy(hD(MD.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(MD).where(v(MD.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(MD).where(v(MD.id,D)).get();if(!$)return;return{...$,lastSeenAt:$.lastSeenAt??void 0,lastSeenState:$.lastSeenState??void 0,lastConfigVersion:$.lastConfigVersion??void 0}}createRegisteredWorker(D,$){let F=A4(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(MD).values(G).run(),this.db.insert(n2).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(MD).where(v(MD.id,D.workerId)).get();if(!J){let W=A4(D.apiToken,$),Q={id:D.workerId,baseUrl:F,displayName:D.displayName,apiTokenEnc:W.ciphertext,nonce:W.nonce,authTag:W.authTag,addedAt:X,addedBy:D.addedBy??"self-enroll",lastSeenAt:X,lastSeenState:"online",lastConfigVersion:D.configVersion};this.db.insert(MD).values(Q).run();let{apiTokenEnc:_,nonce:U,authTag:A,...R}=Q;return{kind:"created",row:{...R,lastSeenAt:R.lastSeenAt??void 0,lastSeenState:R.lastSeenState??void 0,lastConfigVersion:R.lastConfigVersion??void 0}}}if(J.displayName!==D.displayName){this.db.update(MD).set({displayName:D.displayName,lastSeenAt:X,lastSeenState:"online"}).where(v(MD.id,D.workerId)).run();let{apiTokenEnc:W,nonce:Q,authTag:_,...U}=J;return{kind:"updated",row:{...U,displayName:D.displayName,lastSeenAt:X,lastSeenState:"online",lastConfigVersion:U.lastConfigVersion??void 0}}}this.db.update(MD).set({lastSeenAt:X,lastSeenState:"online"}).where(v(MD.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:MD.id}).from(MD).where(v(MD.id,D.workerId)).get())return!1;let X=A4(D.newToken,$);return this.db.update(MD).set({apiTokenEnc:X.ciphertext,nonce:X.nonce,authTag:X.authTag}).where(v(MD.id,D.workerId)).run(),!0}removeRegisteredWorker(D){if(!this.db.select({id:MD.id}).from(MD).where(v(MD.id,D)).get())return!1;return this.db.delete(MD).where(v(MD.id,D)).run(),!0}countRegisteredWorkers(){return this.db.select({value:t7()}).from(MD).get()?.value??0}recordAudit(D){this.db.insert(n2).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(c7(n2.id,D.before));if(D.actionPrefix&&D.actionPrefix.length>0){let B=`${sj(D.actionPrefix)}%`;F.push(M`${n2.action} LIKE ${B} ESCAPE '\\'`)}if(D.workerId&&D.workerId.length>0)F.push(v(n2.workerId,D.workerId));let X=F.length===0?void 0:F.length===1?F[0]:uD(...F),J=this.db.select().from(n2).where(X).orderBy(hD(n2.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}}}Y0();J0();import{Buffer as Oz}from"buffer";import{createHash as Rz}from"crypto";import{resolve as LX,sep as rj}from"path";async function xQ(D){let{webStaticDir:$}=D,F=LX($),X;try{X=aj(decodeURIComponent(D.pathnameAfterPrefix))}catch{return new Response("forbidden",{status:403})}let J=X===""?"index.html":X,G=LX(F,J);if(G!==F&&!G.startsWith(F+rj))return new Response("forbidden",{status:403});let Y=Bun.file(G);if(await Y.exists())return new Response(Y);if(!oj(J)){let B=Bun.file(LX(F,"index.html"));if(await B.exists())return new Response(B)}return new Response("not found",{status:404})}function aj(D){let $=0;while($<D.length&&D[$]==="/")$+=1;return D.slice($)}function oj(D){let $=D.lastIndexOf("/");return($===-1?D:D.slice($+1)).includes(".")}J0();function gQ(D){if(o1(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
324
+ `))}outputVersion(){let{name:D}=this.cli,{versionNumber:$}=this.cli.globalCommand;if($)console.log(`${D}/${$} ${Cq}`)}checkRequiredArgs(){let D=this.args.filter(($)=>$.required).length;if(this.cli.args.length<D)throw new Y7(`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 Y7(`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 Y7(`option \`${X.rawName}\` value is missing`)}}}}class f$ extends b${constructor(D){super("@@global@@","",{},D)}}var J7=Object.assign;class NB extends Wq{constructor(D=""){super();this.name=D,this.commands=[],this.rawArgs=[],this.args=[],this.options={},this.globalCommand=new f$(this),this.globalCommand.usage("<command> [options]")}usage(D){return this.globalCommand.usage(D),this}command(D,$,F){let X=new b$(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=Eq,{run:$=!0}={}){if(this.rawArgs=D,!this.name)this.name=D[1]?Rq(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=J7(J7({},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=Uq(F),J=[],G=D.indexOf("--");if(G>-1)J=D.slice(G+1),D=D.slice(0,G);let Y=Qq(D,X);Y=Object.keys(Y).reduce((_,U)=>{return J7(J7({},_),{[ZB(U)]:Y[U]})},{_:[]});let B=Y._,H={"--":J},W=$&&$.config.ignoreOptionDefaultValue?$.config.ignoreOptionDefaultValue:this.globalCommand.config.ignoreOptionDefaultValue,Q=Object.create(null);for(let _ of F){if(!W&&_.config.default!==void 0)for(let U of _.names)H[U]=_.config.default;if(Array.isArray(_.config.type)){if(Q[_.name]===void 0)Q[_.name]=Object.create(null),Q[_.name].shouldTransform=!0,Q[_.name].transformFunction=_.config.type[0]}}for(let _ of Object.keys(Y))if(_!=="_"){let U=_.split(".");Kq(H,U,Y[_]),Oq(H,Q)}return{args:B,options:H}}runMatchedCommand(){let{args:D,options:$,matchedCommand:F}=this;if(!F||!F.commandAction)return;F.checkUnknownOptions(),F.checkOptionValue(),F.checkRequiredArgs();let X=[];return F.args.forEach((J,G)=>{if(J.variadic)X.push(D.slice(G));else X.push(D[G])}),X.push($),F.commandAction.apply(this,X)}}var Mq=(D="")=>new NB(D),PB=Mq;JD();var KH={name:"@zonease/aiworker-cli",type:"module",version:"0.4.6",description:"AIWorker fleet CLI \u2014 gateway / worker / operator \u5355\u4E00\u4E8C\u8FDB\u5236",license:"MIT",homepage:"https://github.com/ZonEaseTech/aiworker#readme",repository:{type:"git",url:"git+https://github.com/ZonEaseTech/aiworker.git"},publishConfig:{access:"public"},bin:{aiworker:"./dist/aiworker.js"},files:["README.md","dist/"],engines:{bun:">=1.1"},scripts:{typecheck:"tsc --noEmit",test:"bun test --timeout=15000","test:stress":"bun test --timeout=15000 --rerun-each=3 src/commands/init.integration.test.ts src/commands/sessions.test.ts",build:"bun run --filter '@zonease/aiworker-web' build && bun run build:bundle","build:bundle":"bun build --target=bun --minify --outdir=dist src/aiworker.ts && bun scripts/build-publish-manifest.ts",prepublishOnly:"bun run build","smoke:aiworker-run":"bun scripts/smoke-aiworker-run.ts","smoke:aiworker-fleet":"bun scripts/smoke-aiworker-fleet.ts"},devDependencies:{"@types/bun":"^1.2.13","@zonease/aiworker-api":"workspace:*","@zonease/aiworker-core":"workspace:*","@zonease/aiworker-fs-layout":"workspace:*","@zonease/aiworker-gateway":"workspace:*","@zonease/aiworker-gateway-proto":"workspace:*","@zonease/aiworker-shared":"workspace:*","@zonease/aiworker-storage-sqlite":"workspace:*",cac:"^6.7.14",consola:"^3.4.2",typescript:"^5.8.3"}};JD();import RW from"process";Y0();class G0 extends Error{code;constructor(D,$="aim_ws_error"){super(D);this.code=$;this.name="AimWsError"}}function HW(){let D=null,$=!1,F=!1,X=new Map,J=new Map;function G(K){for(let[,E]of X){if(E.timer)clearTimeout(E.timer);E.signalCleanup?.(),E.reject(K)}X.clear()}function Y(K){let E=X.get(K.id);if(!E)return;if(X.delete(K.id),E.timer)clearTimeout(E.timer);if(E.signalCleanup?.(),K.ok)E.resolve(K.result);else{let q=K.error;E.reject(new G0(`${q.code}: ${q.message}`,q.code))}}function B(K){let E=J.get(K.name);if(!E||E.size===0)return;for(let q of E)try{q(K.payload)}catch{}}function H(K){let E=r8(K);if(!E.ok)return;let q=E.frame;if(q.type==="response")Y(q);else if(q.type==="event")B(q)}async function W(K){if($)throw new G0("aim client \u5DF2\u7ECF\u8FDE\u63A5","already_connected");let E=K.timeoutMs??1e4;await new Promise((q,N)=>{let S=!1,b;try{b=new WebSocket(K.url)}catch(z){N(new G0(`WebSocket \u6784\u9020\u5931\u8D25 (${K.url}): ${z instanceof Error?z.message:String(z)}`,"ws_construct_failed"));return}D=b;let L=setTimeout(()=>{if(S)return;S=!0;try{b.close()}catch{}N(new G0(`\u8FDE\u63A5 gateway \u8D85\u65F6 (>${E}ms): ${K.url}`,"connect_timeout"))},E);b.onopen=()=>{let z={type:"connect",role:s8.OPERATOR,agentId:K.deviceId,deviceId:K.deviceId,auth:{token:K.token},...K.meta?{meta:K.meta}:{}};try{b.send(bD(z))}catch(j){if(S)return;S=!0,clearTimeout(L),N(new G0(`\u53D1\u9001 connect \u5E27\u5931\u8D25: ${j instanceof Error?j.message:String(j)}`,"connect_send_failed"));return}if(!S)S=!0,clearTimeout(L),$=!0,q()},b.onmessage=(z)=>{let j=typeof z.data==="string"?z.data:z.data instanceof ArrayBuffer?new TextDecoder().decode(z.data):String(z.data);H(j)},b.onerror=(z)=>{if(S)return;S=!0,clearTimeout(L);let j=z.message??"unknown";N(new G0(`WS \u8FDE\u63A5\u9519\u8BEF: ${j}`,"ws_error"))},b.onclose=(z)=>{if(F=!0,$=!1,G(new G0(`WS \u5DF2\u5173\u95ED (code=${z.code}, reason=${z.reason||"n/a"})`,"ws_closed")),!S)S=!0,clearTimeout(L),N(new G0(`WS \u5728\u63E1\u624B\u9636\u6BB5\u88AB\u5173\u95ED (code=${z.code})`,"ws_closed_early"))}})}function Q(){if(!$||F||D===null||D.readyState!==WebSocket.OPEN)throw new G0("aim client \u672A\u8FDE\u63A5\u6216\u5DF2\u5173\u95ED","not_connected")}async function _(K,E,q){Q();let N=crypto.randomUUID(),S={type:"request",id:N,method:K,...E===void 0?{}:{params:E}};return await new Promise((b,L)=>{let z=q?.timeoutMs??30000,j=null,d=null,VD={resolve:b,reject:L,timer:null,signalCleanup:null};if(j=setTimeout(()=>{X.delete(N),d?.(),L(new G0(`request ${K} \u8D85\u65F6 (>${z}ms)`,"request_timeout"))},z),VD.timer=j,q?.signal){let QD=q.signal;if(QD.aborted){X.delete(N),clearTimeout(j),L(QD.reason??new G0(`request ${K} \u88AB abort`,"aborted"));return}let $D=()=>{if(X.delete(N),j)clearTimeout(j);L(QD.reason??new G0(`request ${K} \u88AB abort`,"aborted"))};QD.addEventListener("abort",$D,{once:!0}),d=()=>QD.removeEventListener("abort",$D),VD.signalCleanup=d}X.set(N,VD);try{D?.send(bD(S))}catch(QD){if(X.delete(N),j)clearTimeout(j);d?.(),L(new G0(`request ${K} \u53D1\u9001\u5931\u8D25: ${QD instanceof Error?QD.message:String(QD)}`,"send_failed"))}})}async function U(K,E,q){if(!w7(K))throw new G0(`method ${K} \u672A\u5728 @zonease/aiworker-gateway-proto \u6CE8\u518C`,"unknown_method");return await _(K,E,q)}function A(K,E){if(!JF(K));let q=J.get(K);if(!q)q=new Set,J.set(K,q);return q.add(E),()=>{let N=J.get(K);if(!N)return;if(N.delete(E),N.size===0)J.delete(K)}}async function R(K,E){if(!D||F)return;await new Promise((q)=>{let N=D;if(!N){q();return}if(N.readyState===WebSocket.CLOSED){F=!0,$=!1,q();return}let S=N.onclose;N.onclose=(b)=>{if(typeof S==="function")S.call(N,b);q()};try{N.close(K,E)}catch{}})}function O(){return $&&!F&&D!==null&&D.readyState===WebSocket.OPEN}return{connect:W,request:U,requestRaw:_,onEvent:A,close:R,isOpen:O}}o8();async function ED(D,$={}){let F=await h7(),X=HW();try{await X.connect({url:O3($.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 zD(D){let $=JSON.stringify(D,null,2);RW.stdout.write(`${$}
325
+ `)}function V2(D){RW.stdout.write(`${JSON.stringify(D)}
326
+ `)}function KD(D){if(!(D instanceof G0))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 EW(D={}){try{let $=await ED(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){C.warn(`approval.list ${Y} \u5931\u8D25: ${B instanceof Error?B.message:String(B)}`)}return{approvals:G}});return zD($),0}catch($){return C.error(`approvals list \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}async function CW(D){try{let $=await ED(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 zD($),0}catch($){return C.error(`approvals grant \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}Y0();JD();async function MW(D){let $=D.timeoutMs??120000;try{return await ED(async({client:F})=>{return await new Promise((X)=>{let J=!1,G=(Q)=>{if(J)return;J=!0,X(Q)},Y=setTimeout(()=>{V2({kind:"error",payload:{code:"timeout",message:`chat \u7B49\u5F85 agent.done \u8D85\u65F6 (>${$}ms)`}}),G(3)},$),B=D.workerId,H=(Q)=>{if(Q===null||typeof Q!=="object")return!1;let _=Q.workerId;return typeof _==="string"&&_===B},W=[];W.push(F.onEvent(e.CHAT_MESSAGE,(Q)=>{if(!H(Q))return;V2({kind:e.CHAT_MESSAGE,payload:Q})})),W.push(F.onEvent(e.AGENT_THINKING,(Q)=>{if(!H(Q))return;V2({kind:e.AGENT_THINKING,payload:Q})})),W.push(F.onEvent(e.AGENT_TOOL_CALL,(Q)=>{if(!H(Q))return;V2({kind:e.AGENT_TOOL_CALL,payload:Q})})),W.push(F.onEvent(e.AGENT_DONE,(Q)=>{if(!H(Q))return;V2({kind:"done",payload:Q}),clearTimeout(Y);for(let _ of W)_();G(0)})),F.request("chat.send",{workerId:D.workerId,content:D.content,...D.conversationId===void 0?{}:{conversationId:D.conversationId}},{timeoutMs:Math.min($,30000)}).then((Q)=>{V2({kind:"accepted",payload:Q})}).catch((Q)=>{V2({kind:"error",payload:{code:"request_failed",message:Q instanceof Error?Q.message:String(Q)}}),clearTimeout(Y);for(let _ of W)_();G(KD(Q))})})})}catch(F){return C.error(`chat \u5931\u8D25: ${F instanceof Error?F.message:String(F)}`),KD(F)}}JD();async function ZW(D){try{let $=await ED(async({client:F})=>{return await F.request("config.get",{workerId:D})});return zD($),0}catch($){return C.error(`config get \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}async function qW(D){let $;try{$=JSON.parse(D.configJson)}catch(F){return C.error(`config-set \u53C2\u6570\u4E0D\u662F\u5408\u6CD5 JSON: ${F instanceof Error?F.message:String(F)}`),2}try{let F=await ED(async({client:X})=>{return await X.request("config.put",{workerId:D.workerId,ifMatch:D.ifMatch,config:$})});return zD(F),0}catch(F){return C.error(`config set \u5931\u8D25: ${F instanceof Error?F.message:String(F)}`),KD(F)}}JD();async function NW(){try{let D=await ED(async({client:$})=>{return await $.request("enroll.list",{})});return zD(D),0}catch(D){return C.error(`enroll list \u5931\u8D25: ${D instanceof Error?D.message:String(D)}`),KD(D)}}async function PW(D){try{let $=await ED(async({client:F})=>{return await F.request("enroll.approve",{otp:D})});return C.success(`\u5DF2\u6279\u51C6 OTP ${D}\uFF0CworkerId=${$.workerId}`),zD({workerId:$.workerId,deviceToken:$.deviceToken}),0}catch($){return C.error(`enroll approve \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}async function LW(D){try{let $=await ED(async({client:F})=>{return await F.request("enroll.reject",{otp:D})});if($.rejected)C.info(`\u5DF2\u62D2\u7EDD OTP ${D}`);else C.warn(`OTP ${D} \u4E0D\u5B58\u5728\u6216\u5DF2\u8FC7\u671F`);return zD($),0}catch($){return C.error(`enroll reject \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}import C4 from"process";import{createHash as fz}from"crypto";Y0();RX();CX();import{existsSync as TQ,mkdirSync as wj}from"fs";import h3 from"path";import{fileURLToPath as Sj}from"url";import{Database as bj}from"bun:sqlite";G4();var MX={};m8(MX,{registeredWorkers:()=>MD,auditEvents:()=>n2});var MD=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:ID("last_config_version")}),n2=Q0("audit_events",{id:ID("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:x0("audit_events_worker_id_idx").on(D.workerId)}));var wQ=h3.dirname(Sj(import.meta.url));function fj(D){let $=h3.resolve(wQ,"../../drizzle",D);if(TQ($))return $;let F=h3.resolve(wQ,"drizzle",D);if(TQ(F))return F;return $}var ZX=fj("fleet"),x3=null;function kj(D){let $=D===":memory:"?D:h3.resolve(D);try{if($!==":memory:")wj(h3.dirname($),{recursive:!0,mode:448});let F=new bj($,{create:!0});return F.exec("PRAGMA journal_mode = WAL"),F.exec("PRAGMA foreign_keys = ON"),B6(F,{schema:MX})}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 SQ(D){return x3=kj(D),x3}function qX(){if(!x3)throw Error("Fleet database not initialized. Call initFleetDb() first.");return x3}function NX(){x3=null}function bQ(D=ZX){H4(qX(),{migrationsFolder:D})}JD();W2();J0();yD();import fQ from"path";import vj from"process";var hj=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(U3),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 kQ(){let D=hj.parse(vj.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:xj(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 xj(D){if(D===":memory:")return D;let $=D&&D.length>0?D:fQ.join(B2(),"fleet.db");return fQ.resolve($)}Y0();function T0(D,$){let F=bD($);D.forEach((X)=>{try{X.ws.send(F)}catch{}})}class W4{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 V4{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 Q4{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 _4{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 gj}from"crypto";var PX="ABCDEFGHJKMNPQRSTVWXYZ23456789",vQ=4,yj=5;class U4{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??uj}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<yj;D++){let $=this.generator();if(!this.entries.has($))return $}throw Error("PendingEnrollmentRegistry: failed to allocate unique OTP after retries")}}function uj(){return`${hQ(vQ)}-${hQ(vQ)}`}function hQ(D){let $=gj(D),F="";for(let X=0;X<D;X++)F+=PX[$[X]%PX.length];return F}_0();import{Buffer as xQ}from"buffer";import{createCipheriv as mj,createDecipheriv as oDD,randomBytes as pj,timingSafeEqual as tDD}from"crypto";var cj="aes-256-gcm",dj=12,lj=32,ij=/^[0-9a-f]{64}$/;function nj(D){if(!ij.test(D))throw Error("Gateway AIWORKER_MASTER_KEY must be 32-byte hex");let $=xQ.from(D,"hex");if($.length!==lj)throw Error("Gateway AIWORKER_MASTER_KEY must be 32-byte hex");return $}function A4(D,$){let F=nj($),X=pj(dj),J=mj(cj,F,X),G=xQ.concat([J.update(D,"utf8"),J.final()]),Y=J.getAuthTag();return{ciphertext:G.toString("base64"),nonce:X.toString("base64"),authTag:Y.toString("base64")}}function sj(D){return D.replace(/[\\%_]/g,($)=>`\\${$}`)}class K4{db;constructor(D){this.db=D}listRegisteredWorkers(){return this.db.select().from(MD).orderBy(hD(MD.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(MD).where(v(MD.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(MD).where(v(MD.id,D)).get();if(!$)return;return{...$,lastSeenAt:$.lastSeenAt??void 0,lastSeenState:$.lastSeenState??void 0,lastConfigVersion:$.lastConfigVersion??void 0}}createRegisteredWorker(D,$){let F=A4(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(MD).values(G).run(),this.db.insert(n2).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(MD).where(v(MD.id,D.workerId)).get();if(!J){let W=A4(D.apiToken,$),Q={id:D.workerId,baseUrl:F,displayName:D.displayName,apiTokenEnc:W.ciphertext,nonce:W.nonce,authTag:W.authTag,addedAt:X,addedBy:D.addedBy??"self-enroll",lastSeenAt:X,lastSeenState:"online",lastConfigVersion:D.configVersion};this.db.insert(MD).values(Q).run();let{apiTokenEnc:_,nonce:U,authTag:A,...R}=Q;return{kind:"created",row:{...R,lastSeenAt:R.lastSeenAt??void 0,lastSeenState:R.lastSeenState??void 0,lastConfigVersion:R.lastConfigVersion??void 0}}}if(J.displayName!==D.displayName){this.db.update(MD).set({displayName:D.displayName,lastSeenAt:X,lastSeenState:"online"}).where(v(MD.id,D.workerId)).run();let{apiTokenEnc:W,nonce:Q,authTag:_,...U}=J;return{kind:"updated",row:{...U,displayName:D.displayName,lastSeenAt:X,lastSeenState:"online",lastConfigVersion:U.lastConfigVersion??void 0}}}this.db.update(MD).set({lastSeenAt:X,lastSeenState:"online"}).where(v(MD.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:MD.id}).from(MD).where(v(MD.id,D.workerId)).get())return!1;let X=A4(D.newToken,$);return this.db.update(MD).set({apiTokenEnc:X.ciphertext,nonce:X.nonce,authTag:X.authTag}).where(v(MD.id,D.workerId)).run(),!0}removeRegisteredWorker(D){if(!this.db.select({id:MD.id}).from(MD).where(v(MD.id,D)).get())return!1;return this.db.delete(MD).where(v(MD.id,D)).run(),!0}countRegisteredWorkers(){return this.db.select({value:t7()}).from(MD).get()?.value??0}recordAudit(D){this.db.insert(n2).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(c7(n2.id,D.before));if(D.actionPrefix&&D.actionPrefix.length>0){let B=`${sj(D.actionPrefix)}%`;F.push(M`${n2.action} LIKE ${B} ESCAPE '\\'`)}if(D.workerId&&D.workerId.length>0)F.push(v(n2.workerId,D.workerId));let X=F.length===0?void 0:F.length===1?F[0]:uD(...F),J=this.db.select().from(n2).where(X).orderBy(hD(n2.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}}}Y0();J0();import{Buffer as Oz}from"buffer";import{createHash as Rz}from"crypto";import{resolve as LX,sep as rj}from"path";async function gQ(D){let{webStaticDir:$}=D,F=LX($),X;try{X=aj(decodeURIComponent(D.pathnameAfterPrefix))}catch{return new Response("forbidden",{status:403})}let J=X===""?"index.html":X,G=LX(F,J);if(G!==F&&!G.startsWith(F+rj))return new Response("forbidden",{status:403});let Y=Bun.file(G);if(await Y.exists())return new Response(Y);if(!oj(J)){let B=Bun.file(LX(F,"index.html"));if(await B.exists())return new Response(B)}return new Response("not found",{status:404})}function aj(D){let $=0;while($<D.length&&D[$]==="/")$+=1;return D.slice($)}function oj(D){let $=D.lastIndexOf("/");return($===-1?D:D.slice($+1)).includes(".")}J0();function yQ(D){if(o1(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
327
  `+`
328
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
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
330
  `+`
331
331
  `+`\u4FEE\u590D\u65B9\u5F0F\u4E8C\u9009\u4E00\uFF1A
332
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 yQ}from"buffer";import{timingSafeEqual as tj}from"crypto";function uQ(D,$){let F=yQ.from(D,"utf8"),X=yQ.from($,"utf8");if(F.length!==X.length)return!1;return tj(F,X)}function mQ(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(!uQ(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(!uQ(D.presentedToken,D.sharedSecret))return{ok:!1,reason:"invalid_token"};return{ok:!0,via:"shared-secret"}}Y0();Y0();yD();function pQ(D){let $=V.object({workerId:V.string().min(1)}).safeParse(D.params);if(!$.success)return jX(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 jX(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(bD({type:"request",id:J.gatewayRequestId,method:D.method,params:D.params})),!0}catch(G){return D.ctx.forwards.consume(J.gatewayRequestId),jX(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 jX(D,$,F){let X=bD({type:"response",id:$,ok:!1,error:F});try{D.send(X)}catch{}}Y0();yD();var ej=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({}),Dz=V.object({events:V.array(I7),hasMore:V.boolean()}),cQ=(D,$)=>{let F=ej.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=Dz.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}};Y0();yD();import{createHash as $z}from"crypto";var dQ=V.object({otp:V.string().min(1)}),lQ=(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(z7)}).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}},iQ=(D,$)=>{if(!D.pendingEnrollments)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u521D\u59CB\u5316 pending enrollment registry"};let F=dQ.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=Fz(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(bD({type:"event",name:e.ENROLLMENT_APPROVED,payload:{workerId:X.workerId,deviceToken:X.apiToken},ts:Date.now()}))}catch{}if(T0(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 T0(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}}},nQ=(D,$)=>{if(!D.pendingEnrollments)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u521D\u59CB\u5316 pending enrollment registry"};let F=dQ.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:Xz(X.otp)}}),T0(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 Fz(D,$){let F=D.pendingEnrollments?.list().find((X)=>X.otp===$);return F?{workerId:F.workerId}:void 0}function Xz(D){return $z("sha256").update(D).digest("hex").slice(0,16)}Y0();yD();var Jz=V.object({now:V.number().int(),online:V.array(a8)}),sQ=(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=Jz.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}};Y0();yD();import{Buffer as rQ}from"buffer";var Yz=V.object({workerId:V.string().min(1)}),aQ=async(D,$)=>{let F=Yz.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 oQ(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(bD({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 oQ{resolve;ctx;workerId;constructor(D,$,F){this.resolve=D;this.ctx=$;this.workerId=F}send(D){let $=typeof D==="string"?D:D instanceof ArrayBuffer?rQ.from(new Uint8Array(D)).toString("utf8"):rQ.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(){}}Y0();J0();yD();J0();class g3 extends Error{constructor(D="worker rejected bearer token"){super(D);this.name="WorkerClientAuthError"}}class $1 extends Error{cause;constructor(D,$){super(D);this.cause=$;this.name="WorkerClientNetworkError"}}class C8 extends Error{constructor(D){super(D);this.name="WorkerClientInvalidResponseError"}}var Gz=1e4;class zX{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??Gz}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 $1(`worker ${this.baseUrl} request timed out after ${this.timeoutMs}ms`,B);throw new $1(`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 g3;if(!D.ok)throw new $1(`worker ${this.baseUrl} returned HTTP ${D.status}`);let $;try{$=await D.json()}catch(F){throw new C8(`worker ${this.baseUrl} /info returned non-JSON body: ${F.message}`)}if(!Bz($))throw new C8(`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 g3;if(!D.ok)throw new $1(`worker ${this.baseUrl} returned HTTP ${D.status} from /token/rotate`);let $;try{$=await D.json()}catch(X){throw new C8(`worker ${this.baseUrl} /token/rotate returned non-JSON body: ${X.message}`)}if(!$||typeof $!=="object"||!("newToken"in $))throw new C8(`worker ${this.baseUrl} /token/rotate response missing newToken`);let F=$.newToken;if(!U8(F))throw new C8(`worker ${this.baseUrl} /token/rotate returned a token that does not match wtk_<base64url>`);return{newToken:F}}}function Bz(D){if(!D||typeof D!=="object")return!1;let $=D;return typeof $.workerId==="string"&&$.workerId.length>0&&typeof $.configVersion==="number"&&Number.isFinite($.configVersion)}class H6 extends Error{constructor(D){super(D);this.name="LaunchTimeoutError"}}class s2 extends Error{cause;constructor(D,$){super(D);this.cause=$;this.name="LaunchFailedError"}}function Hz(D){if(!D)return null;let $=Date.parse(D);if(!Number.isFinite($))return null;return $}var tQ=(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:Hz(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(a8)}).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}},eQ=(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}}},Wz=V.object({workerBaseUrl:V.string().min(1),bootstrapToken:V.string().regex(c2,"bootstrapToken must match wtk_<base64url>"),displayName:V.string().min(1).max(80).optional()});function Vz(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=Wz.safeParse(F);if(!X.success)return{ok:!1,code:"invalid_params",message:"workers.pair \u53C2\u6570\u6821\u9A8C\u5931\u8D25",details:X.error.flatten()};let J=X.data;if($.maxWorkers!==void 0){let Q=$.persistence.countRegisteredWorkers();if(Q>=$.maxWorkers)return{ok:!1,code:"quota_exceeded",message:`fleet \u5DF2\u8FBE ${$.maxWorkers} worker \u4E0A\u9650`,details:{limit:$.maxWorkers,current:Q}}}let G=D.buildClient?D.buildClient(J.workerBaseUrl,J.bootstrapToken):new zX({baseUrl:J.workerBaseUrl,apiToken:J.bootstrapToken}),Y;try{Y=await G.info()}catch(Q){if(Q instanceof g3)return{ok:!1,code:"auth_failed",message:"worker \u62D2\u7EDD bootstrap token"};if(Q instanceof $1)return{ok:!1,code:"worker_unreachable",message:Q.message};if(Q instanceof C8)return{ok:!1,code:"invalid_worker_info",message:Q.message};throw Q}if($.persistence.getRegisteredWorker(Y.workerId))return{ok:!1,code:"already_registered",message:`worker ${Y.workerId} \u5DF2\u5728 fleet \u4E2D`,details:{workerId:Y.workerId}};let H=$.persistence.createRegisteredWorker({workerId:Y.workerId,baseUrl:J.workerBaseUrl,apiToken:J.bootstrapToken,displayName:J.displayName??Y.workerId,addedBy:"manual",configVersion:Y.configVersion},$.masterKeyHex),W=t1.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 D_=Vz(),Qz=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 _z(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=Qz.safeParse(F);if(!X.success)return{ok:!1,code:"invalid_params",message:"workers.launch \u53C2\u6570\u6821\u9A8C\u5931\u8D25",details:X.error.flatten()};let J=X.data,G=J.displayName??"worker";if($.maxWorkers!==void 0){let Q=$.persistence.countRegisteredWorkers();if(Q>=$.maxWorkers)return{ok:!1,code:"quota_exceeded",message:`fleet \u5DF2\u8FBE ${$.maxWorkers} worker \u4E0A\u9650`,details:{limit:$.maxWorkers,current:Q}}}let Y;try{Y=await $.supervisor.launchLocal({displayName:G,...J.forceId===void 0?{}:{forceId:J.forceId}})}catch(Q){if(Q instanceof H6)return{ok:!1,code:"launch_timeout",message:Q.message};if(Q instanceof s2)return{ok:!1,code:"launch_failed",message:Q.message};throw Q}if($.persistence.getRegisteredWorker(Y.workerId))return{ok:!1,code:"already_registered",message:`worker ${Y.workerId} \u5DF2\u5728 fleet \u4E2D`,details:{workerId:Y.workerId,containerName:Y.containerName}};let H=$.persistence.createRegisteredWorker({workerId:Y.workerId,baseUrl:Y.baseUrl,apiToken:Y.apiToken,displayName:G,addedBy:"launch-local"},$.masterKeyHex);$.persistence.recordAudit({actor:"gateway",action:"gateway.worker.launched",workerId:H.id,detail:{containerId:Y.containerId,containerName:Y.containerName,baseUrl:Y.baseUrl}});let W=t1.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 $_=_z();var Uz={"system.presence":sQ,"workers.list":tQ,"workers.remove":eQ,"workers.pair":D_,"workers.launch":$_,"token.rotate":aQ,"enroll.list":lQ,"enroll.approve":iQ,"enroll.reject":nQ,"audit.list":cQ},Az=new Set(["system.presence","workers.list","audit.list","enroll.list"]);async function F_(D,$,F,X){let J=K3(F.method);if(!J){W6($,{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){W6($,{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(!Az.has(F.method))D.persistence.recordAudit({actor:"gateway",action:"gateway.method.invoked",workerId:Kz(Y),detail:{method:F.method,agentId:X}});if(J.routing==="operator-to-gateway"){let B=Uz[F.method];if(!B){W6($,{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)W6($,{type:"response",id:F.id,ok:!0,result:H.result});else W6($,{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),W6($,{type:"response",id:F.id,ok:!1,error:{code:"internal_error",message:H instanceof Error?H.message:String(H)}})}return}pQ({ctx:D,operatorWs:$,operatorRequestId:F.id,method:F.method,params:Y})}function X_(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(bD(J))}catch{}}function J_(D,$,F){T0(D.operators,F)}function Kz(D){if(D&&typeof D==="object"&&"workerId"in D){let $=D.workerId;return typeof $==="string"&&$.length>0?$:null}return null}function W6(D,$){try{D.send(bD($))}catch{}}function Y_(D){let{config:$,context:F}=D;gQ({host:$.host,internalSharedSecret:$.internalSharedSecret}),A3({surface:"fleet",host:$.host,serveWeb:F.webStaticDir!==void 0,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 xQ({webStaticDir:F.webStaticDir,pathnameAfterPrefix:B.pathname.slice(7)})}if(B.pathname==="/ws"||B.pathname==="/enroll-ws"){let W=Y.requestIP(G)?.address,Q=o1(W);if(!Q&&F.connectRateLimiter){let A=F.connectRateLimiter.isBlocked(W);if(A.blocked)return new Response("rate_limited",{status:429,headers:{"Retry-After":String(Math.ceil(A.retryAfterMs/1000))}})}let _=B.pathname==="/enroll-ws"?"/enroll-ws":"/ws";if(Y.upgrade(G,{data:{role:void 0,agentId:void 0,deviceId:void 0,loopback:Q,remoteAddress:W,connectedAt:Date.now(),subscribedAll:!0,path:_}}))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){Ez(G,Y,F,$)},close(G,Y,B){Cz(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 Ez(D,$,F,X){let J=typeof $==="string"?$:Oz.from($).toString("utf8"),G=r8(J);if(!G.ok){F.logger.warn(`[gateway] \u65E0\u6CD5\u89E3\u6790\u5E27: ${G.error}`),D.close(4400,"bad_frame");return}let Y=G.frame;if(D.data.role===void 0){if(Y.type!=="connect"){F.logger.warn(`[gateway] \u63E1\u624B\u524D\u6536\u5230\u975E connect \u5E27: ${Y.type}`),D.close(4400,"connect_required");return}let B=Y.role==="node"&&Y.enroll?Y.enroll.mode??"join-token":void 0,H=B==="otp",W=Y.role==="node"&&Y.enroll!==void 0&&B==="join-token",Q=mQ({loopback:D.data.loopback,sharedSecret:X.internalSharedSecret,presentedToken:Y.auth.token,enrollToken:W?Y.enroll.joinToken:void 0,gatewayJoinToken:X.joinToken,path:D.data.path,isOtpEnrollSubmit:H});if(!Q.ok){let _=Q.reason.startsWith("wrong_path:");if(F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.rejected",workerId:Y.role==="node"?Y.agentId:null,detail:{reason:Q.reason,role:Y.role,agentId:Y.agentId,remoteAddress:D.data.remoteAddress,path:D.data.path}}),!_&&!D.data.loopback&&F.connectRateLimiter){let R=F.connectRateLimiter.recordFailure(D.data.remoteAddress);if(R.blockedNow)F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.brute_force_blocked",workerId:null,detail:{remoteAddress:D.data.remoteAddress,fails:R.fails,blockUntil:R.blockUntil,path:D.data.path,triggerReason:Q.reason}})}let U=_?4400:4401,A=_?Q.reason:`auth:${Q.reason}`;D.close(U,A);return}if(Q.via==="enroll-otp"){if(!F.pendingEnrollments){F.logger.error("[gateway] /enroll-ws \u6536\u5230 OTP submit \u4F46 ctx.pendingEnrollments \u672A\u6CE8\u5165"),D.close(4500,"enroll_unavailable");return}let _=Y.enroll,U=F.pendingEnrollments.submit({workerId:Y.agentId,apiToken:_.apiToken,displayName:_.displayName,ws:D});try{D.send(bD({type:"event",name:e.ENROLLMENT_OTP,payload:{workerId:Y.agentId,otp:U.otp,expiresAt:U.expiresAt},ts:Date.now()}))}catch(A){F.pendingEnrollments.removeByWs(D),F.logger.warn(`[gateway] \u63A8\u9001 enrollment.otp \u5931\u8D25: ${A.message}`),D.close(4500,"enroll_otp_send_failed");return}D.data.role="node-pending",D.data.agentId=Y.agentId,D.data.deviceId=Y.deviceId,F.persistence.recordAudit({actor:"gateway",action:"gateway.enrollment.requested",workerId:Y.agentId,detail:{workerId:Y.agentId,displayName:_.displayName,deviceId:Y.deviceId,otpHash:Zz(U.otp),expiresAt:U.expiresAt,path:D.data.path}}),T0(F.operators,{type:"event",name:e.ENROLLMENT_PENDING,payload:{workerId:Y.agentId,..._.displayName===void 0?{}:{displayName:_.displayName},otp:U.otp,submittedAt:Date.now(),expiresAt:U.expiresAt,reason:"submitted"},ts:Date.now()});return}if(W){if(F.maxWorkers!==void 0){let A=F.persistence.countRegisteredWorkers();if(F.persistence.getRegisteredWorker(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 _=Y.enroll,U=F.persistence.upsertEnrolledWorker({workerId:Y.agentId,baseUrl:"",apiToken:_.apiToken,displayName:_.displayName??Y.agentId,addedBy:"self-enroll"},F.masterKeyHex);if(U.kind!=="unchanged")F.persistence.recordAudit({actor:"gateway",action:"gateway.worker.enrolled",workerId:Y.agentId,detail:{workerId:Y.agentId,displayName:U.row.displayName,deviceId:Y.deviceId,change:U.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:_}=F.nodes.register({workerId:Y.agentId,deviceId:Y.deviceId,ws:D,pairedAt:Date.now(),meta:Y.meta??{}});if(_){F.forwards.cancelByWorker(Y.agentId);try{_.ws.close(1012,"replaced_by_new_node_connection")}catch{}}let U=F.persistence.getRegisteredWorker(Y.agentId)?.displayName;T0(F.operators,{type:"event",name:e.WORKER_ONLINE,payload:{workerId:Y.agentId,displayName:U,deviceId:Y.deviceId,connectedAt:Date.now()},ts:Date.now()})}if(F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.accepted",workerId:Y.role==="node"?Y.agentId:null,detail:{role:Y.role,agentId:Y.agentId,deviceId:Y.deviceId,loopback:D.data.loopback,via:Q.via}}),!D.data.loopback&&F.connectRateLimiter)F.connectRateLimiter.recordSuccess(D.data.remoteAddress);return}if(D.data.role==="node-pending"){F.logger.warn(`[gateway] node-pending \u7AEF\u5728 approve \u524D\u53D1\u9001\u4E86 ${Y.type} \u5E27\uFF0C\u5FFD\u7565`);return}if(D.data.role==="operator"){if(Y.type==="request"){let B=D.data.agentId??"unknown";F_(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"){X_(F,D,Y);return}if(Y.type==="event"){J_(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 Cz(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}}),T0(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),T0(X.operators,{type:"event",name:e.WORKER_OFFLINE,payload:{workerId:J.workerId,deviceId:J.deviceId,reason:Mz($),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 Mz(D){if(D===1000||D===1012||D===1001||D===1005||D===1006)return"disconnected";if(D>=4000&&D<5000)return"kicked";return"expired"}function Zz(D){return Rz("sha256").update(D).digest("hex").slice(0,8)}JD();import{randomBytes as G_}from"crypto";import{mkdirSync as Nz}from"fs";import{createServer as Pz}from"net";import{join as B_}from"path";import Lz from"process";JD();class IX{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 qz(G)}async ensureNetwork(D){try{await this.request("GET",`/networks/${encodeURIComponent(D)}`)}catch{C.info(`[gateway/supervisor] creating docker network ${D}`),await this.request("POST","/networks/create",{Name:D,Driver:"bridge"})}}}function qz(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 jz=/\[worker\] AIWORKER_BOOTSTRAP_TOKEN=(wtk_[\w-]{32,})/,zz=30000,Iz=500;class TX{config;docker;allocatePort;pollIntervalMs;pollTimeoutMs;now;sleep;selfHostname;constructor(D){this.config=D.config,this.docker=D.docker??new IX(D.config.dockerHost),this.allocatePort=D.allocatePort??bz,this.pollIntervalMs=D.pollIntervalMs??Iz,this.pollTimeoutMs=D.pollTimeoutMs??zz,this.now=D.now??Date.now,this.sleep=D.sleep??(($)=>new Promise((F)=>setTimeout(F,$))),this.selfHostname=D.selfHostname===void 0?Lz.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($)){C.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){C.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"){C.warn(`[gateway/supervisor] inspect of ${$} returned no NetworkSettings.Networks; skipping self-in-network check`);return}if(!(D in X))throw new s2(`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=${B_("/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 s2(`docker infrastructure unavailable: ${W.message}`,W)}let $=await this.allocatePort(),F=G_(32).toString("hex"),J=`aiworker-${G_(4).toString("hex")}`,G=B_(this.config.workerDataRoot,J);try{Nz(G,{recursive:!0})}catch(W){throw new s2(`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:Sz(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),C.info(`[gateway/supervisor] spawned ${J} (container ${W.Id.slice(0,12)}); polling for bootstrap token`);let Q=await this.awaitBootstrapToken(W.Id),_=wz(this.config.launchBaseUrlTemplate,{containerName:J,port:String($)});return C.success(`[gateway/supervisor] ${J} bootstrapped as ${Q.workerId}`),{workerId:Q.workerId,apiToken:Q.token,baseUrl:_,containerId:W.Id,containerName:J}}catch(W){if(H)try{await this.docker.removeContainer(H,{force:!0,removeVolumes:!1})}catch(Q){C.warn(`[gateway/supervisor] failed to cleanup ${H}: ${Q.message}`)}if(W instanceof H6||W instanceof s2)throw W;throw new s2(`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){C.debug(`[gateway/supervisor] logs read failed, retrying: ${J.message}`),await this.sleep(this.pollIntervalMs);continue}let X=Tz(F);if(X)return X;await this.sleep(this.pollIntervalMs)}throw new H6(`bootstrap token not observed in container ${D.slice(0,12)} after ${this.pollTimeoutMs}ms`)}async shutdown(){}}function Tz(D){let $=jz.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 wz(D,$){return D.replace(/\{(\w+)\}/g,(F,X)=>$[X]??`{${X}}`)}function Sz(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 bz(){return new Promise((D,$)=>{let F=Pz();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 kz(D,$={}){wQ(D.fleetDbPath),SQ(ZX);let F=qX(),X=new K4(F),J=new Q4,G=new _4,Y=new V4({onExpire:(Q,_)=>{if(C.warn(`[gateway] forward \u53D6\u6D88 (method=${Q.method} workerId=${Q.workerId} reason=${_})`),_==="operator_gone")return;let U=_==="timeout"?"forward_timeout":"node_gone",A=_==="timeout"?`\u7B49\u5F85 worker ${Q.workerId} \u54CD\u5E94\u8D85\u65F6`:`worker ${Q.workerId} \u5728\u7B49\u5F85\u54CD\u5E94\u671F\u95F4\u4E0B\u7EBF`;try{Q.operatorWs.send(bD({type:"response",id:Q.operatorRequestId,ok:!1,error:{code:U,message:A,details:{workerId:Q.workerId,method:Q.method}}}))}catch{}}}),B=new U4({ttlMs:D.enrollOtpTtlSec*1000,onExpire:(Q)=>{try{Q.ws.close(4408,"enroll:expired")}catch{}try{X.recordAudit({actor:"gateway",action:"gateway.enrollment.expired",workerId:Q.workerId,detail:{displayName:Q.displayName,otpHash:fz("sha256").update(Q.otp).digest("hex").slice(0,16)}})}catch(_){C.warn("[gateway] \u5199 enrollment.expired audit \u5931\u8D25",_)}try{T0(G,{type:"event",name:e.ENROLLMENT_PENDING,payload:{workerId:Q.workerId,...Q.displayName===void 0?{}:{displayName:Q.displayName},otp:Q.otp,submittedAt:Q.submittedAt,expiresAt:Q.expiresAt,reason:"expired"},ts:Date.now()})}catch(_){C.warn("[gateway] \u5E7F\u64AD enrollment.pending(expired) \u5931\u8D25",_)}}}),H=null;if(D.canLaunch)H=new TX({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}}),C.info("[gateway] AIWORKER_GATEWAY_CAN_LAUNCH=true \u2014 workers.launch \u5DF2\u5F00\u542F");let W=new W4;return{persistence:X,nodes:J,operators:G,forwards:Y,logger:C.withTag("gateway"),masterKeyHex:D.masterKeyHex,supervisor:H,maxWorkers:D.maxWorkers,pendingEnrollments:B,connectRateLimiter:W,webStaticDir:$.webStaticDir}}async function H_(D,$={}){let X={...fQ(),...D},J=kz(X,{webStaticDir:$.webStaticDir}),G=Y_({config:X,context:J});return C.success(`[gateway] listening ws://${X.host}:${G.port}/ws (auth=${X.internalSharedSecret?"shared-secret+loopback":"loopback-only"})`),{...G,config:X}}JD();import{existsSync as wX,realpathSync as vz}from"fs";import{dirname as hz,resolve as F1}from"path";import W_ from"process";import{fileURLToPath as xz}from"url";function O4(D){let $=D==="fleet"?"AIWORKER_WEB_STATIC_DIR_FLEET":"AIWORKER_WEB_STATIC_DIR_WORKER",F=W_.env[$];if(F){let W=yz(F);if(W&&wX(F1(W,"index.html")))return W}let X=gz();if(!X)return;let J=F1(X,"web",D);if(wX(F1(J,"index.html")))return J;let Y=X.endsWith(`apps${SX()}cli${SX()}src${SX()}lib`)||X.endsWith("apps/cli/src/lib")?4:3,B=F1(X,...Array.from({length:Y},()=>"..")),H=F1(B,"apps","web","dist",D);if(wX(F1(H,"index.html")))return H;return}function gz(){if(typeof import.meta.url!=="string")return;try{return hz(xz(import.meta.url))}catch{return}}function yz(D){try{return vz(F1(D))}catch{return}}function SX(){return W_.platform==="win32"?"\\":"/"}W2();o8();import{spawn as uz}from"child_process";import{closeSync as V_,existsSync as mz,openSync as Q_,readFileSync as pz,unlinkSync as R4,writeFileSync as cz}from"fs";import{mkdir as dz}from"fs/promises";import M8 from"process";var lz="AIWORKER_GATEWAY_INTERNAL_FOREGROUND";function __(D){if(!Number.isFinite(D)||D<=0)return!1;try{return M8.kill(D,0),!0}catch($){if($.code==="EPERM")return!0;return!1}}function iz(D){if(!mz(D))return null;try{let $=pz(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 nz(){await dz(B2(),{recursive:!0})}function E4(){let D=k7(),$=v7(),F=iz(D);if(F===null)return{running:!1,pidFile:D,logFile:$};if(!__(F)){try{R4(D)}catch{}return{running:!1,pidFile:D,logFile:$}}return{running:!0,pid:F,pidFile:D,logFile:$}}async function U_(D={}){let $=E4();if($.running)throw Error(`gateway daemon \u5DF2\u5728\u8FD0\u884C (pid=${$.pid})\uFF0C\u5148\u6267\u884C 'aiworker gateway stop' \u518D\u91CD\u8BD5\u3002`);await nz();let F=D.port??Number.parseInt(M8.env.PORT??"9218",10);if(!Number.isFinite(F)||F<=0||F>65535)throw Error(`\u975E\u6CD5\u7AEF\u53E3: ${F}`);let X=k7(),J=v7(),G=Q_(J,"a"),Y=Q_(J,"a"),B={...M8.env,...D.env,PORT:String(F),[lz]:"1"},H=M8.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=uz(M8.execPath,[H,"gateway","start","--port",String(F)],{env:B,cwd:M8.cwd(),detached:!0,stdio:["ignore",G,Y]});try{V_(G)}catch{}if(Y!==G)try{V_(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(),cz(X,`${String(W.pid)}
334
- `,"utf8"),{pid:W.pid,port:F,logFile:J,pidFile:X}}async function A_(D={}){let $=E4();if(!$.running||$.pid===void 0)return null;let F=$.pid,X=D.timeoutMs??5000,J=100;try{M8.kill(F,"SIGTERM")}catch(Y){if(Y.code==="ESRCH"){try{R4($.pidFile)}catch{}return null}throw Y}let G=Date.now()+X;while(Date.now()<G){if(!__(F)){try{R4($.pidFile)}catch{}return F}await new Promise((Y)=>setTimeout(Y,J))}try{M8.kill(F,"SIGKILL")}catch{}try{R4($.pidFile)}catch{}return F}o8();async function K_(D={}){if(D.detach===!0)return sz(D);return rz(D)}async function sz(D){try{let $=await U_({...D.port===void 0?{}:{port:D.port},...D.serveWeb===!1?{env:{AIWORKER_GATEWAY_NO_SERVE_WEB:"1"}}:{}});if(D.persistUrl!==!1)await R3({gatewayUrl:f7($.port)});return C.success(`gateway daemon \u5DF2\u542F\u52A8 pid=${$.pid} port=${$.port}`),C.info(`pidFile: ${$.pidFile}`),C.info(`logFile: ${$.logFile}`),0}catch($){return C.error(`gateway start --detach \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}async function rz(D){try{let $=C4.env.AIWORKER_GATEWAY_NO_SERVE_WEB==="1",F=D.serveWeb!==!1&&!$,X=F?O4("fleet"):void 0;if(F&&!X)C.warn("[gateway] web \u9759\u6001\u8D44\u6E90\u672A\u627E\u5230\uFF08apps/web/dist/fleet \u7F3A\u5931\uFF1F\uFF09\uFF0C/admin/* \u5C06\u8FD4\u56DE 404");let J=await H_(D.port===void 0?{}:{port:D.port},{...X?{webStaticDir:X}:{}});if(X)C.info(`[gateway] /admin/* serving fleet bundle from ${X}`);if(D.persistUrl!==!1)try{await R3({gatewayUrl:f7(J.port)})}catch(B){C.warn(`\u65E0\u6CD5\u6301\u4E45\u5316 gatewayUrl \u5230 aim.json: ${B instanceof Error?B.message:String(B)}`)}C.success(`gateway \u5DF2\u542F\u52A8 (foreground) port=${J.port}`);let G=!1,Y=async(B)=>{if(G)return;G=!0,C.info(`[gateway] received ${B}, shutting down`);try{await J.stop(),NX()}catch(H){C.error("[gateway] shutdown failed",H)}C4.exit(0)};return C4.once("SIGTERM",()=>void Y("SIGTERM")),C4.once("SIGINT",()=>void Y("SIGINT")),await new Promise(()=>{}),0}catch($){return C.error(`gateway start \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}function O_(){let D=E4();if(D.running)return C.success(`gateway detached daemon \u8FD0\u884C\u4E2D pid=${D.pid}`),C.info(`pidFile: ${D.pidFile}`),C.info(`logFile: ${D.logFile}`),0;return C.info("gateway detached daemon \u672A\u8FD0\u884C\uFF1Bforeground/systemd \u5B9E\u4F8B\u4E0D\u7531\u6B64\u547D\u4EE4\u8DDF\u8E2A"),1}async function R_(D={}){try{let $=await A_(D.timeoutMs===void 0?{}:{timeoutMs:D.timeoutMs});if($===null)return C.info("gateway detached daemon \u5F53\u524D\u672A\u8FD0\u884C\uFF1Bforeground/systemd \u5B9E\u4F8B\u8BF7\u7531\u5176 supervisor \u505C\u6B62"),0;return C.success(`gateway detached daemon \u5DF2\u505C\u6B62 pid=${$}`),0}catch($){return C.error(`gateway stop \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}JD();import{spawnSync as E_}from"child_process";import{existsSync as q_,mkdirSync as az,readFileSync as oz,writeFileSync as tz}from"fs";import{homedir as ez}from"os";import r2 from"path";import y3 from"process";var Z8="aiworker-gateway.service",C_="/var/lib/aiworker",u3="/etc/aiworker/gateway.env",DI="%h/.config/aiworker/gateway.env",M_="%S/aiworker",Z_="https://github.com/ZonEaseTech/aiworker/blob/main/docs/deployment.md",M4=["gateway","start"];function $I(D){let $=P_(D.execStart??N_());if(D.scope==="user")return["[Unit]","Description=AIWorker gateway daemon (user instance)",`Documentation=${Z_}`,"After=network-online.target","Wants=network-online.target","","[Service]","Type=simple",`Environment=AIWORKER_HOME=${M_}`,`EnvironmentFile=-${DI}`,`ExecStart=${$}`,"Restart=on-failure","RestartSec=5","StateDirectory=aiworker","StateDirectoryMode=0700","PrivateTmp=true","ProtectSystem=strict",`ReadWritePaths=${M_}`,"NoNewPrivileges=true","","[Install]","WantedBy=default.target",""].join(`
335
- `);return["[Unit]","Description=AIWorker gateway daemon (PLAN-016 systemd path)",`Documentation=${Z_}`,"After=network-online.target","Wants=network-online.target","","[Service]","Type=simple",`Environment=AIWORKER_HOME=${C_}`,`EnvironmentFile=-${u3}`,`ExecStart=${$}`,"Restart=on-failure","RestartSec=5","User=root","Group=root","StateDirectory=aiworker","StateDirectoryMode=0700","PrivateTmp=true","ProtectSystem=strict",`ReadWritePaths=${C_}`,"NoNewPrivileges=true","","[Install]","WantedBy=multi-user.target",""].join(`
336
- `)}function N_(D={}){let $=D.env??y3.env,F=D.execPath??y3.execPath,X=D.argv??y3.argv,J=D.cwd??y3.cwd(),G=D.pathExists??q_,Y=XI(X[1],J,G);if(JI(F)&&Y!==void 0)return Z4(F,[Y,...M4]);if(YI(F))return Z4(F,[...M4]);let B=GI("aiworker",$.PATH,G);if(B!==void 0)return Z4(B,[...M4]);if(Y!==void 0)return Z4(Y,[...M4]);throw Error("install systemd: unable to locate the current aiworker executable; re-run via the installed aiworker command or pass --exec-start")}function Z4(D,$){return[D,...$].map(FI).join(" ")}function P_(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 FI(D){if(/^[\w@%+=:,./-]+$/.test(D))return D;return`"${D.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`}function XI(D,$,F){if(D===void 0||D.length===0)return;let X=r2.isAbsolute(D)?D:r2.resolve($,D);return F(X)?X:void 0}function JI(D){let $=r2.basename(D);return $==="bun"||$.startsWith("bun-")}function YI(D){return r2.basename(D).startsWith("aiworker")}function GI(D,$,F){if($===void 0||$.length===0)return;for(let X of $.split(r2.delimiter)){if(X.length===0)continue;let J=r2.join(X,D);if(F(J))return J}return}function BI(D,$=ez()){if(D==="user")return r2.join($,".config","systemd","user",Z8);return`/etc/systemd/system/${Z8}`}function HI(D={}){let $=D.scope??"user",F=P_(D.execStart??N_()),X=$I({scope:$,execStart:F});if(D.dryRun)return{scope:$,content:X,execStart:F,enabled:!1,restartRequired:!1};let J=D.out??BI($);az(r2.dirname(J),{recursive:!0});let G=!1;if(q_(J)){if(oz(J,"utf8")===X)G=!0}if(!G)tz(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 WI($),{scope:$,content:X,execStart:F,written:{path:J,unchanged:G},enabled:!0,restartRequired:!G}}function WI(D){let $=D==="user"?["--user"]:[],F=E_("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=E_("systemctl",[...$,"enable","--now",Z8],{stdio:"inherit"});if(X.error)throw Error(`\u65E0\u6CD5\u6267\u884C systemctl: ${X.error.message}`);if(X.status!==0)throw Error(`systemctl ${[...$,"enable","--now",Z8].join(" ")} \u5931\u8D25 (exit=${X.status??"signal"})`)}async function L_(D={}){try{let $=HI(D);if(D.dryRun)return y3.stdout.write($.content),0;let F=$.written?.path??"<unknown>";if($.written?.unchanged)C.info(`systemd unit \u672A\u53D8\u66F4 (${F})`);else C.success(`systemd unit \u5199\u5165 ${F}`);if($.enabled){if(C.success(`\u5DF2 enable --now ${Z8}\uFF08${$.scope==="user"?"systemctl --user":"systemctl"}\uFF09`),$.restartRequired)C.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:"),C.warn(` systemctl ${$.scope==="user"?"--user ":""}restart ${Z8}`)}else if(D.out!==void 0)C.info("--out \u6307\u5B9A\u4E86\u975E\u9ED8\u8BA4\u8DEF\u5F84\uFF0C\u5DF2\u8DF3\u8FC7 systemctl\uFF1B\u5982\u9700\u542F\u7528\u8BF7\u624B\u52A8:"),C.info(` systemctl ${$.scope==="user"?"--user ":""}daemon-reload`),C.info(` systemctl ${$.scope==="user"?"--user ":""}enable --now ${Z8}`);else if(D.noEnable)C.info("--no-enable \u5DF2\u751F\u6548\uFF1B\u5982\u9700\u542F\u7528\u8BF7\u624B\u52A8:"),C.info(` systemctl ${$.scope==="user"?"--user ":""}daemon-reload`),C.info(` systemctl ${$.scope==="user"?"--user ":""}enable --now ${Z8}`);return VI($.scope),0}catch($){return C.error(`install systemd \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}function VI(D){if(D==="system"){C.box(["First-run secrets for aiworker-gateway:",` sudo install -d -m 0700 -o root -g root ${r2.dirname(u3)}`,` sudo sh -c 'umask 077; printf "AIWORKER_MASTER_KEY=%s\\nINTERNAL_SHARED_SECRET=%s\\n" "$(openssl rand -hex 32)" "$(openssl rand -base64 24)" > ${u3}'`,` sudo chown root:root ${u3}`,` sudo chmod 600 ${u3}`].join(`
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 uQ}from"buffer";import{timingSafeEqual as tj}from"crypto";function mQ(D,$){let F=uQ.from(D,"utf8"),X=uQ.from($,"utf8");if(F.length!==X.length)return!1;return tj(F,X)}function pQ(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(!mQ(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(!mQ(D.presentedToken,D.sharedSecret))return{ok:!1,reason:"invalid_token"};return{ok:!0,via:"shared-secret"}}Y0();Y0();yD();function cQ(D){let $=V.object({workerId:V.string().min(1)}).safeParse(D.params);if(!$.success)return jX(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 jX(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(bD({type:"request",id:J.gatewayRequestId,method:D.method,params:D.params})),!0}catch(G){return D.ctx.forwards.consume(J.gatewayRequestId),jX(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 jX(D,$,F){let X=bD({type:"response",id:$,ok:!1,error:F});try{D.send(X)}catch{}}Y0();yD();var ej=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({}),Dz=V.object({events:V.array(I7),hasMore:V.boolean()}),dQ=(D,$)=>{let F=ej.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=Dz.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}};Y0();yD();import{createHash as $z}from"crypto";var lQ=V.object({otp:V.string().min(1)}),iQ=(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(z7)}).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}},nQ=(D,$)=>{if(!D.pendingEnrollments)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u521D\u59CB\u5316 pending enrollment registry"};let F=lQ.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=Fz(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(bD({type:"event",name:e.ENROLLMENT_APPROVED,payload:{workerId:X.workerId,deviceToken:X.apiToken},ts:Date.now()}))}catch{}if(T0(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 T0(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}}},sQ=(D,$)=>{if(!D.pendingEnrollments)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u521D\u59CB\u5316 pending enrollment registry"};let F=lQ.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:Xz(X.otp)}}),T0(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 Fz(D,$){let F=D.pendingEnrollments?.list().find((X)=>X.otp===$);return F?{workerId:F.workerId}:void 0}function Xz(D){return $z("sha256").update(D).digest("hex").slice(0,16)}Y0();yD();var Jz=V.object({now:V.number().int(),online:V.array(a8)}),rQ=(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=Jz.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}};Y0();yD();import{Buffer as aQ}from"buffer";var Yz=V.object({workerId:V.string().min(1)}),oQ=async(D,$)=>{let F=Yz.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 tQ(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(bD({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 tQ{resolve;ctx;workerId;constructor(D,$,F){this.resolve=D;this.ctx=$;this.workerId=F}send(D){let $=typeof D==="string"?D:D instanceof ArrayBuffer?aQ.from(new Uint8Array(D)).toString("utf8"):aQ.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(){}}Y0();J0();yD();J0();class g3 extends Error{constructor(D="worker rejected bearer token"){super(D);this.name="WorkerClientAuthError"}}class $1 extends Error{cause;constructor(D,$){super(D);this.cause=$;this.name="WorkerClientNetworkError"}}class C8 extends Error{constructor(D){super(D);this.name="WorkerClientInvalidResponseError"}}var Gz=1e4;class zX{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??Gz}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 $1(`worker ${this.baseUrl} request timed out after ${this.timeoutMs}ms`,B);throw new $1(`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 g3;if(!D.ok)throw new $1(`worker ${this.baseUrl} returned HTTP ${D.status}`);let $;try{$=await D.json()}catch(F){throw new C8(`worker ${this.baseUrl} /info returned non-JSON body: ${F.message}`)}if(!Bz($))throw new C8(`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 g3;if(!D.ok)throw new $1(`worker ${this.baseUrl} returned HTTP ${D.status} from /token/rotate`);let $;try{$=await D.json()}catch(X){throw new C8(`worker ${this.baseUrl} /token/rotate returned non-JSON body: ${X.message}`)}if(!$||typeof $!=="object"||!("newToken"in $))throw new C8(`worker ${this.baseUrl} /token/rotate response missing newToken`);let F=$.newToken;if(!U8(F))throw new C8(`worker ${this.baseUrl} /token/rotate returned a token that does not match wtk_<base64url>`);return{newToken:F}}}function Bz(D){if(!D||typeof D!=="object")return!1;let $=D;return typeof $.workerId==="string"&&$.workerId.length>0&&typeof $.configVersion==="number"&&Number.isFinite($.configVersion)}class H6 extends Error{constructor(D){super(D);this.name="LaunchTimeoutError"}}class s2 extends Error{cause;constructor(D,$){super(D);this.cause=$;this.name="LaunchFailedError"}}function Hz(D){if(!D)return null;let $=Date.parse(D);if(!Number.isFinite($))return null;return $}var eQ=(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:Hz(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(a8)}).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}},D_=(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}}},Wz=V.object({workerBaseUrl:V.string().min(1),bootstrapToken:V.string().regex(c2,"bootstrapToken must match wtk_<base64url>"),displayName:V.string().min(1).max(80).optional()});function Vz(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=Wz.safeParse(F);if(!X.success)return{ok:!1,code:"invalid_params",message:"workers.pair \u53C2\u6570\u6821\u9A8C\u5931\u8D25",details:X.error.flatten()};let J=X.data;if($.maxWorkers!==void 0){let Q=$.persistence.countRegisteredWorkers();if(Q>=$.maxWorkers)return{ok:!1,code:"quota_exceeded",message:`fleet \u5DF2\u8FBE ${$.maxWorkers} worker \u4E0A\u9650`,details:{limit:$.maxWorkers,current:Q}}}let G=D.buildClient?D.buildClient(J.workerBaseUrl,J.bootstrapToken):new zX({baseUrl:J.workerBaseUrl,apiToken:J.bootstrapToken}),Y;try{Y=await G.info()}catch(Q){if(Q instanceof g3)return{ok:!1,code:"auth_failed",message:"worker \u62D2\u7EDD bootstrap token"};if(Q instanceof $1)return{ok:!1,code:"worker_unreachable",message:Q.message};if(Q instanceof C8)return{ok:!1,code:"invalid_worker_info",message:Q.message};throw Q}if($.persistence.getRegisteredWorker(Y.workerId))return{ok:!1,code:"already_registered",message:`worker ${Y.workerId} \u5DF2\u5728 fleet \u4E2D`,details:{workerId:Y.workerId}};let H=$.persistence.createRegisteredWorker({workerId:Y.workerId,baseUrl:J.workerBaseUrl,apiToken:J.bootstrapToken,displayName:J.displayName??Y.workerId,addedBy:"manual",configVersion:Y.configVersion},$.masterKeyHex),W=t1.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 $_=Vz(),Qz=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 _z(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=Qz.safeParse(F);if(!X.success)return{ok:!1,code:"invalid_params",message:"workers.launch \u53C2\u6570\u6821\u9A8C\u5931\u8D25",details:X.error.flatten()};let J=X.data,G=J.displayName??"worker";if($.maxWorkers!==void 0){let Q=$.persistence.countRegisteredWorkers();if(Q>=$.maxWorkers)return{ok:!1,code:"quota_exceeded",message:`fleet \u5DF2\u8FBE ${$.maxWorkers} worker \u4E0A\u9650`,details:{limit:$.maxWorkers,current:Q}}}let Y;try{Y=await $.supervisor.launchLocal({displayName:G,...J.forceId===void 0?{}:{forceId:J.forceId}})}catch(Q){if(Q instanceof H6)return{ok:!1,code:"launch_timeout",message:Q.message};if(Q instanceof s2)return{ok:!1,code:"launch_failed",message:Q.message};throw Q}if($.persistence.getRegisteredWorker(Y.workerId))return{ok:!1,code:"already_registered",message:`worker ${Y.workerId} \u5DF2\u5728 fleet \u4E2D`,details:{workerId:Y.workerId,containerName:Y.containerName}};let H=$.persistence.createRegisteredWorker({workerId:Y.workerId,baseUrl:Y.baseUrl,apiToken:Y.apiToken,displayName:G,addedBy:"launch-local"},$.masterKeyHex);$.persistence.recordAudit({actor:"gateway",action:"gateway.worker.launched",workerId:H.id,detail:{containerId:Y.containerId,containerName:Y.containerName,baseUrl:Y.baseUrl}});let W=t1.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 F_=_z();var Uz={"system.presence":rQ,"workers.list":eQ,"workers.remove":D_,"workers.pair":$_,"workers.launch":F_,"token.rotate":oQ,"enroll.list":iQ,"enroll.approve":nQ,"enroll.reject":sQ,"audit.list":dQ},Az=new Set(["system.presence","workers.list","audit.list","enroll.list"]);async function X_(D,$,F,X){let J=K3(F.method);if(!J){W6($,{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){W6($,{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(!Az.has(F.method))D.persistence.recordAudit({actor:"gateway",action:"gateway.method.invoked",workerId:Kz(Y),detail:{method:F.method,agentId:X}});if(J.routing==="operator-to-gateway"){let B=Uz[F.method];if(!B){W6($,{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)W6($,{type:"response",id:F.id,ok:!0,result:H.result});else W6($,{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),W6($,{type:"response",id:F.id,ok:!1,error:{code:"internal_error",message:H instanceof Error?H.message:String(H)}})}return}cQ({ctx:D,operatorWs:$,operatorRequestId:F.id,method:F.method,params:Y})}function J_(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(bD(J))}catch{}}function Y_(D,$,F){T0(D.operators,F)}function Kz(D){if(D&&typeof D==="object"&&"workerId"in D){let $=D.workerId;return typeof $==="string"&&$.length>0?$:null}return null}function W6(D,$){try{D.send(bD($))}catch{}}function G_(D){let{config:$,context:F}=D;yQ({host:$.host,internalSharedSecret:$.internalSharedSecret}),A3({surface:"fleet",host:$.host,serveWeb:F.webStaticDir!==void 0,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 gQ({webStaticDir:F.webStaticDir,pathnameAfterPrefix:B.pathname.slice(7)})}if(B.pathname==="/ws"||B.pathname==="/enroll-ws"){let W=Y.requestIP(G)?.address,Q=o1(W);if(!Q&&F.connectRateLimiter){let A=F.connectRateLimiter.isBlocked(W);if(A.blocked)return new Response("rate_limited",{status:429,headers:{"Retry-After":String(Math.ceil(A.retryAfterMs/1000))}})}let _=B.pathname==="/enroll-ws"?"/enroll-ws":"/ws";if(Y.upgrade(G,{data:{role:void 0,agentId:void 0,deviceId:void 0,loopback:Q,remoteAddress:W,connectedAt:Date.now(),subscribedAll:!0,path:_}}))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){Ez(G,Y,F,$)},close(G,Y,B){Cz(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 Ez(D,$,F,X){let J=typeof $==="string"?$:Oz.from($).toString("utf8"),G=r8(J);if(!G.ok){F.logger.warn(`[gateway] \u65E0\u6CD5\u89E3\u6790\u5E27: ${G.error}`),D.close(4400,"bad_frame");return}let Y=G.frame;if(D.data.role===void 0){if(Y.type!=="connect"){F.logger.warn(`[gateway] \u63E1\u624B\u524D\u6536\u5230\u975E connect \u5E27: ${Y.type}`),D.close(4400,"connect_required");return}let B=Y.role==="node"&&Y.enroll?Y.enroll.mode??"join-token":void 0,H=B==="otp",W=Y.role==="node"&&Y.enroll!==void 0&&B==="join-token",Q=pQ({loopback:D.data.loopback,sharedSecret:X.internalSharedSecret,presentedToken:Y.auth.token,enrollToken:W?Y.enroll.joinToken:void 0,gatewayJoinToken:X.joinToken,path:D.data.path,isOtpEnrollSubmit:H});if(!Q.ok){let _=Q.reason.startsWith("wrong_path:");if(F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.rejected",workerId:Y.role==="node"?Y.agentId:null,detail:{reason:Q.reason,role:Y.role,agentId:Y.agentId,remoteAddress:D.data.remoteAddress,path:D.data.path}}),!_&&!D.data.loopback&&F.connectRateLimiter){let R=F.connectRateLimiter.recordFailure(D.data.remoteAddress);if(R.blockedNow)F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.brute_force_blocked",workerId:null,detail:{remoteAddress:D.data.remoteAddress,fails:R.fails,blockUntil:R.blockUntil,path:D.data.path,triggerReason:Q.reason}})}let U=_?4400:4401,A=_?Q.reason:`auth:${Q.reason}`;D.close(U,A);return}if(Q.via==="enroll-otp"){if(!F.pendingEnrollments){F.logger.error("[gateway] /enroll-ws \u6536\u5230 OTP submit \u4F46 ctx.pendingEnrollments \u672A\u6CE8\u5165"),D.close(4500,"enroll_unavailable");return}let _=Y.enroll,U=F.pendingEnrollments.submit({workerId:Y.agentId,apiToken:_.apiToken,displayName:_.displayName,ws:D});try{D.send(bD({type:"event",name:e.ENROLLMENT_OTP,payload:{workerId:Y.agentId,otp:U.otp,expiresAt:U.expiresAt},ts:Date.now()}))}catch(A){F.pendingEnrollments.removeByWs(D),F.logger.warn(`[gateway] \u63A8\u9001 enrollment.otp \u5931\u8D25: ${A.message}`),D.close(4500,"enroll_otp_send_failed");return}D.data.role="node-pending",D.data.agentId=Y.agentId,D.data.deviceId=Y.deviceId,F.persistence.recordAudit({actor:"gateway",action:"gateway.enrollment.requested",workerId:Y.agentId,detail:{workerId:Y.agentId,displayName:_.displayName,deviceId:Y.deviceId,otpHash:Zz(U.otp),expiresAt:U.expiresAt,path:D.data.path}}),T0(F.operators,{type:"event",name:e.ENROLLMENT_PENDING,payload:{workerId:Y.agentId,..._.displayName===void 0?{}:{displayName:_.displayName},otp:U.otp,submittedAt:Date.now(),expiresAt:U.expiresAt,reason:"submitted"},ts:Date.now()});return}if(W){if(F.maxWorkers!==void 0){let A=F.persistence.countRegisteredWorkers();if(F.persistence.getRegisteredWorker(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 _=Y.enroll,U=F.persistence.upsertEnrolledWorker({workerId:Y.agentId,baseUrl:"",apiToken:_.apiToken,displayName:_.displayName??Y.agentId,addedBy:"self-enroll"},F.masterKeyHex);if(U.kind!=="unchanged")F.persistence.recordAudit({actor:"gateway",action:"gateway.worker.enrolled",workerId:Y.agentId,detail:{workerId:Y.agentId,displayName:U.row.displayName,deviceId:Y.deviceId,change:U.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:_}=F.nodes.register({workerId:Y.agentId,deviceId:Y.deviceId,ws:D,pairedAt:Date.now(),meta:Y.meta??{}});if(_){F.forwards.cancelByWorker(Y.agentId);try{_.ws.close(1012,"replaced_by_new_node_connection")}catch{}}let U=F.persistence.getRegisteredWorker(Y.agentId)?.displayName;T0(F.operators,{type:"event",name:e.WORKER_ONLINE,payload:{workerId:Y.agentId,displayName:U,deviceId:Y.deviceId,connectedAt:Date.now()},ts:Date.now()})}if(F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.accepted",workerId:Y.role==="node"?Y.agentId:null,detail:{role:Y.role,agentId:Y.agentId,deviceId:Y.deviceId,loopback:D.data.loopback,via:Q.via}}),!D.data.loopback&&F.connectRateLimiter)F.connectRateLimiter.recordSuccess(D.data.remoteAddress);return}if(D.data.role==="node-pending"){F.logger.warn(`[gateway] node-pending \u7AEF\u5728 approve \u524D\u53D1\u9001\u4E86 ${Y.type} \u5E27\uFF0C\u5FFD\u7565`);return}if(D.data.role==="operator"){if(Y.type==="request"){let B=D.data.agentId??"unknown";X_(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"){J_(F,D,Y);return}if(Y.type==="event"){Y_(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 Cz(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}}),T0(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),T0(X.operators,{type:"event",name:e.WORKER_OFFLINE,payload:{workerId:J.workerId,deviceId:J.deviceId,reason:Mz($),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 Mz(D){if(D===1000||D===1012||D===1001||D===1005||D===1006)return"disconnected";if(D>=4000&&D<5000)return"kicked";return"expired"}function Zz(D){return Rz("sha256").update(D).digest("hex").slice(0,8)}JD();import{randomBytes as B_}from"crypto";import{mkdirSync as Nz}from"fs";import{createServer as Pz}from"net";import{join as H_}from"path";import Lz from"process";JD();class IX{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 qz(G)}async ensureNetwork(D){try{await this.request("GET",`/networks/${encodeURIComponent(D)}`)}catch{C.info(`[gateway/supervisor] creating docker network ${D}`),await this.request("POST","/networks/create",{Name:D,Driver:"bridge"})}}}function qz(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 jz=/\[worker\] AIWORKER_BOOTSTRAP_TOKEN=(wtk_[\w-]{32,})/,zz=30000,Iz=500;class TX{config;docker;allocatePort;pollIntervalMs;pollTimeoutMs;now;sleep;selfHostname;constructor(D){this.config=D.config,this.docker=D.docker??new IX(D.config.dockerHost),this.allocatePort=D.allocatePort??bz,this.pollIntervalMs=D.pollIntervalMs??Iz,this.pollTimeoutMs=D.pollTimeoutMs??zz,this.now=D.now??Date.now,this.sleep=D.sleep??(($)=>new Promise((F)=>setTimeout(F,$))),this.selfHostname=D.selfHostname===void 0?Lz.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($)){C.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){C.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"){C.warn(`[gateway/supervisor] inspect of ${$} returned no NetworkSettings.Networks; skipping self-in-network check`);return}if(!(D in X))throw new s2(`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=${H_("/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 s2(`docker infrastructure unavailable: ${W.message}`,W)}let $=await this.allocatePort(),F=B_(32).toString("hex"),J=`aiworker-${B_(4).toString("hex")}`,G=H_(this.config.workerDataRoot,J);try{Nz(G,{recursive:!0})}catch(W){throw new s2(`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:Sz(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),C.info(`[gateway/supervisor] spawned ${J} (container ${W.Id.slice(0,12)}); polling for bootstrap token`);let Q=await this.awaitBootstrapToken(W.Id),_=wz(this.config.launchBaseUrlTemplate,{containerName:J,port:String($)});return C.success(`[gateway/supervisor] ${J} bootstrapped as ${Q.workerId}`),{workerId:Q.workerId,apiToken:Q.token,baseUrl:_,containerId:W.Id,containerName:J}}catch(W){if(H)try{await this.docker.removeContainer(H,{force:!0,removeVolumes:!1})}catch(Q){C.warn(`[gateway/supervisor] failed to cleanup ${H}: ${Q.message}`)}if(W instanceof H6||W instanceof s2)throw W;throw new s2(`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){C.debug(`[gateway/supervisor] logs read failed, retrying: ${J.message}`),await this.sleep(this.pollIntervalMs);continue}let X=Tz(F);if(X)return X;await this.sleep(this.pollIntervalMs)}throw new H6(`bootstrap token not observed in container ${D.slice(0,12)} after ${this.pollTimeoutMs}ms`)}async shutdown(){}}function Tz(D){let $=jz.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 wz(D,$){return D.replace(/\{(\w+)\}/g,(F,X)=>$[X]??`{${X}}`)}function Sz(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 bz(){return new Promise((D,$)=>{let F=Pz();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 kz(D,$={}){SQ(D.fleetDbPath),bQ(ZX);let F=qX(),X=new K4(F),J=new Q4,G=new _4,Y=new V4({onExpire:(Q,_)=>{if(C.warn(`[gateway] forward \u53D6\u6D88 (method=${Q.method} workerId=${Q.workerId} reason=${_})`),_==="operator_gone")return;let U=_==="timeout"?"forward_timeout":"node_gone",A=_==="timeout"?`\u7B49\u5F85 worker ${Q.workerId} \u54CD\u5E94\u8D85\u65F6`:`worker ${Q.workerId} \u5728\u7B49\u5F85\u54CD\u5E94\u671F\u95F4\u4E0B\u7EBF`;try{Q.operatorWs.send(bD({type:"response",id:Q.operatorRequestId,ok:!1,error:{code:U,message:A,details:{workerId:Q.workerId,method:Q.method}}}))}catch{}}}),B=new U4({ttlMs:D.enrollOtpTtlSec*1000,onExpire:(Q)=>{try{Q.ws.close(4408,"enroll:expired")}catch{}try{X.recordAudit({actor:"gateway",action:"gateway.enrollment.expired",workerId:Q.workerId,detail:{displayName:Q.displayName,otpHash:fz("sha256").update(Q.otp).digest("hex").slice(0,16)}})}catch(_){C.warn("[gateway] \u5199 enrollment.expired audit \u5931\u8D25",_)}try{T0(G,{type:"event",name:e.ENROLLMENT_PENDING,payload:{workerId:Q.workerId,...Q.displayName===void 0?{}:{displayName:Q.displayName},otp:Q.otp,submittedAt:Q.submittedAt,expiresAt:Q.expiresAt,reason:"expired"},ts:Date.now()})}catch(_){C.warn("[gateway] \u5E7F\u64AD enrollment.pending(expired) \u5931\u8D25",_)}}}),H=null;if(D.canLaunch)H=new TX({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}}),C.info("[gateway] AIWORKER_GATEWAY_CAN_LAUNCH=true \u2014 workers.launch \u5DF2\u5F00\u542F");let W=new W4;return{persistence:X,nodes:J,operators:G,forwards:Y,logger:C.withTag("gateway"),masterKeyHex:D.masterKeyHex,supervisor:H,maxWorkers:D.maxWorkers,pendingEnrollments:B,connectRateLimiter:W,webStaticDir:$.webStaticDir}}async function W_(D,$={}){let X={...kQ(),...D},J=kz(X,{webStaticDir:$.webStaticDir}),G=G_({config:X,context:J});return C.success(`[gateway] listening ws://${X.host}:${G.port}/ws (auth=${X.internalSharedSecret?"shared-secret+loopback":"loopback-only"})`),{...G,config:X}}JD();import{existsSync as wX,realpathSync as vz}from"fs";import{dirname as hz,resolve as F1}from"path";import V_ from"process";import{fileURLToPath as xz}from"url";function O4(D){let $=D==="fleet"?"AIWORKER_WEB_STATIC_DIR_FLEET":"AIWORKER_WEB_STATIC_DIR_WORKER",F=V_.env[$];if(F){let W=yz(F);if(W&&wX(F1(W,"index.html")))return W}let X=gz();if(!X)return;let J=F1(X,"web",D);if(wX(F1(J,"index.html")))return J;let Y=X.endsWith(`apps${SX()}cli${SX()}src${SX()}lib`)||X.endsWith("apps/cli/src/lib")?4:3,B=F1(X,...Array.from({length:Y},()=>"..")),H=F1(B,"apps","web","dist",D);if(wX(F1(H,"index.html")))return H;return}function gz(){if(typeof import.meta.url!=="string")return;try{return hz(xz(import.meta.url))}catch{return}}function yz(D){try{return vz(F1(D))}catch{return}}function SX(){return V_.platform==="win32"?"\\":"/"}W2();o8();import{spawn as uz}from"child_process";import{closeSync as Q_,existsSync as mz,openSync as __,readFileSync as pz,unlinkSync as R4,writeFileSync as cz}from"fs";import{mkdir as dz}from"fs/promises";import M8 from"process";var lz="AIWORKER_GATEWAY_INTERNAL_FOREGROUND";function U_(D){if(!Number.isFinite(D)||D<=0)return!1;try{return M8.kill(D,0),!0}catch($){if($.code==="EPERM")return!0;return!1}}function iz(D){if(!mz(D))return null;try{let $=pz(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 nz(){await dz(B2(),{recursive:!0})}function E4(){let D=k7(),$=v7(),F=iz(D);if(F===null)return{running:!1,pidFile:D,logFile:$};if(!U_(F)){try{R4(D)}catch{}return{running:!1,pidFile:D,logFile:$}}return{running:!0,pid:F,pidFile:D,logFile:$}}async function A_(D={}){let $=E4();if($.running)throw Error(`gateway daemon \u5DF2\u5728\u8FD0\u884C (pid=${$.pid})\uFF0C\u5148\u6267\u884C 'aiworker gateway stop' \u518D\u91CD\u8BD5\u3002`);await nz();let F=D.port??Number.parseInt(M8.env.PORT??"9218",10);if(!Number.isFinite(F)||F<=0||F>65535)throw Error(`\u975E\u6CD5\u7AEF\u53E3: ${F}`);let X=k7(),J=v7(),G=__(J,"a"),Y=__(J,"a"),B={...M8.env,...D.env,PORT:String(F),[lz]:"1"},H=M8.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=uz(M8.execPath,[H,"gateway","start","--port",String(F)],{env:B,cwd:M8.cwd(),detached:!0,stdio:["ignore",G,Y]});try{Q_(G)}catch{}if(Y!==G)try{Q_(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(),cz(X,`${String(W.pid)}
334
+ `,"utf8"),{pid:W.pid,port:F,logFile:J,pidFile:X}}async function K_(D={}){let $=E4();if(!$.running||$.pid===void 0)return null;let F=$.pid,X=D.timeoutMs??5000,J=100;try{M8.kill(F,"SIGTERM")}catch(Y){if(Y.code==="ESRCH"){try{R4($.pidFile)}catch{}return null}throw Y}let G=Date.now()+X;while(Date.now()<G){if(!U_(F)){try{R4($.pidFile)}catch{}return F}await new Promise((Y)=>setTimeout(Y,J))}try{M8.kill(F,"SIGKILL")}catch{}try{R4($.pidFile)}catch{}return F}o8();async function O_(D={}){if(D.detach===!0)return sz(D);return rz(D)}async function sz(D){try{let $=await A_({...D.port===void 0?{}:{port:D.port},...D.serveWeb===!1?{env:{AIWORKER_GATEWAY_NO_SERVE_WEB:"1"}}:{}});if(D.persistUrl!==!1)await R3({gatewayUrl:f7($.port)});return C.success(`gateway daemon \u5DF2\u542F\u52A8 pid=${$.pid} port=${$.port}`),C.info(`pidFile: ${$.pidFile}`),C.info(`logFile: ${$.logFile}`),0}catch($){return C.error(`gateway start --detach \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}async function rz(D){try{let $=C4.env.AIWORKER_GATEWAY_NO_SERVE_WEB==="1",F=D.serveWeb!==!1&&!$,X=F?O4("fleet"):void 0;if(F&&!X)C.warn("[gateway] web \u9759\u6001\u8D44\u6E90\u672A\u627E\u5230\uFF08apps/web/dist/fleet \u7F3A\u5931\uFF1F\uFF09\uFF0C/admin/* \u5C06\u8FD4\u56DE 404");let J=await W_(D.port===void 0?{}:{port:D.port},{...X?{webStaticDir:X}:{}});if(X)C.info(`[gateway] /admin/* serving fleet bundle from ${X}`);if(D.persistUrl!==!1)try{await R3({gatewayUrl:f7(J.port)})}catch(B){C.warn(`\u65E0\u6CD5\u6301\u4E45\u5316 gatewayUrl \u5230 aim.json: ${B instanceof Error?B.message:String(B)}`)}C.success(`gateway \u5DF2\u542F\u52A8 (foreground) port=${J.port}`);let G=!1,Y=async(B)=>{if(G)return;G=!0,C.info(`[gateway] received ${B}, shutting down`);try{await J.stop(),NX()}catch(H){C.error("[gateway] shutdown failed",H)}C4.exit(0)};return C4.once("SIGTERM",()=>void Y("SIGTERM")),C4.once("SIGINT",()=>void Y("SIGINT")),await new Promise(()=>{}),0}catch($){return C.error(`gateway start \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}function R_(){let D=E4();if(D.running)return C.success(`gateway detached daemon \u8FD0\u884C\u4E2D pid=${D.pid}`),C.info(`pidFile: ${D.pidFile}`),C.info(`logFile: ${D.logFile}`),0;return C.info("gateway detached daemon \u672A\u8FD0\u884C\uFF1Bforeground/systemd \u5B9E\u4F8B\u4E0D\u7531\u6B64\u547D\u4EE4\u8DDF\u8E2A"),1}async function E_(D={}){try{let $=await K_(D.timeoutMs===void 0?{}:{timeoutMs:D.timeoutMs});if($===null)return C.info("gateway detached daemon \u5F53\u524D\u672A\u8FD0\u884C\uFF1Bforeground/systemd \u5B9E\u4F8B\u8BF7\u7531\u5176 supervisor \u505C\u6B62"),0;return C.success(`gateway detached daemon \u5DF2\u505C\u6B62 pid=${$}`),0}catch($){return C.error(`gateway stop \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}JD();import{spawnSync as C_}from"child_process";import{existsSync as N_,mkdirSync as az,readFileSync as oz,writeFileSync as tz}from"fs";import{homedir as ez}from"os";import r2 from"path";import y3 from"process";var Z8="aiworker-gateway.service",M_="/var/lib/aiworker",u3="/etc/aiworker/gateway.env",DI="%h/.config/aiworker/gateway.env",Z_="%S/aiworker",q_="https://github.com/ZonEaseTech/aiworker/blob/main/docs/deployment.md",M4=["gateway","start"];function $I(D){let $=L_(D.execStart??P_());if(D.scope==="user")return["[Unit]","Description=AIWorker gateway daemon (user instance)",`Documentation=${q_}`,"After=network-online.target","Wants=network-online.target","","[Service]","Type=simple",`Environment=AIWORKER_HOME=${Z_}`,`EnvironmentFile=-${DI}`,`ExecStart=${$}`,"Restart=on-failure","RestartSec=5","StateDirectory=aiworker","StateDirectoryMode=0700","PrivateTmp=true","ProtectSystem=strict",`ReadWritePaths=${Z_}`,"NoNewPrivileges=true","","[Install]","WantedBy=default.target",""].join(`
335
+ `);return["[Unit]","Description=AIWorker gateway daemon (PLAN-016 systemd path)",`Documentation=${q_}`,"After=network-online.target","Wants=network-online.target","","[Service]","Type=simple",`Environment=AIWORKER_HOME=${M_}`,`EnvironmentFile=-${u3}`,`ExecStart=${$}`,"Restart=on-failure","RestartSec=5","User=root","Group=root","StateDirectory=aiworker","StateDirectoryMode=0700","PrivateTmp=true","ProtectSystem=strict",`ReadWritePaths=${M_}`,"NoNewPrivileges=true","","[Install]","WantedBy=multi-user.target",""].join(`
336
+ `)}function P_(D={}){let $=D.env??y3.env,F=D.execPath??y3.execPath,X=D.argv??y3.argv,J=D.cwd??y3.cwd(),G=D.pathExists??N_,Y=XI(X[1],J,G);if(JI(F)&&Y!==void 0)return Z4(F,[Y,...M4]);if(YI(F))return Z4(F,[...M4]);let B=GI("aiworker",$.PATH,G);if(B!==void 0)return Z4(B,[...M4]);if(Y!==void 0)return Z4(Y,[...M4]);throw Error("install systemd: unable to locate the current aiworker executable; re-run via the installed aiworker command or pass --exec-start")}function Z4(D,$){return[D,...$].map(FI).join(" ")}function L_(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 FI(D){if(/^[\w@%+=:,./-]+$/.test(D))return D;return`"${D.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`}function XI(D,$,F){if(D===void 0||D.length===0)return;let X=r2.isAbsolute(D)?D:r2.resolve($,D);return F(X)?X:void 0}function JI(D){let $=r2.basename(D);return $==="bun"||$.startsWith("bun-")}function YI(D){return r2.basename(D).startsWith("aiworker")}function GI(D,$,F){if($===void 0||$.length===0)return;for(let X of $.split(r2.delimiter)){if(X.length===0)continue;let J=r2.join(X,D);if(F(J))return J}return}function BI(D,$=ez()){if(D==="user")return r2.join($,".config","systemd","user",Z8);return`/etc/systemd/system/${Z8}`}function HI(D={}){let $=D.scope??"user",F=L_(D.execStart??P_()),X=$I({scope:$,execStart:F});if(D.dryRun)return{scope:$,content:X,execStart:F,enabled:!1,restartRequired:!1};let J=D.out??BI($);az(r2.dirname(J),{recursive:!0});let G=!1;if(N_(J)){if(oz(J,"utf8")===X)G=!0}if(!G)tz(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 WI($),{scope:$,content:X,execStart:F,written:{path:J,unchanged:G},enabled:!0,restartRequired:!G}}function WI(D){let $=D==="user"?["--user"]:[],F=C_("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=C_("systemctl",[...$,"enable","--now",Z8],{stdio:"inherit"});if(X.error)throw Error(`\u65E0\u6CD5\u6267\u884C systemctl: ${X.error.message}`);if(X.status!==0)throw Error(`systemctl ${[...$,"enable","--now",Z8].join(" ")} \u5931\u8D25 (exit=${X.status??"signal"})`)}async function j_(D={}){try{let $=HI(D);if(D.dryRun)return y3.stdout.write($.content),0;let F=$.written?.path??"<unknown>";if($.written?.unchanged)C.info(`systemd unit \u672A\u53D8\u66F4 (${F})`);else C.success(`systemd unit \u5199\u5165 ${F}`);if($.enabled){if(C.success(`\u5DF2 enable --now ${Z8}\uFF08${$.scope==="user"?"systemctl --user":"systemctl"}\uFF09`),$.restartRequired)C.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:"),C.warn(` systemctl ${$.scope==="user"?"--user ":""}restart ${Z8}`)}else if(D.out!==void 0)C.info("--out \u6307\u5B9A\u4E86\u975E\u9ED8\u8BA4\u8DEF\u5F84\uFF0C\u5DF2\u8DF3\u8FC7 systemctl\uFF1B\u5982\u9700\u542F\u7528\u8BF7\u624B\u52A8:"),C.info(` systemctl ${$.scope==="user"?"--user ":""}daemon-reload`),C.info(` systemctl ${$.scope==="user"?"--user ":""}enable --now ${Z8}`);else if(D.noEnable)C.info("--no-enable \u5DF2\u751F\u6548\uFF1B\u5982\u9700\u542F\u7528\u8BF7\u624B\u52A8:"),C.info(` systemctl ${$.scope==="user"?"--user ":""}daemon-reload`),C.info(` systemctl ${$.scope==="user"?"--user ":""}enable --now ${Z8}`);return VI($.scope),0}catch($){return C.error(`install systemd \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}function VI(D){if(D==="system"){C.box(["First-run secrets for aiworker-gateway:",` sudo install -d -m 0700 -o root -g root ${r2.dirname(u3)}`,` sudo sh -c 'umask 077; printf "AIWORKER_MASTER_KEY=%s\\nINTERNAL_SHARED_SECRET=%s\\n" "$(openssl rand -hex 32)" "$(openssl rand -base64 24)" > ${u3}'`,` sudo chown root:root ${u3}`,` sudo chmod 600 ${u3}`].join(`
337
337
  `));return}C.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(`
338
- `))}Y0();JD();async function j_(D){let $=D.follow===!0,F=D.timeoutMs??($?3600000:5000);try{return await ED(async({client:X})=>{return await new Promise((J)=>{let G=!1,Y=(W)=>{if(G)return;G=!0,J(W)},B=X.onEvent(e.LOGS_LINE,(W)=>{if(W===null||typeof W!=="object")return;let Q=W.workerId;if(typeof Q!=="string"||Q!==D.workerId)return;V2(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),V2({kind:"error",payload:{code:"request_failed",message:W instanceof Error?W.message:String(W)}}),Y(KD(W))})})})}catch(X){return C.error(`logs \u5931\u8D25: ${X instanceof Error?X.message:String(X)}`),KD(X)}}JD();async function z_(D){try{let $=await ED(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(() => (o8(),x7));return await F({...D.url===void 0?{}:{gatewayUrl:D.url},deviceToken:$.deviceToken,defaultWorkerId:$.workerId}),C.success(`\u5DF2\u914D\u5BF9 worker ${$.workerId}`),zD({workerId:$.workerId}),0}catch($){return C.error(`pair \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}JD();var I_=["web","line","telegram","lark","whatsapp"];function QI(D){if(!I_.includes(D))throw Error(`\u65E0\u6548 channel "${D}"\uFF0C\u53EF\u9009\u503C\uFF1A${I_.join(", ")}`);return D}async function T_(D){try{let $=await ED(async({client:F})=>{return await F.request("cron.list",{workerId:D})});return zD($),0}catch($){return C.error(`schedule list \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}async function w_(D){try{let $=QI(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 ED(async({client:J})=>{return await J.request("cron.add",{workerId:D.workerId,job:F})});return zD(X),0}catch($){return C.error(`schedule add \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}async function S_(D,$){try{let F=await ED(async({client:X})=>{return await X.request("cron.remove",{workerId:D,jobId:$})});return zD(F),0}catch(F){return C.error(`schedule remove \u5931\u8D25: ${F instanceof Error?F.message:String(F)}`),KD(F)}}JD();async function b_(D){try{let $=await ED(async({client:F})=>{return await F.request("token.rotate",{workerId:D})});return zD($),0}catch($){return C.error(`token rotate \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}JD();async function f_(){try{let D=await ED(async({client:$})=>{return await $.request("workers.list",{})});return zD(D),0}catch(D){return C.error(`workers list \u5931\u8D25: ${D instanceof Error?D.message:String(D)}`),KD(D)}}async function k_(D){try{let $=await ED(async({client:F})=>{return await F.request("workers.info",{workerId:D})});return zD($),0}catch($){return C.error(`workers info \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}async function v_(D={}){try{let $=await ED(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(() => (o8(),x7));return await F({deviceToken:$.deviceToken,defaultWorkerId:$.workerId}),C.success(`\u5DF2 launch worker ${$.workerId}`),zD({workerId:$.workerId}),0}catch($){return C.error(`workers launch \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}async function h_(D){try{let $=await ED(async({client:F})=>{return await F.request("workers.stop",{workerId:D})});return zD($),0}catch($){return C.error(`workers stop \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}async function x_(D){try{let $=await ED(async({client:G})=>{return await G.request("workers.remove",{workerId:D})}),{loadAimState:F,saveAimState:X}=await Promise.resolve().then(() => (o8(),x7)),J=await F();if(J.defaultWorkerId===D){let G={...J};delete G.defaultWorkerId,await X(G)}return zD($),0}catch($){return C.error(`workers remove \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}a0();JD();import cG from"process";a0();TD();import nd from"process";async function sd(D){let $=mD(),F=t2(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 K6(D,X)}async function iD(D={}){c3(i.WORKER_DB_PATH);let $=nd.env.WORKER_MIGRATIONS_FOLDER??V6;d3($);let F=mD(),X=u(),J=await G1(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)B1(J.workerId,J.token,X,J.justMinted);let G=await Y1(X),Y=await sd(G.config),B=new P1({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 UM(D){return T1(D.workerId,D.hydrated,{processes:D.processes})}function rd(){return`http://${cG.env.AIW_LOCAL_WORKER_HOST??"localhost"}:${i.PORT}`}async function AM(D,$={}){let F=await iD({silent:!0}),X=`${rd()}${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 KM(){try{let{status:D,body:$}=await AM("/api/worker/approvals");if(D!==200)return C.error(`approvals list HTTP ${D}: ${JSON.stringify($)}`),1;return cG.stdout.write(`${JSON.stringify($,null,2)}
339
- `),0}catch(D){return C.error(`approvals list \u5931\u8D25: ${D instanceof Error?D.message:String(D)}`),1}}async function OM(D){try{let $=D.deny===!0?"deny":"allow",{status:F,body:X}=await AM(`/api/worker/approvals/${encodeURIComponent(D.taskId)}/${encodeURIComponent(D.toolCallId)}/grant`,{method:"POST",body:JSON.stringify({decision:$})});if(F!==200)return C.error(`approvals grant HTTP ${F}: ${JSON.stringify(X)}`),1;return cG.stdout.write(`${JSON.stringify(X,null,2)}
340
- `),0}catch($){return C.error(`approvals grant \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}a0();JD();async function RM(){await iD({silent:!0});let{getWorkerDb:D}=await Promise.resolve().then(() => (TD(),gX)),$=await S0(D());return console.log(JSON.stringify({version:$.version,config:$.config},null,2)),0}async function EM(D){let $=await iD({silent:!0}),F;try{F=JSON.parse(D.json)}catch(Y){return C.error(`[aiw config set] invalid JSON: ${String(Y)}`),2}let{getWorkerDb:X}=await Promise.resolve().then(() => (TD(),gX)),J=X(),G=mD();try{let Y=await k9(J,G,F,D.ifMatch===void 0?{}:{ifMatchVersion:D.ifMatch});return await v9($.workerId,Y.config,Y.version),C.success(`[aiw config set] stored config v${Y.version}`),0}catch(Y){if(Y instanceof g2)return C.error(`[aiw config set] invalid config: ${JSON.stringify(Y.issues,null,2)}`),2;if(Y instanceof y2)return C.error(`[aiw config set] version conflict: expected ${Y.expected}, stored is ${Y.actual}`),3;throw Y}}W2();JD();import{existsSync as Yl}from"fs";import{homedir as Gl}from"os";import a6 from"path";import dG from"process";import{randomBytes as CM}from"crypto";import{chmodSync as ad,existsSync as MM,mkdirSync as od,readFileSync as td,writeFileSync as ed}from"fs";import{homedir as Dl}from"os";import ZM from"path";import N2 from"process";var $l=ZM.join(Dl(),".aiworker");function w1(D={}){let $=D.home??N2.env.AIWORKER_HOME??$l,F=ZM.join($,".env");if(MM(F)){let B=Fl(td(F,"utf8"));for(let[H,W]of Object.entries(B))if(N2.env[H]===void 0)N2.env[H]=W;return{minted:!1,envFile:F,freshMasterKey:null}}if(!MM($))od($,{recursive:!0,mode:448});let X=N2.env.AIWORKER_MASTER_KEY??CM(32).toString("hex"),J=N2.env.INTERNAL_SHARED_SECRET??CM(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(ed(F,G.join(`
341
- `),{mode:384}),ad(F,384),N2.env.AIWORKER_MASTER_KEY===void 0)N2.env.AIWORKER_MASTER_KEY=X;if(N2.env.INTERNAL_SHARED_SECRET===void 0)N2.env.INTERNAL_SHARED_SECRET=J;let Y=N2.env.AIWORKER_MASTER_KEY===X?X:null;if(Y&&D.printOnMint!==!1)Xl(Y,F);return{minted:!0,envFile:F,freshMasterKey:Y}}function Fl(D){let $={};for(let F of D.split(`
342
- `)){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 Xl(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 ${Jl($,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",""];N2.stderr.write(`${F.join(`
338
+ `))}Y0();JD();async function z_(D){let $=D.follow===!0,F=D.timeoutMs??($?3600000:5000);try{return await ED(async({client:X})=>{return await new Promise((J)=>{let G=!1,Y=(W)=>{if(G)return;G=!0,J(W)},B=X.onEvent(e.LOGS_LINE,(W)=>{if(W===null||typeof W!=="object")return;let Q=W.workerId;if(typeof Q!=="string"||Q!==D.workerId)return;V2(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),V2({kind:"error",payload:{code:"request_failed",message:W instanceof Error?W.message:String(W)}}),Y(KD(W))})})})}catch(X){return C.error(`logs \u5931\u8D25: ${X instanceof Error?X.message:String(X)}`),KD(X)}}JD();async function I_(D){try{let $=await ED(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(() => (o8(),x7));return await F({...D.url===void 0?{}:{gatewayUrl:D.url},deviceToken:$.deviceToken,defaultWorkerId:$.workerId}),C.success(`\u5DF2\u914D\u5BF9 worker ${$.workerId}`),zD({workerId:$.workerId}),0}catch($){return C.error(`pair \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}JD();var T_=["web","line","telegram","lark","whatsapp"];function QI(D){if(!T_.includes(D))throw Error(`\u65E0\u6548 channel "${D}"\uFF0C\u53EF\u9009\u503C\uFF1A${T_.join(", ")}`);return D}async function w_(D){try{let $=await ED(async({client:F})=>{return await F.request("cron.list",{workerId:D})});return zD($),0}catch($){return C.error(`schedule list \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}async function S_(D){try{let $=QI(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 ED(async({client:J})=>{return await J.request("cron.add",{workerId:D.workerId,job:F})});return zD(X),0}catch($){return C.error(`schedule add \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}async function b_(D,$){try{let F=await ED(async({client:X})=>{return await X.request("cron.remove",{workerId:D,jobId:$})});return zD(F),0}catch(F){return C.error(`schedule remove \u5931\u8D25: ${F instanceof Error?F.message:String(F)}`),KD(F)}}JD();async function f_(D){try{let $=await ED(async({client:F})=>{return await F.request("token.rotate",{workerId:D})});return zD($),0}catch($){return C.error(`token rotate \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}JD();async function k_(){try{let D=await ED(async({client:$})=>{return await $.request("workers.list",{})});return zD(D),0}catch(D){return C.error(`workers list \u5931\u8D25: ${D instanceof Error?D.message:String(D)}`),KD(D)}}async function v_(D){try{let $=await ED(async({client:F})=>{return await F.request("workers.info",{workerId:D})});return zD($),0}catch($){return C.error(`workers info \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}async function h_(D={}){try{let $=await ED(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(() => (o8(),x7));return await F({deviceToken:$.deviceToken,defaultWorkerId:$.workerId}),C.success(`\u5DF2 launch worker ${$.workerId}`),zD({workerId:$.workerId}),0}catch($){return C.error(`workers launch \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}async function x_(D){try{let $=await ED(async({client:F})=>{return await F.request("workers.stop",{workerId:D})});return zD($),0}catch($){return C.error(`workers stop \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}async function g_(D){try{let $=await ED(async({client:G})=>{return await G.request("workers.remove",{workerId:D})}),{loadAimState:F,saveAimState:X}=await Promise.resolve().then(() => (o8(),x7)),J=await F();if(J.defaultWorkerId===D){let G={...J};delete G.defaultWorkerId,await X(G)}return zD($),0}catch($){return C.error(`workers remove \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}a0();JD();import dG from"process";a0();TD();import sd from"process";async function rd(D){let $=mD(),F=t2(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 K6(D,X)}async function iD(D={}){c3(n.WORKER_DB_PATH);let $=sd.env.WORKER_MIGRATIONS_FOLDER??V6;d3($);let F=mD(),X=u(),J=await G1(X,F,{...n.AIWORKER_FORCE_ID===void 0?{}:{forceId:n.AIWORKER_FORCE_ID},...n.AIWORKER_FORCE_TOKEN===void 0?{}:{forceToken:n.AIWORKER_FORCE_TOKEN}});if(!D.silent)B1(J.workerId,J.token,X,J.justMinted);let G=await Y1(X),Y=await rd(G.config),B=new P1({maxConcurrentTotal:n.MAX_CONCURRENT_TOTAL,perEngineLimits:{...n.perEngineLimits},stallTimeoutMs:n.PROCESS_STALL_TIMEOUT_MS,killTimeoutMs:n.PROCESS_KILL_TIMEOUT_MS,autoCleanupDelayMs:n.PROCESS_AUTO_CLEANUP_DELAY_MS,gcIntervalMs:n.PROCESS_GC_INTERVAL_MS});return{workerId:J.workerId,token:J.token,configVersion:G.version,hydrated:Y,db:X,processes:B}}function UM(D){return T1(D.workerId,D.hydrated,{processes:D.processes})}function ad(){return`http://${dG.env.AIW_LOCAL_WORKER_HOST??"localhost"}:${n.PORT}`}async function AM(D,$={}){let F=await iD({silent:!0}),X=`${ad()}${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 KM(){try{let{status:D,body:$}=await AM("/api/worker/approvals");if(D!==200)return C.error(`approvals list HTTP ${D}: ${JSON.stringify($)}`),1;return dG.stdout.write(`${JSON.stringify($,null,2)}
339
+ `),0}catch(D){return C.error(`approvals list \u5931\u8D25: ${D instanceof Error?D.message:String(D)}`),1}}async function OM(D){try{let $=D.deny===!0?"deny":"allow",{status:F,body:X}=await AM(`/api/worker/approvals/${encodeURIComponent(D.taskId)}/${encodeURIComponent(D.toolCallId)}/grant`,{method:"POST",body:JSON.stringify({decision:$})});if(F!==200)return C.error(`approvals grant HTTP ${F}: ${JSON.stringify(X)}`),1;return dG.stdout.write(`${JSON.stringify(X,null,2)}
340
+ `),0}catch($){return C.error(`approvals grant \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}a0();JD();async function RM(){await iD({silent:!0});let{getWorkerDb:D}=await Promise.resolve().then(() => (TD(),gX)),$=await S0(D());return console.log(JSON.stringify({version:$.version,config:$.config},null,2)),0}async function EM(D){let $=await iD({silent:!0}),F;try{F=JSON.parse(D.json)}catch(Y){return C.error(`[aiw config set] invalid JSON: ${String(Y)}`),2}let{getWorkerDb:X}=await Promise.resolve().then(() => (TD(),gX)),J=X(),G=mD();try{let Y=await k9(J,G,F,D.ifMatch===void 0?{}:{ifMatchVersion:D.ifMatch});return await v9($.workerId,Y.config,Y.version),C.success(`[aiw config set] stored config v${Y.version}`),0}catch(Y){if(Y instanceof g2)return C.error(`[aiw config set] invalid config: ${JSON.stringify(Y.issues,null,2)}`),2;if(Y instanceof y2)return C.error(`[aiw config set] version conflict: expected ${Y.expected}, stored is ${Y.actual}`),3;throw Y}}W2();JD();import{existsSync as Gl}from"fs";import{homedir as Bl}from"os";import a6 from"path";import lG from"process";import{randomBytes as CM}from"crypto";import{chmodSync as od,existsSync as MM,mkdirSync as td,readFileSync as ed,writeFileSync as Dl}from"fs";import{homedir as $l}from"os";import ZM from"path";import N2 from"process";var Fl=ZM.join($l(),".aiworker");function w1(D={}){let $=D.home??N2.env.AIWORKER_HOME??Fl,F=ZM.join($,".env");if(MM(F)){let B=Xl(ed(F,"utf8"));for(let[H,W]of Object.entries(B))if(N2.env[H]===void 0)N2.env[H]=W;return{minted:!1,envFile:F,freshMasterKey:null}}if(!MM($))td($,{recursive:!0,mode:448});let X=N2.env.AIWORKER_MASTER_KEY??CM(32).toString("hex"),J=N2.env.INTERNAL_SHARED_SECRET??CM(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(Dl(F,G.join(`
341
+ `),{mode:384}),od(F,384),N2.env.AIWORKER_MASTER_KEY===void 0)N2.env.AIWORKER_MASTER_KEY=X;if(N2.env.INTERNAL_SHARED_SECRET===void 0)N2.env.INTERNAL_SHARED_SECRET=J;let Y=N2.env.AIWORKER_MASTER_KEY===X?X:null;if(Y&&D.printOnMint!==!1)Jl(Y,F);return{minted:!0,envFile:F,freshMasterKey:Y}}function Xl(D){let $={};for(let F of D.split(`
342
+ `)){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 Jl(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 ${Yl($,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",""];N2.stderr.write(`${F.join(`
343
343
  `)}
344
- `)}function Jl(D,$){if(D.length<=$)return D.padEnd($);return`\u2026${D.slice(-($-1))}`.padEnd($)}async function qM(D={}){if(D.global===!0){let Y=a6.join(Gl(),".aiworker");dG.env.AIWORKER_HOME=Y,w1({home:Y});let B=await iD();C.success(`[aiworker init] user-scope worker ${B.workerId} ready (config v${B.configVersion})`);return}let $=G2();if($.scope==="explicit"){w1({home:$.home});let Y=await iD();C.success(`[aiworker init] explicit-scope worker ${Y.workerId} ready (${$.home})`);return}let F=dG.cwd(),X=AF(F);if(X){await MF(X),w1({home:a6.join(X,".aiworker","local")});let Y=await iD();C.success(`[aiworker init] project-scope worker ${Y.workerId} ready (${X})`);return}if(D.force!==!0&&!Bl(F))throw Error(`[aiworker init] cwd is not inside a git repo (cwd=${F}).
344
+ `)}function Yl(D,$){if(D.length<=$)return D.padEnd($);return`\u2026${D.slice(-($-1))}`.padEnd($)}async function qM(D={}){if(D.global===!0){let Y=a6.join(Bl(),".aiworker");lG.env.AIWORKER_HOME=Y,w1({home:Y});let B=await iD();C.success(`[aiworker init] user-scope worker ${B.workerId} ready (config v${B.configVersion})`);return}let $=G2();if($.scope==="explicit"){w1({home:$.home});let Y=await iD();C.success(`[aiworker init] explicit-scope worker ${Y.workerId} ready (${$.home})`);return}let F=lG.cwd(),X=AF(F);if(X){await MF(X),w1({home:a6.join(X,".aiworker","local")});let Y=await iD();C.success(`[aiworker init] project-scope worker ${Y.workerId} ready (${X})`);return}if(D.force!==!0&&!Hl(F))throw Error(`[aiworker init] cwd is not inside a git repo (cwd=${F}).
345
345
  `+` \u2022 Run inside an existing git repo to enable project-scope worker, OR
346
346
  `+` \u2022 aiworker init --global \u2192 use ~/.aiworker (single host-wide worker), OR
347
- `+" \u2022 aiworker init --force \u2192 create .aiworker/ here anyway (no git tracking).");await MF(F);let J=a6.join(F,".aiworker","local");delete dG.env.AIWORKER_HOME,w1({home:J});let G=await iD();C.success(`[aiworker init] project-scope worker ${G.workerId} ready (${F})`)}function Bl(D){let $=a6.resolve(D);while(!0){if(Yl(a6.join($,".git")))return!0;let F=a6.dirname($);if(F===$)return!1;$=F}}JD();var Hl=120000;async function NM(D={}){let $=D.message??"";if(!$)return C.error("[aiw run] --message is required (non-empty)"),2;let F=await iD(),X=UM(F),J=D.timeoutMs??Hl;if(C.info(`[aiw run] worker ${F.workerId} (config v${F.configVersion}) \u2014 engine=${F.hydrated.executor.engine}/${F.hydrated.executor.variant}`),D.dryRun)return C.success("[aiw run] --dry-run: runtime constructed, no envelope ingested"),X.dispose(),0;let G=D.chatId??"cli:stdin",Y={workerId:F.workerId,channel:"web",accountId:"sys:cli",chatId:G,text:$,receivedAt:new Date().toISOString(),raw:{source:"aiw-cli"}},B=new Promise((W)=>{let Q=null,_=setTimeout(()=>{C.error(`[aiw run] timed out after ${J}ms without reaching a terminal state`),Q?.(),W(124)},J);Q=X.bus.on((U)=>{if(console.log(JSON.stringify({type:U.type,at:U.at,payload:U.payload})),U.type==="orchestrator.finished"||U.type==="orchestrator.error")clearTimeout(_),Q?.(),W(U.type==="orchestrator.finished"?0:1)})});try{await X.orchestrator.ingest(Y)}catch(W){return C.error(`[aiw run] ingest failed: ${String(W)}`),X.dispose(),1}let H=await B;return X.dispose(),H}JD();var PM=["web","line","telegram","lark","whatsapp"];function Wl(D){if(!PM.includes(D))throw Error(`\u65E0\u6548 channel "${D}"\uFF0C\u53EF\u9009\u503C\uFF1A${PM.join(", ")}`);return D}async function lG(D){await iD({silent:!0});let{CronService:$}=await Promise.resolve().then(() => (a0(),_M)),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 LM(){try{let D=await lG(async($)=>$.listJobs());return console.log(JSON.stringify({jobs:D},null,2)),0}catch(D){return C.error(`[aiw schedule list] failed: ${D instanceof Error?D.message:String(D)}`),1}}async function jM(D){try{let $=Wl(D.channel),F=await lG(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 C.error(`[aiw schedule add] failed: ${$ instanceof Error?$.message:String($)}`),1}}async function zM(D){try{let $=await lG(async(F)=>F.removeJob(D));return console.log(JSON.stringify($,null,2)),$.removed?0:1}catch($){return C.error(`[aiw schedule remove] failed: ${$ instanceof Error?$.message:String($)}`),1}}W2();import{existsSync as Vl}from"fs";import IM from"path";import TM from"process";async function wM(){let D=G2();TM.stdout.write(`${[`Scope : ${D.scope}`,`Home : ${D.home}`,`Source : ${D.source}`,D.projectRoot?`Project root : ${D.projectRoot}`:null].filter(Boolean).join(`
347
+ `+" \u2022 aiworker init --force \u2192 create .aiworker/ here anyway (no git tracking).");await MF(F);let J=a6.join(F,".aiworker","local");delete lG.env.AIWORKER_HOME,w1({home:J});let G=await iD();C.success(`[aiworker init] project-scope worker ${G.workerId} ready (${F})`)}function Hl(D){let $=a6.resolve(D);while(!0){if(Gl(a6.join($,".git")))return!0;let F=a6.dirname($);if(F===$)return!1;$=F}}JD();var Wl=120000;async function NM(D={}){let $=D.message??"";if(!$)return C.error("[aiw run] --message is required (non-empty)"),2;let F=await iD(),X=UM(F),J=D.timeoutMs??Wl;if(C.info(`[aiw run] worker ${F.workerId} (config v${F.configVersion}) \u2014 engine=${F.hydrated.executor.engine}/${F.hydrated.executor.variant}`),D.dryRun)return C.success("[aiw run] --dry-run: runtime constructed, no envelope ingested"),X.dispose(),0;let G=D.chatId??"cli:stdin",Y={workerId:F.workerId,channel:"web",accountId:"sys:cli",chatId:G,text:$,receivedAt:new Date().toISOString(),raw:{source:"aiw-cli"}},B=new Promise((W)=>{let Q=null,_=setTimeout(()=>{C.error(`[aiw run] timed out after ${J}ms without reaching a terminal state`),Q?.(),W(124)},J);Q=X.bus.on((U)=>{if(console.log(JSON.stringify({type:U.type,at:U.at,payload:U.payload})),U.type==="orchestrator.finished"||U.type==="orchestrator.error")clearTimeout(_),Q?.(),W(U.type==="orchestrator.finished"?0:1)})});try{await X.orchestrator.ingest(Y)}catch(W){return C.error(`[aiw run] ingest failed: ${String(W)}`),X.dispose(),1}let H=await B;return X.dispose(),H}JD();var PM=["web","line","telegram","lark","whatsapp"];function Vl(D){if(!PM.includes(D))throw Error(`\u65E0\u6548 channel "${D}"\uFF0C\u53EF\u9009\u503C\uFF1A${PM.join(", ")}`);return D}async function iG(D){await iD({silent:!0});let{CronService:$}=await Promise.resolve().then(() => (a0(),_M)),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 LM(){try{let D=await iG(async($)=>$.listJobs());return console.log(JSON.stringify({jobs:D},null,2)),0}catch(D){return C.error(`[aiw schedule list] failed: ${D instanceof Error?D.message:String(D)}`),1}}async function jM(D){try{let $=Vl(D.channel),F=await iG(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 C.error(`[aiw schedule add] failed: ${$ instanceof Error?$.message:String($)}`),1}}async function zM(D){try{let $=await iG(async(F)=>F.removeJob(D));return console.log(JSON.stringify($,null,2)),$.removed?0:1}catch($){return C.error(`[aiw schedule remove] failed: ${$ instanceof Error?$.message:String($)}`),1}}W2();import{existsSync as Ql}from"fs";import IM from"path";import TM from"process";async function wM(){let D=G2();TM.stdout.write(`${[`Scope : ${D.scope}`,`Home : ${D.home}`,`Source : ${D.source}`,D.projectRoot?`Project root : ${D.projectRoot}`:null].filter(Boolean).join(`
348
348
  `)}
349
- `);let $="<workerId>",F=H2($),X=S7($),J=IM.join(D.home,".env"),G=IM.join(D.home,"worker.db"),Y=[["AGENT.md",OF($)],["SOUL.md",RF($)],["USER.md",EF($)],["MEMORY.md",KF($)],["ROLLUP.md",UW($)],["mcp.json",AW($)],["worker.db",G],["local/.env",J],["workspaces/",X],["worker home",F]];for(let[B,H]of Y){let Q=Vl(H)?"\u2713":"\xB7";TM.stdout.write(` ${Q} ${B.padEnd(14)} ${H}
350
- `)}return 0}import X7 from"process";function l9(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 Ql(D){return"_def"in D}function c9(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 bM(D){if(typeof D.ZodType.prototype.openapi<"u")return;D.ZodType.prototype.openapi=function(J,G){var Y,B,H,W,Q,_;let U=typeof J==="string"?G:J,A=U!==null&&U!==void 0?U:{},{param:R}=A,O=l9(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),E=Object.assign(Object.assign(Object.assign({},(B=this._def.openapi)===null||B===void 0?void 0:B.metadata),O),((W=(H=this._def.openapi)===null||H===void 0?void 0:H.metadata)===null||W===void 0?void 0:W.param)||R?{param:Object.assign(Object.assign({},(_=(Q=this._def.openapi)===null||Q===void 0?void 0:Q.metadata)===null||_===void 0?void 0:_.param),R)}:void 0),q=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(E).length>0?{metadata:E}:void 0)}));if(GD(this,"ZodObject")){let N=this.extend;q.extend=function(...S){var b,P,T,j,s,UD,VD;let $D=N.apply(this,S);return $D._def.openapi={_internal:{extendedFrom:((P=(b=this._def.openapi)===null||b===void 0?void 0:b._internal)===null||P===void 0?void 0:P.refId)?{refId:(j=(T=this._def.openapi)===null||T===void 0?void 0:T._internal)===null||j===void 0?void 0:j.refId,schema:this}:(UD=(s=this._def.openapi)===null||s===void 0?void 0:s._internal)===null||UD===void 0?void 0:UD.extendedFrom},metadata:(VD=$D._def.openapi)===null||VD===void 0?void 0:VD.metadata},$D}}return q},c9(D,"optional"),c9(D,"nullable"),c9(D,"default"),c9(D,"transform"),c9(D,"refine");let $=D.ZodObject.prototype.deepPartial;D.ZodObject.prototype.deepPartial=function(){let J=this._def.shape(),G=$.apply(this),Y=G._def.shape();return Object.entries(Y).forEach(([B,H])=>{var W,Q;H._def.openapi=(Q=(W=J[B])===null||W===void 0?void 0:W._def)===null||Q===void 0?void 0:Q.openapi}),G._def.openapi=void 0,G};let F=D.ZodObject.prototype.pick;D.ZodObject.prototype.pick=function(...J){let G=F.apply(this,J);return G._def.openapi=void 0,G};let X=D.ZodObject.prototype.omit;D.ZodObject.prototype.omit=function(...J){let G=X.apply(this,J);return G._def.openapi=void 0,G}}function E$(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)=>E$(D[X],$[X]))}class fM{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)=>E$(J,D)))F.push(D)}contains(D){let $=this.hashCodeOf(D),F=this.buckets.get($);if(!F)return!1;return F.some((X)=>E$(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 i9(D){return D===void 0}function n9(D,$){let F={};return Object.entries(D).forEach(([X,J])=>{F[X]=$(J)}),F}function _l(D,$){let F={};return Object.entries(D).forEach(([X,J])=>{if(!$.some((G)=>G===X))F[X]=J}),F}function t6(D,$){let F={};return Object.entries(D).forEach(([X,J])=>{if(!$(J,X))F[X]=J}),F}function SM(D){return D.filter(($)=>!i9($))}var iG=E$;function Ul(D){let $=new fM;return D.forEach((F)=>$.put(F)),[...$.values()]}function kM(D){return typeof D==="string"}class nG{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 r9{constructor(D){this.message=D}}class o6 extends r9{constructor(D,$){super(D);this.data=$}}class s9 extends r9{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 d9(D,$){try{return D()}catch(F){if(F instanceof s9)throw new s9(Object.assign(Object.assign({},F.data),$));throw F}}class vM extends r9{constructor(D){super("Unknown zod object type, please specify `type` and other OpenAPI props using `ZodSchema.openapi`.");this.data=D}}class PD{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 t6(_l(D,["param"]),i9)}static buildParameterMetadata(D){return t6(D,i9)}static applySchemaMetadata(D,$){return t6(Object.assign(Object.assign({},D),this.buildSchemaMetadata($)),i9)}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 hM{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 xM{transform(D){return Object.assign(Object.assign({},D("string")),{pattern:"^d+$"})}}class gM{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)=>PD.getRefId(J)===void 0))return;let X={};return D.forEach((J)=>{var G;let Y=PD.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(kM).forEach((Q)=>{X[Q]=F(Y)});return}let H=B===null||B===void 0?void 0:B._def.value;if(typeof H!=="string")throw Error(`Discriminator ${$} could not be found in one of the values of a discriminated union`);X[H]=F(Y)}),{propertyName:$,mapping:X}}}class yM{transform(D,$){return Object.assign(Object.assign({},$("string")),{enum:D._def.values})}}class uM{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 mM{transform(D,$){return Object.assign(Object.assign({},$(typeof D._def.value)),{enum:[D._def.value]})}}function Al(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 pM{transform(D,$){let{type:F,values:X}=Al(D._def.values);if(F==="mixed")throw new r9("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 cM{transform(D,$,F){return Object.assign(Object.assign({},$(D.isInt?"integer":"number")),F(D._def.checks))}}class dM{transform(D,$,F,X){var J;let G=(J=PD.getInternalMetadata(D))===null||J===void 0?void 0:J.extendedFrom,Y=this.requiredKeysOf(D),B=n9(D._def.shape(),X);if(!G)return Object.assign(Object.assign(Object.assign(Object.assign({},F("object")),{properties:B,default:$}),Y.length>0?{required:Y}:{}),this.generateAdditionalProperties(D,X));let H=G.schema;X(H);let W=this.requiredKeysOf(H),Q=n9(H===null||H===void 0?void 0:H._def.shape(),X),_=Object.fromEntries(Object.entries(B).filter(([R,O])=>{return!iG(Q[R],O)})),U=Y.filter((R)=>!W.includes(R)),A=Object.assign(Object.assign(Object.assign(Object.assign({},F("object")),{default:$,properties:_}),U.length>0?{required:U}:{}),this.generateAdditionalProperties(D,X));return{allOf:[{$ref:`#/components/schemas/${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])=>!PD.isOptionalSchema(F)).map(([$,F])=>$)}}class lM{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(kM).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 iM{transform(D,$){var F,X,J;let G=this.getZodStringCheck(D,"regex"),Y=(F=this.getZodStringCheck(D,"length"))===null||F===void 0?void 0:F.value,B=Number.isFinite(D.minLength)?(X=D.minLength)!==null&&X!==void 0?X:void 0:void 0,H=Number.isFinite(D.maxLength)?(J=D.maxLength)!==null&&J!==void 0?J:void 0:void 0;return Object.assign(Object.assign({},$("string")),{minLength:Y!==null&&Y!==void 0?Y:B,maxLength:Y!==null&&Y!==void 0?Y:H,format:this.mapStringFormat(D),pattern:G===null||G===void 0?void 0:G.regex.source})}mapStringFormat(D){if(D.isUUID)return"uuid";if(D.isEmail)return"email";if(D.isURL)return"uri";if(D.isDate)return"date";if(D.isDatetime)return"date-time";if(D.isCUID)return"cuid";if(D.isCUID2)return"cuid2";if(D.isULID)return"ulid";if(D.isIP)return"ip";if(D.isEmoji)return"emoji";return}getZodStringCheck(D,$){return D._def.checks.find((F)=>{return F.kind===$})}}class nM{constructor(D){this.versionSpecifics=D}transform(D,$,F){let{items:X}=D._def,J=X.map(F);return Object.assign(Object.assign({},$("array")),this.versionSpecifics.mapTupleItems(J))}}class sM{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 rM{constructor(D){this.versionSpecifics=D,this.objectTransformer=new dM,this.stringTransformer=new iM,this.numberTransformer=new cM,this.bigIntTransformer=new xM,this.literalTransformer=new mM,this.enumTransformer=new yM,this.nativeEnumTransformer=new pM,this.arrayTransformer=new hM,this.unionTransformer=new sM,this.discriminatedUnionTransformer=new gM,this.intersectionTransformer=new uM,this.recordTransformer=new lM,this.tupleTransformer=new nM(D)}transform(D,$,F,X,J){if(GD(D,"ZodNull"))return this.versionSpecifics.nullType;if(GD(D,"ZodUnknown")||GD(D,"ZodAny"))return this.versionSpecifics.mapNullableType(void 0,$);if(GD(D,"ZodObject"))return this.objectTransformer.transform(D,J,(Y)=>this.versionSpecifics.mapNullableType(Y,$),F);let G=this.transformSchemaWithoutDefault(D,$,F,X);return Object.assign(Object.assign({},G),{default:J})}transformSchemaWithoutDefault(D,$,F,X){if(GD(D,"ZodUnknown")||GD(D,"ZodAny"))return this.versionSpecifics.mapNullableType(void 0,$);if(GD(D,"ZodString"))return this.stringTransformer.transform(D,(G)=>this.versionSpecifics.mapNullableType(G,$));if(GD(D,"ZodNumber"))return this.numberTransformer.transform(D,(G)=>this.versionSpecifics.mapNullableType(G,$),(G)=>this.versionSpecifics.getNumberChecks(G));if(GD(D,"ZodBigInt"))return this.bigIntTransformer.transform((G)=>this.versionSpecifics.mapNullableType(G,$));if(GD(D,"ZodBoolean"))return this.versionSpecifics.mapNullableType("boolean",$);if(GD(D,"ZodLiteral"))return this.literalTransformer.transform(D,(G)=>this.versionSpecifics.mapNullableType(G,$));if(GD(D,"ZodEnum"))return this.enumTransformer.transform(D,(G)=>this.versionSpecifics.mapNullableType(G,$));if(GD(D,"ZodNativeEnum"))return this.nativeEnumTransformer.transform(D,(G)=>this.versionSpecifics.mapNullableType(G,$));if(GD(D,"ZodArray"))return this.arrayTransformer.transform(D,(G)=>this.versionSpecifics.mapNullableType(G,$),F);if(GD(D,"ZodTuple"))return this.tupleTransformer.transform(D,(G)=>this.versionSpecifics.mapNullableType(G,$),F);if(GD(D,"ZodUnion"))return this.unionTransformer.transform(D,(G)=>this.versionSpecifics.mapNullableOfArray(G,$),F);if(GD(D,"ZodDiscriminatedUnion"))return this.discriminatedUnionTransformer.transform(D,$,(G)=>this.versionSpecifics.mapNullableOfArray(G,$),F,X);if(GD(D,"ZodIntersection"))return this.intersectionTransformer.transform(D,$,(G)=>this.versionSpecifics.mapNullableOfArray(G,$),F);if(GD(D,"ZodRecord"))return this.recordTransformer.transform(D,(G)=>this.versionSpecifics.mapNullableType(G,$),F);if(GD(D,"ZodDate"))return this.versionSpecifics.mapNullableType("string",$);let J=PD.getRefId(D);throw new vM({currentSchema:D._def,schemaName:J})}}class sG{constructor(D,$){this.definitions=D,this.versionSpecifics=$,this.schemaRefs={},this.paramRefs={},this.pathRefs={},this.rawComponents=[],this.openApiTransformer=new rM($),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 $=PD.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 o6(`Conflicting location for parameter ${H.name}`,{key:"in",values:SM([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 o6("Conflicting names for parameter",{key:"name",values:SM([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=PD.getMetadata(D),J=(F=X===null||X===void 0?void 0:X.metadata)===null||F===void 0?void 0:F.param,G=this.getParameterRef(X,{in:$});if(G)return[G];if(GD(D,"ZodObject")){let Y=D._def.shape();return Object.entries(Y).map(([H,W])=>{var Q,_;let U=PD.getMetadata(W),A=this.getParameterRef(U,{in:$,name:H});if(A)return A;let R=(Q=U===null||U===void 0?void 0:U.metadata)===null||Q===void 0?void 0:Q.param;if((R===null||R===void 0?void 0:R.name)&&R.name!==H)throw new o6("Conflicting names for parameter",{key:"name",values:[H,R.name]});if((R===null||R===void 0?void 0:R.in)&&R.in!==$)throw new o6(`Conflicting location for parameter ${(_=R.name)!==null&&_!==void 0?_:H}`,{key:"in",values:[$,R.in]});return this.generateParameter(W.openapi({param:{name:H,in:$}}))})}if((J===null||J===void 0?void 0:J.in)&&J.in!==$)throw new o6(`Conflicting location for parameter ${J.name}`,{key:"in",values:[$,J.in]});return[this.generateParameter(D.openapi({param:{in:$}}))]}generateSimpleParameter(D){var $;let F=PD.getParamMetadata(D),X=($=F===null||F===void 0?void 0:F.metadata)===null||$===void 0?void 0:$.param,J=!PD.isOptionalSchema(D)&&!D.isNullable(),G=this.generateSchemaWithRef(D);return Object.assign({schema:G,required:J},X?PD.buildParameterMetadata(X):{})}generateParameter(D){var $;let F=PD.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 s9({missingField:"name"});if(!G)throw new s9({missingField:"in",paramName:J});let Y=this.generateSimpleParameter(D);return Object.assign(Object.assign({},Y),{in:G,name:J})}generateSchemaWithMetadata(D){var $;let F=PD.unwrapChained(D),X=PD.getMetadata(D),J=PD.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)?PD.applySchemaMetadata(G,X.metadata):t6(G,i9)}constructReferencedOpenAPISchema(D){var $;let F=PD.getMetadata(D),X=PD.unwrapChained(D),J=PD.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=PD.getMetadata(D),X=PD.getRefId(D);if(!X||!this.schemaRefs[X])return this.generateSchemaWithMetadata(D);let J=this.schemaRefs[X],G={$ref:this.generateSchemaRef(X)},Y=t6(PD.buildSchemaMetadata(($=F===null||F===void 0?void 0:F.metadata)!==null&&$!==void 0?$:{}),(W,Q)=>W===void 0||iG(W,J[Q]));if(Y.type)return{allOf:[G,Y]};let B=t6(this.constructReferencedOpenAPISchema(D),(W,Q)=>W===void 0||iG(W,J[Q])),H=PD.applySchemaMetadata(B,Y);if(Object.keys(H).length>0)return{allOf:[G,H]};return G}generateSchemaWithRef(D){let $=PD.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=l9(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=d9(()=>F?this.generateInlineParameters(F,"query"):[],{location:"query"}),Y=d9(()=>X?this.generateInlineParameters(X,"path"):[],{location:"path"}),B=d9(()=>J?this.generateInlineParameters(J,"cookie"):[],{location:"cookie"}),H=d9(()=>{if(Array.isArray($))return $.flatMap((Q)=>this.generateInlineParameters(Q,"header"));let W=this.cleanParameter($);return W?this.generateInlineParameters(W,"header"):[]},{location:"header"});return[...Y,...G,...H,...B]}cleanParameter(D){if(!D)return;return GD(D,"ZodEffects")?this.cleanParameter(D._def.schema):D}generatePath(D){let{method:$,path:F,request:X,responses:J}=D,G=l9(D,["method","path","request","responses"]),Y=n9(J,(Q)=>{return this.getResponse(Q)}),B=d9(()=>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=l9(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 n9($,(X)=>this.generateSimpleParameter(X))}getBodyContent(D){return n9(D,($)=>{if(!$||!Ql($.schema))return $;let{schema:F}=$,X=l9($,["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 aM{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 $=Ul(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 rG{constructor(D){let $=new aM;this.generator=new sG(D,$)}generateDocument(D){let $=this.generator.generateDocumentData();return Object.assign(Object.assign({},D),$)}generateComponents(){return this.generator.generateComponents()}}class oM{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 Kl(D){return"type"in D&&D.type==="webhook"}class aG{constructor(D){this.definitions=D,this.webhookRefs={};let $=new oM;this.generator=new sG(this.definitions,$)}generateDocument(D){let $=this.generator.generateDocumentData();return this.definitions.filter(Kl).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 tG=(D)=>{let $=D.split("/");if($[0]==="")$.shift();return $},tM=(D)=>{let{groups:$,path:F}=Ol(D),X=tG(F);return Rl(X,$)},Ol=(D)=>{let $=[];return D=D.replace(/\{[^}]+\}/g,(F,X)=>{let J=`@${X}`;return $.push([J,F]),J}),{groups:$,path:D}},Rl=(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},C$={},eM=(D,$)=>{if(D==="*")return"*";let F=D.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(F){let X=`${D}#${$}`;if(!C$[X])if(F[2])C$[X]=$&&$[0]!==":"&&$[0]!=="*"?[X,F[1],new RegExp(`^${F[2]}(?=/${$})`)]:[D,F[1],new RegExp(`^${F[2]}$`)];else C$[X]=[D,F[1],!0];return C$[X]}return null},e6=(D,$)=>{try{return $(D)}catch{return D.replace(/(?:%[0-9A-Fa-f]{2})+/g,(F)=>{try{return $(F)}catch{return F}})}},El=(D)=>e6(D,decodeURI),eG=(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 El(H.includes("%25")?H.replace(/%25/g,"%2525"):H)}else if(J===63||J===35)break}return $.slice(F,X)};var DZ=(D)=>{let $=eG(D);return $.length>1&&$.at(-1)==="/"?$.slice(0,-1):$},P2=(D,$,...F)=>{if(F.length)$=P2($,...F);return`${D?.[0]==="/"?"":"/"}${D}${$==="/"?"":`${D?.at(-1)==="/"?"":"/"}${$?.[0]==="/"?$.slice(1):$}`}`},M$=(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)},oG=(D)=>{if(!/[%+]/.test(D))return D;if(D.indexOf("+")!==-1)D=D.replace(/\+/g," ");return D.indexOf("%")!==-1?e6(D,a9):D},$Z=(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 oG(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=oG(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=oG(W);if(F){if(!(J[H]&&Array.isArray(J[H])))J[H]=[];J[H].push(W)}else J[H]??=W}return $?J[$]:J},FZ=$Z,XZ=(D,$)=>{return $Z(D,$,!0)},a9=decodeURIComponent;var Cl=/^[\w!#$%&'*.^`|~+-]+$/,Ml=/^[ !#-:<-[\]-~]*$/,JZ=(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)},DB=(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=JZ(J.substring(0,G));if($&&$!==Y||!Cl.test(Y))continue;let B=JZ(J.substring(G+1));if(B.startsWith('"')&&B.endsWith('"'))B=B.slice(1,-1);if(Ml.test(B)){if(X[Y]=B.indexOf("%")!==-1?e6(B,a9):B,$)break}}return X};var YZ=(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 DB(X,G)[G]}if(!X)return{};return DB(X)};var Z$=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 GZ=(D,$)=>{return new Response(D,{headers:{"Content-Type":$}}).formData()};var Zl=/^application\/([a-z-\.]+\+)?json(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/,ql=/^multipart\/form-data(;\s?boundary=[a-zA-Z0-9'"()+_,\-./:=?]+)?$/,Nl=/^application\/x-www-form-urlencoded(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/,$B=(D,$)=>{return async(F,X)=>{let J={},G=F.req.header("Content-Type");switch(D){case"json":if(!G||!Zl.test(G))break;try{J=await F.req.json()}catch{throw new Z$(400,{message:"Malformed JSON in request body"})}break;case"form":{if(!G||!(ql.test(G)||Nl.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 GZ(W,G),F.req.bodyCache.formData=B}catch(W){let Q="Malformed FormData request.";throw Q+=W instanceof Error?` ${W.message}`:` ${String(W)}`,new Z$(400,{message:Q})}let H=Object.create(null);B.forEach((W,Q)=>{if(Q.endsWith("[]"))(H[Q]??=[]).push(W);else if(Array.isArray(H[Q]))H[Q].push(W);else if(Object.hasOwn(H,Q))H[Q]=[H[Q],W];else H[Q]=W}),J=H;break}case"query":J=Object.fromEntries(Object.entries(F.req.queries()).map(([B,H])=>{return H.length===1?[B,H[0]]:[B,H]}));break;case"param":J=F.req.param();break;case"header":J=F.req.header();break;case"cookie":J=YZ(F);break}let Y=await $(J,F);if(Y instanceof Response)return Y;return F.req.addValidatedData(D,Y),await X()}};function Pl(D,$,F,X){return $B(D,async(J,G)=>{let Y=J;if(D==="header"&&"_def"in $||D==="header"&&"_zod"in $){let H=Object.keys("in"in $?$.in.shape:$.shape),W=Object.fromEntries(H.map((Q)=>[Q.toLowerCase(),Q]));Y=Object.fromEntries(Object.entries(J).map(([Q,_])=>[W[Q]||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 S1=Pl;var FB=(D,$,F)=>{return(X,J)=>{let G=-1;return Y(0);async function Y(B){if(B<=G)throw Error("next() called multiple times");G=B;let H,W=!1,Q;if(D[B])Q=D[B][0][0],X.req.routeIndex=B;else Q=B===D.length&&J||void 0;if(Q)try{H=await Q(X,()=>Y(B+1))}catch(_){if(_ instanceof Error&&$)X.error=_,H=await $(_,X),W=!0;else throw _}else if(X.finalized===!1&&F)H=await F(X);if(H&&(X.finalized===!1||W))X.res=H;return X}}};var BZ=Symbol();var HZ=async(D,$=Object.create(null))=>{let{all:F=!1,dot:X=!1}=$,G=(D instanceof q$?D.raw.headers:D.headers).get("Content-Type");if(G?.startsWith("multipart/form-data")||G?.startsWith("application/x-www-form-urlencoded"))return Ll(D,{all:F,dot:X});return{}};async function Ll(D,$){let F=await D.formData();if(F)return jl(F,$);return{}}function jl(D,$){let F=Object.create(null);if(D.forEach((X,J)=>{if(!($.all||J.endsWith("[]")))F[J]=X;else zl(F,J,X)}),$.dot)Object.entries(F).forEach(([X,J])=>{if(X.includes("."))Il(F,X,J),delete F[X]});return F}var zl=(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]},Il=(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 WZ=(D)=>e6(D,a9),q$=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)?WZ(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)?WZ(X):X}return D}#J(D){return this.#$[1]?this.#$[1][D]:D}query(D){return FZ(this.url,D)}queries(D){return XZ(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 HZ(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[BZ](){return this.#$}get matchedRoutes(){return this.#$[0].map(([[,D]])=>D)}get routePath(){return this.#$[0].map(([[,D]])=>D)[this.routeIndex].path}};var N$={Stringify:1,BeforeStream:2,Stream:3},Tl=(D,$)=>{let F=new String(D);return F.isEscaped=!0,F.callbacks=$,F};var o9=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)=>o9(H,$,!1,X,J))).then(()=>J[0]));if(F)return Tl(await Y,G);else return Y};var VZ="text/plain; charset=UTF-8",XB=(D,$)=>{return{"Content-Type":D,...$}},t9=(D,$)=>new Response(D,$),QZ=class{#D;#$;env={};#X;finalized=!1;error;#Y;#J;#F;#W;#H;#B;#G;#Q;#_;constructor(D,$){if(this.#D=D,$)this.#J=$.executionCtx,this.env=$.env,this.#B=$.notFoundHandler,this.#_=$.path,this.#Q=$.matchResult}get req(){return this.#$??=new q$(this.#D,this.#_,this.#Q),this.#$}get event(){if(this.#J&&"respondWith"in this.#J)return this.#J;else throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#J)return this.#J;else throw Error("This context has no ExecutionContext")}get res(){return this.#F||=t9(null,{headers:this.#G??=new Headers})}set res(D){if(this.#F&&D){D=t9(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=t9(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 t9(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,$,XB(VZ,F))};json=(D,$,F)=>{return this.#V(JSON.stringify(D),$,XB("application/json",F))};html=(D,$,F)=>{let X=(J)=>this.#V(J,$,XB("text/html; charset=UTF-8",F));return typeof D==="object"?o9(D,N$.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??=()=>t9(),this.#B(this)}};var ZD="ALL",_Z="all",UZ=["get","post","put","delete","options","patch"],P$="Can not add a route since the matcher is already built.",L$=class extends Error{};var AZ="__COMPOSED_HANDLER";var wl=(D)=>{return D.text("404 Not Found",404)},KZ=(D,$)=>{if("getResponse"in D){let F=D.getResponse();return $.newResponse(F.body,F)}return console.error(D),$.text("Internal Server Error",500)},OZ=class D{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#D="/";routes=[];constructor($={}){[...UZ,_Z].forEach((G)=>{this[G]=(Y,...B)=>{if(typeof Y==="string")this.#D=Y;else this.#Y(G,this.#D,Y);return B.forEach((H)=>{this.#Y(G,this.#D,H)}),this}}),this.on=(G,Y,...B)=>{for(let H of[Y].flat()){this.#D=H;for(let W of[G].flat())B.map((Q)=>{this.#Y(W.toUpperCase(),this.#D,Q)})}return this},this.use=(G,...Y)=>{if(typeof G==="string")this.#D=G;else this.#D="*",Y.unshift(G);return Y.forEach((B)=>{this.#Y(ZD,this.#D,B)}),this};let{strict:X,...J}=$;Object.assign(this,J),this.getPath=X??!0?$.getPath??eG:DZ}#$(){let $=new D({router:this.router,getPath:this.getPath});return $.errorHandler=this.errorHandler,$.#X=this.#X,$.routes=this.routes,$}#X=wl;errorHandler=KZ;route($,F){let X=this.basePath($);return F.routes.map((J)=>{let G;if(F.errorHandler===KZ)G=J.handler;else G=async(Y,B)=>(await FB([],F.errorHandler)(Y,()=>J.handler(Y,B))).res,G[AZ]=J.handler;X.#Y(J.method,J.path,G)}),this}basePath($){let F=this.#$();return F._basePath=P2(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=P2(this._basePath,$),W=H==="/"?0:H.length;return(Q)=>{let _=new URL(Q.url);return _.pathname=_.pathname.slice(W)||"/",new Request(_,Q)}})();let B=async(H,W)=>{let Q=await F(J(H.req.raw),...Y(H));if(Q)return Q;await W()};return this.#Y(ZD,P2($,"*"),B),this}#Y($,F,X){$=$.toUpperCase(),F=P2(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 QZ($,{path:G,matchResult:Y,env:X,executionCtx:F,notFoundHandler:this.#X});if(Y[0].length===1){let W;try{W=Y[0][0][0][0](B,async()=>{B.res=await this.#X(B)})}catch(Q){return this.#J(Q,B)}return W instanceof Promise?W.then((Q)=>Q||(B.finalized?B.res:this.#X(B))).catch((Q)=>this.#J(Q,B)):W??this.#X(B)}let H=FB(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${P2("/",$)}`,F),X,J)};fire=()=>{addEventListener("fetch",($)=>{$.respondWith(this.#F($.request,$,void 0,$.request.method))})}};var e9=[];function j$(D,$){let F=this.buildAllMatchers(),X=(J,G)=>{let Y=F[J]||F[ZD],B=Y[2][G];if(B)return B;let H=G.match(Y[0]);if(!H)return[[],e9];let W=H.indexOf("",1);return[Y[1][W],H]};return this.match=X,X(D,$)}var z$="[^/]+",D7=".*",$7="(?:|/.*)",b1=Symbol(),Sl=new Set(".\\+*[^]$()");function bl(D,$){if(D.length===1)return $.length===1?D<$?-1:1:-1;if($.length===1)return 1;if(D===D7||D===$7)return 1;else if($===D7||$===$7)return-1;if(D===z$)return 1;else if($===z$)return-1;return D.length===$.length?D<$?-1:1:$.length-D.length}var RZ=class D{#D;#$;#X=Object.create(null);insert($,F,X,J,G){if($.length===0){if(this.#D!==void 0)throw b1;if(G)return;this.#D=F;return}let[Y,...B]=$,H=Y==="*"?B.length===0?["","",D7]:["","",z$]:Y==="/*"?["","",$7]:Y.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),W;if(H){let Q=H[1],_=H[2]||z$;if(Q&&H[2]){if(_===".*")throw b1;if(_=_.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(_))throw b1}if(W=this.#X[_],!W){if(Object.keys(this.#X).some((U)=>U!==D7&&U!==$7))throw b1;if(G)return;if(W=this.#X[_]=new D,Q!=="")W.#$=J.varIndex++}if(!G&&Q!=="")X.push([Q,W.#$])}else if(W=this.#X[Y],!W){if(Object.keys(this.#X).some((Q)=>Q.length>1&&Q!==D7&&Q!==$7))throw b1;if(G)return;W=this.#X[Y]=new D}W.insert(B,F,X,J,G)}buildRegExpStr(){let F=Object.keys(this.#X).sort(bl).map((X)=>{let J=this.#X[X];return(typeof J.#$==="number"?`(${X})@${J.#$}`:Sl.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 EZ=class{#D={varIndex:0};#$=new RZ;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 fl=[/^$/,[],Object.create(null)],CZ=Object.create(null);function MZ(D){return CZ[D]??=new RegExp(D==="*"?"":`^${D.replace(/\/\*$|([.\\+*[^\]$()])/g,($,F)=>F?`\\${F}`:"(?:|/.*)")}$`)}function kl(){CZ=Object.create(null)}function vl(D){let $=new EZ,F=[];if(D.length===0)return fl;let X=D.map((W)=>[!/\*|\/:/.test(W[0]),...W]).sort(([W,Q],[_,U])=>W?1:_?-1:Q.length-U.length),J=Object.create(null);for(let W=0,Q=-1,_=X.length;W<_;W++){let[U,A,R]=X[W];if(U)J[A]=[R.map(([K])=>[K,Object.create(null)]),e9];else Q++;let O;try{O=$.insert(A,Q,U)}catch(K){throw K===b1?new L$(A):K}if(U)continue;F[Q]=R.map(([K,E])=>{let q=Object.create(null);E-=1;for(;E>=0;E--){let[N,S]=O[E];q[N]=S}return[K,q]})}let[G,Y,B]=$.buildRegExp();for(let W=0,Q=F.length;W<Q;W++)for(let _=0,U=F[W].length;_<U;_++){let A=F[W][_]?.[1];if(!A)continue;let R=Object.keys(A);for(let O=0,K=R.length;O<K;O++)A[R[O]]=B[A[R[O]]]}let H=[];for(let W in Y)H[W]=F[Y[W]];return[G,H,J]}function D3(D,$){if(!D)return;for(let F of Object.keys(D).sort((X,J)=>J.length-X.length))if(MZ(F).test($))return[...D[F]];return}var I$=class{name="RegExpRouter";#D;#$;constructor(){this.#D={[ZD]:Object.create(null)},this.#$={[ZD]:Object.create(null)}}add(D,$,F){let X=this.#D,J=this.#$;if(!X||!J)throw Error(P$);if(!X[D])[X,J].forEach((B)=>{B[D]=Object.create(null),Object.keys(B[ZD]).forEach((H)=>{B[D][H]=[...B[ZD][H]]})});if($==="/*")$="*";let G=($.match(/\/:/g)||[]).length;if(/\*$/.test($)){let B=MZ($);if(D===ZD)Object.keys(X).forEach((H)=>{X[H][$]||=D3(X[H],$)||D3(X[ZD],$)||[]});else X[D][$]||=D3(X[D],$)||D3(X[ZD],$)||[];Object.keys(X).forEach((H)=>{if(D===ZD||D===H)Object.keys(X[H]).forEach((W)=>{B.test(W)&&X[H][W].push([F,G])})}),Object.keys(J).forEach((H)=>{if(D===ZD||D===H)Object.keys(J[H]).forEach((W)=>B.test(W)&&J[H][W].push([F,G]))});return}let Y=M$($)||[$];for(let B=0,H=Y.length;B<H;B++){let W=Y[B];Object.keys(J).forEach((Q)=>{if(D===ZD||D===Q)J[Q][W]||=[...D3(X[Q],W)||D3(X[ZD],W)||[]],J[Q][W].push([F,G-H+B+1])})}}match=j$;buildAllMatchers(){let D=Object.create(null);return Object.keys(this.#$).concat(Object.keys(this.#D)).forEach(($)=>{D[$]||=this.#X($)}),this.#D=this.#$=void 0,kl(),D}#X(D){let $=[],F=D===ZD;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!==ZD)$.push(...Object.keys(X[ZD]).map((G)=>[G,X[ZD][G]]))}),!F)return null;else return vl($)}};var hl=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[ZD],G={};for(let Y in J[2])G[Y]=[J[2][Y][0].slice(),e9];this.#D[D]=[J[0],J[1].map((Y)=>Array.isArray(Y)?Y.slice():0),G]}if($==="/*"||$==="*"){let J=[F,{}];if(D===ZD)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===ZD)for(let Y in this.#D)this.#Y(Y,$,F,J,G);else this.#Y(D,$,F,J,G)}buildAllMatchers(){return this.#D}match=j$};var JB=class{name="SmartRouter";#D=[];#$=[];constructor(D){this.#D=D.routers}add(D,$,F){if(!this.#$)throw Error(P$);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 L$)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 F7=Object.create(null),xl=(D)=>{for(let $ in D)return!0;return!1},ZZ=class D{#D;#$;#X;#Y=0;#J=F7;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],Q=G[B+1],_=eM(W,Q),U=Array.isArray(_)?_[0]:W;if(U in J.#$){if(J=J.#$[U],_)Y.push(_[1]);continue}if(J.#$[U]=new D,_)J.#X.push(_),Y.push(_[1]);J=J.#$[U]}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[ZD],Q={};if(W!==void 0){if(W.params=Object.create(null),$.push(W),J!==F7||G&&G!==F7)for(let _=0,U=W.possibleKeys.length;_<U;_++){let A=W.possibleKeys[_],R=Q[W.score];W.params[A]=G?.[A]&&!R?G[A]:J[A]??G?.[A],Q[W.score]=!0}}}}search($,F){let X=[];this.#J=F7;let G=[this],Y=tG(F),B=[],H=Y.length,W=null;for(let Q=0;Q<H;Q++){let _=Y[Q],U=Q===H-1,A=[];for(let O=0,K=G.length;O<K;O++){let E=G[O],q=E.#$[_];if(q)if(q.#J=E.#J,U){if(q.#$["*"])this.#F(X,q.#$["*"],$,E.#J);this.#F(X,q,$,E.#J)}else A.push(q);for(let N=0,S=E.#X.length;N<S;N++){let b=E.#X[N],P=E.#J===F7?{}:{...E.#J};if(b==="*"){let VD=E.#$["*"];if(VD)this.#F(X,VD,$,E.#J),VD.#J=P,A.push(VD);continue}let[T,j,s]=b;if(!_&&!(s instanceof RegExp))continue;let UD=E.#$[T];if(s instanceof RegExp){if(W===null){W=Array(H);let rD=F[0]==="/"?1:0;for(let L2=0;L2<H;L2++)W[L2]=rD,rD+=Y[L2].length+1}let VD=F.substring(W[Q]),$D=s.exec(VD);if($D){if(P[j]=$D[0],this.#F(X,UD,$,E.#J,P),xl(UD.#$)){UD.#J=P;let rD=$D[0].match(/\//)?.length??0;(B[rD]||=[]).push(UD)}continue}}if(s===!0||s.test(_))if(P[j]=_,U){if(this.#F(X,UD,$,P,E.#J),UD.#$["*"])this.#F(X,UD.#$["*"],$,P,E.#J)}else UD.#J=P,A.push(UD)}}let R=B.shift();G=R?A.concat(R):A}if(X.length>1)X.sort((Q,_)=>{return Q.score-_.score});return[X.map(({handler:Q,params:_})=>[Q,_])]}};var YB=class{name="TrieRouter";#D;constructor(){this.#D=new ZZ}add(D,$,F){let X=M$($);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 GB=class extends OZ{constructor(D={}){super(D);this.router=D.router??new JB({routers:[new I$,new YB]})}};yD();var o0=class D extends GB{openAPIRegistry;defaultHook;constructor($){super($);this.openAPIRegistry=new nG,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=S1("query",X.request.query,G);Y.push(W)}if(X.request?.params){let W=S1("param",X.request.params,G);Y.push(W)}if(X.request?.headers){let W=S1("header",X.request.headers,G);Y.push(W)}if(X.request?.cookies){let W=S1("cookie",X.request.cookies,G);Y.push(W)}let B=X.request?.body?.content;if(B)for(let W of Object.keys(B)){if(!B[W])continue;let Q=B[W].schema;if(!(Q instanceof YD))continue;if(NZ(W)){let _=S1("json",Q,G);if(X.request?.body?.required)Y.push(_);else{let U=async(A,R)=>{if(A.req.header("content-type")){if(NZ(A.req.header("content-type")))return await _(A,R)}A.req.addValidatedData("json",{}),await R()};Y.push(U)}}if(PZ(W)){let _=S1("form",Q,G);if(X.request?.body?.required)Y.push(_);else{let U=async(A,R)=>{if(A.req.header("content-type")){if(PZ(A.req.header("content-type")))return await _(A,R)}A.req.addValidatedData("form",{}),await R()};Y.push(U)}}}let H=$?Array.isArray($)?$:[$]:[];return this.on([X.method],X.path.replaceAll(/\/{(.+?)}/g,"/:$1"),...H,...Y,J),this};getOpenAPIDocument=($)=>{let X=new rG(this.openAPIRegistry.definitions).generateDocument($);return this._basePath?qZ(X,this._basePath):X};getOpenAPI31Document=($)=>{let X=new aG(this.openAPIRegistry.definitions).generateDocument($);return this._basePath?qZ(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:P2(X,F._basePath.replaceAll(/:([^\/]+)/g,"{$1}"),J.route.path)});return}case"webhook":{this.openAPIRegistry.registerWebhook({...J.webhook,path:P2(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})}};bM(V);function qZ(D,$){let F={};return Object.keys(D.paths).forEach((X)=>{F[P2($.replaceAll(/:([^\/]+)/g,"{$1}"),X)]=D.paths[X]}),{...D,paths:F}}function NZ(D){return/^application\/([a-z-\.]+\+)?json/.test(D)}function PZ(D){return D.startsWith("multipart/form-data")||D.startsWith("application/x-www-form-urlencoded")}yD();var LZ=[["--theme-","--scalar-"],["--sidebar-","--scalar-sidebar-"]],gl=LZ.map(([D])=>D);function BB(D){if(!gl.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"),LZ.reduce((F,[X,J])=>F.replaceAll(X,J),D)}var yl=V.enum(["alternate","default","moon","purple","solarized","bluePlanet","deepSpace","saturn","kepler","elysiajs","fastify","mars","none"]),ul=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"]),ml=V.enum(["adonisjs","docusaurus","dotnet","elysiajs","express","fastapi","fastify","go","hono","html","laravel","litestar","nestjs","nextjs","nitro","nuxt","platformatic","react","rust","vue"]).nullable(),WB=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()}),pl=V.object({basePath:V.string()}),zZ=V.object({authentication:V.any().optional(),baseServerURL:V.string().optional(),hideClientButton:V.boolean().optional().default(!1).catch(!1),proxyUrl:V.string().optional(),searchHotKey:ul.optional(),servers:V.array(V.any()).optional(),showSidebar:V.boolean().optional().default(!0).catch(!0),spec:WB.optional(),theme:yl.optional().default("default").catch("default"),_integration:ml.optional()}),jZ="https://api.scalar.com/request-proxy",HB="https://proxy.scalar.com",IZ=zZ.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:pl.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()})),cl=IZ.merge(V.object({spec:V.object({sources:V.array(WB)})})),TZ=(D)=>{let $={...D};if($.customCss)$.customCss=BB($.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===jZ)console.warn(`[DEPRECATED] Warning: configuration.proxyUrl points to our old proxy (${jZ}).`),console.warn(`[DEPRECATED] We are overwriting the value and use the new proxy URL (${HB}) instead.`),console.warn(`[DEPRECATED] Action Required: You should manually update your configuration to use the new URL (${HB}). Read more: https://github.com/scalar/scalar`),$.proxyUrl=HB;return $},VB=IZ.transform(TZ),dl=cl.transform(TZ);yD();var QB=V.object({cdn:V.string().optional().default("https://cdn.jsdelivr.net/npm/@scalar/api-reference"),pageTitle:V.string().optional().default("Scalar API Reference")});var wZ=(D,$="")=>{let{cdn:F,pageTitle:X,...J}=D,G=QB.parse({cdn:F,pageTitle:X,customTheme:$}),Y=VB.parse(J);return`
349
+ `);let $="<workerId>",F=H2($),X=S7($),J=IM.join(D.home,".env"),G=IM.join(D.home,"worker.db"),Y=[["AGENT.md",OF($)],["SOUL.md",RF($)],["USER.md",EF($)],["MEMORY.md",KF($)],["ROLLUP.md",AW($)],["mcp.json",KW($)],["worker.db",G],["local/.env",J],["workspaces/",X],["worker home",F]];for(let[B,H]of Y){let Q=Ql(H)?"\u2713":"\xB7";TM.stdout.write(` ${Q} ${B.padEnd(14)} ${H}
350
+ `)}return 0}import X7 from"process";function l9(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 _l(D){return"_def"in D}function c9(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 bM(D){if(typeof D.ZodType.prototype.openapi<"u")return;D.ZodType.prototype.openapi=function(J,G){var Y,B,H,W,Q,_;let U=typeof J==="string"?G:J,A=U!==null&&U!==void 0?U:{},{param:R}=A,O=l9(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),E=Object.assign(Object.assign(Object.assign({},(B=this._def.openapi)===null||B===void 0?void 0:B.metadata),O),((W=(H=this._def.openapi)===null||H===void 0?void 0:H.metadata)===null||W===void 0?void 0:W.param)||R?{param:Object.assign(Object.assign({},(_=(Q=this._def.openapi)===null||Q===void 0?void 0:Q.metadata)===null||_===void 0?void 0:_.param),R)}:void 0),q=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(E).length>0?{metadata:E}:void 0)}));if(GD(this,"ZodObject")){let N=this.extend;q.extend=function(...S){var b,L,z,j,d,VD,QD;let $D=N.apply(this,S);return $D._def.openapi={_internal:{extendedFrom:((L=(b=this._def.openapi)===null||b===void 0?void 0:b._internal)===null||L===void 0?void 0:L.refId)?{refId:(j=(z=this._def.openapi)===null||z===void 0?void 0:z._internal)===null||j===void 0?void 0:j.refId,schema:this}:(VD=(d=this._def.openapi)===null||d===void 0?void 0:d._internal)===null||VD===void 0?void 0:VD.extendedFrom},metadata:(QD=$D._def.openapi)===null||QD===void 0?void 0:QD.metadata},$D}}return q},c9(D,"optional"),c9(D,"nullable"),c9(D,"default"),c9(D,"transform"),c9(D,"refine");let $=D.ZodObject.prototype.deepPartial;D.ZodObject.prototype.deepPartial=function(){let J=this._def.shape(),G=$.apply(this),Y=G._def.shape();return Object.entries(Y).forEach(([B,H])=>{var W,Q;H._def.openapi=(Q=(W=J[B])===null||W===void 0?void 0:W._def)===null||Q===void 0?void 0:Q.openapi}),G._def.openapi=void 0,G};let F=D.ZodObject.prototype.pick;D.ZodObject.prototype.pick=function(...J){let G=F.apply(this,J);return G._def.openapi=void 0,G};let X=D.ZodObject.prototype.omit;D.ZodObject.prototype.omit=function(...J){let G=X.apply(this,J);return G._def.openapi=void 0,G}}function E$(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)=>E$(D[X],$[X]))}class fM{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)=>E$(J,D)))F.push(D)}contains(D){let $=this.hashCodeOf(D),F=this.buckets.get($);if(!F)return!1;return F.some((X)=>E$(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 i9(D){return D===void 0}function n9(D,$){let F={};return Object.entries(D).forEach(([X,J])=>{F[X]=$(J)}),F}function Ul(D,$){let F={};return Object.entries(D).forEach(([X,J])=>{if(!$.some((G)=>G===X))F[X]=J}),F}function t6(D,$){let F={};return Object.entries(D).forEach(([X,J])=>{if(!$(J,X))F[X]=J}),F}function SM(D){return D.filter(($)=>!i9($))}var nG=E$;function Al(D){let $=new fM;return D.forEach((F)=>$.put(F)),[...$.values()]}function kM(D){return typeof D==="string"}class sG{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 r9{constructor(D){this.message=D}}class o6 extends r9{constructor(D,$){super(D);this.data=$}}class s9 extends r9{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 d9(D,$){try{return D()}catch(F){if(F instanceof s9)throw new s9(Object.assign(Object.assign({},F.data),$));throw F}}class vM extends r9{constructor(D){super("Unknown zod object type, please specify `type` and other OpenAPI props using `ZodSchema.openapi`.");this.data=D}}class PD{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 t6(Ul(D,["param"]),i9)}static buildParameterMetadata(D){return t6(D,i9)}static applySchemaMetadata(D,$){return t6(Object.assign(Object.assign({},D),this.buildSchemaMetadata($)),i9)}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 hM{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 xM{transform(D){return Object.assign(Object.assign({},D("string")),{pattern:"^d+$"})}}class gM{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)=>PD.getRefId(J)===void 0))return;let X={};return D.forEach((J)=>{var G;let Y=PD.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(kM).forEach((Q)=>{X[Q]=F(Y)});return}let H=B===null||B===void 0?void 0:B._def.value;if(typeof H!=="string")throw Error(`Discriminator ${$} could not be found in one of the values of a discriminated union`);X[H]=F(Y)}),{propertyName:$,mapping:X}}}class yM{transform(D,$){return Object.assign(Object.assign({},$("string")),{enum:D._def.values})}}class uM{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 mM{transform(D,$){return Object.assign(Object.assign({},$(typeof D._def.value)),{enum:[D._def.value]})}}function Kl(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 pM{transform(D,$){let{type:F,values:X}=Kl(D._def.values);if(F==="mixed")throw new r9("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 cM{transform(D,$,F){return Object.assign(Object.assign({},$(D.isInt?"integer":"number")),F(D._def.checks))}}class dM{transform(D,$,F,X){var J;let G=(J=PD.getInternalMetadata(D))===null||J===void 0?void 0:J.extendedFrom,Y=this.requiredKeysOf(D),B=n9(D._def.shape(),X);if(!G)return Object.assign(Object.assign(Object.assign(Object.assign({},F("object")),{properties:B,default:$}),Y.length>0?{required:Y}:{}),this.generateAdditionalProperties(D,X));let H=G.schema;X(H);let W=this.requiredKeysOf(H),Q=n9(H===null||H===void 0?void 0:H._def.shape(),X),_=Object.fromEntries(Object.entries(B).filter(([R,O])=>{return!nG(Q[R],O)})),U=Y.filter((R)=>!W.includes(R)),A=Object.assign(Object.assign(Object.assign(Object.assign({},F("object")),{default:$,properties:_}),U.length>0?{required:U}:{}),this.generateAdditionalProperties(D,X));return{allOf:[{$ref:`#/components/schemas/${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])=>!PD.isOptionalSchema(F)).map(([$,F])=>$)}}class lM{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(kM).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 iM{transform(D,$){var F,X,J;let G=this.getZodStringCheck(D,"regex"),Y=(F=this.getZodStringCheck(D,"length"))===null||F===void 0?void 0:F.value,B=Number.isFinite(D.minLength)?(X=D.minLength)!==null&&X!==void 0?X:void 0:void 0,H=Number.isFinite(D.maxLength)?(J=D.maxLength)!==null&&J!==void 0?J:void 0:void 0;return Object.assign(Object.assign({},$("string")),{minLength:Y!==null&&Y!==void 0?Y:B,maxLength:Y!==null&&Y!==void 0?Y:H,format:this.mapStringFormat(D),pattern:G===null||G===void 0?void 0:G.regex.source})}mapStringFormat(D){if(D.isUUID)return"uuid";if(D.isEmail)return"email";if(D.isURL)return"uri";if(D.isDate)return"date";if(D.isDatetime)return"date-time";if(D.isCUID)return"cuid";if(D.isCUID2)return"cuid2";if(D.isULID)return"ulid";if(D.isIP)return"ip";if(D.isEmoji)return"emoji";return}getZodStringCheck(D,$){return D._def.checks.find((F)=>{return F.kind===$})}}class nM{constructor(D){this.versionSpecifics=D}transform(D,$,F){let{items:X}=D._def,J=X.map(F);return Object.assign(Object.assign({},$("array")),this.versionSpecifics.mapTupleItems(J))}}class sM{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 rM{constructor(D){this.versionSpecifics=D,this.objectTransformer=new dM,this.stringTransformer=new iM,this.numberTransformer=new cM,this.bigIntTransformer=new xM,this.literalTransformer=new mM,this.enumTransformer=new yM,this.nativeEnumTransformer=new pM,this.arrayTransformer=new hM,this.unionTransformer=new sM,this.discriminatedUnionTransformer=new gM,this.intersectionTransformer=new uM,this.recordTransformer=new lM,this.tupleTransformer=new nM(D)}transform(D,$,F,X,J){if(GD(D,"ZodNull"))return this.versionSpecifics.nullType;if(GD(D,"ZodUnknown")||GD(D,"ZodAny"))return this.versionSpecifics.mapNullableType(void 0,$);if(GD(D,"ZodObject"))return this.objectTransformer.transform(D,J,(Y)=>this.versionSpecifics.mapNullableType(Y,$),F);let G=this.transformSchemaWithoutDefault(D,$,F,X);return Object.assign(Object.assign({},G),{default:J})}transformSchemaWithoutDefault(D,$,F,X){if(GD(D,"ZodUnknown")||GD(D,"ZodAny"))return this.versionSpecifics.mapNullableType(void 0,$);if(GD(D,"ZodString"))return this.stringTransformer.transform(D,(G)=>this.versionSpecifics.mapNullableType(G,$));if(GD(D,"ZodNumber"))return this.numberTransformer.transform(D,(G)=>this.versionSpecifics.mapNullableType(G,$),(G)=>this.versionSpecifics.getNumberChecks(G));if(GD(D,"ZodBigInt"))return this.bigIntTransformer.transform((G)=>this.versionSpecifics.mapNullableType(G,$));if(GD(D,"ZodBoolean"))return this.versionSpecifics.mapNullableType("boolean",$);if(GD(D,"ZodLiteral"))return this.literalTransformer.transform(D,(G)=>this.versionSpecifics.mapNullableType(G,$));if(GD(D,"ZodEnum"))return this.enumTransformer.transform(D,(G)=>this.versionSpecifics.mapNullableType(G,$));if(GD(D,"ZodNativeEnum"))return this.nativeEnumTransformer.transform(D,(G)=>this.versionSpecifics.mapNullableType(G,$));if(GD(D,"ZodArray"))return this.arrayTransformer.transform(D,(G)=>this.versionSpecifics.mapNullableType(G,$),F);if(GD(D,"ZodTuple"))return this.tupleTransformer.transform(D,(G)=>this.versionSpecifics.mapNullableType(G,$),F);if(GD(D,"ZodUnion"))return this.unionTransformer.transform(D,(G)=>this.versionSpecifics.mapNullableOfArray(G,$),F);if(GD(D,"ZodDiscriminatedUnion"))return this.discriminatedUnionTransformer.transform(D,$,(G)=>this.versionSpecifics.mapNullableOfArray(G,$),F,X);if(GD(D,"ZodIntersection"))return this.intersectionTransformer.transform(D,$,(G)=>this.versionSpecifics.mapNullableOfArray(G,$),F);if(GD(D,"ZodRecord"))return this.recordTransformer.transform(D,(G)=>this.versionSpecifics.mapNullableType(G,$),F);if(GD(D,"ZodDate"))return this.versionSpecifics.mapNullableType("string",$);let J=PD.getRefId(D);throw new vM({currentSchema:D._def,schemaName:J})}}class rG{constructor(D,$){this.definitions=D,this.versionSpecifics=$,this.schemaRefs={},this.paramRefs={},this.pathRefs={},this.rawComponents=[],this.openApiTransformer=new rM($),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 $=PD.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 o6(`Conflicting location for parameter ${H.name}`,{key:"in",values:SM([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 o6("Conflicting names for parameter",{key:"name",values:SM([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=PD.getMetadata(D),J=(F=X===null||X===void 0?void 0:X.metadata)===null||F===void 0?void 0:F.param,G=this.getParameterRef(X,{in:$});if(G)return[G];if(GD(D,"ZodObject")){let Y=D._def.shape();return Object.entries(Y).map(([H,W])=>{var Q,_;let U=PD.getMetadata(W),A=this.getParameterRef(U,{in:$,name:H});if(A)return A;let R=(Q=U===null||U===void 0?void 0:U.metadata)===null||Q===void 0?void 0:Q.param;if((R===null||R===void 0?void 0:R.name)&&R.name!==H)throw new o6("Conflicting names for parameter",{key:"name",values:[H,R.name]});if((R===null||R===void 0?void 0:R.in)&&R.in!==$)throw new o6(`Conflicting location for parameter ${(_=R.name)!==null&&_!==void 0?_:H}`,{key:"in",values:[$,R.in]});return this.generateParameter(W.openapi({param:{name:H,in:$}}))})}if((J===null||J===void 0?void 0:J.in)&&J.in!==$)throw new o6(`Conflicting location for parameter ${J.name}`,{key:"in",values:[$,J.in]});return[this.generateParameter(D.openapi({param:{in:$}}))]}generateSimpleParameter(D){var $;let F=PD.getParamMetadata(D),X=($=F===null||F===void 0?void 0:F.metadata)===null||$===void 0?void 0:$.param,J=!PD.isOptionalSchema(D)&&!D.isNullable(),G=this.generateSchemaWithRef(D);return Object.assign({schema:G,required:J},X?PD.buildParameterMetadata(X):{})}generateParameter(D){var $;let F=PD.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 s9({missingField:"name"});if(!G)throw new s9({missingField:"in",paramName:J});let Y=this.generateSimpleParameter(D);return Object.assign(Object.assign({},Y),{in:G,name:J})}generateSchemaWithMetadata(D){var $;let F=PD.unwrapChained(D),X=PD.getMetadata(D),J=PD.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)?PD.applySchemaMetadata(G,X.metadata):t6(G,i9)}constructReferencedOpenAPISchema(D){var $;let F=PD.getMetadata(D),X=PD.unwrapChained(D),J=PD.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=PD.getMetadata(D),X=PD.getRefId(D);if(!X||!this.schemaRefs[X])return this.generateSchemaWithMetadata(D);let J=this.schemaRefs[X],G={$ref:this.generateSchemaRef(X)},Y=t6(PD.buildSchemaMetadata(($=F===null||F===void 0?void 0:F.metadata)!==null&&$!==void 0?$:{}),(W,Q)=>W===void 0||nG(W,J[Q]));if(Y.type)return{allOf:[G,Y]};let B=t6(this.constructReferencedOpenAPISchema(D),(W,Q)=>W===void 0||nG(W,J[Q])),H=PD.applySchemaMetadata(B,Y);if(Object.keys(H).length>0)return{allOf:[G,H]};return G}generateSchemaWithRef(D){let $=PD.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=l9(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=d9(()=>F?this.generateInlineParameters(F,"query"):[],{location:"query"}),Y=d9(()=>X?this.generateInlineParameters(X,"path"):[],{location:"path"}),B=d9(()=>J?this.generateInlineParameters(J,"cookie"):[],{location:"cookie"}),H=d9(()=>{if(Array.isArray($))return $.flatMap((Q)=>this.generateInlineParameters(Q,"header"));let W=this.cleanParameter($);return W?this.generateInlineParameters(W,"header"):[]},{location:"header"});return[...Y,...G,...H,...B]}cleanParameter(D){if(!D)return;return GD(D,"ZodEffects")?this.cleanParameter(D._def.schema):D}generatePath(D){let{method:$,path:F,request:X,responses:J}=D,G=l9(D,["method","path","request","responses"]),Y=n9(J,(Q)=>{return this.getResponse(Q)}),B=d9(()=>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=l9(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 n9($,(X)=>this.generateSimpleParameter(X))}getBodyContent(D){return n9(D,($)=>{if(!$||!_l($.schema))return $;let{schema:F}=$,X=l9($,["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 aM{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 $=Al(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 aG{constructor(D){let $=new aM;this.generator=new rG(D,$)}generateDocument(D){let $=this.generator.generateDocumentData();return Object.assign(Object.assign({},D),$)}generateComponents(){return this.generator.generateComponents()}}class oM{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 Ol(D){return"type"in D&&D.type==="webhook"}class oG{constructor(D){this.definitions=D,this.webhookRefs={};let $=new oM;this.generator=new rG(this.definitions,$)}generateDocument(D){let $=this.generator.generateDocumentData();return this.definitions.filter(Ol).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 eG=(D)=>{let $=D.split("/");if($[0]==="")$.shift();return $},tM=(D)=>{let{groups:$,path:F}=Rl(D),X=eG(F);return El(X,$)},Rl=(D)=>{let $=[];return D=D.replace(/\{[^}]+\}/g,(F,X)=>{let J=`@${X}`;return $.push([J,F]),J}),{groups:$,path:D}},El=(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},C$={},eM=(D,$)=>{if(D==="*")return"*";let F=D.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(F){let X=`${D}#${$}`;if(!C$[X])if(F[2])C$[X]=$&&$[0]!==":"&&$[0]!=="*"?[X,F[1],new RegExp(`^${F[2]}(?=/${$})`)]:[D,F[1],new RegExp(`^${F[2]}$`)];else C$[X]=[D,F[1],!0];return C$[X]}return null},e6=(D,$)=>{try{return $(D)}catch{return D.replace(/(?:%[0-9A-Fa-f]{2})+/g,(F)=>{try{return $(F)}catch{return F}})}},Cl=(D)=>e6(D,decodeURI),DB=(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 Cl(H.includes("%25")?H.replace(/%25/g,"%2525"):H)}else if(J===63||J===35)break}return $.slice(F,X)};var DZ=(D)=>{let $=DB(D);return $.length>1&&$.at(-1)==="/"?$.slice(0,-1):$},P2=(D,$,...F)=>{if(F.length)$=P2($,...F);return`${D?.[0]==="/"?"":"/"}${D}${$==="/"?"":`${D?.at(-1)==="/"?"":"/"}${$?.[0]==="/"?$.slice(1):$}`}`},M$=(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)},tG=(D)=>{if(!/[%+]/.test(D))return D;if(D.indexOf("+")!==-1)D=D.replace(/\+/g," ");return D.indexOf("%")!==-1?e6(D,a9):D},$Z=(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 tG(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=tG(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=tG(W);if(F){if(!(J[H]&&Array.isArray(J[H])))J[H]=[];J[H].push(W)}else J[H]??=W}return $?J[$]:J},FZ=$Z,XZ=(D,$)=>{return $Z(D,$,!0)},a9=decodeURIComponent;var Ml=/^[\w!#$%&'*.^`|~+-]+$/,Zl=/^[ !#-:<-[\]-~]*$/,JZ=(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)},$B=(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=JZ(J.substring(0,G));if($&&$!==Y||!Ml.test(Y))continue;let B=JZ(J.substring(G+1));if(B.startsWith('"')&&B.endsWith('"'))B=B.slice(1,-1);if(Zl.test(B)){if(X[Y]=B.indexOf("%")!==-1?e6(B,a9):B,$)break}}return X};var YZ=(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 $B(X,G)[G]}if(!X)return{};return $B(X)};var Z$=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 GZ=(D,$)=>{return new Response(D,{headers:{"Content-Type":$}}).formData()};var ql=/^application\/([a-z-\.]+\+)?json(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/,Nl=/^multipart\/form-data(;\s?boundary=[a-zA-Z0-9'"()+_,\-./:=?]+)?$/,Pl=/^application\/x-www-form-urlencoded(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/,FB=(D,$)=>{return async(F,X)=>{let J={},G=F.req.header("Content-Type");switch(D){case"json":if(!G||!ql.test(G))break;try{J=await F.req.json()}catch{throw new Z$(400,{message:"Malformed JSON in request body"})}break;case"form":{if(!G||!(Nl.test(G)||Pl.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 GZ(W,G),F.req.bodyCache.formData=B}catch(W){let Q="Malformed FormData request.";throw Q+=W instanceof Error?` ${W.message}`:` ${String(W)}`,new Z$(400,{message:Q})}let H=Object.create(null);B.forEach((W,Q)=>{if(Q.endsWith("[]"))(H[Q]??=[]).push(W);else if(Array.isArray(H[Q]))H[Q].push(W);else if(Object.hasOwn(H,Q))H[Q]=[H[Q],W];else H[Q]=W}),J=H;break}case"query":J=Object.fromEntries(Object.entries(F.req.queries()).map(([B,H])=>{return H.length===1?[B,H[0]]:[B,H]}));break;case"param":J=F.req.param();break;case"header":J=F.req.header();break;case"cookie":J=YZ(F);break}let Y=await $(J,F);if(Y instanceof Response)return Y;return F.req.addValidatedData(D,Y),await X()}};function Ll(D,$,F,X){return FB(D,async(J,G)=>{let Y=J;if(D==="header"&&"_def"in $||D==="header"&&"_zod"in $){let H=Object.keys("in"in $?$.in.shape:$.shape),W=Object.fromEntries(H.map((Q)=>[Q.toLowerCase(),Q]));Y=Object.fromEntries(Object.entries(J).map(([Q,_])=>[W[Q]||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 S1=Ll;var XB=(D,$,F)=>{return(X,J)=>{let G=-1;return Y(0);async function Y(B){if(B<=G)throw Error("next() called multiple times");G=B;let H,W=!1,Q;if(D[B])Q=D[B][0][0],X.req.routeIndex=B;else Q=B===D.length&&J||void 0;if(Q)try{H=await Q(X,()=>Y(B+1))}catch(_){if(_ instanceof Error&&$)X.error=_,H=await $(_,X),W=!0;else throw _}else if(X.finalized===!1&&F)H=await F(X);if(H&&(X.finalized===!1||W))X.res=H;return X}}};var BZ=Symbol();var HZ=async(D,$=Object.create(null))=>{let{all:F=!1,dot:X=!1}=$,G=(D instanceof q$?D.raw.headers:D.headers).get("Content-Type");if(G?.startsWith("multipart/form-data")||G?.startsWith("application/x-www-form-urlencoded"))return jl(D,{all:F,dot:X});return{}};async function jl(D,$){let F=await D.formData();if(F)return zl(F,$);return{}}function zl(D,$){let F=Object.create(null);if(D.forEach((X,J)=>{if(!($.all||J.endsWith("[]")))F[J]=X;else Il(F,J,X)}),$.dot)Object.entries(F).forEach(([X,J])=>{if(X.includes("."))Tl(F,X,J),delete F[X]});return F}var Il=(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]},Tl=(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 WZ=(D)=>e6(D,a9),q$=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)?WZ(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)?WZ(X):X}return D}#J(D){return this.#$[1]?this.#$[1][D]:D}query(D){return FZ(this.url,D)}queries(D){return XZ(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 HZ(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[BZ](){return this.#$}get matchedRoutes(){return this.#$[0].map(([[,D]])=>D)}get routePath(){return this.#$[0].map(([[,D]])=>D)[this.routeIndex].path}};var N$={Stringify:1,BeforeStream:2,Stream:3},wl=(D,$)=>{let F=new String(D);return F.isEscaped=!0,F.callbacks=$,F};var o9=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)=>o9(H,$,!1,X,J))).then(()=>J[0]));if(F)return wl(await Y,G);else return Y};var VZ="text/plain; charset=UTF-8",JB=(D,$)=>{return{"Content-Type":D,...$}},t9=(D,$)=>new Response(D,$),QZ=class{#D;#$;env={};#X;finalized=!1;error;#Y;#J;#F;#W;#H;#B;#G;#Q;#_;constructor(D,$){if(this.#D=D,$)this.#J=$.executionCtx,this.env=$.env,this.#B=$.notFoundHandler,this.#_=$.path,this.#Q=$.matchResult}get req(){return this.#$??=new q$(this.#D,this.#_,this.#Q),this.#$}get event(){if(this.#J&&"respondWith"in this.#J)return this.#J;else throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#J)return this.#J;else throw Error("This context has no ExecutionContext")}get res(){return this.#F||=t9(null,{headers:this.#G??=new Headers})}set res(D){if(this.#F&&D){D=t9(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=t9(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 t9(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,$,JB(VZ,F))};json=(D,$,F)=>{return this.#V(JSON.stringify(D),$,JB("application/json",F))};html=(D,$,F)=>{let X=(J)=>this.#V(J,$,JB("text/html; charset=UTF-8",F));return typeof D==="object"?o9(D,N$.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??=()=>t9(),this.#B(this)}};var ZD="ALL",_Z="all",UZ=["get","post","put","delete","options","patch"],P$="Can not add a route since the matcher is already built.",L$=class extends Error{};var AZ="__COMPOSED_HANDLER";var Sl=(D)=>{return D.text("404 Not Found",404)},KZ=(D,$)=>{if("getResponse"in D){let F=D.getResponse();return $.newResponse(F.body,F)}return console.error(D),$.text("Internal Server Error",500)},OZ=class D{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#D="/";routes=[];constructor($={}){[...UZ,_Z].forEach((G)=>{this[G]=(Y,...B)=>{if(typeof Y==="string")this.#D=Y;else this.#Y(G,this.#D,Y);return B.forEach((H)=>{this.#Y(G,this.#D,H)}),this}}),this.on=(G,Y,...B)=>{for(let H of[Y].flat()){this.#D=H;for(let W of[G].flat())B.map((Q)=>{this.#Y(W.toUpperCase(),this.#D,Q)})}return this},this.use=(G,...Y)=>{if(typeof G==="string")this.#D=G;else this.#D="*",Y.unshift(G);return Y.forEach((B)=>{this.#Y(ZD,this.#D,B)}),this};let{strict:X,...J}=$;Object.assign(this,J),this.getPath=X??!0?$.getPath??DB:DZ}#$(){let $=new D({router:this.router,getPath:this.getPath});return $.errorHandler=this.errorHandler,$.#X=this.#X,$.routes=this.routes,$}#X=Sl;errorHandler=KZ;route($,F){let X=this.basePath($);return F.routes.map((J)=>{let G;if(F.errorHandler===KZ)G=J.handler;else G=async(Y,B)=>(await XB([],F.errorHandler)(Y,()=>J.handler(Y,B))).res,G[AZ]=J.handler;X.#Y(J.method,J.path,G)}),this}basePath($){let F=this.#$();return F._basePath=P2(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=P2(this._basePath,$),W=H==="/"?0:H.length;return(Q)=>{let _=new URL(Q.url);return _.pathname=_.pathname.slice(W)||"/",new Request(_,Q)}})();let B=async(H,W)=>{let Q=await F(J(H.req.raw),...Y(H));if(Q)return Q;await W()};return this.#Y(ZD,P2($,"*"),B),this}#Y($,F,X){$=$.toUpperCase(),F=P2(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 QZ($,{path:G,matchResult:Y,env:X,executionCtx:F,notFoundHandler:this.#X});if(Y[0].length===1){let W;try{W=Y[0][0][0][0](B,async()=>{B.res=await this.#X(B)})}catch(Q){return this.#J(Q,B)}return W instanceof Promise?W.then((Q)=>Q||(B.finalized?B.res:this.#X(B))).catch((Q)=>this.#J(Q,B)):W??this.#X(B)}let H=XB(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${P2("/",$)}`,F),X,J)};fire=()=>{addEventListener("fetch",($)=>{$.respondWith(this.#F($.request,$,void 0,$.request.method))})}};var e9=[];function j$(D,$){let F=this.buildAllMatchers(),X=(J,G)=>{let Y=F[J]||F[ZD],B=Y[2][G];if(B)return B;let H=G.match(Y[0]);if(!H)return[[],e9];let W=H.indexOf("",1);return[Y[1][W],H]};return this.match=X,X(D,$)}var z$="[^/]+",D7=".*",$7="(?:|/.*)",b1=Symbol(),bl=new Set(".\\+*[^]$()");function fl(D,$){if(D.length===1)return $.length===1?D<$?-1:1:-1;if($.length===1)return 1;if(D===D7||D===$7)return 1;else if($===D7||$===$7)return-1;if(D===z$)return 1;else if($===z$)return-1;return D.length===$.length?D<$?-1:1:$.length-D.length}var RZ=class D{#D;#$;#X=Object.create(null);insert($,F,X,J,G){if($.length===0){if(this.#D!==void 0)throw b1;if(G)return;this.#D=F;return}let[Y,...B]=$,H=Y==="*"?B.length===0?["","",D7]:["","",z$]:Y==="/*"?["","",$7]:Y.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),W;if(H){let Q=H[1],_=H[2]||z$;if(Q&&H[2]){if(_===".*")throw b1;if(_=_.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(_))throw b1}if(W=this.#X[_],!W){if(Object.keys(this.#X).some((U)=>U!==D7&&U!==$7))throw b1;if(G)return;if(W=this.#X[_]=new D,Q!=="")W.#$=J.varIndex++}if(!G&&Q!=="")X.push([Q,W.#$])}else if(W=this.#X[Y],!W){if(Object.keys(this.#X).some((Q)=>Q.length>1&&Q!==D7&&Q!==$7))throw b1;if(G)return;W=this.#X[Y]=new D}W.insert(B,F,X,J,G)}buildRegExpStr(){let F=Object.keys(this.#X).sort(fl).map((X)=>{let J=this.#X[X];return(typeof J.#$==="number"?`(${X})@${J.#$}`:bl.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 EZ=class{#D={varIndex:0};#$=new RZ;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 kl=[/^$/,[],Object.create(null)],CZ=Object.create(null);function MZ(D){return CZ[D]??=new RegExp(D==="*"?"":`^${D.replace(/\/\*$|([.\\+*[^\]$()])/g,($,F)=>F?`\\${F}`:"(?:|/.*)")}$`)}function vl(){CZ=Object.create(null)}function hl(D){let $=new EZ,F=[];if(D.length===0)return kl;let X=D.map((W)=>[!/\*|\/:/.test(W[0]),...W]).sort(([W,Q],[_,U])=>W?1:_?-1:Q.length-U.length),J=Object.create(null);for(let W=0,Q=-1,_=X.length;W<_;W++){let[U,A,R]=X[W];if(U)J[A]=[R.map(([K])=>[K,Object.create(null)]),e9];else Q++;let O;try{O=$.insert(A,Q,U)}catch(K){throw K===b1?new L$(A):K}if(U)continue;F[Q]=R.map(([K,E])=>{let q=Object.create(null);E-=1;for(;E>=0;E--){let[N,S]=O[E];q[N]=S}return[K,q]})}let[G,Y,B]=$.buildRegExp();for(let W=0,Q=F.length;W<Q;W++)for(let _=0,U=F[W].length;_<U;_++){let A=F[W][_]?.[1];if(!A)continue;let R=Object.keys(A);for(let O=0,K=R.length;O<K;O++)A[R[O]]=B[A[R[O]]]}let H=[];for(let W in Y)H[W]=F[Y[W]];return[G,H,J]}function D3(D,$){if(!D)return;for(let F of Object.keys(D).sort((X,J)=>J.length-X.length))if(MZ(F).test($))return[...D[F]];return}var I$=class{name="RegExpRouter";#D;#$;constructor(){this.#D={[ZD]:Object.create(null)},this.#$={[ZD]:Object.create(null)}}add(D,$,F){let X=this.#D,J=this.#$;if(!X||!J)throw Error(P$);if(!X[D])[X,J].forEach((B)=>{B[D]=Object.create(null),Object.keys(B[ZD]).forEach((H)=>{B[D][H]=[...B[ZD][H]]})});if($==="/*")$="*";let G=($.match(/\/:/g)||[]).length;if(/\*$/.test($)){let B=MZ($);if(D===ZD)Object.keys(X).forEach((H)=>{X[H][$]||=D3(X[H],$)||D3(X[ZD],$)||[]});else X[D][$]||=D3(X[D],$)||D3(X[ZD],$)||[];Object.keys(X).forEach((H)=>{if(D===ZD||D===H)Object.keys(X[H]).forEach((W)=>{B.test(W)&&X[H][W].push([F,G])})}),Object.keys(J).forEach((H)=>{if(D===ZD||D===H)Object.keys(J[H]).forEach((W)=>B.test(W)&&J[H][W].push([F,G]))});return}let Y=M$($)||[$];for(let B=0,H=Y.length;B<H;B++){let W=Y[B];Object.keys(J).forEach((Q)=>{if(D===ZD||D===Q)J[Q][W]||=[...D3(X[Q],W)||D3(X[ZD],W)||[]],J[Q][W].push([F,G-H+B+1])})}}match=j$;buildAllMatchers(){let D=Object.create(null);return Object.keys(this.#$).concat(Object.keys(this.#D)).forEach(($)=>{D[$]||=this.#X($)}),this.#D=this.#$=void 0,vl(),D}#X(D){let $=[],F=D===ZD;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!==ZD)$.push(...Object.keys(X[ZD]).map((G)=>[G,X[ZD][G]]))}),!F)return null;else return hl($)}};var xl=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[ZD],G={};for(let Y in J[2])G[Y]=[J[2][Y][0].slice(),e9];this.#D[D]=[J[0],J[1].map((Y)=>Array.isArray(Y)?Y.slice():0),G]}if($==="/*"||$==="*"){let J=[F,{}];if(D===ZD)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===ZD)for(let Y in this.#D)this.#Y(Y,$,F,J,G);else this.#Y(D,$,F,J,G)}buildAllMatchers(){return this.#D}match=j$};var YB=class{name="SmartRouter";#D=[];#$=[];constructor(D){this.#D=D.routers}add(D,$,F){if(!this.#$)throw Error(P$);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 L$)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 F7=Object.create(null),gl=(D)=>{for(let $ in D)return!0;return!1},ZZ=class D{#D;#$;#X;#Y=0;#J=F7;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],Q=G[B+1],_=eM(W,Q),U=Array.isArray(_)?_[0]:W;if(U in J.#$){if(J=J.#$[U],_)Y.push(_[1]);continue}if(J.#$[U]=new D,_)J.#X.push(_),Y.push(_[1]);J=J.#$[U]}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[ZD],Q={};if(W!==void 0){if(W.params=Object.create(null),$.push(W),J!==F7||G&&G!==F7)for(let _=0,U=W.possibleKeys.length;_<U;_++){let A=W.possibleKeys[_],R=Q[W.score];W.params[A]=G?.[A]&&!R?G[A]:J[A]??G?.[A],Q[W.score]=!0}}}}search($,F){let X=[];this.#J=F7;let G=[this],Y=eG(F),B=[],H=Y.length,W=null;for(let Q=0;Q<H;Q++){let _=Y[Q],U=Q===H-1,A=[];for(let O=0,K=G.length;O<K;O++){let E=G[O],q=E.#$[_];if(q)if(q.#J=E.#J,U){if(q.#$["*"])this.#F(X,q.#$["*"],$,E.#J);this.#F(X,q,$,E.#J)}else A.push(q);for(let N=0,S=E.#X.length;N<S;N++){let b=E.#X[N],L=E.#J===F7?{}:{...E.#J};if(b==="*"){let QD=E.#$["*"];if(QD)this.#F(X,QD,$,E.#J),QD.#J=L,A.push(QD);continue}let[z,j,d]=b;if(!_&&!(d instanceof RegExp))continue;let VD=E.#$[z];if(d instanceof RegExp){if(W===null){W=Array(H);let rD=F[0]==="/"?1:0;for(let L2=0;L2<H;L2++)W[L2]=rD,rD+=Y[L2].length+1}let QD=F.substring(W[Q]),$D=d.exec(QD);if($D){if(L[j]=$D[0],this.#F(X,VD,$,E.#J,L),gl(VD.#$)){VD.#J=L;let rD=$D[0].match(/\//)?.length??0;(B[rD]||=[]).push(VD)}continue}}if(d===!0||d.test(_))if(L[j]=_,U){if(this.#F(X,VD,$,L,E.#J),VD.#$["*"])this.#F(X,VD.#$["*"],$,L,E.#J)}else VD.#J=L,A.push(VD)}}let R=B.shift();G=R?A.concat(R):A}if(X.length>1)X.sort((Q,_)=>{return Q.score-_.score});return[X.map(({handler:Q,params:_})=>[Q,_])]}};var GB=class{name="TrieRouter";#D;constructor(){this.#D=new ZZ}add(D,$,F){let X=M$($);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 BB=class extends OZ{constructor(D={}){super(D);this.router=D.router??new YB({routers:[new I$,new GB]})}};yD();var o0=class D extends BB{openAPIRegistry;defaultHook;constructor($){super($);this.openAPIRegistry=new sG,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=S1("query",X.request.query,G);Y.push(W)}if(X.request?.params){let W=S1("param",X.request.params,G);Y.push(W)}if(X.request?.headers){let W=S1("header",X.request.headers,G);Y.push(W)}if(X.request?.cookies){let W=S1("cookie",X.request.cookies,G);Y.push(W)}let B=X.request?.body?.content;if(B)for(let W of Object.keys(B)){if(!B[W])continue;let Q=B[W].schema;if(!(Q instanceof YD))continue;if(NZ(W)){let _=S1("json",Q,G);if(X.request?.body?.required)Y.push(_);else{let U=async(A,R)=>{if(A.req.header("content-type")){if(NZ(A.req.header("content-type")))return await _(A,R)}A.req.addValidatedData("json",{}),await R()};Y.push(U)}}if(PZ(W)){let _=S1("form",Q,G);if(X.request?.body?.required)Y.push(_);else{let U=async(A,R)=>{if(A.req.header("content-type")){if(PZ(A.req.header("content-type")))return await _(A,R)}A.req.addValidatedData("form",{}),await R()};Y.push(U)}}}let H=$?Array.isArray($)?$:[$]:[];return this.on([X.method],X.path.replaceAll(/\/{(.+?)}/g,"/:$1"),...H,...Y,J),this};getOpenAPIDocument=($)=>{let X=new aG(this.openAPIRegistry.definitions).generateDocument($);return this._basePath?qZ(X,this._basePath):X};getOpenAPI31Document=($)=>{let X=new oG(this.openAPIRegistry.definitions).generateDocument($);return this._basePath?qZ(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:P2(X,F._basePath.replaceAll(/:([^\/]+)/g,"{$1}"),J.route.path)});return}case"webhook":{this.openAPIRegistry.registerWebhook({...J.webhook,path:P2(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})}};bM(V);function qZ(D,$){let F={};return Object.keys(D.paths).forEach((X)=>{F[P2($.replaceAll(/:([^\/]+)/g,"{$1}"),X)]=D.paths[X]}),{...D,paths:F}}function NZ(D){return/^application\/([a-z-\.]+\+)?json/.test(D)}function PZ(D){return D.startsWith("multipart/form-data")||D.startsWith("application/x-www-form-urlencoded")}yD();var LZ=[["--theme-","--scalar-"],["--sidebar-","--scalar-sidebar-"]],yl=LZ.map(([D])=>D);function HB(D){if(!yl.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"),LZ.reduce((F,[X,J])=>F.replaceAll(X,J),D)}var ul=V.enum(["alternate","default","moon","purple","solarized","bluePlanet","deepSpace","saturn","kepler","elysiajs","fastify","mars","none"]),ml=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"]),pl=V.enum(["adonisjs","docusaurus","dotnet","elysiajs","express","fastapi","fastify","go","hono","html","laravel","litestar","nestjs","nextjs","nitro","nuxt","platformatic","react","rust","vue"]).nullable(),VB=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()}),cl=V.object({basePath:V.string()}),zZ=V.object({authentication:V.any().optional(),baseServerURL:V.string().optional(),hideClientButton:V.boolean().optional().default(!1).catch(!1),proxyUrl:V.string().optional(),searchHotKey:ml.optional(),servers:V.array(V.any()).optional(),showSidebar:V.boolean().optional().default(!0).catch(!0),spec:VB.optional(),theme:ul.optional().default("default").catch("default"),_integration:pl.optional()}),jZ="https://api.scalar.com/request-proxy",WB="https://proxy.scalar.com",IZ=zZ.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:cl.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()})),dl=IZ.merge(V.object({spec:V.object({sources:V.array(VB)})})),TZ=(D)=>{let $={...D};if($.customCss)$.customCss=HB($.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===jZ)console.warn(`[DEPRECATED] Warning: configuration.proxyUrl points to our old proxy (${jZ}).`),console.warn(`[DEPRECATED] We are overwriting the value and use the new proxy URL (${WB}) instead.`),console.warn(`[DEPRECATED] Action Required: You should manually update your configuration to use the new URL (${WB}). Read more: https://github.com/scalar/scalar`),$.proxyUrl=WB;return $},QB=IZ.transform(TZ),ll=dl.transform(TZ);yD();var _B=V.object({cdn:V.string().optional().default("https://cdn.jsdelivr.net/npm/@scalar/api-reference"),pageTitle:V.string().optional().default("Scalar API Reference")});var wZ=(D,$="")=>{let{cdn:F,pageTitle:X,...J}=D,G=_B.parse({cdn:F,pageTitle:X,customTheme:$}),Y=QB.parse(J);return`
351
351
  <!DOCTYPE html>
352
352
  <html>
353
353
  <head>
@@ -361,16 +361,16 @@ ${H.body}`:H.body}).join(`
361
361
  </style>
362
362
  </head>
363
363
  <body>
364
- ${ll(Y,G.cdn)}
364
+ ${il(Y,G.cdn)}
365
365
  </body>
366
366
  </html>
367
- `};function ll(D,$){return`
367
+ `};function il(D,$){return`
368
368
  <script
369
369
  id="api-reference"
370
370
  type="application/json"
371
- data-configuration="${il(D)}">${nl(D)}</script>
371
+ data-configuration="${nl(D)}">${sl(D)}</script>
372
372
  <script src="${$}"></script>
373
- `}var il=(D)=>{let $={...D};if(!$.spec?.url)delete $.spec;else if($.spec?.content)delete $.spec?.content;return JSON.stringify($).split('"').join("&quot;")},nl=(D)=>D.spec?.content?typeof D.spec?.content==="function"?JSON.stringify(D.spec?.content()):JSON.stringify(D.spec?.content):"";var sl={_integration:"hono"},rl=`
373
+ `}var nl=(D)=>{let $={...D};if(!$.spec?.url)delete $.spec;else if($.spec?.content)delete $.spec?.content;return JSON.stringify($).split('"').join("&quot;")},sl=(D)=>D.spec?.content?typeof D.spec?.content==="function"?JSON.stringify(D.spec?.content()):JSON.stringify(D.spec?.content):"";var rl={_integration:"hono"},al=`
374
374
  .light-mode {
375
375
  color-scheme: light;
376
376
  --scalar-color-1: #2a2f45;
@@ -470,11 +470,11 @@ ${H.body}`:H.body}).join(`
470
470
  --scalar-sidebar-search-border-color: transparent;
471
471
  --scalar-sidebar-search-color: var(--scalar-color-3);
472
472
  }
473
- `,_B=(D)=>{let $={...sl,...D};return async(F)=>F.html(`${wZ($,rl)}`)};a0();TD();JD();J0();JD();function SZ(D,$){if(D instanceof jD)return $.json(D.toJSON(),D.status);return C.error("Unhandled error:",D),$.json({error:{code:"INTERNAL_ERROR",message:"An unexpected error occurred"}},500)}JD();var bZ=async(D,$)=>{let F=performance.now();await $();let X=Math.round(performance.now()-F);C.info(`${D.req.method} ${D.req.path} ${D.res.status} ${X}ms`)};import{resolve as UB,sep as al}from"path";function fZ(D){let $=UB(D);return async(F)=>{let X=new URL(F.req.url),J;try{J=ol(decodeURIComponent(X.pathname.slice(7)))}catch{return F.text("forbidden",403)}let G=J===""?"index.html":J,Y=UB($,G);if(Y!==$&&!Y.startsWith($+al))return F.text("forbidden",403);let B=Bun.file(Y);if(await B.exists())return new Response(B);if(!tl(G)){let H=Bun.file(UB($,"index.html"));if(await H.exists())return new Response(H)}return F.text("not found",404)}}function ol(D){let $=0;while($<D.length&&D[$]==="/")$+=1;return D.slice($)}function tl(D){let $=D.lastIndexOf("/");return($===-1?D:D.slice($+1)).includes(".")}a0();J0();JD();function kZ(D,$){let F=new o0;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&&f2(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 jD.notFound(`Channel ${G} is not bound to this worker`);let B=J.channels.adapter(G),H=await X.req.text(),W={};X.req.raw.headers.forEach((_,U)=>{W[U.toLowerCase()]=_});try{await B.verify(H,W,Y)}catch(_){return C.warn(`[channel:${G}] signature verification failed: ${String(_)}`),X.json({ok:!1,error:"signature verification failed"},401)}let Q=await B.toEnvelopes(H,$,Y);for(let _ of Q)await J.orchestrator.ingest(_);return X.json({ok:!0,accepted:Q.length})}),F}var AB=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+`
474
- `),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 T$=()=>{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 T$=()=>$,$};var vZ=class extends AB{constructor(D,$){super(D,$)}async writeSSE(D){let F=(await o9(D.data,N$.Stringify,!1,{})).split(/\r\n|\r|\n/).map((J)=>{return`data: ${J}`}).join(`
473
+ `,UB=(D)=>{let $={...rl,...D};return async(F)=>F.html(`${wZ($,al)}`)};a0();TD();JD();J0();JD();function SZ(D,$){if(D instanceof jD)return $.json(D.toJSON(),D.status);return C.error("Unhandled error:",D),$.json({error:{code:"INTERNAL_ERROR",message:"An unexpected error occurred"}},500)}JD();var bZ=async(D,$)=>{let F=performance.now();await $();let X=Math.round(performance.now()-F);C.info(`${D.req.method} ${D.req.path} ${D.res.status} ${X}ms`)};import{resolve as AB,sep as ol}from"path";function fZ(D){let $=AB(D);return async(F)=>{let X=new URL(F.req.url),J;try{J=tl(decodeURIComponent(X.pathname.slice(7)))}catch{return F.text("forbidden",403)}let G=J===""?"index.html":J,Y=AB($,G);if(Y!==$&&!Y.startsWith($+ol))return F.text("forbidden",403);let B=Bun.file(Y);if(await B.exists())return new Response(B);if(!el(G)){let H=Bun.file(AB($,"index.html"));if(await H.exists())return new Response(H)}return F.text("not found",404)}}function tl(D){let $=0;while($<D.length&&D[$]==="/")$+=1;return D.slice($)}function el(D){let $=D.lastIndexOf("/");return($===-1?D:D.slice($+1)).includes(".")}a0();J0();JD();function kZ(D,$){let F=new o0;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&&f2(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 jD.notFound(`Channel ${G} is not bound to this worker`);let B=J.channels.adapter(G),H=await X.req.text(),W={};X.req.raw.headers.forEach((_,U)=>{W[U.toLowerCase()]=_});try{await B.verify(H,W,Y)}catch(_){return C.warn(`[channel:${G}] signature verification failed: ${String(_)}`),X.json({ok:!1,error:"signature verification failed"},401)}let Q=await B.toEnvelopes(H,$,Y);for(let _ of Q)await J.orchestrator.ingest(_);return X.json({ok:!0,accepted:Q.length})}),F}var KB=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+`
474
+ `),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 T$=()=>{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 T$=()=>$,$};var vZ=class extends KB{constructor(D,$){super(D,$)}async writeSSE(D){let F=(await o9(D.data,N$.Stringify,!1,{})).split(/\r\n|\r|\n/).map((J)=>{return`data: ${J}`}).join(`
475
475
  `);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(`
476
476
  `)+`
477
477
 
478
- `;await this.write(X)}},el=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()}},Di=new WeakMap,KB=(D,$,F)=>{let{readable:X,writable:J}=new TransformStream,G=new vZ(J,X);if(T$())D.req.raw.signal.addEventListener("abort",()=>{if(!G.closed)G.abort()});return Di.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"),el(G,$,F),D.newResponse(G.responseReadable)};function hZ(D){let $=new o0;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()})})})}),$}J0();TD();_0();var $3=new o0;$3.get("/observations",(D)=>{let $=u().select().from(K2).orderBy(hD(K2.noticedAt)).limit(200).all();return D.json({observations:$})});$3.get("/drafts",(D)=>{let $=D.req.query("status"),F=u().select().from(q0).orderBy(hD(q0.createdAt)).limit(100),X=$?F.where(v(q0.status,$)).all():F.all();return D.json({drafts:X})});$3.post("/drafts/:id/approve",async(D)=>{let $=Number(D.req.param("id"));if(!Number.isFinite($))throw jD.badRequest("invalid draft id");let F=await D.req.json().catch(()=>({})),X=new Date().toISOString();return u().update(q0).set({status:"approved",decidedAt:X,decidedBy:F.decidedBy??"operator"}).where(v(q0.id,$)).run(),D.json({ok:!0})});$3.post("/drafts/:id/reject",async(D)=>{let $=Number(D.req.param("id"));if(!Number.isFinite($))throw jD.badRequest("invalid draft id");let F=await D.req.json().catch(()=>({})),X=new Date().toISOString();return u().update(q0).set({status:"rejected",decidedAt:X,decidedBy:F.decidedBy??"operator"}).where(v(q0.id,$)).run(),D.json({ok:!0})});a0();function xZ({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||!f2(G,Y))return $.json({code:"auth-failed",message:"invalid bearer token"},401);await F()}}a0();J0();TD();JD();yD();var Fi=V.object({value:V.string().min(1)}),gZ=V.string().regex(/^[\w.-]{1,128}$/,{message:"secret key \u4EC5\u5141\u8BB8 [A-Za-z0-9._-]\uFF0C\u957F\u5EA6 1-128"}),Xi=V.object({probe:V.boolean().optional()}).optional(),Ji=V.object({chatId:V.string().optional(),text:V.string().optional()}).optional(),Yi=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()}),Gi=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)}),yZ=V.enum(["web","line","telegram","lark","whatsapp"]),Bi=V.object({expression:V.string().min(1),prompt:V.string().min(1),channel:yZ,chatId:V.string().min(1),accountId:V.string().min(1).optional(),enabled:V.boolean().optional()}),Hi=V.object({expression:V.string().min(1).optional(),prompt:V.string().min(1).optional(),channel:yZ.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 uZ(D){let $=new o0;return $.get("/info",async(F)=>{let X=D.getState(),J=await S0(u()),G=await i5(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 S0(u());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 u6({db:u(),vault:mD(),raw:X,...G===void 0?{}:{ifMatchVersion:G},workerId:D.getState().workerId,reloadRuntime:D.reloadRuntime});return F.json(Y)}catch(Y){if(Y instanceof g2)return F.json({error:{code:"invalid-config",message:Y.message,details:Y.issues}},400);if(Y instanceof y2)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 n5(mD());return F.json({keys:X})}),$.put("/secrets/:key",async(F)=>{let X=gZ.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=Fi.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 s5(mD(),X.data,G.data.value),F.json({ok:!0},200)}catch(Y){if(Y instanceof jD)return F.json(Y.toJSON(),Y.status);throw Y}}),$.delete("/secrets/:key",async(F)=>{let X=gZ.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 r5(mD(),X.data),F.json({ok:!0},200)}catch(J){if(J instanceof jD)return F.json(J.toJSON(),J.status);throw J}}),$.post("/brain/test",async(F)=>{let X=D.getState(),J=await S0(u()),G=await c5(X,J.config);return F.json(G)}),$.post("/executor/test",async(F)=>{let X=await F.req.json().catch(()=>null),J=Xi.safeParse(X??{});if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid executor test body"}},400);let G=D.getState(),Y=await S0(u()),B=await l5(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=Ji.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 d5(Y,X,G.data??{});return F.json(B)}catch(Y){if(Y instanceof jD)return F.json(Y.toJSON(),Y.status);throw Y}}),$.post("/token/rotate",async(F)=>{let X=D.getState(),J=await y8(u(),mD(),X);return F.json(J)}),$.get("/sessions",(F)=>{let X=Yi.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=n6({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=s6(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=Gi.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=r6({olderThanDays:G.olderThanDays,limit:G.limit,apply:G.apply});return F.json(Y)}),$.post("/reload",async(F)=>{let X=await S0(u());try{return await D.reloadRuntime(X.config,X.version),F.json({ok:!0,version:X.version})}catch(J){return C.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 a4().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=Bi.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=Hi.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})}),$}TD();_0();yD();var Wi=V.object({prompt:V.string().trim().min(1,"prompt is required").max(8000,"prompt exceeds 8000 characters")});function mZ(D){let $=new o0;return $.get("/tasks",(F)=>{let X=u().select().from(q8).orderBy(hD(q8.createdAt)).limit(200).all();return F.json({tasks:X})}),$.post("/tasks",async(F)=>{let X=await F.req.json().catch(()=>null),J=Wi.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=u().select().from(c).orderBy(hD(c.lastActiveAt)).limit(200).all();return F.json({conversations:X})}),$.get("/conversations/:id/messages",(F)=>{let X=F.req.param("id"),J=u().select().from(d).where(v(d.conversationId,X)).all();return F.json({messages:J})}),$}async function pZ(D){let $=mD(),F=new Set(t2(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 K6(D,X)}async function cZ(D={}){c3(i.WORKER_DB_PATH),d3(i.WORKER_MIGRATIONS_FOLDER);let $=mD(),F=u(),X=await G1(F,$,{...i.AIWORKER_FORCE_ID===void 0?{}:{forceId:i.AIWORKER_FORCE_ID},...i.AIWORKER_FORCE_TOKEN===void 0?{}:{forceToken:i.AIWORKER_FORCE_TOKEN}});B1(X.workerId,X.token,F,X.justMinted),C.info(`[worker ${X.workerId}] worker.db ready at ${i.WORKER_DB_PATH}`);let J=await Y1(F),G=await pZ(J.config),Y=new P1({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=T1(X.workerId,G,{processes:Y});C.info(`[worker ${X.workerId}] runtime built \u2014 brains=${G.brains.length} executor=${G.executor.engine}/${G.executor.variant} channels=${B.channels.list().length}`);let H={workerId:X.workerId,runtime:B,configVersion:J.version,startedAt:new Date().toISOString(),tokenPlaintext:X.token};async function W(_,U){let A=await pZ(_);Y.setLimits({maxConcurrentTotal:i.MAX_CONCURRENT_TOTAL,perEngineLimits:{...i.perEngineLimits}});let R=T1(H.workerId,A,{processes:Y}),O=H.runtime;if(H.runtime=R,H.configVersion=U,D.onRuntimeReloaded)try{D.onRuntimeReloaded()}catch(K){C.warn(`[worker ${H.workerId}] onRuntimeReloaded hook failed: ${String(K)}`)}try{O.dispose()}catch(K){C.warn(`[worker ${H.workerId}] previous runtime dispose failed: ${String(K)}`)}C.info(`[worker ${H.workerId}] runtime reloaded to config version ${U}`)}let Q=new o0;if(Q.use(bZ),Q.onError(SZ),D.webStaticDir){let _=D.webStaticDir;Q.get("/admin",(U)=>U.redirect("/admin/",308)),Q.use("/admin/*",fZ(_))}return Q.get("/health",async(_)=>{let[U,A]=await Promise.all([H.runtime.brain.health().catch(()=>null),H.runtime.executor.health().catch(()=>null)]);return _.json({mode:"worker",workerId:H.workerId,status:"ok",brain:U,executor:A,configVersion:H.configVersion,startedAt:H.startedAt,checkedAt:new Date().toISOString()})}),Q.route("/",kZ(()=>H.runtime,H.workerId)),Q.use("/api/worker/*",xZ({getIdentity:()=>({tokenPlaintext:H.tokenPlaintext})})),Q.route("/api/worker/orchestrator",mZ(()=>H.runtime)),Q.route("/api/worker/evolution",$3),Q.route("/api/worker/events",hZ(()=>H.runtime)),Q.route("/api/worker",uZ({getState:()=>H,reloadRuntime:W})),Q.doc("/openapi.json",{openapi:"3.1.0",info:{title:"AIWorker Worker API",version:"0.2.0",description:`Per-worker surface: channels, orchestrator, memory, skills, execution, evolution. Worker id: ${H.workerId}`}}),Q.get("/docs",_B({spec:{url:"/openapi.json"}})),{app:Q,port:i.PORT,state:H,reloadRuntime:W}}a0();J0();TD();JD();async function dZ(D={}){let $=null,F=X7.env.AIWORKER_WORKER_NO_SERVE_WEB==="1",X=D.serveWeb!==!1&&!F,J=X?O4("worker"):void 0;if(X&&!J)C.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;A3({surface:"worker",host:G,serveWeb:J!==void 0,externalAuthAcknowledged:i.AIWORKER_ADMIN_EXTERNAL_AUTH});let{app:Y,port:B,state:H,reloadRuntime:W}=await cZ({onRuntimeReloaded:()=>$?.notifyRuntimeReloaded(),...J?{webStaticDir:J}:{}}),Q=D.port??B,_=Bun.serve({port:Q,hostname:G,fetch:Y.fetch});if(C.success(`[aiw serve] worker ${H.workerId} listening on ${G}:${Q} (config v${H.configVersion})`),J)C.info(`[aiw serve] /admin/* serving worker bundle from ${J}`);let U=i.AIWORKER_GATEWAY_URL,A=i.AIWORKER_JOIN_TOKEN,R=i.AIWORKER_DISPLAY_NAME,O=i.AIWORKER_ENROLL_MODE,K=D.gateway&&D.gateway.length>0?D.gateway:void 0,E,q=D.gatewayToken??"",N,S="legacy";if(K)E=K;else if(U&&U.length>0){let P=O==="otp",T=!!A&&A.length>0;if(!P&&T)E=U,S="self-enroll",N={mode:"join-token",joinToken:A,apiToken:H.tokenPlaintext,...R?{displayName:R}:{}};else{let j=new URL(U);if(j.pathname="/enroll-ws",E=j.toString(),S="otp",q=H.tokenPlaintext,N={mode:"otp",apiToken:H.tokenPlaintext,...R?{displayName:R}:{}},P&&T)C.info("[aiw serve] AIWORKER_ENROLL_MODE=otp \u5DF2\u751F\u6548\uFF0C\u5FFD\u7565 AIWORKER_JOIN_TOKEN")}}else if(A&&A.length>0)C.warn("[aiw serve] AIWORKER_JOIN_TOKEN set but AIWORKER_GATEWAY_URL missing; skipping self-enroll");if(E){if(S==="self-enroll")C.info(`[aiw serve] self-enrolling to ${E} as ${R??H.workerId}`);else if(S==="otp")C.info(`[aiw serve] OTP enrolling to ${E}; awaiting operator approval`);$=p5({url:E,token:q,workerId:H.workerId,...D.gatewayReconnect===!1?{reconnect:!1}:{},...N?{enroll:N}:{},...S==="otp"?{onEnrollmentOtp:({otp:P,expiresAt:T})=>{let j=Math.max(0,Math.round((T-Date.now())/1000)),s=Vi(P,j);X7.stdout.write(`${s}
479
- `),C.info(`[aiw serve] OTP ${P} \u5DF2\u7B7E\u53D1\uFF0C\u8BF7\u7528 \`aim enroll approve ${P}\` \u51C6\u5165\uFF1Bexpires in ${j}s`)},onEnrollmentApproved:({workerId:P,deviceToken:T})=>{C.success(`[aiw serve] approved as ${P}; deviceToken=${T.slice(0,8)}\u2026\uFF0C\u5DF2\u52A0\u5165 fleet`)}}:{},getRuntime:()=>H.runtime,handlers:{configGet:async()=>{let P=await S0(u());return{version:P.version,config:P.config}},configPut:async({ifMatch:P,config:T})=>{let j=await u6({db:u(),vault:mD(),raw:T,ifMatchVersion:P,workerId:H.workerId,reloadRuntime:W});return{version:j.version,appliedAt:Date.now(),runtimeReload:j.runtimeReload}},tokenRotate:async()=>{let{newToken:P}=await y8(u(),mD(),H);return{deviceToken:P}},...u5(()=>H.runtime.cron)}}),C.success(`[aiw serve] gateway-client dialing ${E}`)}let b=async(P)=>{C.info(`[aiw serve] received ${P}, shutting down`);try{if($)await $.stop(),$=null}catch(T){C.warn(`[aiw serve] gateway shutdown failed: ${String(T)}`)}try{_.stop()}catch(T){C.warn(`[aiw serve] http shutdown failed: ${String(T)}`)}X7.exit(0)};X7.once("SIGTERM",()=>void b("SIGTERM")),X7.once("SIGINT",()=>void b("SIGINT"))}function Vi(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(`
480
- `)}a0();JD();async function lZ(D={}){try{let $=Qi(D.status),F=await iD({silent:!0}),X=n6({config:F.hydrated,limit:D.limit,offset:D.offset,...$===void 0?{}:{status:$}});return console.log(JSON.stringify(X,null,2)),0}catch($){return C.error(`[aiworker sessions list] failed: ${$ instanceof Error?$.message:String($)}`),$ instanceof OB?2:1}}async function iZ(D){try{let $=await iD({silent:!0}),F=s6(D,$.hydrated);if(F===null)return C.error(`[aiworker sessions show] session not found: ${D}`),1;return console.log(JSON.stringify({session:F},null,2)),0}catch($){return C.error(`[aiworker sessions show] failed: ${$ instanceof Error?$.message:String($)}`),1}}async function nZ(D={}){try{await iD({silent:!0});let $=r6({olderThanDays:D.olderThanDays,limit:D.limit,apply:D.apply===!0});return console.log(JSON.stringify($,null,2)),0}catch($){return C.error(`[aiworker sessions maintenance] failed: ${$ instanceof Error?$.message:String($)}`),1}}class OB extends Error{}function Qi(D){if(D===void 0)return;if(D==="active"||D==="closed")return D;throw new OB('status must be "active" or "closed"')}a0();TD();JD();async function sZ(){let D=await iD({silent:!0}),$=mD(),F=u(),X={tokenPlaintext:D.token},{newToken:J}=await y8(F,$,X);return C.success(`[aiw token rotate] worker ${D.workerId} token rotated`),console.log(J),0}W2();import _i from"process";function Ui(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 rZ(D=_i.argv){if(!Ui(D))return;let $=G2();w1({home:$.home})}var n=NB("aiworker");n.command("init","Bootstrap worker.db, mint identity + token, seed config (defaults to project-scope `<cwd>/.aiworker/`; --global for legacy ~/.aiworker)").option("--global","Initialise the legacy user-scope home `~/.aiworker/` (single host-wide worker)").option("--force","Project-scope only: skip the git-repo guard (allow .aiworker/ in non-git dirs)").action(async(D)=>{await qM({...D.global===!0?{global:!0}:{},...D.force===!0?{force:!0}:{}})});n.command("scope","Print the resolved aiworker scope (user/project/explicit) + presence of layout files").action(async()=>{a.exitCode=await wM()});n.command("run","Feed one message into the orchestrator without binding HTTP").option("--message <text>","User message to ingest (required)").option("--chat-id <id>",'Synthetic chat id (defaults to "cli:stdin")').option("--dry-run","Bootstrap everything but skip ingesting the envelope").option("--timeout-ms <n>","Max wait for a terminal event, in ms (default 120000)",{type:[Number]}).action(async(D)=>{let $=await NM({message:D.message,chatId:D.chatId,dryRun:D.dryRun,timeoutMs:D.timeoutMs?.[0]});a.exit($)});n.command("serve","Start the worker HTTP server (equivalent to AIWORKER_MODE=worker)").option("--port <n>","Override the PORT env",{type:[Number]}).option("--host <host>","Override AIWORKER_WORKER_HOST (default 127.0.0.1)").option("--gateway <url>","Dial the given gateway WS URL as a node alongside the HTTP server").option("--gateway-token <token>","Bearer token presented to the gateway (omit for loopback)").option("--no-reconnect","Disable gateway-client auto-reconnect (useful for smoke / tests)").option("--no-serve-web","\u4E0D\u6302\u8F7D worker bundle \u5230 /admin/*\uFF08\u9ED8\u8BA4\u6302\u8F7D\uFF0CPLAN-022 / FEAT-033\uFF09").action(async(D)=>{let $={};if(D.port?.[0]!==void 0)$.port=D.port[0];if(D.host!==void 0)$.host=D.host;if(D.gateway!==void 0)$.gateway=D.gateway;if(D.gatewayToken!==void 0)$.gatewayToken=D.gatewayToken;if(D.reconnect===!1)$.gatewayReconnect=!1;if(D.serveWeb===!1)$.serveWeb=!1;await dZ($)});n.command("config-show","Print the stored worker config as JSON (bootstraps local worker state if missing)").action(async()=>{a.exit(await RM())});n.command("config-set <json>","Replace the stored worker config").option("--if-match <version>","Optimistic-concurrency guard (reject unless stored version matches)",{type:[Number]}).action(async(D,$)=>{a.exit(await EM({json:D,ifMatch:$.ifMatch?.[0]}))});n.command("token-rotate","Mint a fresh bearer token; prints the new plaintext once").action(async()=>{a.exit(await sZ())});n.command("approvals-list","\u5217\u51FA\u5F53\u524D worker \u8FDB\u7A0B\u5185\u6302\u8D77\u7684 per-tool \u5BA1\u6279").action(async()=>{a.exit(await KM())});n.command("approvals-grant <taskId> <toolCallId>","\u89E3\u9501\u67D0\u6761\u6302\u8D77\u7684 tool \u5BA1\u6279").option("--deny","\u4E0B\u53D1 deny \u51B3\u7B56\uFF1B\u9ED8\u8BA4 allow").action(async(D,$,F)=>{a.exit(await OM({taskId:D,toolCallId:$,...F.deny===void 0?{}:{deny:F.deny}}))});n.command("schedule-list","List all cron jobs persisted in the local worker.db").action(async()=>{a.exit(await LM())});n.command("schedule-add","Add a cron job to the local worker.db (validates expression up-front)").option("--expression <expr>","Five-field cron expression (required)").option("--prompt <text>","Envelope.text synthesised when the job fires (required)").option("--channel <channel>","Channel: web/line/telegram/lark/whatsapp (required)").option("--chat-id <id>","chatId used at fire time (required)").option("--account-id <id>","Override accountId (defaults to sys:cron)").option("--disabled","Persist with enabled=false (default is enabled=true)").action(async(D)=>{if(!D.expression||!D.prompt||!D.channel||!D.chatId)C.error("[aiworker schedule-add] requires --expression, --prompt, --channel, --chat-id"),a.exit(2);let $=await jM({expression:D.expression,prompt:D.prompt,channel:D.channel,chatId:D.chatId,...D.accountId===void 0?{}:{accountId:D.accountId},...D.disabled===!0?{enabled:!1}:{}});a.exit($)});n.command("schedule-remove <jobId>","Remove a cron job from the local worker.db").action(async(D)=>{a.exit(await zM(D))});n.command("sessions list","List local worker session status from worker.db").option("--limit <n>","Max sessions to return (1-200, default 50)",{type:[Number]}).option("--offset <n>","Offset for pagination (default 0)",{type:[Number]}).option("--status <status>","Filter by status: active or closed").action(async(D)=>{a.exit(await lZ({limit:D.limit?.[0],offset:D.offset?.[0],...D.status===void 0?{}:{status:D.status}}))});n.command("sessions show <sessionKey>","Show one local worker session status by session key").action(async(D)=>{a.exit(await iZ(D))});n.command("sessions maintenance","Dry-run closed transcript cleanup; pass --apply to mutate").option("--older-than-days <n>","Closed transcript retention in days (default 30)",{type:[Number]}).option("--limit <n>","Max transcripts to plan/apply (1-200, default 50)",{type:[Number]}).option("--apply","Delete planned closed transcripts instead of dry-run").action(async(D)=>{a.exit(await nZ({olderThanDays:D.olderThanDays?.[0],limit:D.limit?.[0],...D.apply===void 0?{}:{apply:D.apply}}))});n.command("fleet list","\u5217\u51FA fleet \u5185\u6240\u6709 worker").action(async()=>{a.exit(await f_())});n.command("fleet info <workerId>","\u67E5\u770B\u67D0\u4E2A worker \u7684\u8FD0\u884C\u65F6\u4FE1\u606F").action(async(D)=>{a.exit(await k_(D))});n.command("fleet launch","\u8BA9 gateway \u5728\u672C\u673A\u62C9\u8D77\u4E00\u4E2A\u65B0\u7684 worker \u5BB9\u5668\u5E76\u5B8C\u6210\u914D\u5BF9").option("--display-name <name>","worker \u5C55\u793A\u540D").option("--image <image>","\u5BB9\u5668\u955C\u50CF\uFF08\u9ED8\u8BA4\u7531 gateway \u51B3\u5B9A\uFF09").option("--force-id <id>","\u5F3A\u5236\u4F7F\u7528\u7ED9\u5B9A workerId\uFF08\u7528\u4E8E\u5907\u4EFD\u6062\u590D\uFF09").action(async(D)=>{a.exit(await v_({...D.displayName===void 0?{}:{displayName:D.displayName},...D.image===void 0?{}:{image:D.image},...D.forceId===void 0?{}:{forceId:D.forceId}}))});n.command("fleet stop <workerId>","\u5411\u76EE\u6807 worker \u4E0B\u53D1\u505C\u6B62\u6307\u4EE4\uFF08\u4E0D\u6458\u9664\u6CE8\u518C\uFF09").action(async(D)=>{a.exit(await h_(D))});n.command("fleet remove <workerId>","\u628A worker \u4ECE fleet \u4E2D\u6458\u9664\uFF08deviceToken \u4F5C\u5E9F\uFF09").action(async(D)=>{a.exit(await x_(D))});n.command("gateway start","\u62C9\u8D77 gateway server\uFF08\u9ED8\u8BA4 foreground\uFF0Csystemd \u53CB\u597D\uFF1B--detach \u8D70\u540E\u53F0 daemon\uFF09").option("--port <n>","\u76D1\u542C\u7AEF\u53E3\uFF0C\u9ED8\u8BA4 9218",{type:[Number]}).option("--detach","\u540E\u53F0 daemon \u6A21\u5F0F\uFF1Aspawn \u81EA\u8EAB + PID/log \u5199\u5165 ~/.aiworker/").option("--no-serve-web","\u4E0D\u6302\u8F7D fleet bundle \u5230 /admin/*\uFF08\u9ED8\u8BA4\u6302\u8F7D\uFF0CPLAN-022 / FEAT-033\uFF09").action(async(D)=>{let F=a.env.AIWORKER_GATEWAY_INTERNAL_FOREGROUND==="1"?!1:D.detach===!0;a.exit(await K_({...D.port?.[0]===void 0?{}:{port:D.port[0]},detach:F,...D.serveWeb===!1?{serveWeb:!1}:{}}))});n.command("gateway status","\u663E\u793A detached gateway daemon \u662F\u5426\u8FD0\u884C\uFF08foreground/systemd \u5B9E\u4F8B\u4E0D\u7531\u6B64\u547D\u4EE4\u8DDF\u8E2A\uFF09").action(()=>{a.exit(O_())});n.command("gateway stop","\u505C\u6B62 detached gateway daemon (foreground/systemd \u5B9E\u4F8B\u8BF7\u7531\u5176 supervisor \u505C\u6B62)").option("--timeout-ms <n>","SIGTERM \u8D85\u65F6\uFF0C\u9ED8\u8BA4 5000ms",{type:[Number]}).action(async(D)=>{a.exit(await R_(D.timeoutMs?.[0]===void 0?{}:{timeoutMs:D.timeoutMs[0]}))});n.command("pair","\u901A\u8FC7 bootstrap token \u628A\u4E00\u4E2A\u5DF2\u542F\u52A8\u7684 worker \u6CE8\u518C\u5230 gateway").option("--url <wsUrl>","gateway WS URL\uFF08\u9ED8\u8BA4\u4F7F\u7528 aim.json \u91CC\u7684 gatewayUrl\uFF09").option("--worker-url <httpUrl>","worker HTTP base URL\uFF08\u5FC5\u586B\uFF09").option("--bootstrap-token <token>","worker \u6253\u5370\u7684\u4E00\u6B21\u6027 bootstrap token\uFF08\u5FC5\u586B\uFF09").option("--display-name <name>","\u53EF\u9009 worker \u5C55\u793A\u540D").action(async(D)=>{if(!D.workerUrl||!D.bootstrapToken)C.error("pair \u5FC5\u987B\u540C\u65F6\u63D0\u4F9B --worker-url \u548C --bootstrap-token"),a.exit(2);a.exit(await z_({...D.url===void 0?{}:{url:D.url},workerUrl:D.workerUrl,bootstrapToken:D.bootstrapToken,...D.displayName===void 0?{}:{displayName:D.displayName}}))});n.command("chat <workerId> <text>","\u5411\u67D0 worker \u53D1\u4E00\u6761\u6D88\u606F\u5E76\u963B\u585E\u5230 agent.done (NDJSON \u8F93\u51FA)").option("--conversation-id <id>","\u663E\u5F0F\u6307\u5B9A\u4F1A\u8BDD id\uFF1B\u4E0D\u4F20\u5219\u7531 worker \u65B0\u5EFA").option("--timeout-ms <n>","\u7B49 agent.done \u7684\u603B\u8D85\u65F6\uFF0C\u9ED8\u8BA4 120000",{type:[Number]}).action(async(D,$,F)=>{a.exit(await CW({workerId:D,content:$,...F.conversationId===void 0?{}:{conversationId:F.conversationId},...F.timeoutMs?.[0]===void 0?{}:{timeoutMs:F.timeoutMs[0]}}))});n.command("config get <workerId>","\u8BFB\u53D6\u76EE\u6807 worker \u7684\u5F53\u524D\u914D\u7F6E").action(async(D)=>{a.exit(await MW(D))});n.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)C.error("config set \u5FC5\u987B\u663E\u5F0F\u63D0\u4F9B --if-match <version> \u4EE5\u9632\u6B62\u8BEF\u8986\u76D6"),a.exit(2);a.exit(await ZW({workerId:D,configJson:$,ifMatch:X}))});n.command("token rotate <workerId>","\u4E3A\u76EE\u6807 worker \u8F6E\u6362 deviceToken\uFF08\u65E7 token \u7ACB\u5373\u5931\u6548\uFF09").action(async(D)=>{a.exit(await b_(D))});n.command("approvals list","\u5217\u51FA\u6302\u8D77\u7684 per-tool \u5BA1\u6279\uFF1B\u9ED8\u8BA4\u8986\u76D6\u6240\u6709 online worker").option("--worker <id>","\u53EA\u67E5\u6307\u5B9A workerId\uFF08\u4E0D\u4F20\u5219\u805A\u5408\u6240\u6709 online worker\uFF09").action(async(D)=>{a.exit(await RW({...D.worker===void 0?{}:{workerId:D.worker}}))});n.command("approvals grant <workerId> <taskId> <toolCallId>","\u89E3\u9501\u67D0\u6761 worker \u4E0A\u6302\u8D77\u7684 tool \u5BA1\u6279").option("--deny","\u4E0B\u53D1 deny \u51B3\u7B56\uFF1B\u4E0D\u5E26\u6B64 flag \u9ED8\u8BA4 allow").action(async(D,$,F,X)=>{a.exit(await EW({workerId:D,taskId:$,toolCallId:F,...X.deny===void 0?{}:{deny:X.deny}}))});n.command("schedule list <workerId>","\u5217\u51FA\u67D0 worker \u4E0A\u6240\u6709 cron \u4EFB\u52A1").action(async(D)=>{a.exit(await T_(D))});n.command("schedule add <workerId>","\u5728\u67D0 worker \u4E0A\u65B0\u589E\u4E00\u6761 cron \u4EFB\u52A1").option("--expression <expr>","5-field cron \u8868\u8FBE\u5F0F\uFF08\u5FC5\u586B\uFF09").option("--prompt <text>","cron \u89E6\u53D1\u65F6\u5408\u6210\u7684 envelope.text\uFF08\u5FC5\u586B\uFF09").option("--channel <channel>","channel \u7C7B\u578B\uFF1Aweb/line/telegram/lark/whatsapp\uFF08\u5FC5\u586B\uFF09").option("--chat-id <id>","\u89E6\u53D1\u65F6\u4F7F\u7528\u7684 chatId\uFF08\u5FC5\u586B\uFF09").option("--account-id <id>","accountId\uFF0C\u9ED8\u8BA4 sys:cron").option("--disabled","\u9ED8\u8BA4 enabled=true\uFF1B\u5E26\u6B64 flag \u6539\u4E3A false").action(async(D,$)=>{if(!$.expression||!$.prompt||!$.channel||!$.chatId)C.error("schedule add \u5FC5\u987B\u63D0\u4F9B --expression / --prompt / --channel / --chat-id"),a.exit(2);a.exit(await w_({workerId:D,expression:$.expression,prompt:$.prompt,channel:$.channel,chatId:$.chatId,...$.accountId===void 0?{}:{accountId:$.accountId},...$.disabled===!0?{enabled:!1}:{}}))});n.command("schedule remove <workerId> <jobId>","\u5220\u9664\u67D0 worker \u4E0A\u7684\u67D0\u6761 cron \u4EFB\u52A1").action(async(D,$)=>{a.exit(await S_(D,$))});n.command("enroll list","\u5217\u51FA gateway \u5F53\u524D\u6240\u6709 pending OTP enrollment").action(async()=>{a.exit(await qW())});n.command("enroll approve <otp>","\u6279\u51C6\u67D0\u6761 pending OTP enrollment\uFF08worker \u7ACB\u5373\u52A0\u5165 fleet\uFF09").action(async(D)=>{a.exit(await NW(D))});n.command("enroll reject <otp>","\u62D2\u7EDD\u67D0\u6761 pending OTP enrollment\uFF08worker \u6536\u5230 close 4403\uFF09").action(async(D)=>{a.exit(await PW(D))});n.command("logs <workerId>","\u8BA2\u9605\u67D0 worker \u7684\u65E5\u5FD7\u5C3E\u90E8 (NDJSON \u8F93\u51FA)").option("--follow","\u6301\u7EED\u8BA2\u9605\u76F4\u5230\u8D85\u65F6\u6216 Ctrl-C").option("--tail <n>","\u8BF7\u6C42\u5386\u53F2\u884C\u6570\uFF0C\u4E0A\u9650 1000",{type:[Number]}).option("--timeout-ms <n>","\u8BA2\u9605\u603B\u8D85\u65F6",{type:[Number]}).action(async(D,$)=>{a.exit(await j_({workerId:D,...$.follow===void 0?{}:{follow:$.follow},...$.tail?.[0]===void 0?{}:{tail:$.tail[0]},...$.timeoutMs?.[0]===void 0?{}:{timeoutMs:$.timeoutMs[0]}}))});n.command("install systemd","\u6E32\u67D3 aiworker-gateway.service \u5E76\uFF08\u53EF\u9009\uFF09\u6CE8\u518C\u5230 systemd").option("--user","systemd \u7528\u6237\u5B9E\u4F8B\uFF08\u9ED8\u8BA4\uFF09\uFF1B\u5199\u5230 ~/.config/systemd/user/").option("--system","systemd \u7CFB\u7EDF\u5B9E\u4F8B\uFF08\u9700 root\uFF09\uFF1B\u5199\u5230 /etc/systemd/system/").option("--dry-run","\u53EA\u5F80 stdout \u6253 unit \u5185\u5BB9\uFF0C\u4E0D\u5199\u76D8\u4E5F\u4E0D systemctl").option("--out <path>","\u8986\u76D6\u76EE\u6807\u8DEF\u5F84\uFF08\u5F02\u5E38\u5E03\u5C40/\u6D4B\u8BD5\u7528\uFF09\uFF1B\u81EA\u52A8\u8DF3\u8FC7 systemctl").option("--no-enable","\u5199\u76D8\u540E\u8DF3\u8FC7 systemctl daemon-reload + enable --now").option("--exec-start <command>","\u9AD8\u7EA7\u8986\u76D6\uFF1A\u624B\u52A8\u6307\u5B9A\u5B8C\u6574 systemd ExecStart \u547D\u4EE4").action(async(D)=>{if(D.user===!0&&D.system===!0)C.error("install systemd: \u4E0D\u80FD\u540C\u65F6\u6307\u5B9A --user \u548C --system"),a.exit(2);a.exit(await L_({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}}))});n.help();n.version(AH.version);function Ai(D,$=n){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 f1 extends Error{constructor(D){super(D);this.name="CliUsageError"}}var Ki={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 Oi(D){return D instanceof Error&&D.name==="CACError"}function Ri(D){return/--[a-z0-9][\w-]*/i.exec(D)?.[0]??D}function Ei(D){return D.split(",").map(($)=>/^-{1,2}[a-z0-9][\w-]*/i.exec($.trim())?.[0]).filter(($)=>$!==void 0)}function Ci(D,$){let F=D.slice(2);return Ei($.rawName).some((J)=>F.some((G)=>G===J||G.startsWith(`${J}=`)))}function Mi(D){D.checkUnknownOptions(),D.checkOptionValue(),D.checkRequiredArgs()}function Zi(D,$){let F=Ki[D.name]??{};for(let X of D.options){if(!Array.isArray(X.config?.type)||X.config.type[0]!==Number)continue;if(!Ci($,X))continue;let J=n.options[X.name];if(J===void 0)continue;let G=Array.isArray(J)?J:[J];for(let Y of G){let B=Ri(X.rawName);if(typeof Y!=="number"||!Number.isFinite(Y))throw new f1(`${B} must be a finite number`);let H=F[X.name];if(H?.integer===!0&&!Number.isInteger(Y))throw new f1(`${B} must be an integer`);if(H?.min!==void 0&&Y<H.min)throw new f1(`${B} must be >= ${H.min}`);if(H?.max!==void 0&&Y>H.max)throw new f1(`${B} must be <= ${H.max}`)}}}function qi(){return n.options.help===!0||n.options.version===!0&&n.matchedCommandName==null}async function Ni(D=a.argv){let $=Ai(D);try{n.unsetMatchedCommand();let F=n.parse($,{run:!1});if(qi())return 0;if(!n.matchedCommand&&F.args[0])throw new f1(`Unknown command: ${F.args[0]}`);let X=n.matchedCommand;if(X)Mi(X),Zi(X,$);return rZ($),await n.runMatchedCommand(),typeof a.exitCode==="number"?a.exitCode:0}catch(F){let X=F instanceof f1||Oi(F),J=F instanceof Error?F.message:String(F);return C.error(J),X?2:1}}if(import.meta.main)a.exit(await Ni(a.argv));export{Ni as runCli,Ai as preprocessArgv,n as cli};
478
+ `;await this.write(X)}},Di=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()}},$i=new WeakMap,OB=(D,$,F)=>{let{readable:X,writable:J}=new TransformStream,G=new vZ(J,X);if(T$())D.req.raw.signal.addEventListener("abort",()=>{if(!G.closed)G.abort()});return $i.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"),Di(G,$,F),D.newResponse(G.responseReadable)};function hZ(D){let $=new o0;return $.get("/stream",(F)=>{let X=D().bus;return OB(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()})})})}),$}J0();TD();_0();var $3=new o0;$3.get("/observations",(D)=>{let $=u().select().from(K2).orderBy(hD(K2.noticedAt)).limit(200).all();return D.json({observations:$})});$3.get("/drafts",(D)=>{let $=D.req.query("status"),F=u().select().from(q0).orderBy(hD(q0.createdAt)).limit(100),X=$?F.where(v(q0.status,$)).all():F.all();return D.json({drafts:X})});$3.post("/drafts/:id/approve",async(D)=>{let $=Number(D.req.param("id"));if(!Number.isFinite($))throw jD.badRequest("invalid draft id");let F=await D.req.json().catch(()=>({})),X=new Date().toISOString();return u().update(q0).set({status:"approved",decidedAt:X,decidedBy:F.decidedBy??"operator"}).where(v(q0.id,$)).run(),D.json({ok:!0})});$3.post("/drafts/:id/reject",async(D)=>{let $=Number(D.req.param("id"));if(!Number.isFinite($))throw jD.badRequest("invalid draft id");let F=await D.req.json().catch(()=>({})),X=new Date().toISOString();return u().update(q0).set({status:"rejected",decidedAt:X,decidedBy:F.decidedBy??"operator"}).where(v(q0.id,$)).run(),D.json({ok:!0})});a0();function xZ({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||!f2(G,Y))return $.json({code:"auth-failed",message:"invalid bearer token"},401);await F()}}a0();J0();TD();JD();yD();var Xi=V.object({value:V.string().min(1)}),gZ=V.string().regex(/^[\w.-]{1,128}$/,{message:"secret key \u4EC5\u5141\u8BB8 [A-Za-z0-9._-]\uFF0C\u957F\u5EA6 1-128"}),Ji=V.object({probe:V.boolean().optional()}).optional(),Yi=V.object({chatId:V.string().optional(),text:V.string().optional()}).optional(),Gi=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()}),Bi=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)}),yZ=V.enum(["web","line","telegram","lark","whatsapp"]),Hi=V.object({expression:V.string().min(1),prompt:V.string().min(1),channel:yZ,chatId:V.string().min(1),accountId:V.string().min(1).optional(),enabled:V.boolean().optional()}),Wi=V.object({expression:V.string().min(1).optional(),prompt:V.string().min(1).optional(),channel:yZ.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 uZ(D){let $=new o0;return $.get("/info",async(F)=>{let X=D.getState(),J=await S0(u()),G=await i5(X,J.config,{...n.AIWORKER_ADVERTISED_BASE_URL===void 0?{}:{advertisedBaseUrl:n.AIWORKER_ADVERTISED_BASE_URL}});return F.json(G)}),$.get("/config",async(F)=>{let X=await S0(u());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 u6({db:u(),vault:mD(),raw:X,...G===void 0?{}:{ifMatchVersion:G},workerId:D.getState().workerId,reloadRuntime:D.reloadRuntime});return F.json(Y)}catch(Y){if(Y instanceof g2)return F.json({error:{code:"invalid-config",message:Y.message,details:Y.issues}},400);if(Y instanceof y2)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 n5(mD());return F.json({keys:X})}),$.put("/secrets/:key",async(F)=>{let X=gZ.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=Xi.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 s5(mD(),X.data,G.data.value),F.json({ok:!0},200)}catch(Y){if(Y instanceof jD)return F.json(Y.toJSON(),Y.status);throw Y}}),$.delete("/secrets/:key",async(F)=>{let X=gZ.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 r5(mD(),X.data),F.json({ok:!0},200)}catch(J){if(J instanceof jD)return F.json(J.toJSON(),J.status);throw J}}),$.post("/brain/test",async(F)=>{let X=D.getState(),J=await S0(u()),G=await c5(X,J.config);return F.json(G)}),$.post("/executor/test",async(F)=>{let X=await F.req.json().catch(()=>null),J=Ji.safeParse(X??{});if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid executor test body"}},400);let G=D.getState(),Y=await S0(u()),B=await l5(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=Yi.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 d5(Y,X,G.data??{});return F.json(B)}catch(Y){if(Y instanceof jD)return F.json(Y.toJSON(),Y.status);throw Y}}),$.post("/token/rotate",async(F)=>{let X=D.getState(),J=await y8(u(),mD(),X);return F.json(J)}),$.get("/sessions",(F)=>{let X=Gi.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=n6({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=s6(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=Bi.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=r6({olderThanDays:G.olderThanDays,limit:G.limit,apply:G.apply});return F.json(Y)}),$.post("/reload",async(F)=>{let X=await S0(u());try{return await D.reloadRuntime(X.config,X.version),F.json({ok:!0,version:X.version})}catch(J){return C.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 a4().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=Hi.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=Wi.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})}),$}TD();_0();yD();var Vi=V.object({prompt:V.string().trim().min(1,"prompt is required").max(8000,"prompt exceeds 8000 characters")});function mZ(D){let $=new o0;return $.get("/tasks",(F)=>{let X=u().select().from(q8).orderBy(hD(q8.createdAt)).limit(200).all();return F.json({tasks:X})}),$.post("/tasks",async(F)=>{let X=await F.req.json().catch(()=>null),J=Vi.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=u().select().from(c).orderBy(hD(c.lastActiveAt)).limit(200).all();return F.json({conversations:X})}),$.get("/conversations/:id/messages",(F)=>{let X=F.req.param("id"),J=u().select().from(l).where(v(l.conversationId,X)).all();return F.json({messages:J})}),$}async function pZ(D){let $=mD(),F=new Set(t2(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 K6(D,X)}async function cZ(D={}){c3(n.WORKER_DB_PATH),d3(n.WORKER_MIGRATIONS_FOLDER);let $=mD(),F=u(),X=await G1(F,$,{...n.AIWORKER_FORCE_ID===void 0?{}:{forceId:n.AIWORKER_FORCE_ID},...n.AIWORKER_FORCE_TOKEN===void 0?{}:{forceToken:n.AIWORKER_FORCE_TOKEN}});B1(X.workerId,X.token,F,X.justMinted),C.info(`[worker ${X.workerId}] worker.db ready at ${n.WORKER_DB_PATH}`);let J=await Y1(F),G=await pZ(J.config),Y=new P1({maxConcurrentTotal:n.MAX_CONCURRENT_TOTAL,perEngineLimits:{...n.perEngineLimits},stallTimeoutMs:n.PROCESS_STALL_TIMEOUT_MS,killTimeoutMs:n.PROCESS_KILL_TIMEOUT_MS,autoCleanupDelayMs:n.PROCESS_AUTO_CLEANUP_DELAY_MS,gcIntervalMs:n.PROCESS_GC_INTERVAL_MS}),B=T1(X.workerId,G,{processes:Y});C.info(`[worker ${X.workerId}] runtime built \u2014 brains=${G.brains.length} executor=${G.executor.engine}/${G.executor.variant} channels=${B.channels.list().length}`);let H={workerId:X.workerId,runtime:B,configVersion:J.version,startedAt:new Date().toISOString(),tokenPlaintext:X.token};async function W(_,U){let A=await pZ(_);Y.setLimits({maxConcurrentTotal:n.MAX_CONCURRENT_TOTAL,perEngineLimits:{...n.perEngineLimits}});let R=T1(H.workerId,A,{processes:Y}),O=H.runtime;if(H.runtime=R,H.configVersion=U,D.onRuntimeReloaded)try{D.onRuntimeReloaded()}catch(K){C.warn(`[worker ${H.workerId}] onRuntimeReloaded hook failed: ${String(K)}`)}try{O.dispose()}catch(K){C.warn(`[worker ${H.workerId}] previous runtime dispose failed: ${String(K)}`)}C.info(`[worker ${H.workerId}] runtime reloaded to config version ${U}`)}let Q=new o0;if(Q.use(bZ),Q.onError(SZ),D.webStaticDir){let _=D.webStaticDir;Q.get("/admin",(U)=>U.redirect("/admin/",308)),Q.use("/admin/*",fZ(_))}return Q.get("/health",async(_)=>{let[U,A]=await Promise.all([H.runtime.brain.health().catch(()=>null),H.runtime.executor.health().catch(()=>null)]);return _.json({mode:"worker",workerId:H.workerId,status:"ok",brain:U,executor:A,configVersion:H.configVersion,startedAt:H.startedAt,checkedAt:new Date().toISOString()})}),Q.route("/",kZ(()=>H.runtime,H.workerId)),Q.use("/api/worker/*",xZ({getIdentity:()=>({tokenPlaintext:H.tokenPlaintext})})),Q.route("/api/worker/orchestrator",mZ(()=>H.runtime)),Q.route("/api/worker/evolution",$3),Q.route("/api/worker/events",hZ(()=>H.runtime)),Q.route("/api/worker",uZ({getState:()=>H,reloadRuntime:W})),Q.doc("/openapi.json",{openapi:"3.1.0",info:{title:"AIWorker Worker API",version:"0.2.0",description:`Per-worker surface: channels, orchestrator, memory, skills, execution, evolution. Worker id: ${H.workerId}`}}),Q.get("/docs",UB({spec:{url:"/openapi.json"}})),{app:Q,port:n.PORT,state:H,reloadRuntime:W}}a0();J0();TD();JD();async function dZ(D={}){let $=null,F=X7.env.AIWORKER_WORKER_NO_SERVE_WEB==="1",X=D.serveWeb!==!1&&!F,J=X?O4("worker"):void 0;if(X&&!J)C.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??n.AIWORKER_WORKER_HOST;A3({surface:"worker",host:G,serveWeb:J!==void 0,externalAuthAcknowledged:n.AIWORKER_ADMIN_EXTERNAL_AUTH});let{app:Y,port:B,state:H,reloadRuntime:W}=await cZ({onRuntimeReloaded:()=>$?.notifyRuntimeReloaded(),...J?{webStaticDir:J}:{}}),Q=D.port??B,_=Bun.serve({port:Q,hostname:G,fetch:Y.fetch});if(C.success(`[aiw serve] worker ${H.workerId} listening on ${G}:${Q} (config v${H.configVersion})`),J)C.info(`[aiw serve] /admin/* serving worker bundle from ${J}`);let U=n.AIWORKER_GATEWAY_URL,A=n.AIWORKER_JOIN_TOKEN,R=n.AIWORKER_DISPLAY_NAME,O=n.AIWORKER_ENROLL_MODE,K=D.gateway&&D.gateway.length>0?D.gateway:void 0,E,q=D.gatewayToken??"",N,S="legacy";if(K)E=K;else if(U&&U.length>0){let z=O==="otp",j=!!A&&A.length>0;if(!z&&j)E=U,S="self-enroll",N={mode:"join-token",joinToken:A,apiToken:H.tokenPlaintext,...R?{displayName:R}:{}};else{let d=new URL(U);if(d.pathname="/enroll-ws",E=d.toString(),S="otp",q=H.tokenPlaintext,N={mode:"otp",apiToken:H.tokenPlaintext,...R?{displayName:R}:{}},z&&j)C.info("[aiw serve] AIWORKER_ENROLL_MODE=otp \u5DF2\u751F\u6548\uFF0C\u5FFD\u7565 AIWORKER_JOIN_TOKEN")}}else if(A&&A.length>0)C.warn("[aiw serve] AIWORKER_JOIN_TOKEN set but AIWORKER_GATEWAY_URL missing; skipping self-enroll");if(E){if(S==="self-enroll")C.info(`[aiw serve] self-enrolling to ${E} as ${R??H.workerId}`);else if(S==="otp")C.info(`[aiw serve] OTP enrolling to ${E}; awaiting operator approval`);$=p5({url:E,token:q,workerId:H.workerId,...D.gatewayReconnect===!1?{reconnect:!1}:{},...N?{enroll:N}:{},...S==="otp"?{onEnrollmentOtp:({otp:z,expiresAt:j})=>{let d=Math.max(0,Math.round((j-Date.now())/1000)),VD=Qi(z,d);X7.stdout.write(`${VD}
479
+ `),C.info(`[aiw serve] OTP ${z} \u5DF2\u7B7E\u53D1\uFF0C\u8BF7\u7528 \`aim enroll approve ${z}\` \u51C6\u5165\uFF1Bexpires in ${d}s`)},onEnrollmentApproved:({workerId:z,deviceToken:j})=>{C.success(`[aiw serve] approved as ${z}; deviceToken=${j.slice(0,8)}\u2026\uFF0C\u5DF2\u52A0\u5165 fleet`)}}:{},getRuntime:()=>H.runtime,handlers:{configGet:async()=>{let z=await S0(u());return{version:z.version,config:z.config}},configPut:async({ifMatch:z,config:j})=>{let d=await u6({db:u(),vault:mD(),raw:j,ifMatchVersion:z,workerId:H.workerId,reloadRuntime:W});return{version:d.version,appliedAt:Date.now(),runtimeReload:d.runtimeReload}},tokenRotate:async()=>{let{newToken:z}=await y8(u(),mD(),H);return{deviceToken:z}},...u5(()=>H.runtime.cron)}}),C.success(`[aiw serve] gateway-client dialing ${E}`)}let b=!1,L=async(z)=>{if(b)return;b=!0,C.info(`[aiw serve] received ${z}, shutting down`);try{if($)await $.stop(),$=null}catch(j){C.warn(`[aiw serve] gateway shutdown failed: ${String(j)}`)}try{_.stop()}catch(j){C.warn(`[aiw serve] http shutdown failed: ${String(j)}`)}X7.exit(0)};X7.once("SIGTERM",()=>void L("SIGTERM")),X7.once("SIGINT",()=>void L("SIGINT")),await new Promise(()=>{})}function Qi(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(`
480
+ `)}a0();JD();async function lZ(D={}){try{let $=_i(D.status),F=await iD({silent:!0}),X=n6({config:F.hydrated,limit:D.limit,offset:D.offset,...$===void 0?{}:{status:$}});return console.log(JSON.stringify(X,null,2)),0}catch($){return C.error(`[aiworker sessions list] failed: ${$ instanceof Error?$.message:String($)}`),$ instanceof RB?2:1}}async function iZ(D){try{let $=await iD({silent:!0}),F=s6(D,$.hydrated);if(F===null)return C.error(`[aiworker sessions show] session not found: ${D}`),1;return console.log(JSON.stringify({session:F},null,2)),0}catch($){return C.error(`[aiworker sessions show] failed: ${$ instanceof Error?$.message:String($)}`),1}}async function nZ(D={}){try{await iD({silent:!0});let $=r6({olderThanDays:D.olderThanDays,limit:D.limit,apply:D.apply===!0});return console.log(JSON.stringify($,null,2)),0}catch($){return C.error(`[aiworker sessions maintenance] failed: ${$ instanceof Error?$.message:String($)}`),1}}class RB extends Error{}function _i(D){if(D===void 0)return;if(D==="active"||D==="closed")return D;throw new RB('status must be "active" or "closed"')}a0();TD();JD();async function sZ(){let D=await iD({silent:!0}),$=mD(),F=u(),X={tokenPlaintext:D.token},{newToken:J}=await y8(F,$,X);return C.success(`[aiw token rotate] worker ${D.workerId} token rotated`),console.log(J),0}W2();import Ui from"process";function Ai(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 rZ(D=Ui.argv){if(!Ai(D))return;let $=G2();w1({home:$.home})}var s=PB("aiworker");s.command("init","Bootstrap worker.db, mint identity + token, seed config (defaults to project-scope `<cwd>/.aiworker/`; --global for legacy ~/.aiworker)").option("--global","Initialise the legacy user-scope home `~/.aiworker/` (single host-wide worker)").option("--force","Project-scope only: skip the git-repo guard (allow .aiworker/ in non-git dirs)").action(async(D)=>{await qM({...D.global===!0?{global:!0}:{},...D.force===!0?{force:!0}:{}})});s.command("scope","Print the resolved aiworker scope (user/project/explicit) + presence of layout files").action(async()=>{a.exitCode=await wM()});s.command("run","Feed one message into the orchestrator without binding HTTP").option("--message <text>","User message to ingest (required)").option("--chat-id <id>",'Synthetic chat id (defaults to "cli:stdin")').option("--dry-run","Bootstrap everything but skip ingesting the envelope").option("--timeout-ms <n>","Max wait for a terminal event, in ms (default 120000)",{type:[Number]}).action(async(D)=>{let $=await NM({message:D.message,chatId:D.chatId,dryRun:D.dryRun,timeoutMs:D.timeoutMs?.[0]});a.exit($)});s.command("serve","Start the worker HTTP server (equivalent to AIWORKER_MODE=worker)").option("--port <n>","Override the PORT env",{type:[Number]}).option("--host <host>","Override AIWORKER_WORKER_HOST (default 127.0.0.1)").option("--gateway <url>","Dial the given gateway WS URL as a node alongside the HTTP server").option("--gateway-token <token>","Bearer token presented to the gateway (omit for loopback)").option("--no-reconnect","Disable gateway-client auto-reconnect (useful for smoke / tests)").option("--no-serve-web","\u4E0D\u6302\u8F7D worker bundle \u5230 /admin/*\uFF08\u9ED8\u8BA4\u6302\u8F7D\uFF0CPLAN-022 / FEAT-033\uFF09").action(async(D)=>{let $={};if(D.port?.[0]!==void 0)$.port=D.port[0];if(D.host!==void 0)$.host=D.host;if(D.gateway!==void 0)$.gateway=D.gateway;if(D.gatewayToken!==void 0)$.gatewayToken=D.gatewayToken;if(D.reconnect===!1)$.gatewayReconnect=!1;if(D.serveWeb===!1)$.serveWeb=!1;await dZ($)});s.command("config-show","Print the stored worker config as JSON (bootstraps local worker state if missing)").action(async()=>{a.exit(await RM())});s.command("config-set <json>","Replace the stored worker config").option("--if-match <version>","Optimistic-concurrency guard (reject unless stored version matches)",{type:[Number]}).action(async(D,$)=>{a.exit(await EM({json:D,ifMatch:$.ifMatch?.[0]}))});s.command("token-rotate","Mint a fresh bearer token; prints the new plaintext once").action(async()=>{a.exit(await sZ())});s.command("approvals-list","\u5217\u51FA\u5F53\u524D worker \u8FDB\u7A0B\u5185\u6302\u8D77\u7684 per-tool \u5BA1\u6279").action(async()=>{a.exit(await KM())});s.command("approvals-grant <taskId> <toolCallId>","\u89E3\u9501\u67D0\u6761\u6302\u8D77\u7684 tool \u5BA1\u6279").option("--deny","\u4E0B\u53D1 deny \u51B3\u7B56\uFF1B\u9ED8\u8BA4 allow").action(async(D,$,F)=>{a.exit(await OM({taskId:D,toolCallId:$,...F.deny===void 0?{}:{deny:F.deny}}))});s.command("schedule-list","List all cron jobs persisted in the local worker.db").action(async()=>{a.exit(await LM())});s.command("schedule-add","Add a cron job to the local worker.db (validates expression up-front)").option("--expression <expr>","Five-field cron expression (required)").option("--prompt <text>","Envelope.text synthesised when the job fires (required)").option("--channel <channel>","Channel: web/line/telegram/lark/whatsapp (required)").option("--chat-id <id>","chatId used at fire time (required)").option("--account-id <id>","Override accountId (defaults to sys:cron)").option("--disabled","Persist with enabled=false (default is enabled=true)").action(async(D)=>{if(!D.expression||!D.prompt||!D.channel||!D.chatId)C.error("[aiworker schedule-add] requires --expression, --prompt, --channel, --chat-id"),a.exit(2);let $=await jM({expression:D.expression,prompt:D.prompt,channel:D.channel,chatId:D.chatId,...D.accountId===void 0?{}:{accountId:D.accountId},...D.disabled===!0?{enabled:!1}:{}});a.exit($)});s.command("schedule-remove <jobId>","Remove a cron job from the local worker.db").action(async(D)=>{a.exit(await zM(D))});s.command("sessions list","List local worker session status from worker.db").option("--limit <n>","Max sessions to return (1-200, default 50)",{type:[Number]}).option("--offset <n>","Offset for pagination (default 0)",{type:[Number]}).option("--status <status>","Filter by status: active or closed").action(async(D)=>{a.exit(await lZ({limit:D.limit?.[0],offset:D.offset?.[0],...D.status===void 0?{}:{status:D.status}}))});s.command("sessions show <sessionKey>","Show one local worker session status by session key").action(async(D)=>{a.exit(await iZ(D))});s.command("sessions maintenance","Dry-run closed transcript cleanup; pass --apply to mutate").option("--older-than-days <n>","Closed transcript retention in days (default 30)",{type:[Number]}).option("--limit <n>","Max transcripts to plan/apply (1-200, default 50)",{type:[Number]}).option("--apply","Delete planned closed transcripts instead of dry-run").action(async(D)=>{a.exit(await nZ({olderThanDays:D.olderThanDays?.[0],limit:D.limit?.[0],...D.apply===void 0?{}:{apply:D.apply}}))});s.command("fleet list","\u5217\u51FA fleet \u5185\u6240\u6709 worker").action(async()=>{a.exit(await k_())});s.command("fleet info <workerId>","\u67E5\u770B\u67D0\u4E2A worker \u7684\u8FD0\u884C\u65F6\u4FE1\u606F").action(async(D)=>{a.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)=>{a.exit(await h_({...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)=>{a.exit(await x_(D))});s.command("fleet remove <workerId>","\u628A worker \u4ECE fleet \u4E2D\u6458\u9664\uFF08deviceToken \u4F5C\u5E9F\uFF09").action(async(D)=>{a.exit(await g_(D))});s.command("gateway start","\u62C9\u8D77 gateway server\uFF08\u9ED8\u8BA4 foreground\uFF0Csystemd \u53CB\u597D\uFF1B--detach \u8D70\u540E\u53F0 daemon\uFF09").option("--port <n>","\u76D1\u542C\u7AEF\u53E3\uFF0C\u9ED8\u8BA4 9218",{type:[Number]}).option("--detach","\u540E\u53F0 daemon \u6A21\u5F0F\uFF1Aspawn \u81EA\u8EAB + PID/log \u5199\u5165 ~/.aiworker/").option("--no-serve-web","\u4E0D\u6302\u8F7D fleet bundle \u5230 /admin/*\uFF08\u9ED8\u8BA4\u6302\u8F7D\uFF0CPLAN-022 / FEAT-033\uFF09").action(async(D)=>{let F=a.env.AIWORKER_GATEWAY_INTERNAL_FOREGROUND==="1"?!1:D.detach===!0;a.exit(await O_({...D.port?.[0]===void 0?{}:{port:D.port[0]},detach:F,...D.serveWeb===!1?{serveWeb:!1}:{}}))});s.command("gateway status","\u663E\u793A detached gateway daemon \u662F\u5426\u8FD0\u884C\uFF08foreground/systemd \u5B9E\u4F8B\u4E0D\u7531\u6B64\u547D\u4EE4\u8DDF\u8E2A\uFF09").action(()=>{a.exit(R_())});s.command("gateway stop","\u505C\u6B62 detached gateway daemon (foreground/systemd \u5B9E\u4F8B\u8BF7\u7531\u5176 supervisor \u505C\u6B62)").option("--timeout-ms <n>","SIGTERM \u8D85\u65F6\uFF0C\u9ED8\u8BA4 5000ms",{type:[Number]}).action(async(D)=>{a.exit(await E_(D.timeoutMs?.[0]===void 0?{}:{timeoutMs:D.timeoutMs[0]}))});s.command("pair","\u901A\u8FC7 bootstrap token \u628A\u4E00\u4E2A\u5DF2\u542F\u52A8\u7684 worker \u6CE8\u518C\u5230 gateway").option("--url <wsUrl>","gateway WS URL\uFF08\u9ED8\u8BA4\u4F7F\u7528 aim.json \u91CC\u7684 gatewayUrl\uFF09").option("--worker-url <httpUrl>","worker HTTP base URL\uFF08\u5FC5\u586B\uFF09").option("--bootstrap-token <token>","worker \u6253\u5370\u7684\u4E00\u6B21\u6027 bootstrap token\uFF08\u5FC5\u586B\uFF09").option("--display-name <name>","\u53EF\u9009 worker \u5C55\u793A\u540D").action(async(D)=>{if(!D.workerUrl||!D.bootstrapToken)C.error("pair \u5FC5\u987B\u540C\u65F6\u63D0\u4F9B --worker-url \u548C --bootstrap-token"),a.exit(2);a.exit(await I_({...D.url===void 0?{}:{url:D.url},workerUrl:D.workerUrl,bootstrapToken:D.bootstrapToken,...D.displayName===void 0?{}:{displayName:D.displayName}}))});s.command("chat <workerId> <text>","\u5411\u67D0 worker \u53D1\u4E00\u6761\u6D88\u606F\u5E76\u963B\u585E\u5230 agent.done (NDJSON \u8F93\u51FA)").option("--conversation-id <id>","\u663E\u5F0F\u6307\u5B9A\u4F1A\u8BDD id\uFF1B\u4E0D\u4F20\u5219\u7531 worker \u65B0\u5EFA").option("--timeout-ms <n>","\u7B49 agent.done \u7684\u603B\u8D85\u65F6\uFF0C\u9ED8\u8BA4 120000",{type:[Number]}).action(async(D,$,F)=>{a.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)=>{a.exit(await ZW(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)C.error("config set \u5FC5\u987B\u663E\u5F0F\u63D0\u4F9B --if-match <version> \u4EE5\u9632\u6B62\u8BEF\u8986\u76D6"),a.exit(2);a.exit(await qW({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)=>{a.exit(await f_(D))});s.command("approvals list","\u5217\u51FA\u6302\u8D77\u7684 per-tool \u5BA1\u6279\uFF1B\u9ED8\u8BA4\u8986\u76D6\u6240\u6709 online worker").option("--worker <id>","\u53EA\u67E5\u6307\u5B9A workerId\uFF08\u4E0D\u4F20\u5219\u805A\u5408\u6240\u6709 online worker\uFF09").action(async(D)=>{a.exit(await EW({...D.worker===void 0?{}:{workerId:D.worker}}))});s.command("approvals grant <workerId> <taskId> <toolCallId>","\u89E3\u9501\u67D0\u6761 worker \u4E0A\u6302\u8D77\u7684 tool \u5BA1\u6279").option("--deny","\u4E0B\u53D1 deny \u51B3\u7B56\uFF1B\u4E0D\u5E26\u6B64 flag \u9ED8\u8BA4 allow").action(async(D,$,F,X)=>{a.exit(await CW({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)=>{a.exit(await w_(D))});s.command("schedule add <workerId>","\u5728\u67D0 worker \u4E0A\u65B0\u589E\u4E00\u6761 cron \u4EFB\u52A1").option("--expression <expr>","5-field cron \u8868\u8FBE\u5F0F\uFF08\u5FC5\u586B\uFF09").option("--prompt <text>","cron \u89E6\u53D1\u65F6\u5408\u6210\u7684 envelope.text\uFF08\u5FC5\u586B\uFF09").option("--channel <channel>","channel \u7C7B\u578B\uFF1Aweb/line/telegram/lark/whatsapp\uFF08\u5FC5\u586B\uFF09").option("--chat-id <id>","\u89E6\u53D1\u65F6\u4F7F\u7528\u7684 chatId\uFF08\u5FC5\u586B\uFF09").option("--account-id <id>","accountId\uFF0C\u9ED8\u8BA4 sys:cron").option("--disabled","\u9ED8\u8BA4 enabled=true\uFF1B\u5E26\u6B64 flag \u6539\u4E3A false").action(async(D,$)=>{if(!$.expression||!$.prompt||!$.channel||!$.chatId)C.error("schedule add \u5FC5\u987B\u63D0\u4F9B --expression / --prompt / --channel / --chat-id"),a.exit(2);a.exit(await S_({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,$)=>{a.exit(await b_(D,$))});s.command("enroll list","\u5217\u51FA gateway \u5F53\u524D\u6240\u6709 pending OTP enrollment").action(async()=>{a.exit(await NW())});s.command("enroll approve <otp>","\u6279\u51C6\u67D0\u6761 pending OTP enrollment\uFF08worker \u7ACB\u5373\u52A0\u5165 fleet\uFF09").action(async(D)=>{a.exit(await PW(D))});s.command("enroll reject <otp>","\u62D2\u7EDD\u67D0\u6761 pending OTP enrollment\uFF08worker \u6536\u5230 close 4403\uFF09").action(async(D)=>{a.exit(await LW(D))});s.command("logs <workerId>","\u8BA2\u9605\u67D0 worker \u7684\u65E5\u5FD7\u5C3E\u90E8 (NDJSON \u8F93\u51FA)").option("--follow","\u6301\u7EED\u8BA2\u9605\u76F4\u5230\u8D85\u65F6\u6216 Ctrl-C").option("--tail <n>","\u8BF7\u6C42\u5386\u53F2\u884C\u6570\uFF0C\u4E0A\u9650 1000",{type:[Number]}).option("--timeout-ms <n>","\u8BA2\u9605\u603B\u8D85\u65F6",{type:[Number]}).action(async(D,$)=>{a.exit(await z_({workerId:D,...$.follow===void 0?{}:{follow:$.follow},...$.tail?.[0]===void 0?{}:{tail:$.tail[0]},...$.timeoutMs?.[0]===void 0?{}:{timeoutMs:$.timeoutMs[0]}}))});s.command("install systemd","\u6E32\u67D3 aiworker-gateway.service \u5E76\uFF08\u53EF\u9009\uFF09\u6CE8\u518C\u5230 systemd").option("--user","systemd \u7528\u6237\u5B9E\u4F8B\uFF08\u9ED8\u8BA4\uFF09\uFF1B\u5199\u5230 ~/.config/systemd/user/").option("--system","systemd \u7CFB\u7EDF\u5B9E\u4F8B\uFF08\u9700 root\uFF09\uFF1B\u5199\u5230 /etc/systemd/system/").option("--dry-run","\u53EA\u5F80 stdout \u6253 unit \u5185\u5BB9\uFF0C\u4E0D\u5199\u76D8\u4E5F\u4E0D systemctl").option("--out <path>","\u8986\u76D6\u76EE\u6807\u8DEF\u5F84\uFF08\u5F02\u5E38\u5E03\u5C40/\u6D4B\u8BD5\u7528\uFF09\uFF1B\u81EA\u52A8\u8DF3\u8FC7 systemctl").option("--no-enable","\u5199\u76D8\u540E\u8DF3\u8FC7 systemctl daemon-reload + enable --now").option("--exec-start <command>","\u9AD8\u7EA7\u8986\u76D6\uFF1A\u624B\u52A8\u6307\u5B9A\u5B8C\u6574 systemd ExecStart \u547D\u4EE4").action(async(D)=>{if(D.user===!0&&D.system===!0)C.error("install systemd: \u4E0D\u80FD\u540C\u65F6\u6307\u5B9A --user \u548C --system"),a.exit(2);a.exit(await j_({scope:D.system===!0?"system":"user",...D.dryRun===!0?{dryRun:!0}:{},...D.out===void 0?{}:{out:D.out},...D.enable===!1?{noEnable:!0}:{},...D.execStart===void 0?{}:{execStart:D.execStart}}))});s.help();s.version(KH.version);function Ki(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 f1 extends Error{constructor(D){super(D);this.name="CliUsageError"}}var Oi={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 Ri(D){return D instanceof Error&&D.name==="CACError"}function Ei(D){return/--[a-z0-9][\w-]*/i.exec(D)?.[0]??D}function Ci(D){return D.split(",").map(($)=>/^-{1,2}[a-z0-9][\w-]*/i.exec($.trim())?.[0]).filter(($)=>$!==void 0)}function Mi(D,$){let F=D.slice(2);return Ci($.rawName).some((J)=>F.some((G)=>G===J||G.startsWith(`${J}=`)))}function Zi(D){D.checkUnknownOptions(),D.checkOptionValue(),D.checkRequiredArgs()}function qi(D,$){let F=Oi[D.name]??{};for(let X of D.options){if(!Array.isArray(X.config?.type)||X.config.type[0]!==Number)continue;if(!Mi($,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=Ei(X.rawName);if(typeof Y!=="number"||!Number.isFinite(Y))throw new f1(`${B} must be a finite number`);let H=F[X.name];if(H?.integer===!0&&!Number.isInteger(Y))throw new f1(`${B} must be an integer`);if(H?.min!==void 0&&Y<H.min)throw new f1(`${B} must be >= ${H.min}`);if(H?.max!==void 0&&Y>H.max)throw new f1(`${B} must be <= ${H.max}`)}}}function Ni(){return s.options.help===!0||s.options.version===!0&&s.matchedCommandName==null}async function Pi(D=a.argv){let $=Ki(D);try{s.unsetMatchedCommand();let F=s.parse($,{run:!1});if(Ni())return 0;if(!s.matchedCommand&&F.args[0])throw new f1(`Unknown command: ${F.args[0]}`);let X=s.matchedCommand;if(X)Zi(X),qi(X,$);return rZ($),await s.runMatchedCommand(),typeof a.exitCode==="number"?a.exitCode:0}catch(F){let X=F instanceof f1||Ri(F),J=F instanceof Error?F.message:String(F);return C.error(J),X?2:1}}if(import.meta.main)a.exit(await Pi(a.argv));export{Pi as runCli,Ki as preprocessArgv,s as cli};